@intelligo-dev/auth 1.0.0-beta.1 → 1.0.0-beta.13
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/NOTICE +6 -0
- package/README.md +59 -0
- package/dist/client.js +6 -16
- package/dist/client.js.map +1 -1
- package/dist/edge.js +22 -28
- package/dist/edge.js.map +1 -1
- package/dist/guard-error.js +23 -0
- package/dist/guard-error.js.map +1 -0
- package/dist/helpers.js +77 -97
- package/dist/helpers.js.map +1 -1
- package/dist/impersonation.js +46 -18
- package/dist/impersonation.js.map +1 -1
- package/dist/index.js +21 -27
- package/dist/index.js.map +1 -1
- package/dist/invitation-links.js +13 -0
- package/dist/invitation-links.js.map +1 -0
- package/dist/onboarding/errors.js +4 -14
- package/dist/onboarding/errors.js.map +1 -1
- package/dist/onboarding/schemas.js +3 -15
- package/dist/onboarding/schemas.js.map +1 -1
- package/dist/onboarding/service.js +14 -68
- package/dist/onboarding/service.js.map +1 -1
- package/dist/org-api.js +10 -67
- package/dist/org-api.js.map +1 -1
- package/dist/profile/errors.js +4 -14
- package/dist/profile/errors.js.map +1 -1
- package/dist/profile/schemas.js +1 -10
- package/dist/profile/schemas.js.map +1 -1
- package/dist/profile/service.js +12 -53
- package/dist/profile/service.js.map +1 -1
- package/dist/roles.js +28 -5
- package/dist/roles.js.map +1 -1
- package/dist/server.js +80 -98
- package/dist/server.js.map +1 -1
- package/dist/team/errors.js +4 -13
- package/dist/team/errors.js.map +1 -1
- package/dist/team/schemas.js +4 -18
- package/dist/team/schemas.js.map +1 -1
- package/dist/team/service.js +80 -157
- package/dist/team/service.js.map +1 -1
- package/dist/trusted-origins.js +25 -0
- package/dist/trusted-origins.js.map +1 -0
- package/dist/workspace/errors.js +4 -14
- package/dist/workspace/errors.js.map +1 -1
- package/dist/workspace/schemas.js +2 -18
- package/dist/workspace/schemas.js.map +1 -1
- package/dist/workspace/service.js +31 -91
- package/dist/workspace/service.js.map +1 -1
- package/dist/workspace-bootstrap.js +33 -0
- package/dist/workspace-bootstrap.js.map +1 -0
- package/dist/workspace-init.js +46 -51
- package/dist/workspace-init.js.map +1 -1
- package/dist/workspace-slug.js +29 -0
- package/dist/workspace-slug.js.map +1 -0
- package/package.json +36 -14
- package/src/client.ts +6 -16
- package/src/edge.ts +22 -28
- package/src/guard-error.ts +36 -0
- package/src/helpers.ts +99 -114
- package/src/impersonation.ts +52 -17
- package/src/index.ts +14 -10
- package/src/invitation-links.ts +15 -0
- package/src/onboarding/errors.ts +5 -17
- package/src/onboarding/schemas.ts +3 -15
- package/src/onboarding/service.ts +11 -65
- package/src/org-api.ts +9 -66
- package/src/profile/errors.ts +5 -17
- package/src/profile/schemas.ts +1 -10
- package/src/profile/service.ts +8 -49
- package/src/roles.ts +36 -5
- package/src/server.ts +86 -104
- package/src/team/errors.ts +4 -13
- package/src/team/schemas.ts +4 -18
- package/src/team/service.ts +100 -174
- package/src/trusted-origins.ts +26 -0
- package/src/workspace/errors.ts +4 -14
- package/src/workspace/schemas.ts +2 -18
- package/src/workspace/service.ts +40 -92
- package/src/workspace-bootstrap.ts +57 -0
- package/src/workspace-init.ts +55 -56
- package/src/workspace-slug.ts +32 -0
package/dist/team/service.js
CHANGED
|
@@ -1,88 +1,22 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
* migration, section C1).
|
|
2
|
+
* Workspace membership and invitations. Each method authorizes itself and
|
|
3
|
+
* throws `TeamServiceError`; billing, email and notifications arrive as ports
|
|
4
|
+
* bound at the composition root.
|
|
6
5
|
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
* tests/architecture/dependency-direction.test.ts) never grows to
|
|
11
|
-
* include billing, email, or notifications. A consumer binds those in
|
|
12
|
-
* at its composition root:
|
|
13
|
-
*
|
|
14
|
-
* const teamService = createTeamService({
|
|
15
|
-
* checkMemberLimit: checkTeamMemberLimit, // @intelligo-dev/billing
|
|
16
|
-
* sendInvitationEmail: ..., // see note below
|
|
17
|
-
* notifyMemberJoined: triggerTeamMemberJoinedNotification, // @intelligo-dev/core/notifications
|
|
18
|
-
* });
|
|
19
|
-
*
|
|
20
|
-
* Authorization (`requireAuth`/`requireWorkspace`/`requireRole`) lives
|
|
21
|
-
* INSIDE each method, not at the transport. Every recognized failure
|
|
22
|
-
* throws `TeamServiceError` with a stable `code` — no
|
|
23
|
-
* revalidatePath/Sentry/next-intl/toast here; that shaping is the
|
|
24
|
-
* transport's job (a Server Action, a route handler).
|
|
25
|
-
*
|
|
26
|
-
* ---------------------------------------------------------------------
|
|
27
|
-
* Invitation-email duplication (investigated for this extraction)
|
|
28
|
-
* ---------------------------------------------------------------------
|
|
29
|
-
* `packages/auth/src/server.ts` configures the Better-Auth organization
|
|
30
|
-
* plugin's own `sendInvitationEmail` hook (EMAIL-06). Reading the
|
|
31
|
-
* installed org plugin (`better-auth@1.6.30`,
|
|
32
|
-
* `plugins/organization/routes/crud-invites.mjs`): every successful
|
|
33
|
-
* `/organization/invite-member` call — both the "new invitation" path
|
|
34
|
-
* and the "resend" path — unconditionally does
|
|
35
|
-
* `if (ctx.context.orgOptions.sendInvitationEmail) await
|
|
36
|
-
* runInBackgroundOrAwait(orgOptions.sendInvitationEmail(...))` once the
|
|
37
|
-
* invitation row is created. Because `server.ts` always sets that
|
|
38
|
-
* option, the hook fires on every `inviteMember()` call this service
|
|
39
|
-
* makes — there is no code path where it does not.
|
|
40
|
-
*
|
|
41
|
-
* ignite's current `actions/team.ts` ALSO calls
|
|
42
|
-
* `@intelligo-dev/core/email`'s `sendInvitationEmail` directly after the
|
|
43
|
-
* same `/organization/invite-member` call. That means **two** emails
|
|
44
|
-
* go out per invitation today. This is a live duplication bug, not a
|
|
45
|
-
* hypothetical.
|
|
46
|
-
*
|
|
47
|
-
* Decision: `inviteMember` below does NOT call `ports.sendInvitationEmail`
|
|
48
|
-
* by default — the org-plugin hook already covers it, so exactly one
|
|
49
|
-
* email fires per invitation as long as `server.ts`'s hook stays wired.
|
|
50
|
-
* The port is kept (and tested) for a consumer that disables or
|
|
51
|
-
* replaces that hook (e.g. a fork of `server.ts`, or a future
|
|
52
|
-
* environment where the org plugin's hook is intentionally left unset)
|
|
53
|
-
* — pass `sendInvitationEmail` and this service will use it. Bumping
|
|
54
|
-
* both at once will resume the duplication; do not turn the port back
|
|
55
|
-
* on without also removing the hook in `server.ts`.
|
|
56
|
-
*
|
|
57
|
-
* ---------------------------------------------------------------------
|
|
58
|
-
* Active-organization resolution (found the same way, via the
|
|
59
|
-
* integration test's real DB)
|
|
60
|
-
* ---------------------------------------------------------------------
|
|
61
|
-
* Better-Auth's organization plugin resolves "the caller's active
|
|
62
|
-
* workspace" from `session.activeOrganizationId` when a call omits an
|
|
63
|
-
* explicit `organizationId`. That column does not exist on this repo's
|
|
64
|
-
* Drizzle `sessions` schema (`packages/core/src/db/schema/auth.ts`), so
|
|
65
|
-
* every bare `auth.api.getFullOrganization({ headers })` call —
|
|
66
|
-
* ignite's original pattern in `listMembers`, `listInvitations`, and
|
|
67
|
-
* the sole-owner check in `leaveWorkspace` — resolves to *no*
|
|
68
|
-
* organization, regardless of what the caller most recently activated.
|
|
69
|
-
* `requireWorkspace()` (packages/auth/src/helpers.ts) never hits this:
|
|
70
|
-
* it has its own fallback that lists the caller's organizations and
|
|
71
|
-
* fetches the first one by explicit id. This service does the same —
|
|
72
|
-
* every `getFullOrganization` call below passes an explicit
|
|
73
|
-
* `organizationId` sourced from `requireWorkspace`/`requireRole`'s
|
|
74
|
-
* resolved `workspace.id` (or, in `acceptInvitation`, the invitation's
|
|
75
|
-
* own `organizationId`) rather than relying on session state. This is
|
|
76
|
-
* a behavior fix, not a stylistic change: without it, a fresh
|
|
77
|
-
* single-workspace user's own membership list comes back empty.
|
|
6
|
+
* Every `getFullOrganization` call passes an explicit `organizationId`: the
|
|
7
|
+
* session's active organization is unset for a fresh user or one removed
|
|
8
|
+
* from their active workspace, and a bare call then resolves to nothing.
|
|
78
9
|
*/
|
|
79
|
-
import {
|
|
10
|
+
import { db } from "@intelligo-dev/core/db";
|
|
11
|
+
import { member } from "@intelligo-dev/core/db/schema";
|
|
12
|
+
import { getRequestHeaders } from "@intelligo-dev/core/request-context";
|
|
13
|
+
import { eq, sql } from "drizzle-orm";
|
|
80
14
|
import { createLogger } from "@intelligo-dev/core/logger";
|
|
81
|
-
import { auth } from "../server";
|
|
82
|
-
import { requireAuth, requireRole, requireWorkspace } from "../helpers";
|
|
83
|
-
import { orgApi } from "../org-api";
|
|
84
|
-
import { inviteMemberSchema, updateRoleSchema } from "./schemas";
|
|
85
|
-
import { TeamServiceError, isTeamServiceError } from "./errors";
|
|
15
|
+
import { auth } from "../server.js";
|
|
16
|
+
import { requireAuth, requireRole, requireWorkspace } from "../helpers.js";
|
|
17
|
+
import { orgApi } from "../org-api.js";
|
|
18
|
+
import { inviteMemberSchema, updateRoleSchema } from "./schemas.js";
|
|
19
|
+
import { TeamServiceError, isTeamServiceError } from "./errors.js";
|
|
86
20
|
const log = createLogger("TeamService");
|
|
87
21
|
function errorMessage(error) {
|
|
88
22
|
return error instanceof Error ? error.message : String(error);
|
|
@@ -140,58 +74,60 @@ export function createTeamService(ports = {}) {
|
|
|
140
74
|
throw new TeamServiceError("provider_error", `Better-Auth organization API call failed (${context})`, { cause: error });
|
|
141
75
|
}
|
|
142
76
|
}
|
|
143
|
-
/**
|
|
144
|
-
* List members of the caller's active workspace.
|
|
145
|
-
*/
|
|
77
|
+
/** Members of the caller's active workspace. */
|
|
146
78
|
async function listMembers() {
|
|
147
79
|
const { workspace } = await callRequireWorkspace();
|
|
148
|
-
const hdrs = await
|
|
80
|
+
const hdrs = await getRequestHeaders();
|
|
149
81
|
const org = await callOrgApi("getFullOrganization", () => auth.api.getFullOrganization({
|
|
150
82
|
headers: hdrs,
|
|
151
83
|
query: { organizationId: workspace.id },
|
|
152
84
|
}));
|
|
153
85
|
return (org?.members ?? []);
|
|
154
86
|
}
|
|
155
|
-
/**
|
|
156
|
-
* List pending invitations for the caller's active workspace.
|
|
157
|
-
*/
|
|
87
|
+
/** Pending invitations for the caller's active workspace. */
|
|
158
88
|
async function listInvitations() {
|
|
159
89
|
const { workspace } = await callRequireWorkspace();
|
|
160
|
-
const hdrs = await
|
|
90
|
+
const hdrs = await getRequestHeaders();
|
|
161
91
|
const org = await callOrgApi("getFullOrganization", () => auth.api.getFullOrganization({
|
|
162
92
|
headers: hdrs,
|
|
163
93
|
query: { organizationId: workspace.id },
|
|
164
94
|
}));
|
|
165
|
-
|
|
95
|
+
// Better-Auth keeps accepted, rejected and canceled invitations on
|
|
96
|
+
// the organization; only a pending one can still be acted on.
|
|
97
|
+
return (org?.invitations ?? []).filter((invitation) => invitation.status === "pending");
|
|
98
|
+
}
|
|
99
|
+
async function enforceMemberLimit(workspaceId, seats) {
|
|
100
|
+
if (!ports.checkMemberLimit)
|
|
101
|
+
return;
|
|
102
|
+
const limitCheck = await ports.checkMemberLimit(workspaceId, seats);
|
|
103
|
+
if (!limitCheck.allowed) {
|
|
104
|
+
throw new TeamServiceError("member_limit_reached", `Your plan allows up to ${limitCheck.limit} team member${limitCheck.limit === 1 ? "" : "s"}. Upgrade to add more members.`, { meta: { limit: limitCheck.limit } });
|
|
105
|
+
}
|
|
166
106
|
}
|
|
167
107
|
/**
|
|
168
|
-
* Invite a member by email. Owner/admin only
|
|
169
|
-
*
|
|
170
|
-
*
|
|
171
|
-
*
|
|
172
|
-
* comment on the email-duplication finding.
|
|
108
|
+
* Invite a member by email. Owner/admin only. The member-limit port,
|
|
109
|
+
* when bound, gates the invite before it is created, counting pending
|
|
110
|
+
* invitations as seats: otherwise a workspace one seat short of its
|
|
111
|
+
* limit could send any number of invitations and have them all accepted.
|
|
173
112
|
*/
|
|
174
113
|
async function inviteMember(input) {
|
|
175
114
|
const { workspace, user } = await callRequireRole(["owner", "admin"]);
|
|
176
115
|
const validated = parseInput(inviteMemberSchema, input);
|
|
177
|
-
const hdrs = await
|
|
178
|
-
//
|
|
116
|
+
const hdrs = await getRequestHeaders();
|
|
117
|
+
// Member limit, via port only.
|
|
179
118
|
if (ports.checkMemberLimit) {
|
|
180
119
|
const org = await callOrgApi("getFullOrganization", () => auth.api.getFullOrganization({
|
|
181
120
|
headers: hdrs,
|
|
182
121
|
query: { organizationId: workspace.id },
|
|
183
122
|
}));
|
|
184
|
-
const
|
|
185
|
-
const
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
}
|
|
123
|
+
const now = Date.now();
|
|
124
|
+
const pendingInvitations = (org?.invitations ?? []).filter((invitation) => invitation.status === "pending" &&
|
|
125
|
+
new Date(invitation.expiresAt).getTime() > now).length;
|
|
126
|
+
await enforceMemberLimit(workspace.id, (org?.members?.length ?? 0) + pendingInvitations);
|
|
189
127
|
}
|
|
190
128
|
// Better-Auth's own duplicate-pending-invite guard
|
|
191
129
|
// (USER_IS_ALREADY_INVITED_TO_THIS_ORGANIZATION) runs inside this
|
|
192
|
-
// call and surfaces as a provider_error
|
|
193
|
-
// action never added a second check on top of it, so neither does
|
|
194
|
-
// this service.
|
|
130
|
+
// call and surfaces as a provider_error.
|
|
195
131
|
const result = await callOrgApi("invite-member", () => orgApi["/organization/invite-member"]({
|
|
196
132
|
headers: hdrs,
|
|
197
133
|
body: {
|
|
@@ -217,20 +153,17 @@ export function createTeamService(ports = {}) {
|
|
|
217
153
|
return result;
|
|
218
154
|
}
|
|
219
155
|
/**
|
|
220
|
-
* Accept invitation
|
|
156
|
+
* Accept an invitation.
|
|
221
157
|
*
|
|
222
|
-
* Defence
|
|
223
|
-
*
|
|
224
|
-
*
|
|
225
|
-
*
|
|
226
|
-
*
|
|
227
|
-
* endpoint already checks the email match, but layering these guards
|
|
228
|
-
* means a future upstream regression can't silently grant
|
|
229
|
-
* cross-tenant access.
|
|
158
|
+
* Defence in depth against a stolen invitation id: the caller must be
|
|
159
|
+
* authenticated, the id must be in the caller's pending list, and the
|
|
160
|
+
* caller must be a member of the organization afterwards. Better-Auth
|
|
161
|
+
* already checks the email match; these guards keep a regression there
|
|
162
|
+
* from granting cross-tenant access.
|
|
230
163
|
*/
|
|
231
164
|
async function acceptInvitation(invitationId) {
|
|
232
165
|
const { user } = await callRequireAuth();
|
|
233
|
-
const hdrs = await
|
|
166
|
+
const hdrs = await getRequestHeaders();
|
|
234
167
|
if (typeof invitationId !== "string" || invitationId.length === 0) {
|
|
235
168
|
throw new TeamServiceError("invalid_input", "Invalid invitation id");
|
|
236
169
|
}
|
|
@@ -241,6 +174,16 @@ export function createTeamService(ports = {}) {
|
|
|
241
174
|
log.warn("acceptInvitation rejected — invitation not in caller's pending list", { userId: user.id, invitationId });
|
|
242
175
|
throw new TeamServiceError("invitation_not_found", "Invitation not found");
|
|
243
176
|
}
|
|
177
|
+
// The plan may have shrunk, or members joined another way, since the
|
|
178
|
+
// invitation was sent. Counted from the table: the invitee cannot
|
|
179
|
+
// read an organization it is not yet a member of.
|
|
180
|
+
if (ports.checkMemberLimit) {
|
|
181
|
+
const [row] = await db
|
|
182
|
+
.select({ n: sql `count(*)` })
|
|
183
|
+
.from(member)
|
|
184
|
+
.where(eq(member.organizationId, matched.organizationId));
|
|
185
|
+
await enforceMemberLimit(matched.organizationId, Number(row?.n ?? 0));
|
|
186
|
+
}
|
|
244
187
|
await callOrgApi("accept-invitation", () => orgApi["/organization/accept-invitation"]({
|
|
245
188
|
headers: hdrs,
|
|
246
189
|
body: { invitationId },
|
|
@@ -259,19 +202,9 @@ export function createTeamService(ports = {}) {
|
|
|
259
202
|
});
|
|
260
203
|
throw new TeamServiceError("accept_verification_failed", "Failed to accept invitation");
|
|
261
204
|
}
|
|
262
|
-
// Notify the
|
|
263
|
-
//
|
|
264
|
-
//
|
|
265
|
-
// Reuses `targetOrg` from the post-check above (scoped to
|
|
266
|
-
// `matched.organizationId`, the org the caller just joined) rather
|
|
267
|
-
// than re-fetching "the active org" the way ignite's original
|
|
268
|
-
// action did: Better-Auth's org plugin needs a
|
|
269
|
-
// `sessions.activeOrganizationId` column to resolve an org from
|
|
270
|
-
// headers alone, and this repo's Drizzle schema for `sessions`
|
|
271
|
-
// does not define one, so a bare `getFullOrganization({ headers })`
|
|
272
|
-
// call resolves to no organization at all — this notify lookup
|
|
273
|
-
// would silently no-op every time. `targetOrg` sidesteps that by
|
|
274
|
-
// asking for the org we already know the answer for.
|
|
205
|
+
// Notify the owner, fire-and-forget: acceptance has already succeeded.
|
|
206
|
+
// Uses `targetOrg`, the organization just joined, rather than resolving
|
|
207
|
+
// one from the session.
|
|
275
208
|
if (ports.notifyMemberJoined) {
|
|
276
209
|
try {
|
|
277
210
|
const session = await auth.api.getSession({ headers: hdrs });
|
|
@@ -298,12 +231,12 @@ export function createTeamService(ports = {}) {
|
|
|
298
231
|
log.error("Notification lookup failed", {
|
|
299
232
|
error: errorMessage(notifError),
|
|
300
233
|
});
|
|
301
|
-
//
|
|
234
|
+
// Acceptance still succeeds.
|
|
302
235
|
}
|
|
303
236
|
}
|
|
304
237
|
}
|
|
305
238
|
/**
|
|
306
|
-
*
|
|
239
|
+
* Decline an invitation.
|
|
307
240
|
*
|
|
308
241
|
* Same caller-side guard as acceptInvitation: require auth and
|
|
309
242
|
* verify the invitationId is in the caller's pending list before
|
|
@@ -311,7 +244,7 @@ export function createTeamService(ports = {}) {
|
|
|
311
244
|
*/
|
|
312
245
|
async function rejectInvitation(invitationId) {
|
|
313
246
|
await callRequireAuth();
|
|
314
|
-
const hdrs = await
|
|
247
|
+
const hdrs = await getRequestHeaders();
|
|
315
248
|
if (typeof invitationId !== "string" || invitationId.length === 0) {
|
|
316
249
|
throw new TeamServiceError("invalid_input", "Invalid invitation id");
|
|
317
250
|
}
|
|
@@ -324,35 +257,29 @@ export function createTeamService(ports = {}) {
|
|
|
324
257
|
body: { invitationId },
|
|
325
258
|
}));
|
|
326
259
|
}
|
|
327
|
-
/**
|
|
328
|
-
* Cancel a pending invitation. Owner/admin only.
|
|
329
|
-
*/
|
|
260
|
+
/** Cancel a pending invitation. Owner/admin only. */
|
|
330
261
|
async function cancelInvitation(invitationId) {
|
|
331
262
|
await callRequireRole(["owner", "admin"]);
|
|
332
|
-
const hdrs = await
|
|
263
|
+
const hdrs = await getRequestHeaders();
|
|
333
264
|
await callOrgApi("cancel-invitation", () => orgApi["/organization/cancel-invitation"]({
|
|
334
265
|
headers: hdrs,
|
|
335
266
|
body: { invitationId },
|
|
336
267
|
}));
|
|
337
268
|
}
|
|
338
|
-
/**
|
|
339
|
-
* Remove a member from workspace. Owner/admin only (TEAM-06).
|
|
340
|
-
*/
|
|
269
|
+
/** Remove a member from the workspace. Owner/admin only. */
|
|
341
270
|
async function removeMember(memberId) {
|
|
342
271
|
const { workspace } = await callRequireRole(["owner", "admin"]);
|
|
343
|
-
const hdrs = await
|
|
272
|
+
const hdrs = await getRequestHeaders();
|
|
344
273
|
await callOrgApi("remove-member", () => orgApi["/organization/remove-member"]({
|
|
345
274
|
headers: hdrs,
|
|
346
275
|
body: { memberIdOrEmail: memberId, organizationId: workspace.id },
|
|
347
276
|
}));
|
|
348
277
|
}
|
|
349
|
-
/**
|
|
350
|
-
* Update member role. Owner/admin only (TEAM-05, TEAM-08).
|
|
351
|
-
*/
|
|
278
|
+
/** Change a member's role. Owner/admin only. */
|
|
352
279
|
async function updateMemberRole(input) {
|
|
353
280
|
const { workspace } = await callRequireRole(["owner", "admin"]);
|
|
354
281
|
const validated = parseInput(updateRoleSchema, input);
|
|
355
|
-
const hdrs = await
|
|
282
|
+
const hdrs = await getRequestHeaders();
|
|
356
283
|
await callOrgApi("update-member-role", () => orgApi["/organization/update-member-role"]({
|
|
357
284
|
headers: hdrs,
|
|
358
285
|
body: {
|
|
@@ -363,12 +290,12 @@ export function createTeamService(ports = {}) {
|
|
|
363
290
|
}));
|
|
364
291
|
}
|
|
365
292
|
/**
|
|
366
|
-
* Leave workspace
|
|
293
|
+
* Leave the workspace. The sole owner cannot leave without transferring
|
|
367
294
|
* ownership first.
|
|
368
295
|
*/
|
|
369
296
|
async function leaveWorkspace() {
|
|
370
297
|
const { workspace, membership } = await callRequireWorkspace();
|
|
371
|
-
const hdrs = await
|
|
298
|
+
const hdrs = await getRequestHeaders();
|
|
372
299
|
if (membership.role === "owner") {
|
|
373
300
|
const org = await callOrgApi("getFullOrganization", () => auth.api.getFullOrganization({
|
|
374
301
|
headers: hdrs,
|
|
@@ -392,15 +319,12 @@ export function createTeamService(ports = {}) {
|
|
|
392
319
|
}));
|
|
393
320
|
}
|
|
394
321
|
}
|
|
395
|
-
/**
|
|
396
|
-
* Transfer workspace ownership to another member. Owner only (TEAM-07).
|
|
397
|
-
*/
|
|
322
|
+
/** Transfer workspace ownership to another member. Owner only. */
|
|
398
323
|
async function transferOwnership(targetMemberId) {
|
|
399
324
|
const { workspace } = await callRequireRole(["owner"]);
|
|
400
|
-
const hdrs = await
|
|
401
|
-
//
|
|
402
|
-
//
|
|
403
|
-
// as co-owner, which is acceptable (ported behavior).
|
|
325
|
+
const hdrs = await getRequestHeaders();
|
|
326
|
+
// Promotes the target to owner. If Better-Auth does not demote the
|
|
327
|
+
// previous owner, they stay a co-owner.
|
|
404
328
|
await callOrgApi("update-member-role", () => orgApi["/organization/update-member-role"]({
|
|
405
329
|
headers: hdrs,
|
|
406
330
|
body: {
|
|
@@ -411,13 +335,12 @@ export function createTeamService(ports = {}) {
|
|
|
411
335
|
}));
|
|
412
336
|
}
|
|
413
337
|
/**
|
|
414
|
-
*
|
|
415
|
-
*
|
|
416
|
-
*
|
|
417
|
-
* itself; ported as-is from ignite's action.
|
|
338
|
+
* The caller's own pending invitations, for the accept page. No
|
|
339
|
+
* `requireAuth`: Better-Auth's list-user-invitations endpoint reads the
|
|
340
|
+
* session off `headers` itself.
|
|
418
341
|
*/
|
|
419
342
|
async function getUserInvitations() {
|
|
420
|
-
const hdrs = await
|
|
343
|
+
const hdrs = await getRequestHeaders();
|
|
421
344
|
const invitations = await callOrgApi("list-user-invitations", () => orgApi["/organization/list-user-invitations"]({ headers: hdrs }));
|
|
422
345
|
return invitations ?? [];
|
|
423
346
|
}
|
package/dist/team/service.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/team/service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/team/service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Which origins Better-Auth's CSRF check accepts. Kept out of `server.ts`,
|
|
3
|
+
* which reaches the database and email provider at module load, so the rule
|
|
4
|
+
* can be tested alone.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Resolve the trusted-origin list from the environment.
|
|
8
|
+
*
|
|
9
|
+
* `NEXT_PUBLIC_APP_URL` is a required variable, and when it is set it
|
|
10
|
+
* is the only origin trusted — in every environment.
|
|
11
|
+
*
|
|
12
|
+
* When it is unset, outside production any loopback port is trusted, so a
|
|
13
|
+
* fresh checkout works on whatever port Next picked (a guessed port would
|
|
14
|
+
* reject every sign-in with `403 INVALID_ORIGIN`). In production nothing is
|
|
15
|
+
* trusted: an unset variable there is a configuration error, and it fails
|
|
16
|
+
* closed.
|
|
17
|
+
*/
|
|
18
|
+
export function resolveTrustedOrigins(env) {
|
|
19
|
+
if (env.NEXT_PUBLIC_APP_URL)
|
|
20
|
+
return [env.NEXT_PUBLIC_APP_URL];
|
|
21
|
+
if (env.NODE_ENV === "production")
|
|
22
|
+
return [];
|
|
23
|
+
return ["http://localhost:*", "http://127.0.0.1:*"];
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=trusted-origins.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trusted-origins.js","sourceRoot":"","sources":["../src/trusted-origins.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,qBAAqB,CAAC,GAGrC;IACC,IAAI,GAAG,CAAC,mBAAmB;QAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IAC9D,IAAI,GAAG,CAAC,QAAQ,KAAK,YAAY;QAAE,OAAO,EAAE,CAAC;IAC7C,OAAO,CAAC,oBAAoB,EAAE,oBAAoB,CAAC,CAAC;AACtD,CAAC"}
|
package/dist/workspace/errors.js
CHANGED
|
@@ -1,13 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
* Mirrors `../team/errors.ts` exactly, one directory over: the
|
|
5
|
-
* workspace service (./service.ts) throws this for every failure it
|
|
6
|
-
* recognizes rather than returning an ad-hoc `{ success, error }`
|
|
7
|
-
* envelope — that shaping is a transport concern (a Server Action, a
|
|
8
|
-
* route handler) and belongs one layer up, alongside
|
|
9
|
-
* revalidatePath/Sentry/toast/i18n, none of which this package may
|
|
10
|
-
* depend on.
|
|
2
|
+
* Thrown for every failure the workspace service recognizes. Shaping it for a UI
|
|
3
|
+
* (a `{ success, error }` envelope, i18n, revalidation) is the transport's job.
|
|
11
4
|
*/
|
|
12
5
|
export class WorkspaceServiceError extends Error {
|
|
13
6
|
constructor(code, message, options) {
|
|
@@ -16,13 +9,10 @@ export class WorkspaceServiceError extends Error {
|
|
|
16
9
|
this.code = code;
|
|
17
10
|
this.meta = options?.meta;
|
|
18
11
|
if (options?.cause !== undefined) {
|
|
19
|
-
// ES2020 target predates the
|
|
20
|
-
// assign it directly so `instanceof Error` consumers (and Node's
|
|
21
|
-
// own error inspection) still see it.
|
|
12
|
+
// The ES2020 target predates the `cause` constructor option.
|
|
22
13
|
this.cause = options.cause;
|
|
23
14
|
}
|
|
24
|
-
//
|
|
25
|
-
// transpilation targets loses `instanceof`).
|
|
15
|
+
// Extending built-ins loses `instanceof` on some transpilation targets.
|
|
26
16
|
Object.setPrototypeOf(this, WorkspaceServiceError.prototype);
|
|
27
17
|
}
|
|
28
18
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/workspace/errors.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/workspace/errors.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA4BH,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IAI9C,YACE,IAA+B,EAC/B,OAAe,EACf,OAA+D;QAE/D,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;QACpC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,OAAO,EAAE,IAAI,CAAC;QAC1B,IAAI,OAAO,EAAE,KAAK,KAAK,SAAS,EAAE,CAAC;YACjC,6DAA6D;YAC5D,IAA4B,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QACtD,CAAC;QAED,wEAAwE;QACxE,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,qBAAqB,CAAC,SAAS,CAAC,CAAC;IAC/D,CAAC;CACF;AAED,MAAM,UAAU,uBAAuB,CACrC,KAAc;IAEd,OAAO,KAAK,YAAY,qBAAqB,CAAC;AAChD,CAAC"}
|
|
@@ -1,17 +1,5 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Workspace Validation Schemas
|
|
3
|
-
*
|
|
4
|
-
* Zod schemas for workspace create/update inputs, shared by the
|
|
5
|
-
* workspace service and its transports.
|
|
6
|
-
*
|
|
7
|
-
* (Ported from the product application's workspace validation module —
|
|
8
|
-
* same semantics. Ignite's copy is retired at cutover.)
|
|
9
|
-
*/
|
|
1
|
+
/** Workspace inputs, shared by the workspace service and its transports. */
|
|
10
2
|
import { z } from "zod";
|
|
11
|
-
/**
|
|
12
|
-
* Create Workspace Schema
|
|
13
|
-
* Name + optional slug for new workspaces
|
|
14
|
-
*/
|
|
15
3
|
export const createWorkspaceSchema = z.object({
|
|
16
4
|
name: z
|
|
17
5
|
.string()
|
|
@@ -22,12 +10,8 @@ export const createWorkspaceSchema = z.object({
|
|
|
22
10
|
.min(2, "Slug must be at least 2 characters")
|
|
23
11
|
.max(50, "Slug must be at most 50 characters")
|
|
24
12
|
.regex(/^[a-z0-9-]+$/, "Slug can only contain lowercase letters, numbers, and hyphens")
|
|
25
|
-
.optional(), //
|
|
13
|
+
.optional(), // Generated from the name when omitted.
|
|
26
14
|
});
|
|
27
|
-
/**
|
|
28
|
-
* Update Workspace Schema
|
|
29
|
-
* Optional name, slug, and logo for workspace settings
|
|
30
|
-
*/
|
|
31
15
|
export const updateWorkspaceSchema = z.object({
|
|
32
16
|
name: z
|
|
33
17
|
.string()
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/workspace/schemas.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/workspace/schemas.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAE5E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,EAAE,8CAA8C,CAAC;SACtD,GAAG,CAAC,EAAE,EAAE,8CAA8C,CAAC;IAC1D,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,EAAE,oCAAoC,CAAC;SAC5C,GAAG,CAAC,EAAE,EAAE,oCAAoC,CAAC;SAC7C,KAAK,CACJ,cAAc,EACd,+DAA+D,CAChE;SACA,QAAQ,EAAE,EAAE,wCAAwC;CACxD,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,EAAE,8CAA8C,CAAC;SACtD,GAAG,CAAC,EAAE,EAAE,8CAA8C,CAAC;SACvD,QAAQ,EAAE;IACb,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,EAAE,oCAAoC,CAAC;SAC5C,GAAG,CAAC,EAAE,EAAE,oCAAoC,CAAC;SAC7C,KAAK,CACJ,cAAc,EACd,+DAA+D,CAChE;SACA,QAAQ,EAAE;IACb,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CACvE,CAAC,CAAC"}
|