@nivo-lat/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.
@@ -0,0 +1,46 @@
1
+ import type { AuthUser, AuthError, Session } from './auth';
2
+ export type { AuthUser, AuthError, Session };
3
+ export interface CookieOptions {
4
+ maxAge?: number;
5
+ path?: string;
6
+ domain?: string;
7
+ secure?: boolean;
8
+ httpOnly?: boolean;
9
+ sameSite?: 'strict' | 'lax' | 'none';
10
+ }
11
+ export interface CookieMethods {
12
+ get(name: string): string | undefined;
13
+ set(name: string, value: string, options?: CookieOptions): void;
14
+ remove(name: string): void;
15
+ }
16
+ export interface ServerClientOptions {
17
+ cookies: CookieMethods;
18
+ }
19
+ export declare class NivoServerAuthClient {
20
+ private readonly baseUrl;
21
+ private readonly anonKey;
22
+ private readonly cookies;
23
+ constructor(baseUrl: string, anonKey: string, cookies: CookieMethods);
24
+ private _request;
25
+ getSession(): Promise<{
26
+ data: {
27
+ session: Session | null;
28
+ };
29
+ error: null;
30
+ }>;
31
+ getUser(): Promise<{
32
+ data: {
33
+ user: AuthUser | null;
34
+ };
35
+ error: AuthError | null;
36
+ }>;
37
+ signOut(): Promise<{
38
+ error: null;
39
+ }>;
40
+ }
41
+ export declare class NivoServerClient {
42
+ readonly auth: NivoServerAuthClient;
43
+ constructor(authUrl: string, anonKey: string, options: ServerClientOptions);
44
+ }
45
+ export declare function createServerClient(authUrl: string, anonKey: string, options: ServerClientOptions): NivoServerClient;
46
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAA;AAE1D,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,CAAA;AAE5C,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAA;CACrC;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;IACrC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,IAAI,CAAA;IAC/D,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CAC3B;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,aAAa,CAAA;CACvB;AAKD,qBAAa,oBAAoB;IAE7B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAFP,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,aAAa;YAG3B,QAAQ;IAqBhB,UAAU,IAAI,OAAO,CAAC;QAAE,IAAI,EAAE;YAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAAA;SAAE,CAAC;QAAC,KAAK,EAAE,IAAI,CAAA;KAAE,CAAC;IAiBzE,OAAO,IAAI,OAAO,CAAC;QAAE,IAAI,EAAE;YAAE,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAA;SAAE,CAAC;QAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CAAA;KAAE,CAAC;IAOhF,OAAO,IAAI,OAAO,CAAC;QAAE,KAAK,EAAE,IAAI,CAAA;KAAE,CAAC;CAY1C;AAED,qBAAa,gBAAgB;IAC3B,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAA;gBAEvB,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB;CAG3E;AAED,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,mBAAmB,GAC3B,gBAAgB,CAElB"}
package/dist/server.js ADDED
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NivoServerClient = exports.NivoServerAuthClient = void 0;
4
+ exports.createServerClient = createServerClient;
5
+ const ACCESS_COOKIE = 'nivo-access-token';
6
+ const REFRESH_COOKIE = 'nivo-refresh-token';
7
+ class NivoServerAuthClient {
8
+ constructor(baseUrl, anonKey, cookies) {
9
+ this.baseUrl = baseUrl;
10
+ this.anonKey = anonKey;
11
+ this.cookies = cookies;
12
+ }
13
+ async _request(path, options = {}, accessToken) {
14
+ try {
15
+ const headers = {
16
+ 'Content-Type': 'application/json',
17
+ 'x-nivo-anon-key': this.anonKey,
18
+ ...options.headers,
19
+ };
20
+ if (accessToken)
21
+ headers['Authorization'] = `Bearer ${accessToken}`;
22
+ const res = await fetch(`${this.baseUrl}${path}`, { ...options, headers });
23
+ const json = await res.json().catch(() => ({}));
24
+ if (!res.ok)
25
+ return { data: null, error: { message: json?.error ?? 'Request failed', status: res.status } };
26
+ return { data: json, error: null };
27
+ }
28
+ catch (err) {
29
+ return { data: null, error: { message: err?.message ?? 'Network error' } };
30
+ }
31
+ }
32
+ async getSession() {
33
+ const accessToken = this.cookies.get(ACCESS_COOKIE);
34
+ const refreshToken = this.cookies.get(REFRESH_COOKIE);
35
+ if (!accessToken)
36
+ return { data: { session: null }, error: null };
37
+ return {
38
+ data: {
39
+ session: {
40
+ access_token: accessToken,
41
+ refresh_token: refreshToken ?? '',
42
+ expires_in: 3600,
43
+ token_type: 'bearer',
44
+ },
45
+ },
46
+ error: null,
47
+ };
48
+ }
49
+ async getUser() {
50
+ const accessToken = this.cookies.get(ACCESS_COOKIE);
51
+ if (!accessToken)
52
+ return { data: { user: null }, error: null };
53
+ const { data, error } = await this._request('/v1/auth/user', {}, accessToken);
54
+ return { data: { user: data }, error };
55
+ }
56
+ async signOut() {
57
+ const refreshToken = this.cookies.get(REFRESH_COOKIE);
58
+ this.cookies.remove(ACCESS_COOKIE);
59
+ this.cookies.remove(REFRESH_COOKIE);
60
+ if (refreshToken) {
61
+ await this._request('/v1/auth/signout', {
62
+ method: 'POST',
63
+ body: JSON.stringify({ refresh_token: refreshToken }),
64
+ });
65
+ }
66
+ return { error: null };
67
+ }
68
+ }
69
+ exports.NivoServerAuthClient = NivoServerAuthClient;
70
+ class NivoServerClient {
71
+ constructor(authUrl, anonKey, options) {
72
+ this.auth = new NivoServerAuthClient(authUrl.replace(/\/$/, ''), anonKey, options.cookies);
73
+ }
74
+ }
75
+ exports.NivoServerClient = NivoServerClient;
76
+ function createServerClient(authUrl, anonKey, options) {
77
+ return new NivoServerClient(authUrl, anonKey, options);
78
+ }
79
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,38 @@
1
+ {
2
+ "name": "@nivo-lat/sdk",
3
+ "version": "0.1.0",
4
+ "description": "Official Nivo SDK",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "exports": {
8
+ ".": {
9
+ "import": "./dist/index.js",
10
+ "require": "./dist/index.js",
11
+ "default": "./dist/index.js",
12
+ "types": "./dist/index.d.ts"
13
+ },
14
+ "./server": {
15
+ "import": "./dist/server.js",
16
+ "require": "./dist/server.js",
17
+ "default": "./dist/server.js",
18
+ "types": "./dist/server.d.ts"
19
+ }
20
+ },
21
+ "files": [
22
+ "dist"
23
+ ],
24
+ "scripts": {
25
+ "build": "tsc",
26
+ "dev": "tsc --watch",
27
+ "prepack": "npm run build"
28
+ },
29
+ "keywords": ["nivo", "sdk", "auth", "database", "deploy"],
30
+ "license": "MIT",
31
+ "devDependencies": {
32
+ "@types/node": "^20.0.0",
33
+ "typescript": "^5.0.0"
34
+ },
35
+ "engines": {
36
+ "node": ">=18"
37
+ }
38
+ }