@arinova-ai/spaces-sdk 0.1.0 → 0.1.1
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/.turbo/turbo-build.log +4 -0
- package/README.md +16 -1
- package/dist/index.d.ts +11 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +42 -0
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +8 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +50 -0
- package/src/types.ts +10 -0
package/README.md
CHANGED
|
@@ -21,7 +21,21 @@ Arinova.init({
|
|
|
21
21
|
});
|
|
22
22
|
```
|
|
23
23
|
|
|
24
|
-
###
|
|
24
|
+
### 2a. Connect (Recommended)
|
|
25
|
+
|
|
26
|
+
The easiest way to authenticate. Works automatically in both contexts:
|
|
27
|
+
|
|
28
|
+
- **Embedded in Arinova Chat iframe**: receives auth via `postMessage` from the parent window (no redirect needed).
|
|
29
|
+
- **Standalone (outside iframe)**: falls back to the OAuth login flow.
|
|
30
|
+
|
|
31
|
+
```typescript
|
|
32
|
+
const { user, accessToken, agents } = await Arinova.connect({ timeout: 5000 });
|
|
33
|
+
// user: { id, name, email, image }
|
|
34
|
+
// accessToken: session token for API calls
|
|
35
|
+
// agents: user's connected agents (may be empty)
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
### 2b. Login (Manual OAuth Flow)
|
|
25
39
|
|
|
26
40
|
```typescript
|
|
27
41
|
// Redirect to Arinova login
|
|
@@ -83,6 +97,7 @@ const { newBalance, platformFee } = await Arinova.economy.award({
|
|
|
83
97
|
## API Reference
|
|
84
98
|
|
|
85
99
|
### `Arinova.init(config)`
|
|
100
|
+
### `Arinova.connect(options?)`
|
|
86
101
|
### `Arinova.login(options?)`
|
|
87
102
|
### `Arinova.handleCallback(params)`
|
|
88
103
|
### `Arinova.user.profile(accessToken)`
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ArinovaConfig, LoginOptions, LoginResult, ArinovaUser, AgentInfo, AgentChatOptions, AgentChatResponse, AgentChatStreamOptions, AgentChatStreamResponse, ChargeOptions, ChargeResponse, AwardOptions, AwardResponse, BalanceResponse } from "./types.js";
|
|
1
|
+
import type { ArinovaConfig, LoginOptions, LoginResult, ConnectOptions, ConnectResult, ArinovaUser, AgentInfo, AgentChatOptions, AgentChatResponse, AgentChatStreamOptions, AgentChatStreamResponse, ChargeOptions, ChargeResponse, AwardOptions, AwardResponse, BalanceResponse } from "./types.js";
|
|
2
2
|
export type * from "./types.js";
|
|
3
3
|
export declare const Arinova: {
|
|
4
4
|
/**
|
|
@@ -8,6 +8,16 @@ export declare const Arinova: {
|
|
|
8
8
|
clientId?: string;
|
|
9
9
|
clientSecret?: string;
|
|
10
10
|
}): void;
|
|
11
|
+
/**
|
|
12
|
+
* Connect to Arinova — works seamlessly in both iframe and standalone contexts.
|
|
13
|
+
*
|
|
14
|
+
* - **Inside an iframe** (embedded in Arinova Chat): receives auth via postMessage from the parent window.
|
|
15
|
+
* - **Outside an iframe** (standalone): falls back to the OAuth login() flow.
|
|
16
|
+
*
|
|
17
|
+
* @param options.timeout - How long to wait for postMessage in iframe mode (default: 5000ms)
|
|
18
|
+
* @returns Promise resolving with user, accessToken, and agents
|
|
19
|
+
*/
|
|
20
|
+
connect(options?: ConnectOptions): Promise<ConnectResult>;
|
|
11
21
|
/**
|
|
12
22
|
* Redirect to Arinova OAuth login page.
|
|
13
23
|
* Call this from your game's frontend.
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,YAAY,EACZ,WAAW,EACX,WAAW,EACX,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,EACtB,uBAAuB,EACvB,aAAa,EACb,cAAc,EACd,YAAY,EACZ,aAAa,EACb,eAAe,EAEhB,MAAM,YAAY,CAAC;AAEpB,mBAAmB,YAAY,CAAC;AAehC,eAAO,MAAM,OAAO;IAClB;;OAEG;iBACU,aAAa,GAAG;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE;IAOzE;;;OAGG;oBACa,YAAY,GAAG,IAAI;IAkBnC;;;OAGG;2BAC0B;QAC3B,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC;KACrB,GAAG,OAAO,CAAC,WAAW,CAAC;;QA4BtB;;WAEG;6BACwB,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;QASxD;;;WAGG;4BACuB,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;;;QAYvD;;WAEG;sBACiB,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC;QAuBjE;;WAEG;4BACuB,sBAAsB,GAAG,OAAO,CAAC,uBAAuB,CAAC;;;QAwDnF;;;WAGG;wBACmB,aAAa,GAAG;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,YAAY,EAAE,MAAM,CAAA;SAAE,GAAG,OAAO,CAAC,cAAc,CAAC;QAwB1G;;;WAGG;uBACkB,YAAY,GAAG;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,YAAY,EAAE,MAAM,CAAA;SAAE,GAAG,OAAO,CAAC,aAAa,CAAC;QAwBvG;;WAEG;6BACwB,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;;CAU/D,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,YAAY,EACZ,WAAW,EACX,cAAc,EACd,aAAa,EACb,WAAW,EACX,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,EACtB,uBAAuB,EACvB,aAAa,EACb,cAAc,EACd,YAAY,EACZ,aAAa,EACb,eAAe,EAEhB,MAAM,YAAY,CAAC;AAEpB,mBAAmB,YAAY,CAAC;AAehC,eAAO,MAAM,OAAO;IAClB;;OAEG;iBACU,aAAa,GAAG;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE;IAOzE;;;;;;;;OAQG;sBACqB,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;IAuC/D;;;OAGG;oBACa,YAAY,GAAG,IAAI;IAkBnC;;;OAGG;2BAC0B;QAC3B,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC;KACrB,GAAG,OAAO,CAAC,WAAW,CAAC;;QA4BtB;;WAEG;6BACwB,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;QASxD;;;WAGG;4BACuB,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;;;QAYvD;;WAEG;sBACiB,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC;QAuBjE;;WAEG;4BACuB,sBAAsB,GAAG,OAAO,CAAC,uBAAuB,CAAC;;;QAwDnF;;;WAGG;wBACmB,aAAa,GAAG;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,YAAY,EAAE,MAAM,CAAA;SAAE,GAAG,OAAO,CAAC,cAAc,CAAC;QAwB1G;;;WAGG;uBACkB,YAAY,GAAG;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,YAAY,EAAE,MAAM,CAAA;SAAE,GAAG,OAAO,CAAC,aAAa,CAAC;QAwBvG;;WAEG;6BACwB,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;;CAU/D,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -20,6 +20,48 @@ export const Arinova = {
|
|
|
20
20
|
_oauthClientInfo = { clientId: config.clientId, clientSecret: config.clientSecret };
|
|
21
21
|
}
|
|
22
22
|
},
|
|
23
|
+
/**
|
|
24
|
+
* Connect to Arinova — works seamlessly in both iframe and standalone contexts.
|
|
25
|
+
*
|
|
26
|
+
* - **Inside an iframe** (embedded in Arinova Chat): receives auth via postMessage from the parent window.
|
|
27
|
+
* - **Outside an iframe** (standalone): falls back to the OAuth login() flow.
|
|
28
|
+
*
|
|
29
|
+
* @param options.timeout - How long to wait for postMessage in iframe mode (default: 5000ms)
|
|
30
|
+
* @returns Promise resolving with user, accessToken, and agents
|
|
31
|
+
*/
|
|
32
|
+
async connect(options) {
|
|
33
|
+
const timeout = options?.timeout ?? 5000;
|
|
34
|
+
const inIframe = typeof window !== "undefined" && window.self !== window.top;
|
|
35
|
+
if (!inIframe) {
|
|
36
|
+
// Not in iframe — fall back to OAuth login flow
|
|
37
|
+
this.login();
|
|
38
|
+
// login() redirects, so this promise never resolves in practice
|
|
39
|
+
return new Promise(() => { });
|
|
40
|
+
}
|
|
41
|
+
// In iframe — listen for postMessage auth from parent
|
|
42
|
+
return new Promise((resolve, reject) => {
|
|
43
|
+
let settled = false;
|
|
44
|
+
const timer = setTimeout(() => {
|
|
45
|
+
if (!settled) {
|
|
46
|
+
settled = true;
|
|
47
|
+
window.removeEventListener("message", handler);
|
|
48
|
+
reject(new Error("Arinova connect timeout: no auth message received from parent window within " + timeout + "ms"));
|
|
49
|
+
}
|
|
50
|
+
}, timeout);
|
|
51
|
+
function handler(event) {
|
|
52
|
+
if (event.data?.type !== "arinova:auth")
|
|
53
|
+
return;
|
|
54
|
+
if (settled)
|
|
55
|
+
return;
|
|
56
|
+
settled = true;
|
|
57
|
+
clearTimeout(timer);
|
|
58
|
+
window.removeEventListener("message", handler);
|
|
59
|
+
const { user, accessToken, agents } = event.data.payload;
|
|
60
|
+
resolve({ user, accessToken, agents: agents ?? [] });
|
|
61
|
+
}
|
|
62
|
+
window.addEventListener("message", handler);
|
|
63
|
+
});
|
|
64
|
+
},
|
|
23
65
|
/**
|
|
24
66
|
* Redirect to Arinova OAuth login page.
|
|
25
67
|
* Call this from your game's frontend.
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -9,6 +9,14 @@ export interface LoginResult {
|
|
|
9
9
|
user: ArinovaUser;
|
|
10
10
|
accessToken: string;
|
|
11
11
|
}
|
|
12
|
+
export interface ConnectOptions {
|
|
13
|
+
timeout?: number;
|
|
14
|
+
}
|
|
15
|
+
export interface ConnectResult {
|
|
16
|
+
user: ArinovaUser;
|
|
17
|
+
accessToken: string;
|
|
18
|
+
agents: AgentInfo[];
|
|
19
|
+
}
|
|
12
20
|
export interface ArinovaUser {
|
|
13
21
|
id: string;
|
|
14
22
|
name: string;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAGD,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,WAAW,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAGD,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,sBAAuB,SAAQ,gBAAgB;IAC9D,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAClC;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAGD,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;CACjB;AAGD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,QAAQ,GAAG,aAAa,GAAG,YAAY,GAAG,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAGD,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,WAAW,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,WAAW,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,SAAS,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAGD,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,sBAAuB,SAAQ,gBAAgB;IAC9D,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAClC;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAGD,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;CACjB;AAGD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,QAAQ,GAAG,aAAa,GAAG,YAAY,GAAG,aAAa,CAAC"}
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -2,6 +2,8 @@ import type {
|
|
|
2
2
|
ArinovaConfig,
|
|
3
3
|
LoginOptions,
|
|
4
4
|
LoginResult,
|
|
5
|
+
ConnectOptions,
|
|
6
|
+
ConnectResult,
|
|
5
7
|
ArinovaUser,
|
|
6
8
|
AgentInfo,
|
|
7
9
|
AgentChatOptions,
|
|
@@ -42,6 +44,54 @@ export const Arinova = {
|
|
|
42
44
|
}
|
|
43
45
|
},
|
|
44
46
|
|
|
47
|
+
/**
|
|
48
|
+
* Connect to Arinova — works seamlessly in both iframe and standalone contexts.
|
|
49
|
+
*
|
|
50
|
+
* - **Inside an iframe** (embedded in Arinova Chat): receives auth via postMessage from the parent window.
|
|
51
|
+
* - **Outside an iframe** (standalone): falls back to the OAuth login() flow.
|
|
52
|
+
*
|
|
53
|
+
* @param options.timeout - How long to wait for postMessage in iframe mode (default: 5000ms)
|
|
54
|
+
* @returns Promise resolving with user, accessToken, and agents
|
|
55
|
+
*/
|
|
56
|
+
async connect(options?: ConnectOptions): Promise<ConnectResult> {
|
|
57
|
+
const timeout = options?.timeout ?? 5000;
|
|
58
|
+
|
|
59
|
+
const inIframe = typeof window !== "undefined" && window.self !== window.top;
|
|
60
|
+
|
|
61
|
+
if (!inIframe) {
|
|
62
|
+
// Not in iframe — fall back to OAuth login flow
|
|
63
|
+
this.login();
|
|
64
|
+
// login() redirects, so this promise never resolves in practice
|
|
65
|
+
return new Promise(() => {});
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
// In iframe — listen for postMessage auth from parent
|
|
69
|
+
return new Promise<ConnectResult>((resolve, reject) => {
|
|
70
|
+
let settled = false;
|
|
71
|
+
|
|
72
|
+
const timer = setTimeout(() => {
|
|
73
|
+
if (!settled) {
|
|
74
|
+
settled = true;
|
|
75
|
+
window.removeEventListener("message", handler);
|
|
76
|
+
reject(new Error("Arinova connect timeout: no auth message received from parent window within " + timeout + "ms"));
|
|
77
|
+
}
|
|
78
|
+
}, timeout);
|
|
79
|
+
|
|
80
|
+
function handler(event: MessageEvent) {
|
|
81
|
+
if (event.data?.type !== "arinova:auth") return;
|
|
82
|
+
if (settled) return;
|
|
83
|
+
settled = true;
|
|
84
|
+
clearTimeout(timer);
|
|
85
|
+
window.removeEventListener("message", handler);
|
|
86
|
+
|
|
87
|
+
const { user, accessToken, agents } = event.data.payload as ConnectResult;
|
|
88
|
+
resolve({ user, accessToken, agents: agents ?? [] });
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
window.addEventListener("message", handler);
|
|
92
|
+
});
|
|
93
|
+
},
|
|
94
|
+
|
|
45
95
|
/**
|
|
46
96
|
* Redirect to Arinova OAuth login page.
|
|
47
97
|
* Call this from your game's frontend.
|
package/src/types.ts
CHANGED
|
@@ -14,6 +14,16 @@ export interface LoginResult {
|
|
|
14
14
|
accessToken: string;
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
+
export interface ConnectOptions {
|
|
18
|
+
timeout?: number; // milliseconds, defaults to 5000
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export interface ConnectResult {
|
|
22
|
+
user: ArinovaUser;
|
|
23
|
+
accessToken: string;
|
|
24
|
+
agents: AgentInfo[];
|
|
25
|
+
}
|
|
26
|
+
|
|
17
27
|
export interface ArinovaUser {
|
|
18
28
|
id: string;
|
|
19
29
|
name: string;
|