@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.
Files changed (52) hide show
  1. package/README.md +31 -0
  2. package/dist/__tests__/blueprints.types.test-d.d.ts +28 -0
  3. package/dist/__tests__/blueprints.types.test-d.js +11 -0
  4. package/dist/__tests__/blueprints.types.test-d.js.map +1 -0
  5. package/dist/administrator/events.d.ts +5 -0
  6. package/dist/administrator/events.js +8 -0
  7. package/dist/administrator/events.js.map +1 -1
  8. package/dist/administrator/workspaces.d.ts +8 -1
  9. package/dist/administrator/workspaces.js +7 -2
  10. package/dist/administrator/workspaces.js.map +1 -1
  11. package/dist/ai/agents.d.ts +56 -0
  12. package/dist/ai/agents.js +116 -0
  13. package/dist/ai/agents.js.map +1 -0
  14. package/dist/ai/index.d.ts +9 -3
  15. package/dist/ai/index.js +8 -1
  16. package/dist/ai/index.js.map +1 -1
  17. package/dist/ai/types.d.ts +61 -0
  18. package/dist/authentication.d.ts +64 -1
  19. package/dist/authentication.js +137 -0
  20. package/dist/authentication.js.map +1 -1
  21. package/dist/base-sdk.d.ts +3 -0
  22. package/dist/base-sdk.js +16 -2
  23. package/dist/base-sdk.js.map +1 -1
  24. package/dist/blueprints-entities.d.ts +26 -0
  25. package/dist/blueprints-entities.js +91 -5
  26. package/dist/blueprints-entities.js.map +1 -1
  27. package/dist/blueprints.d.ts +3 -0
  28. package/dist/blueprints.js.map +1 -1
  29. package/dist/index.d.ts +5 -0
  30. package/dist/index.js +10 -1
  31. package/dist/index.js.map +1 -1
  32. package/dist/workspaces.d.ts +16 -0
  33. package/dist/workspaces.js +40 -0
  34. package/dist/workspaces.js.map +1 -1
  35. package/package.json +2 -2
  36. package/src/__tests__/blueprints.types.test-d.ts +49 -0
  37. package/src/administrator/events.ts +6 -1
  38. package/src/administrator/workspaces.ts +10 -2
  39. package/src/ai/agents.ts +171 -0
  40. package/src/ai/index.ts +22 -4
  41. package/src/ai/types.ts +66 -0
  42. package/src/authentication.ts +181 -1
  43. package/src/base-sdk.ts +16 -2
  44. package/src/blueprints-entities.ts +113 -5
  45. package/src/blueprints.ts +9 -2
  46. package/src/index.ts +26 -1
  47. package/src/workspaces.ts +63 -0
  48. package/test/authentication-social.test.ts +48 -0
  49. package/test/base-sdk.test.ts +26 -1
  50. package/test/index.test.ts +2 -1
  51. package/test/qelos-sdk-refresh.test.ts +2 -1
  52. package/test/workspaces.test.ts +170 -0
