@lagapp/sdk 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +21 -0
- package/README.md +69 -12
- package/dist/client.d.ts +28 -4
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +73 -12
- package/dist/client.js.map +1 -1
- package/dist/errors.d.ts +11 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +14 -0
- package/dist/errors.js.map +1 -1
- package/dist/http.d.ts +9 -1
- package/dist/http.d.ts.map +1 -1
- package/dist/http.js +39 -2
- package/dist/http.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/resources/users.d.ts +5 -4
- package/dist/resources/users.d.ts.map +1 -1
- package/dist/resources/users.js +12 -4
- package/dist/resources/users.js.map +1 -1
- package/dist/types/identity.d.ts +37 -0
- package/dist/types/identity.d.ts.map +1 -0
- package/dist/types/identity.js +2 -0
- package/dist/types/identity.js.map +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +1 -0
- package/dist/types/index.js.map +1 -1
- package/dist/version.d.ts +2 -2
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +2 -2
- package/dist/version.js.map +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,27 @@ All notable changes to `@lagapp/sdk` are documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [0.2.0] - 2026-04-10
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
- Robot API key support. `LagClient` now accepts robot keys (`lag_robot_*`)
|
|
12
|
+
via the same `token` field and automatically switches the Authorization
|
|
13
|
+
scheme to `Robot`. Server-scoped operations (sending, editing, deleting
|
|
14
|
+
messages, listing rooms / members / message history) are transparently
|
|
15
|
+
routed to the `/robots/@me/servers/...` endpoints, so the same resource
|
|
16
|
+
methods work for both users and robots.
|
|
17
|
+
- New `client.identity()` returning a unified `Identity` object for both
|
|
18
|
+
PAT users and robot keys, with a `kind` discriminator and the
|
|
19
|
+
credential's display name, avatar, and (for robots) server scope and
|
|
20
|
+
permissions.
|
|
21
|
+
- New `Identity` and `IdentityKind` types exported from `@lagapp/sdk`.
|
|
22
|
+
- New `LagInvalidTokenError` thrown upfront when a method is called with
|
|
23
|
+
an incompatible token kind (e.g. `users.me()` with a robot key).
|
|
24
|
+
- `client.isRobot` getter.
|
|
25
|
+
|
|
26
|
+
### Changed
|
|
27
|
+
- README and client doc comments no longer reference Supabase JWTs.
|
|
28
|
+
|
|
8
29
|
## [0.1.0] - 2026-04-10
|
|
9
30
|
|
|
10
31
|
### Added
|
package/README.md
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
# @lagapp/sdk
|
|
2
2
|
|
|
3
|
+
[](https://www.npmjs.com/package/@lagapp/sdk)
|
|
4
|
+
[](https://github.com/lag-app/sdk-node/actions/workflows/ci.yml)
|
|
5
|
+
[](./LICENSE)
|
|
6
|
+
[](https://www.npmjs.com/package/@lagapp/sdk)
|
|
7
|
+
|
|
3
8
|
The official TypeScript / Node SDK for the [Lag](https://trylag.com) API.
|
|
4
9
|
|
|
5
10
|
`@lagapp/sdk` is a small, hand-written REST client for the public Lag API. It
|
|
@@ -28,11 +33,11 @@ yarn add @lagapp/sdk
|
|
|
28
33
|
import { LagClient } from '@lagapp/sdk';
|
|
29
34
|
|
|
30
35
|
const client = new LagClient({
|
|
31
|
-
token: process.env.LAG_TOKEN!, // a
|
|
36
|
+
token: process.env.LAG_TOKEN!, // a PAT (lag_pat_*) or robot key (lag_robot_*)
|
|
32
37
|
});
|
|
33
38
|
|
|
34
|
-
const
|
|
35
|
-
console.log(`Hello, ${
|
|
39
|
+
const who = await client.identity();
|
|
40
|
+
console.log(`Hello, ${who.displayName}`);
|
|
36
41
|
|
|
37
42
|
const servers = await client.servers.list();
|
|
38
43
|
for (const server of servers) {
|
|
@@ -42,17 +47,68 @@ for (const server of servers) {
|
|
|
42
47
|
|
|
43
48
|
## Authentication
|
|
44
49
|
|
|
45
|
-
The SDK accepts
|
|
50
|
+
The SDK accepts two credential types and auto-detects which one you passed:
|
|
51
|
+
|
|
52
|
+
- A **Personal Access Token** (`lag_pat_*`) - for scripts, CI, and any code
|
|
53
|
+
acting on behalf of a real user. Create one in the Lag web app under
|
|
54
|
+
settings, or via the `lag` CLI with `lag auth login`. Sent as
|
|
55
|
+
`Authorization: Bearer <token>`.
|
|
56
|
+
- A **Robot API key** (`lag_robot_*`) - for bots and integrations that act
|
|
57
|
+
as their own server-scoped identity. Create one when you create a robot
|
|
58
|
+
on a server. Sent as `Authorization: Robot <key>`.
|
|
59
|
+
|
|
60
|
+
Both types are passed via the same `token` field:
|
|
61
|
+
|
|
62
|
+
```ts
|
|
63
|
+
// As a user:
|
|
64
|
+
const userClient = new LagClient({ token: 'lag_pat_...' });
|
|
65
|
+
|
|
66
|
+
// As a robot:
|
|
67
|
+
const botClient = new LagClient({ token: 'lag_robot_abcd1234_...' });
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
The SDK does not implement OAuth flows, refresh tokens, or browser-based
|
|
71
|
+
login - obtain a token elsewhere and pass it in.
|
|
72
|
+
|
|
73
|
+
### Robots
|
|
74
|
+
|
|
75
|
+
Robot keys are scoped to a single server and have a fixed permission set.
|
|
76
|
+
The SDK switches the auth scheme to `Robot` automatically and routes
|
|
77
|
+
server-scoped actions to the robot endpoints under the hood, so the same
|
|
78
|
+
resource methods work for both users and robots:
|
|
79
|
+
|
|
80
|
+
```ts
|
|
81
|
+
import { LagClient } from '@lagapp/sdk';
|
|
82
|
+
|
|
83
|
+
const bot = new LagClient({ token: 'lag_robot_abcd1234_...' });
|
|
84
|
+
|
|
85
|
+
const me = await bot.identity(); // GET /robots/@me/info
|
|
86
|
+
console.log(me.displayName, me.permissions);
|
|
87
|
+
|
|
88
|
+
// Same API as a user, but routed to /robots/@me/servers/...
|
|
89
|
+
await bot.servers.rooms.messages.send(me.serverId!, 'room_id', {
|
|
90
|
+
content: 'Hello from a robot',
|
|
91
|
+
});
|
|
92
|
+
|
|
93
|
+
const page = await bot.servers.rooms.messages.list(me.serverId!, 'room_id');
|
|
94
|
+
for (const msg of page.messages) {
|
|
95
|
+
// ...
|
|
96
|
+
}
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
Methods supported with a robot key:
|
|
46
100
|
|
|
47
|
-
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
-
|
|
51
|
-
|
|
101
|
+
- `client.identity()`
|
|
102
|
+
- `client.servers.rooms.list(serverId)`
|
|
103
|
+
- `client.servers.members.list(serverId)`
|
|
104
|
+
- `client.servers.rooms.messages.list(serverId, roomId, ...)`
|
|
105
|
+
- `client.servers.rooms.messages.send(serverId, roomId, ...)`
|
|
106
|
+
- `client.servers.rooms.messages.edit(serverId, roomId, messageId, ...)`
|
|
107
|
+
- `client.servers.rooms.messages.delete(serverId, roomId, messageId)`
|
|
52
108
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
109
|
+
Methods that have no robot equivalent (`users.me()`, friends, DMs, events,
|
|
110
|
+
image uploads) throw `LagInvalidTokenError` upfront when called with a
|
|
111
|
+
robot key, or return `401`/`403` from the API.
|
|
56
112
|
|
|
57
113
|
## Configuration
|
|
58
114
|
|
|
@@ -163,6 +219,7 @@ import {
|
|
|
163
219
|
LagRateLimitError,
|
|
164
220
|
LagServerError,
|
|
165
221
|
LagConnectionError,
|
|
222
|
+
LagInvalidTokenError,
|
|
166
223
|
} from '@lagapp/sdk';
|
|
167
224
|
|
|
168
225
|
try {
|
package/dist/client.d.ts
CHANGED
|
@@ -6,20 +6,33 @@ import { DmsResource } from './resources/dms.js';
|
|
|
6
6
|
import { ServersResource } from './resources/servers.js';
|
|
7
7
|
import { EventsResource } from './resources/events.js';
|
|
8
8
|
import { ImagesResource } from './resources/images.js';
|
|
9
|
+
import type { Identity } from './types/identity.js';
|
|
9
10
|
/**
|
|
10
11
|
* The Lag SDK entry point.
|
|
11
12
|
*
|
|
12
|
-
* Construct it with a
|
|
13
|
-
* `lag_pat_
|
|
13
|
+
* Construct it with a credential, either a user Personal Access Token
|
|
14
|
+
* (`lag_pat_*`) or a robot API key (`lag_robot_*`):
|
|
14
15
|
*
|
|
15
16
|
* ```ts
|
|
16
17
|
* import { LagClient } from '@lagapp/sdk';
|
|
17
18
|
*
|
|
18
19
|
* const client = new LagClient({ token: process.env.LAG_TOKEN! });
|
|
19
|
-
* const
|
|
20
|
-
*
|
|
20
|
+
* const who = await client.identity();
|
|
21
|
+
* console.log(who.displayName);
|
|
21
22
|
* ```
|
|
22
23
|
*
|
|
24
|
+
* Robot keys use the same `token` parameter; the SDK detects the prefix
|
|
25
|
+
* and switches the Authorization scheme automatically. Server-scoped
|
|
26
|
+
* actions (sending, editing, deleting messages, listing rooms / members /
|
|
27
|
+
* message history) work transparently against the robot endpoints, so a
|
|
28
|
+
* bot can use the same `client.servers.rooms.messages.send(...)` call a
|
|
29
|
+
* user would.
|
|
30
|
+
*
|
|
31
|
+
* Some methods are not available to robots (`users.me()`, friends, DMs,
|
|
32
|
+
* image uploads, events). The SDK throws `LagInvalidTokenError` upfront
|
|
33
|
+
* for the ones that have no robot equivalent; the rest will return `401`
|
|
34
|
+
* from the API.
|
|
35
|
+
*
|
|
23
36
|
* The client is stateless beyond the underlying fetch implementation, so a
|
|
24
37
|
* single instance is safe to share across requests / workers.
|
|
25
38
|
*/
|
|
@@ -31,6 +44,17 @@ export declare class LagClient {
|
|
|
31
44
|
readonly servers: ServersResource;
|
|
32
45
|
readonly events: EventsResource;
|
|
33
46
|
readonly images: ImagesResource;
|
|
47
|
+
private readonly http;
|
|
34
48
|
constructor(options: LagClientOptions);
|
|
49
|
+
/** True when the client is configured with a robot API key. */
|
|
50
|
+
get isRobot(): boolean;
|
|
51
|
+
/**
|
|
52
|
+
* Return a unified `Identity` for the calling credential.
|
|
53
|
+
*
|
|
54
|
+
* Works for both user PATs and robot keys. For users this hits
|
|
55
|
+
* `GET /users/me`; for robots it hits `GET /robots/@me/info`. Inspect
|
|
56
|
+
* `Identity.kind` if you need to branch on user-vs-robot.
|
|
57
|
+
*/
|
|
58
|
+
identity(): Promise<Identity>;
|
|
35
59
|
}
|
|
36
60
|
//# sourceMappingURL=client.d.ts.map
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAapD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,qBAAa,SAAS;IACpB,SAAgB,MAAM,EAAE,cAAc,CAAC;IACvC,SAAgB,KAAK,EAAE,aAAa,CAAC;IACrC,SAAgB,OAAO,EAAE,eAAe,CAAC;IACzC,SAAgB,GAAG,EAAE,WAAW,CAAC;IACjC,SAAgB,OAAO,EAAE,eAAe,CAAC;IACzC,SAAgB,MAAM,EAAE,cAAc,CAAC;IACvC,SAAgB,MAAM,EAAE,cAAc,CAAC;IAEvC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAa;gBAEtB,OAAO,EAAE,gBAAgB;IAWrC,+DAA+D;IAC/D,IAAI,OAAO,IAAI,OAAO,CAErB;IAED;;;;;;OAMG;IACG,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC;CAWpC"}
|
package/dist/client.js
CHANGED
|
@@ -9,17 +9,29 @@ import { ImagesResource } from './resources/images.js';
|
|
|
9
9
|
/**
|
|
10
10
|
* The Lag SDK entry point.
|
|
11
11
|
*
|
|
12
|
-
* Construct it with a
|
|
13
|
-
* `lag_pat_
|
|
12
|
+
* Construct it with a credential, either a user Personal Access Token
|
|
13
|
+
* (`lag_pat_*`) or a robot API key (`lag_robot_*`):
|
|
14
14
|
*
|
|
15
15
|
* ```ts
|
|
16
16
|
* import { LagClient } from '@lagapp/sdk';
|
|
17
17
|
*
|
|
18
18
|
* const client = new LagClient({ token: process.env.LAG_TOKEN! });
|
|
19
|
-
* const
|
|
20
|
-
*
|
|
19
|
+
* const who = await client.identity();
|
|
20
|
+
* console.log(who.displayName);
|
|
21
21
|
* ```
|
|
22
22
|
*
|
|
23
|
+
* Robot keys use the same `token` parameter; the SDK detects the prefix
|
|
24
|
+
* and switches the Authorization scheme automatically. Server-scoped
|
|
25
|
+
* actions (sending, editing, deleting messages, listing rooms / members /
|
|
26
|
+
* message history) work transparently against the robot endpoints, so a
|
|
27
|
+
* bot can use the same `client.servers.rooms.messages.send(...)` call a
|
|
28
|
+
* user would.
|
|
29
|
+
*
|
|
30
|
+
* Some methods are not available to robots (`users.me()`, friends, DMs,
|
|
31
|
+
* image uploads, events). The SDK throws `LagInvalidTokenError` upfront
|
|
32
|
+
* for the ones that have no robot equivalent; the rest will return `401`
|
|
33
|
+
* from the API.
|
|
34
|
+
*
|
|
23
35
|
* The client is stateless beyond the underlying fetch implementation, so a
|
|
24
36
|
* single instance is safe to share across requests / workers.
|
|
25
37
|
*/
|
|
@@ -31,15 +43,64 @@ export class LagClient {
|
|
|
31
43
|
servers;
|
|
32
44
|
events;
|
|
33
45
|
images;
|
|
46
|
+
http;
|
|
34
47
|
constructor(options) {
|
|
35
|
-
|
|
36
|
-
this.system = new SystemResource(http);
|
|
37
|
-
this.users = new UsersResource(http);
|
|
38
|
-
this.friends = new FriendsResource(http);
|
|
39
|
-
this.dms = new DmsResource(http);
|
|
40
|
-
this.servers = new ServersResource(http);
|
|
41
|
-
this.events = new EventsResource(http);
|
|
42
|
-
this.images = new ImagesResource(http);
|
|
48
|
+
this.http = new HttpClient(options);
|
|
49
|
+
this.system = new SystemResource(this.http);
|
|
50
|
+
this.users = new UsersResource(this.http);
|
|
51
|
+
this.friends = new FriendsResource(this.http);
|
|
52
|
+
this.dms = new DmsResource(this.http);
|
|
53
|
+
this.servers = new ServersResource(this.http);
|
|
54
|
+
this.events = new EventsResource(this.http);
|
|
55
|
+
this.images = new ImagesResource(this.http);
|
|
56
|
+
}
|
|
57
|
+
/** True when the client is configured with a robot API key. */
|
|
58
|
+
get isRobot() {
|
|
59
|
+
return this.http.isRobot;
|
|
43
60
|
}
|
|
61
|
+
/**
|
|
62
|
+
* Return a unified `Identity` for the calling credential.
|
|
63
|
+
*
|
|
64
|
+
* Works for both user PATs and robot keys. For users this hits
|
|
65
|
+
* `GET /users/me`; for robots it hits `GET /robots/@me/info`. Inspect
|
|
66
|
+
* `Identity.kind` if you need to branch on user-vs-robot.
|
|
67
|
+
*/
|
|
68
|
+
async identity() {
|
|
69
|
+
if (this.http.isRobot) {
|
|
70
|
+
const raw = await this.http.request({
|
|
71
|
+
method: 'GET',
|
|
72
|
+
path: '/robots/@me/info',
|
|
73
|
+
});
|
|
74
|
+
return identityFromRobot(raw);
|
|
75
|
+
}
|
|
76
|
+
const raw = await this.http.request({ method: 'GET', path: '/users/me' });
|
|
77
|
+
return identityFromUser(raw);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
function identityFromUser(raw) {
|
|
81
|
+
return {
|
|
82
|
+
id: raw.id,
|
|
83
|
+
kind: 'user',
|
|
84
|
+
displayName: raw.displayName ?? raw.username ?? '',
|
|
85
|
+
avatarUrl: raw.avatarUrl ?? null,
|
|
86
|
+
createdAt: raw.createdAt ?? null,
|
|
87
|
+
username: raw.username ?? null,
|
|
88
|
+
serverId: null,
|
|
89
|
+
permissions: null,
|
|
90
|
+
active: null,
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
function identityFromRobot(raw) {
|
|
94
|
+
return {
|
|
95
|
+
id: raw.id,
|
|
96
|
+
kind: 'robot',
|
|
97
|
+
displayName: raw.name ?? '',
|
|
98
|
+
avatarUrl: raw.avatarUrl ?? null,
|
|
99
|
+
createdAt: raw.createdAt ?? null,
|
|
100
|
+
username: null,
|
|
101
|
+
serverId: raw.serverId ?? null,
|
|
102
|
+
permissions: raw.permissions ?? null,
|
|
103
|
+
active: raw.active ?? null,
|
|
104
|
+
};
|
|
44
105
|
}
|
|
45
106
|
//# sourceMappingURL=client.js.map
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAyB,MAAM,WAAW,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAyB,MAAM,WAAW,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAcvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,OAAO,SAAS;IACJ,MAAM,CAAiB;IACvB,KAAK,CAAgB;IACrB,OAAO,CAAkB;IACzB,GAAG,CAAc;IACjB,OAAO,CAAkB;IACzB,MAAM,CAAiB;IACvB,MAAM,CAAiB;IAEtB,IAAI,CAAa;IAElC,YAAY,OAAyB;QACnC,IAAI,CAAC,IAAI,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC;QACpC,IAAI,CAAC,MAAM,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,KAAK,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,OAAO,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,CAAC,GAAG,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,OAAO,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,CAAC,MAAM,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC;IAED,+DAA+D;IAC/D,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;IAC3B,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,QAAQ;QACZ,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YACtB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAY;gBAC7C,MAAM,EAAE,KAAK;gBACb,IAAI,EAAE,kBAAkB;aACzB,CAAC,CAAC;YACH,OAAO,iBAAiB,CAAC,GAAG,CAAC,CAAC;QAChC,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAO,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;QAChF,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;CACF;AAED,SAAS,gBAAgB,CAAC,GAAS;IACjC,OAAO;QACL,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,QAAQ,IAAI,EAAE;QAClD,SAAS,EAAE,GAAG,CAAC,SAAS,IAAI,IAAI;QAChC,SAAS,EAAE,GAAG,CAAC,SAAS,IAAI,IAAI;QAChC,QAAQ,EAAE,GAAG,CAAC,QAAQ,IAAI,IAAI;QAC9B,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,IAAI;QACjB,MAAM,EAAE,IAAI;KACb,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,GAAc;IACvC,OAAO;QACL,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE;QAC3B,SAAS,EAAE,GAAG,CAAC,SAAS,IAAI,IAAI;QAChC,SAAS,EAAE,GAAG,CAAC,SAAS,IAAI,IAAI;QAChC,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,GAAG,CAAC,QAAQ,IAAI,IAAI;QAC9B,WAAW,EAAE,GAAG,CAAC,WAAW,IAAI,IAAI;QACpC,MAAM,EAAE,GAAG,CAAC,MAAM,IAAI,IAAI;KAC3B,CAAC;AACJ,CAAC"}
|
package/dist/errors.d.ts
CHANGED
|
@@ -56,6 +56,17 @@ export declare class LagConnectionError extends LagApiError {
|
|
|
56
56
|
readonly cause?: unknown;
|
|
57
57
|
constructor(message: string, cause?: unknown);
|
|
58
58
|
}
|
|
59
|
+
/**
|
|
60
|
+
* Raised client-side when an SDK method is called with an incompatible
|
|
61
|
+
* token kind. The Lag SDK accepts both Personal Access Tokens
|
|
62
|
+
* (`lag_pat_*`) and robot API keys (`lag_robot_*`); some methods are not
|
|
63
|
+
* available to robots (e.g. `users.me()` returns a User shape that does
|
|
64
|
+
* not exist for robots), so the SDK throws this error before making the
|
|
65
|
+
* request rather than surfacing an opaque API failure.
|
|
66
|
+
*/
|
|
67
|
+
export declare class LagInvalidTokenError extends LagApiError {
|
|
68
|
+
constructor(message: string);
|
|
69
|
+
}
|
|
59
70
|
/**
|
|
60
71
|
* Build the appropriate `LagApiError` subclass for an HTTP response.
|
|
61
72
|
*
|
package/dist/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,WAAY,SAAQ,KAAK;IACpC,SAAgB,MAAM,EAAE,MAAM,CAAC;IAC/B,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B,SAAgB,IAAI,EAAE,eAAe,GAAG,IAAI,CAAC;IAC7C,SAAgB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;gBAGvC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,eAAe,GAAG,IAAI,EAC5B,SAAS,EAAE,MAAM,GAAG,IAAI;CAS3B;AAED,qBAAa,YAAa,SAAQ,WAAW;gBAC/B,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,GAAG,IAAI,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;CAIpF;AAED,qBAAa,kBAAmB,SAAQ,WAAW;gBACrC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,GAAG,IAAI,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;CAIpF;AAED,qBAAa,gBAAiB,SAAQ,WAAW;gBACnC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,GAAG,IAAI,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;CAIpF;AAED,qBAAa,gBAAiB,SAAQ,WAAW;gBACnC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,GAAG,IAAI,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;CAIpF;AAED,qBAAa,iBAAkB,SAAQ,WAAW;IAChD,8EAA8E;IAC9E,SAAgB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;gBAG/C,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,eAAe,GAAG,IAAI,EAC5B,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,iBAAiB,EAAE,MAAM,GAAG,IAAI;CAMnC;AAED,qBAAa,cAAe,SAAQ,WAAW;gBACjC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,GAAG,IAAI,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;CAIpG;AAED,kFAAkF;AAClF,qBAAa,kBAAmB,SAAQ,WAAW;IACjD,SAAyB,KAAK,CAAC,EAAE,OAAO,CAAC;gBAC7B,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO;CAK7C;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,eAAe,GAAG,IAAI,EAC5B,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,iBAAiB,EAAE,MAAM,GAAG,IAAI,GAC/B,WAAW,CAiBb"}
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,WAAY,SAAQ,KAAK;IACpC,SAAgB,MAAM,EAAE,MAAM,CAAC;IAC/B,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B,SAAgB,IAAI,EAAE,eAAe,GAAG,IAAI,CAAC;IAC7C,SAAgB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;gBAGvC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,eAAe,GAAG,IAAI,EAC5B,SAAS,EAAE,MAAM,GAAG,IAAI;CAS3B;AAED,qBAAa,YAAa,SAAQ,WAAW;gBAC/B,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,GAAG,IAAI,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;CAIpF;AAED,qBAAa,kBAAmB,SAAQ,WAAW;gBACrC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,GAAG,IAAI,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;CAIpF;AAED,qBAAa,gBAAiB,SAAQ,WAAW;gBACnC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,GAAG,IAAI,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;CAIpF;AAED,qBAAa,gBAAiB,SAAQ,WAAW;gBACnC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,GAAG,IAAI,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;CAIpF;AAED,qBAAa,iBAAkB,SAAQ,WAAW;IAChD,8EAA8E;IAC9E,SAAgB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;gBAG/C,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,eAAe,GAAG,IAAI,EAC5B,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,iBAAiB,EAAE,MAAM,GAAG,IAAI;CAMnC;AAED,qBAAa,cAAe,SAAQ,WAAW;gBACjC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,GAAG,IAAI,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;CAIpG;AAED,kFAAkF;AAClF,qBAAa,kBAAmB,SAAQ,WAAW;IACjD,SAAyB,KAAK,CAAC,EAAE,OAAO,CAAC;gBAC7B,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO;CAK7C;AAED;;;;;;;GAOG;AACH,qBAAa,oBAAqB,SAAQ,WAAW;gBACvC,OAAO,EAAE,MAAM;CAI5B;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,eAAe,GAAG,IAAI,EAC5B,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,iBAAiB,EAAE,MAAM,GAAG,IAAI,GAC/B,WAAW,CAiBb"}
|
package/dist/errors.js
CHANGED
|
@@ -74,6 +74,20 @@ export class LagConnectionError extends LagApiError {
|
|
|
74
74
|
this.cause = cause;
|
|
75
75
|
}
|
|
76
76
|
}
|
|
77
|
+
/**
|
|
78
|
+
* Raised client-side when an SDK method is called with an incompatible
|
|
79
|
+
* token kind. The Lag SDK accepts both Personal Access Tokens
|
|
80
|
+
* (`lag_pat_*`) and robot API keys (`lag_robot_*`); some methods are not
|
|
81
|
+
* available to robots (e.g. `users.me()` returns a User shape that does
|
|
82
|
+
* not exist for robots), so the SDK throws this error before making the
|
|
83
|
+
* request rather than surfacing an opaque API failure.
|
|
84
|
+
*/
|
|
85
|
+
export class LagInvalidTokenError extends LagApiError {
|
|
86
|
+
constructor(message) {
|
|
87
|
+
super(message, 0, 'invalid_token', null, null);
|
|
88
|
+
this.name = 'LagInvalidTokenError';
|
|
89
|
+
}
|
|
90
|
+
}
|
|
77
91
|
/**
|
|
78
92
|
* Build the appropriate `LagApiError` subclass for an HTTP response.
|
|
79
93
|
*
|
package/dist/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
|
package/dist/http.d.ts
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import { LagApiError } from './errors.js';
|
|
2
2
|
export interface LagClientOptions {
|
|
3
|
-
/**
|
|
3
|
+
/**
|
|
4
|
+
* Credential for the API. Either a user Personal Access Token
|
|
5
|
+
* (`lag_pat_*`) or a robot API key (`lag_robot_*`). The SDK detects the
|
|
6
|
+
* prefix and switches the Authorization scheme to `Bearer` or `Robot`
|
|
7
|
+
* automatically.
|
|
8
|
+
*/
|
|
4
9
|
token: string;
|
|
5
10
|
/** API base URL. Defaults to `https://api.trylag.com`. */
|
|
6
11
|
baseUrl?: string;
|
|
@@ -45,6 +50,9 @@ export declare class HttpClient {
|
|
|
45
50
|
private readonly maxRetries;
|
|
46
51
|
private readonly userAgent;
|
|
47
52
|
private readonly fetchImpl;
|
|
53
|
+
private readonly authScheme;
|
|
54
|
+
/** True when the configured token is a robot API key (`lag_robot_*`). */
|
|
55
|
+
readonly isRobot: boolean;
|
|
48
56
|
constructor(opts: LagClientOptions);
|
|
49
57
|
request<T>(opts: RequestOptions): Promise<T>;
|
|
50
58
|
private buildUrl;
|
package/dist/http.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,WAAW,EAIZ,MAAM,aAAa,CAAC;AAGrB,MAAM,WAAW,gBAAgB;IAC/B
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,WAAW,EAIZ,MAAM,aAAa,CAAC;AAGrB,MAAM,WAAW,gBAAgB;IAC/B;;;;;OAKG;IACH,KAAK,EAAE,MAAM,CAAC;IACd,0DAA0D;IAC1D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oEAAoE;IACpE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,sCAAsC;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8DAA8D;IAC9D,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CACtB;AAgCD,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAC;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;IACrE,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,uEAAuE;IACvE,OAAO,CAAC,EAAE,QAAQ,CAAC;IACnB,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+CAA+C;IAC/C,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAMD;;;;;;;;;;GAUG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;IACzC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAqB;IAChD,yEAAyE;IACzE,SAAgB,OAAO,EAAE,OAAO,CAAC;gBAErB,IAAI,EAAE,gBAAgB;IAkB5B,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC;IA2DlD,OAAO,CAAC,QAAQ;IAkBhB,OAAO,CAAC,YAAY;IAepB,OAAO,CAAC,SAAS;YAMH,UAAU;YAgBV,cAAc;CAkB7B;AAyBD;;;GAGG;AACH,OAAO,EAAE,WAAW,EAAE,CAAC"}
|
package/dist/http.js
CHANGED
|
@@ -1,5 +1,33 @@
|
|
|
1
1
|
import { errorFromResponse, LagApiError, LagConnectionError, LagRateLimitError, } from './errors.js';
|
|
2
2
|
import { USER_AGENT } from './version.js';
|
|
3
|
+
const ROBOT_TOKEN_PREFIX = 'lag_robot_';
|
|
4
|
+
const ROBOT_PATH_PREFIX = '/robots/@me';
|
|
5
|
+
function detectAuthMode(token) {
|
|
6
|
+
if (token.startsWith(ROBOT_TOKEN_PREFIX)) {
|
|
7
|
+
return { scheme: 'Robot', isRobot: true };
|
|
8
|
+
}
|
|
9
|
+
return { scheme: 'Bearer', isRobot: false };
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Rewrite a user-style path to its `/robots/@me` equivalent.
|
|
13
|
+
*
|
|
14
|
+
* Robot keys are scoped to a single server and only have endpoints under
|
|
15
|
+
* `/robots/@me`. The robot routes mirror the user routes for the
|
|
16
|
+
* operations a robot can perform (sending, editing, deleting messages,
|
|
17
|
+
* listing rooms / members / message history), so prepending the prefix is
|
|
18
|
+
* enough to make existing resource methods work transparently.
|
|
19
|
+
*
|
|
20
|
+
* Paths that have no robot equivalent are passed through unchanged and
|
|
21
|
+
* will return 401/403/404/405 from the API.
|
|
22
|
+
*/
|
|
23
|
+
function rewriteRobotPath(path) {
|
|
24
|
+
if (path.startsWith(ROBOT_PATH_PREFIX))
|
|
25
|
+
return path;
|
|
26
|
+
if (path === '/servers' || path.startsWith('/servers/')) {
|
|
27
|
+
return ROBOT_PATH_PREFIX + path;
|
|
28
|
+
}
|
|
29
|
+
return path;
|
|
30
|
+
}
|
|
3
31
|
const DEFAULT_BASE_URL = 'https://api.trylag.com';
|
|
4
32
|
const DEFAULT_TIMEOUT_MS = 30_000;
|
|
5
33
|
const DEFAULT_MAX_RETRIES = 2;
|
|
@@ -21,11 +49,17 @@ export class HttpClient {
|
|
|
21
49
|
maxRetries;
|
|
22
50
|
userAgent;
|
|
23
51
|
fetchImpl;
|
|
52
|
+
authScheme;
|
|
53
|
+
/** True when the configured token is a robot API key (`lag_robot_*`). */
|
|
54
|
+
isRobot;
|
|
24
55
|
constructor(opts) {
|
|
25
56
|
if (!opts.token || typeof opts.token !== 'string') {
|
|
26
57
|
throw new TypeError('LagClient: `token` is required');
|
|
27
58
|
}
|
|
28
59
|
this.token = opts.token;
|
|
60
|
+
const { scheme, isRobot } = detectAuthMode(opts.token);
|
|
61
|
+
this.authScheme = scheme;
|
|
62
|
+
this.isRobot = isRobot;
|
|
29
63
|
this.baseUrl = (opts.baseUrl ?? DEFAULT_BASE_URL).replace(/\/+$/, '');
|
|
30
64
|
this.timeoutMs = opts.timeoutMs ?? DEFAULT_TIMEOUT_MS;
|
|
31
65
|
this.maxRetries = opts.maxRetries ?? DEFAULT_MAX_RETRIES;
|
|
@@ -86,7 +120,10 @@ export class HttpClient {
|
|
|
86
120
|
}
|
|
87
121
|
}
|
|
88
122
|
buildUrl(path, query) {
|
|
89
|
-
|
|
123
|
+
let normalized = path.startsWith('/') ? path : `/${path}`;
|
|
124
|
+
if (this.isRobot) {
|
|
125
|
+
normalized = rewriteRobotPath(normalized);
|
|
126
|
+
}
|
|
90
127
|
const url = new URL(this.baseUrl + normalized);
|
|
91
128
|
if (query) {
|
|
92
129
|
for (const [key, value] of Object.entries(query)) {
|
|
@@ -99,7 +136,7 @@ export class HttpClient {
|
|
|
99
136
|
}
|
|
100
137
|
buildHeaders(opts) {
|
|
101
138
|
const headers = new Headers({
|
|
102
|
-
Authorization:
|
|
139
|
+
Authorization: `${this.authScheme} ${this.token}`,
|
|
103
140
|
Accept: 'application/json',
|
|
104
141
|
'User-Agent': this.userAgent,
|
|
105
142
|
});
|
package/dist/http.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,WAAW,EACX,kBAAkB,EAClB,iBAAiB,GAElB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,WAAW,EACX,kBAAkB,EAClB,iBAAiB,GAElB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAsB1C,MAAM,kBAAkB,GAAG,YAAY,CAAC;AACxC,MAAM,iBAAiB,GAAG,aAAa,CAAC;AAExC,SAAS,cAAc,CAAC,KAAa;IACnC,IAAI,KAAK,CAAC,UAAU,CAAC,kBAAkB,CAAC,EAAE,CAAC;QACzC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC5C,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AAC9C,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAS,gBAAgB,CAAC,IAAY;IACpC,IAAI,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC;QAAE,OAAO,IAAI,CAAC;IACpD,IAAI,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QACxD,OAAO,iBAAiB,GAAG,IAAI,CAAC;IAClC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAiBD,MAAM,gBAAgB,GAAG,wBAAwB,CAAC;AAClD,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAClC,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAE9B;;;;;;;;;;GAUG;AACH,MAAM,OAAO,UAAU;IACJ,KAAK,CAAS;IACd,OAAO,CAAS;IAChB,SAAS,CAAS;IAClB,UAAU,CAAS;IACnB,SAAS,CAAS;IAClB,SAAS,CAAe;IACxB,UAAU,CAAqB;IAChD,yEAAyE;IACzD,OAAO,CAAU;IAEjC,YAAY,IAAsB;QAChC,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YAClD,MAAM,IAAI,SAAS,CAAC,gCAAgC,CAAC,CAAC;QACxD,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvD,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,gBAAgB,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACtE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,kBAAkB,CAAC;QACtD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,mBAAmB,CAAC;QACzD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,UAAU,CAAC;QAC9C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC;QAChD,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;QACpF,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO,CAAI,IAAoB;QACnC,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACjD,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACxC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC;QACtD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC;QAEnD,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,wEAAwE;QACxE,8DAA8D;QAC9D,SAAS,CAAC;YACR,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;YACzC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,SAAS,CAAC,CAAC;YAC9D,IAAI,QAAkB,CAAC;YACvB,IAAI,CAAC;gBACH,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE;oBACnC,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,OAAO;oBACP,IAAI;oBACJ,MAAM,EAAE,UAAU,CAAC,MAAM;iBAC1B,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,IAAI,OAAO,GAAG,UAAU,EAAE,CAAC;oBACzB,OAAO,IAAI,CAAC,CAAC;oBACb,MAAM,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;oBACnC,SAAS;gBACX,CAAC;gBACD,MAAM,IAAI,kBAAkB,CAC1B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB,EAC7D,GAAG,CACJ,CAAC;YACJ,CAAC;YACD,YAAY,CAAC,KAAK,CAAC,CAAC;YAEpB,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;gBAChB,OAAO,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAM,CAAC;YAChD,CAAC;YAED,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YACvD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;YACtD,MAAM,UAAU,GAAG,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;YACxE,MAAM,KAAK,GAAG,iBAAiB,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;YAEnF,MAAM,SAAS,GACb,CAAC,QAAQ,CAAC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,CAAC;YAC/E,IAAI,SAAS,IAAI,OAAO,GAAG,UAAU,EAAE,CAAC;gBACtC,OAAO,IAAI,CAAC,CAAC;gBACb,MAAM,IAAI,GACR,KAAK,YAAY,iBAAiB,IAAI,KAAK,CAAC,iBAAiB,IAAI,IAAI;oBACnE,CAAC,CAAC,KAAK,CAAC,iBAAiB,GAAG,IAAI;oBAChC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;gBAC5B,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;gBAClB,SAAS;YACX,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAEO,QAAQ,CACd,IAAY,EACZ,KAAoE;QAEpE,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;QAC1D,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,UAAU,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAC5C,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,CAAC;QAC/C,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACjD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;oBAAE,SAAS;gBACpD,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;QACD,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;IACxB,CAAC;IAEO,YAAY,CAAC,IAAoB;QACvC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC;YAC1B,aAAa,EAAE,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,KAAK,EAAE;YACjD,MAAM,EAAE,kBAAkB;YAC1B,YAAY,EAAE,IAAI,CAAC,SAAS;SAC7B,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAC7C,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;QAClD,CAAC;QACD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;gBAAE,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACvE,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,SAAS,CAAC,IAAoB;QACpC,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC,OAAO,CAAC;QACpD,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QAC9C,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,QAAkB;QACzC,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG;YAAE,OAAO,SAAS,CAAC;QAC9C,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;QAC/D,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAC9C,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnC,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;QAC9C,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QACxC,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,QAAkB;QAC7C,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnC,IAAI,CAAC,IAAI;gBAAE,OAAO,IAAI,CAAC;YACvB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAuD,CAAC;YACtF,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;gBACxF,OAAO;oBACL,KAAK,EAAE,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,QAAQ,CAAC,MAAM,EAAE;oBAClF,OAAO,EAAE,MAAM,CAAC,OAAO;oBACvB,UAAU,EACR,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM;iBAC9E,CAAC;YACJ,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;CACF;AAED,sDAAsD;AACtD,SAAS,YAAY,CAAC,OAAe;IACnC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;IACtD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC;IACnC,OAAO,IAAI,GAAG,MAAM,CAAC;AACvB,CAAC;AAED,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,eAAe,CAAC,KAAoB;IAC3C,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9B,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,OAAO,CAAC;IAC7C,yDAAyD;IACzD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC/B,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,OAAO,EAAE,WAAW,EAAE,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { LagClient } from './client.js';
|
|
2
2
|
export type { LagClientOptions, RequestOptions } from './http.js';
|
|
3
|
-
export { LagApiError, LagAuthError, LagPermissionError, LagNotFoundError, LagConflictError, LagRateLimitError, LagServerError, LagConnectionError, } from './errors.js';
|
|
3
|
+
export { LagApiError, LagAuthError, LagPermissionError, LagNotFoundError, LagConflictError, LagRateLimitError, LagServerError, LagConnectionError, LagInvalidTokenError, } from './errors.js';
|
|
4
4
|
export type { LagApiErrorBody } from './errors.js';
|
|
5
5
|
export { paginate } from './pagination.js';
|
|
6
6
|
export type { CursorParams, Page, PaginatedResponse } from './pagination.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAElE,OAAO,EACL,WAAW,EACX,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,kBAAkB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAElE,OAAO,EACL,WAAW,EACX,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,YAAY,EAAE,YAAY,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAE7E,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAKvD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,KAAK,UAAU,EAAE,KAAK,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAGjG,cAAc,kBAAkB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { LagClient } from './client.js';
|
|
2
|
-
export { LagApiError, LagAuthError, LagPermissionError, LagNotFoundError, LagConflictError, LagRateLimitError, LagServerError, LagConnectionError, } from './errors.js';
|
|
2
|
+
export { LagApiError, LagAuthError, LagPermissionError, LagNotFoundError, LagConflictError, LagRateLimitError, LagServerError, LagConnectionError, LagInvalidTokenError, } from './errors.js';
|
|
3
3
|
export { paginate } from './pagination.js';
|
|
4
4
|
export { SDK_VERSION, USER_AGENT } from './version.js';
|
|
5
5
|
// Resources are not constructed directly by users, but exporting them lets
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC,OAAO,EACL,WAAW,EACX,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,kBAAkB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC,OAAO,EACL,WAAW,EACX,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAG3C,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAEvD,2EAA2E;AAC3E,6EAA6E;AAC7E,sCAAsC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,cAAc,EAA4C,MAAM,uBAAuB,CAAC;AAEjG,2CAA2C;AAC3C,cAAc,kBAAkB,CAAC"}
|
|
@@ -4,10 +4,11 @@ import type { AvatarUploadBody, AvatarUploadResponse, CheckUsernameResponse, Pus
|
|
|
4
4
|
* Users resource. Covers the calling user's own profile (`/users/me/*`) and
|
|
5
5
|
* lookups for other users (`/users/:id`, `/users/search`, `/users/check-username`).
|
|
6
6
|
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
7
|
+
* The methods on this resource require a user Personal Access Token. When
|
|
8
|
+
* the client is configured with a robot API key, `me()` throws
|
|
9
|
+
* `LagInvalidTokenError` upfront; the others will return `401` from the
|
|
10
|
+
* API. Use `client.identity()` for a robot-compatible alternative to
|
|
11
|
+
* `me()`.
|
|
11
12
|
*/
|
|
12
13
|
export declare class UsersResource {
|
|
13
14
|
private readonly http;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"users.d.ts","sourceRoot":"","sources":["../../src/resources/users.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"users.d.ts","sourceRoot":"","sources":["../../src/resources/users.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,OAAO,KAAK,EACV,gBAAgB,EAChB,oBAAoB,EACpB,qBAAqB,EACrB,aAAa,EACb,aAAa,EACb,qBAAqB,EACrB,mBAAmB,EACnB,cAAc,EACd,IAAI,EACL,MAAM,kBAAkB,CAAC;AAO1B;;;;;;;;;GASG;AACH,qBAAa,aAAa;IACZ,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,UAAU;IAE7C,wDAAwD;IACxD,EAAE,IAAI,OAAO,CAAC,IAAI,CAAC;IAOnB,sEAAsE;IACtE,QAAQ,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7C,+EAA+E;IAC/E,KAAK,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzC,sEAAsE;IACtE,YAAY,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAQnE,6EAA6E;IAC7E,iBAAiB,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,IAAI,CAAA;KAAE,CAAC;IAQ7D,6EAA6E;IAC7E,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,IAAI,CAAA;KAAE,CAAC;IAQrD,wFAAwF;IACxF,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAIhC,0EAA0E;IAC1E,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAI/B,6FAA6F;IAC7F,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAQxD,8EAA8E;IAC9E,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAQnE,8EAA8E;IAC9E,aAAa,IAAI,OAAO,CAAC,qBAAqB,CAAC;IAO/C,sFAAsF;IACtF,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAQ/D,2EAA2E;IAC3E,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAQtC,2CAA2C;IAC3C,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAG/B"}
|
package/dist/resources/users.js
CHANGED
|
@@ -1,11 +1,16 @@
|
|
|
1
|
+
import { LagInvalidTokenError } from '../errors.js';
|
|
2
|
+
const ROBOT_ME_MESSAGE = 'users.me() is not available with a robot API key. ' +
|
|
3
|
+
'Use client.identity() instead - it returns a unified Identity that ' +
|
|
4
|
+
'works for both user tokens and robot keys.';
|
|
1
5
|
/**
|
|
2
6
|
* Users resource. Covers the calling user's own profile (`/users/me/*`) and
|
|
3
7
|
* lookups for other users (`/users/:id`, `/users/search`, `/users/check-username`).
|
|
4
8
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
+
* The methods on this resource require a user Personal Access Token. When
|
|
10
|
+
* the client is configured with a robot API key, `me()` throws
|
|
11
|
+
* `LagInvalidTokenError` upfront; the others will return `401` from the
|
|
12
|
+
* API. Use `client.identity()` for a robot-compatible alternative to
|
|
13
|
+
* `me()`.
|
|
9
14
|
*/
|
|
10
15
|
export class UsersResource {
|
|
11
16
|
http;
|
|
@@ -14,6 +19,9 @@ export class UsersResource {
|
|
|
14
19
|
}
|
|
15
20
|
/** GET /users/me - the currently authenticated user. */
|
|
16
21
|
me() {
|
|
22
|
+
if (this.http.isRobot) {
|
|
23
|
+
return Promise.reject(new LagInvalidTokenError(ROBOT_ME_MESSAGE));
|
|
24
|
+
}
|
|
17
25
|
return this.http.request({ method: 'GET', path: '/users/me' });
|
|
18
26
|
}
|
|
19
27
|
/** PATCH /users/me - update display name, avatar URL, or Steam ID. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"users.js","sourceRoot":"","sources":["../../src/resources/users.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"users.js","sourceRoot":"","sources":["../../src/resources/users.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unified identity returned by both user PAT and robot key callers.
|
|
3
|
+
*
|
|
4
|
+
* The Lag API exposes two ways to authenticate: a user Personal Access
|
|
5
|
+
* Token (`lag_pat_*`) backed by `GET /users/me`, and a robot API key
|
|
6
|
+
* (`lag_robot_*`) backed by `GET /robots/@me/info`. The two endpoints
|
|
7
|
+
* return different shapes, but most callers just want "who am I, what is
|
|
8
|
+
* my display name, what is my avatar". `Identity` is that unified view.
|
|
9
|
+
*
|
|
10
|
+
* Use `LagClient.identity()` to fetch it. Inspect `kind` if you need to
|
|
11
|
+
* branch on user-vs-robot specific fields.
|
|
12
|
+
*/
|
|
13
|
+
export type IdentityKind = 'user' | 'robot';
|
|
14
|
+
export interface Identity {
|
|
15
|
+
/** Stable ID of the user or robot. */
|
|
16
|
+
id: string;
|
|
17
|
+
/** Discriminator: `'user'` for PAT callers, `'robot'` for robot keys. */
|
|
18
|
+
kind: IdentityKind;
|
|
19
|
+
/**
|
|
20
|
+
* The user's display name (or username if unset) for users, or the
|
|
21
|
+
* robot's name for robots. Always populated.
|
|
22
|
+
*/
|
|
23
|
+
displayName: string;
|
|
24
|
+
/** Avatar URL, if any. */
|
|
25
|
+
avatarUrl: string | null;
|
|
26
|
+
/** ISO timestamp when the user or robot was created. */
|
|
27
|
+
createdAt: string | null;
|
|
28
|
+
/** Username. Only populated for users. */
|
|
29
|
+
username: string | null;
|
|
30
|
+
/** Server the robot belongs to. Only populated for robots. */
|
|
31
|
+
serverId: string | null;
|
|
32
|
+
/** Granted permissions. Only populated for robots. */
|
|
33
|
+
permissions: string[] | null;
|
|
34
|
+
/** Whether the robot is enabled. Only populated for robots. */
|
|
35
|
+
active: boolean | null;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=identity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../../src/types/identity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,OAAO,CAAC;AAE5C,MAAM,WAAW,QAAQ;IACvB,sCAAsC;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,yEAAyE;IACzE,IAAI,EAAE,YAAY,CAAC;IACnB;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB,0BAA0B;IAC1B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,wDAAwD;IACxD,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,8DAA8D;IAC9D,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,sDAAsD;IACtD,WAAW,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC7B,+DAA+D;IAC/D,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;CACxB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"identity.js","sourceRoot":"","sources":["../../src/types/identity.ts"],"names":[],"mappings":""}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC"}
|
package/dist/types/index.js
CHANGED
package/dist/types/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC"}
|
package/dist/version.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** Current SDK version. Kept in sync with package.json by hand. */
|
|
2
|
-
export declare const SDK_VERSION = "0.
|
|
2
|
+
export declare const SDK_VERSION = "0.2.0";
|
|
3
3
|
/** User-Agent string sent with every request. */
|
|
4
|
-
export declare const USER_AGENT = "
|
|
4
|
+
export declare const USER_AGENT = "lagapp-sdk-js/0.2.0";
|
|
5
5
|
//# sourceMappingURL=version.d.ts.map
|
package/dist/version.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,eAAO,MAAM,WAAW,UAAU,CAAC;AAEnC,iDAAiD;AACjD,eAAO,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,eAAO,MAAM,WAAW,UAAU,CAAC;AAEnC,iDAAiD;AACjD,eAAO,MAAM,UAAU,wBAAiC,CAAC"}
|
package/dist/version.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** Current SDK version. Kept in sync with package.json by hand. */
|
|
2
|
-
export const SDK_VERSION = '0.
|
|
2
|
+
export const SDK_VERSION = '0.2.0';
|
|
3
3
|
/** User-Agent string sent with every request. */
|
|
4
|
-
export const USER_AGENT = `
|
|
4
|
+
export const USER_AGENT = `lagapp-sdk-js/${SDK_VERSION}`;
|
|
5
5
|
//# sourceMappingURL=version.js.map
|
package/dist/version.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,MAAM,CAAC,MAAM,WAAW,GAAG,OAAO,CAAC;AAEnC,iDAAiD;AACjD,MAAM,CAAC,MAAM,UAAU,GAAG,
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,MAAM,CAAC,MAAM,WAAW,GAAG,OAAO,CAAC;AAEnC,iDAAiD;AACjD,MAAM,CAAC,MAAM,UAAU,GAAG,iBAAiB,WAAW,EAAE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lagapp/sdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "Official TypeScript/Node SDK for the Lag API",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
"scripts": {
|
|
22
22
|
"build": "tsc -p tsconfig.build.json",
|
|
23
23
|
"typecheck": "tsc --noEmit",
|
|
24
|
-
"test": "node --import tsx --test
|
|
24
|
+
"test": "node --import tsx --test test/*.test.ts",
|
|
25
25
|
"prepublishOnly": "npm run build"
|
|
26
26
|
},
|
|
27
27
|
"engines": {
|