@nurama/sdk 1.4.0 → 1.4.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.
@@ -5,7 +5,7 @@ export interface BotApiKeySummary {
5
5
  name: string;
6
6
  /** Discriminator. Bot keys mint as 'botAccess'. */
7
7
  kind?: 'botAccess' | 'pat' | 'oauthAccess' | 'oauthRefresh' | null;
8
- /** Granted action verbs. Empty array = unscoped (legacy). */
8
+ /** Granted scopes. A bot key is minted with the full registry when none are chosen. */
9
9
  scopes?: string[];
10
10
  lastUsed?: string | null;
11
11
  expiresAt?: string | null;
@@ -45,10 +45,10 @@ export interface CreateBotData {
45
45
  * workspaceAdmin, workspaceMember, workspaceChatMember. */
46
46
  roles: Array<'workspaceAdmin' | 'workspaceMember' | 'workspaceChatMember'>;
47
47
  /**
48
- * Optional API-key scopes. Defaults to [] (legacy — bot key can call
49
- * any route that isn't yet scope-gated). Once a route is gated by
50
- * `requireTokenScope` the bot needs the matching scope here for that
51
- * route to work.
48
+ * Optional API-key scopes. Omit (or pass an empty array) to mint the key
49
+ * with the full scope registry, which is what the bot's roles already allow
50
+ * — every route declares a scope now, so a genuinely empty set would leave
51
+ * the key unable to call anything. Pass a subset to narrow it.
52
52
  */
53
53
  scopes?: string[];
54
54
  }
@@ -67,6 +67,27 @@ export interface RotateBotKeyResponse {
67
67
  /** New raw API key. Returned once. */
68
68
  rawKey: string;
69
69
  }
70
+ export interface CreateBotKeyData {
71
+ /** Label shown in the bot's key list. */
72
+ name: string;
73
+ /** Validated server-side against the token-scope registry. Omit for the full set. */
74
+ scopes?: string[];
75
+ /** Optional expiry, ISO 8601. Must be in the future. */
76
+ expiresAt?: string;
77
+ }
78
+ export interface CreateBotKeyResponse {
79
+ apiKey: BotApiKeySummary;
80
+ /** Raw API key. Returned once and not recoverable afterwards. */
81
+ rawKey: string;
82
+ }
83
+ export interface UpdateBotKeyScopesData {
84
+ /**
85
+ * The COMPLETE new scope set, not a delta — the same shape `createBotKey`
86
+ * takes. At least one scope; a scopeless key authenticates and is then
87
+ * refused by every gated route, so revoke it instead of emptying it.
88
+ */
89
+ scopes: string[];
90
+ }
70
91
  export interface UpdateBotAvatarFileData {
71
92
  name: string;
72
93
  sizeInMB: number;
@@ -120,8 +141,42 @@ export default function createBotMethods(client: NuramaClient): {
120
141
  /**
121
142
  * Revoke the bot's current API key and issue a new one.
122
143
  * The new raw key is returned once.
144
+ *
145
+ * The replacement carries the old key's scopes verbatim, so this is not a
146
+ * way to pick up scopes added to the registry since the key was minted —
147
+ * `updateBotKeyScopes` is.
123
148
  */
124
149
  rotateBotKey(workspaceId: string, botId: string): Promise<RotateBotKeyResponse>;
150
+ /**
151
+ * Mint an ADDITIONAL API key for the bot, up to 5 live keys.
152
+ *
153
+ * Unlike `rotateBotKey`, the bot's existing keys keep working — which is
154
+ * what makes a zero-downtime changeover possible: mint, move traffic over,
155
+ * then revoke the old key. The raw key is returned once.
156
+ */
157
+ createBotKey(workspaceId: string, botId: string, keyData: CreateBotKeyData): Promise<CreateBotKeyResponse>;
158
+ /**
159
+ * Replace the scopes on one of the bot's API keys, in place.
160
+ *
161
+ * A key's scopes are a snapshot taken when it was minted, and the registry
162
+ * grows — a key created before a scope existed cannot hold it. Rotation is
163
+ * not a substitute: `rotateBotKey` copies the old scope set onto the
164
+ * replacement, so a stale key stays stale through every rotation.
165
+ *
166
+ * This matters most for keys minted with `scopes` omitted, which means
167
+ * "the full registry" as it stood that day, not "whatever the full registry
168
+ * becomes".
169
+ *
170
+ * The secret is unchanged — every caller configured with this key keeps
171
+ * working, which is the whole point. Requires `canManageBots`.
172
+ */
173
+ updateBotKeyScopes(workspaceId: string, botId: string, keyId: string, data: UpdateBotKeyScopesData): Promise<BotApiKeySummary>;
174
+ /**
175
+ * Revoke one of the bot's API keys, leaving its others working.
176
+ * A revoked key stops authenticating immediately and frees a slot
177
+ * against the 5-key cap.
178
+ */
179
+ revokeBotKey(workspaceId: string, botId: string, keyId: string): Promise<void>;
125
180
  /**
126
181
  * Request signed URL data to upload a new avatar for the bot.
127
182
  * Caller multipart-uploads the file to S3 using the returned `signedUrlData`,
@@ -1 +1 @@
1
- {"version":3,"file":"bot.d.ts","sourceRoot":"","sources":["../../src/routes/bot.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bot.d.ts","sourceRoot":"","sources":["../../src/routes/bot.ts"],"names":[],"mappings":"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"}
@@ -74,6 +74,10 @@ export default function createBotMethods(client) {
74
74
  /**
75
75
  * Revoke the bot's current API key and issue a new one.
76
76
  * The new raw key is returned once.
77
+ *
78
+ * The replacement carries the old key's scopes verbatim, so this is not a
79
+ * way to pick up scopes added to the registry since the key was minted —
80
+ * `updateBotKeyScopes` is.
77
81
  */
78
82
  async rotateBotKey(workspaceId, botId) {
79
83
  if (!workspaceId)
@@ -86,6 +90,74 @@ export default function createBotMethods(client) {
86
90
  sendJWT: true,
87
91
  });
88
92
  },
93
+ /**
94
+ * Mint an ADDITIONAL API key for the bot, up to 5 live keys.
95
+ *
96
+ * Unlike `rotateBotKey`, the bot's existing keys keep working — which is
97
+ * what makes a zero-downtime changeover possible: mint, move traffic over,
98
+ * then revoke the old key. The raw key is returned once.
99
+ */
100
+ async createBotKey(workspaceId, botId, keyData) {
101
+ if (!workspaceId)
102
+ throw new Error('workspaceId is required.');
103
+ if (!botId)
104
+ throw new Error('botId is required.');
105
+ if (!keyData?.name)
106
+ throw new Error('name is required.');
107
+ return client._request({
108
+ method: 'POST',
109
+ endpoint: `/v1/workspaces/${workspaceId}/bots/${botId}/keys`,
110
+ body: keyData,
111
+ sendJWT: true,
112
+ });
113
+ },
114
+ /**
115
+ * Replace the scopes on one of the bot's API keys, in place.
116
+ *
117
+ * A key's scopes are a snapshot taken when it was minted, and the registry
118
+ * grows — a key created before a scope existed cannot hold it. Rotation is
119
+ * not a substitute: `rotateBotKey` copies the old scope set onto the
120
+ * replacement, so a stale key stays stale through every rotation.
121
+ *
122
+ * This matters most for keys minted with `scopes` omitted, which means
123
+ * "the full registry" as it stood that day, not "whatever the full registry
124
+ * becomes".
125
+ *
126
+ * The secret is unchanged — every caller configured with this key keeps
127
+ * working, which is the whole point. Requires `canManageBots`.
128
+ */
129
+ async updateBotKeyScopes(workspaceId, botId, keyId, data) {
130
+ if (!workspaceId)
131
+ throw new Error('workspaceId is required.');
132
+ if (!botId)
133
+ throw new Error('botId is required.');
134
+ if (!keyId)
135
+ throw new Error('keyId is required.');
136
+ return client._request({
137
+ method: 'PATCH',
138
+ endpoint: `/v1/workspaces/${workspaceId}/bots/${botId}/keys/${keyId}`,
139
+ body: data,
140
+ sendJWT: true,
141
+ });
142
+ },
143
+ /**
144
+ * Revoke one of the bot's API keys, leaving its others working.
145
+ * A revoked key stops authenticating immediately and frees a slot
146
+ * against the 5-key cap.
147
+ */
148
+ async revokeBotKey(workspaceId, botId, keyId) {
149
+ if (!workspaceId)
150
+ throw new Error('workspaceId is required.');
151
+ if (!botId)
152
+ throw new Error('botId is required.');
153
+ if (!keyId)
154
+ throw new Error('keyId is required.');
155
+ return client._request({
156
+ method: 'DELETE',
157
+ endpoint: `/v1/workspaces/${workspaceId}/bots/${botId}/keys/${keyId}`,
158
+ sendJWT: true,
159
+ });
160
+ },
89
161
  /**
90
162
  * Request signed URL data to upload a new avatar for the bot.
91
163
  * Caller multipart-uploads the file to S3 using the returned `signedUrlData`,
@@ -1 +1 @@
1
- {"version":3,"file":"bot.js","sourceRoot":"","sources":["../../src/routes/bot.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bot.js","sourceRoot":"","sources":["../../src/routes/bot.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import NuramaClient from '../NuramaClient.js';
2
- import { type JoinLink, type JoinLinkPreview, type CreateJoinLinkPayload, type UpdateJoinLinkPayload, type RedeemJoinLinkResult } from '@nurama/types';
2
+ import { type JoinLink, type JoinLinkPreview, type CreateJoinLinkPayload, type UpdateJoinLinkPayload, type RedeemJoinLinkResult, type ListJoinRequestsResponse, type ListMyJoinRequestsResponse, type ApproveJoinRequestResponse, type RejectJoinRequestRequest, type RejectJoinRequestResponse, type UpdateJoinRequestCooldownRequest, type ProjectJoinRequest, type ListBansResponse, type CreateResourceBanRequest, type ResourceBan } from '@nurama/types';
3
3
  export interface GetJoinLinksParams {
4
4
  projectId: string;
5
5
  }
@@ -20,6 +20,56 @@ export default function createJoinLinkMethods(client: NuramaClient): {
20
20
  createJoinLink(data: CreateJoinLinkPayload): Promise<JoinLinkResponse>;
21
21
  /** List a project's join links. */
22
22
  getJoinLinks(params: GetJoinLinksParams): Promise<JoinLinksListResponse>;
23
+ /** The queue of people waiting on a decision for this project. */
24
+ getJoinRequests(params: {
25
+ projectId: string;
26
+ }): Promise<ListJoinRequestsResponse>;
27
+ /**
28
+ * The caller's own requests still waiting on a decision.
29
+ *
30
+ * Needs no `projectId`: it is scoped server-side to the caller, who is not
31
+ * a member of the projects they are waiting on and so cannot read those
32
+ * projects' queues.
33
+ */
34
+ getMyJoinRequests(): Promise<ListMyJoinRequestsResponse>;
35
+ /**
36
+ * Approve a request and admit the person.
37
+ *
38
+ * Seats and the link's remaining uses are re-checked here, not when the
39
+ * request was made — a queue outlives the capacity that existed when it was
40
+ * filled, so approval can legitimately fail on a seat limit.
41
+ */
42
+ approveJoinRequest(requestId: string, projectId: string): Promise<ApproveJoinRequestResponse>;
43
+ /**
44
+ * Reject a request, optionally barring the person.
45
+ *
46
+ * Passing `ban` is destructive beyond the refusal: a ban REMOVES an existing
47
+ * membership, so it can take away access the person already had in scope.
48
+ * It is a separate field for that reason, never implied by the rejection.
49
+ */
50
+ rejectJoinRequest(requestId: string, data: RejectJoinRequestRequest): Promise<RejectJoinRequestResponse>;
51
+ /**
52
+ * Change or lift the cooldown on a rejected request.
53
+ *
54
+ * Only a rejected request has one; `reapplyAfter: null` lifts it, letting
55
+ * the person ask again straight away. A barred person is refused — the ban
56
+ * already blocks every path, so lifting that is the action that matters.
57
+ */
58
+ updateJoinRequestCooldown(requestId: string, data: UpdateJoinRequestCooldownRequest): Promise<ProjectJoinRequest>;
59
+ /**
60
+ * Bar someone, without a request to refuse.
61
+ *
62
+ * Destructive: the ban REMOVES every membership the person holds in its
63
+ * scope, so a `workspace` ban clears them out of every project in it. An
64
+ * owner cannot be barred, and neither can you bar yourself.
65
+ */
66
+ createResourceBan(data: CreateResourceBanRequest): Promise<ResourceBan>;
67
+ /** People barred from this project, newest first. */
68
+ getResourceBans(params: {
69
+ projectId: string;
70
+ }): Promise<ListBansResponse>;
71
+ /** Lift a ban. It does not restore any membership the ban removed. */
72
+ liftResourceBan(banId: string): Promise<ResourceBan>;
23
73
  /** Update a join link's settings (role, mode, domains, expiry, enable/disable). */
24
74
  updateJoinLink(linkId: string, data: UpdateJoinLinkPayload): Promise<JoinLinkResponse>;
25
75
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"joinLink.d.ts","sourceRoot":"","sources":["../../src/routes/joinLink.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EACL,KAAK,QAAQ,EACb,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EAC1B,MAAM,eAAe,CAAC;AAGvB,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;CACnB;AAGD,MAAM,MAAM,gBAAgB,GAAG,QAAQ,CAAC;AACxC,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,QAAQ,EAAE,CAAC;CACrB;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,OAAO,UAAU,qBAAqB,CAAC,MAAM,EAAE,YAAY;IAE9D,wCAAwC;yBACb,qBAAqB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAS5E,mCAAmC;yBACR,kBAAkB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAU9E,mFAAmF;2BACtD,MAAM,QAAQ,qBAAqB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAU5F;;;OAGG;yBACwB,MAAM,cAAc,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAUxF;;;OAGG;0BACyB,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAS7D,qDAAqD;uBAC5B,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;EASlE"}
1
+ {"version":3,"file":"joinLink.d.ts","sourceRoot":"","sources":["../../src/routes/joinLink.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EACL,KAAK,QAAQ,EACb,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EACzB,KAAK,wBAAwB,EAC7B,KAAK,0BAA0B,EAC/B,KAAK,0BAA0B,EAC/B,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAC9B,KAAK,gCAAgC,EACrC,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,wBAAwB,EAC7B,KAAK,WAAW,EACjB,MAAM,eAAe,CAAC;AAGvB,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;CACnB;AAGD,MAAM,MAAM,gBAAgB,GAAG,QAAQ,CAAC;AACxC,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,QAAQ,EAAE,CAAC;CACrB;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,OAAO,UAAU,qBAAqB,CAAC,MAAM,EAAE,YAAY;IAE9D,wCAAwC;yBACb,qBAAqB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAS5E,mCAAmC;yBACR,kBAAkB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAU9E,kEAAkE;4BACpC;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAUvF;;;;;;OAMG;yBACwB,OAAO,CAAC,0BAA0B,CAAC;IAQ9D;;;;;;OAMG;kCACiC,MAAM,aAAa,MAAM,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAWnG;;;;;;OAMG;iCACgC,MAAM,QAAQ,wBAAwB,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAW9G;;;;;;OAMG;yCAEU,MAAM,QACX,gCAAgC,GACrC,OAAO,CAAC,kBAAkB,CAAC;IAW9B;;;;;;OAMG;4BAC2B,wBAAwB,GAAG,OAAO,CAAC,WAAW,CAAC;IAY7E,qDAAqD;4BACvB;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAU/E,sEAAsE;2BACzC,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAS1D,mFAAmF;2BACtD,MAAM,QAAQ,qBAAqB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAU5F;;;OAGG;yBACwB,MAAM,cAAc,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAUxF;;;OAGG;0BACyB,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAS7D,qDAAqD;uBAC5B,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;EASlE"}
@@ -28,6 +28,130 @@ export default function createJoinLinkMethods(client) {
28
28
  sendJWT: true,
29
29
  });
30
30
  },
31
+ /** The queue of people waiting on a decision for this project. */
32
+ async getJoinRequests(params) {
33
+ if (!params?.projectId)
34
+ throw new Error('projectId is required.');
35
+ return client._request({
36
+ method: 'GET',
37
+ endpoint: '/v1/join-links/requests',
38
+ params,
39
+ sendJWT: true,
40
+ });
41
+ },
42
+ /**
43
+ * The caller's own requests still waiting on a decision.
44
+ *
45
+ * Needs no `projectId`: it is scoped server-side to the caller, who is not
46
+ * a member of the projects they are waiting on and so cannot read those
47
+ * projects' queues.
48
+ */
49
+ async getMyJoinRequests() {
50
+ return client._request({
51
+ method: 'GET',
52
+ endpoint: '/v1/join-links/requests/mine',
53
+ sendJWT: true,
54
+ });
55
+ },
56
+ /**
57
+ * Approve a request and admit the person.
58
+ *
59
+ * Seats and the link's remaining uses are re-checked here, not when the
60
+ * request was made — a queue outlives the capacity that existed when it was
61
+ * filled, so approval can legitimately fail on a seat limit.
62
+ */
63
+ async approveJoinRequest(requestId, projectId) {
64
+ if (!requestId)
65
+ throw new Error('requestId is required.');
66
+ if (!projectId)
67
+ throw new Error('projectId is required.');
68
+ return client._request({
69
+ method: 'POST',
70
+ endpoint: `/v1/join-links/requests/${requestId}/approve`,
71
+ body: { projectId },
72
+ sendJWT: true,
73
+ });
74
+ },
75
+ /**
76
+ * Reject a request, optionally barring the person.
77
+ *
78
+ * Passing `ban` is destructive beyond the refusal: a ban REMOVES an existing
79
+ * membership, so it can take away access the person already had in scope.
80
+ * It is a separate field for that reason, never implied by the rejection.
81
+ */
82
+ async rejectJoinRequest(requestId, data) {
83
+ if (!requestId)
84
+ throw new Error('requestId is required.');
85
+ if (!data?.projectId)
86
+ throw new Error('projectId is required.');
87
+ return client._request({
88
+ method: 'POST',
89
+ endpoint: `/v1/join-links/requests/${requestId}/reject`,
90
+ body: data,
91
+ sendJWT: true,
92
+ });
93
+ },
94
+ /**
95
+ * Change or lift the cooldown on a rejected request.
96
+ *
97
+ * Only a rejected request has one; `reapplyAfter: null` lifts it, letting
98
+ * the person ask again straight away. A barred person is refused — the ban
99
+ * already blocks every path, so lifting that is the action that matters.
100
+ */
101
+ async updateJoinRequestCooldown(requestId, data) {
102
+ if (!requestId)
103
+ throw new Error('requestId is required.');
104
+ if (!data?.projectId)
105
+ throw new Error('projectId is required.');
106
+ return client._request({
107
+ method: 'PATCH',
108
+ endpoint: `/v1/join-links/requests/${requestId}/cooldown`,
109
+ body: { projectId: data.projectId, reapplyAfter: data.reapplyAfter ?? null },
110
+ sendJWT: true,
111
+ });
112
+ },
113
+ /**
114
+ * Bar someone, without a request to refuse.
115
+ *
116
+ * Destructive: the ban REMOVES every membership the person holds in its
117
+ * scope, so a `workspace` ban clears them out of every project in it. An
118
+ * owner cannot be barred, and neither can you bar yourself.
119
+ */
120
+ async createResourceBan(data) {
121
+ if (!data?.projectId)
122
+ throw new Error('projectId is required.');
123
+ if (!data?.userId)
124
+ throw new Error('userId is required.');
125
+ if (!data?.scope)
126
+ throw new Error('scope is required.');
127
+ return client._request({
128
+ method: 'POST',
129
+ endpoint: '/v1/join-links/bans',
130
+ body: data,
131
+ sendJWT: true,
132
+ });
133
+ },
134
+ /** People barred from this project, newest first. */
135
+ async getResourceBans(params) {
136
+ if (!params?.projectId)
137
+ throw new Error('projectId is required.');
138
+ return client._request({
139
+ method: 'GET',
140
+ endpoint: '/v1/join-links/bans',
141
+ params,
142
+ sendJWT: true,
143
+ });
144
+ },
145
+ /** Lift a ban. It does not restore any membership the ban removed. */
146
+ async liftResourceBan(banId) {
147
+ if (!banId)
148
+ throw new Error('banId is required.');
149
+ return client._request({
150
+ method: 'DELETE',
151
+ endpoint: `/v1/join-links/bans/${banId}`,
152
+ sendJWT: true,
153
+ });
154
+ },
31
155
  /** Update a join link's settings (role, mode, domains, expiry, enable/disable). */
32
156
  async updateJoinLink(linkId, data) {
33
157
  if (!linkId)
@@ -1 +1 @@
1
- {"version":3,"file":"joinLink.js","sourceRoot":"","sources":["../../src/routes/joinLink.ts"],"names":[],"mappings":"AAoBA;;;;;;;GAOG;AACH,MAAM,CAAC,OAAO,UAAU,qBAAqB,CAAC,MAAoB;IAChE,OAAO;QACL,wCAAwC;QACxC,KAAK,CAAC,cAAc,CAAC,IAA2B;YAC9C,OAAO,MAAM,CAAC,QAAQ,CAAmB;gBACvC,MAAM,EAAE,MAAM;gBACd,QAAQ,EAAE,gBAAgB;gBAC1B,IAAI,EAAE,IAAI;gBACV,OAAO,EAAE,IAAI;aACd,CAAC,CAAC;QACL,CAAC;QAED,mCAAmC;QACnC,KAAK,CAAC,YAAY,CAAC,MAA0B;YAC3C,IAAI,CAAC,MAAM,EAAE,SAAS;gBAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;YAClE,OAAO,MAAM,CAAC,QAAQ,CAAwB;gBAC5C,MAAM,EAAE,KAAK;gBACb,QAAQ,EAAE,gBAAgB;gBAC1B,MAAM;gBACN,OAAO,EAAE,IAAI;aACd,CAAC,CAAC;QACL,CAAC;QAED,mFAAmF;QACnF,KAAK,CAAC,cAAc,CAAC,MAAc,EAAE,IAA2B;YAC9D,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;YACpD,OAAO,MAAM,CAAC,QAAQ,CAAmB;gBACvC,MAAM,EAAE,OAAO;gBACf,QAAQ,EAAE,kBAAkB,MAAM,EAAE;gBACpC,IAAI,EAAE,IAAI;gBACV,OAAO,EAAE,IAAI;aACd,CAAC,CAAC;QACL,CAAC;QAED;;;WAGG;QACH,KAAK,CAAC,YAAY,CAAC,MAAc,EAAE,SAAyB;YAC1D,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;YACpD,OAAO,MAAM,CAAC,QAAQ,CAAmB;gBACvC,MAAM,EAAE,MAAM;gBACd,QAAQ,EAAE,kBAAkB,MAAM,OAAO;gBACzC,IAAI,EAAE,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE;gBAClD,OAAO,EAAE,IAAI;aACd,CAAC,CAAC;QACL,CAAC;QAED;;;WAGG;QACH,KAAK,CAAC,cAAc,CAAC,KAAa;YAChC,IAAI,CAAC,KAAK;gBAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;YAClD,OAAO,MAAM,CAAC,QAAQ,CAAkB;gBACtC,MAAM,EAAE,KAAK;gBACb,QAAQ,EAAE,YAAY,KAAK,EAAE;gBAC7B,OAAO,EAAE,KAAK,EAAE,4CAA4C;aAC7D,CAAC,CAAC;QACL,CAAC;QAED,qDAAqD;QACrD,KAAK,CAAC,WAAW,CAAC,KAAa;YAC7B,IAAI,CAAC,KAAK;gBAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;YAClD,OAAO,MAAM,CAAC,QAAQ,CAAuB;gBAC3C,MAAM,EAAE,MAAM;gBACd,QAAQ,EAAE,YAAY,KAAK,EAAE;gBAC7B,OAAO,EAAE,IAAI;aACd,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"joinLink.js","sourceRoot":"","sources":["../../src/routes/joinLink.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ import NuramaClient from '../NuramaClient.js';
2
+ /**
3
+ * One application a user has authorised over OAuth.
4
+ *
5
+ * A grant is the record of consent: the scopes approved, and the tie binding
6
+ * every token issued under it. Revoking one withdraws the application's
7
+ * access.
8
+ */
9
+ export interface OAuthGrantSummary {
10
+ /** Opaque identifier; pass to `revokeGrant`. */
11
+ grantId: string;
12
+ clientId: string | null;
13
+ /**
14
+ * The application's name.
15
+ *
16
+ * Chosen by the application itself when `verified` is false — treat it as
17
+ * display text from an untrusted source, never as identification.
18
+ */
19
+ clientName: string | null;
20
+ /**
21
+ * Whether Nurama configured this application.
22
+ *
23
+ * False for one that registered itself through Dynamic Client Registration:
24
+ * it picked its own name and nobody reviewed it.
25
+ */
26
+ verified: boolean;
27
+ /** Scopes the user approved, from the backend's token-scope registry. */
28
+ scopes: string[];
29
+ grantedAt: string;
30
+ expiresAt: string | null;
31
+ }
32
+ export default function createOAuthGrantMethods(client: NuramaClient): {
33
+ /**
34
+ * List the applications the caller has authorised, newest first.
35
+ * Expired grants are omitted by the server.
36
+ */
37
+ listGrants(): Promise<OAuthGrantSummary[]>;
38
+ /**
39
+ * Withdraw an application's access: the grant and every token issued
40
+ * under it. An access token already in flight stays valid until it
41
+ * expires, so revocation is not instantaneous for a request under way.
42
+ */
43
+ revokeGrant(grantId: string): Promise<void>;
44
+ };
45
+ //# sourceMappingURL=oauthGrant.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauthGrant.d.ts","sourceRoot":"","sources":["../../src/routes/oauthGrant.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,oBAAoB,CAAC;AAE9C;;;;;;GAMG;AACH,MAAM,WAAW,iBAAiB;IAChC,gDAAgD;IAChD,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB;;;;;OAKG;IACH,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B;;;;;OAKG;IACH,QAAQ,EAAE,OAAO,CAAC;IAClB,yEAAyE;IACzE,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,MAAM,CAAC,OAAO,UAAU,uBAAuB,CAAC,MAAM,EAAE,YAAY;IAEhE;;;OAGG;kBACiB,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAUhD;;;;OAIG;yBACwB,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;EASpD"}
@@ -0,0 +1,32 @@
1
+ export default function createOAuthGrantMethods(client) {
2
+ return {
3
+ /**
4
+ * List the applications the caller has authorised, newest first.
5
+ * Expired grants are omitted by the server.
6
+ */
7
+ async listGrants() {
8
+ const res = await client._request({
9
+ method: 'GET',
10
+ endpoint: '/v1/oauth-grants',
11
+ sendJWT: true,
12
+ bypassCache: true,
13
+ });
14
+ return res.results;
15
+ },
16
+ /**
17
+ * Withdraw an application's access: the grant and every token issued
18
+ * under it. An access token already in flight stays valid until it
19
+ * expires, so revocation is not instantaneous for a request under way.
20
+ */
21
+ async revokeGrant(grantId) {
22
+ if (!grantId)
23
+ throw new Error('grantId is required.');
24
+ return client._request({
25
+ method: 'DELETE',
26
+ endpoint: `/v1/oauth-grants/${grantId}`,
27
+ sendJWT: true,
28
+ });
29
+ },
30
+ };
31
+ }
32
+ //# sourceMappingURL=oauthGrant.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauthGrant.js","sourceRoot":"","sources":["../../src/routes/oauthGrant.ts"],"names":[],"mappings":"AAiCA,MAAM,CAAC,OAAO,UAAU,uBAAuB,CAAC,MAAoB;IAClE,OAAO;QACL;;;WAGG;QACH,KAAK,CAAC,UAAU;YACd,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAmC;gBAClE,MAAM,EAAE,KAAK;gBACb,QAAQ,EAAE,kBAAkB;gBAC5B,OAAO,EAAE,IAAI;gBACb,WAAW,EAAE,IAAI;aAClB,CAAC,CAAC;YACH,OAAO,GAAG,CAAC,OAAO,CAAC;QACrB,CAAC;QAED;;;;WAIG;QACH,KAAK,CAAC,WAAW,CAAC,OAAe;YAC/B,IAAI,CAAC,OAAO;gBAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YACtD,OAAO,MAAM,CAAC,QAAQ,CAAO;gBAC3B,MAAM,EAAE,QAAQ;gBAChB,QAAQ,EAAE,oBAAoB,OAAO,EAAE;gBACvC,OAAO,EAAE,IAAI;aACd,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"socket.d.ts","sourceRoot":"","sources":["../../src/routes/socket.ts"],"names":[],"mappings":"AAEA,OAAO,YAAY,MAAM,oBAAoB,CAAC;AAG9C,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,OAAO,CAAC;IACnB,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,KAAK,IAAI,CAAC;IAChE,GAAG,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;IAI9C,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK;QAAE,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAA;KAAE,CAAC;CAC5E;AAGD,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,aAAa,EAAE,MAAM,GAAG,QAAQ,CAAC;IACjC,SAAS,EAAE,GAAG,GAAG,IAAI,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7B,OAAO,CAAC,EAAE;QACR,MAAM,CAAC,EAAE,KAAK,CAAC;YAAE,UAAU,EAAE,MAAM,CAAC;YAAC,YAAY,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,GAAG,CAAA;SAAE,CAAC,CAAC;QAC5E,MAAM,CAAC,EAAE,KAAK,CAAC;YAAE,UAAU,EAAE,MAAM,CAAC;YAAC,YAAY,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,GAAG,CAAC;YAAC,WAAW,CAAC,EAAE,GAAG,CAAC;YAAC,WAAW,CAAC,EAAE,GAAG,CAAA;SAAE,CAAC,CAAC;QAClH,MAAM,CAAC,EAAE,KAAK,CAAC;YAAE,UAAU,EAAE,MAAM,CAAC;YAAC,YAAY,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAC9D,CAAC;CACH;AAED,MAAM,WAAW,aAAa;IAC5B;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;;OAGG;IACH,0BAA0B,CAAC,EAAE,OAAO,CAAC;IAErC;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,mBAAmB;IAClC;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,yBAAyB;IACzB,MAAM,EAAE,eAAe,CAAC;IACxB,mBAAmB;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,sBAAsB;IACtB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC;CACtD;AAkBD,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,MAAM,EAAE,YAAY;uBAoE9B,MAAM,YAAW,aAAa,KAAQ,OAAO,CAAC,aAAa,CAAC;iCAuNlD,MAAM,YAAW,mBAAmB,KAAQ,OAAO,CAAC,aAAa,CAAC;0BAuGzE,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC;yBAsLzB,OAAO,CAAC,IAAI,CAAC;gBAvKpB,CAAC,mCACf,MAAM,SACR,MAAM,YACH,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,KAC3B,OAAO,CAAC,IAAI,CAAC;sBAiCe,CAAC,uCACjB,MAAM,SACZ,MAAM,YACH,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,KAC3B,OAAO,CAAC,IAAI,CAAC;2BA4CL,MAAM,SACR,MAAM,aACF,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,KAC9B,IAAI;2BAuBuB,MAAM,KAAG,OAAO;oBAUvB,MAAM,SAAS,MAAM,SAAS,OAAO,KAAG,IAAI;2BAwBxD,MAAM,SACR,MAAM,QACP,OAAO,aACF,MAAM,KAChB,OAAO,CAAC,OAAO,CAAC;2BAkDW,MAAM,YAAY,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK,IAAI,KAAG,IAAI;iCAnB5C,MAAM,YAAY,MAAM,IAAI,KAAG,IAAI;EA2CxE;AAED,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
1
+ {"version":3,"file":"socket.d.ts","sourceRoot":"","sources":["../../src/routes/socket.ts"],"names":[],"mappings":"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"}