@qelos/sdk 3.11.10 → 4.0.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/README.md +31 -0
- package/dist/__tests__/blueprints.types.test-d.d.ts +28 -0
- package/dist/__tests__/blueprints.types.test-d.js +11 -0
- package/dist/__tests__/blueprints.types.test-d.js.map +1 -0
- package/dist/administrator/events.d.ts +5 -0
- package/dist/administrator/events.js +8 -0
- package/dist/administrator/events.js.map +1 -1
- package/dist/administrator/workspaces.d.ts +8 -1
- package/dist/administrator/workspaces.js +7 -2
- package/dist/administrator/workspaces.js.map +1 -1
- package/dist/ai/agents.d.ts +56 -0
- package/dist/ai/agents.js +116 -0
- package/dist/ai/agents.js.map +1 -0
- package/dist/ai/index.d.ts +9 -3
- package/dist/ai/index.js +8 -1
- package/dist/ai/index.js.map +1 -1
- package/dist/ai/types.d.ts +61 -0
- package/dist/authentication.d.ts +64 -1
- package/dist/authentication.js +137 -0
- package/dist/authentication.js.map +1 -1
- package/dist/base-sdk.d.ts +3 -0
- package/dist/base-sdk.js +16 -2
- package/dist/base-sdk.js.map +1 -1
- package/dist/blueprints-entities.d.ts +26 -0
- package/dist/blueprints-entities.js +91 -5
- package/dist/blueprints-entities.js.map +1 -1
- package/dist/blueprints.d.ts +3 -0
- package/dist/blueprints.js.map +1 -1
- package/dist/index.d.ts +5 -0
- package/dist/index.js +10 -1
- package/dist/index.js.map +1 -1
- package/dist/workspaces.d.ts +16 -0
- package/dist/workspaces.js +40 -0
- package/dist/workspaces.js.map +1 -1
- package/package.json +2 -2
- package/src/__tests__/blueprints.types.test-d.ts +49 -0
- package/src/administrator/events.ts +6 -1
- package/src/administrator/workspaces.ts +10 -2
- package/src/ai/agents.ts +171 -0
- package/src/ai/index.ts +22 -4
- package/src/ai/types.ts +66 -0
- package/src/authentication.ts +181 -1
- package/src/base-sdk.ts +16 -2
- package/src/blueprints-entities.ts +113 -5
- package/src/blueprints.ts +9 -2
- package/src/index.ts +26 -1
- package/src/workspaces.ts +63 -0
- package/test/authentication-social.test.ts +48 -0
- package/test/base-sdk.test.ts +26 -1
- package/test/index.test.ts +2 -1
- package/test/qelos-sdk-refresh.test.ts +2 -1
- package/test/workspaces.test.ts +170 -0
package/dist/authentication.js
CHANGED
|
@@ -1,4 +1,59 @@
|
|
|
1
1
|
import BaseSDK from './base-sdk';
|
|
2
|
+
function collectSetCookieHeaders(res) {
|
|
3
|
+
const h = res.headers;
|
|
4
|
+
if (typeof h.getSetCookie === 'function') {
|
|
5
|
+
const list = h.getSetCookie();
|
|
6
|
+
return list.length ? list : undefined;
|
|
7
|
+
}
|
|
8
|
+
const single = res.headers.get('set-cookie');
|
|
9
|
+
return single ? [single] : undefined;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Read the OAuth refresh token from a social callback request (query `rt`).
|
|
13
|
+
* Accepts a full URL, a {@link URL}, `URLSearchParams`, or a query object such
|
|
14
|
+
* as `req.query` from Next.js or Express.
|
|
15
|
+
*/
|
|
16
|
+
export function parseSocialCallbackRefreshToken(input) {
|
|
17
|
+
if (input instanceof URL) {
|
|
18
|
+
return input.searchParams.get('rt') ?? undefined;
|
|
19
|
+
}
|
|
20
|
+
if (typeof input === 'string') {
|
|
21
|
+
try {
|
|
22
|
+
const u = new URL(input, 'http://qelos.social-callback.invalid');
|
|
23
|
+
return u.searchParams.get('rt') ?? undefined;
|
|
24
|
+
}
|
|
25
|
+
catch {
|
|
26
|
+
return undefined;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
if (input instanceof URLSearchParams) {
|
|
30
|
+
return input.get('rt') ?? undefined;
|
|
31
|
+
}
|
|
32
|
+
const raw = input['rt'];
|
|
33
|
+
if (Array.isArray(raw)) {
|
|
34
|
+
return raw[0] && typeof raw[0] === 'string' ? raw[0] : undefined;
|
|
35
|
+
}
|
|
36
|
+
return typeof raw === 'string' ? raw : undefined;
|
|
37
|
+
}
|
|
38
|
+
/** Lists individual `Set-Cookie` values from an exchange result for writing to a response. */
|
|
39
|
+
export function getSocialAuthSetCookieParts(result) {
|
|
40
|
+
if (result.setCookieHeaders?.length) {
|
|
41
|
+
return result.setCookieHeaders;
|
|
42
|
+
}
|
|
43
|
+
const h = result.headers['set-cookie'];
|
|
44
|
+
return h ? [h] : [];
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Copies session cookies from {@link QlAuthentication.exchangeAuthCallback} /
|
|
48
|
+
* {@link QlAuthentication.socialCallback} onto an HTTP response (Express,
|
|
49
|
+
* Next.js Pages `NextApiResponse`, Node `ServerResponse`, etc.).
|
|
50
|
+
*/
|
|
51
|
+
export function applySocialAuthCookiesToServerResponse(res, result) {
|
|
52
|
+
const parts = getSocialAuthSetCookieParts(result);
|
|
53
|
+
if (!parts.length)
|
|
54
|
+
return;
|
|
55
|
+
res.setHeader('Set-Cookie', parts.length === 1 ? parts[0] : parts);
|
|
56
|
+
}
|
|
2
57
|
export default class QlAuthentication extends BaseSDK {
|
|
3
58
|
#refreshToken;
|
|
4
59
|
#accessToken;
|
|
@@ -88,6 +143,26 @@ export default class QlAuthentication extends BaseSDK {
|
|
|
88
143
|
return data;
|
|
89
144
|
});
|
|
90
145
|
}
|
|
146
|
+
async refreshCookieToken(cookieToken) {
|
|
147
|
+
const headers = {};
|
|
148
|
+
if (cookieToken) {
|
|
149
|
+
headers.authorization = 'Bearer ' + cookieToken;
|
|
150
|
+
}
|
|
151
|
+
const res = await this.callApi('/api/cookie/refresh', {
|
|
152
|
+
method: 'post',
|
|
153
|
+
headers,
|
|
154
|
+
});
|
|
155
|
+
if (!res.ok) {
|
|
156
|
+
throw new Error('failed to refresh cookie token');
|
|
157
|
+
}
|
|
158
|
+
const body = (await res.json());
|
|
159
|
+
return {
|
|
160
|
+
...body,
|
|
161
|
+
headers: {
|
|
162
|
+
'set-cookie': res.headers?.get('set-cookie'),
|
|
163
|
+
},
|
|
164
|
+
};
|
|
165
|
+
}
|
|
91
166
|
async apiTokenSignin(apiToken) {
|
|
92
167
|
this.#apiToken = apiToken;
|
|
93
168
|
this.qlOptions.apiToken = apiToken;
|
|
@@ -111,6 +186,68 @@ export default class QlAuthentication extends BaseSDK {
|
|
|
111
186
|
logout() {
|
|
112
187
|
return this.callApi('/api/logout', { method: 'post' });
|
|
113
188
|
}
|
|
189
|
+
getSocialLoginUrl(provider, options = {}) {
|
|
190
|
+
const params = {};
|
|
191
|
+
if (options.state)
|
|
192
|
+
params.state = options.state;
|
|
193
|
+
if (options.returnUrl)
|
|
194
|
+
params.returnUrl = options.returnUrl;
|
|
195
|
+
const qs = Object.keys(params).length ? `?${new URLSearchParams(params)}` : '';
|
|
196
|
+
return this.buildUrl(`/api/auth/${provider}${qs}`);
|
|
197
|
+
}
|
|
198
|
+
getSocialCallbackUrl(provider) {
|
|
199
|
+
return this.buildUrl(`/api/auth/${provider}/callback`);
|
|
200
|
+
}
|
|
201
|
+
startSocialLogin(provider, options) {
|
|
202
|
+
const location = globalThis.location;
|
|
203
|
+
if (!location) {
|
|
204
|
+
throw new Error('startSocialLogin requires a browser environment');
|
|
205
|
+
}
|
|
206
|
+
location.href = this.getSocialLoginUrl(provider, options);
|
|
207
|
+
}
|
|
208
|
+
async exchangeAuthCallback(refreshToken) {
|
|
209
|
+
if (!refreshToken) {
|
|
210
|
+
throw new Error('refresh token is required');
|
|
211
|
+
}
|
|
212
|
+
const res = await this.callApi(`/api/auth/callback?rt=${encodeURIComponent(refreshToken)}`, {
|
|
213
|
+
method: 'post',
|
|
214
|
+
cache: 'no-store',
|
|
215
|
+
});
|
|
216
|
+
if (!res.ok) {
|
|
217
|
+
let detail = '';
|
|
218
|
+
try {
|
|
219
|
+
detail = (await res.text()).slice(0, 512);
|
|
220
|
+
}
|
|
221
|
+
catch {
|
|
222
|
+
/* ignore */
|
|
223
|
+
}
|
|
224
|
+
throw new Error(`failed to exchange refresh token: HTTP ${res.status}${detail ? ` — ${detail}` : ''}`);
|
|
225
|
+
}
|
|
226
|
+
const body = (await res.json());
|
|
227
|
+
const cookieParts = collectSetCookieHeaders(res);
|
|
228
|
+
const legacyCookie = cookieParts?.[0] ?? res.headers?.get('set-cookie');
|
|
229
|
+
return {
|
|
230
|
+
...body,
|
|
231
|
+
headers: {
|
|
232
|
+
'set-cookie': legacyCookie ?? null,
|
|
233
|
+
},
|
|
234
|
+
...(cookieParts && cookieParts.length > 1
|
|
235
|
+
? { setCookieHeaders: cookieParts }
|
|
236
|
+
: {}),
|
|
237
|
+
};
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* Full social callback: read `rt` from the request URL or query and exchange
|
|
241
|
+
* it for a session. Use with integrator routes that receive the provider
|
|
242
|
+
* callback with `?rt=` (refresh token) after OAuth.
|
|
243
|
+
*/
|
|
244
|
+
async socialCallback(input) {
|
|
245
|
+
const refreshToken = parseSocialCallbackRefreshToken(input);
|
|
246
|
+
if (!refreshToken) {
|
|
247
|
+
throw new Error('missing rt query parameter');
|
|
248
|
+
}
|
|
249
|
+
return this.exchangeAuthCallback(refreshToken);
|
|
250
|
+
}
|
|
114
251
|
getLoggedInUser() {
|
|
115
252
|
return this.callJsonApi('/api/me');
|
|
116
253
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authentication.js","sourceRoot":"","sources":["../src/authentication.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"authentication.js","sourceRoot":"","sources":["../src/authentication.ts"],"names":[],"mappings":"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"}
|
package/dist/base-sdk.d.ts
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import { QelosSDKOptions } from './types';
|
|
2
|
+
/** Path segment of a relative URL, without query or hash — used for auth routing in extraHeaders. */
|
|
3
|
+
export declare function relativeUrlPath(relativeUrl: string): string;
|
|
2
4
|
export default class BaseSDK {
|
|
3
5
|
#private;
|
|
4
6
|
protected qlOptions: QelosSDKOptions;
|
|
5
7
|
constructor(qlOptions: QelosSDKOptions);
|
|
8
|
+
protected buildUrl(relativeUrl: string): string;
|
|
6
9
|
callApi(relativeUrl: string, data?: RequestInit): Promise<Response>;
|
|
7
10
|
private handleFailedRefreshToken;
|
|
8
11
|
private getContentType;
|
package/dist/base-sdk.js
CHANGED
|
@@ -1,3 +1,14 @@
|
|
|
1
|
+
/** Path segment of a relative URL, without query or hash — used for auth routing in extraHeaders. */
|
|
2
|
+
export function relativeUrlPath(relativeUrl) {
|
|
3
|
+
const q = relativeUrl.indexOf('?');
|
|
4
|
+
const h = relativeUrl.indexOf('#');
|
|
5
|
+
let end = relativeUrl.length;
|
|
6
|
+
if (q !== -1)
|
|
7
|
+
end = Math.min(end, q);
|
|
8
|
+
if (h !== -1)
|
|
9
|
+
end = Math.min(end, h);
|
|
10
|
+
return end === relativeUrl.length ? relativeUrl : relativeUrl.slice(0, end);
|
|
11
|
+
}
|
|
1
12
|
const ERRORS = {
|
|
2
13
|
EXTRA_HEADERS: 'could not get extra headers',
|
|
3
14
|
FAILED_REFRESH_TOKEN: 'could not handle failed refresh token',
|
|
@@ -12,12 +23,15 @@ export default class BaseSDK {
|
|
|
12
23
|
this.#appUrl = qlOptions.appUrl?.endsWith('/') ? qlOptions.appUrl.slice(0, -1) : qlOptions.appUrl;
|
|
13
24
|
this.#fetch = qlOptions.fetch || globalThis.fetch;
|
|
14
25
|
}
|
|
26
|
+
buildUrl(relativeUrl) {
|
|
27
|
+
return (this.#appUrl || '') + relativeUrl;
|
|
28
|
+
}
|
|
15
29
|
async callApi(relativeUrl, data) {
|
|
16
30
|
data = data || {};
|
|
17
31
|
data.headers = data.headers || {};
|
|
18
32
|
if (this.qlOptions.extraHeaders) {
|
|
19
33
|
try {
|
|
20
|
-
const extraHeaders = await this.qlOptions.extraHeaders(relativeUrl);
|
|
34
|
+
const extraHeaders = await this.qlOptions.extraHeaders(relativeUrlPath(relativeUrl));
|
|
21
35
|
Object.assign(data.headers, extraHeaders);
|
|
22
36
|
}
|
|
23
37
|
catch (e) {
|
|
@@ -69,7 +83,7 @@ export default class BaseSDK {
|
|
|
69
83
|
let headers = {};
|
|
70
84
|
if (this.qlOptions.extraHeaders) {
|
|
71
85
|
try {
|
|
72
|
-
headers = await this.qlOptions.extraHeaders(relativeUrl, true);
|
|
86
|
+
headers = await this.qlOptions.extraHeaders(relativeUrlPath(relativeUrl), true);
|
|
73
87
|
}
|
|
74
88
|
catch {
|
|
75
89
|
// Ignore error during refresh attempt
|
package/dist/base-sdk.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-sdk.js","sourceRoot":"","sources":["../src/base-sdk.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,GAAG;IACb,aAAa,EAAE,6BAA6B;IAC5C,oBAAoB,EAAE,uCAAuC;IAC7D,uBAAuB,EAAE,iCAAiC;CAC3D,CAAA;AAED,MAAM,CAAC,OAAO,OAAO,OAAO;IAIJ;IAHtB,OAAO,CAAS;IAChB,MAAM,CAAY;IAElB,YAAsB,SAA0B;QAA1B,cAAS,GAAT,SAAS,CAAiB;QAC9C,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC;QAClG,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,WAAmB,EAAE,IAAkB;QACnD,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAClB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;QAElC,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE;YAC/B,IAAI;gBACF,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"base-sdk.js","sourceRoot":"","sources":["../src/base-sdk.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,21 @@ export interface IBaseBlueprintEntity {
|
|
|
10
10
|
updated: Date;
|
|
11
11
|
metadata: any;
|
|
12
12
|
}
|
|
13
|
+
export type BlueprintEntityFilters = Record<string, any>;
|
|
14
|
+
export declare class QlBlueprintEntitiesQuery<T = any> {
|
|
15
|
+
#private;
|
|
16
|
+
private entities;
|
|
17
|
+
constructor(entities: QlBlueprintEntities<T>);
|
|
18
|
+
where(filters: BlueprintEntityFilters): this;
|
|
19
|
+
limit(value: number): this;
|
|
20
|
+
skip(value: number): this;
|
|
21
|
+
sort(value: string): this;
|
|
22
|
+
select(fields: string | string[]): this;
|
|
23
|
+
toQuery(): ICommonQueryFilters & BlueprintEntityFilters;
|
|
24
|
+
find(extra?: RequestExtra): Promise<(IBaseBlueprintEntity & T)[]>;
|
|
25
|
+
findOne(extra?: RequestExtra): Promise<(IBaseBlueprintEntity & T) | undefined>;
|
|
26
|
+
count(extra?: RequestExtra): Promise<number>;
|
|
27
|
+
}
|
|
13
28
|
export default class QlBlueprintEntities<T = any> extends BaseSDK {
|
|
14
29
|
private options;
|
|
15
30
|
private blueprintKey;
|
|
@@ -20,4 +35,15 @@ export default class QlBlueprintEntities<T = any> extends BaseSDK {
|
|
|
20
35
|
remove(identifier: string, extra?: RequestExtra): Promise<any>;
|
|
21
36
|
update(identifier: string, changes: Partial<T & IBaseBlueprintEntity>, extra?: RequestExtra): Promise<IBaseBlueprintEntity & T>;
|
|
22
37
|
create(entity: T & IBaseBlueprintEntity, extra?: RequestExtra): Promise<IBaseBlueprintEntity & T>;
|
|
38
|
+
query(): QlBlueprintEntitiesQuery<T>;
|
|
39
|
+
where(filters: BlueprintEntityFilters): QlBlueprintEntitiesQuery<T>;
|
|
40
|
+
limit(value: number): QlBlueprintEntitiesQuery<T>;
|
|
41
|
+
skip(value: number): QlBlueprintEntitiesQuery<T>;
|
|
42
|
+
sort(value: string): QlBlueprintEntitiesQuery<T>;
|
|
43
|
+
select(fields: string | string[]): QlBlueprintEntitiesQuery<T>;
|
|
44
|
+
find(extra?: RequestExtra): Promise<(IBaseBlueprintEntity & T)[]>;
|
|
45
|
+
findOne(identifier: string, extra?: RequestExtra): Promise<IBaseBlueprintEntity & T>;
|
|
46
|
+
count(query?: BlueprintEntityFilters, extra?: RequestExtra): Promise<number>;
|
|
47
|
+
updateOne(identifier: string, changes: Partial<T & IBaseBlueprintEntity>, extra?: RequestExtra): Promise<IBaseBlueprintEntity & T>;
|
|
48
|
+
deleteOne(identifier: string, extra?: RequestExtra): Promise<any>;
|
|
23
49
|
}
|
|
@@ -1,4 +1,55 @@
|
|
|
1
1
|
import BaseSDK from './base-sdk';
|
|
2
|
+
// Blueprint entity responses default to the flat shape. Pass $flat: false (or 0)
|
|
3
|
+
// to opt back into the wrapped shape; this also keeps SDK behavior consistent
|
|
4
|
+
// against older servers that defaulted to wrapped.
|
|
5
|
+
function withFlatDefault(query) {
|
|
6
|
+
if (query && '$flat' in query) {
|
|
7
|
+
return query;
|
|
8
|
+
}
|
|
9
|
+
return { ...(query || {}), $flat: true };
|
|
10
|
+
}
|
|
11
|
+
export class QlBlueprintEntitiesQuery {
|
|
12
|
+
entities;
|
|
13
|
+
#filters = {};
|
|
14
|
+
#options = {};
|
|
15
|
+
constructor(entities) {
|
|
16
|
+
this.entities = entities;
|
|
17
|
+
}
|
|
18
|
+
where(filters) {
|
|
19
|
+
Object.assign(this.#filters, filters);
|
|
20
|
+
return this;
|
|
21
|
+
}
|
|
22
|
+
limit(value) {
|
|
23
|
+
this.#options.$limit = value;
|
|
24
|
+
return this;
|
|
25
|
+
}
|
|
26
|
+
skip(value) {
|
|
27
|
+
this.#options.$skip = value;
|
|
28
|
+
return this;
|
|
29
|
+
}
|
|
30
|
+
sort(value) {
|
|
31
|
+
this.#options.$sort = value;
|
|
32
|
+
return this;
|
|
33
|
+
}
|
|
34
|
+
select(fields) {
|
|
35
|
+
this.#options.$select = Array.isArray(fields) ? fields.join(',') : fields;
|
|
36
|
+
return this;
|
|
37
|
+
}
|
|
38
|
+
toQuery() {
|
|
39
|
+
return { ...this.#filters, ...this.#options };
|
|
40
|
+
}
|
|
41
|
+
find(extra) {
|
|
42
|
+
return this.entities.getList(this.toQuery(), extra);
|
|
43
|
+
}
|
|
44
|
+
findOne(extra) {
|
|
45
|
+
return this.entities
|
|
46
|
+
.getList({ ...this.toQuery(), $limit: 1 }, extra)
|
|
47
|
+
.then((results) => results?.[0]);
|
|
48
|
+
}
|
|
49
|
+
count(extra) {
|
|
50
|
+
return this.entities.count(this.toQuery(), extra);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
2
53
|
export default class QlBlueprintEntities extends BaseSDK {
|
|
3
54
|
options;
|
|
4
55
|
blueprintKey;
|
|
@@ -9,16 +60,16 @@ export default class QlBlueprintEntities extends BaseSDK {
|
|
|
9
60
|
this.blueprintKey = blueprintKey;
|
|
10
61
|
}
|
|
11
62
|
getEntity(identifier, extra) {
|
|
12
|
-
return this.callJsonApi(`${this.relativePath}/${this.blueprintKey}/entities/${identifier}${this.getQueryParams(extra?.query)}`, extra);
|
|
63
|
+
return this.callJsonApi(`${this.relativePath}/${this.blueprintKey}/entities/${identifier}${this.getQueryParams(withFlatDefault(extra?.query))}`, extra);
|
|
13
64
|
}
|
|
14
65
|
getList(query, extra) {
|
|
15
|
-
return this.callJsonApi(`${this.relativePath}/${this.blueprintKey}/entities${this.getQueryParams(query)}`, extra);
|
|
66
|
+
return this.callJsonApi(`${this.relativePath}/${this.blueprintKey}/entities${this.getQueryParams(withFlatDefault(query))}`, extra);
|
|
16
67
|
}
|
|
17
68
|
remove(identifier, extra) {
|
|
18
|
-
return this.callApi(`${this.relativePath}/${this.blueprintKey}/entities/${identifier}${this.getQueryParams(extra?.query)}`, { method: 'delete' });
|
|
69
|
+
return this.callApi(`${this.relativePath}/${this.blueprintKey}/entities/${identifier}${this.getQueryParams(withFlatDefault(extra?.query))}`, { method: 'delete' });
|
|
19
70
|
}
|
|
20
71
|
update(identifier, changes, extra) {
|
|
21
|
-
return this.callJsonApi(`${this.relativePath}/${this.blueprintKey}/entities/${identifier}${this.getQueryParams(extra?.query)}`, {
|
|
72
|
+
return this.callJsonApi(`${this.relativePath}/${this.blueprintKey}/entities/${identifier}${this.getQueryParams(withFlatDefault(extra?.query))}`, {
|
|
22
73
|
method: 'put',
|
|
23
74
|
headers: { 'content-type': 'application/json' },
|
|
24
75
|
body: JSON.stringify(changes),
|
|
@@ -26,12 +77,47 @@ export default class QlBlueprintEntities extends BaseSDK {
|
|
|
26
77
|
});
|
|
27
78
|
}
|
|
28
79
|
create(entity, extra) {
|
|
29
|
-
return this.callJsonApi(`${this.relativePath}/${this.blueprintKey}/entities${this.getQueryParams(extra?.query)}`, {
|
|
80
|
+
return this.callJsonApi(`${this.relativePath}/${this.blueprintKey}/entities${this.getQueryParams(withFlatDefault(extra?.query))}`, {
|
|
30
81
|
method: 'post',
|
|
31
82
|
headers: { 'content-type': 'application/json' },
|
|
32
83
|
body: JSON.stringify(entity),
|
|
33
84
|
...(extra || {}),
|
|
34
85
|
});
|
|
35
86
|
}
|
|
87
|
+
query() {
|
|
88
|
+
return new QlBlueprintEntitiesQuery(this);
|
|
89
|
+
}
|
|
90
|
+
where(filters) {
|
|
91
|
+
return this.query().where(filters);
|
|
92
|
+
}
|
|
93
|
+
limit(value) {
|
|
94
|
+
return this.query().limit(value);
|
|
95
|
+
}
|
|
96
|
+
skip(value) {
|
|
97
|
+
return this.query().skip(value);
|
|
98
|
+
}
|
|
99
|
+
sort(value) {
|
|
100
|
+
return this.query().sort(value);
|
|
101
|
+
}
|
|
102
|
+
select(fields) {
|
|
103
|
+
return this.query().select(fields);
|
|
104
|
+
}
|
|
105
|
+
find(extra) {
|
|
106
|
+
return this.getList(undefined, extra);
|
|
107
|
+
}
|
|
108
|
+
findOne(identifier, extra) {
|
|
109
|
+
return this.getEntity(identifier, extra);
|
|
110
|
+
}
|
|
111
|
+
count(query, extra) {
|
|
112
|
+
return this
|
|
113
|
+
.callJsonApi(`${this.relativePath}/${this.blueprintKey}/charts/count${this.getQueryParams(query)}`, extra)
|
|
114
|
+
.then((res) => res?.count ?? 0);
|
|
115
|
+
}
|
|
116
|
+
updateOne(identifier, changes, extra) {
|
|
117
|
+
return this.update(identifier, changes, extra);
|
|
118
|
+
}
|
|
119
|
+
deleteOne(identifier, extra) {
|
|
120
|
+
return this.remove(identifier, extra);
|
|
121
|
+
}
|
|
36
122
|
}
|
|
37
123
|
//# sourceMappingURL=blueprints-entities.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blueprints-entities.js","sourceRoot":"","sources":["../src/blueprints-entities.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,YAAY,CAAC;AAajC,MAAM,CAAC,OAAO,OAAO,mBAA6B,SAAQ,OAAO;IAG3C;IAAkC;IAF9C,YAAY,GAAG,iBAAiB,CAAC;IAEzC,YAAoB,OAAwB,EAAU,YAAoB;QACxE,KAAK,CAAC,OAAO,CAAC,CAAA;QADI,YAAO,GAAP,OAAO,CAAiB;QAAU,iBAAY,GAAZ,YAAY,CAAQ;IAE1E,CAAC;IAED,SAAS,CAAC,UAAkB,EAAE,KAAoB;QAChD,OAAO,IAAI,CAAC,WAAW,CAA2B,GAAG,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,aAAa,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"blueprints-entities.js","sourceRoot":"","sources":["../src/blueprints-entities.ts"],"names":[],"mappings":"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"}
|
package/dist/blueprints.d.ts
CHANGED
|
@@ -2,6 +2,8 @@ import { QelosSDKOptions } from './types';
|
|
|
2
2
|
import BaseSDK from './base-sdk';
|
|
3
3
|
import type { IBlueprint } from '@qelos/global-types';
|
|
4
4
|
import QlBlueprintEntities from './blueprints-entities';
|
|
5
|
+
export interface BlueprintEntitiesRegistry {
|
|
6
|
+
}
|
|
5
7
|
export default class QlBlueprints extends BaseSDK {
|
|
6
8
|
#private;
|
|
7
9
|
private options;
|
|
@@ -9,6 +11,7 @@ export default class QlBlueprints extends BaseSDK {
|
|
|
9
11
|
constructor(options: QelosSDKOptions);
|
|
10
12
|
getBlueprint(key: string): Promise<IBlueprint>;
|
|
11
13
|
getList(): Promise<IBlueprint[]>;
|
|
14
|
+
entitiesOf<K extends keyof BlueprintEntitiesRegistry>(blueprintKey: K): QlBlueprintEntities<BlueprintEntitiesRegistry[K]>;
|
|
12
15
|
entitiesOf<T = any>(blueprintKey: string): QlBlueprintEntities<T>;
|
|
13
16
|
getChart(blueprintKey: string, chartType: string, query?: Record<string, any>): Promise<Record<string, any>>;
|
|
14
17
|
getPieChart(blueprintKey: string, query?: Record<string, any>): Promise<Record<string, any>>;
|
package/dist/blueprints.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blueprints.js","sourceRoot":"","sources":["../src/blueprints.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,YAAY,CAAC;AAEjC,OAAO,mBAAmB,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"blueprints.js","sourceRoot":"","sources":["../src/blueprints.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,YAAY,CAAC;AAEjC,OAAO,mBAAmB,MAAM,uBAAuB,CAAC;AAOxD,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,OAAO;IAK3B;IAJZ,YAAY,GAAG,iBAAiB,CAAC;IAEzC,SAAS,GAAG,IAAI,GAAG,EAA+B,CAAC;IAEnD,YAAoB,OAAwB;QAC1C,KAAK,CAAC,OAAO,CAAC,CAAA;QADI,YAAO,GAAP,OAAO,CAAiB;IAE5C,CAAC;IAED,YAAY,CAAC,GAAW;QACtB,OAAO,IAAI,CAAC,WAAW,CAAa,GAAG,IAAI,CAAC,YAAY,IAAI,GAAG,EAAE,CAAC,CAAA;IACpE,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,WAAW,CAAe,IAAI,CAAC,YAAY,CAAC,CAAC;IAC3D,CAAC;IAID,UAAU,CAAC,YAAoB;QAC7B,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE;YACrC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,mBAAmB,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC;SACvF;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAC1C,CAAC;IAED,QAAQ,CAAC,YAAoB,EAAE,SAAiB,EAAE,KAA2B;QAC3E,MAAM,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC,WAAW,CAAsB,GAAG,IAAI,CAAC,YAAY,IAAI,YAAY,WAAW,SAAS,GAAG,EAAE,EAAE,CAAC,CAAC;IAChH,CAAC;IAED,WAAW,CAAC,YAAoB,EAAE,KAA2B;QAC3D,MAAM,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC,WAAW,CAAsB,GAAG,IAAI,CAAC,YAAY,IAAI,YAAY,cAAc,EAAE,EAAE,CAAC,CAAC;IACvG,CAAC;IAED,QAAQ,CAAC,YAAoB,EAAE,KAA2B;QACxD,MAAM,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC,WAAW,CAAoB,GAAG,IAAI,CAAC,YAAY,IAAI,YAAY,gBAAgB,EAAE,EAAE,CAAC,CAAC;IACvG,CAAC;IAED,MAAM,CAAC,YAAoB,EAAE,WAAmB,EAAE,eAAwB,EAAE,KAA2B;QACrG,MAAM,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,EAAE,GAAG,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,CAAC,eAAe,IAAI,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC,EAAE,CAAC,CAAC;QACrH,OAAO,IAAI,CAAC,WAAW,CAA+D,GAAG,IAAI,CAAC,YAAY,IAAI,YAAY,cAAc,EAAE,EAAE,CAAC,CAAC;IAChJ,CAAC;CACF"}
|
package/dist/index.d.ts
CHANGED
|
@@ -6,9 +6,13 @@ import QlAuthentication from './authentication';
|
|
|
6
6
|
import QlWorkspaces from './workspaces';
|
|
7
7
|
import QlInvites from './invites';
|
|
8
8
|
import QlBlueprints from './blueprints';
|
|
9
|
+
import QlBlueprintEntities from './blueprints-entities';
|
|
9
10
|
import QlAI from './ai';
|
|
10
11
|
import QlLambdas from './lambdas';
|
|
11
12
|
import QlPayments from './payments';
|
|
13
|
+
export type { SocialCallbackInput, SocialAuthCallbackPayload, SocialProvider, SocialLoginOptions, } from './authentication';
|
|
14
|
+
export type { BlueprintEntitiesRegistry } from './blueprints';
|
|
15
|
+
export { parseSocialCallbackRefreshToken, getSocialAuthSetCookieParts, applySocialAuthCookiesToServerResponse, } from './authentication';
|
|
12
16
|
export default class QelosSDK extends BaseSDK {
|
|
13
17
|
#private;
|
|
14
18
|
private options;
|
|
@@ -22,6 +26,7 @@ export default class QelosSDK extends BaseSDK {
|
|
|
22
26
|
lambdas: QlLambdas;
|
|
23
27
|
payments: QlPayments;
|
|
24
28
|
constructor(options: QelosSDKOptions);
|
|
29
|
+
entities<T = any>(blueprintKey: string): QlBlueprintEntities<T>;
|
|
25
30
|
setCustomHeader(key: string, value: string): void;
|
|
26
31
|
removeCustomHeader(key: string): void;
|
|
27
32
|
}
|
package/dist/index.js
CHANGED
|
@@ -8,7 +8,13 @@ import QlBlueprints from './blueprints';
|
|
|
8
8
|
import QlAI from './ai';
|
|
9
9
|
import QlLambdas from './lambdas';
|
|
10
10
|
import QlPayments from './payments';
|
|
11
|
-
const noExtraHeadersUrls = new Set([
|
|
11
|
+
const noExtraHeadersUrls = new Set([
|
|
12
|
+
'/api/token/refresh',
|
|
13
|
+
'/api/signin',
|
|
14
|
+
'/api/signup',
|
|
15
|
+
'/api/auth/callback',
|
|
16
|
+
]);
|
|
17
|
+
export { parseSocialCallbackRefreshToken, getSocialAuthSetCookieParts, applySocialAuthCookiesToServerResponse, } from './authentication';
|
|
12
18
|
export default class QelosSDK extends BaseSDK {
|
|
13
19
|
options;
|
|
14
20
|
#customHeaders = {};
|
|
@@ -57,6 +63,9 @@ export default class QelosSDK extends BaseSDK {
|
|
|
57
63
|
};
|
|
58
64
|
}
|
|
59
65
|
}
|
|
66
|
+
entities(blueprintKey) {
|
|
67
|
+
return this.blueprints.entitiesOf(blueprintKey);
|
|
68
|
+
}
|
|
60
69
|
setCustomHeader(key, value) {
|
|
61
70
|
this.#customHeaders[key] = value;
|
|
62
71
|
}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,YAAY,CAAC;AACjC,OAAO,mBAAmB,MAAM,kBAAkB,CAAC;AACnD,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,gBAAgB,MAAM,kBAAkB,CAAC;AAChD,OAAO,YAAY,MAAM,cAAc,CAAC;AACxC,OAAO,SAAS,MAAM,WAAW,CAAC;AAClC,OAAO,YAAY,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/workspaces.d.ts
CHANGED
|
@@ -6,8 +6,11 @@ export interface IWorkspaceMember {
|
|
|
6
6
|
created?: string | Date;
|
|
7
7
|
}
|
|
8
8
|
export interface IInvite {
|
|
9
|
+
_id?: string;
|
|
9
10
|
name?: string;
|
|
10
11
|
email: string;
|
|
12
|
+
phone?: string;
|
|
13
|
+
roles?: string[];
|
|
11
14
|
created?: string | Date;
|
|
12
15
|
}
|
|
13
16
|
export interface IWorkspace {
|
|
@@ -31,4 +34,17 @@ export default class QlWorkspaces extends BaseSDK {
|
|
|
31
34
|
name: string;
|
|
32
35
|
}): Promise<IWorkspace>;
|
|
33
36
|
activate(workspaceId: string): Promise<IWorkspace>;
|
|
37
|
+
inviteUser(workspaceId: string, email: string, roles?: string[]): Promise<IWorkspace>;
|
|
38
|
+
removeMember(workspaceId: string, userId: string): Promise<{
|
|
39
|
+
message: string;
|
|
40
|
+
removedMemberId?: string;
|
|
41
|
+
userId?: string;
|
|
42
|
+
}>;
|
|
43
|
+
updateMemberRoles(workspaceId: string, userId: string, roles: string[]): Promise<{
|
|
44
|
+
message: string;
|
|
45
|
+
updatedMember?: IWorkspaceMember;
|
|
46
|
+
workspaceId?: string;
|
|
47
|
+
}>;
|
|
48
|
+
listInvites(workspaceId: string): Promise<IInvite[]>;
|
|
49
|
+
revokeInvite(workspaceId: string, inviteId: string): Promise<IWorkspace>;
|
|
34
50
|
}
|
package/dist/workspaces.js
CHANGED
|
@@ -36,5 +36,45 @@ export default class QlWorkspaces extends BaseSDK {
|
|
|
36
36
|
headers: { 'content-type': 'application/json' },
|
|
37
37
|
});
|
|
38
38
|
}
|
|
39
|
+
async inviteUser(workspaceId, email, roles) {
|
|
40
|
+
const ws = await this.getWorkspace(workspaceId);
|
|
41
|
+
const inviteRoles = roles && roles.length > 0 ? roles : ['member'];
|
|
42
|
+
const invites = [...(ws.invites || [])];
|
|
43
|
+
const normalized = email.trim().toLowerCase();
|
|
44
|
+
const index = invites.findIndex((i) => (i.email || '').trim().toLowerCase() === normalized);
|
|
45
|
+
if (index >= 0) {
|
|
46
|
+
invites[index] = { ...invites[index], email: invites[index].email || email, roles: inviteRoles };
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
invites.push({ email, roles: inviteRoles });
|
|
50
|
+
}
|
|
51
|
+
return this.update(workspaceId, { invites });
|
|
52
|
+
}
|
|
53
|
+
removeMember(workspaceId, userId) {
|
|
54
|
+
const path = `${this.relativePath}/${workspaceId}/members/${encodeURIComponent(userId)}`;
|
|
55
|
+
return this.callJsonApi(path, { method: 'delete' });
|
|
56
|
+
}
|
|
57
|
+
updateMemberRoles(workspaceId, userId, roles) {
|
|
58
|
+
const path = `${this.relativePath}/${workspaceId}/members/${encodeURIComponent(userId)}`;
|
|
59
|
+
return this.callJsonApi(path, {
|
|
60
|
+
method: 'put',
|
|
61
|
+
headers: { 'content-type': 'application/json' },
|
|
62
|
+
body: JSON.stringify({ roles }),
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
async listInvites(workspaceId) {
|
|
66
|
+
const ws = await this.getWorkspace(workspaceId);
|
|
67
|
+
return ws.invites ?? [];
|
|
68
|
+
}
|
|
69
|
+
async revokeInvite(workspaceId, inviteId) {
|
|
70
|
+
const ws = await this.getWorkspace(workspaceId);
|
|
71
|
+
const prev = ws.invites || [];
|
|
72
|
+
const idStr = String(inviteId);
|
|
73
|
+
const invites = prev.filter((inv) => String(inv._id ?? '') !== idStr);
|
|
74
|
+
if (invites.length === prev.length) {
|
|
75
|
+
throw new Error('Invitation not found');
|
|
76
|
+
}
|
|
77
|
+
return this.update(workspaceId, { invites });
|
|
78
|
+
}
|
|
39
79
|
}
|
|
40
80
|
//# sourceMappingURL=workspaces.js.map
|
package/dist/workspaces.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspaces.js","sourceRoot":"","sources":["../src/workspaces.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"workspaces.js","sourceRoot":"","sources":["../src/workspaces.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@qelos/sdk",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.0.0",
|
|
4
4
|
"description": "SDK for Qelos API",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -102,7 +102,7 @@
|
|
|
102
102
|
"access": "public"
|
|
103
103
|
},
|
|
104
104
|
"dependencies": {
|
|
105
|
-
"@qelos/global-types": "^
|
|
105
|
+
"@qelos/global-types": "^4.0.0"
|
|
106
106
|
},
|
|
107
107
|
"devDependencies": {
|
|
108
108
|
"tsx": "^4.21.0",
|