@gauts/auth 0.7.3 → 0.8.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.
@@ -1,6 +1,7 @@
1
1
  import { deleteCookie, getCookie, setCookie } from "hono/cookie";
2
2
  import { createError, isAuthError } from "../../errors.js";
3
3
  import { resolveSocialConfig } from "../../social/config.js";
4
+ import { addSocialError, resolveSocialNavigation } from "../../social/navigation.js";
4
5
  import { createSocialService } from "../../social/service.js";
5
6
  import { createOAuthState, createRegistrationState, resolveOAuthState, resolveRegistrationState, validateSocialSecret, } from "../../social/state.js";
6
7
  const SOCIAL_ERROR_CODES = new Set([
@@ -26,12 +27,7 @@ const getIntent = (value) => {
26
27
  message: "Social authentication intent is invalid.",
27
28
  });
28
29
  };
29
- const getErrorUrl = ({ code, url }) => {
30
- const target = new URL(url);
31
- target.searchParams.set("error", code);
32
- return target.toString();
33
- };
34
- export const createHonoSocial = ({ config: input, cookie, createSession, db, sessionCookieNames, secret, }) => {
30
+ export const createHonoSocial = ({ config: input, cookie, db, sessionCookieNames, secret, }) => {
35
31
  validateSocialSecret(secret);
36
32
  if (cookie.sameSite === "Strict") {
37
33
  throw createError({
@@ -83,115 +79,155 @@ export const createHonoSocial = ({ config: input, cookie, createSession, db, ses
83
79
  }
84
80
  return provider;
85
81
  };
86
- const fail = (c, error) => {
82
+ const fail = ({ context, error, errorTo }) => {
87
83
  if (!isAuthError(error) || !SOCIAL_ERROR_CODES.has(error.code)) {
88
84
  throw error;
89
85
  }
90
- clearSocial(c);
91
- return c.redirect(getErrorUrl({ code: error.code, url: config.errorUrl }));
92
- };
93
- const finish = async ({ account_id, context }) => {
94
- await createSession({ account_id, context });
95
86
  clearSocial(context);
96
- return context.redirect(config.successUrl);
87
+ return context.redirect(addSocialError({ code: error.code, path: errorTo }));
97
88
  };
98
- const handle = async (c) => {
99
- const action = c.req.param("action");
100
- if (action !== "start" && action !== "callback") {
101
- return c.notFound();
89
+ const authenticate = async ({ context, intent, navigation, provider, verifier, }) => {
90
+ const code = context.req.query("code");
91
+ const providerError = context.req.query("error");
92
+ if (providerError || !code) {
93
+ throw createError({
94
+ code: "SOCIAL_PROVIDER_ERROR",
95
+ message: "Social provider denied authentication.",
96
+ });
102
97
  }
103
- try {
104
- const provider = requireProvider(c.req.param("provider"));
105
- if (action === "start") {
106
- const created = createOAuthState({
107
- intent: getIntent(c.req.query("intent")),
108
- provider: provider.id,
109
- secret,
110
- });
111
- setSocial({
112
- context: c,
113
- expiresAt: created.expires_at,
114
- value: created.value,
115
- });
116
- return c.redirect(provider.getAuthorizationUrl({
117
- codeChallenge: created.codeChallenge,
118
- state: created.state,
119
- }));
120
- }
121
- const code = c.req.query("code");
122
- const state = c.req.query("state");
123
- const providerError = c.req.query("error");
124
- if (providerError || !code) {
98
+ const identity = await provider.getIdentity({
99
+ code,
100
+ codeVerifier: verifier,
101
+ });
102
+ const account = await service.find(identity);
103
+ if (account) {
104
+ return {
105
+ account,
106
+ identity,
107
+ registered: false,
108
+ returnTo: navigation.returnTo,
109
+ };
110
+ }
111
+ if (intent !== "register" || !config.registration) {
112
+ throw createError({
113
+ code: "SOCIAL_ACCOUNT_NOT_FOUND",
114
+ message: "Social account does not exist.",
115
+ });
116
+ }
117
+ if (navigation.registerTo) {
118
+ if (!config.registration.createAccount) {
125
119
  throw createError({
126
- code: "SOCIAL_PROVIDER_ERROR",
127
- message: "Social provider denied authentication.",
120
+ code: "SOCIAL_REGISTRATION_INVALID",
121
+ message: "Custom social registration is not configured.",
128
122
  });
129
123
  }
130
- const stored = resolveOAuthState({
124
+ const pending = createRegistrationState({ identity, navigation, secret });
125
+ setSocial({
126
+ context,
127
+ expiresAt: pending.expires_at,
128
+ value: pending.value,
129
+ });
130
+ return context.redirect(navigation.registerTo);
131
+ }
132
+ const created = await service.register({
133
+ data: undefined,
134
+ identity,
135
+ });
136
+ return {
137
+ account: created,
138
+ identity,
139
+ registered: true,
140
+ returnTo: navigation.returnTo,
141
+ };
142
+ };
143
+ const handle = async (c, next) => {
144
+ const action = c.req.param("action");
145
+ if (action !== "start" && action !== "callback") {
146
+ return c.notFound();
147
+ }
148
+ const provider = requireProvider(c.req.param("provider"));
149
+ if (action === "start") {
150
+ const navigation = resolveSocialNavigation({
151
+ errorTo: c.req.query("errorTo"),
152
+ registerTo: c.req.query("registerTo"),
153
+ returnTo: c.req.query("returnTo"),
154
+ });
155
+ const created = createOAuthState({
156
+ intent: getIntent(c.req.query("intent")),
157
+ navigation,
131
158
  provider: provider.id,
132
159
  secret,
133
- state,
134
- value: getCookie(c, config.cookieName),
135
160
  });
136
- if (!stored) {
137
- throw createError({
138
- code: "SOCIAL_STATE_INVALID",
139
- message: "Social authentication state is invalid or expired.",
140
- });
141
- }
142
- const identity = await provider.getIdentity({
143
- code,
144
- codeVerifier: stored.verifier,
161
+ setSocial({
162
+ context: c,
163
+ expiresAt: created.expires_at,
164
+ value: created.value,
145
165
  });
146
- const account = await service.find(identity);
147
- if (account) {
148
- return await finish({ account_id: account.id, context: c });
149
- }
150
- if (stored.intent !== "register" || !config.registration) {
151
- throw createError({
152
- code: "SOCIAL_ACCOUNT_NOT_FOUND",
153
- message: "Social account does not exist.",
154
- });
155
- }
156
- if (config.registration.registerUrl) {
157
- const pending = createRegistrationState({ identity, secret });
158
- setSocial({
159
- context: c,
160
- expiresAt: pending.expires_at,
161
- value: pending.value,
162
- });
163
- return c.redirect(config.registration.registerUrl);
164
- }
165
- const created = await service.register({
166
- data: undefined,
167
- identity,
166
+ return c.redirect(provider.getAuthorizationUrl({
167
+ codeChallenge: created.codeChallenge,
168
+ state: created.state,
169
+ }));
170
+ }
171
+ const stored = resolveOAuthState({
172
+ provider: provider.id,
173
+ secret,
174
+ state: c.req.query("state"),
175
+ value: getCookie(c, config.cookieName),
176
+ });
177
+ if (!stored) {
178
+ clearSocial(c);
179
+ throw createError({
180
+ code: "SOCIAL_STATE_INVALID",
181
+ message: "Social authentication state is invalid or expired.",
182
+ });
183
+ }
184
+ let authenticated;
185
+ try {
186
+ authenticated = await authenticate({
187
+ context: c,
188
+ intent: stored.intent,
189
+ navigation: stored,
190
+ provider,
191
+ verifier: stored.verifier,
168
192
  });
169
- return await finish({ account_id: created.id, context: c });
170
193
  }
171
194
  catch (error) {
172
- return fail(c, error);
195
+ return fail({ context: c, error, errorTo: stored.errorTo });
196
+ }
197
+ if (authenticated instanceof Response) {
198
+ return authenticated;
173
199
  }
200
+ clearSocial(c);
201
+ c.set("social", authenticated);
202
+ await next();
174
203
  };
175
- const getRegistration = (c) => {
176
- const identity = resolveRegistrationState({
204
+ const requireRegistration = (c) => {
205
+ const registration = resolveRegistrationState({
177
206
  secret,
178
207
  value: getCookie(c, config.cookieName),
179
208
  });
180
- if (!identity) {
209
+ if (!registration) {
181
210
  clearSocial(c);
182
211
  throw createError({
183
212
  code: "SOCIAL_STATE_INVALID",
184
213
  message: "Social registration is invalid or expired.",
185
214
  });
186
215
  }
187
- return identity;
216
+ return registration;
217
+ };
218
+ const getRegistration = (c) => {
219
+ return requireRegistration(c).identity;
188
220
  };
189
221
  const completeRegistration = async ({ context, data, }) => {
190
- const identity = getRegistration(context);
191
- const account = await service.register({ data, identity });
192
- const session = await createSession({ account_id: account.id, context });
222
+ const registration = requireRegistration(context);
223
+ const account = await service.register({ data, identity: registration.identity });
193
224
  clearSocial(context);
194
- return session;
225
+ return {
226
+ account,
227
+ identity: registration.identity,
228
+ registered: true,
229
+ returnTo: registration.navigation.returnTo,
230
+ };
195
231
  };
196
232
  return {
197
233
  completeRegistration,
@@ -1 +1 @@
1
- {"version":3,"file":"social.js","sourceRoot":"","sources":["../../../src/adapters/hono/social.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"social.js","sourceRoot":"","sources":["../../../src/adapters/hono/social.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -7,5 +7,5 @@ export type { PasswordService } from "./password/index.js";
7
7
  export type { ActiveSession, AuthAccount, AuthAccountOf, AuthData, AuthScalar, AuthSessionRecord, AuthUser, AuthValue, CreateSessionRecord, CreatedSession, DbAdapter, RenewedSession, ResolvedSession, Session, SessionInput, SessionRecord, SessionService, } from "./session/types.js";
8
8
  export type { SessionClient, SessionClientInput } from "./client/index.js";
9
9
  export type { SessionCacheConfig } from "./session/cache.js";
10
- export type { CreateSocialRecord, SocialAccountRecord, SocialAuthorizationInput, SocialCallbackInput, SocialConfig, SocialDbAdapter, SocialIdentity, SocialIntent, SocialProvider, SocialProviderId, SocialRegistrationConfig, SocialRegistrationInput, SocialRegistrationResult, } from "./social/types.js";
10
+ export type { CreateSocialRecord, SocialAccountRecord, SocialAuthenticated, SocialAuthorizationInput, SocialCallbackInput, SocialConfig, SocialDbAdapter, SocialIdentity, SocialIntent, SocialNavigation, SocialProvider, SocialProviderId, SocialRegistrationConfig, SocialRegistrationInput, SocialRegistrationResult, } from "./social/types.js";
11
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC5D,YAAY,EACR,YAAY,EACZ,cAAc,EACd,cAAc,EACd,aAAa,EACb,iBAAiB,GACpB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5D,YAAY,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,YAAY,EACR,aAAa,EACb,WAAW,EACX,aAAa,EACb,QAAQ,EACR,UAAU,EACV,iBAAiB,EACjB,QAAQ,EACR,SAAS,EACT,mBAAmB,EACnB,cAAc,EACd,SAAS,EACT,cAAc,EACd,eAAe,EACf,OAAO,EACP,YAAY,EACZ,aAAa,EACb,cAAc,GACjB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC3E,YAAY,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,YAAY,EACR,kBAAkB,EAClB,mBAAmB,EACnB,wBAAwB,EACxB,mBAAmB,EACnB,YAAY,EACZ,eAAe,EACf,cAAc,EACd,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,wBAAwB,EACxB,uBAAuB,EACvB,wBAAwB,GAC3B,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC5D,YAAY,EACR,YAAY,EACZ,cAAc,EACd,cAAc,EACd,aAAa,EACb,iBAAiB,GACpB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5D,YAAY,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,YAAY,EACR,aAAa,EACb,WAAW,EACX,aAAa,EACb,QAAQ,EACR,UAAU,EACV,iBAAiB,EACjB,QAAQ,EACR,SAAS,EACT,mBAAmB,EACnB,cAAc,EACd,SAAS,EACT,cAAc,EACd,eAAe,EACf,OAAO,EACP,YAAY,EACZ,aAAa,EACb,cAAc,GACjB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC3E,YAAY,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,YAAY,EACR,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,wBAAwB,EACxB,mBAAmB,EACnB,YAAY,EACZ,eAAe,EACf,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,wBAAwB,EACxB,uBAAuB,EACvB,wBAAwB,GAC3B,MAAM,mBAAmB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/social/config.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACR,oBAAoB,EACpB,YAAY,EAGf,MAAM,YAAY,CAAC;AA0EpB,eAAO,MAAM,mBAAmB,GAAI,KAAK,EACrC,OAAO,YAAY,CAAC,KAAK,CAAC,KAC3B,oBAAoB,CAAC,KAAK,CAkE5B,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/social/config.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACR,oBAAoB,EACpB,YAAY,EAGf,MAAM,YAAY,CAAC;AA0EpB,eAAO,MAAM,mBAAmB,GAAI,KAAK,EACrC,OAAO,YAAY,CAAC,KAAK,CAAC,KAC3B,oBAAoB,CAAC,KAAK,CAgD5B,CAAC"}
@@ -82,17 +82,10 @@ export const resolveSocialConfig = (input) => {
82
82
  message: "social.registration.createAccount must be a function.",
83
83
  });
84
84
  }
85
- if (registration?.registerUrl !== undefined && !registration.createAccount) {
86
- throw createError({
87
- code: "AUTH_CONFIG_INVALID",
88
- message: "social.registration.createAccount is required when registerUrl is configured.",
89
- });
90
- }
91
85
  return {
92
86
  cookieName: config.cookieName === undefined
93
87
  ? SOCIAL_DEFAULTS.cookieName
94
88
  : resolveCookieName({ input: config.cookieName, label: "Social" }),
95
- errorUrl: requireUrl({ name: "social.errorUrl", value: config.errorUrl }),
96
89
  providers: resolveProviders(config.providers),
97
90
  registration: registration === null
98
91
  ? null
@@ -100,16 +93,7 @@ export const resolveSocialConfig = (input) => {
100
93
  ...(registration.createAccount
101
94
  ? { createAccount: registration.createAccount }
102
95
  : {}),
103
- ...(registration.registerUrl
104
- ? {
105
- registerUrl: requireUrl({
106
- name: "social.registration.registerUrl",
107
- value: registration.registerUrl,
108
- }),
109
- }
110
- : {}),
111
96
  },
112
- successUrl: requireUrl({ name: "social.successUrl", value: config.successUrl }),
113
97
  };
114
98
  };
115
99
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/social/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAQhD,MAAM,eAAe,GAAG;IACpB,UAAU,EAAE,OAAO;CACb,CAAC;AAEX,MAAM,UAAU,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,EAAoC,EAAU,EAAE;IAC7E,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC5B,MAAM,WAAW,CAAC;YACd,IAAI,EAAE,qBAAqB;YAC3B,OAAO,EAAE,GAAG,IAAI,gCAAgC;SACnD,CAAC,CAAC;IACP,CAAC;IAED,IAAI,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;QAE3B,IACI,CAAC,GAAG,CAAC,QAAQ,KAAK,QAAQ,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO,CAAC;YACvD,GAAG,CAAC,QAAQ;YACZ,GAAG,CAAC,QAAQ,EACd,CAAC;YACC,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;QACnC,CAAC;QAED,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACL,MAAM,WAAW,CAAC;YACd,IAAI,EAAE,qBAAqB;YAC3B,OAAO,EAAE,GAAG,IAAI,gCAAgC;SACnD,CAAC,CAAC;IACP,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CAAC,KAAc,EAAiD,EAAE;IACvF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9C,MAAM,WAAW,CAAC;YACd,IAAI,EAAE,qBAAqB;YAC3B,OAAO,EAAE,sDAAsD;SAClE,CAAC,CAAC;IACP,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,GAAG,EAAoC,CAAC;IAC9D,MAAM,MAAM,GAAc,KAAK,CAAC;IAEhC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QACzB,IACI,CAAC,QAAQ,CAAC,KAAK,CAAC;YAChB,CAAC,KAAK,CAAC,EAAE,KAAK,QAAQ,IAAI,KAAK,CAAC,EAAE,KAAK,QAAQ,IAAI,KAAK,CAAC,EAAE,KAAK,GAAG,CAAC;YACpE,OAAO,KAAK,CAAC,mBAAmB,KAAK,UAAU;YAC/C,OAAO,KAAK,CAAC,WAAW,KAAK,UAAU,EACzC,CAAC;YACC,MAAM,WAAW,CAAC;gBACd,IAAI,EAAE,qBAAqB;gBAC3B,OAAO,EAAE,gDAAgD;aAC5D,CAAC,CAAC;QACP,CAAC;QAED,MAAM,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;QAEpB,IAAI,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YACpB,MAAM,WAAW,CAAC;gBACd,IAAI,EAAE,qBAAqB;gBAC3B,OAAO,EAAE,mBAAmB,EAAE,gCAAgC;aACjE,CAAC,CAAC;QACP,CAAC;QAED,UAAU,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,cAAc,EAAE,KAAK,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;QACrF,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,KAAuB,CAAC,CAAC;IAC/C,CAAC;IAED,OAAO,SAAS,CAAC;AACrB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAC/B,KAA0B,EACC,EAAE;IAC7B,MAAM,GAAG,GAAY,KAAK,CAAC;IAE3B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACjB,MAAM,WAAW,CAAC;YACd,IAAI,EAAE,qBAAqB;YAC3B,OAAO,EAAE,kCAAkC;SAC9C,CAAC,CAAC;IACP,CAAC;IAED,MAAM,MAAM,GAAG,GAA0B,CAAC;IAC1C,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,IAAI,IAAI,CAAC;IAEjD,IACI,YAAY,KAAK,IAAI;QACrB,CAAC,OAAO,YAAY,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,EACnE,CAAC;QACC,MAAM,WAAW,CAAC;YACd,IAAI,EAAE,qBAAqB;YAC3B,OAAO,EAAE,iCAAiC;SAC7C,CAAC,CAAC;IACP,CAAC;IAED,IACI,YAAY,EAAE,aAAa,KAAK,SAAS;QACzC,OAAO,YAAY,CAAC,aAAa,KAAK,UAAU,EAClD,CAAC;QACC,MAAM,WAAW,CAAC;YACd,IAAI,EAAE,qBAAqB;YAC3B,OAAO,EAAE,uDAAuD;SACnE,CAAC,CAAC;IACP,CAAC;IAED,IAAI,YAAY,EAAE,WAAW,KAAK,SAAS,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC;QACzE,MAAM,WAAW,CAAC;YACd,IAAI,EAAE,qBAAqB;YAC3B,OAAO,EACH,+EAA+E;SACtF,CAAC,CAAC;IACP,CAAC;IAED,OAAO;QACH,UAAU,EACN,MAAM,CAAC,UAAU,KAAK,SAAS;YAC3B,CAAC,CAAC,eAAe,CAAC,UAAU;YAC5B,CAAC,CAAC,iBAAiB,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;QAC1E,QAAQ,EAAE,UAAU,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC;QACzE,SAAS,EAAE,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC;QAC7C,YAAY,EACR,YAAY,KAAK,IAAI;YACjB,CAAC,CAAC,IAAI;YACN,CAAC,CAAC;gBACI,GAAG,CAAC,YAAY,CAAC,aAAa;oBAC1B,CAAC,CAAC,EAAE,aAAa,EAAE,YAAY,CAAC,aAAa,EAAE;oBAC/C,CAAC,CAAC,EAAE,CAAC;gBACT,GAAG,CAAC,YAAY,CAAC,WAAW;oBACxB,CAAC,CAAC;wBACI,WAAW,EAAE,UAAU,CAAC;4BACpB,IAAI,EAAE,iCAAiC;4BACvC,KAAK,EAAE,YAAY,CAAC,WAAW;yBAClC,CAAC;qBACL;oBACH,CAAC,CAAC,EAAE,CAAC;aACZ;QACX,UAAU,EAAE,UAAU,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC;KAClF,CAAC;AACN,CAAC,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/social/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type { SocialNavigation } from "./types.js";
2
+ type ResolveNavigationInput = {
3
+ errorTo: string | null | undefined;
4
+ registerTo: string | null | undefined;
5
+ returnTo: string | null | undefined;
6
+ };
7
+ type AddErrorInput = {
8
+ code: string;
9
+ path: string;
10
+ };
11
+ export declare const resolveSocialNavigation: ({ errorTo, registerTo, returnTo, }: ResolveNavigationInput) => SocialNavigation;
12
+ export declare const addSocialError: ({ code, path }: AddErrorInput) => string;
13
+ export {};
14
+ //# sourceMappingURL=navigation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../../src/social/navigation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAQnD,KAAK,sBAAsB,GAAG;IAC1B,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACnC,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACtC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CACvC,CAAC;AAEF,KAAK,aAAa,GAAG;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CAChB,CAAC;AAsEF,eAAO,MAAM,uBAAuB,GAAI,oCAIrC,sBAAsB,KAAG,gBAI1B,CAAC;AAEH,eAAO,MAAM,cAAc,GAAI,gBAAgB,aAAa,KAAG,MAI9D,CAAC"}
@@ -0,0 +1,64 @@
1
+ import { createError } from "../errors.js";
2
+ const LOCAL_ORIGIN = "https://auth.local";
3
+ const MAX_PATH_LENGTH = 1024;
4
+ const hasControlCharacter = (value) => {
5
+ for (let index = 0; index < value.length; index += 1) {
6
+ const code = value.charCodeAt(index);
7
+ if (code <= 31 || code === 127) {
8
+ return true;
9
+ }
10
+ }
11
+ return false;
12
+ };
13
+ const resolvePath = ({ name, optional = false, value }) => {
14
+ if (optional && value === undefined) {
15
+ return null;
16
+ }
17
+ if (typeof value !== "string") {
18
+ throw createError({
19
+ code: "SOCIAL_STATE_INVALID",
20
+ message: `${name} must be a local path.`,
21
+ });
22
+ }
23
+ const path = value.trim();
24
+ if (path.length === 0 ||
25
+ path.length > MAX_PATH_LENGTH ||
26
+ !path.startsWith("/") ||
27
+ path.startsWith("//") ||
28
+ path.includes("\\") ||
29
+ hasControlCharacter(path)) {
30
+ throw createError({
31
+ code: "SOCIAL_STATE_INVALID",
32
+ message: `${name} must be a local path.`,
33
+ });
34
+ }
35
+ const url = new URL(path, LOCAL_ORIGIN);
36
+ if (url.origin !== LOCAL_ORIGIN) {
37
+ throw createError({
38
+ code: "SOCIAL_STATE_INVALID",
39
+ message: `${name} must be a local path.`,
40
+ });
41
+ }
42
+ return `${url.pathname}${url.search}${url.hash}`;
43
+ };
44
+ const requirePath = ({ name, value }) => {
45
+ const path = resolvePath({ name, value });
46
+ if (path === null) {
47
+ throw createError({
48
+ code: "SOCIAL_STATE_INVALID",
49
+ message: `${name} must be a local path.`,
50
+ });
51
+ }
52
+ return path;
53
+ };
54
+ export const resolveSocialNavigation = ({ errorTo, registerTo, returnTo, }) => ({
55
+ errorTo: requirePath({ name: "errorTo", value: errorTo }),
56
+ registerTo: resolvePath({ name: "registerTo", optional: true, value: registerTo }),
57
+ returnTo: requirePath({ name: "returnTo", value: returnTo }),
58
+ });
59
+ export const addSocialError = ({ code, path }) => {
60
+ const url = new URL(path, LOCAL_ORIGIN);
61
+ url.searchParams.set("error", code);
62
+ return `${url.pathname}${url.search}${url.hash}`;
63
+ };
64
+ //# sourceMappingURL=navigation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigation.js","sourceRoot":"","sources":["../../src/social/navigation.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { SocialIdentity, SocialIntent, SocialProviderId } from "./types.js";
1
+ import type { SocialIdentity, SocialIntent, SocialNavigation, SocialProviderId } from "./types.js";
2
2
  type OAuthPayload = {
3
3
  exp: number;
4
4
  intent: SocialIntent;
@@ -6,9 +6,10 @@ type OAuthPayload = {
6
6
  provider: SocialProviderId;
7
7
  state: string;
8
8
  verifier: string;
9
- };
9
+ } & SocialNavigation;
10
10
  type CreateOAuthStateInput = {
11
11
  intent: SocialIntent;
12
+ navigation: SocialNavigation;
12
13
  now?: () => Date;
13
14
  provider: SocialProviderId;
14
15
  secret: string;
@@ -22,6 +23,7 @@ type ResolveOAuthStateInput = {
22
23
  };
23
24
  type CreateRegistrationStateInput = {
24
25
  identity: SocialIdentity;
26
+ navigation: SocialNavigation;
25
27
  now?: () => Date;
26
28
  secret: string;
27
29
  };
@@ -35,12 +37,15 @@ type StoredState<T> = {
35
37
  value: string;
36
38
  } & T;
37
39
  export declare const validateSocialSecret: (secret: string) => void;
38
- export declare const createOAuthState: ({ intent, now, provider, secret, }: CreateOAuthStateInput) => StoredState<{
40
+ export declare const createOAuthState: ({ intent, navigation, now, provider, secret, }: CreateOAuthStateInput) => StoredState<{
39
41
  codeChallenge: string;
40
42
  state: string;
41
43
  }>;
42
- export declare const resolveOAuthState: ({ now, provider, secret, state, value, }: ResolveOAuthStateInput) => Pick<OAuthPayload, "intent" | "verifier"> | null;
43
- export declare const createRegistrationState: ({ identity, now, secret, }: CreateRegistrationStateInput) => StoredState<object>;
44
- export declare const resolveRegistrationState: ({ now, secret, value, }: ResolveRegistrationStateInput) => SocialIdentity | null;
44
+ export declare const resolveOAuthState: ({ now, provider, secret, state, value, }: ResolveOAuthStateInput) => Pick<OAuthPayload, "errorTo" | "intent" | "registerTo" | "returnTo" | "verifier"> | null;
45
+ export declare const createRegistrationState: ({ identity, navigation, now, secret, }: CreateRegistrationStateInput) => StoredState<object>;
46
+ export declare const resolveRegistrationState: ({ now, secret, value, }: ResolveRegistrationStateInput) => {
47
+ identity: SocialIdentity;
48
+ navigation: SocialNavigation;
49
+ } | null;
45
50
  export {};
46
51
  //# sourceMappingURL=state.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/social/state.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEjF,KAAK,YAAY,GAAG;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,YAAY,CAAC;IACrB,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CACpB,CAAC;AAQF,KAAK,qBAAqB,GAAG;IACzB,MAAM,EAAE,YAAY,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IACjB,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,KAAK,sBAAsB,GAAG;IAC1B,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IACjB,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACjC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CACpC,CAAC;AAEF,KAAK,4BAA4B,GAAG;IAChC,QAAQ,EAAE,cAAc,CAAC;IACzB,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,KAAK,6BAA6B,GAAG;IACjC,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CACpC,CAAC;AAEF,KAAK,WAAW,CAAC,CAAC,IAAI;IAClB,UAAU,EAAE,IAAI,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACjB,GAAG,CAAC,CAAC;AAaN,eAAO,MAAM,oBAAoB,GAAI,QAAQ,MAAM,KAAG,IAOrD,CAAC;AAuFF,eAAO,MAAM,gBAAgB,GAAI,oCAK9B,qBAAqB,KAAG,WAAW,CAAC;IACnC,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;CACjB,CAsBA,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,0CAM/B,sBAAsB,KAAG,IAAI,CAAC,YAAY,EAAE,QAAQ,GAAG,UAAU,CAAC,GAAG,IAmBvE,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,4BAIrC,4BAA4B,KAAG,WAAW,CAAC,MAAM,CAcnD,CAAC;AAEF,eAAO,MAAM,wBAAwB,GAAI,yBAItC,6BAA6B,KAAG,cAAc,GAAG,IAOnD,CAAC"}
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/social/state.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnG,KAAK,YAAY,GAAG;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,YAAY,CAAC;IACrB,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CACpB,GAAG,gBAAgB,CAAC;AAQrB,KAAK,qBAAqB,GAAG;IACzB,MAAM,EAAE,YAAY,CAAC;IACrB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IACjB,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,KAAK,sBAAsB,GAAG;IAC1B,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IACjB,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACjC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CACpC,CAAC;AAEF,KAAK,4BAA4B,GAAG;IAChC,QAAQ,EAAE,cAAc,CAAC;IACzB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,KAAK,6BAA6B,GAAG;IACjC,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CACpC,CAAC;AAEF,KAAK,WAAW,CAAC,CAAC,IAAI;IAClB,UAAU,EAAE,IAAI,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACjB,GAAG,CAAC,CAAC;AAaN,eAAO,MAAM,oBAAoB,GAAI,QAAQ,MAAM,KAAG,IAOrD,CAAC;AAkGF,eAAO,MAAM,gBAAgB,GAAI,gDAM9B,qBAAqB,KAAG,WAAW,CAAC;IACnC,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;CACjB,CAuBA,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,0CAM/B,sBAAsB,KAAG,IAAI,CAC5B,YAAY,EACZ,SAAS,GAAG,QAAQ,GAAG,YAAY,GAAG,UAAU,GAAG,UAAU,CAChE,GAAG,IAyBH,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,wCAKrC,4BAA4B,KAAG,WAAW,CAAC,MAAM,CAenD,CAAC;AAEF,eAAO,MAAM,wBAAwB,GAAI,yBAItC,6BAA6B,KAAG;IAC/B,QAAQ,EAAE,cAAc,CAAC;IACzB,UAAU,EAAE,gBAAgB,CAAC;CAChC,GAAG,IAcH,CAAC"}
@@ -48,6 +48,12 @@ const isProvider = (value) => {
48
48
  const isIntent = (value) => {
49
49
  return value === "login" || value === "register";
50
50
  };
51
+ const isNavigation = (value) => {
52
+ return (isRecord(value) &&
53
+ typeof value.errorTo === "string" &&
54
+ (typeof value.registerTo === "string" || value.registerTo === null) &&
55
+ typeof value.returnTo === "string");
56
+ };
51
57
  const isIdentity = (value) => {
52
58
  return (isRecord(value) &&
53
59
  (typeof value.avatarUrl === "string" || value.avatarUrl === null) &&
@@ -67,21 +73,23 @@ const isOAuthPayload = (value) => {
67
73
  typeof value.state === "string" &&
68
74
  tokenPattern.test(value.state) &&
69
75
  typeof value.verifier === "string" &&
70
- tokenPattern.test(value.verifier));
76
+ tokenPattern.test(value.verifier) &&
77
+ isNavigation(value));
71
78
  };
72
79
  const isRegistrationPayload = (value) => {
73
80
  return (isRecord(value) &&
74
81
  typeof value.exp === "number" &&
75
82
  Number.isSafeInteger(value.exp) &&
76
83
  value.kind === "registration" &&
77
- isIdentity(value.identity));
84
+ isIdentity(value.identity) &&
85
+ isNavigation(value));
78
86
  };
79
87
  const matchesState = ({ expected, received }) => {
80
88
  const left = Buffer.from(expected, "ascii");
81
89
  const right = Buffer.from(received, "ascii");
82
90
  return left.byteLength === right.byteLength && timingSafeEqual(left, right);
83
91
  };
84
- export const createOAuthState = ({ intent, now = () => new Date(), provider, secret, }) => {
92
+ export const createOAuthState = ({ intent, navigation, now = () => new Date(), provider, secret, }) => {
85
93
  validateSocialSecret(secret);
86
94
  const current = now();
87
95
  const expires_at = new Date(current.getTime() + SOCIAL_TTL * 1000);
@@ -91,6 +99,7 @@ export const createOAuthState = ({ intent, now = () => new Date(), provider, sec
91
99
  exp: expires_at.getTime(),
92
100
  intent,
93
101
  kind: "oauth",
102
+ ...navigation,
94
103
  provider,
95
104
  state,
96
105
  verifier,
@@ -114,15 +123,22 @@ export const resolveOAuthState = ({ now = () => new Date(), provider, secret, st
114
123
  !matchesState({ expected: payload.state, received: state })) {
115
124
  return null;
116
125
  }
117
- return { intent: payload.intent, verifier: payload.verifier };
126
+ return {
127
+ errorTo: payload.errorTo,
128
+ intent: payload.intent,
129
+ registerTo: payload.registerTo,
130
+ returnTo: payload.returnTo,
131
+ verifier: payload.verifier,
132
+ };
118
133
  };
119
- export const createRegistrationState = ({ identity, now = () => new Date(), secret, }) => {
134
+ export const createRegistrationState = ({ identity, navigation, now = () => new Date(), secret, }) => {
120
135
  validateSocialSecret(secret);
121
136
  const expires_at = new Date(now().getTime() + SOCIAL_TTL * 1000);
122
137
  const payload = {
123
138
  exp: expires_at.getTime(),
124
139
  identity,
125
140
  kind: "registration",
141
+ ...navigation,
126
142
  };
127
143
  return {
128
144
  expires_at,
@@ -133,7 +149,14 @@ export const resolveRegistrationState = ({ now = () => new Date(), secret, value
133
149
  validateSocialSecret(secret);
134
150
  const payload = parsePayload({ secret, value });
135
151
  return isRegistrationPayload(payload) && payload.exp > now().getTime()
136
- ? payload.identity
152
+ ? {
153
+ identity: payload.identity,
154
+ navigation: {
155
+ errorTo: payload.errorTo,
156
+ registerTo: payload.registerTo,
157
+ returnTo: payload.returnTo,
158
+ },
159
+ }
137
160
  : null;
138
161
  };
139
162
  //# sourceMappingURL=state.js.map