@nurama/sdk 0.0.0-stage → 1.4.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/LICENSE +202 -0
- package/NOTICE +5 -0
- package/README.md +1080 -2
- package/dist/BotClient.d.ts +66 -0
- package/dist/BotClient.d.ts.map +1 -0
- package/dist/BotClient.js +68 -0
- package/dist/BotClient.js.map +1 -0
- package/dist/NuramaClient.d.ts +448 -0
- package/dist/NuramaClient.d.ts.map +1 -0
- package/dist/NuramaClient.js +864 -0
- package/dist/NuramaClient.js.map +1 -0
- package/dist/browser/nurama-bot-sdk.js +11780 -0
- package/dist/browser/nurama-bot-sdk.min.js +1 -0
- package/dist/browser/nurama-sdk.js +11732 -0
- package/dist/browser/nurama-sdk.min.js +1 -0
- package/dist/routes/ai.d.ts +280 -0
- package/dist/routes/ai.d.ts.map +1 -0
- package/dist/routes/ai.js +173 -0
- package/dist/routes/ai.js.map +1 -0
- package/dist/routes/asset.d.ts +493 -0
- package/dist/routes/asset.d.ts.map +1 -0
- package/dist/routes/asset.js +848 -0
- package/dist/routes/asset.js.map +1 -0
- package/dist/routes/auth.d.ts +218 -0
- package/dist/routes/auth.d.ts.map +1 -0
- package/dist/routes/auth.js +454 -0
- package/dist/routes/auth.js.map +1 -0
- package/dist/routes/blogPosts.d.ts +17 -0
- package/dist/routes/blogPosts.d.ts.map +1 -0
- package/dist/routes/blogPosts.js +29 -0
- package/dist/routes/blogPosts.js.map +1 -0
- package/dist/routes/board.d.ts +187 -0
- package/dist/routes/board.d.ts.map +1 -0
- package/dist/routes/board.js +270 -0
- package/dist/routes/board.js.map +1 -0
- package/dist/routes/bot.d.ts +147 -0
- package/dist/routes/bot.d.ts.map +1 -0
- package/dist/routes/bot.js +157 -0
- package/dist/routes/bot.js.map +1 -0
- package/dist/routes/chat.d.ts +842 -0
- package/dist/routes/chat.d.ts.map +1 -0
- package/dist/routes/chat.js +863 -0
- package/dist/routes/chat.js.map +1 -0
- package/dist/routes/chatAi.d.ts +51 -0
- package/dist/routes/chatAi.d.ts.map +1 -0
- package/dist/routes/chatAi.js +109 -0
- package/dist/routes/chatAi.js.map +1 -0
- package/dist/routes/config.d.ts +11 -0
- package/dist/routes/config.d.ts.map +1 -0
- package/dist/routes/config.js +24 -0
- package/dist/routes/config.js.map +1 -0
- package/dist/routes/convo.d.ts +169 -0
- package/dist/routes/convo.d.ts.map +1 -0
- package/dist/routes/convo.js +284 -0
- package/dist/routes/convo.js.map +1 -0
- package/dist/routes/credits.d.ts +82 -0
- package/dist/routes/credits.d.ts.map +1 -0
- package/dist/routes/credits.js +49 -0
- package/dist/routes/credits.js.map +1 -0
- package/dist/routes/device.d.ts +74 -0
- package/dist/routes/device.d.ts.map +1 -0
- package/dist/routes/device.js +122 -0
- package/dist/routes/device.js.map +1 -0
- package/dist/routes/folder.d.ts +75 -0
- package/dist/routes/folder.d.ts.map +1 -0
- package/dist/routes/folder.js +99 -0
- package/dist/routes/folder.js.map +1 -0
- package/dist/routes/invite.d.ts +61 -0
- package/dist/routes/invite.d.ts.map +1 -0
- package/dist/routes/invite.js +86 -0
- package/dist/routes/invite.js.map +1 -0
- package/dist/routes/joinLink.d.ts +38 -0
- package/dist/routes/joinLink.d.ts.map +1 -0
- package/dist/routes/joinLink.js +81 -0
- package/dist/routes/joinLink.js.map +1 -0
- package/dist/routes/membership.d.ts +116 -0
- package/dist/routes/membership.d.ts.map +1 -0
- package/dist/routes/membership.js +183 -0
- package/dist/routes/membership.js.map +1 -0
- package/dist/routes/notification.d.ts +103 -0
- package/dist/routes/notification.d.ts.map +1 -0
- package/dist/routes/notification.js +89 -0
- package/dist/routes/notification.js.map +1 -0
- package/dist/routes/payment.d.ts +56 -0
- package/dist/routes/payment.d.ts.map +1 -0
- package/dist/routes/payment.js +78 -0
- package/dist/routes/payment.js.map +1 -0
- package/dist/routes/product.d.ts +43 -0
- package/dist/routes/product.d.ts.map +1 -0
- package/dist/routes/product.js +53 -0
- package/dist/routes/product.js.map +1 -0
- package/dist/routes/project.d.ts +821 -0
- package/dist/routes/project.d.ts.map +1 -0
- package/dist/routes/project.js +1153 -0
- package/dist/routes/project.js.map +1 -0
- package/dist/routes/public.d.ts +269 -0
- package/dist/routes/public.d.ts.map +1 -0
- package/dist/routes/public.js +412 -0
- package/dist/routes/public.js.map +1 -0
- package/dist/routes/scratch.d.ts +70 -0
- package/dist/routes/scratch.d.ts.map +1 -0
- package/dist/routes/scratch.js +67 -0
- package/dist/routes/scratch.js.map +1 -0
- package/dist/routes/settings.d.ts +102 -0
- package/dist/routes/settings.d.ts.map +1 -0
- package/dist/routes/settings.js +94 -0
- package/dist/routes/settings.js.map +1 -0
- package/dist/routes/shortlink.d.ts +79 -0
- package/dist/routes/shortlink.d.ts.map +1 -0
- package/dist/routes/shortlink.js +25 -0
- package/dist/routes/shortlink.js.map +1 -0
- package/dist/routes/socket.d.ts +108 -0
- package/dist/routes/socket.d.ts.map +1 -0
- package/dist/routes/socket.js +555 -0
- package/dist/routes/socket.js.map +1 -0
- package/dist/routes/storage.d.ts +44 -0
- package/dist/routes/storage.d.ts.map +1 -0
- package/dist/routes/storage.js +49 -0
- package/dist/routes/storage.js.map +1 -0
- package/dist/routes/subscription.d.ts +184 -0
- package/dist/routes/subscription.d.ts.map +1 -0
- package/dist/routes/subscription.js +219 -0
- package/dist/routes/subscription.js.map +1 -0
- package/dist/routes/supportChat.d.ts +40 -0
- package/dist/routes/supportChat.d.ts.map +1 -0
- package/dist/routes/supportChat.js +53 -0
- package/dist/routes/supportChat.js.map +1 -0
- package/dist/routes/supportTicket.d.ts +89 -0
- package/dist/routes/supportTicket.d.ts.map +1 -0
- package/dist/routes/supportTicket.js +54 -0
- package/dist/routes/supportTicket.js.map +1 -0
- package/dist/routes/tag.d.ts +72 -0
- package/dist/routes/tag.d.ts.map +1 -0
- package/dist/routes/tag.js +81 -0
- package/dist/routes/tag.js.map +1 -0
- package/dist/routes/task.d.ts +252 -0
- package/dist/routes/task.d.ts.map +1 -0
- package/dist/routes/task.js +284 -0
- package/dist/routes/task.js.map +1 -0
- package/dist/routes/taskRelation.d.ts +80 -0
- package/dist/routes/taskRelation.d.ts.map +1 -0
- package/dist/routes/taskRelation.js +71 -0
- package/dist/routes/taskRelation.js.map +1 -0
- package/dist/routes/token.d.ts +75 -0
- package/dist/routes/token.d.ts.map +1 -0
- package/dist/routes/token.js +51 -0
- package/dist/routes/token.js.map +1 -0
- package/dist/routes/user.d.ts +112 -0
- package/dist/routes/user.d.ts.map +1 -0
- package/dist/routes/user.js +151 -0
- package/dist/routes/user.js.map +1 -0
- package/dist/routes/version.d.ts +42 -0
- package/dist/routes/version.d.ts.map +1 -0
- package/dist/routes/version.js +38 -0
- package/dist/routes/version.js.map +1 -0
- package/dist/routes/webhook.d.ts +170 -0
- package/dist/routes/webhook.d.ts.map +1 -0
- package/dist/routes/webhook.js +173 -0
- package/dist/routes/webhook.js.map +1 -0
- package/dist/routes/workspace.d.ts +120 -0
- package/dist/routes/workspace.d.ts.map +1 -0
- package/dist/routes/workspace.js +199 -0
- package/dist/routes/workspace.js.map +1 -0
- package/dist/utils/uploadSessionManager.d.ts +133 -0
- package/dist/utils/uploadSessionManager.d.ts.map +1 -0
- package/dist/utils/uploadSessionManager.js +321 -0
- package/dist/utils/uploadSessionManager.js.map +1 -0
- package/dist/utils/urlParams.d.ts +35 -0
- package/dist/utils/urlParams.d.ts.map +1 -0
- package/dist/utils/urlParams.js +146 -0
- package/dist/utils/urlParams.js.map +1 -0
- package/dist/version.d.ts +15 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +12 -0
- package/dist/version.js.map +1 -0
- package/package.json +87 -3
- package/src/BotClient.ts +113 -0
- package/src/NuramaClient.ts +1193 -0
- package/src/bot-browser-entry.js +15 -0
- package/src/browser-entry.js +20 -0
- package/src/routes/ai.ts +378 -0
- package/src/routes/asset.ts +1104 -0
- package/src/routes/auth.ts +587 -0
- package/src/routes/blogPosts.ts +29 -0
- package/src/routes/board.ts +403 -0
- package/src/routes/bot.ts +257 -0
- package/src/routes/chat.ts +1292 -0
- package/src/routes/chatAi.ts +125 -0
- package/src/routes/config.ts +31 -0
- package/src/routes/convo.ts +321 -0
- package/src/routes/credits.ts +112 -0
- package/src/routes/device.ts +133 -0
- package/src/routes/folder.ts +154 -0
- package/src/routes/invite.ts +133 -0
- package/src/routes/joinLink.ts +100 -0
- package/src/routes/membership.ts +237 -0
- package/src/routes/notification.ts +166 -0
- package/src/routes/payment.ts +104 -0
- package/src/routes/product.ts +67 -0
- package/src/routes/project.ts +1528 -0
- package/src/routes/public.ts +496 -0
- package/src/routes/scratch.ts +94 -0
- package/src/routes/settings.ts +152 -0
- package/src/routes/shortlink.ts +90 -0
- package/src/routes/socket.ts +739 -0
- package/src/routes/storage.ts +83 -0
- package/src/routes/subscription.ts +307 -0
- package/src/routes/supportChat.ts +62 -0
- package/src/routes/supportTicket.ts +114 -0
- package/src/routes/tag.ts +131 -0
- package/src/routes/task.ts +431 -0
- package/src/routes/taskRelation.ts +125 -0
- package/src/routes/token.ts +113 -0
- package/src/routes/user.ts +214 -0
- package/src/routes/version.ts +62 -0
- package/src/routes/webhook.ts +295 -0
- package/src/routes/workspace.ts +223 -0
- package/src/utils/uploadSessionManager.ts +407 -0
- package/src/utils/urlParams.ts +181 -0
- package/src/version.ts +22 -0
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import NuramaClient from './NuramaClient.js';
|
|
2
|
+
interface BotClientOptions {
|
|
3
|
+
/** Override the default bot API URL (https://bot.nurama.com). */
|
|
4
|
+
baseURL?: string;
|
|
5
|
+
/** Override the default bot WebSocket URL (https://bot-ws.nurama.com). */
|
|
6
|
+
websocketURL?: string;
|
|
7
|
+
/** Custom fetch implementation. Defaults to global fetch. */
|
|
8
|
+
fetch?: (input: RequestInfo | URL, init?: RequestInit) => Promise<Response>;
|
|
9
|
+
/** Enable debug logging. Default: false */
|
|
10
|
+
debug?: boolean;
|
|
11
|
+
/** Enable response caching. Default: true */
|
|
12
|
+
enableCache?: boolean;
|
|
13
|
+
/** Cache duration in seconds. Default: 5 */
|
|
14
|
+
cacheDurationSeconds?: number;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Client for interacting with the Nurama API as a bot user.
|
|
18
|
+
*
|
|
19
|
+
* Authenticates with a long-lived API key (`nrm_bot_...`) instead of a JWT.
|
|
20
|
+
* Requests must arrive at the bot subdomain (`bot.nurama.com` by default) so
|
|
21
|
+
* the server can apply bot-specific firewall and rate-limit rules.
|
|
22
|
+
*
|
|
23
|
+
* Exposes only the namespaces a bot is permitted to use — auth, user profile,
|
|
24
|
+
* payment, subscription, device, and bot-administration namespaces are omitted.
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* ```ts
|
|
28
|
+
* import BotClient from '@nurama/sdk/bot';
|
|
29
|
+
*
|
|
30
|
+
* const bot = new BotClient(process.env.NURAMA_BOT_API_KEY!);
|
|
31
|
+
* const workspaces = await bot.workspace.listWorkspaces();
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
declare class BotClient {
|
|
35
|
+
private readonly _client;
|
|
36
|
+
readonly workspace: NuramaClient['workspace'];
|
|
37
|
+
readonly project: NuramaClient['project'];
|
|
38
|
+
readonly asset: NuramaClient['asset'];
|
|
39
|
+
readonly chat: NuramaClient['chat'];
|
|
40
|
+
readonly aiChat: NuramaClient['aiChat'];
|
|
41
|
+
readonly folder: NuramaClient['folder'];
|
|
42
|
+
readonly invite: NuramaClient['invite'];
|
|
43
|
+
readonly membership: NuramaClient['membership'];
|
|
44
|
+
readonly notification: NuramaClient['notification'];
|
|
45
|
+
readonly storage: NuramaClient['storage'];
|
|
46
|
+
readonly task: NuramaClient['task'];
|
|
47
|
+
readonly taskRelation: NuramaClient['taskRelation'];
|
|
48
|
+
readonly tag: NuramaClient['tag'];
|
|
49
|
+
readonly settings: NuramaClient['settings'];
|
|
50
|
+
readonly shortlink: NuramaClient['shortlink'];
|
|
51
|
+
readonly convo: NuramaClient['convo'];
|
|
52
|
+
readonly board: NuramaClient['board'];
|
|
53
|
+
readonly version: NuramaClient['version'];
|
|
54
|
+
readonly config: NuramaClient['config'];
|
|
55
|
+
readonly product: NuramaClient['product'];
|
|
56
|
+
readonly public: NuramaClient['public'];
|
|
57
|
+
readonly socket: NuramaClient['socket'];
|
|
58
|
+
/**
|
|
59
|
+
* @param apiKey - Bot API key in the format `nrm_bot_{prefix}_{secret}`.
|
|
60
|
+
* @param options - Configuration overrides.
|
|
61
|
+
*/
|
|
62
|
+
constructor(apiKey: string, options?: BotClientOptions);
|
|
63
|
+
}
|
|
64
|
+
export default BotClient;
|
|
65
|
+
export type { BotClientOptions };
|
|
66
|
+
//# sourceMappingURL=BotClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BotClient.d.ts","sourceRoot":"","sources":["../src/BotClient.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,mBAAmB,CAAC;AAE7C,UAAU,gBAAgB;IACxB,iEAAiE;IACjE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0EAA0E;IAC1E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,6DAA6D;IAC7D,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,GAAG,GAAG,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC5E,2CAA2C;IAC3C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,6CAA6C;IAC7C,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,4CAA4C;IAC5C,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAMD;;;;;;;;;;;;;;;;;GAiBG;AACH,cAAM,SAAS;IACb,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IAEvC,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAC,WAAW,CAAC,CAAC;IAC9C,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;IAC1C,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;IACtC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;IACxC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;IACxC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;IACxC,QAAQ,CAAC,UAAU,EAAE,YAAY,CAAC,YAAY,CAAC,CAAC;IAChD,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC,cAAc,CAAC,CAAC;IACpD,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;IAC1C,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IACpC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC,cAAc,CAAC,CAAC;IACpD,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC;IAC5C,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAC,WAAW,CAAC,CAAC;IAC9C,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;IACtC,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;IACtC,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;IAC1C,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;IACxC,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;IAC1C,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;IACxC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;IAExC;;;OAGG;gBACS,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,gBAAqB;CAwC3D;AAED,eAAe,SAAS,CAAC;AACzB,YAAY,EAAE,gBAAgB,EAAE,CAAC"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import NuramaClient from './NuramaClient.js';
|
|
2
|
+
const DEFAULT_BOT_BASE_URL = 'https://bot.nurama.com';
|
|
3
|
+
const DEFAULT_BOT_WS_URL = 'https://bot-ws.nurama.com';
|
|
4
|
+
const KEY_PREFIX = 'nrm_bot_';
|
|
5
|
+
/**
|
|
6
|
+
* Client for interacting with the Nurama API as a bot user.
|
|
7
|
+
*
|
|
8
|
+
* Authenticates with a long-lived API key (`nrm_bot_...`) instead of a JWT.
|
|
9
|
+
* Requests must arrive at the bot subdomain (`bot.nurama.com` by default) so
|
|
10
|
+
* the server can apply bot-specific firewall and rate-limit rules.
|
|
11
|
+
*
|
|
12
|
+
* Exposes only the namespaces a bot is permitted to use — auth, user profile,
|
|
13
|
+
* payment, subscription, device, and bot-administration namespaces are omitted.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```ts
|
|
17
|
+
* import BotClient from '@nurama/sdk/bot';
|
|
18
|
+
*
|
|
19
|
+
* const bot = new BotClient(process.env.NURAMA_BOT_API_KEY!);
|
|
20
|
+
* const workspaces = await bot.workspace.listWorkspaces();
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
class BotClient {
|
|
24
|
+
/**
|
|
25
|
+
* @param apiKey - Bot API key in the format `nrm_bot_{prefix}_{secret}`.
|
|
26
|
+
* @param options - Configuration overrides.
|
|
27
|
+
*/
|
|
28
|
+
constructor(apiKey, options = {}) {
|
|
29
|
+
if (!apiKey) {
|
|
30
|
+
throw new Error('apiKey is required.');
|
|
31
|
+
}
|
|
32
|
+
if (!apiKey.startsWith(KEY_PREFIX)) {
|
|
33
|
+
throw new Error(`Invalid bot API key. Expected format: ${KEY_PREFIX}{prefix}_{secret}.`);
|
|
34
|
+
}
|
|
35
|
+
this._client = new NuramaClient(options.baseURL || DEFAULT_BOT_BASE_URL, {
|
|
36
|
+
apiKey,
|
|
37
|
+
fetch: options.fetch,
|
|
38
|
+
debug: options.debug,
|
|
39
|
+
enableCache: options.enableCache,
|
|
40
|
+
cacheDurationSeconds: options.cacheDurationSeconds,
|
|
41
|
+
websocketURL: options.websocketURL || DEFAULT_BOT_WS_URL,
|
|
42
|
+
});
|
|
43
|
+
this.workspace = this._client.workspace;
|
|
44
|
+
this.project = this._client.project;
|
|
45
|
+
this.asset = this._client.asset;
|
|
46
|
+
this.chat = this._client.chat;
|
|
47
|
+
this.aiChat = this._client.aiChat;
|
|
48
|
+
this.folder = this._client.folder;
|
|
49
|
+
this.invite = this._client.invite;
|
|
50
|
+
this.membership = this._client.membership;
|
|
51
|
+
this.notification = this._client.notification;
|
|
52
|
+
this.storage = this._client.storage;
|
|
53
|
+
this.task = this._client.task;
|
|
54
|
+
this.taskRelation = this._client.taskRelation;
|
|
55
|
+
this.tag = this._client.tag;
|
|
56
|
+
this.settings = this._client.settings;
|
|
57
|
+
this.shortlink = this._client.shortlink;
|
|
58
|
+
this.convo = this._client.convo;
|
|
59
|
+
this.board = this._client.board;
|
|
60
|
+
this.version = this._client.version;
|
|
61
|
+
this.config = this._client.config;
|
|
62
|
+
this.product = this._client.product;
|
|
63
|
+
this.public = this._client.public;
|
|
64
|
+
this.socket = this._client.socket;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
export default BotClient;
|
|
68
|
+
//# sourceMappingURL=BotClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BotClient.js","sourceRoot":"","sources":["../src/BotClient.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,mBAAmB,CAAC;AAiB7C,MAAM,oBAAoB,GAAG,wBAAwB,CAAC;AACtD,MAAM,kBAAkB,GAAG,2BAA2B,CAAC;AACvD,MAAM,UAAU,GAAG,UAAU,CAAC;AAE9B;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,SAAS;IA0Bb;;;OAGG;IACH,YAAY,MAAc,EAAE,UAA4B,EAAE;QACxD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;QACzC,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,yCAAyC,UAAU,oBAAoB,CAAC,CAAC;QAC3F,CAAC;QAED,IAAI,CAAC,OAAO,GAAG,IAAI,YAAY,CAAC,OAAO,CAAC,OAAO,IAAI,oBAAoB,EAAE;YACvE,MAAM;YACN,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,oBAAoB,EAAE,OAAO,CAAC,oBAAoB;YAClD,YAAY,EAAE,OAAO,CAAC,YAAY,IAAI,kBAAkB;SACzD,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACxC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;QACpC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;QAChC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;QAC9B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;QAClC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;QAClC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;QAClC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;QAC1C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;QAC9C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;QACpC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;QAC9B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;QAC9C,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;QAC5B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;QACtC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACxC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;QAChC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;QAChC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;QACpC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;QAClC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;QACpC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;QAClC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IACpC,CAAC;CACF;AAED,eAAe,SAAS,CAAC"}
|
|
@@ -0,0 +1,448 @@
|
|
|
1
|
+
import createAuthMethods from './routes/auth.js';
|
|
2
|
+
import createSubscriptionMethods from './routes/subscription.js';
|
|
3
|
+
import createUserMethods from './routes/user.js';
|
|
4
|
+
import createWorkspaceMethods from './routes/workspace.js';
|
|
5
|
+
import createProjectMethods from './routes/project.js';
|
|
6
|
+
import createAssetMethods from './routes/asset.js';
|
|
7
|
+
import createChatMethods from './routes/chat.js';
|
|
8
|
+
import createFolderMethods from './routes/folder.js';
|
|
9
|
+
import createInviteMethods from './routes/invite.js';
|
|
10
|
+
import createJoinLinkMethods from './routes/joinLink.js';
|
|
11
|
+
import createMembershipMethods from './routes/membership.js';
|
|
12
|
+
import createNotificationMethods from './routes/notification.js';
|
|
13
|
+
import createPaymentMethods from './routes/payment.js';
|
|
14
|
+
import createProductMethods from './routes/product.js';
|
|
15
|
+
import createSocketMethods from './routes/socket.js';
|
|
16
|
+
import createStorageMethods from './routes/storage.js';
|
|
17
|
+
import createTaskMethods from './routes/task.js';
|
|
18
|
+
import createVersionMethods from './routes/version.js';
|
|
19
|
+
import createConfigMethods from './routes/config.js';
|
|
20
|
+
import createTagMethods from './routes/tag.js';
|
|
21
|
+
import createPublicMethods from './routes/public.js';
|
|
22
|
+
import createSettingsMethods from './routes/settings.js';
|
|
23
|
+
import createDeviceMethods from './routes/device.js';
|
|
24
|
+
import createShortLinkMethods from './routes/shortlink.js';
|
|
25
|
+
import createConvoMethods from './routes/convo.js';
|
|
26
|
+
import createBoardMethods from './routes/board.js';
|
|
27
|
+
import createTaskRelationMethods from './routes/taskRelation.js';
|
|
28
|
+
import createBotMethods from './routes/bot.js';
|
|
29
|
+
import createAiMethods from './routes/ai.js';
|
|
30
|
+
import createAiChatMethods from './routes/chatAi.js';
|
|
31
|
+
import createSupportChatMethods from './routes/supportChat.js';
|
|
32
|
+
import createBlogPostsMethods from './routes/blogPosts.js';
|
|
33
|
+
import createCreditsMethods from './routes/credits.js';
|
|
34
|
+
import createScratchMethods from './routes/scratch.js';
|
|
35
|
+
import createTokenMethods from './routes/token.js';
|
|
36
|
+
import createWebhookMethods from './routes/webhook.js';
|
|
37
|
+
import createSupportTicketMethods from './routes/supportTicket.js';
|
|
38
|
+
import { type SDKVersionInfo } from './version.js';
|
|
39
|
+
export interface NuramaClientOptions {
|
|
40
|
+
/** Custom fetch implementation. If not provided, will use global fetch */
|
|
41
|
+
fetch?: (input: RequestInfo | URL, init?: RequestInit) => Promise<Response>;
|
|
42
|
+
/** Key used to store the access token in storage. Default: 'nurama_token' */
|
|
43
|
+
tokenStorageKey?: string;
|
|
44
|
+
/** Key used to store the refresh token in storage. Default: 'nurama_refresh_token' */
|
|
45
|
+
refreshTokenStorageKey?: string;
|
|
46
|
+
/** Whether to run in browser mode (uses localStorage for token storage). Default: false */
|
|
47
|
+
browserMode?: boolean;
|
|
48
|
+
/** Number of seconds before token expiry to trigger refresh. Default: 300 (5 minutes) */
|
|
49
|
+
tokenExpiryBufferSeconds?: number;
|
|
50
|
+
/** Delay in ms between token refresh retries. Default: 1000 */
|
|
51
|
+
tokenRefreshRetryDelayMs?: number;
|
|
52
|
+
/** Maximum time in ms to wait for token refresh. Default: 10000 */
|
|
53
|
+
tokenRefreshMaxWaitMs?: number;
|
|
54
|
+
/** Timeout in ms for the refresh lock to prevent multiple simultaneous refreshes. Default: 5000 */
|
|
55
|
+
refreshLockTimeoutMs?: number;
|
|
56
|
+
/** Enable debug logging. Default: false */
|
|
57
|
+
debug?: boolean;
|
|
58
|
+
/** WebSocket server URL. If not provided, will use the baseURL */
|
|
59
|
+
websocketURL?: string;
|
|
60
|
+
/** Enable response caching. Default: true */
|
|
61
|
+
enableCache?: boolean;
|
|
62
|
+
/** Cache duration in seconds. Default: 5 */
|
|
63
|
+
cacheDurationSeconds?: number;
|
|
64
|
+
/** After a successful write (POST/PUT/PATCH/DELETE) to a resource, evict
|
|
65
|
+
* cached GET responses for that resource so the next read returns fresh
|
|
66
|
+
* data (read-after-write consistency). Default: true. */
|
|
67
|
+
invalidateCacheOnMutation?: boolean;
|
|
68
|
+
/** Callback invoked when authentication fails and re-login is required
|
|
69
|
+
* (e.g., refresh token expired/missing). `reason.type` carries the
|
|
70
|
+
* backend error type when available — notably `emailVerificationRequired`
|
|
71
|
+
* when the refresh was rejected because the user's email-verification
|
|
72
|
+
* grace period has expired, so callers can prompt verification instead of
|
|
73
|
+
* a plain logout. */
|
|
74
|
+
onUnauthorized?: (reason?: {
|
|
75
|
+
type?: string;
|
|
76
|
+
}) => void;
|
|
77
|
+
/** Invoked when the API returns a `{ error: 'maintenance' }` body on a 418 or
|
|
78
|
+
* 503 — i.e. the site is in a maintenance window (the edge rule returns this
|
|
79
|
+
* to non-allowlisted clients; a Cloudflare WAF block can only be a 4xx, so
|
|
80
|
+
* 418 — a guaranteed-unused sentinel — is used there, while a Worker/origin
|
|
81
|
+
* can return 503). Lets an already-loaded (cached) SPA surface a maintenance
|
|
82
|
+
* message instead of failing silently. */
|
|
83
|
+
onMaintenance?: () => void;
|
|
84
|
+
/**
|
|
85
|
+
* Long-lived API key to use for every request (e.g., a bot API key starting with `nrm_bot_`).
|
|
86
|
+
* When set, the client skips JWT refresh logic and uses the key as the bearer token.
|
|
87
|
+
*/
|
|
88
|
+
apiKey?: string;
|
|
89
|
+
}
|
|
90
|
+
interface RequestParams {
|
|
91
|
+
[key: string]: any;
|
|
92
|
+
}
|
|
93
|
+
interface RequestBody {
|
|
94
|
+
[key: string]: any;
|
|
95
|
+
}
|
|
96
|
+
interface InternalRequestOptions {
|
|
97
|
+
endpoint: string;
|
|
98
|
+
method?: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH' | 'HEAD';
|
|
99
|
+
params?: RequestParams;
|
|
100
|
+
body?: RequestBody | null;
|
|
101
|
+
/**
|
|
102
|
+
* Authentication mode for the request:
|
|
103
|
+
* - true (default): JWT required — refresh a stale token and throw if unavailable.
|
|
104
|
+
* - false: no auth — never attach a token.
|
|
105
|
+
* - 'optional': attach a valid token if the client has one (best-effort
|
|
106
|
+
* refresh), otherwise proceed anonymously without throwing. Used by public
|
|
107
|
+
* routes that accept both authenticated and anonymous callers.
|
|
108
|
+
*/
|
|
109
|
+
sendJWT?: boolean | 'optional';
|
|
110
|
+
customHeaders?: Record<string, string>;
|
|
111
|
+
_isInternalRefresh?: boolean;
|
|
112
|
+
bypassCache?: boolean;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Error thrown by `_request` when the API responds with a non-2xx status.
|
|
116
|
+
* `status` is the HTTP status and `data` the parsed error body
|
|
117
|
+
* (`{ type, code, message, errorData? }`). Use `isApiError` to narrow.
|
|
118
|
+
*/
|
|
119
|
+
export interface ApiError extends Error {
|
|
120
|
+
status?: number;
|
|
121
|
+
data?: any;
|
|
122
|
+
}
|
|
123
|
+
/** Narrow an unknown thrown value to an API error carrying an HTTP status. */
|
|
124
|
+
export declare const isApiError: (error: unknown) => error is ApiError;
|
|
125
|
+
export interface AuthMethods extends ReturnType<typeof createAuthMethods> {
|
|
126
|
+
}
|
|
127
|
+
export interface SubscriptionMethods extends ReturnType<typeof createSubscriptionMethods> {
|
|
128
|
+
}
|
|
129
|
+
export interface UserMethods extends ReturnType<typeof createUserMethods> {
|
|
130
|
+
}
|
|
131
|
+
export interface WorkspaceMethods extends ReturnType<typeof createWorkspaceMethods> {
|
|
132
|
+
}
|
|
133
|
+
export interface ProjectMethods extends ReturnType<typeof createProjectMethods> {
|
|
134
|
+
}
|
|
135
|
+
export interface AssetMethods extends ReturnType<typeof createAssetMethods> {
|
|
136
|
+
}
|
|
137
|
+
type ChatMethods = ReturnType<typeof createChatMethods>;
|
|
138
|
+
type FolderMethods = ReturnType<typeof createFolderMethods>;
|
|
139
|
+
type InviteMethods = ReturnType<typeof createInviteMethods>;
|
|
140
|
+
type JoinLinkMethods = ReturnType<typeof createJoinLinkMethods>;
|
|
141
|
+
type MembershipMethods = ReturnType<typeof createMembershipMethods>;
|
|
142
|
+
type NotificationMethods = ReturnType<typeof createNotificationMethods>;
|
|
143
|
+
type PaymentMethods = ReturnType<typeof createPaymentMethods>;
|
|
144
|
+
type ProductMethods = ReturnType<typeof createProductMethods>;
|
|
145
|
+
type SocketMethods = ReturnType<typeof createSocketMethods>;
|
|
146
|
+
type StorageMethods = ReturnType<typeof createStorageMethods>;
|
|
147
|
+
type TaskMethods = ReturnType<typeof createTaskMethods>;
|
|
148
|
+
type VersionMethods = ReturnType<typeof createVersionMethods>;
|
|
149
|
+
type ConfigMethods = ReturnType<typeof createConfigMethods>;
|
|
150
|
+
type TagMethods = ReturnType<typeof createTagMethods>;
|
|
151
|
+
type PublicMethods = ReturnType<typeof createPublicMethods>;
|
|
152
|
+
type SettingsMethods = ReturnType<typeof createSettingsMethods>;
|
|
153
|
+
type DeviceMethods = ReturnType<typeof createDeviceMethods>;
|
|
154
|
+
type ShortLinkMethods = ReturnType<typeof createShortLinkMethods>;
|
|
155
|
+
type ConvoMethods = ReturnType<typeof createConvoMethods>;
|
|
156
|
+
type BoardMethods = ReturnType<typeof createBoardMethods>;
|
|
157
|
+
type TaskRelationMethods = ReturnType<typeof createTaskRelationMethods>;
|
|
158
|
+
type BotMethods = ReturnType<typeof createBotMethods>;
|
|
159
|
+
type AiMethods = ReturnType<typeof createAiMethods>;
|
|
160
|
+
type AiChatMethods = ReturnType<typeof createAiChatMethods>;
|
|
161
|
+
type SupportChatMethods = ReturnType<typeof createSupportChatMethods>;
|
|
162
|
+
type BlogPostsMethods = ReturnType<typeof createBlogPostsMethods>;
|
|
163
|
+
type CreditsMethods = ReturnType<typeof createCreditsMethods>;
|
|
164
|
+
type ScratchMethods = ReturnType<typeof createScratchMethods>;
|
|
165
|
+
type TokenMethods = ReturnType<typeof createTokenMethods>;
|
|
166
|
+
type WebhookMethods = ReturnType<typeof createWebhookMethods>;
|
|
167
|
+
type SupportTicketMethods = ReturnType<typeof createSupportTicketMethods>;
|
|
168
|
+
/**
|
|
169
|
+
* Client interface for interacting with the Nurama REST API.
|
|
170
|
+
*/
|
|
171
|
+
declare class NuramaClient {
|
|
172
|
+
readonly baseURL: string;
|
|
173
|
+
readonly fetch: (input: RequestInfo | URL, init?: RequestInit) => Promise<Response>;
|
|
174
|
+
readonly tokenStorageKey: string;
|
|
175
|
+
readonly refreshTokenStorageKey: string;
|
|
176
|
+
readonly browserMode: boolean;
|
|
177
|
+
readonly tokenExpiryBufferSeconds: number;
|
|
178
|
+
readonly refreshLockTimeoutMs: number;
|
|
179
|
+
readonly tokenRefreshRetryDelayMs: number;
|
|
180
|
+
readonly tokenRefreshMaxWaitMs: number;
|
|
181
|
+
readonly debug: boolean;
|
|
182
|
+
readonly websocketURL?: string;
|
|
183
|
+
readonly enableCache: boolean;
|
|
184
|
+
readonly cacheDurationSeconds: number;
|
|
185
|
+
readonly invalidateCacheOnMutation: boolean;
|
|
186
|
+
private readonly _onUnauthorized?;
|
|
187
|
+
private readonly _onMaintenance?;
|
|
188
|
+
private _accessToken;
|
|
189
|
+
private _refreshTokenValue;
|
|
190
|
+
private _accessTokenExpiry;
|
|
191
|
+
private _refreshTokenExpiry;
|
|
192
|
+
private _verifyMfaToken;
|
|
193
|
+
private _isRefreshing;
|
|
194
|
+
private _lastRefreshAttempt;
|
|
195
|
+
private _cache;
|
|
196
|
+
private _cacheGeneration;
|
|
197
|
+
private readonly _apiKey;
|
|
198
|
+
readonly auth: AuthMethods;
|
|
199
|
+
readonly subscription: SubscriptionMethods;
|
|
200
|
+
readonly user: UserMethods;
|
|
201
|
+
readonly workspace: WorkspaceMethods;
|
|
202
|
+
readonly project: ProjectMethods;
|
|
203
|
+
readonly asset: AssetMethods;
|
|
204
|
+
chat: ChatMethods;
|
|
205
|
+
folder: FolderMethods;
|
|
206
|
+
invite: InviteMethods;
|
|
207
|
+
joinLink: JoinLinkMethods;
|
|
208
|
+
membership: MembershipMethods;
|
|
209
|
+
notification: NotificationMethods;
|
|
210
|
+
payment: PaymentMethods;
|
|
211
|
+
product: ProductMethods;
|
|
212
|
+
socket: SocketMethods;
|
|
213
|
+
storage: StorageMethods;
|
|
214
|
+
task: TaskMethods;
|
|
215
|
+
version: VersionMethods;
|
|
216
|
+
readonly config: ConfigMethods;
|
|
217
|
+
tag: TagMethods;
|
|
218
|
+
public: PublicMethods;
|
|
219
|
+
settings: SettingsMethods;
|
|
220
|
+
device: DeviceMethods;
|
|
221
|
+
shortlink: ShortLinkMethods;
|
|
222
|
+
convo: ConvoMethods;
|
|
223
|
+
board: BoardMethods;
|
|
224
|
+
taskRelation: TaskRelationMethods;
|
|
225
|
+
bot: BotMethods;
|
|
226
|
+
ai: AiMethods;
|
|
227
|
+
aiChat: AiChatMethods;
|
|
228
|
+
supportChat: SupportChatMethods;
|
|
229
|
+
blogPosts: BlogPostsMethods;
|
|
230
|
+
credits: CreditsMethods;
|
|
231
|
+
scratch: ScratchMethods;
|
|
232
|
+
token: TokenMethods;
|
|
233
|
+
webhook: WebhookMethods;
|
|
234
|
+
supportTicket: SupportTicketMethods;
|
|
235
|
+
/**
|
|
236
|
+
* Creates an instance of NuramaClient.
|
|
237
|
+
* @param baseURL - The base URL for the Nurama API.
|
|
238
|
+
* @param options - Configuration options.
|
|
239
|
+
*/
|
|
240
|
+
constructor(baseURL: string, options?: NuramaClientOptions);
|
|
241
|
+
/**
|
|
242
|
+
* Internal helper for conditional logging. Underscore-prefixed to flag
|
|
243
|
+
* "internal contract" — accessible from sibling route modules but not
|
|
244
|
+
* part of the documented public API.
|
|
245
|
+
*
|
|
246
|
+
* @param args - Arguments to pass to console.log.
|
|
247
|
+
*/
|
|
248
|
+
_log(...args: any[]): void;
|
|
249
|
+
/**
|
|
250
|
+
* Checks if a POST endpoint is safe to cache (read-only query operations).
|
|
251
|
+
* @param endpoint - The API endpoint to check.
|
|
252
|
+
* @returns True if the POST endpoint is cacheable, false otherwise.
|
|
253
|
+
* @private
|
|
254
|
+
*/
|
|
255
|
+
private _isCacheablePostEndpoint;
|
|
256
|
+
/**
|
|
257
|
+
* Generates a cache key for a request.
|
|
258
|
+
* @param options - Request configuration.
|
|
259
|
+
* @returns A unique cache key string.
|
|
260
|
+
* @private
|
|
261
|
+
*/
|
|
262
|
+
private _generateCacheKey;
|
|
263
|
+
/**
|
|
264
|
+
* Checks if a cache entry is still valid.
|
|
265
|
+
* @param entry - The cache entry to check.
|
|
266
|
+
* @returns True if the entry is still valid, false otherwise.
|
|
267
|
+
* @private
|
|
268
|
+
*/
|
|
269
|
+
private _isCacheEntryValid;
|
|
270
|
+
/**
|
|
271
|
+
* Gets a cached response if available and valid.
|
|
272
|
+
* @param cacheKey - The cache key to look up.
|
|
273
|
+
* @returns The cached data or null if not found/expired.
|
|
274
|
+
* @private
|
|
275
|
+
*/
|
|
276
|
+
private _getCachedResponse;
|
|
277
|
+
/**
|
|
278
|
+
* Stores a response in the cache.
|
|
279
|
+
* @param cacheKey - The cache key.
|
|
280
|
+
* @param data - The data to cache.
|
|
281
|
+
* @private
|
|
282
|
+
*/
|
|
283
|
+
private _setCachedResponse;
|
|
284
|
+
/**
|
|
285
|
+
* Gets or sets a pending promise for concurrent requests.
|
|
286
|
+
* @param cacheKey - The cache key.
|
|
287
|
+
* @param promise - The promise to store (optional).
|
|
288
|
+
* @returns The existing or new promise.
|
|
289
|
+
* @private
|
|
290
|
+
*/
|
|
291
|
+
private _getPendingPromise;
|
|
292
|
+
/**
|
|
293
|
+
* Clears the pending promise from a cache entry.
|
|
294
|
+
* @param cacheKey - The cache key.
|
|
295
|
+
* @private
|
|
296
|
+
*/
|
|
297
|
+
private _clearPendingPromise;
|
|
298
|
+
/**
|
|
299
|
+
* True if a request is a write that should invalidate cached reads for its
|
|
300
|
+
* resource. Cacheable "read" POSTs (query endpoints) are excluded.
|
|
301
|
+
* @private
|
|
302
|
+
*/
|
|
303
|
+
private _isMutation;
|
|
304
|
+
/**
|
|
305
|
+
* True if a path segment looks like a resource id (UUID or numeric) rather
|
|
306
|
+
* than a collection name.
|
|
307
|
+
* @private
|
|
308
|
+
*/
|
|
309
|
+
private _looksLikeSegmentId;
|
|
310
|
+
/**
|
|
311
|
+
* The resource "collection" a mutation acts on — the deepest non-id,
|
|
312
|
+
* non-version path segment (e.g. `/v1/workspaces/:id/projects` -> `projects`,
|
|
313
|
+
* `DELETE /v1/projects/:id` -> `projects`).
|
|
314
|
+
* @private
|
|
315
|
+
*/
|
|
316
|
+
private _resourceToken;
|
|
317
|
+
/**
|
|
318
|
+
* Evict cached GET responses that belong to the same resource collection as a
|
|
319
|
+
* just-completed write, so the next read is fresh. Matches the parent-nested
|
|
320
|
+
* list form too — a `POST /v1/projects` also evicts a cached
|
|
321
|
+
* `/v1/workspaces/:id/projects` because both paths contain the `projects`
|
|
322
|
+
* segment. Cross-resource relationships that don't share a path segment
|
|
323
|
+
* (e.g. a payment write vs the subscription read) are NOT covered here and
|
|
324
|
+
* are handled at their call sites.
|
|
325
|
+
* @private
|
|
326
|
+
*/
|
|
327
|
+
private _invalidateForMutation;
|
|
328
|
+
/**
|
|
329
|
+
* Sets the access and refresh tokens with optional expiration timestamps.
|
|
330
|
+
* @param accessToken - The JWT access token or null to clear.
|
|
331
|
+
* @param refreshToken - The refresh token or null to clear.
|
|
332
|
+
* @param accessTokenExpiry - ISO timestamp when access token expires (optional).
|
|
333
|
+
* @param refreshTokenExpiry - ISO timestamp when refresh token expires (optional).
|
|
334
|
+
* @private
|
|
335
|
+
*/
|
|
336
|
+
private _setTokens;
|
|
337
|
+
/**
|
|
338
|
+
* Retrieves the current access token.
|
|
339
|
+
* @returns The access token or null.
|
|
340
|
+
* @private
|
|
341
|
+
*/
|
|
342
|
+
private _getAccessToken;
|
|
343
|
+
/**
|
|
344
|
+
* Retrieves the current refresh token.
|
|
345
|
+
* @returns The refresh token or null.
|
|
346
|
+
* @private
|
|
347
|
+
*/
|
|
348
|
+
private _getRefreshToken;
|
|
349
|
+
/**
|
|
350
|
+
* Sets the MFA verification token.
|
|
351
|
+
* @param verifyMfaToken - The verify MFA token or null to clear.
|
|
352
|
+
* @internal
|
|
353
|
+
*/
|
|
354
|
+
_setVerifyMfaToken(verifyMfaToken: string | null): void;
|
|
355
|
+
/**
|
|
356
|
+
* Retrieves the current verify MFA token.
|
|
357
|
+
* @returns The verify MFA token or null.
|
|
358
|
+
* @internal
|
|
359
|
+
*/
|
|
360
|
+
_getVerifyMfaToken(): string | null;
|
|
361
|
+
/**
|
|
362
|
+
* Loads tokens and their expiration timestamps from storage (browser mode only).
|
|
363
|
+
* @private
|
|
364
|
+
*/
|
|
365
|
+
private _loadTokens;
|
|
366
|
+
/**
|
|
367
|
+
* Checks if the current access token is expired or close to expiring.
|
|
368
|
+
* @returns True if the token is missing, expired, or needs refresh based on buffer.
|
|
369
|
+
* @private
|
|
370
|
+
*/
|
|
371
|
+
private _isTokenExpired;
|
|
372
|
+
/**
|
|
373
|
+
* Checks if the current JWT token exists and is valid.
|
|
374
|
+
* @returns {boolean} True if the token exists and is valid, false otherwise.
|
|
375
|
+
*/
|
|
376
|
+
tokenValid(): boolean;
|
|
377
|
+
/**
|
|
378
|
+
* Gets the token expiration timestamps.
|
|
379
|
+
* @returns Object containing access and refresh token expiry ISO timestamps.
|
|
380
|
+
* @public
|
|
381
|
+
*/
|
|
382
|
+
getTokenExpiry(): {
|
|
383
|
+
access: string | null;
|
|
384
|
+
refresh: string | null;
|
|
385
|
+
};
|
|
386
|
+
/**
|
|
387
|
+
* Refreshes the access token using the stored refresh token.
|
|
388
|
+
* Includes a time lock to prevent rapid concurrent refresh attempts.
|
|
389
|
+
* @returns Promise resolving when refresh attempt is complete (or bypassed).
|
|
390
|
+
* @private
|
|
391
|
+
*/
|
|
392
|
+
private _refreshToken;
|
|
393
|
+
/**
|
|
394
|
+
* Makes an HTTP request to the API.
|
|
395
|
+
* Handles token attachment and potential refresh.
|
|
396
|
+
* @param options - Request configuration.
|
|
397
|
+
* @returns The response data.
|
|
398
|
+
* @private
|
|
399
|
+
*/
|
|
400
|
+
_request<T = any>(options: InternalRequestOptions): Promise<T>;
|
|
401
|
+
/**
|
|
402
|
+
* Executes the actual HTTP request.
|
|
403
|
+
* @param url - The complete URL to request.
|
|
404
|
+
* @param config - The fetch configuration.
|
|
405
|
+
* @returns The response data.
|
|
406
|
+
* @private
|
|
407
|
+
*/
|
|
408
|
+
private _executeRequest;
|
|
409
|
+
/**
|
|
410
|
+
* Gets the current user's ID from the JWT token.
|
|
411
|
+
* @returns {string | null} The user ID if available, null otherwise.
|
|
412
|
+
*/
|
|
413
|
+
getUserId(): string | null;
|
|
414
|
+
/**
|
|
415
|
+
* Gets the SDK version information including build timestamp and hash.
|
|
416
|
+
* Useful for debugging and verifying which SDK version is in use.
|
|
417
|
+
* @returns {SDKVersionInfo} SDK version, build timestamp, build hash, and git commit
|
|
418
|
+
*/
|
|
419
|
+
getVersion(): SDKVersionInfo;
|
|
420
|
+
/**
|
|
421
|
+
* Clears the response cache.
|
|
422
|
+
* @public
|
|
423
|
+
*/
|
|
424
|
+
clearCache(): void;
|
|
425
|
+
/**
|
|
426
|
+
* Gets cache statistics for debugging.
|
|
427
|
+
* @returns Object containing cache statistics.
|
|
428
|
+
* @public
|
|
429
|
+
*/
|
|
430
|
+
getCacheStats(): {
|
|
431
|
+
size: number;
|
|
432
|
+
entries: Array<{
|
|
433
|
+
key: string;
|
|
434
|
+
timestamp: number;
|
|
435
|
+
hasData: boolean;
|
|
436
|
+
hasPendingPromise: boolean;
|
|
437
|
+
}>;
|
|
438
|
+
};
|
|
439
|
+
}
|
|
440
|
+
export default NuramaClient;
|
|
441
|
+
export type { SDKVersionInfo };
|
|
442
|
+
export type { HealthStatus } from './routes/version.js';
|
|
443
|
+
export type { UserTodo } from './routes/user.js';
|
|
444
|
+
export type { SupportTicketScope, SupportTicketStatus, CreateSupportTicketRequest, SupportTicket, SupportTicketListParams, SupportTicketListResponse, SupportTicketScopeOptions, } from './routes/supportTicket.js';
|
|
445
|
+
export type { BotApiKeySummary, Bot, CreateBotData, CreateBotResponse, UpdateBotData, RotateBotKeyResponse, UpdateBotAvatarFileData, UpdateBotAvatarResponse, BotProjectRole, BotProjectMembership, } from './routes/bot.js';
|
|
446
|
+
export type { WebhookEvent, WebhookSubscriptionStatus, WebhookSubscription, CreateWebhookData, UpdateWebhookData, CreateWebhookResponse, RotateWebhookSecretResponse, WebhookAttemptStatus, WebhookAttempt, ListDeliveriesParams, ListDeliveriesResponse, TestWebhookResponse, } from './routes/webhook.js';
|
|
447
|
+
export type { TokenKind, TokenScope, TokenSummary, CreateTokenData, CreateTokenResponse, } from './routes/token.js';
|
|
448
|
+
//# sourceMappingURL=NuramaClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NuramaClient.d.ts","sourceRoot":"","sources":["../src/NuramaClient.ts"],"names":[],"mappings":"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"}
|