@molecule/api-resource-user 1.0.1 → 1.1.1

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/README.md CHANGED
@@ -3,7 +3,7 @@ AUTO-GENERATED — DO NOT EDIT THIS FILE.
3
3
  Generated by `mlcl sync-docs` from the package's src/index.ts JSDoc + mlcl/registry.json.
4
4
  Edits here are overwritten on the next commit (molecule's pre-commit hook regenerates).
5
5
  To change this document, edit the module-level JSDoc in src/index.ts.
6
- Generated: 2026-08-04T01:49:23.883Z
6
+ Generated: 2026-08-08T07:15:54.389Z
7
7
  -->
8
8
 
9
9
  # @molecule/api-resource-user
@@ -272,6 +272,8 @@ const createOAuthPropsSchema: z.ZodObject<
272
272
  name: z.ZodOptional<z.ZodString>
273
273
  email: z.ZodOptional<z.ZodNullable<z.ZodString>>
274
274
  emailVerified: z.ZodOptional<z.ZodBoolean>
275
+ avatar: z.ZodOptional<z.ZodNullable<z.ZodString>>
276
+ bio: z.ZodOptional<z.ZodNullable<z.ZodString>>
275
277
  oauthServer: z.ZodOptional<z.ZodString> | z.ZodOptional<z.ZodEnum<{}>>
276
278
  oauthId: z.ZodOptional<z.ZodString>
277
279
  oauthData: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>
@@ -574,6 +576,7 @@ Members:
574
576
 
575
577
  Members:
576
578
 
579
+ - `utilities.fetchAvatarDataUri` — function: Downloads an OAuth provider's profile image and re-hosts it as an inline
577
580
  - `utilities.getPlan` — function: Get a user's current plan info.
578
581
  - `utilities.invalidateEntitlementsCache` — function: Invalidates the entitlements plan-key cache for a user after their plan
579
582
  - `utilities.invalidateEntitlementsCacheSafe` — function: Fire-and-forget variant of {@link invalidateEntitlementsCache} for call
@@ -1 +1 @@
1
- {"version":3,"file":"logInOAuth.d.ts","sourceRoot":"","sources":["../../src/handlers/logInOAuth.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAI/E,OAAO,KAAK,KAAK,KAAK,MAAM,aAAa,CAAA;AAuBzC,4GAA4G;AAC5G,MAAM,WAAW,iBAAkB,SAAQ,eAAe;IACxD,IAAI,EAAE;QACJ,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,YAAY,CAAC,EAAE,MAAM,CAAA;QACrB,YAAY,CAAC,EAAE,MAAM,CAAA;QACrB,UAAU,CAAC,EAAE,MAAM,CAAA;KACpB,CAAA;CACF;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,UAAU,GAAI,6BAA6B,KAAK,CAAC,QAAQ,MAOtD,KAAK,iBAAiB,EAAE,KAAK,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAie5D,CAAA"}
1
+ {"version":3,"file":"logInOAuth.d.ts","sourceRoot":"","sources":["../../src/handlers/logInOAuth.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAK/E,OAAO,KAAK,KAAK,KAAK,MAAM,aAAa,CAAA;AAwBzC,4GAA4G;AAC5G,MAAM,WAAW,iBAAkB,SAAQ,eAAe;IACxD,IAAI,EAAE;QACJ,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,YAAY,CAAC,EAAE,MAAM,CAAA;QACrB,YAAY,CAAC,EAAE,MAAM,CAAA;QACrB,UAAU,CAAC,EAAE,MAAM,CAAA;KACpB,CAAA;CACF;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,UAAU,GAAI,6BAA6B,KAAK,CAAC,QAAQ,MAOtD,KAAK,iBAAiB,EAAE,KAAK,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAihB5D,CAAA"}
@@ -6,6 +6,8 @@ import { create as storeCreate, findById, findOne, updateById } from '@molecule/
6
6
  import { t } from '@molecule/api-i18n';
7
7
  import { create as resourceCreate } from '@molecule/api-resource';
8
8
  import * as authorization from '../authorization.js';
9
+ import { MAX_BIO_LENGTH } from '../schema.js';
10
+ import { fetchAvatarDataUri } from '../utilities/fetchAvatarDataUri.js';
9
11
  import { normalizeEmail } from '../utilities/normalizeEmail.js';
10
12
  const analytics = getAnalytics();
11
13
  const logger = getLogger();
@@ -314,10 +316,27 @@ export const logInOAuth = ({ name, tableName, schema }) => {
314
316
  if (existing) {
315
317
  username = `${username}${id.substring(0, 8)}`;
316
318
  }
319
+ // Prefer the provider's display name; when the provider exposes none
320
+ // (or the scope didn't include it), fall back to the local part of the
321
+ // email address ("jane" from "jane@example.com") — never the sanitized
322
+ // username, which reads as line noise in greetings/emails.
323
+ const displayName = oauthProps.name || (email ? email.split('@')[0] : undefined) || undefined;
324
+ // A provider bio (GitHub/GitLab `bio`, X `description`) is persisted
325
+ // when present, truncated to the schema cap so a long provider bio
326
+ // can't fail account creation.
327
+ const bio = oauthProps.bio ? oauthProps.bio.substring(0, MAX_BIO_LENGTH) : undefined;
328
+ // Copy the provider's profile image onto OUR side as an inline
329
+ // data-URI — the stored avatar must never reference a third-party
330
+ // domain (provider URLs expire, and hot-linking leaks every viewer's
331
+ // request to the provider's CDN). Best-effort: any fetch refusal or
332
+ // failure simply means no avatar.
333
+ const avatar = oauthProps.avatar ? await fetchAvatarDataUri(oauthProps.avatar) : undefined;
317
334
  const createResponse = await createResource({
318
335
  props: {
319
336
  username,
320
- name: oauthProps.name,
337
+ name: displayName,
338
+ ...(bio ? { bio } : {}),
339
+ ...(avatar ? { avatar } : {}),
321
340
  email: email || null,
322
341
  emailVerified: oauthEmailVerified,
323
342
  oauthServer: oauthProps.oauthServer,
@@ -386,18 +405,41 @@ export const logInOAuth = ({ name, tableName, schema }) => {
386
405
  .identify({
387
406
  userId: user.id,
388
407
  email: oauthProps.email || undefined,
389
- name: oauthProps.name || undefined,
408
+ name: displayName,
390
409
  })
391
410
  .catch(() => { });
392
411
  }
393
412
  else {
413
+ // Backfill a BLANK display name/bio/avatar from the provider profile
414
+ // (accounts created before profile capture existed, or whose provider
415
+ // only now exposes them). Fill-if-empty only — a value the user set
416
+ // themselves is never overwritten.
417
+ const backfill = {};
418
+ if (!user.name) {
419
+ const fallbackName = oauthProps.name || (email ? email.split('@')[0] : undefined) || undefined;
420
+ if (fallbackName)
421
+ backfill.name = fallbackName;
422
+ }
423
+ if (!user.bio && oauthProps.bio) {
424
+ backfill.bio = oauthProps.bio.substring(0, MAX_BIO_LENGTH);
425
+ }
426
+ if (!user.avatar && oauthProps.avatar) {
427
+ // Same re-hosting as at creation: inline data-URI, never a
428
+ // third-party URL. Best-effort — a failed fetch backfills nothing.
429
+ const fetched = await fetchAvatarDataUri(oauthProps.avatar);
430
+ if (fetched)
431
+ backfill.avatar = fetched;
432
+ }
394
433
  // Update OAuth data on existing user.
395
434
  await updateById(tableName, user.id, {
435
+ ...backfill,
396
436
  oauthData: JSON.stringify(oauthProps.oauthData),
397
437
  updatedAt: new Date().toISOString(),
398
438
  }).catch((err) => {
399
439
  logger.warn('Failed to update OAuth data', { userId: user.id, error: err });
400
440
  });
441
+ // Reflect the backfill in the session/user payload we return.
442
+ user = { ...user, ...backfill };
401
443
  analytics
402
444
  .track({
403
445
  name: 'user.login',
@@ -1 +1 @@
1
- {"version":3,"file":"logInOAuth.js","sourceRoot":"","sources":["../../src/handlers/logInOAuth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logInOAuth.js","sourceRoot":"","sources":["../../src/handlers/logInOAuth.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"updatePlan.d.ts","sourceRoot":"","sources":["../../src/handlers/updatePlan.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAI7D,OAAO,KAAK,KAAK,KAAK,MAAM,aAAa,CAAA;AAMzC,oEAAoE;AACpE,MAAM,WAAW,iBAAkB,SAAQ,eAAe;IACxD,IAAI,EAAE;QACJ,OAAO,CAAC,EAAE,MAAM,CAAA;KACjB,CAAA;CACF;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,UAAU,GAAI,sCAAsC,KAAK,CAAC,QAAQ,MAO/D,KAAK,iBAAiB;;;;;aAAL,CAAC;;;;;;;;;;;;;;EAuOjC,CAAA"}
1
+ {"version":3,"file":"updatePlan.d.ts","sourceRoot":"","sources":["../../src/handlers/updatePlan.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAI7D,OAAO,KAAK,KAAK,KAAK,MAAM,aAAa,CAAA;AAMzC,oEAAoE;AACpE,MAAM,WAAW,iBAAkB,SAAQ,eAAe;IACxD,IAAI,EAAE;QACJ,OAAO,CAAC,EAAE,MAAM,CAAA;KACjB,CAAA;CACF;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,UAAU,GAAI,sCAAsC,KAAK,CAAC,QAAQ,MAiC/D,KAAK,iBAAiB;;;;;aAzBX,CAAC;;;;;;;;;;;;;;EA4Q3B,CAAA"}
@@ -25,11 +25,39 @@ export const updatePlan = ({ name, tableName, schema: _schema }) => {
25
25
  tableName,
26
26
  schema: updatePlanPropsSchema,
27
27
  });
28
+ /**
29
+ * Fire-and-forget analytics with the failure logged (never thrown): a lost
30
+ * funnel event must not break a plan update, but it must not vanish either.
31
+ *
32
+ * @param name - The analytics event name.
33
+ * @param userId - The user the event belongs to.
34
+ * @param properties - Event properties.
35
+ */
36
+ const trackSafe = (name, userId, properties) => {
37
+ analytics.track({ name, userId, properties }).catch((error) => {
38
+ logger.debug(`Analytics track failed for ${name} (best-effort)`, { userId, error });
39
+ });
40
+ };
41
+ /**
42
+ * Log a rejected plan update before returning its 4xx. Every rejection here
43
+ * ends a PAID-conversion attempt, and an unlogged one leaves zero server-side
44
+ * trace when a user reports "the upgrade button did nothing".
45
+ *
46
+ * @param reason - Human-readable rejection reason.
47
+ * @param context - Request context (userId, planKey, errorKey, ...).
48
+ */
49
+ const logRejection = (reason, context) => {
50
+ logger.warn(`Plan update rejected: ${reason}`, context);
51
+ };
28
52
  return async (req) => {
29
53
  try {
30
54
  const id = req.params.id;
31
55
  const { planKey } = req.body;
32
56
  if (!planKey && planKey !== '') {
57
+ logRejection('no planKey in request body', {
58
+ userId: id,
59
+ errorKey: 'user.error.planKeyRequired',
60
+ });
33
61
  return {
34
62
  statusCode: 400,
35
63
  body: { error: t('user.error.planKeyRequired'), errorKey: 'user.error.planKeyRequired' },
@@ -38,6 +66,7 @@ export const updatePlan = ({ name, tableName, schema: _schema }) => {
38
66
  // Get the user.
39
67
  const user = await findById(tableName, id);
40
68
  if (!user) {
69
+ logRejection('user not found', { userId: id, errorKey: 'user.error.notFound' });
41
70
  return {
42
71
  statusCode: 404,
43
72
  body: { error: t('user.error.notFound'), errorKey: 'user.error.notFound' },
@@ -49,6 +78,11 @@ export const updatePlan = ({ name, tableName, schema: _schema }) => {
49
78
  const plan = plans.findPlan(planKey);
50
79
  const previousPlan = plans.findPlan(user.planKey || '');
51
80
  if (!plan) {
81
+ logRejection('planKey not in the plan catalogue', {
82
+ userId: id,
83
+ planKey,
84
+ errorKey: 'user.error.invalidPlan',
85
+ });
52
86
  return {
53
87
  statusCode: 400,
54
88
  body: { error: t('user.error.invalidPlan'), errorKey: 'user.error.invalidPlan' },
@@ -74,32 +108,20 @@ export const updatePlan = ({ name, tableName, schema: _schema }) => {
74
108
  });
75
109
  if (result.checkoutUrl) {
76
110
  // New subscription requires checkout — return the URL to the client.
77
- analytics
78
- .track({
79
- name: 'user.plan_checkout_created',
80
- userId: id,
81
- properties: {
82
- previousPlanKey: previousPlan?.planKey,
83
- newPlanKey: plan.planKey,
84
- platformKey: plan.platformKey,
85
- },
86
- })
87
- .catch(() => { });
111
+ trackSafe('user.plan_checkout_created', id, {
112
+ previousPlanKey: previousPlan?.planKey,
113
+ newPlanKey: plan.planKey,
114
+ platformKey: plan.platformKey,
115
+ });
88
116
  return { statusCode: 201, body: { checkoutUrl: result.checkoutUrl } };
89
117
  }
90
118
  if (result.updated) {
91
119
  // Subscription was updated in-place — update the user record.
92
- analytics
93
- .track({
94
- name: 'user.plan_updated',
95
- userId: id,
96
- properties: {
97
- previousPlanKey: previousPlan?.planKey,
98
- newPlanKey: plan.planKey,
99
- platformKey: plan.platformKey,
100
- },
101
- })
102
- .catch(() => { });
120
+ trackSafe('user.plan_updated', id, {
121
+ previousPlanKey: previousPlan?.planKey,
122
+ newPlanKey: plan.planKey,
123
+ platformKey: plan.platformKey,
124
+ });
103
125
  const updated = await updateResource({
104
126
  id,
105
127
  props: {
@@ -113,17 +135,20 @@ export const updatePlan = ({ name, tableName, schema: _schema }) => {
113
135
  invalidateEntitlementsCacheSafe(id);
114
136
  return updated;
115
137
  }
116
- analytics
117
- .track({
118
- name: 'user.plan_update_failed',
138
+ trackSafe('user.plan_update_failed', id, {
139
+ previousPlanKey: previousPlan?.planKey,
140
+ newPlanKey: plan.planKey,
141
+ platformKey: plan.platformKey,
142
+ });
143
+ // The provider swallowed its own error into { updated: false } (a
144
+ // declined card, an unknown price id, a misconfigured product) —
145
+ // this line is the only request-scoped trace of a LOST conversion.
146
+ logRejection('payment provider did not update the subscription', {
119
147
  userId: id,
120
- properties: {
121
- previousPlanKey: previousPlan?.planKey,
122
- newPlanKey: plan.planKey,
123
- platformKey: plan.platformKey,
124
- },
125
- })
126
- .catch(() => { });
148
+ planKey,
149
+ platformKey: plan.platformKey,
150
+ errorKey: 'user.error.failedToUpdateSubscription',
151
+ });
127
152
  return {
128
153
  statusCode: 400,
129
154
  body: {
@@ -139,6 +164,12 @@ export const updatePlan = ({ name, tableName, schema: _schema }) => {
139
164
  // verification (POST /users/:id/verify-payment/:provider). Falling
140
165
  // through here previously let a user self-grant a paid (Pro) plan with
141
166
  // no payment.
167
+ logRejection('provider has no updateSubscription — verification required', {
168
+ userId: id,
169
+ planKey,
170
+ platformKey: plan.platformKey,
171
+ errorKey: 'user.error.subscriptionActivationRequiresVerification',
172
+ });
142
173
  return {
143
174
  statusCode: 400,
144
175
  body: {
@@ -154,13 +185,10 @@ export const updatePlan = ({ name, tableName, schema: _schema }) => {
154
185
  // Switching to free plan. Keep current planKey if subscription hasn't expired yet.
155
186
  const now = new Date().getTime();
156
187
  const expires = new Date(user.planExpiresAt || 0).getTime();
157
- analytics
158
- .track({
159
- name: 'user.plan_updated',
160
- userId: id,
161
- properties: { previousPlanKey: previousPlan?.planKey, newPlanKey: '' },
162
- })
163
- .catch(() => { });
188
+ trackSafe('user.plan_updated', id, {
189
+ previousPlanKey: previousPlan?.planKey,
190
+ newPlanKey: '',
191
+ });
164
192
  const downgraded = await updateResource({
165
193
  id,
166
194
  props: {
@@ -180,6 +208,11 @@ export const updatePlan = ({ name, tableName, schema: _schema }) => {
180
208
  // (checkout/in-place) or receipt verification
181
209
  // (POST /users/:id/verify-payment/:provider). This closes the
182
210
  // self-grant escalation where a user PATCHed a paid planKey directly.
211
+ logRejection('paid plan has no payment platform handler', {
212
+ userId: id,
213
+ planKey,
214
+ errorKey: 'user.error.subscriptionActivationRequiresVerification',
215
+ });
183
216
  return {
184
217
  statusCode: 400,
185
218
  body: {
@@ -194,6 +227,11 @@ export const updatePlan = ({ name, tableName, schema: _schema }) => {
194
227
  // Upgrades MUST go through a bonded PlanService + PaymentProvider to prevent
195
228
  // privilege escalation (users setting planKey to a paid tier without payment).
196
229
  if (planKey !== '') {
230
+ logRejection('no plans service bonded — paid planKey refused', {
231
+ userId: id,
232
+ planKey,
233
+ errorKey: 'user.error.failedToUpdatePlan',
234
+ });
197
235
  return {
198
236
  statusCode: 400,
199
237
  body: {
@@ -202,13 +240,7 @@ export const updatePlan = ({ name, tableName, schema: _schema }) => {
202
240
  },
203
241
  };
204
242
  }
205
- analytics
206
- .track({
207
- name: 'user.plan_updated',
208
- userId: id,
209
- properties: { newPlanKey: planKey },
210
- })
211
- .catch(() => { });
243
+ trackSafe('user.plan_updated', id, { newPlanKey: planKey });
212
244
  const result = await updateResource({ id, props: { planKey, planAutoRenews: false } });
213
245
  // Drop the cached plan key so the downgrade takes effect immediately,
214
246
  // not after the entitlements cache TTL.
@@ -228,7 +260,11 @@ export const updatePlan = ({ name, tableName, schema: _schema }) => {
228
260
  body: { error: error.message, errorKey: error.errorKey },
229
261
  };
230
262
  }
231
- logger.error(error);
263
+ logger.error('Plan update failed', {
264
+ userId: req.params.id,
265
+ planKey: req.body?.planKey,
266
+ error,
267
+ });
232
268
  return {
233
269
  statusCode: 500,
234
270
  body: {
@@ -1 +1 @@
1
- {"version":3,"file":"updatePlan.js","sourceRoot":"","sources":["../../src/handlers/updatePlan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACjD,OAAO,EAAE,CAAC,EAAE,MAAM,oBAAoB,CAAA;AACtC,OAAO,EACL,0BAA0B,GAG3B,MAAM,wBAAwB,CAAA;AAE/B,OAAO,EAAE,MAAM,IAAI,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAEjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AAEpD,OAAO,EAAE,+BAA+B,EAAE,MAAM,wCAAwC,CAAA;AAExF,MAAM,SAAS,GAAG,YAAY,EAAE,CAAA;AAChC,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;AAS1B;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAkB,EAAE,EAAE;IACjF,MAAM,cAAc,GAAG,cAAc,CAAC;QACpC,IAAI;QACJ,SAAS;QACT,MAAM,EAAE,qBAAqB;KAC9B,CAAC,CAAA;IAEF,OAAO,KAAK,EAAE,GAAsB,EAAE,EAAE;QACtC,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,EAAY,CAAA;YAClC,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC,IAAI,CAAA;YAE5B,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;gBAC/B,OAAO;oBACL,UAAU,EAAE,GAAG;oBACf,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,4BAA4B,CAAC,EAAE,QAAQ,EAAE,4BAA4B,EAAE;iBACzF,CAAA;YACH,CAAC;YAED,gBAAgB;YAChB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAc,SAAS,EAAE,EAAE,CAAC,CAAA;YAEvD,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,OAAO;oBACL,UAAU,EAAE,GAAG;oBACf,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,qBAAqB,CAAC,EAAE,QAAQ,EAAE,qBAAqB,EAAE;iBAC3E,CAAA;YACH,CAAC;YAED,8BAA8B;YAC9B,MAAM,KAAK,GAAG,GAAG,CAAc,OAAO,CAAC,CAAA;YAEvC,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;gBACpC,MAAM,YAAY,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAA;gBAEvD,IAAI,CAAC,IAAI,EAAE,CAAC;oBACV,OAAO;wBACL,UAAU,EAAE,GAAG;wBACf,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,wBAAwB,CAAC,EAAE,QAAQ,EAAE,wBAAwB,EAAE;qBACjF,CAAA;gBACH,CAAC;gBAED,iFAAiF;gBACjF,IACE,YAAY;oBACZ,YAAY,CAAC,WAAW;oBACxB,YAAY,CAAC,WAAW,KAAK,IAAI,CAAC,WAAW,EAC7C,CAAC;oBACD,MAAM,gBAAgB,GAAG,GAAG,CAAkB,UAAU,EAAE,YAAY,CAAC,WAAW,CAAC,CAAA;oBACnF,IAAI,gBAAgB,EAAE,kBAAkB,EAAE,CAAC;wBACzC,MAAM,gBAAgB,CAAC,kBAAkB,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAA;oBAChE,CAAC;gBACH,CAAC;gBAED,+DAA+D;gBAC/D,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;oBACrB,MAAM,eAAe,GAAG,GAAG,CAAkB,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;oBAC1E,IAAI,eAAe,EAAE,kBAAkB,EAAE,CAAC;wBACxC,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,kBAAkB,CAAC;4BACtD,MAAM,EAAE,IAAI,CAAC,EAAE;4BACf,YAAY,EAAE,IAAI,CAAC,iBAAiB;4BACpC,iBAAiB,EAAE,YAAY,EAAE,iBAAiB;yBACnD,CAAC,CAAA;wBAEF,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;4BACvB,qEAAqE;4BACrE,SAAS;iCACN,KAAK,CAAC;gCACL,IAAI,EAAE,4BAA4B;gCAClC,MAAM,EAAE,EAAE;gCACV,UAAU,EAAE;oCACV,eAAe,EAAE,YAAY,EAAE,OAAO;oCACtC,UAAU,EAAE,IAAI,CAAC,OAAO;oCACxB,WAAW,EAAE,IAAI,CAAC,WAAW;iCAC9B;6BACF,CAAC;iCACD,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;4BAClB,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,EAAE,CAAA;wBACvE,CAAC;wBAED,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;4BACnB,8DAA8D;4BAC9D,SAAS;iCACN,KAAK,CAAC;gCACL,IAAI,EAAE,mBAAmB;gCACzB,MAAM,EAAE,EAAE;gCACV,UAAU,EAAE;oCACV,eAAe,EAAE,YAAY,EAAE,OAAO;oCACtC,UAAU,EAAE,IAAI,CAAC,OAAO;oCACxB,WAAW,EAAE,IAAI,CAAC,WAAW;iCAC9B;6BACF,CAAC;iCACD,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;4BAClB,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC;gCACnC,EAAE;gCACF,KAAK,EAAE;oCACL,OAAO,EAAE,IAAI,CAAC,OAAO;oCACrB,aAAa,EAAE,MAAM,CAAC,YAAY,EAAE,SAAS;oCAC7C,cAAc,EAAE,MAAM,CAAC,YAAY,EAAE,UAAU;iCAChD;6BACF,CAAC,CAAA;4BACF,2DAA2D;4BAC3D,qDAAqD;4BACrD,+BAA+B,CAAC,EAAE,CAAC,CAAA;4BACnC,OAAO,OAAO,CAAA;wBAChB,CAAC;wBAED,SAAS;6BACN,KAAK,CAAC;4BACL,IAAI,EAAE,yBAAyB;4BAC/B,MAAM,EAAE,EAAE;4BACV,UAAU,EAAE;gCACV,eAAe,EAAE,YAAY,EAAE,OAAO;gCACtC,UAAU,EAAE,IAAI,CAAC,OAAO;gCACxB,WAAW,EAAE,IAAI,CAAC,WAAW;6BAC9B;yBACF,CAAC;6BACD,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;wBAClB,OAAO;4BACL,UAAU,EAAE,GAAG;4BACf,IAAI,EAAE;gCACJ,KAAK,EAAE,CAAC,CAAC,uCAAuC,CAAC;gCACjD,QAAQ,EAAE,uCAAuC;6BAClD;yBACF,CAAA;oBACH,CAAC;oBAED,sEAAsE;oBACtE,mEAAmE;oBACnE,iEAAiE;oBACjE,6DAA6D;oBAC7D,mEAAmE;oBACnE,uEAAuE;oBACvE,cAAc;oBACd,OAAO;wBACL,UAAU,EAAE,GAAG;wBACf,IAAI,EAAE;4BACJ,KAAK,EAAE,CAAC,CAAC,uDAAuD,EAAE,SAAS,EAAE;gCAC3E,YAAY,EACV,8GAA8G;6BACjH,CAAC;4BACF,QAAQ,EAAE,uDAAuD;yBAClE;qBACF,CAAA;gBACH,CAAC;gBAED,kDAAkD;gBAClD,IAAI,IAAI,CAAC,OAAO,KAAK,EAAE,EAAE,CAAC;oBACxB,mFAAmF;oBACnF,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAA;oBAChC,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,CAAA;oBAC3D,SAAS;yBACN,KAAK,CAAC;wBACL,IAAI,EAAE,mBAAmB;wBACzB,MAAM,EAAE,EAAE;wBACV,UAAU,EAAE,EAAE,eAAe,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE;qBACvE,CAAC;yBACD,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;oBAClB,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC;wBACtC,EAAE;wBACF,KAAK,EAAE;4BACL,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC;4BACtE,cAAc,EAAE,KAAK;yBACtB;qBACF,CAAC,CAAA;oBACF,yDAAyD;oBACzD,qDAAqD;oBACrD,+BAA+B,CAAC,EAAE,CAAC,CAAA;oBACnC,OAAO,UAAU,CAAA;gBACnB,CAAC;gBAED,uEAAuE;gBACvE,uEAAuE;gBACvE,oEAAoE;gBACpE,0DAA0D;gBAC1D,8CAA8C;gBAC9C,8DAA8D;gBAC9D,sEAAsE;gBACtE,OAAO;oBACL,UAAU,EAAE,GAAG;oBACf,IAAI,EAAE;wBACJ,KAAK,EAAE,CAAC,CAAC,uDAAuD,EAAE,SAAS,EAAE;4BAC3E,YAAY,EACV,8GAA8G;yBACjH,CAAC;wBACF,QAAQ,EAAE,uDAAuD;qBAClE;iBACF,CAAA;YACH,CAAC;YAED,+DAA+D;YAC/D,6EAA6E;YAC7E,+EAA+E;YAC/E,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;gBACnB,OAAO;oBACL,UAAU,EAAE,GAAG;oBACf,IAAI,EAAE;wBACJ,KAAK,EAAE,CAAC,CAAC,+BAA+B,CAAC;wBACzC,QAAQ,EAAE,+BAA+B;qBAC1C;iBACF,CAAA;YACH,CAAC;YACD,SAAS;iBACN,KAAK,CAAC;gBACL,IAAI,EAAE,mBAAmB;gBACzB,MAAM,EAAE,EAAE;gBACV,UAAU,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE;aACpC,CAAC;iBACD,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;YAClB,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,EAAE,CAAC,CAAA;YACtF,sEAAsE;YACtE,wCAAwC;YACxC,+BAA+B,CAAC,EAAE,CAAC,CAAA;YACnC,OAAO,MAAM,CAAA;QACf,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,oEAAoE;YACpE,uEAAuE;YACvE,qEAAqE;YACrE,uEAAuE;YACvE,uEAAuE;YACvE,IAAI,0BAA0B,CAAC,KAAK,CAAC,EAAE,CAAC;gBACtC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAA;gBACxD,OAAO;oBACL,UAAU,EAAE,KAAK,CAAC,UAAU;oBAC5B,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE;iBACzD,CAAA;YACH,CAAC;YACD,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;YACnB,OAAO;gBACL,UAAU,EAAE,GAAG;gBACf,IAAI,EAAE;oBACJ,KAAK,EAAE,CAAC,CAAC,+BAA+B,CAAC;oBACzC,QAAQ,EAAE,+BAA+B;iBAC1C;aACF,CAAA;QACH,CAAC;IACH,CAAC,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"updatePlan.js","sourceRoot":"","sources":["../../src/handlers/updatePlan.ts"],"names":[],"mappings":"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"}
package/dist/schema.d.ts CHANGED
@@ -115,6 +115,8 @@ export declare const createOAuthPropsSchema: z.ZodObject<{
115
115
  name: z.ZodOptional<z.ZodString>;
116
116
  email: z.ZodOptional<z.ZodNullable<z.ZodString>>;
117
117
  emailVerified: z.ZodOptional<z.ZodBoolean>;
118
+ avatar: z.ZodOptional<z.ZodNullable<z.ZodString>>;
119
+ bio: z.ZodOptional<z.ZodNullable<z.ZodString>>;
118
120
  oauthServer: z.ZodOptional<z.ZodString> | z.ZodOptional<z.ZodEnum<{}>>;
119
121
  oauthId: z.ZodOptional<z.ZodString>;
120
122
  oauthData: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAIvB;;GAEG;AACH,eAAO,MAAM,cAAc,OAAO,CAAA;AAElC;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,QAAa,CAAA;AAE3C;;;;;;;;GAQG;AACH,eAAO,MAAM,YAAY,GACvB,YAAY,SAAS,SAAS,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,GAAG,SAAS,GAAG,SAAS,EAC3E,QAAQ,SAAS,SAAS,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,GAAG,SAAS,GAAG,SAAS,EACvE,UAAU;IACV,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B,QAAQ,CAAC,EAAE,QAAQ,CAAA;CAEpB;;;;;;;;;;;;;;;;;iBAmEA,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;iBAAiB,CAAA;AAEzC;;GAEG;AACH,MAAM,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAA;AAE/C;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;iBAgC5B,CAAA;AAEF;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAE3D;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;iBAI5B,CAAA;AAEF;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAE3D,6DAA6D;AAC7D,eAAO,MAAM,uBAAuB;;iBAElC,CAAA;AAEF;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAA;AAEvE;;GAEG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;iBAQjC,CAAA;AAEF;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAErE,+EAA+E;AAC/E,eAAO,MAAM,iBAAiB;;;;;;iBAQlB,CAAA;AAEZ;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAE3D,yEAAyE;AACzE,eAAO,MAAM,+BAA+B;;iBAIhC,CAAA;AAEZ;;GAEG;AACH,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAA;AAEvF,0FAA0F;AAC1F,eAAO,MAAM,qBAAqB;;;;iBAMtB,CAAA;AAEZ;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAA;AAEnE;;GAEG;AACH,eAAO,MAAM,0BAA0B;;iBAI3B,CAAA;AAEZ;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAA;AAE7E;;GAEG;AACH,eAAO,MAAM,gCAAgC;;;iBAKjC,CAAA;AAEZ;;GAEG;AACH,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gCAAgC,CAAC,CAAA;AAEzF,qFAAqF;AACrF,eAAO,MAAM,aAAa;;;;;;iBAqBxB,CAAA;AAEF;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAA;AAEnD;;GAEG;AACH,OAAO,EAAE,CAAC,EAAE,CAAA"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAIvB;;GAEG;AACH,eAAO,MAAM,cAAc,OAAO,CAAA;AAElC;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,QAAa,CAAA;AAE3C;;;;;;;;GAQG;AACH,eAAO,MAAM,YAAY,GACvB,YAAY,SAAS,SAAS,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,GAAG,SAAS,GAAG,SAAS,EAC3E,QAAQ,SAAS,SAAS,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,GAAG,SAAS,GAAG,SAAS,EACvE,UAAU;IACV,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B,QAAQ,CAAC,EAAE,QAAQ,CAAA;CAEpB;;;;;;;;;;;;;;;;;iBAmEA,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;iBAAiB,CAAA;AAEzC;;GAEG;AACH,MAAM,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAA;AAE/C;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;iBAgC5B,CAAA;AAEF;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAE3D;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;iBAI5B,CAAA;AAEF;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAE3D,6DAA6D;AAC7D,eAAO,MAAM,uBAAuB;;iBAElC,CAAA;AAEF;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAA;AAEvE;;GAEG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;iBAUjC,CAAA;AAEF;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAErE,+EAA+E;AAC/E,eAAO,MAAM,iBAAiB;;;;;;iBAQlB,CAAA;AAEZ;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAE3D,yEAAyE;AACzE,eAAO,MAAM,+BAA+B;;iBAIhC,CAAA;AAEZ;;GAEG;AACH,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAA;AAEvF,0FAA0F;AAC1F,eAAO,MAAM,qBAAqB;;;;iBAMtB,CAAA;AAEZ;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAA;AAEnE;;GAEG;AACH,eAAO,MAAM,0BAA0B;;iBAI3B,CAAA;AAEZ;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAA;AAE7E;;GAEG;AACH,eAAO,MAAM,gCAAgC;;;iBAKjC,CAAA;AAEZ;;GAEG;AACH,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gCAAgC,CAAC,CAAA;AAEzF,qFAAqF;AACrF,eAAO,MAAM,aAAa;;;;;;iBAqBxB,CAAA;AAEF;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAA;AAEnD;;GAEG;AACH,OAAO,EAAE,CAAC,EAAE,CAAA"}
package/dist/schema.js CHANGED
@@ -152,6 +152,8 @@ export const createSecretPropsSchema = secretPropsSchema.pick({
152
152
  export const createOAuthPropsSchema = propsSchema.pick({
153
153
  username: true,
154
154
  name: true,
155
+ bio: true,
156
+ avatar: true,
155
157
  email: true,
156
158
  emailVerified: true,
157
159
  oauthServer: true,
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Downloads an OAuth provider's profile image and re-hosts it as an inline
3
+ * `data:` URI so the stored avatar never references a third-party domain
4
+ * (provider URLs expire, and hot-linking leaks every viewer's request to the
5
+ * provider's CDN).
6
+ *
7
+ * Best-effort by design: any refusal or failure — non-https URL, private or
8
+ * unresolvable host, timeout, non-image content type, oversized body — returns
9
+ * `undefined` (logged at debug) so OAuth login/creation never fails over an
10
+ * avatar.
11
+ *
12
+ * @param url - The provider profile-image URL (`OAuthUserProps.avatar`).
13
+ * @returns The image as a `data:` URI within {@link MAX_AVATAR_LENGTH}, or `undefined`.
14
+ */
15
+ export declare const fetchAvatarDataUri: (url: string) => Promise<string | undefined>;
16
+ //# sourceMappingURL=fetchAvatarDataUri.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetchAvatarDataUri.d.ts","sourceRoot":"","sources":["../../src/utilities/fetchAvatarDataUri.ts"],"names":[],"mappings":"AAyGA;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,kBAAkB,GAAU,KAAK,MAAM,KAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAqChF,CAAA"}
@@ -0,0 +1,155 @@
1
+ import { lookup } from 'node:dns/promises';
2
+ import { getLogger } from '@molecule/api-bond';
3
+ import { MAX_AVATAR_LENGTH } from '../schema.js';
4
+ const logger = getLogger();
5
+ /** How long an avatar download may take before it is abandoned (best-effort). */
6
+ const AVATAR_FETCH_TIMEOUT_MS = 5_000;
7
+ /**
8
+ * Maximum raw image size we will inline. Base64 inflates bytes by 4/3 and the
9
+ * data-URI prefix adds a few dozen characters, so this keeps the encoded
10
+ * result under the schema's {@link MAX_AVATAR_LENGTH} cap.
11
+ */
12
+ const MAX_AVATAR_BYTES = Math.floor(((MAX_AVATAR_LENGTH - 64) * 3) / 4);
13
+ /** Image content types we accept from a provider avatar URL. */
14
+ const IMAGE_CONTENT_TYPE = /^image\/(png|jpe?g|gif|webp|avif)(\s*;.*)?$/i;
15
+ /**
16
+ * Whether an IP address (v4 dotted-quad or v6) is private, loopback,
17
+ * link-local, or otherwise non-public — i.e. an address an avatar download
18
+ * must never reach (SSRF guard).
19
+ *
20
+ * @param address - The resolved IP address.
21
+ * @param family - 4 or 6.
22
+ * @returns `true` when the address is NOT publicly routable.
23
+ */
24
+ const isNonPublicAddress = (address, family) => {
25
+ if (family === 4) {
26
+ const octets = address.split('.').map(Number);
27
+ if (octets.length !== 4 || octets.some((o) => Number.isNaN(o)))
28
+ return true;
29
+ const [a, b] = octets;
30
+ return (a === 0 || // "this network"
31
+ a === 10 || // private
32
+ a === 127 || // loopback
33
+ (a === 100 && b >= 64 && b <= 127) || // CGNAT
34
+ (a === 169 && b === 254) || // link-local
35
+ (a === 172 && b >= 16 && b <= 31) || // private
36
+ (a === 192 && b === 0) || // IETF protocol assignments + 192.0.2.0/24 doc
37
+ (a === 192 && b === 168) || // private
38
+ (a === 198 && (b === 18 || b === 19)) || // benchmarking
39
+ a >= 224 // multicast + reserved + broadcast
40
+ );
41
+ }
42
+ const lower = address.toLowerCase();
43
+ // v4-mapped v6 (::ffff:10.0.0.1) — judge the embedded v4.
44
+ const mapped = lower.match(/^::ffff:(\d+\.\d+\.\d+\.\d+)$/);
45
+ if (mapped)
46
+ return isNonPublicAddress(mapped[1], 4);
47
+ return (lower === '::' ||
48
+ lower === '::1' || // loopback
49
+ lower.startsWith('fc') || // unique-local fc00::/7
50
+ lower.startsWith('fd') ||
51
+ lower.startsWith('fe8') || // link-local fe80::/10
52
+ lower.startsWith('fe9') ||
53
+ lower.startsWith('fea') ||
54
+ lower.startsWith('feb'));
55
+ };
56
+ /**
57
+ * Whether a URL is one we are willing to download an avatar from: https, a
58
+ * real hostname (no IP literals, localhost, or internal-suffix names), and
59
+ * every DNS answer for it publicly routable.
60
+ *
61
+ * @param url - The candidate avatar URL.
62
+ * @returns `true` when the URL passes every guard.
63
+ */
64
+ const isSafeAvatarUrl = async (url) => {
65
+ let parsed;
66
+ try {
67
+ parsed = new URL(url);
68
+ }
69
+ catch (_error) {
70
+ // Not a URL at all — treated as "no avatar", nothing to log.
71
+ return false;
72
+ }
73
+ if (parsed.protocol !== 'https:')
74
+ return false;
75
+ // WHATWG URL keeps the brackets on IPv6 literals ("[::1]") — strip them so
76
+ // the address checks below see the bare address.
77
+ const host = parsed.hostname.toLowerCase().replace(/^\[|\]$/g, '');
78
+ if (host === 'localhost' || host.endsWith('.localhost'))
79
+ return false;
80
+ if (host.endsWith('.local') || host.endsWith('.internal') || host.endsWith('.home.arpa')) {
81
+ return false;
82
+ }
83
+ // IP literals (v4, or bracketed v6 — URL strips the brackets into hostname).
84
+ if (/^\d+\.\d+\.\d+\.\d+$/.test(host))
85
+ return isNonPublicAddress(host, 4) === false;
86
+ if (host.includes(':'))
87
+ return isNonPublicAddress(host, 6) === false;
88
+ // Resolve and require EVERY answer to be public. (Residual: fetch re-resolves,
89
+ // so a fast-flux DNS rebind could still race this — acceptable for URLs that
90
+ // come from an OAuth provider's own profile response, not raw user input.)
91
+ try {
92
+ const answers = await lookup(host, { all: true, verbatim: true });
93
+ if (!answers.length)
94
+ return false;
95
+ return answers.every((entry) => !isNonPublicAddress(entry.address, entry.family));
96
+ }
97
+ catch (error) {
98
+ logger.debug('Avatar host did not resolve', { host, error });
99
+ return false;
100
+ }
101
+ };
102
+ /**
103
+ * Downloads an OAuth provider's profile image and re-hosts it as an inline
104
+ * `data:` URI so the stored avatar never references a third-party domain
105
+ * (provider URLs expire, and hot-linking leaks every viewer's request to the
106
+ * provider's CDN).
107
+ *
108
+ * Best-effort by design: any refusal or failure — non-https URL, private or
109
+ * unresolvable host, timeout, non-image content type, oversized body — returns
110
+ * `undefined` (logged at debug) so OAuth login/creation never fails over an
111
+ * avatar.
112
+ *
113
+ * @param url - The provider profile-image URL (`OAuthUserProps.avatar`).
114
+ * @returns The image as a `data:` URI within {@link MAX_AVATAR_LENGTH}, or `undefined`.
115
+ */
116
+ export const fetchAvatarDataUri = async (url) => {
117
+ try {
118
+ if (!(await isSafeAvatarUrl(url)))
119
+ return undefined;
120
+ const controller = new AbortController();
121
+ const timeout = setTimeout(() => controller.abort(), AVATAR_FETCH_TIMEOUT_MS);
122
+ let response;
123
+ try {
124
+ response = await fetch(url, { signal: controller.signal, redirect: 'follow' });
125
+ }
126
+ finally {
127
+ clearTimeout(timeout);
128
+ }
129
+ if (!response.ok)
130
+ return undefined;
131
+ // Redirects are followed opaquely, so re-check the URL we actually landed on.
132
+ if (response.url && response.url !== url && !(await isSafeAvatarUrl(response.url))) {
133
+ return undefined;
134
+ }
135
+ const contentType = response.headers.get('content-type') ?? '';
136
+ const match = contentType.match(IMAGE_CONTENT_TYPE);
137
+ if (!match)
138
+ return undefined;
139
+ const declaredLength = Number(response.headers.get('content-length'));
140
+ if (Number.isFinite(declaredLength) && declaredLength > MAX_AVATAR_BYTES)
141
+ return undefined;
142
+ const buffer = Buffer.from(await response.arrayBuffer());
143
+ if (buffer.byteLength === 0 || buffer.byteLength > MAX_AVATAR_BYTES)
144
+ return undefined;
145
+ const mime = `image/${match[1].toLowerCase()}`;
146
+ const dataUri = `data:${mime};base64,${buffer.toString('base64')}`;
147
+ return dataUri.length <= MAX_AVATAR_LENGTH ? dataUri : undefined;
148
+ }
149
+ catch (error) {
150
+ // Best-effort: a failed avatar download must never break OAuth login.
151
+ logger.debug('Failed to fetch OAuth avatar', { url, error });
152
+ return undefined;
153
+ }
154
+ };
155
+ //# sourceMappingURL=fetchAvatarDataUri.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetchAvatarDataUri.js","sourceRoot":"","sources":["../../src/utilities/fetchAvatarDataUri.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ export * from './fetchAvatarDataUri.js';
1
2
  export * from './getPlan.js';
2
3
  export * from './invalidateEntitlements.js';
3
4
  export * from './normalizeEmail.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utilities/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,6BAA6B,CAAA;AAC3C,cAAc,qBAAqB,CAAA;AACnC,cAAc,aAAa,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utilities/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAA;AACvC,cAAc,cAAc,CAAA;AAC5B,cAAc,6BAA6B,CAAA;AAC3C,cAAc,qBAAqB,CAAA;AACnC,cAAc,aAAa,CAAA"}
@@ -1,3 +1,4 @@
1
+ export * from './fetchAvatarDataUri.js';
1
2
  export * from './getPlan.js';
2
3
  export * from './invalidateEntitlements.js';
3
4
  export * from './normalizeEmail.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utilities/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,6BAA6B,CAAA;AAC3C,cAAc,qBAAqB,CAAA;AACnC,cAAc,aAAa,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utilities/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAA;AACvC,cAAc,cAAc,CAAA;AAC5B,cAAc,6BAA6B,CAAA;AAC3C,cAAc,qBAAqB,CAAA;AACnC,cAAc,aAAa,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@molecule/api-resource-user",
3
- "version": "1.0.1",
3
+ "version": "1.1.1",
4
4
  "description": "User resource types and schema for molecule.dev.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",