@@ -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;AAgDjC,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,OAAO;IAEnD,aAAa,CAAS;IACtB,YAAY,CAAS;IACrB,SAAS,CAAS;IAElB,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED,YAAY,OAAwB;QAClC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,cAAc,EAAE;YACjD,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;YACpE,OAAO,OAAO,CAAC,WAAW,CAAC;SAC5B;QACD,IAAI,OAAO,CAAC,YAAY,EAAE;YACxB,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;YAC1C,OAAO,OAAO,CAAC,YAAY,CAAC;SAC7B;QACD,IAAI,OAAO,CAAC,QAAQ,EAAE;YACpB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC;SACnC;IACH,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,WAAyB;QACpC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE;YAC5C,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;SAClC,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE;YACX,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;SACnC;QACD,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAA8B,CAAA;QAE5D,OAAO;YACL,GAAG,IAAI;YACP,OAAO,EAAE;gBACP,YAAY,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,YAAY,CAAC;aAC7C;SACF,CAAA;IACH,CAAC;IAED,WAAW,CAAC,WAAyB;QACnC,OAAO,IAAI,CAAC,WAAW,CACrB,aAAa,EACb;YACE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;SAC5D,CAAC;aACD,IAAI,CAAC,IAAI,CAAC,EAAE;YACX,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;YACvC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;YAC/C,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAA;IACN,CAAC;IAED,MAAM,CAAC,WAA+B;QACpC,OAAO,IAAI,CAAC,WAAW,CACrB,aAAa,EACb;YACE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;SAClC,CAAC,CAAA;IACN,CAAC;IAED,WAAW,CAAC,WAA+B;QACzC,OAAO,IAAI,CAAC,WAAW,CACrB,aAAa,EACb;YACE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;SAC5D,CAAC;aACD,IAAI,CAAC,IAAI,CAAC,EAAE;YACX,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;YACvC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;YAC/C,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAA;IACN,CAAC;IAED,YAAY,CAAC,YAAqB;QAChC,YAAY,GAAG,YAAY,IAAI,IAAI,CAAC,aAAa,CAAC;QAClD,IAAI,CAAC,YAAY,EAAE;YACjB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;SACrD;QACD,OAAO,IAAI,CAAC,WAAW,CACrB,oBAAoB,EACpB;YACE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,aAAa,EAAE,SAAS,GAAG,YAAY;aACxC;SACF,CAAC;aACD,IAAI,CAAC,IAAI,CAAC,EAAE;YACX,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;YACvC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;YAC/C,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAA;IACN,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,QAAgB;QACnC,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,SAAS,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACnC,OAAO,IAAI,CAAC,WAAW,CAAQ,SAAS,CAAC,CAAC;IAC5C,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,WAAW,CAAc,oBAAoB,CAAC,CAAC;IAC7D,CAAC;IAED,cAAc,CAAC,IAAiE;QAC9E,OAAO,IAAI,CAAC,WAAW,CAAyC,oBAAoB,EAAE;YACpF,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC3B,CAAC,CAAC;IACL,CAAC;IAED,cAAc,CAAC,OAAe;QAC5B,OAAO,IAAI,CAAC,WAAW,CAAO,sBAAsB,OAAO,EAAE,EAAE;YAC7D,MAAM,EAAE,QAAQ;SACjB,CAAC,CAAC;IACL,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;IACxD,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC,WAAW,CAAQ,SAAS,CAAC,CAAA;IAC3C,CAAC;IAED,kBAAkB,CAAC,OAA+C;QAChE,OAAO,IAAI,CAAC,WAAW,CAAQ,SAAS,EAAE;YACxC,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;SAC9B,CAAC,CAAA;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"authentication.js","sourceRoot":"","sources":["../src/authentication.ts"],"names":[],"mappings":"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"}
@@ -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
@@ -1 +1 @@
1
- {"version":3,"file":"base-sdk.js","sourceRoot":"","sources":["../src/base-sdk.ts"],"names":[],"mappings":"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"}
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;IAClK,CAAC;IAED,OAAO,CAAC,KAAiD,EAAE,KAAoB;QAC7E,OAAO,IAAI,CAAC,WAAW,CAA+B,GAAG,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,YAAY,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IAClJ,CAAC;IAED,MAAM,CAAC,UAAkB,EAAE,KAAoB;QAC7C,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,aAAa,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;IACpJ,CAAC;IAED,MAAM,CAAC,UAAkB,EAAE,OAA0C,EAAE,KAAoB;QACzF,OAAO,IAAI,CAAC,WAAW,CACrB,GAAG,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,aAAa,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,EACtG;YACE,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;YAC7B,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;SACjB,CACF,CAAA;IACH,CAAC;IAED,MAAM,CAAC,MAAgC,EAAE,KAAoB;QAC3D,OAAO,IAAI,CAAC,WAAW,CAA2B,GAAG,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,YAAY,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE;YAC1I,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;YAC5B,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;SACjB,CAAC,CAAA;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"blueprints-entities.js","sourceRoot":"","sources":["../src/blueprints-entities.ts"],"names":[],"mappings":"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"}
@@ -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>>;
@@ -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;AAExD,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;IAED,UAAU,CAAU,YAAoB;QACtC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE;YACrC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,mBAAmB,CAAI,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC;SAC1F;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"}
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(['/api/token/refresh', '/api/signin', '/api/signup']);
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":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -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
  }
