@buildspacestudio/sdk 0.1.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/dist/auth/client.d.ts +16 -0
- package/dist/auth/client.d.ts.map +1 -0
- package/dist/auth/client.js +31 -0
- package/dist/auth/client.js.map +1 -0
- package/dist/auth/index.d.ts +4 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +3 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/auth/server.d.ts +26 -0
- package/dist/auth/server.d.ts.map +1 -0
- package/dist/auth/server.js +53 -0
- package/dist/auth/server.js.map +1 -0
- package/dist/client/index.d.ts +21 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +51 -0
- package/dist/client/index.js.map +1 -0
- package/dist/config.d.ts +30 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +27 -0
- package/dist/config.js.map +1 -0
- package/dist/errors.d.ts +13 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +13 -0
- package/dist/errors.js.map +1 -0
- package/dist/events/client.d.ts +15 -0
- package/dist/events/client.d.ts.map +1 -0
- package/dist/events/client.js +56 -0
- package/dist/events/client.js.map +1 -0
- package/dist/events/index.d.ts +4 -0
- package/dist/events/index.d.ts.map +1 -0
- package/dist/events/index.js +3 -0
- package/dist/events/index.js.map +1 -0
- package/dist/events/server.d.ts +19 -0
- package/dist/events/server.d.ts.map +1 -0
- package/dist/events/server.js +33 -0
- package/dist/events/server.js.map +1 -0
- package/dist/http.d.ts +29 -0
- package/dist/http.d.ts.map +1 -0
- package/dist/http.js +62 -0
- package/dist/http.js.map +1 -0
- package/dist/index.d.ts +30 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +54 -0
- package/dist/index.js.map +1 -0
- package/dist/notifications/index.d.ts +3 -0
- package/dist/notifications/index.d.ts.map +1 -0
- package/dist/notifications/index.js +2 -0
- package/dist/notifications/index.js.map +1 -0
- package/dist/notifications/server.d.ts +25 -0
- package/dist/notifications/server.d.ts.map +1 -0
- package/dist/notifications/server.js +35 -0
- package/dist/notifications/server.js.map +1 -0
- package/dist/storage/client.d.ts +32 -0
- package/dist/storage/client.d.ts.map +1 -0
- package/dist/storage/client.js +63 -0
- package/dist/storage/client.js.map +1 -0
- package/dist/storage/index.d.ts +5 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/storage/index.js +3 -0
- package/dist/storage/index.js.map +1 -0
- package/dist/storage/server.d.ts +43 -0
- package/dist/storage/server.d.ts.map +1 -0
- package/dist/storage/server.js +54 -0
- package/dist/storage/server.js.map +1 -0
- package/package.json +47 -0
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { HttpTransport } from "../http";
|
|
2
|
+
export declare class AuthClientNamespace {
|
|
3
|
+
private readonly transport;
|
|
4
|
+
constructor(transport: HttpTransport);
|
|
5
|
+
getSignInUrl(opts: {
|
|
6
|
+
appSlug?: string;
|
|
7
|
+
env?: "dev" | "prod";
|
|
8
|
+
redirectUri: string;
|
|
9
|
+
}): string;
|
|
10
|
+
getSignUpUrl(opts: {
|
|
11
|
+
appSlug?: string;
|
|
12
|
+
env?: "dev" | "prod";
|
|
13
|
+
redirectUri: string;
|
|
14
|
+
}): string;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/auth/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAgB;gBAE9B,SAAS,EAAE,aAAa;IAIpC,YAAY,CAAC,IAAI,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM;IAiB3F,YAAY,CAAC,IAAI,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM;CAgB5F"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export class AuthClientNamespace {
|
|
2
|
+
transport;
|
|
3
|
+
constructor(transport) {
|
|
4
|
+
this.transport = transport;
|
|
5
|
+
}
|
|
6
|
+
getSignInUrl(opts) {
|
|
7
|
+
const url = new URL("/sign-in", this.transport.loginUrl);
|
|
8
|
+
if (opts.appSlug) {
|
|
9
|
+
url.searchParams.set("app", opts.appSlug);
|
|
10
|
+
}
|
|
11
|
+
url.searchParams.set("redirect_uri", opts.redirectUri);
|
|
12
|
+
url.searchParams.set("client_id", this.transport.key);
|
|
13
|
+
if (opts.env) {
|
|
14
|
+
url.searchParams.set("env", opts.env);
|
|
15
|
+
}
|
|
16
|
+
return url.toString();
|
|
17
|
+
}
|
|
18
|
+
getSignUpUrl(opts) {
|
|
19
|
+
const url = new URL("/sign-up", this.transport.loginUrl);
|
|
20
|
+
if (opts.appSlug) {
|
|
21
|
+
url.searchParams.set("app", opts.appSlug);
|
|
22
|
+
}
|
|
23
|
+
url.searchParams.set("redirect_uri", opts.redirectUri);
|
|
24
|
+
url.searchParams.set("client_id", this.transport.key);
|
|
25
|
+
if (opts.env) {
|
|
26
|
+
url.searchParams.set("env", opts.env);
|
|
27
|
+
}
|
|
28
|
+
return url.toString();
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/auth/client.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,mBAAmB;IACb,SAAS,CAAgB;IAE1C,YAAY,SAAwB;QAClC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,YAAY,CAAC,IAAqE;QAChF,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAEzD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5C,CAAC;QAED,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QACvD,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAEtD,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QACxC,CAAC;QAED,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;IACxB,CAAC;IAED,YAAY,CAAC,IAAqE;QAChF,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAEzD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5C,CAAC;QAED,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QACvD,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAEtD,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QACxC,CAAC;QAED,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;IACxB,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC/C,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAE/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { HttpTransport } from "../http";
|
|
2
|
+
export interface AuthUser {
|
|
3
|
+
email: string;
|
|
4
|
+
id: string;
|
|
5
|
+
name: string | null;
|
|
6
|
+
}
|
|
7
|
+
export interface AuthSession {
|
|
8
|
+
appId: string | null;
|
|
9
|
+
user: AuthUser;
|
|
10
|
+
}
|
|
11
|
+
export interface TokenResponse {
|
|
12
|
+
access_token: string;
|
|
13
|
+
expires_in: number;
|
|
14
|
+
token_type: string;
|
|
15
|
+
user: AuthUser;
|
|
16
|
+
}
|
|
17
|
+
export declare class AuthServerNamespace {
|
|
18
|
+
private readonly transport;
|
|
19
|
+
constructor(transport: HttpTransport);
|
|
20
|
+
getSession(sessionToken: string): Promise<AuthSession | null>;
|
|
21
|
+
handleCallback(request: Request | URL | string, opts?: {
|
|
22
|
+
redirectUri?: string;
|
|
23
|
+
}): Promise<TokenResponse>;
|
|
24
|
+
revokeSession(sessionToken: string): Promise<void>;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/auth/server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,IAAI,EAAE,QAAQ,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,QAAQ,CAAC;CAChB;AAED,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAgB;gBAE9B,SAAS,EAAE,aAAa;IAI9B,UAAU,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAYnE,cAAc,CACZ,OAAO,EAAE,OAAO,GAAG,GAAG,GAAG,MAAM,EAC/B,IAAI,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,GAC9B,OAAO,CAAC,aAAa,CAAC;IA4BnB,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAQzD"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
export class AuthServerNamespace {
|
|
2
|
+
transport;
|
|
3
|
+
constructor(transport) {
|
|
4
|
+
this.transport = transport;
|
|
5
|
+
}
|
|
6
|
+
async getSession(sessionToken) {
|
|
7
|
+
try {
|
|
8
|
+
return await this.transport.request({
|
|
9
|
+
service: "auth",
|
|
10
|
+
path: "/v1/auth/session",
|
|
11
|
+
headers: { "X-Session-Token": sessionToken },
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
catch {
|
|
15
|
+
return null;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
handleCallback(request, opts) {
|
|
19
|
+
let url;
|
|
20
|
+
if (typeof request === "string") {
|
|
21
|
+
url = new URL(request);
|
|
22
|
+
}
|
|
23
|
+
else if (request instanceof URL) {
|
|
24
|
+
url = request;
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
url = new URL(request.url);
|
|
28
|
+
}
|
|
29
|
+
const code = url.searchParams.get("code");
|
|
30
|
+
if (!code) {
|
|
31
|
+
throw new Error("No auth code found in callback URL. Expected ?code= parameter.");
|
|
32
|
+
}
|
|
33
|
+
const redirectUri = opts?.redirectUri ?? `${url.origin}${url.pathname}`;
|
|
34
|
+
return this.transport.request({
|
|
35
|
+
service: "auth",
|
|
36
|
+
path: "/v1/auth/token",
|
|
37
|
+
method: "POST",
|
|
38
|
+
body: {
|
|
39
|
+
code,
|
|
40
|
+
redirect_uri: redirectUri,
|
|
41
|
+
},
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
async revokeSession(sessionToken) {
|
|
45
|
+
await this.transport.request({
|
|
46
|
+
service: "auth",
|
|
47
|
+
path: "/v1/auth/session",
|
|
48
|
+
method: "DELETE",
|
|
49
|
+
headers: { "X-Session-Token": sessionToken },
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/auth/server.ts"],"names":[],"mappings":"AAoBA,MAAM,OAAO,mBAAmB;IACb,SAAS,CAAgB;IAE1C,YAAY,SAAwB;QAClC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,YAAoB;QACnC,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAc;gBAC/C,OAAO,EAAE,MAAM;gBACf,IAAI,EAAE,kBAAkB;gBACxB,OAAO,EAAE,EAAE,iBAAiB,EAAE,YAAY,EAAE;aAC7C,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,cAAc,CACZ,OAA+B,EAC/B,IAA+B;QAE/B,IAAI,GAAQ,CAAC;QACb,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;QACzB,CAAC;aAAM,IAAI,OAAO,YAAY,GAAG,EAAE,CAAC;YAClC,GAAG,GAAG,OAAO,CAAC;QAChB,CAAC;aAAM,CAAC;YACN,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC7B,CAAC;QAED,MAAM,IAAI,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC1C,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;QACpF,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,EAAE,WAAW,IAAI,GAAG,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;QAExE,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAgB;YAC3C,OAAO,EAAE,MAAM;YACf,IAAI,EAAE,gBAAgB;YACtB,MAAM,EAAE,MAAM;YACd,IAAI,EAAE;gBACJ,IAAI;gBACJ,YAAY,EAAE,WAAW;aAC1B;SACF,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,YAAoB;QACtC,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAO;YACjC,OAAO,EAAE,MAAM;YACf,IAAI,EAAE,kBAAkB;YACxB,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,EAAE,iBAAiB,EAAE,YAAY,EAAE;SAC7C,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { AuthClientNamespace } from "../auth";
|
|
2
|
+
import { type BuildspaceClientConfig } from "../config";
|
|
3
|
+
import { EventsClientNamespace } from "../events";
|
|
4
|
+
import { StorageClientNamespace } from "../storage";
|
|
5
|
+
declare class BuildspaceClient {
|
|
6
|
+
private readonly transport;
|
|
7
|
+
private readonly config;
|
|
8
|
+
private _auth;
|
|
9
|
+
private _events;
|
|
10
|
+
private _storage;
|
|
11
|
+
constructor(publishableKey: string, config?: BuildspaceClientConfig);
|
|
12
|
+
get auth(): AuthClientNamespace;
|
|
13
|
+
get events(): EventsClientNamespace;
|
|
14
|
+
get storage(): StorageClientNamespace;
|
|
15
|
+
get notifications(): never;
|
|
16
|
+
clearSession(): void;
|
|
17
|
+
setSession(sessionToken: string): void;
|
|
18
|
+
}
|
|
19
|
+
export declare function createClient(publishableKey: string, config?: BuildspaceClientConfig): BuildspaceClient;
|
|
20
|
+
export { BuildspaceClient };
|
|
21
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAE,KAAK,sBAAsB,EAAiB,MAAM,WAAW,CAAC;AAEvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAElD,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEpD,cAAM,gBAAgB;IACpB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAgB;IAC1C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyB;IAChD,OAAO,CAAC,KAAK,CAAoC;IACjD,OAAO,CAAC,OAAO,CAAsC;IACrD,OAAO,CAAC,QAAQ,CAAuC;gBAE3C,cAAc,EAAE,MAAM,EAAE,MAAM,GAAE,sBAA2B;IAQvE,IAAI,IAAI,IAAI,mBAAmB,CAG9B;IAED,IAAI,MAAM,IAAI,qBAAqB,CAGlC;IAED,IAAI,OAAO,IAAI,sBAAsB,CAGpC;IAED,IAAI,aAAa,IAAI,KAAK,CAQzB;IAED,YAAY,IAAI,IAAI;IAIpB,UAAU,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;CAGvC;AAED,wBAAgB,YAAY,CAC1B,cAAc,EAAE,MAAM,EACtB,MAAM,GAAE,sBAA2B,GAClC,gBAAgB,CAElB;AAED,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { AuthClientNamespace } from "../auth";
|
|
2
|
+
import { resolveConfig } from "../config";
|
|
3
|
+
import { BuildspaceError } from "../errors";
|
|
4
|
+
import { EventsClientNamespace } from "../events";
|
|
5
|
+
import { HttpTransport } from "../http";
|
|
6
|
+
import { StorageClientNamespace } from "../storage";
|
|
7
|
+
class BuildspaceClient {
|
|
8
|
+
transport;
|
|
9
|
+
config;
|
|
10
|
+
_auth = null;
|
|
11
|
+
_events = null;
|
|
12
|
+
_storage = null;
|
|
13
|
+
constructor(publishableKey, config = {}) {
|
|
14
|
+
this.config = config;
|
|
15
|
+
this.transport = new HttpTransport({
|
|
16
|
+
key: publishableKey,
|
|
17
|
+
resolvedConfig: resolveConfig("client", config),
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
get auth() {
|
|
21
|
+
this._auth ??= new AuthClientNamespace(this.transport);
|
|
22
|
+
return this._auth;
|
|
23
|
+
}
|
|
24
|
+
get events() {
|
|
25
|
+
this._events ??= new EventsClientNamespace(this.transport, this.config.events);
|
|
26
|
+
return this._events;
|
|
27
|
+
}
|
|
28
|
+
get storage() {
|
|
29
|
+
this._storage ??= new StorageClientNamespace(this.transport);
|
|
30
|
+
return this._storage;
|
|
31
|
+
}
|
|
32
|
+
get notifications() {
|
|
33
|
+
throw new BuildspaceError({
|
|
34
|
+
service: "notifications",
|
|
35
|
+
status: 400,
|
|
36
|
+
code: "notifications/server-only",
|
|
37
|
+
message: "Notifications require a secret key. Use the server SDK via new Buildspace() from '@buildspacestudio/sdk'.",
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
clearSession() {
|
|
41
|
+
this.transport.clearSession();
|
|
42
|
+
}
|
|
43
|
+
setSession(sessionToken) {
|
|
44
|
+
this.transport.setSession(sessionToken);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
export function createClient(publishableKey, config = {}) {
|
|
48
|
+
return new BuildspaceClient(publishableKey, config);
|
|
49
|
+
}
|
|
50
|
+
export { BuildspaceClient };
|
|
51
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,EAA+B,aAAa,EAAE,MAAM,WAAW,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEpD,MAAM,gBAAgB;IACH,SAAS,CAAgB;IACzB,MAAM,CAAyB;IACxC,KAAK,GAA+B,IAAI,CAAC;IACzC,OAAO,GAAiC,IAAI,CAAC;IAC7C,QAAQ,GAAkC,IAAI,CAAC;IAEvD,YAAY,cAAsB,EAAE,SAAiC,EAAE;QACrE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,IAAI,aAAa,CAAC;YACjC,GAAG,EAAE,cAAc;YACnB,cAAc,EAAE,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC;SAChD,CAAC,CAAC;IACL,CAAC;IAED,IAAI,IAAI;QACN,IAAI,CAAC,KAAK,KAAK,IAAI,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACvD,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,IAAI,MAAM;QACR,IAAI,CAAC,OAAO,KAAK,IAAI,qBAAqB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC/E,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,IAAI,OAAO;QACT,IAAI,CAAC,QAAQ,KAAK,IAAI,sBAAsB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7D,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,IAAI,aAAa;QACf,MAAM,IAAI,eAAe,CAAC;YACxB,OAAO,EAAE,eAAe;YACxB,MAAM,EAAE,GAAG;YACX,IAAI,EAAE,2BAA2B;YACjC,OAAO,EACL,2GAA2G;SAC9G,CAAC,CAAC;IACL,CAAC;IAED,YAAY;QACV,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;IAChC,CAAC;IAED,UAAU,CAAC,YAAoB;QAC7B,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;IAC1C,CAAC;CACF;AAED,MAAM,UAAU,YAAY,CAC1B,cAAsB,EACtB,SAAiC,EAAE;IAEnC,OAAO,IAAI,gBAAgB,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;AACtD,CAAC;AAED,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
|
package/dist/config.d.ts
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export declare const DEFAULT_BASE_URL = "https://api.buildspace.studio";
|
|
2
|
+
export declare const DEFAULT_LOGIN_URL = "https://login.buildspace.studio";
|
|
3
|
+
export declare const DEFAULT_API_VERSION = "2025-06-01";
|
|
4
|
+
export type ClientMode = "server" | "client";
|
|
5
|
+
export interface BuildspaceConfig {
|
|
6
|
+
baseUrl?: string;
|
|
7
|
+
fetch?: typeof fetch;
|
|
8
|
+
loginUrl?: string;
|
|
9
|
+
version?: string;
|
|
10
|
+
}
|
|
11
|
+
export interface EventsBatchingConfig {
|
|
12
|
+
flushInterval?: number;
|
|
13
|
+
maxBatchSize?: number;
|
|
14
|
+
}
|
|
15
|
+
export interface BuildspaceClientConfig extends BuildspaceConfig {
|
|
16
|
+
events?: EventsBatchingConfig;
|
|
17
|
+
}
|
|
18
|
+
export interface ResolvedConfig {
|
|
19
|
+
baseUrl: string;
|
|
20
|
+
fetch: typeof fetch;
|
|
21
|
+
loginUrl: string;
|
|
22
|
+
mode: ClientMode;
|
|
23
|
+
version: string;
|
|
24
|
+
}
|
|
25
|
+
export declare function resolveConfig(mode: ClientMode, config?: BuildspaceConfig): ResolvedConfig;
|
|
26
|
+
export declare function validateApiKey({ mode, key }: {
|
|
27
|
+
key: string;
|
|
28
|
+
mode: ClientMode;
|
|
29
|
+
}): void;
|
|
30
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,kCAAkC,CAAC;AAChE,eAAO,MAAM,iBAAiB,oCAAoC,CAAC;AACnE,eAAO,MAAM,mBAAmB,eAAe,CAAC;AAEhD,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE7C,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,oBAAoB;IACnC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,sBAAuB,SAAQ,gBAAgB;IAC9D,MAAM,CAAC,EAAE,oBAAoB,CAAC;CAC/B;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,OAAO,KAAK,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,GAAE,gBAAqB,GAAG,cAAc,CAQ7F;AAMD,wBAAgB,cAAc,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,UAAU,CAAA;CAAE,GAAG,IAAI,CAgBrF"}
|
package/dist/config.js
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export const DEFAULT_BASE_URL = "https://api.buildspace.studio";
|
|
2
|
+
export const DEFAULT_LOGIN_URL = "https://login.buildspace.studio";
|
|
3
|
+
export const DEFAULT_API_VERSION = "2025-06-01";
|
|
4
|
+
export function resolveConfig(mode, config = {}) {
|
|
5
|
+
return {
|
|
6
|
+
mode,
|
|
7
|
+
baseUrl: config.baseUrl ?? DEFAULT_BASE_URL,
|
|
8
|
+
loginUrl: config.loginUrl ?? DEFAULT_LOGIN_URL,
|
|
9
|
+
version: config.version ?? DEFAULT_API_VERSION,
|
|
10
|
+
fetch: config.fetch ?? fetch,
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
function formatMode(mode) {
|
|
14
|
+
return mode === "server" ? "server SDK" : "client SDK";
|
|
15
|
+
}
|
|
16
|
+
export function validateApiKey({ mode, key }) {
|
|
17
|
+
if (!key) {
|
|
18
|
+
throw new Error(`Missing API key. The ${formatMode(mode)} requires a valid Buildspace key.`);
|
|
19
|
+
}
|
|
20
|
+
if (mode === "server" && !key.startsWith("bs_sec_")) {
|
|
21
|
+
throw new Error("The server SDK requires a secret key (bs_sec_*). Use createClient() from '@buildspacestudio/sdk/client' for browser usage with publishable keys.");
|
|
22
|
+
}
|
|
23
|
+
if (mode === "client" && !key.startsWith("bs_pub_")) {
|
|
24
|
+
throw new Error("The client SDK requires a publishable key (bs_pub_*). Use new Buildspace() from '@buildspacestudio/sdk' for server usage with secret keys.");
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gBAAgB,GAAG,+BAA+B,CAAC;AAChE,MAAM,CAAC,MAAM,iBAAiB,GAAG,iCAAiC,CAAC;AACnE,MAAM,CAAC,MAAM,mBAAmB,GAAG,YAAY,CAAC;AA4BhD,MAAM,UAAU,aAAa,CAAC,IAAgB,EAAE,SAA2B,EAAE;IAC3E,OAAO;QACL,IAAI;QACJ,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,gBAAgB;QAC3C,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,iBAAiB;QAC9C,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,mBAAmB;QAC9C,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,KAAK;KAC7B,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,IAAgB;IAClC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,EAAE,IAAI,EAAE,GAAG,EAAqC;IAC7E,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,wBAAwB,UAAU,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;IAC/F,CAAC;IAED,IAAI,IAAI,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QACpD,MAAM,IAAI,KAAK,CACb,kJAAkJ,CACnJ,CAAC;IACJ,CAAC;IAED,IAAI,IAAI,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QACpD,MAAM,IAAI,KAAK,CACb,4IAA4I,CAC7I,CAAC;IACJ,CAAC;AACH,CAAC"}
|
package/dist/errors.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export type BuildspaceService = "auth" | "events" | "notifications" | "storage";
|
|
2
|
+
export declare class BuildspaceError extends Error {
|
|
3
|
+
readonly code: string;
|
|
4
|
+
readonly service: BuildspaceService;
|
|
5
|
+
readonly status: number;
|
|
6
|
+
constructor({ code, message, service, status, }: {
|
|
7
|
+
code: string;
|
|
8
|
+
message: string;
|
|
9
|
+
service: BuildspaceService;
|
|
10
|
+
status: number;
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,QAAQ,GAAG,eAAe,GAAG,SAAS,CAAC;AAEhF,qBAAa,eAAgB,SAAQ,KAAK;IACxC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBAEZ,EACV,IAAI,EACJ,OAAO,EACP,OAAO,EACP,MAAM,GACP,EAAE;QACD,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,iBAAiB,CAAC;QAC3B,MAAM,EAAE,MAAM,CAAC;KAChB;CAOF"}
|
package/dist/errors.js
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export class BuildspaceError extends Error {
|
|
2
|
+
code;
|
|
3
|
+
service;
|
|
4
|
+
status;
|
|
5
|
+
constructor({ code, message, service, status, }) {
|
|
6
|
+
super(message);
|
|
7
|
+
this.name = "BuildspaceError";
|
|
8
|
+
this.code = code;
|
|
9
|
+
this.service = service;
|
|
10
|
+
this.status = status;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,eAAgB,SAAQ,KAAK;IAC/B,IAAI,CAAS;IACb,OAAO,CAAoB;IAC3B,MAAM,CAAS;IAExB,YAAY,EACV,IAAI,EACJ,OAAO,EACP,OAAO,EACP,MAAM,GAMP;QACC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { HttpTransport } from "../http";
|
|
2
|
+
export declare class EventsClientNamespace {
|
|
3
|
+
private readonly queue;
|
|
4
|
+
private readonly transport;
|
|
5
|
+
private timer;
|
|
6
|
+
constructor(transport: HttpTransport, config?: {
|
|
7
|
+
flushInterval?: number;
|
|
8
|
+
maxBatchSize?: number;
|
|
9
|
+
});
|
|
10
|
+
private readonly maxBatchSize;
|
|
11
|
+
track(event: string, properties?: Record<string, unknown>, actorId?: string): void;
|
|
12
|
+
flush(): Promise<void>;
|
|
13
|
+
shutdown(): Promise<void>;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/events/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAS7C,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAqB;IAC3C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAgB;IAC1C,OAAO,CAAC,KAAK,CAA+C;gBAG1D,SAAS,EAAE,aAAa,EACxB,MAAM,GAAE;QAAE,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAO;IAYhE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IAEtC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;IAe5E,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAqBtB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAQhC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
export class EventsClientNamespace {
|
|
2
|
+
queue = [];
|
|
3
|
+
transport;
|
|
4
|
+
timer = null;
|
|
5
|
+
constructor(transport, config = {}) {
|
|
6
|
+
this.transport = transport;
|
|
7
|
+
const flushInterval = config.flushInterval ?? 5000;
|
|
8
|
+
this.maxBatchSize = config.maxBatchSize ?? 20;
|
|
9
|
+
this.timer = setInterval(() => {
|
|
10
|
+
this.flush().catch(() => {
|
|
11
|
+
// best effort flush for background timer
|
|
12
|
+
});
|
|
13
|
+
}, flushInterval);
|
|
14
|
+
}
|
|
15
|
+
maxBatchSize;
|
|
16
|
+
track(event, properties, actorId) {
|
|
17
|
+
this.queue.push({
|
|
18
|
+
event,
|
|
19
|
+
properties,
|
|
20
|
+
actor_id: actorId,
|
|
21
|
+
timestamp: new Date().toISOString(),
|
|
22
|
+
});
|
|
23
|
+
if (this.queue.length >= this.maxBatchSize) {
|
|
24
|
+
this.flush().catch(() => {
|
|
25
|
+
// best effort flush on max batch size
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
async flush() {
|
|
30
|
+
if (this.queue.length === 0) {
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
const batch = this.queue.splice(0, this.queue.length);
|
|
34
|
+
try {
|
|
35
|
+
await this.transport.request({
|
|
36
|
+
service: "events",
|
|
37
|
+
path: "/v1/events/batch",
|
|
38
|
+
method: "POST",
|
|
39
|
+
keepalive: true,
|
|
40
|
+
body: { events: batch },
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
catch {
|
|
44
|
+
this.queue.unshift(...batch);
|
|
45
|
+
throw new Error("Failed to flush events batch.");
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
async shutdown() {
|
|
49
|
+
if (this.timer) {
|
|
50
|
+
clearInterval(this.timer);
|
|
51
|
+
this.timer = null;
|
|
52
|
+
}
|
|
53
|
+
await this.flush();
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/events/client.ts"],"names":[],"mappings":"AASA,MAAM,OAAO,qBAAqB;IACf,KAAK,GAAkB,EAAE,CAAC;IAC1B,SAAS,CAAgB;IAClC,KAAK,GAA0C,IAAI,CAAC;IAE5D,YACE,SAAwB,EACxB,SAA4D,EAAE;QAE9D,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,IAAI,IAAI,CAAC;QACnD,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,IAAI,EAAE,CAAC;QAC9C,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;YAC5B,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE;gBACtB,yCAAyC;YAC3C,CAAC,CAAC,CAAC;QACL,CAAC,EAAE,aAAa,CAAC,CAAC;IACpB,CAAC;IAEgB,YAAY,CAAS;IAEtC,KAAK,CAAC,KAAa,EAAE,UAAoC,EAAE,OAAgB;QACzE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YACd,KAAK;YACL,UAAU;YACV,QAAQ,EAAE,OAAO;YACjB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YAC3C,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE;gBACtB,sCAAsC;YACxC,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO;QACT,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAEtD,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAO;gBACjC,OAAO,EAAE,QAAQ;gBACjB,IAAI,EAAE,kBAAkB;gBACxB,MAAM,EAAE,MAAM;gBACd,SAAS,EAAE,IAAI;gBACf,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;aACxB,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QACpB,CAAC;QAED,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/events/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AACjD,YAAY,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/events/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAEjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { HttpTransport } from "../http";
|
|
2
|
+
export interface ServerTrackedEvent {
|
|
3
|
+
actor_id?: string;
|
|
4
|
+
event: string;
|
|
5
|
+
properties?: Record<string, unknown>;
|
|
6
|
+
timestamp?: string;
|
|
7
|
+
}
|
|
8
|
+
export declare class EventsServerNamespace {
|
|
9
|
+
private readonly transport;
|
|
10
|
+
constructor(transport: HttpTransport);
|
|
11
|
+
track(event: string, properties?: Record<string, unknown>, actorId?: string): Promise<{
|
|
12
|
+
event_id: string;
|
|
13
|
+
}>;
|
|
14
|
+
batchTrack(events: ServerTrackedEvent[]): Promise<{
|
|
15
|
+
count: number;
|
|
16
|
+
event_ids: string[];
|
|
17
|
+
}>;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/events/server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAgB;gBAE9B,SAAS,EAAE,aAAa;IAIpC,KAAK,CACH,KAAK,EAAE,MAAM,EACb,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAchC,UAAU,CAAC,MAAM,EAAE,kBAAkB,EAAE,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;CAa1F"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export class EventsServerNamespace {
|
|
2
|
+
transport;
|
|
3
|
+
constructor(transport) {
|
|
4
|
+
this.transport = transport;
|
|
5
|
+
}
|
|
6
|
+
track(event, properties, actorId) {
|
|
7
|
+
return this.transport.request({
|
|
8
|
+
service: "events",
|
|
9
|
+
path: "/v1/events",
|
|
10
|
+
method: "POST",
|
|
11
|
+
body: {
|
|
12
|
+
event,
|
|
13
|
+
properties,
|
|
14
|
+
actor_id: actorId,
|
|
15
|
+
timestamp: new Date().toISOString(),
|
|
16
|
+
},
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
batchTrack(events) {
|
|
20
|
+
return this.transport.request({
|
|
21
|
+
service: "events",
|
|
22
|
+
path: "/v1/events/batch",
|
|
23
|
+
method: "POST",
|
|
24
|
+
body: {
|
|
25
|
+
events: events.map((event) => ({
|
|
26
|
+
...event,
|
|
27
|
+
timestamp: event.timestamp ?? new Date().toISOString(),
|
|
28
|
+
})),
|
|
29
|
+
},
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/events/server.ts"],"names":[],"mappings":"AASA,MAAM,OAAO,qBAAqB;IACf,SAAS,CAAgB;IAE1C,YAAY,SAAwB;QAClC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,KAAK,CACH,KAAa,EACb,UAAoC,EACpC,OAAgB;QAEhB,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAuB;YAClD,OAAO,EAAE,QAAQ;YACjB,IAAI,EAAE,YAAY;YAClB,MAAM,EAAE,MAAM;YACd,IAAI,EAAE;gBACJ,KAAK;gBACL,UAAU;gBACV,QAAQ,EAAE,OAAO;gBACjB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACpC;SACF,CAAC,CAAC;IACL,CAAC;IAED,UAAU,CAAC,MAA4B;QACrC,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAyC;YACpE,OAAO,EAAE,QAAQ;YACjB,IAAI,EAAE,kBAAkB;YACxB,MAAM,EAAE,MAAM;YACd,IAAI,EAAE;gBACJ,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;oBAC7B,GAAG,KAAK;oBACR,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;iBACvD,CAAC,CAAC;aACJ;SACF,CAAC,CAAC;IACL,CAAC;CACF"}
|
package/dist/http.d.ts
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { type ClientMode, type ResolvedConfig } from "./config";
|
|
2
|
+
import { type BuildspaceService } from "./errors";
|
|
3
|
+
interface RequestOptions {
|
|
4
|
+
body?: unknown;
|
|
5
|
+
headers?: Record<string, string>;
|
|
6
|
+
keepalive?: boolean;
|
|
7
|
+
method?: string;
|
|
8
|
+
path: string;
|
|
9
|
+
query?: Record<string, string | number | boolean | undefined>;
|
|
10
|
+
service: BuildspaceService;
|
|
11
|
+
}
|
|
12
|
+
export declare class HttpTransport {
|
|
13
|
+
readonly baseUrl: string;
|
|
14
|
+
readonly fetcher: typeof fetch;
|
|
15
|
+
readonly key: string;
|
|
16
|
+
readonly loginUrl: string;
|
|
17
|
+
readonly mode: ClientMode;
|
|
18
|
+
readonly version: string;
|
|
19
|
+
private sessionToken;
|
|
20
|
+
constructor({ key, resolvedConfig }: {
|
|
21
|
+
key: string;
|
|
22
|
+
resolvedConfig: ResolvedConfig;
|
|
23
|
+
});
|
|
24
|
+
clearSession(): void;
|
|
25
|
+
setSession(sessionToken: string): void;
|
|
26
|
+
request<T>({ service, path, method, query, body, headers, keepalive, }: RequestOptions): Promise<T>;
|
|
27
|
+
}
|
|
28
|
+
export {};
|
|
29
|
+
//# sourceMappingURL=http.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,cAAc,EAAkB,MAAM,UAAU,CAAC;AAChF,OAAO,EAAmB,KAAK,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAEnE,UAAU,cAAc;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,CAAC;IAC9D,OAAO,EAAE,iBAAiB,CAAC;CAC5B;AAED,qBAAa,aAAa;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,OAAO,KAAK,CAAC;IAC/B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,YAAY,CAAuB;gBAE/B,EAAE,GAAG,EAAE,cAAc,EAAE,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,cAAc,CAAA;KAAE;IAUpF,YAAY,IAAI,IAAI;IAIpB,UAAU,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAIhC,OAAO,CAAC,CAAC,EAAE,EACf,OAAO,EACP,IAAI,EACJ,MAAc,EACd,KAAK,EACL,IAAI,EACJ,OAAO,EACP,SAAS,GACV,EAAE,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC;CA6C/B"}
|
package/dist/http.js
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { validateApiKey } from "./config";
|
|
2
|
+
import { BuildspaceError } from "./errors";
|
|
3
|
+
export class HttpTransport {
|
|
4
|
+
baseUrl;
|
|
5
|
+
fetcher;
|
|
6
|
+
key;
|
|
7
|
+
loginUrl;
|
|
8
|
+
mode;
|
|
9
|
+
version;
|
|
10
|
+
sessionToken = null;
|
|
11
|
+
constructor({ key, resolvedConfig }) {
|
|
12
|
+
validateApiKey({ mode: resolvedConfig.mode, key });
|
|
13
|
+
this.key = key;
|
|
14
|
+
this.mode = resolvedConfig.mode;
|
|
15
|
+
this.baseUrl = resolvedConfig.baseUrl;
|
|
16
|
+
this.loginUrl = resolvedConfig.loginUrl;
|
|
17
|
+
this.version = resolvedConfig.version;
|
|
18
|
+
this.fetcher = resolvedConfig.fetch;
|
|
19
|
+
}
|
|
20
|
+
clearSession() {
|
|
21
|
+
this.sessionToken = null;
|
|
22
|
+
}
|
|
23
|
+
setSession(sessionToken) {
|
|
24
|
+
this.sessionToken = sessionToken;
|
|
25
|
+
}
|
|
26
|
+
async request({ service, path, method = "GET", query, body, headers, keepalive, }) {
|
|
27
|
+
const url = new URL(path, this.baseUrl);
|
|
28
|
+
if (query) {
|
|
29
|
+
for (const [key, value] of Object.entries(query)) {
|
|
30
|
+
if (value !== undefined) {
|
|
31
|
+
url.searchParams.set(key, String(value));
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
const response = await this.fetcher(url.toString(), {
|
|
36
|
+
method,
|
|
37
|
+
keepalive,
|
|
38
|
+
headers: {
|
|
39
|
+
Authorization: `Bearer ${this.key}`,
|
|
40
|
+
"Content-Type": "application/json",
|
|
41
|
+
"X-Buildspace-Version": this.version,
|
|
42
|
+
...(this.sessionToken ? { "X-Session-Token": this.sessionToken } : {}),
|
|
43
|
+
...headers,
|
|
44
|
+
},
|
|
45
|
+
body: body === undefined ? undefined : JSON.stringify(body),
|
|
46
|
+
});
|
|
47
|
+
if (!response.ok) {
|
|
48
|
+
const payload = (await response.json().catch(() => null));
|
|
49
|
+
throw new BuildspaceError({
|
|
50
|
+
service,
|
|
51
|
+
status: response.status,
|
|
52
|
+
code: payload?.code ?? `${service}/http-${response.status}`,
|
|
53
|
+
message: payload?.error ?? payload?.message ?? response.statusText,
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
if (response.status === 204) {
|
|
57
|
+
return undefined;
|
|
58
|
+
}
|
|
59
|
+
return response.json();
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=http.js.map
|
package/dist/http.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwC,cAAc,EAAE,MAAM,UAAU,CAAC;AAChF,OAAO,EAAE,eAAe,EAA0B,MAAM,UAAU,CAAC;AAYnE,MAAM,OAAO,aAAa;IACf,OAAO,CAAS;IAChB,OAAO,CAAe;IACtB,GAAG,CAAS;IACZ,QAAQ,CAAS;IACjB,IAAI,CAAa;IACjB,OAAO,CAAS;IACjB,YAAY,GAAkB,IAAI,CAAC;IAE3C,YAAY,EAAE,GAAG,EAAE,cAAc,EAAmD;QAClF,cAAc,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;QACnD,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC;QAChC,IAAI,CAAC,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC;QACtC,IAAI,CAAC,QAAQ,GAAG,cAAc,CAAC,QAAQ,CAAC;QACxC,IAAI,CAAC,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC;QACtC,IAAI,CAAC,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC;IACtC,CAAC;IAED,YAAY;QACV,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IAC3B,CAAC;IAED,UAAU,CAAC,YAAoB;QAC7B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,OAAO,CAAI,EACf,OAAO,EACP,IAAI,EACJ,MAAM,GAAG,KAAK,EACd,KAAK,EACL,IAAI,EACJ,OAAO,EACP,SAAS,GACM;QACf,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAExC,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,EAAE,CAAC;oBACxB,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC3C,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE;YAClD,MAAM;YACN,SAAS;YACT,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,IAAI,CAAC,GAAG,EAAE;gBACnC,cAAc,EAAE,kBAAkB;gBAClC,sBAAsB,EAAE,IAAI,CAAC,OAAO;gBACpC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACtE,GAAG,OAAO;aACX;YACD,IAAI,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC5D,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,OAAO,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAIhD,CAAC;YAET,MAAM,IAAI,eAAe,CAAC;gBACxB,OAAO;gBACP,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,IAAI,EAAE,OAAO,EAAE,IAAI,IAAI,GAAG,OAAO,SAAS,QAAQ,CAAC,MAAM,EAAE;gBAC3D,OAAO,EAAE,OAAO,EAAE,KAAK,IAAI,OAAO,EAAE,OAAO,IAAI,QAAQ,CAAC,UAAU;aACnE,CAAC,CAAC;QACL,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC5B,OAAO,SAAc,CAAC;QACxB,CAAC;QAED,OAAO,QAAQ,CAAC,IAAI,EAAgB,CAAC;IACvC,CAAC;CACF"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { AuthClientNamespace, AuthServerNamespace } from "./auth";
|
|
2
|
+
import { type BuildspaceConfig } from "./config";
|
|
3
|
+
import { EventsServerNamespace } from "./events";
|
|
4
|
+
import { NotificationsServerNamespace } from "./notifications";
|
|
5
|
+
import { StorageServerNamespace } from "./storage";
|
|
6
|
+
export * from "./auth";
|
|
7
|
+
export type { BuildspaceClientConfig, BuildspaceConfig } from "./config";
|
|
8
|
+
export { BuildspaceError } from "./errors";
|
|
9
|
+
export * from "./events";
|
|
10
|
+
export * from "./notifications";
|
|
11
|
+
export * from "./storage";
|
|
12
|
+
declare class Buildspace {
|
|
13
|
+
private readonly transport;
|
|
14
|
+
private _auth;
|
|
15
|
+
private _events;
|
|
16
|
+
private _notifications;
|
|
17
|
+
private _publicAuth;
|
|
18
|
+
private _storage;
|
|
19
|
+
constructor(secretKey: string, config?: BuildspaceConfig);
|
|
20
|
+
get auth(): AuthServerNamespace;
|
|
21
|
+
get authClient(): AuthClientNamespace;
|
|
22
|
+
get events(): EventsServerNamespace;
|
|
23
|
+
get storage(): StorageServerNamespace;
|
|
24
|
+
get notifications(): NotificationsServerNamespace;
|
|
25
|
+
clearSession(): void;
|
|
26
|
+
setSession(sessionToken: string): void;
|
|
27
|
+
}
|
|
28
|
+
export { Buildspace };
|
|
29
|
+
export default Buildspace;
|
|
30
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAClE,OAAO,EAAE,KAAK,gBAAgB,EAAiB,MAAM,UAAU,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAEjD,OAAO,EAAE,4BAA4B,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAEnD,cAAc,QAAQ,CAAC;AACvB,YAAY,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAE1B,cAAM,UAAU;IACd,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAgB;IAC1C,OAAO,CAAC,KAAK,CAAoC;IACjD,OAAO,CAAC,OAAO,CAAsC;IACrD,OAAO,CAAC,cAAc,CAA6C;IACnE,OAAO,CAAC,WAAW,CAAoC;IACvD,OAAO,CAAC,QAAQ,CAAuC;gBAE3C,SAAS,EAAE,MAAM,EAAE,MAAM,GAAE,gBAAqB;IAO5D,IAAI,IAAI,IAAI,mBAAmB,CAG9B;IAED,IAAI,UAAU,IAAI,mBAAmB,CAGpC;IAED,IAAI,MAAM,IAAI,qBAAqB,CAGlC;IAED,IAAI,OAAO,IAAI,sBAAsB,CAGpC;IAED,IAAI,aAAa,IAAI,4BAA4B,CAGhD;IAED,YAAY,IAAI,IAAI;IAIpB,UAAU,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;CAGvC;AAED,OAAO,EAAE,UAAU,EAAE,CAAC;AACtB,eAAe,UAAU,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { AuthClientNamespace, AuthServerNamespace } from "./auth";
|
|
2
|
+
import { resolveConfig } from "./config";
|
|
3
|
+
import { EventsServerNamespace } from "./events";
|
|
4
|
+
import { HttpTransport } from "./http";
|
|
5
|
+
import { NotificationsServerNamespace } from "./notifications";
|
|
6
|
+
import { StorageServerNamespace } from "./storage";
|
|
7
|
+
export * from "./auth";
|
|
8
|
+
export { BuildspaceError } from "./errors";
|
|
9
|
+
export * from "./events";
|
|
10
|
+
export * from "./notifications";
|
|
11
|
+
export * from "./storage";
|
|
12
|
+
class Buildspace {
|
|
13
|
+
transport;
|
|
14
|
+
_auth = null;
|
|
15
|
+
_events = null;
|
|
16
|
+
_notifications = null;
|
|
17
|
+
_publicAuth = null;
|
|
18
|
+
_storage = null;
|
|
19
|
+
constructor(secretKey, config = {}) {
|
|
20
|
+
this.transport = new HttpTransport({
|
|
21
|
+
key: secretKey,
|
|
22
|
+
resolvedConfig: resolveConfig("server", config),
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
get auth() {
|
|
26
|
+
this._auth ??= new AuthServerNamespace(this.transport);
|
|
27
|
+
return this._auth;
|
|
28
|
+
}
|
|
29
|
+
get authClient() {
|
|
30
|
+
this._publicAuth ??= new AuthClientNamespace(this.transport);
|
|
31
|
+
return this._publicAuth;
|
|
32
|
+
}
|
|
33
|
+
get events() {
|
|
34
|
+
this._events ??= new EventsServerNamespace(this.transport);
|
|
35
|
+
return this._events;
|
|
36
|
+
}
|
|
37
|
+
get storage() {
|
|
38
|
+
this._storage ??= new StorageServerNamespace(this.transport);
|
|
39
|
+
return this._storage;
|
|
40
|
+
}
|
|
41
|
+
get notifications() {
|
|
42
|
+
this._notifications ??= new NotificationsServerNamespace(this.transport);
|
|
43
|
+
return this._notifications;
|
|
44
|
+
}
|
|
45
|
+
clearSession() {
|
|
46
|
+
this.transport.clearSession();
|
|
47
|
+
}
|
|
48
|
+
setSession(sessionToken) {
|
|
49
|
+
this.transport.setSession(sessionToken);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
export { Buildspace };
|
|
53
|
+
export default Buildspace;
|
|
54
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAClE,OAAO,EAAyB,aAAa,EAAE,MAAM,UAAU,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAE,4BAA4B,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAEnD,cAAc,QAAQ,CAAC;AAEvB,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAE1B,MAAM,UAAU;IACG,SAAS,CAAgB;IAClC,KAAK,GAA+B,IAAI,CAAC;IACzC,OAAO,GAAiC,IAAI,CAAC;IAC7C,cAAc,GAAwC,IAAI,CAAC;IAC3D,WAAW,GAA+B,IAAI,CAAC;IAC/C,QAAQ,GAAkC,IAAI,CAAC;IAEvD,YAAY,SAAiB,EAAE,SAA2B,EAAE;QAC1D,IAAI,CAAC,SAAS,GAAG,IAAI,aAAa,CAAC;YACjC,GAAG,EAAE,SAAS;YACd,cAAc,EAAE,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC;SAChD,CAAC,CAAC;IACL,CAAC;IAED,IAAI,IAAI;QACN,IAAI,CAAC,KAAK,KAAK,IAAI,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACvD,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,IAAI,UAAU;QACZ,IAAI,CAAC,WAAW,KAAK,IAAI,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7D,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,IAAI,MAAM;QACR,IAAI,CAAC,OAAO,KAAK,IAAI,qBAAqB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC3D,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,IAAI,OAAO;QACT,IAAI,CAAC,QAAQ,KAAK,IAAI,sBAAsB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7D,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,IAAI,aAAa;QACf,IAAI,CAAC,cAAc,KAAK,IAAI,4BAA4B,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACzE,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED,YAAY;QACV,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;IAChC,CAAC;IAED,UAAU,CAAC,YAAoB;QAC7B,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;IAC1C,CAAC;CACF;AAED,OAAO,EAAE,UAAU,EAAE,CAAC;AACtB,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/notifications/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC7E,OAAO,EAAE,4BAA4B,EAAE,MAAM,UAAU,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/notifications/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,4BAA4B,EAAE,MAAM,UAAU,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { HttpTransport } from "../http";
|
|
2
|
+
export interface SendOptions {
|
|
3
|
+
html: string;
|
|
4
|
+
metadata?: Record<string, unknown>;
|
|
5
|
+
replyTo?: string;
|
|
6
|
+
subject: string;
|
|
7
|
+
text?: string;
|
|
8
|
+
to: string | string[];
|
|
9
|
+
}
|
|
10
|
+
export interface SendTemplateOptions {
|
|
11
|
+
metadata?: Record<string, unknown>;
|
|
12
|
+
to: string | string[];
|
|
13
|
+
variables?: Record<string, string>;
|
|
14
|
+
}
|
|
15
|
+
export interface SendResult {
|
|
16
|
+
id: string;
|
|
17
|
+
providerMessageId?: string;
|
|
18
|
+
}
|
|
19
|
+
export declare class NotificationsServerNamespace {
|
|
20
|
+
private readonly transport;
|
|
21
|
+
constructor(transport: HttpTransport);
|
|
22
|
+
send(opts: SendOptions): Promise<SendResult>;
|
|
23
|
+
sendTemplate(templateSlug: string, opts: SendTemplateOptions): Promise<SendResult>;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/notifications/server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,qBAAa,4BAA4B;IACvC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAgB;gBAE9B,SAAS,EAAE,aAAa;IAIpC,IAAI,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;IAgB5C,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC;CAanF"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export class NotificationsServerNamespace {
|
|
2
|
+
transport;
|
|
3
|
+
constructor(transport) {
|
|
4
|
+
this.transport = transport;
|
|
5
|
+
}
|
|
6
|
+
send(opts) {
|
|
7
|
+
return this.transport.request({
|
|
8
|
+
service: "notifications",
|
|
9
|
+
path: "/v1/notifications/send",
|
|
10
|
+
method: "POST",
|
|
11
|
+
body: {
|
|
12
|
+
to: opts.to,
|
|
13
|
+
subject: opts.subject,
|
|
14
|
+
html: opts.html,
|
|
15
|
+
text: opts.text,
|
|
16
|
+
reply_to: opts.replyTo,
|
|
17
|
+
metadata: opts.metadata,
|
|
18
|
+
},
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
sendTemplate(templateSlug, opts) {
|
|
22
|
+
return this.transport.request({
|
|
23
|
+
service: "notifications",
|
|
24
|
+
path: "/v1/notifications/send-template",
|
|
25
|
+
method: "POST",
|
|
26
|
+
body: {
|
|
27
|
+
template: templateSlug,
|
|
28
|
+
to: opts.to,
|
|
29
|
+
variables: opts.variables,
|
|
30
|
+
metadata: opts.metadata,
|
|
31
|
+
},
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/notifications/server.ts"],"names":[],"mappings":"AAsBA,MAAM,OAAO,4BAA4B;IACtB,SAAS,CAAgB;IAE1C,YAAY,SAAwB;QAClC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,IAAI,CAAC,IAAiB;QACpB,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAa;YACxC,OAAO,EAAE,eAAe;YACxB,IAAI,EAAE,wBAAwB;YAC9B,MAAM,EAAE,MAAM;YACd,IAAI,EAAE;gBACJ,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,QAAQ,EAAE,IAAI,CAAC,OAAO;gBACtB,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACxB;SACF,CAAC,CAAC;IACL,CAAC;IAED,YAAY,CAAC,YAAoB,EAAE,IAAyB;QAC1D,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAa;YACxC,OAAO,EAAE,eAAe;YACxB,IAAI,EAAE,iCAAiC;YACvC,MAAM,EAAE,MAAM;YACd,IAAI,EAAE;gBACJ,QAAQ,EAAE,YAAY;gBACtB,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACxB;SACF,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { HttpTransport } from "../http";
|
|
2
|
+
import type { StorageObject } from "./server";
|
|
3
|
+
export interface UploadOptions {
|
|
4
|
+
contentType?: string;
|
|
5
|
+
path: string;
|
|
6
|
+
}
|
|
7
|
+
export interface UploadResponse {
|
|
8
|
+
key: string;
|
|
9
|
+
size: number;
|
|
10
|
+
url: string;
|
|
11
|
+
}
|
|
12
|
+
export interface GetUrlResponse {
|
|
13
|
+
expiresIn?: number;
|
|
14
|
+
key: string;
|
|
15
|
+
url: string;
|
|
16
|
+
}
|
|
17
|
+
export declare class StorageClientNamespace {
|
|
18
|
+
private readonly transport;
|
|
19
|
+
constructor(transport: HttpTransport);
|
|
20
|
+
upload(file: File | Blob, opts: UploadOptions): Promise<UploadResponse>;
|
|
21
|
+
getUrl(key: string, opts?: {
|
|
22
|
+
expiresIn?: number;
|
|
23
|
+
}): Promise<GetUrlResponse>;
|
|
24
|
+
list(prefix?: string, opts?: {
|
|
25
|
+
limit?: number;
|
|
26
|
+
offset?: number;
|
|
27
|
+
}): Promise<{
|
|
28
|
+
objects: StorageObject[];
|
|
29
|
+
}>;
|
|
30
|
+
delete(key: string): Promise<void>;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/storage/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,MAAM,WAAW,aAAa;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACb;AAED,qBAAa,sBAAsB;IACjC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAgB;gBAE9B,SAAS,EAAE,aAAa;IAI9B,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;IAkC7E,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,cAAc,CAAC;IAW3E,IAAI,CACF,MAAM,CAAC,EAAE,MAAM,EACf,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GACzC,OAAO,CAAC;QAAE,OAAO,EAAE,aAAa,EAAE,CAAA;KAAE,CAAC;IAYlC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAQzC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
export class StorageClientNamespace {
|
|
2
|
+
transport;
|
|
3
|
+
constructor(transport) {
|
|
4
|
+
this.transport = transport;
|
|
5
|
+
}
|
|
6
|
+
async upload(file, opts) {
|
|
7
|
+
const contentType = opts.contentType ?? (file instanceof File ? file.type : "application/octet-stream");
|
|
8
|
+
const signed = await this.transport.request({
|
|
9
|
+
service: "storage",
|
|
10
|
+
path: "/v1/storage/upload",
|
|
11
|
+
method: "POST",
|
|
12
|
+
body: {
|
|
13
|
+
path: opts.path,
|
|
14
|
+
content_type: contentType,
|
|
15
|
+
size: file.size,
|
|
16
|
+
},
|
|
17
|
+
});
|
|
18
|
+
const response = await this.transport.fetcher(signed.upload_url, {
|
|
19
|
+
method: "PUT",
|
|
20
|
+
headers: { "Content-Type": contentType },
|
|
21
|
+
body: file,
|
|
22
|
+
});
|
|
23
|
+
if (!response.ok) {
|
|
24
|
+
throw new Error(`Direct upload failed: ${response.statusText}`);
|
|
25
|
+
}
|
|
26
|
+
const { url } = await this.getUrl(signed.key);
|
|
27
|
+
return {
|
|
28
|
+
key: signed.key,
|
|
29
|
+
size: file.size,
|
|
30
|
+
url,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
getUrl(key, opts) {
|
|
34
|
+
return this.transport.request({
|
|
35
|
+
service: "storage",
|
|
36
|
+
path: "/v1/storage/url",
|
|
37
|
+
query: {
|
|
38
|
+
key,
|
|
39
|
+
expires_in: opts?.expiresIn,
|
|
40
|
+
},
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
list(prefix, opts) {
|
|
44
|
+
return this.transport.request({
|
|
45
|
+
service: "storage",
|
|
46
|
+
path: "/v1/storage/objects",
|
|
47
|
+
query: {
|
|
48
|
+
prefix,
|
|
49
|
+
limit: opts?.limit,
|
|
50
|
+
offset: opts?.offset,
|
|
51
|
+
},
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
async delete(key) {
|
|
55
|
+
await this.transport.request({
|
|
56
|
+
service: "storage",
|
|
57
|
+
path: "/v1/storage/object",
|
|
58
|
+
method: "DELETE",
|
|
59
|
+
body: { key },
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/storage/client.ts"],"names":[],"mappings":"AAoBA,MAAM,OAAO,sBAAsB;IAChB,SAAS,CAAgB;IAE1C,YAAY,SAAwB;QAClC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAiB,EAAE,IAAmB;QACjD,MAAM,WAAW,GACf,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,YAAY,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC;QAEtF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAsC;YAC/E,OAAO,EAAE,SAAS;YAClB,IAAI,EAAE,oBAAoB;YAC1B,MAAM,EAAE,MAAM;YACd,IAAI,EAAE;gBACJ,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,YAAY,EAAE,WAAW;gBACzB,IAAI,EAAE,IAAI,CAAC,IAAI;aAChB;SACF,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE;YAC/D,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,EAAE,cAAc,EAAE,WAAW,EAAE;YACxC,IAAI,EAAE,IAAI;SACX,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,yBAAyB,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;QAClE,CAAC;QAED,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAE9C,OAAO;YACL,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,GAAG;SACJ,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,GAAW,EAAE,IAA6B;QAC/C,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAiB;YAC5C,OAAO,EAAE,SAAS;YAClB,IAAI,EAAE,iBAAiB;YACvB,KAAK,EAAE;gBACL,GAAG;gBACH,UAAU,EAAE,IAAI,EAAE,SAAS;aAC5B;SACF,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CACF,MAAe,EACf,IAA0C;QAE1C,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAA+B;YAC1D,OAAO,EAAE,SAAS;YAClB,IAAI,EAAE,qBAAqB;YAC3B,KAAK,EAAE;gBACL,MAAM;gBACN,KAAK,EAAE,IAAI,EAAE,KAAK;gBAClB,MAAM,EAAE,IAAI,EAAE,MAAM;aACrB;SACF,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAW;QACtB,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAO;YACjC,OAAO,EAAE,SAAS;YAClB,IAAI,EAAE,oBAAoB;YAC1B,MAAM,EAAE,QAAQ;YAChB,IAAI,EAAE,EAAE,GAAG,EAAE;SACd,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export type { GetUrlResponse, UploadOptions, UploadResponse } from "./client";
|
|
2
|
+
export { StorageClientNamespace } from "./client";
|
|
3
|
+
export type { ServerUploadOptions, StorageObject } from "./server";
|
|
4
|
+
export { StorageServerNamespace } from "./server";
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/storage/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC9E,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAClD,YAAY,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/storage/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAElD,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { HttpTransport } from "../http";
|
|
2
|
+
export interface ServerUploadOptions {
|
|
3
|
+
contentType: string;
|
|
4
|
+
key: string;
|
|
5
|
+
size: number;
|
|
6
|
+
}
|
|
7
|
+
export interface StorageObject {
|
|
8
|
+
contentType: string;
|
|
9
|
+
createdAt: string;
|
|
10
|
+
id: string;
|
|
11
|
+
key: string;
|
|
12
|
+
size: number;
|
|
13
|
+
uploadedBy: string | null;
|
|
14
|
+
}
|
|
15
|
+
export declare class StorageServerNamespace {
|
|
16
|
+
private readonly transport;
|
|
17
|
+
constructor(transport: HttpTransport);
|
|
18
|
+
getUploadUrl(opts: ServerUploadOptions): Promise<{
|
|
19
|
+
expires_in: number;
|
|
20
|
+
key: string;
|
|
21
|
+
upload_url: string;
|
|
22
|
+
}>;
|
|
23
|
+
getSignedUrl(key: string, opts?: {
|
|
24
|
+
expiresIn?: number;
|
|
25
|
+
}): Promise<{
|
|
26
|
+
expiresIn?: number;
|
|
27
|
+
key: string;
|
|
28
|
+
url: string;
|
|
29
|
+
}>;
|
|
30
|
+
list(prefix?: string, opts?: {
|
|
31
|
+
limit?: number;
|
|
32
|
+
offset?: number;
|
|
33
|
+
}): Promise<{
|
|
34
|
+
objects: StorageObject[];
|
|
35
|
+
}>;
|
|
36
|
+
delete(key: string): Promise<void>;
|
|
37
|
+
getUsage(): Promise<{
|
|
38
|
+
maxStorageBytes: number;
|
|
39
|
+
objectCount: number;
|
|
40
|
+
storageBytes: number;
|
|
41
|
+
}>;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/storage/server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,qBAAa,sBAAsB;IACjC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAgB;gBAE9B,SAAS,EAAE,aAAa;IAIpC,YAAY,CACV,IAAI,EAAE,mBAAmB,GACxB,OAAO,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IAanE,YAAY,CACV,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAC5B,OAAO,CAAC;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAW5D,IAAI,CACF,MAAM,CAAC,EAAE,MAAM,EACf,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GACzC,OAAO,CAAC;QAAE,OAAO,EAAE,aAAa,EAAE,CAAA;KAAE,CAAC;IAYlC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IASxC,QAAQ,IAAI,OAAO,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;QACxB,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;CAUH"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
export class StorageServerNamespace {
|
|
2
|
+
transport;
|
|
3
|
+
constructor(transport) {
|
|
4
|
+
this.transport = transport;
|
|
5
|
+
}
|
|
6
|
+
getUploadUrl(opts) {
|
|
7
|
+
return this.transport.request({
|
|
8
|
+
service: "storage",
|
|
9
|
+
path: "/v1/storage/upload",
|
|
10
|
+
method: "POST",
|
|
11
|
+
body: {
|
|
12
|
+
path: opts.key,
|
|
13
|
+
content_type: opts.contentType,
|
|
14
|
+
size: opts.size,
|
|
15
|
+
},
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
getSignedUrl(key, opts) {
|
|
19
|
+
return this.transport.request({
|
|
20
|
+
service: "storage",
|
|
21
|
+
path: "/v1/storage/url",
|
|
22
|
+
query: {
|
|
23
|
+
key,
|
|
24
|
+
expires_in: opts?.expiresIn,
|
|
25
|
+
},
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
list(prefix, opts) {
|
|
29
|
+
return this.transport.request({
|
|
30
|
+
service: "storage",
|
|
31
|
+
path: "/v1/storage/objects",
|
|
32
|
+
query: {
|
|
33
|
+
prefix,
|
|
34
|
+
limit: opts?.limit,
|
|
35
|
+
offset: opts?.offset,
|
|
36
|
+
},
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
async delete(key) {
|
|
40
|
+
await this.transport.request({
|
|
41
|
+
service: "storage",
|
|
42
|
+
path: "/v1/storage/object",
|
|
43
|
+
method: "DELETE",
|
|
44
|
+
body: { key },
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
getUsage() {
|
|
48
|
+
return this.transport.request({
|
|
49
|
+
service: "storage",
|
|
50
|
+
path: "/v1/storage/usage",
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/storage/server.ts"],"names":[],"mappings":"AAiBA,MAAM,OAAO,sBAAsB;IAChB,SAAS,CAAgB;IAE1C,YAAY,SAAwB;QAClC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,YAAY,CACV,IAAyB;QAEzB,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAA0D;YACrF,OAAO,EAAE,SAAS;YAClB,IAAI,EAAE,oBAAoB;YAC1B,MAAM,EAAE,MAAM;YACd,IAAI,EAAE;gBACJ,IAAI,EAAE,IAAI,CAAC,GAAG;gBACd,YAAY,EAAE,IAAI,CAAC,WAAW;gBAC9B,IAAI,EAAE,IAAI,CAAC,IAAI;aAChB;SACF,CAAC,CAAC;IACL,CAAC;IAED,YAAY,CACV,GAAW,EACX,IAA6B;QAE7B,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAmD;YAC9E,OAAO,EAAE,SAAS;YAClB,IAAI,EAAE,iBAAiB;YACvB,KAAK,EAAE;gBACL,GAAG;gBACH,UAAU,EAAE,IAAI,EAAE,SAAS;aAC5B;SACF,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CACF,MAAe,EACf,IAA0C;QAE1C,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAA+B;YAC1D,OAAO,EAAE,SAAS;YAClB,IAAI,EAAE,qBAAqB;YAC3B,KAAK,EAAE;gBACL,MAAM;gBACN,KAAK,EAAE,IAAI,EAAE,KAAK;gBAClB,MAAM,EAAE,IAAI,EAAE,MAAM;aACrB;SACF,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAW;QACtB,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAO;YACjC,OAAO,EAAE,SAAS;YAClB,IAAI,EAAE,oBAAoB;YAC1B,MAAM,EAAE,QAAQ;YAChB,IAAI,EAAE,EAAE,GAAG,EAAE;SACd,CAAC,CAAC;IACL,CAAC;IAED,QAAQ;QAKN,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAI1B;YACD,OAAO,EAAE,SAAS;YAClB,IAAI,EAAE,mBAAmB;SAC1B,CAAC,CAAC;IACL,CAAC;CACF"}
|
package/package.json
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@buildspacestudio/sdk",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"main": "./dist/index.js",
|
|
5
|
+
"types": "./dist/index.d.ts",
|
|
6
|
+
"sideEffects": false,
|
|
7
|
+
"exports": {
|
|
8
|
+
".": {
|
|
9
|
+
"types": "./dist/index.d.ts",
|
|
10
|
+
"default": "./dist/index.js"
|
|
11
|
+
},
|
|
12
|
+
"./client": {
|
|
13
|
+
"types": "./dist/client/index.d.ts",
|
|
14
|
+
"default": "./dist/client/index.js"
|
|
15
|
+
},
|
|
16
|
+
"./auth": {
|
|
17
|
+
"types": "./dist/auth/index.d.ts",
|
|
18
|
+
"default": "./dist/auth/index.js"
|
|
19
|
+
},
|
|
20
|
+
"./events": {
|
|
21
|
+
"types": "./dist/events/index.d.ts",
|
|
22
|
+
"default": "./dist/events/index.js"
|
|
23
|
+
},
|
|
24
|
+
"./storage": {
|
|
25
|
+
"types": "./dist/storage/index.d.ts",
|
|
26
|
+
"default": "./dist/storage/index.js"
|
|
27
|
+
},
|
|
28
|
+
"./notifications": {
|
|
29
|
+
"types": "./dist/notifications/index.d.ts",
|
|
30
|
+
"default": "./dist/notifications/index.js"
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
"files": [
|
|
34
|
+
"dist"
|
|
35
|
+
],
|
|
36
|
+
"license": "MIT",
|
|
37
|
+
"scripts": {
|
|
38
|
+
"build": "tsc",
|
|
39
|
+
"check-types": "tsc --noEmit",
|
|
40
|
+
"test": "bun run --bun vitest run",
|
|
41
|
+
"test:watch": "bun run --bun vitest"
|
|
42
|
+
},
|
|
43
|
+
"devDependencies": {
|
|
44
|
+
"typescript": "^5",
|
|
45
|
+
"vitest": "^4.0.18"
|
|
46
|
+
}
|
|
47
|
+
}
|