ryuu-client 4.4.5 → 5.0.0-beta.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/README.md +243 -25
- package/dist/api/apps.d.ts +12 -0
- package/dist/api/apps.d.ts.map +1 -0
- package/dist/api/apps.js +57 -0
- package/dist/api/apps.js.map +1 -0
- package/dist/api/assets.d.ts +12 -0
- package/dist/api/assets.d.ts.map +1 -0
- package/dist/api/assets.js +53 -0
- package/dist/api/assets.js.map +1 -0
- package/dist/api/designs.d.ts +17 -0
- package/dist/api/designs.d.ts.map +1 -0
- package/dist/api/designs.js +45 -0
- package/dist/api/designs.js.map +1 -0
- package/dist/api/index.d.ts +5 -0
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/index.js +5 -0
- package/dist/api/index.js.map +1 -0
- package/dist/api/users.d.ts +10 -0
- package/dist/api/users.d.ts.map +1 -0
- package/dist/api/users.js +19 -0
- package/dist/api/users.js.map +1 -0
- package/dist/auth/authenticator.d.ts +17 -0
- package/dist/auth/authenticator.d.ts.map +1 -0
- package/dist/auth/authenticator.js +81 -0
- package/dist/auth/authenticator.js.map +1 -0
- package/dist/auth/index.d.ts +5 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +5 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/auth/oauth.d.ts +22 -0
- package/dist/auth/oauth.d.ts.map +1 -0
- package/dist/auth/oauth.js +58 -0
- package/dist/auth/oauth.js.map +1 -0
- package/dist/auth/token-cache.d.ts +7 -0
- package/dist/auth/token-cache.d.ts.map +1 -0
- package/dist/auth/token-cache.js +20 -0
- package/dist/auth/token-cache.js.map +1 -0
- package/dist/auth/token-store.d.ts +3 -0
- package/dist/auth/token-store.d.ts.map +1 -0
- package/dist/auth/token-store.js +20 -0
- package/dist/auth/token-store.js.map +1 -0
- package/dist/client.d.ts +20 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +38 -0
- package/dist/client.js.map +1 -0
- package/dist/http/errors.d.ts +12 -0
- package/dist/http/errors.d.ts.map +1 -0
- package/dist/http/errors.js +23 -0
- package/dist/http/errors.js.map +1 -0
- package/dist/http/fetch-client.d.ts +14 -0
- package/dist/http/fetch-client.d.ts.map +1 -0
- package/dist/http/fetch-client.js +40 -0
- package/dist/http/fetch-client.js.map +1 -0
- package/dist/http/index.d.ts +4 -0
- package/dist/http/index.d.ts.map +1 -0
- package/dist/http/index.js +4 -0
- package/dist/http/index.js.map +1 -0
- package/dist/http/proxy.d.ts +4 -0
- package/dist/http/proxy.d.ts.map +1 -0
- package/dist/http/proxy.js +21 -0
- package/dist/http/proxy.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -0
- package/{lib/models/interfaces → dist/types}/asset.d.ts +1 -0
- package/dist/types/asset.d.ts.map +1 -0
- package/dist/types/asset.js +2 -0
- package/{lib/models/interfaces → dist/types}/asset.js.map +1 -1
- package/{lib/models/interfaces/login-data.d.ts → dist/types/auth.d.ts} +8 -0
- package/dist/types/auth.d.ts.map +1 -0
- package/dist/types/auth.js +2 -0
- package/dist/types/auth.js.map +1 -0
- package/{lib/models/interfaces → dist/types}/card.d.ts +3 -2
- package/dist/types/card.d.ts.map +1 -0
- package/dist/types/card.js +2 -0
- package/{lib/models/interfaces → dist/types}/card.js.map +1 -1
- package/dist/types/collection.d.ts +28 -0
- package/dist/types/collection.d.ts.map +1 -0
- package/{lib/models/enums → dist/types}/collection.js +2 -5
- package/dist/types/collection.js.map +1 -0
- package/dist/types/config.d.ts +14 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +2 -0
- package/dist/types/config.js.map +1 -0
- package/{lib/models/interfaces → dist/types}/context.d.ts +1 -0
- package/dist/types/context.d.ts.map +1 -0
- package/dist/types/context.js +2 -0
- package/dist/types/context.js.map +1 -0
- package/{lib/models/interfaces → dist/types}/dataset.d.ts +3 -3
- package/dist/types/dataset.d.ts.map +1 -0
- package/dist/types/dataset.js +2 -0
- package/dist/types/dataset.js.map +1 -0
- package/{lib/models/interfaces → dist/types}/design.d.ts +18 -10
- package/dist/types/design.d.ts.map +1 -0
- package/dist/types/design.js +9 -0
- package/dist/types/design.js.map +1 -0
- package/{lib/models/interfaces → dist/types}/environment.d.ts +3 -2
- package/dist/types/environment.d.ts.map +1 -0
- package/dist/types/environment.js +2 -0
- package/dist/types/environment.js.map +1 -0
- package/dist/types/errors.d.ts +8 -0
- package/dist/types/errors.d.ts.map +1 -0
- package/dist/types/errors.js +2 -0
- package/dist/types/errors.js.map +1 -0
- package/{lib/models/interfaces → dist/types}/filter.d.ts +11 -1
- package/dist/types/filter.d.ts.map +1 -0
- package/{lib/models/enums → dist/types}/filter.js +4 -7
- package/dist/types/filter.js.map +1 -0
- package/dist/types/index.d.ts +17 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +5 -0
- package/dist/types/index.js.map +1 -0
- package/{lib/models/interfaces → dist/types}/instance.d.ts +4 -3
- package/dist/types/instance.d.ts.map +1 -0
- package/dist/types/instance.js +2 -0
- package/dist/types/instance.js.map +1 -0
- package/{lib/models/interfaces → dist/types}/manifest.d.ts +8 -5
- package/dist/types/manifest.d.ts.map +1 -0
- package/dist/types/manifest.js +2 -0
- package/dist/types/manifest.js.map +1 -0
- package/{lib/models/enums → dist/types}/package.d.ts +18 -0
- package/dist/types/package.d.ts.map +1 -0
- package/{lib/models/enums → dist/types}/package.js +2 -5
- package/dist/types/package.js.map +1 -0
- package/{lib/models/interfaces → dist/types}/user.d.ts +1 -0
- package/dist/types/user.d.ts.map +1 -0
- package/dist/types/user.js +2 -0
- package/{lib/models/interfaces → dist/types}/user.js.map +1 -1
- package/{lib/models/interfaces → dist/types}/workflow.d.ts +3 -2
- package/dist/types/workflow.d.ts.map +1 -0
- package/dist/types/workflow.js +2 -0
- package/dist/types/workflow.js.map +1 -0
- package/dist/util/content-types.d.ts +4 -0
- package/dist/util/content-types.d.ts.map +1 -0
- package/{lib/models/constants/content.js → dist/util/content-types.js} +21 -5
- package/dist/util/content-types.js.map +1 -0
- package/dist/util/endpoints.d.ts +8 -0
- package/dist/util/endpoints.d.ts.map +1 -0
- package/dist/util/endpoints.js +8 -0
- package/dist/util/endpoints.js.map +1 -0
- package/dist/util/home-dir.d.ts +4 -0
- package/dist/util/home-dir.d.ts.map +1 -0
- package/dist/util/home-dir.js +19 -0
- package/dist/util/home-dir.js.map +1 -0
- package/package.json +31 -32
- package/lib/domoapps-client.d.ts +0 -67
- package/lib/domoapps-client.js +0 -711
- package/lib/domoapps-client.js.map +0 -1
- package/lib/models/constants/content.d.ts +0 -33
- package/lib/models/constants/content.js.map +0 -1
- package/lib/models/constants/endpoints.d.ts +0 -1
- package/lib/models/constants/endpoints.js +0 -5
- package/lib/models/constants/endpoints.js.map +0 -1
- package/lib/models/enums/collection.d.ts +0 -10
- package/lib/models/enums/collection.js.map +0 -1
- package/lib/models/enums/design.d.ts +0 -7
- package/lib/models/enums/design.js +0 -12
- package/lib/models/enums/design.js.map +0 -1
- package/lib/models/enums/filter.d.ts +0 -10
- package/lib/models/enums/filter.js.map +0 -1
- package/lib/models/enums/package.js.map +0 -1
- package/lib/models/index.d.ts +0 -20
- package/lib/models/index.js +0 -37
- package/lib/models/index.js.map +0 -1
- package/lib/models/interfaces/asset.js +0 -3
- package/lib/models/interfaces/card.js +0 -3
- package/lib/models/interfaces/collection.d.ts +0 -18
- package/lib/models/interfaces/collection.js +0 -3
- package/lib/models/interfaces/collection.js.map +0 -1
- package/lib/models/interfaces/context.js +0 -3
- package/lib/models/interfaces/context.js.map +0 -1
- package/lib/models/interfaces/dataset.js +0 -3
- package/lib/models/interfaces/dataset.js.map +0 -1
- package/lib/models/interfaces/design.js +0 -3
- package/lib/models/interfaces/design.js.map +0 -1
- package/lib/models/interfaces/domo-response.d.ts +0 -24
- package/lib/models/interfaces/domo-response.js +0 -3
- package/lib/models/interfaces/domo-response.js.map +0 -1
- package/lib/models/interfaces/environment.js +0 -3
- package/lib/models/interfaces/environment.js.map +0 -1
- package/lib/models/interfaces/filter.js +0 -3
- package/lib/models/interfaces/filter.js.map +0 -1
- package/lib/models/interfaces/instance.js +0 -3
- package/lib/models/interfaces/instance.js.map +0 -1
- package/lib/models/interfaces/login-data.js +0 -3
- package/lib/models/interfaces/login-data.js.map +0 -1
- package/lib/models/interfaces/manifest.js +0 -3
- package/lib/models/interfaces/manifest.js.map +0 -1
- package/lib/models/interfaces/package.d.ts +0 -18
- package/lib/models/interfaces/package.js +0 -3
- package/lib/models/interfaces/package.js.map +0 -1
- package/lib/models/interfaces/user.js +0 -3
- package/lib/models/interfaces/workflow.js +0 -3
- package/lib/models/interfaces/workflow.js.map +0 -1
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import open from 'open';
|
|
2
|
+
import { USERS_ME_URL } from '../util/endpoints.js';
|
|
3
|
+
import { TokenCache } from './token-cache.js';
|
|
4
|
+
import { requestDeviceCode, getAuthURL, exchangeRefreshToken, getSID, pollForToken, } from './oauth.js';
|
|
5
|
+
// Cache TTLs: access tokens typically last 1 hour, SIDs ~30 min
|
|
6
|
+
const ACCESS_TOKEN_TTL = 50 * 60 * 1000; // 50 minutes
|
|
7
|
+
const SID_TTL = 25 * 60 * 1000; // 25 minutes
|
|
8
|
+
export class Authenticator {
|
|
9
|
+
http;
|
|
10
|
+
clientId;
|
|
11
|
+
refreshToken;
|
|
12
|
+
devToken;
|
|
13
|
+
cache = new TokenCache();
|
|
14
|
+
constructor(http, clientId, refreshToken, devToken) {
|
|
15
|
+
this.http = http;
|
|
16
|
+
this.clientId = clientId;
|
|
17
|
+
this.refreshToken = refreshToken;
|
|
18
|
+
this.devToken = devToken;
|
|
19
|
+
}
|
|
20
|
+
getRefreshToken() {
|
|
21
|
+
return this.refreshToken;
|
|
22
|
+
}
|
|
23
|
+
setRefreshToken(token) {
|
|
24
|
+
this.refreshToken = token;
|
|
25
|
+
this.cache.clear();
|
|
26
|
+
}
|
|
27
|
+
async getAuthHeader() {
|
|
28
|
+
if (this.devToken) {
|
|
29
|
+
return { 'X-Domo-Developer-Token': this.refreshToken };
|
|
30
|
+
}
|
|
31
|
+
// Try cached SID first
|
|
32
|
+
const cachedSid = this.cache.get('sid');
|
|
33
|
+
if (cachedSid) {
|
|
34
|
+
return { 'X-Domo-Authentication': cachedSid };
|
|
35
|
+
}
|
|
36
|
+
// Try cached access token -> get SID
|
|
37
|
+
let accessToken = this.cache.get('access_token');
|
|
38
|
+
if (!accessToken) {
|
|
39
|
+
const tokenResponse = await exchangeRefreshToken(this.http, this.clientId, this.refreshToken);
|
|
40
|
+
accessToken = tokenResponse.access_token;
|
|
41
|
+
this.cache.set('access_token', accessToken, ACCESS_TOKEN_TTL);
|
|
42
|
+
}
|
|
43
|
+
const sidResponse = await getSID(this.http, accessToken);
|
|
44
|
+
this.cache.set('sid', sidResponse.sid, SID_TTL);
|
|
45
|
+
return { 'X-Domo-Authentication': sidResponse.sid };
|
|
46
|
+
}
|
|
47
|
+
async login() {
|
|
48
|
+
if (this.refreshToken) {
|
|
49
|
+
try {
|
|
50
|
+
return await this.getLoginUser();
|
|
51
|
+
}
|
|
52
|
+
catch {
|
|
53
|
+
// Token may have been revoked, get new authorization
|
|
54
|
+
this.refreshToken = '';
|
|
55
|
+
this.cache.clear();
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return await this.getNewAuthorization();
|
|
59
|
+
}
|
|
60
|
+
async getLoginUser() {
|
|
61
|
+
const headers = await this.getAuthHeader();
|
|
62
|
+
const user = await this.http.request(USERS_ME_URL, {
|
|
63
|
+
method: 'GET',
|
|
64
|
+
headers: headers,
|
|
65
|
+
});
|
|
66
|
+
user.refreshToken = this.refreshToken;
|
|
67
|
+
return user;
|
|
68
|
+
}
|
|
69
|
+
async getNewAuthorization() {
|
|
70
|
+
const scope = 'domoapps content domo';
|
|
71
|
+
const deviceCodeResponse = await requestDeviceCode(this.http, this.clientId, scope);
|
|
72
|
+
const url = getAuthURL(deviceCodeResponse);
|
|
73
|
+
console.log(`Please authorize this login in the browser window, if not opened automatically, please visit ${url}`);
|
|
74
|
+
await open(url);
|
|
75
|
+
const tokenResponse = await pollForToken(this.http, this.clientId, deviceCodeResponse.device_code);
|
|
76
|
+
this.refreshToken = tokenResponse.refresh_token;
|
|
77
|
+
this.cache.clear();
|
|
78
|
+
return await this.getLoginUser();
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=authenticator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authenticator.js","sourceRoot":"","sources":["../../src/auth/authenticator.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAIxB,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EACL,iBAAiB,EACjB,UAAU,EACV,oBAAoB,EACpB,MAAM,EACN,YAAY,GACb,MAAM,YAAY,CAAC;AAEpB,gEAAgE;AAChE,MAAM,gBAAgB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,aAAa;AACtD,MAAM,OAAO,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,aAAa;AAE7C,MAAM,OAAO,aAAa;IACP,IAAI,CAAc;IAClB,QAAQ,CAAS;IAC1B,YAAY,CAAS;IACZ,QAAQ,CAAU;IAClB,KAAK,GAAG,IAAI,UAAU,EAAE,CAAC;IAE1C,YACE,IAAiB,EACjB,QAAgB,EAChB,YAAoB,EACpB,QAAiB;QAEjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,eAAe,CAAC,KAAa;QAC3B,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,OAAO,EAAE,wBAAwB,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC;QACzD,CAAC;QAED,uBAAuB;QACvB,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACxC,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,EAAE,uBAAuB,EAAE,SAAS,EAAE,CAAC;QAChD,CAAC;QAED,qCAAqC;QACrC,IAAI,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QACjD,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,aAAa,GAAG,MAAM,oBAAoB,CAC9C,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,YAAY,CAClB,CAAC;YACF,WAAW,GAAG,aAAa,CAAC,YAAY,CAAC;YACzC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,EAAE,WAAW,EAAE,gBAAgB,CAAC,CAAC;QAChE,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QACzD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAChD,OAAO,EAAE,uBAAuB,EAAE,WAAW,CAAC,GAAG,EAAE,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,IAAI,CAAC;gBACH,OAAO,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;YACnC,CAAC;YAAC,MAAM,CAAC;gBACP,qDAAqD;gBACrD,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;gBACvB,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACrB,CAAC;QACH,CAAC;QACD,OAAO,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC1C,CAAC;IAEO,KAAK,CAAC,YAAY;QACxB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAC3C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAY,YAAY,EAAE;YAC5D,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,OAAiC;SAC3C,CAAC,CAAC;QACH,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,KAAK,CAAC,mBAAmB;QAC/B,MAAM,KAAK,GAAG,uBAAuB,CAAC;QACtC,MAAM,kBAAkB,GAAG,MAAM,iBAAiB,CAChD,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,QAAQ,EACb,KAAK,CACN,CAAC;QAEF,MAAM,GAAG,GAAG,UAAU,CAAC,kBAAkB,CAAC,CAAC;QAC3C,OAAO,CAAC,GAAG,CACT,gGAAgG,GAAG,EAAE,CACtG,CAAC;QACF,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC;QAEhB,MAAM,aAAa,GAAG,MAAM,YAAY,CACtC,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,QAAQ,EACb,kBAAkB,CAAC,WAAW,CAC/B,CAAC;QAEF,IAAI,CAAC,YAAY,GAAG,aAAa,CAAC,aAAa,CAAC;QAChD,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACnB,OAAO,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;IACnC,CAAC;CACF"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { Authenticator } from './authenticator.js';
|
|
2
|
+
export { TokenCache } from './token-cache.js';
|
|
3
|
+
export { saveLogin, loadLogin } from './token-store.js';
|
|
4
|
+
export { requestDeviceCode, getAuthURL, exchangeRefreshToken, exchangeDeviceCode, getSID, pollForToken, } from './oauth.js';
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EACL,iBAAiB,EACjB,UAAU,EACV,oBAAoB,EACpB,kBAAkB,EAClB,MAAM,EACN,YAAY,GACb,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { Authenticator } from './authenticator.js';
|
|
2
|
+
export { TokenCache } from './token-cache.js';
|
|
3
|
+
export { saveLogin, loadLogin } from './token-store.js';
|
|
4
|
+
export { requestDeviceCode, getAuthURL, exchangeRefreshToken, exchangeDeviceCode, getSID, pollForToken, } from './oauth.js';
|
|
5
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EACL,iBAAiB,EACjB,UAAU,EACV,oBAAoB,EACpB,kBAAkB,EAClB,MAAM,EACN,YAAY,GACb,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { FetchClient } from '../http/fetch-client.js';
|
|
2
|
+
export interface DeviceCodeResponse {
|
|
3
|
+
device_code: string;
|
|
4
|
+
user_code: string;
|
|
5
|
+
verification_uri: string;
|
|
6
|
+
}
|
|
7
|
+
export interface TokenResponse {
|
|
8
|
+
access_token: string;
|
|
9
|
+
refresh_token: string;
|
|
10
|
+
token_type: string;
|
|
11
|
+
expires_in: number;
|
|
12
|
+
}
|
|
13
|
+
export interface SIDResponse {
|
|
14
|
+
sid: string;
|
|
15
|
+
}
|
|
16
|
+
export declare function requestDeviceCode(http: FetchClient, clientId: string, scope: string): Promise<DeviceCodeResponse>;
|
|
17
|
+
export declare function getAuthURL(response: DeviceCodeResponse): string;
|
|
18
|
+
export declare function exchangeRefreshToken(http: FetchClient, clientId: string, refreshToken: string): Promise<TokenResponse>;
|
|
19
|
+
export declare function exchangeDeviceCode(http: FetchClient, clientId: string, deviceCode: string): Promise<TokenResponse>;
|
|
20
|
+
export declare function getSID(http: FetchClient, accessToken: string): Promise<SIDResponse>;
|
|
21
|
+
export declare function pollForToken(http: FetchClient, clientId: string, deviceCode: string, timeout?: number, interval?: number): Promise<TokenResponse>;
|
|
22
|
+
//# sourceMappingURL=oauth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oauth.d.ts","sourceRoot":"","sources":["../../src/auth/oauth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAW3D,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;CACb;AAED,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,WAAW,EACjB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,kBAAkB,CAAC,CAM7B;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,kBAAkB,GAAG,MAAM,CAE/D;AAED,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,WAAW,EACjB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,aAAa,CAAC,CAYxB;AAED,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,WAAW,EACjB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,aAAa,CAAC,CAUxB;AAED,wBAAsB,MAAM,CAC1B,IAAI,EAAE,WAAW,EACjB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,WAAW,CAAC,CAKtB;AAED,wBAAsB,YAAY,CAChC,IAAI,EAAE,WAAW,EACjB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,OAAO,SAAe,EACtB,QAAQ,SAAgB,GACvB,OAAO,CAAC,aAAa,CAAC,CAaxB"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { RyuuAuthError } from '../http/errors.js';
|
|
2
|
+
import { OAUTH_DEVICE_AUTH_URL, OAUTH_TOKEN_URL, OAUTH_SID_URL, } from '../util/endpoints.js';
|
|
3
|
+
const POLL_INTERVAL = 1000;
|
|
4
|
+
const POLL_TIMEOUT = 30000;
|
|
5
|
+
export async function requestDeviceCode(http, clientId, scope) {
|
|
6
|
+
return http.request(OAUTH_DEVICE_AUTH_URL, {
|
|
7
|
+
method: 'POST',
|
|
8
|
+
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
|
|
9
|
+
body: new URLSearchParams({ client_id: clientId, scope }),
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
export function getAuthURL(response) {
|
|
13
|
+
return `${response.verification_uri}?user_code=${response.user_code}`;
|
|
14
|
+
}
|
|
15
|
+
export async function exchangeRefreshToken(http, clientId, refreshToken) {
|
|
16
|
+
return http.request(OAUTH_TOKEN_URL, {
|
|
17
|
+
method: 'POST',
|
|
18
|
+
headers: {
|
|
19
|
+
'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8',
|
|
20
|
+
},
|
|
21
|
+
body: new URLSearchParams({
|
|
22
|
+
client_id: clientId,
|
|
23
|
+
grant_type: 'refresh_token',
|
|
24
|
+
refresh_token: refreshToken,
|
|
25
|
+
}),
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
export async function exchangeDeviceCode(http, clientId, deviceCode) {
|
|
29
|
+
return http.request(OAUTH_TOKEN_URL, {
|
|
30
|
+
method: 'POST',
|
|
31
|
+
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
|
|
32
|
+
body: new URLSearchParams({
|
|
33
|
+
client_id: clientId,
|
|
34
|
+
grant_type: 'device_code',
|
|
35
|
+
device_code: deviceCode,
|
|
36
|
+
}),
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
export async function getSID(http, accessToken) {
|
|
40
|
+
return http.request(OAUTH_SID_URL, {
|
|
41
|
+
method: 'GET',
|
|
42
|
+
headers: { Authorization: `Bearer ${accessToken}` },
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
export async function pollForToken(http, clientId, deviceCode, timeout = POLL_TIMEOUT, interval = POLL_INTERVAL) {
|
|
46
|
+
const deadline = Date.now() + timeout;
|
|
47
|
+
while (Date.now() < deadline) {
|
|
48
|
+
try {
|
|
49
|
+
return await exchangeDeviceCode(http, clientId, deviceCode);
|
|
50
|
+
}
|
|
51
|
+
catch {
|
|
52
|
+
// User hasn't authorized yet, wait and retry
|
|
53
|
+
await new Promise(resolve => setTimeout(resolve, interval));
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
throw new RyuuAuthError('Timed out waiting for browser authentication');
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=oauth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oauth.js","sourceRoot":"","sources":["../../src/auth/oauth.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EACL,qBAAqB,EACrB,eAAe,EACf,aAAa,GACd,MAAM,sBAAsB,CAAC;AAE9B,MAAM,aAAa,GAAG,IAAI,CAAC;AAC3B,MAAM,YAAY,GAAG,KAAK,CAAC;AAmB3B,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,IAAiB,EACjB,QAAgB,EAChB,KAAa;IAEb,OAAO,IAAI,CAAC,OAAO,CAAqB,qBAAqB,EAAE;QAC7D,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,mCAAmC,EAAE;QAChE,IAAI,EAAE,IAAI,eAAe,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;KAC1D,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,QAA4B;IACrD,OAAO,GAAG,QAAQ,CAAC,gBAAgB,cAAc,QAAQ,CAAC,SAAS,EAAE,CAAC;AACxE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,IAAiB,EACjB,QAAgB,EAChB,YAAoB;IAEpB,OAAO,IAAI,CAAC,OAAO,CAAgB,eAAe,EAAE;QAClD,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,cAAc,EAAE,iDAAiD;SAClE;QACD,IAAI,EAAE,IAAI,eAAe,CAAC;YACxB,SAAS,EAAE,QAAQ;YACnB,UAAU,EAAE,eAAe;YAC3B,aAAa,EAAE,YAAY;SAC5B,CAAC;KACH,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,IAAiB,EACjB,QAAgB,EAChB,UAAkB;IAElB,OAAO,IAAI,CAAC,OAAO,CAAgB,eAAe,EAAE;QAClD,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,mCAAmC,EAAE;QAChE,IAAI,EAAE,IAAI,eAAe,CAAC;YACxB,SAAS,EAAE,QAAQ;YACnB,UAAU,EAAE,aAAa;YACzB,WAAW,EAAE,UAAU;SACxB,CAAC;KACH,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,MAAM,CAC1B,IAAiB,EACjB,WAAmB;IAEnB,OAAO,IAAI,CAAC,OAAO,CAAc,aAAa,EAAE;QAC9C,MAAM,EAAE,KAAK;QACb,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,WAAW,EAAE,EAAE;KACpD,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,IAAiB,EACjB,QAAgB,EAChB,UAAkB,EAClB,OAAO,GAAG,YAAY,EACtB,QAAQ,GAAG,aAAa;IAExB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC;IAEtC,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,OAAO,MAAM,kBAAkB,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;QAC9D,CAAC;QAAC,MAAM,CAAC;YACP,6CAA6C;YAC7C,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAED,MAAM,IAAI,aAAa,CAAC,8CAA8C,CAAC,CAAC;AAC1E,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token-cache.d.ts","sourceRoot":"","sources":["../../src/auth/token-cache.ts"],"names":[],"mappings":"AAKA,qBAAa,UAAU;IACrB,OAAO,CAAC,KAAK,CAAyC;IAEtD,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAUpC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAIpD,KAAK,IAAI,IAAI;CAGd"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export class TokenCache {
|
|
2
|
+
cache = new Map();
|
|
3
|
+
get(key) {
|
|
4
|
+
const entry = this.cache.get(key);
|
|
5
|
+
if (!entry)
|
|
6
|
+
return undefined;
|
|
7
|
+
if (Date.now() >= entry.expiresAt) {
|
|
8
|
+
this.cache.delete(key);
|
|
9
|
+
return undefined;
|
|
10
|
+
}
|
|
11
|
+
return entry.value;
|
|
12
|
+
}
|
|
13
|
+
set(key, value, ttlMs) {
|
|
14
|
+
this.cache.set(key, { value, expiresAt: Date.now() + ttlMs });
|
|
15
|
+
}
|
|
16
|
+
clear() {
|
|
17
|
+
this.cache.clear();
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=token-cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token-cache.js","sourceRoot":"","sources":["../../src/auth/token-cache.ts"],"names":[],"mappings":"AAKA,MAAM,OAAO,UAAU;IACb,KAAK,GAAG,IAAI,GAAG,EAA8B,CAAC;IAEtD,GAAG,CAAC,GAAW;QACb,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,KAAK;YAAE,OAAO,SAAS,CAAC;QAC7B,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YAClC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACvB,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,KAAK,CAAC,KAAK,CAAC;IACrB,CAAC;IAED,GAAG,CAAC,GAAW,EAAE,KAAa,EAAE,KAAa;QAC3C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,KAAK;QACH,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token-store.d.ts","sourceRoot":"","sources":["../../src/auth/token-store.ts"],"names":[],"mappings":"AAIA,wBAAgB,SAAS,CACvB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,IAAI,CAKN;AAED,wBAAgB,SAAS,CACvB,QAAQ,EAAE,MAAM,GACf,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAQrC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import fs from 'node:fs';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { getHomeDir } from '../util/home-dir.js';
|
|
4
|
+
export function saveLogin(instance, data) {
|
|
5
|
+
const dir = getHomeDir();
|
|
6
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
7
|
+
const filePath = path.join(dir, `${instance}.json`);
|
|
8
|
+
fs.writeFileSync(filePath, JSON.stringify(data, null, 2), 'utf-8');
|
|
9
|
+
}
|
|
10
|
+
export function loadLogin(instance) {
|
|
11
|
+
const dir = getHomeDir();
|
|
12
|
+
const filePath = path.join(dir, `${instance}.json`);
|
|
13
|
+
try {
|
|
14
|
+
return JSON.parse(fs.readFileSync(filePath, 'utf-8'));
|
|
15
|
+
}
|
|
16
|
+
catch {
|
|
17
|
+
return undefined;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=token-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token-store.js","sourceRoot":"","sources":["../../src/auth/token-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,MAAM,UAAU,SAAS,CACvB,QAAgB,EAChB,IAA6B;IAE7B,MAAM,GAAG,GAAG,UAAU,EAAE,CAAC;IACzB,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,OAAO,CAAC,CAAC;IACpD,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AACrE,CAAC;AAED,MAAM,UAAU,SAAS,CACvB,QAAgB;IAEhB,MAAM,GAAG,GAAG,UAAU,EAAE,CAAC;IACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,OAAO,CAAC,CAAC;IACpD,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;IACxD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC"}
|
package/dist/client.d.ts
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { RyuuClientConfig } from './types/config.js';
|
|
2
|
+
import type { LoginData } from './types/auth.js';
|
|
3
|
+
import { DesignsApi } from './api/designs.js';
|
|
4
|
+
import { AssetsApi } from './api/assets.js';
|
|
5
|
+
import { AppsApi } from './api/apps.js';
|
|
6
|
+
import { UsersApi } from './api/users.js';
|
|
7
|
+
export interface RyuuClient {
|
|
8
|
+
readonly instance: string;
|
|
9
|
+
readonly refreshToken: string;
|
|
10
|
+
readonly designs: DesignsApi;
|
|
11
|
+
readonly assets: AssetsApi;
|
|
12
|
+
readonly apps: AppsApi;
|
|
13
|
+
readonly users: UsersApi;
|
|
14
|
+
login(): Promise<LoginData>;
|
|
15
|
+
request<T = unknown>(url: string, init?: RequestInit & {
|
|
16
|
+
rawResponse?: boolean;
|
|
17
|
+
}): Promise<T>;
|
|
18
|
+
}
|
|
19
|
+
export declare function createClient(config: RyuuClientConfig): RyuuClient;
|
|
20
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EAAE,SAAS,EAAc,MAAM,iBAAiB,CAAC;AAI7D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;IACzB,KAAK,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC;IAC5B,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG;QAAE,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CAC/F;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,gBAAgB,GAAG,UAAU,CAoCjE"}
|
package/dist/client.js
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { FetchClient } from './http/fetch-client.js';
|
|
2
|
+
import { createAgent } from './http/proxy.js';
|
|
3
|
+
import { Authenticator } from './auth/authenticator.js';
|
|
4
|
+
import { DesignsApi } from './api/designs.js';
|
|
5
|
+
import { AssetsApi } from './api/assets.js';
|
|
6
|
+
import { AppsApi } from './api/apps.js';
|
|
7
|
+
import { UsersApi } from './api/users.js';
|
|
8
|
+
export function createClient(config) {
|
|
9
|
+
const baseUrl = `https://${config.instance}`;
|
|
10
|
+
const agent = createAgent(config.instance, config.proxy);
|
|
11
|
+
const http = new FetchClient({ baseUrl, agent });
|
|
12
|
+
const auth = new Authenticator(http, config.clientId, config.refreshToken, config.devToken ?? false);
|
|
13
|
+
const designs = new DesignsApi(http, auth);
|
|
14
|
+
const assets = new AssetsApi(http, auth);
|
|
15
|
+
const apps = new AppsApi(http, auth, config.instance);
|
|
16
|
+
const users = new UsersApi(http, auth);
|
|
17
|
+
return {
|
|
18
|
+
get instance() {
|
|
19
|
+
return config.instance;
|
|
20
|
+
},
|
|
21
|
+
get refreshToken() {
|
|
22
|
+
return auth.getRefreshToken();
|
|
23
|
+
},
|
|
24
|
+
designs,
|
|
25
|
+
assets,
|
|
26
|
+
apps,
|
|
27
|
+
users,
|
|
28
|
+
login: () => auth.login(),
|
|
29
|
+
async request(url, init) {
|
|
30
|
+
const headers = {
|
|
31
|
+
...init?.headers,
|
|
32
|
+
...(await auth.getAuthHeader()),
|
|
33
|
+
};
|
|
34
|
+
return http.request(url, { ...init, headers });
|
|
35
|
+
},
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAa1C,MAAM,UAAU,YAAY,CAAC,MAAwB;IACnD,MAAM,OAAO,GAAG,WAAW,MAAM,CAAC,QAAQ,EAAE,CAAC;IAC7C,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IACzD,MAAM,IAAI,GAAG,IAAI,WAAW,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;IACjD,MAAM,IAAI,GAAG,IAAI,aAAa,CAC5B,IAAI,EACJ,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,YAAY,EACnB,MAAM,CAAC,QAAQ,IAAI,KAAK,CACzB,CAAC;IAEF,MAAM,OAAO,GAAG,IAAI,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACzC,MAAM,IAAI,GAAG,IAAI,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IACtD,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAEvC,OAAO;QACL,IAAI,QAAQ;YACV,OAAO,MAAM,CAAC,QAAQ,CAAC;QACzB,CAAC;QACD,IAAI,YAAY;YACd,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC;QAChC,CAAC;QACD,OAAO;QACP,MAAM;QACN,IAAI;QACJ,KAAK;QACL,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE;QACzB,KAAK,CAAC,OAAO,CAAc,GAAW,EAAE,IAA8C;YACpF,MAAM,OAAO,GAA2B;gBACtC,GAAI,IAAI,EAAE,OAAkC;gBAC5C,GAAG,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;aAChC,CAAC;YACF,OAAO,IAAI,CAAC,OAAO,CAAI,GAAG,EAAE,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QACpD,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare class RyuuHttpError extends Error {
|
|
2
|
+
readonly statusCode: number;
|
|
3
|
+
readonly url: string;
|
|
4
|
+
constructor(message: string, statusCode: number, url: string, options?: ErrorOptions);
|
|
5
|
+
}
|
|
6
|
+
export declare class RyuuAuthError extends Error {
|
|
7
|
+
constructor(message: string, options?: ErrorOptions);
|
|
8
|
+
}
|
|
9
|
+
export declare class RyuuValidationError extends Error {
|
|
10
|
+
constructor(message: string, options?: ErrorOptions);
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/http/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,aAAc,SAAQ,KAAK;IACtC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;gBAGnB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,YAAY;CAOzB;AAED,qBAAa,aAAc,SAAQ,KAAK;gBAC1B,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY;CAIpD;AAED,qBAAa,mBAAoB,SAAQ,KAAK;gBAChC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY;CAIpD"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export class RyuuHttpError extends Error {
|
|
2
|
+
statusCode;
|
|
3
|
+
url;
|
|
4
|
+
constructor(message, statusCode, url, options) {
|
|
5
|
+
super(message, options);
|
|
6
|
+
this.name = 'RyuuHttpError';
|
|
7
|
+
this.statusCode = statusCode;
|
|
8
|
+
this.url = url;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
export class RyuuAuthError extends Error {
|
|
12
|
+
constructor(message, options) {
|
|
13
|
+
super(message, options);
|
|
14
|
+
this.name = 'RyuuAuthError';
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
export class RyuuValidationError extends Error {
|
|
18
|
+
constructor(message, options) {
|
|
19
|
+
super(message, options);
|
|
20
|
+
this.name = 'RyuuValidationError';
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/http/errors.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,aAAc,SAAQ,KAAK;IAC7B,UAAU,CAAS;IACnB,GAAG,CAAS;IAErB,YACE,OAAe,EACf,UAAkB,EAClB,GAAW,EACX,OAAsB;QAEtB,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;QAC5B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;CACF;AAED,MAAM,OAAO,aAAc,SAAQ,KAAK;IACtC,YAAY,OAAe,EAAE,OAAsB;QACjD,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;IAC9B,CAAC;CACF;AAED,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAC5C,YAAY,OAAe,EAAE,OAAsB;QACjD,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { Agent, ProxyAgent } from 'undici';
|
|
2
|
+
export interface FetchClientOptions {
|
|
3
|
+
baseUrl: string;
|
|
4
|
+
agent?: Agent | ProxyAgent;
|
|
5
|
+
}
|
|
6
|
+
export declare class FetchClient {
|
|
7
|
+
readonly baseUrl: string;
|
|
8
|
+
private readonly agent?;
|
|
9
|
+
constructor(options: FetchClientOptions);
|
|
10
|
+
request<T = unknown>(path: string, init?: RequestInit & {
|
|
11
|
+
rawResponse?: boolean;
|
|
12
|
+
}): Promise<T>;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=fetch-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetch-client.d.ts","sourceRoot":"","sources":["../../src/http/fetch-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAGhD,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,KAAK,GAAG,UAAU,CAAC;CAC5B;AAED,qBAAa,WAAW;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAqB;gBAEhC,OAAO,EAAE,kBAAkB;IAKjC,OAAO,CAAC,CAAC,GAAG,OAAO,EACvB,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,WAAW,GAAG;QAAE,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE,GAC7C,OAAO,CAAC,CAAC,CAAC;CAkCd"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { RyuuHttpError } from './errors.js';
|
|
2
|
+
export class FetchClient {
|
|
3
|
+
baseUrl;
|
|
4
|
+
agent;
|
|
5
|
+
constructor(options) {
|
|
6
|
+
this.baseUrl = options.baseUrl;
|
|
7
|
+
this.agent = options.agent;
|
|
8
|
+
}
|
|
9
|
+
async request(path, init) {
|
|
10
|
+
const url = path.startsWith('http') ? path : `${this.baseUrl}${path}`;
|
|
11
|
+
const fetchOptions = { ...init };
|
|
12
|
+
if (this.agent) {
|
|
13
|
+
// undici dispatcher via Node's native fetch
|
|
14
|
+
fetchOptions.dispatcher = this.agent;
|
|
15
|
+
}
|
|
16
|
+
const response = await fetch(url, fetchOptions);
|
|
17
|
+
if (!response.ok) {
|
|
18
|
+
let message = response.statusText;
|
|
19
|
+
try {
|
|
20
|
+
const body = await response.json();
|
|
21
|
+
if (body.message)
|
|
22
|
+
message = body.message;
|
|
23
|
+
}
|
|
24
|
+
catch {
|
|
25
|
+
// body may not be JSON
|
|
26
|
+
}
|
|
27
|
+
throw new RyuuHttpError(message, response.status, url);
|
|
28
|
+
}
|
|
29
|
+
if (init?.rawResponse) {
|
|
30
|
+
return response;
|
|
31
|
+
}
|
|
32
|
+
const contentType = response.headers.get('content-type') ?? '';
|
|
33
|
+
if (contentType.includes('application/json')) {
|
|
34
|
+
return (await response.json());
|
|
35
|
+
}
|
|
36
|
+
// For non-JSON responses, return the response body
|
|
37
|
+
return response;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=fetch-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetch-client.js","sourceRoot":"","sources":["../../src/http/fetch-client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAO5C,MAAM,OAAO,WAAW;IACb,OAAO,CAAS;IACR,KAAK,CAAsB;IAE5C,YAAY,OAA2B;QACrC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,OAAO,CACX,IAAY,EACZ,IAA8C;QAE9C,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,CAAC;QACtE,MAAM,YAAY,GAAgB,EAAE,GAAG,IAAI,EAAE,CAAC;QAE9C,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,4CAA4C;YAC3C,YAAwC,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;QACpE,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;QAEhD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,IAAI,OAAO,GAAG,QAAQ,CAAC,UAAU,CAAC;YAClC,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAA2C,CAAC;gBAC5E,IAAI,IAAI,CAAC,OAAO;oBAAE,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;YAC3C,CAAC;YAAC,MAAM,CAAC;gBACP,uBAAuB;YACzB,CAAC;YACD,MAAM,IAAI,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACzD,CAAC;QAED,IAAI,IAAI,EAAE,WAAW,EAAE,CAAC;YACtB,OAAO,QAAwB,CAAC;QAClC,CAAC;QAED,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;QAC/D,IAAI,WAAW,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAC7C,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAM,CAAC;QACtC,CAAC;QAED,mDAAmD;QACnD,OAAO,QAAwB,CAAC;IAClC,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/http/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/http/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAA2B,MAAM,mBAAmB,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../../src/http/proxy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,wBAAgB,WAAW,CACzB,QAAQ,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,WAAW,GAClB,KAAK,GAAG,UAAU,GAAG,SAAS,CAsBhC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Agent, ProxyAgent } from 'undici';
|
|
2
|
+
export function createAgent(instance, proxy) {
|
|
3
|
+
const isDomorig = instance.endsWith('domorig.io');
|
|
4
|
+
if (proxy?.host && proxy?.port) {
|
|
5
|
+
let uri = `http://${proxy.host}:${proxy.port}`;
|
|
6
|
+
if (proxy.username && proxy.password) {
|
|
7
|
+
uri = `http://${proxy.username}:${proxy.password}@${proxy.host}:${proxy.port}`;
|
|
8
|
+
}
|
|
9
|
+
return new ProxyAgent({
|
|
10
|
+
uri,
|
|
11
|
+
requestTls: isDomorig ? { rejectUnauthorized: false } : undefined,
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
if (isDomorig) {
|
|
15
|
+
return new Agent({
|
|
16
|
+
connect: { rejectUnauthorized: false },
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
return undefined;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=proxy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../src/http/proxy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAG3C,MAAM,UAAU,WAAW,CACzB,QAAgB,EAChB,KAAmB;IAEnB,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IAElD,IAAI,KAAK,EAAE,IAAI,IAAI,KAAK,EAAE,IAAI,EAAE,CAAC;QAC/B,IAAI,GAAG,GAAG,UAAU,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QAC/C,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACrC,GAAG,GAAG,UAAU,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QACjF,CAAC;QAED,OAAO,IAAI,UAAU,CAAC;YACpB,GAAG;YACH,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS;SAClE,CAAC,CAAC;IACL,CAAC;IAED,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,IAAI,KAAK,CAAC;YACf,OAAO,EAAE,EAAE,kBAAkB,EAAE,KAAK,EAAE;SACvC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { createClient, type RyuuClient } from './client.js';
|
|
2
|
+
export { getHomeDir, getMostRecentLogin } from './util/home-dir.js';
|
|
3
|
+
export { getContentType, CONTENT_TYPE_MAP } from './util/content-types.js';
|
|
4
|
+
export { RyuuHttpError, RyuuAuthError, RyuuValidationError, } from './http/errors.js';
|
|
5
|
+
export type { Asset, DomoCard, DomoPage, DomoCardMetadata, CardProperties, Collection, SchemaDefinition, SchemaColumn, Context, DataPoint, DataField, Design, DesignVersion, DesignAggregate, DesignOwner, DesignSize, Environment, DocumentFilterCondition, DocumentLevelFilter, Instance, InstanceAndCards, Manifest, FunctionPackage, FunctionParameter, User, UserDetail, Workflow, WorkflowParameter, LoginData, DevToken, DomoSIDHeader, AuthHeader, RyuuClientConfig, ProxyConfig, DomoRequestError, } from './types/index.js';
|
|
6
|
+
export { CollectionOperation, DesignRequestOptions, DocumentFilterMethod, DocumentFilterEntity, DataType, } from './types/index.js';
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAG5D,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAG3E,OAAO,EACL,aAAa,EACb,aAAa,EACb,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAG1B,YAAY,EACV,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,gBAAgB,EAChB,cAAc,EACd,UAAU,EACV,gBAAgB,EAChB,YAAY,EACZ,OAAO,EACP,SAAS,EACT,SAAS,EACT,MAAM,EACN,aAAa,EACb,eAAe,EACf,WAAW,EACX,UAAU,EACV,WAAW,EACX,uBAAuB,EACvB,mBAAmB,EACnB,QAAQ,EACR,gBAAgB,EAChB,QAAQ,EACR,eAAe,EACf,iBAAiB,EACjB,IAAI,EACJ,UAAU,EACV,QAAQ,EACR,iBAAiB,EACjB,SAAS,EACT,QAAQ,EACR,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,WAAW,EACX,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,QAAQ,GACT,MAAM,kBAAkB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
// Client factory
|
|
2
|
+
export { createClient } from './client.js';
|
|
3
|
+
// Utilities
|
|
4
|
+
export { getHomeDir, getMostRecentLogin } from './util/home-dir.js';
|
|
5
|
+
export { getContentType, CONTENT_TYPE_MAP } from './util/content-types.js';
|
|
6
|
+
// Error classes
|
|
7
|
+
export { RyuuHttpError, RyuuAuthError, RyuuValidationError, } from './http/errors.js';
|
|
8
|
+
// Enums
|
|
9
|
+
export { CollectionOperation, DesignRequestOptions, DocumentFilterMethod, DocumentFilterEntity, DataType, } from './types/index.js';
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iBAAiB;AACjB,OAAO,EAAE,YAAY,EAAmB,MAAM,aAAa,CAAC;AAE5D,YAAY;AACZ,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3E,gBAAgB;AAChB,OAAO,EACL,aAAa,EACb,aAAa,EACb,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAyC1B,QAAQ;AACR,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,QAAQ,GACT,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"asset.d.ts","sourceRoot":"","sources":["../../src/types/asset.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"asset.js","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"asset.js","sourceRoot":"","sources":["../../src/types/asset.ts"],"names":[],"mappings":""}
|
|
@@ -16,3 +16,11 @@ export interface LoginData {
|
|
|
16
16
|
userType: string;
|
|
17
17
|
refreshToken: string;
|
|
18
18
|
}
|
|
19
|
+
export interface DevToken {
|
|
20
|
+
'X-Domo-Developer-Token': string;
|
|
21
|
+
}
|
|
22
|
+
export interface DomoSIDHeader {
|
|
23
|
+
'X-Domo-Authentication': string;
|
|
24
|
+
}
|
|
25
|
+
export type AuthHeader = DevToken | DomoSIDHeader;
|
|
26
|
+
//# sourceMappingURL=auth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/types/auth.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,KAAK,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,QAAQ;IACvB,wBAAwB,EAAE,MAAM,CAAC;CAClC;AAED,MAAM,WAAW,aAAa;IAC5B,uBAAuB,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/types/auth.ts"],"names":[],"mappings":""}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Context } from './context';
|
|
2
|
-
import { DesignSize } from './design';
|
|
1
|
+
import type { Context } from './context.js';
|
|
2
|
+
import type { DesignSize } from './design.js';
|
|
3
3
|
export interface DomoCard {
|
|
4
4
|
active: boolean;
|
|
5
5
|
allowTableDrill: boolean;
|
|
@@ -39,3 +39,4 @@ export interface CardProperties {
|
|
|
39
39
|
pageId?: number;
|
|
40
40
|
size?: DesignSize;
|
|
41
41
|
}
|
|
42
|
+
//# sourceMappingURL=card.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"card.d.ts","sourceRoot":"","sources":["../../src/types/card.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,OAAO,CAAC;IAChB,eAAe,EAAE,OAAO,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,gBAAiB,SAAQ,QAAQ;IAChD,WAAW,EAAE,EAAE,CAAC;IAChB,OAAO,EAAE;QACP,EAAE,EAAE,MAAM,CAAC;QACX,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,CAAC;IACF,KAAK,CAAC,EAAE;QACN,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,KAAK,EAAE,QAAQ,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,UAAU,CAAC;CACnB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"card.js","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"card.js","sourceRoot":"","sources":["../../src/types/card.ts"],"names":[],"mappings":""}
|