@@ -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
@@ -1 +1 @@
1
- {"version":3,"file":"workspaces.js","sourceRoot":"","sources":["../src/workspaces.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,YAAY,CAAC;AA0BjC,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,OAAO;IACvC,YAAY,GAAG,iBAAiB,CAAC;IAEzC,YAAY,OAAwB;QAClC,KAAK,CAAC,OAAO,CAAC,CAAA;IAChB,CAAC;IAED,YAAY,CAAC,WAAmB;QAC9B,OAAO,IAAI,CAAC,WAAW,CAAa,GAAG,IAAI,CAAC,YAAY,IAAI,WAAW,EAAE,CAAC,CAAA;IAC5E,CAAC;IAED,UAAU,CAAC,WAAmB;QAC5B,OAAO,IAAI,CAAC,WAAW,CAAqB,GAAG,IAAI,CAAC,YAAY,IAAI,WAAW,UAAU,CAAC,CAAA;IAC5F,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,WAAW,CAAe,IAAI,CAAC,YAAY,CAAC,CAAC;IAC3D,CAAC;IAED,MAAM,CAAC,WAAmB;QACxB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,YAAY,IAAI,WAAW,EAAE,EAAE,EAAC,MAAM,EAAE,QAAQ,EAAC,CAAC,CAAC;IACjF,CAAC;IAED,MAAM,CAAC,WAAmB,EAAE,OAA4B;QACtD,OAAO,IAAI,CAAC,WAAW,CACrB,GAAG,IAAI,CAAC,YAAY,IAAI,WAAW,EAAE,EACrC;YACE,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,EAAC,cAAc,EAAE,kBAAkB,EAAC;YAC7C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;SAC9B,CACF,CAAA;IACH,CAAC;IAED,MAAM,CAAC,SAAiD;QACtD,OAAO,IAAI,CAAC,WAAW,CAAa,IAAI,CAAC,YAAY,EAAE;YACrD,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAC,cAAc,EAAE,kBAAkB,EAAC;YAC7C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;SAChC,CAAC,CAAA;IACJ,CAAC;IAED,QAAQ,CAAC,WAAmB;QAC1B,OAAO,IAAI,CAAC,WAAW,CACrB,GAAG,IAAI,CAAC,YAAY,IAAI,WAAW,WAAW,EAC9C;YACE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAC,cAAc,EAAE,kBAAkB,EAAC;SAC9C,CACF,CAAA;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"workspaces.js","sourceRoot":"","sources":["../src/workspaces.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,YAAY,CAAC;AA6BjC,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,OAAO;IACvC,YAAY,GAAG,iBAAiB,CAAC;IAEzC,YAAY,OAAwB;QAClC,KAAK,CAAC,OAAO,CAAC,CAAA;IAChB,CAAC;IAED,YAAY,CAAC,WAAmB;QAC9B,OAAO,IAAI,CAAC,WAAW,CAAa,GAAG,IAAI,CAAC,YAAY,IAAI,WAAW,EAAE,CAAC,CAAA;IAC5E,CAAC;IAED,UAAU,CAAC,WAAmB;QAC5B,OAAO,IAAI,CAAC,WAAW,CAAqB,GAAG,IAAI,CAAC,YAAY,IAAI,WAAW,UAAU,CAAC,CAAA;IAC5F,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,WAAW,CAAe,IAAI,CAAC,YAAY,CAAC,CAAC;IAC3D,CAAC;IAED,MAAM,CAAC,WAAmB;QACxB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,YAAY,IAAI,WAAW,EAAE,EAAE,EAAC,MAAM,EAAE,QAAQ,EAAC,CAAC,CAAC;IACjF,CAAC;IAED,MAAM,CAAC,WAAmB,EAAE,OAA4B;QACtD,OAAO,IAAI,CAAC,WAAW,CACrB,GAAG,IAAI,CAAC,YAAY,IAAI,WAAW,EAAE,EACrC;YACE,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,EAAC,cAAc,EAAE,kBAAkB,EAAC;YAC7C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;SAC9B,CACF,CAAA;IACH,CAAC;IAED,MAAM,CAAC,SAAiD;QACtD,OAAO,IAAI,CAAC,WAAW,CAAa,IAAI,CAAC,YAAY,EAAE;YACrD,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAC,cAAc,EAAE,kBAAkB,EAAC;YAC7C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;SAChC,CAAC,CAAA;IACJ,CAAC;IAED,QAAQ,CAAC,WAAmB;QAC1B,OAAO,IAAI,CAAC,WAAW,CACrB,GAAG,IAAI,CAAC,YAAY,IAAI,WAAW,WAAW,EAC9C;YACE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAC,cAAc,EAAE,kBAAkB,EAAC;SAC9C,CACF,CAAA;IACH,CAAC;IAED,KAAK,CAAC,UAAU,CACd,WAAmB,EACnB,KAAa,EACb,KAAgB;QAEhB,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;QAChD,MAAM,WAAW,GAAG,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACnE,MAAM,OAAO,GAAc,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;QACnD,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC9C,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,UAAU,CAAC,CAAC;QAC5F,IAAI,KAAK,IAAI,CAAC,EAAE;YACd,OAAO,CAAC,KAAK,CAAC,GAAG,EAAC,GAAG,OAAO,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI,KAAK,EAAE,KAAK,EAAE,WAAW,EAAC,CAAC;SAChG;aAAM;YACL,OAAO,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,KAAK,EAAE,WAAW,EAAC,CAAC,CAAC;SAC3C;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,EAAC,OAAO,EAAC,CAAC,CAAC;IAC7C,CAAC;IAED,YAAY,CAAC,WAAmB,EAAE,MAAc;QAK9C,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,YAAY,IAAI,WAAW,YAAY,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC;QACzF,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,EAAC,MAAM,EAAE,QAAQ,EAAC,CAAC,CAAC;IACpD,CAAC;IAED,iBAAiB,CACf,WAAmB,EACnB,MAAc,EACd,KAAe;QAMf,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,YAAY,IAAI,WAAW,YAAY,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC;QACzF,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;YAC5B,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,EAAC,cAAc,EAAE,kBAAkB,EAAC;YAC7C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAC,KAAK,EAAC,CAAC;SAC9B,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,WAAmB;QACnC,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;QAChD,OAAO,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,WAAmB,EAAE,QAAgB;QACtD,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;QAChD,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC;QAC9B,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,KAAK,CAAC,CAAC;QACtE,IAAI,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE;YAClC,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;SACzC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,EAAC,OAAO,EAAC,CAAC,CAAC;IAC7C,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@qelos/sdk",
3
- "version": "3.11.10",
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": "^3.11.10"
105
+ "@qelos/global-types": "^4.0.0"
106
106
  },
107
107
  "devDependencies": {
108
108
  "tsx": "^4.21.0",