@realnation/builder-shared-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/events.d.ts +13 -0
- package/dist/events.d.ts.map +1 -0
- package/dist/events.js +40 -0
- package/dist/http.d.ts +7 -0
- package/dist/http.d.ts.map +1 -0
- package/dist/http.js +19 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +3 -0
- package/dist/types.d.ts +16 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +1 -0
- package/package.json +29 -0
package/dist/events.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { SdkEventName, EventPayload } from './types';
|
|
2
|
+
type Listener<TPayload extends EventPayload> = (payload: TPayload) => void;
|
|
3
|
+
export declare class SdkEventBus {
|
|
4
|
+
private listeners;
|
|
5
|
+
emit<TPayload extends EventPayload>(name: SdkEventName, payload: TPayload): void;
|
|
6
|
+
on<TPayload extends EventPayload>(name: SdkEventName, handler: Listener<TPayload>): () => void;
|
|
7
|
+
off<TPayload extends EventPayload>(name: SdkEventName, handler: Listener<TPayload>): void;
|
|
8
|
+
clear(): void;
|
|
9
|
+
}
|
|
10
|
+
export declare function createSdkEventBus(): SdkEventBus;
|
|
11
|
+
export declare function getGlobalEventBus(): SdkEventBus;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=events.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE1D,KAAK,QAAQ,CAAC,QAAQ,SAAS,YAAY,IAAI,CAAC,OAAO,EAAE,QAAQ,KAAK,IAAI,CAAC;AAI3E,qBAAa,WAAW;IACtB,OAAO,CAAC,SAAS,CAAwD;IAEzE,IAAI,CAAC,QAAQ,SAAS,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,GAAG,IAAI;IAMhF,EAAE,CAAC,QAAQ,SAAS,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,MAAM,IAAI;IAO9F,GAAG,CAAC,QAAQ,SAAS,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,IAAI;IASzF,KAAK,IAAI,IAAI;CAGd;AAED,wBAAgB,iBAAiB,IAAI,WAAW,CAE/C;AAED,wBAAgB,iBAAiB,IAAI,WAAW,CAU/C"}
|
package/dist/events.js
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
const GLOBAL_KEY = '__BUILDER_SDK_EVENT_BUS__';
|
|
2
|
+
export class SdkEventBus {
|
|
3
|
+
constructor() {
|
|
4
|
+
this.listeners = new Map();
|
|
5
|
+
}
|
|
6
|
+
emit(name, payload) {
|
|
7
|
+
const handlers = this.listeners.get(name);
|
|
8
|
+
if (!handlers)
|
|
9
|
+
return;
|
|
10
|
+
handlers.forEach((handler) => handler(payload));
|
|
11
|
+
}
|
|
12
|
+
on(name, handler) {
|
|
13
|
+
const handlers = this.listeners.get(name) ?? new Set();
|
|
14
|
+
handlers.add(handler);
|
|
15
|
+
this.listeners.set(name, handlers);
|
|
16
|
+
return () => this.off(name, handler);
|
|
17
|
+
}
|
|
18
|
+
off(name, handler) {
|
|
19
|
+
const handlers = this.listeners.get(name);
|
|
20
|
+
if (!handlers)
|
|
21
|
+
return;
|
|
22
|
+
handlers.delete(handler);
|
|
23
|
+
if (handlers.size === 0) {
|
|
24
|
+
this.listeners.delete(name);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
clear() {
|
|
28
|
+
this.listeners.clear();
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
export function createSdkEventBus() {
|
|
32
|
+
return new SdkEventBus();
|
|
33
|
+
}
|
|
34
|
+
export function getGlobalEventBus() {
|
|
35
|
+
const globalObject = globalThis;
|
|
36
|
+
if (!globalObject[GLOBAL_KEY]) {
|
|
37
|
+
globalObject[GLOBAL_KEY] = createSdkEventBus();
|
|
38
|
+
}
|
|
39
|
+
return globalObject[GLOBAL_KEY];
|
|
40
|
+
}
|
package/dist/http.d.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type AxiosInstance } from 'axios';
|
|
2
|
+
import type { RequestContext } from './types';
|
|
3
|
+
export interface HttpClientOptions extends RequestContext {
|
|
4
|
+
}
|
|
5
|
+
export declare function createHttpClient(options: HttpClientOptions): AxiosInstance;
|
|
6
|
+
export declare function attachAuthHeader(instance: AxiosInstance, tokenResolver: () => string | null): void;
|
|
7
|
+
//# sourceMappingURL=http.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAAA,OAAc,EAAE,KAAK,aAAa,EAA6D,MAAM,OAAO,CAAC;AAC7G,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C,MAAM,WAAW,iBAAkB,SAAQ,cAAc;CAAG;AAE5D,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,GAAG,aAAa,CAQ1E;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,IAAI,CASlG"}
|
package/dist/http.js
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import axios from 'axios';
|
|
2
|
+
export function createHttpClient(options) {
|
|
3
|
+
const instance = axios.create({
|
|
4
|
+
baseURL: options.baseURL,
|
|
5
|
+
timeout: options.timeout ?? 15000,
|
|
6
|
+
headers: options.headers
|
|
7
|
+
});
|
|
8
|
+
return instance;
|
|
9
|
+
}
|
|
10
|
+
export function attachAuthHeader(instance, tokenResolver) {
|
|
11
|
+
instance.interceptors.request.use((config) => {
|
|
12
|
+
const token = tokenResolver();
|
|
13
|
+
if (token) {
|
|
14
|
+
config.headers = config.headers ?? {};
|
|
15
|
+
config.headers.Authorization = `Bearer ${token}`;
|
|
16
|
+
}
|
|
17
|
+
return config;
|
|
18
|
+
});
|
|
19
|
+
}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC"}
|
package/dist/index.js
ADDED
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export interface UserSession {
|
|
2
|
+
token: string;
|
|
3
|
+
roles: string[];
|
|
4
|
+
}
|
|
5
|
+
export interface RequestContext {
|
|
6
|
+
baseURL: string;
|
|
7
|
+
timeout?: number;
|
|
8
|
+
headers?: Record<string, string>;
|
|
9
|
+
}
|
|
10
|
+
export type EventPayload = Record<string, unknown>;
|
|
11
|
+
export type SdkEventName = 'sdk:ready' | 'sdk:error' | 'module:navigate' | 'module:metrics' | 'module:error' | 'host:refresh-token';
|
|
12
|
+
export interface SdkEvent<TPayload extends EventPayload = EventPayload> {
|
|
13
|
+
name: SdkEventName;
|
|
14
|
+
payload: TPayload;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEnD,MAAM,MAAM,YAAY,GACpB,WAAW,GACX,WAAW,GACX,iBAAiB,GACjB,gBAAgB,GAChB,cAAc,GACd,oBAAoB,CAAC;AAEzB,MAAM,WAAW,QAAQ,CAAC,QAAQ,SAAS,YAAY,GAAG,YAAY;IACpE,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,EAAE,QAAQ,CAAC;CACnB"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/package.json
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@realnation/builder-shared-sdk",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"private": false,
|
|
6
|
+
"exports": {
|
|
7
|
+
"./package.json": "./package.json",
|
|
8
|
+
".": {
|
|
9
|
+
"types": "./dist/index.d.ts",
|
|
10
|
+
"import": "./dist/index.js"
|
|
11
|
+
}
|
|
12
|
+
},
|
|
13
|
+
"files": [
|
|
14
|
+
"dist"
|
|
15
|
+
],
|
|
16
|
+
"scripts": {
|
|
17
|
+
"build": "tsc -p tsconfig.json",
|
|
18
|
+
"clean": "rimraf dist",
|
|
19
|
+
"prepublishOnly": "npm run clean && npm run build",
|
|
20
|
+
"prepare": "npm run clean && npm run build"
|
|
21
|
+
},
|
|
22
|
+
"dependencies": {
|
|
23
|
+
"axios": "^1.7.7"
|
|
24
|
+
},
|
|
25
|
+
"devDependencies": {
|
|
26
|
+
"rimraf": "^5.0.5",
|
|
27
|
+
"typescript": "^5.4.5"
|
|
28
|
+
}
|
|
29
|
+
}
|