@truenorth-it/dataverse-client 1.0.8 → 1.0.9
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 +59 -6
- package/package.json +11 -24
- package/sdk/dist/client.d.ts +29 -0
- package/sdk/dist/client.d.ts.map +1 -1
- package/sdk/dist/client.js +36 -2
- package/sdk/dist/client.js.map +1 -1
- package/sdk/dist/types.d.ts +9 -3
- package/sdk/dist/types.d.ts.map +1 -1
package/README.md
CHANGED
|
@@ -20,7 +20,7 @@ The SDK works out of the box without any type generation. Response data is `Reco
|
|
|
20
20
|
import { createClient } from "@truenorth-it/dataverse-client";
|
|
21
21
|
|
|
22
22
|
const client = createClient({
|
|
23
|
-
baseUrl: "https://
|
|
23
|
+
baseUrl: "https://api.dataverse-contact.tnapps.co.uk",
|
|
24
24
|
scope: "default", // scope segment in API URLs (e.g. /api/v2/default/me/case)
|
|
25
25
|
getToken: () => getAccessTokenSilently(), // your Auth0 token provider
|
|
26
26
|
});
|
|
@@ -72,7 +72,7 @@ const contacts = await client.me.lookup<Contact>("contact", { search: "jane" });
|
|
|
72
72
|
For full TypeScript autocomplete and type safety, generate interfaces from your own API deployment:
|
|
73
73
|
|
|
74
74
|
```bash
|
|
75
|
-
npx dataverse-client generate --url https://
|
|
75
|
+
npx dataverse-client generate --url https://api.dataverse-contact.tnapps.co.uk
|
|
76
76
|
```
|
|
77
77
|
|
|
78
78
|
This fetches the schema and choice values from your API (public endpoints, no auth required) and creates `dataverse-tables.generated.ts` with:
|
|
@@ -96,7 +96,7 @@ import { createClient } from "@truenorth-it/dataverse-client";
|
|
|
96
96
|
import type { Case, Contact } from "./dataverse-tables.generated";
|
|
97
97
|
|
|
98
98
|
const client = createClient({
|
|
99
|
-
baseUrl: "https://
|
|
99
|
+
baseUrl: "https://api.dataverse-contact.tnapps.co.uk",
|
|
100
100
|
scope: "default",
|
|
101
101
|
getToken: () => getAccessTokenSilently(),
|
|
102
102
|
});
|
|
@@ -166,7 +166,7 @@ The codegen function is also exported for use in custom build scripts:
|
|
|
166
166
|
```typescript
|
|
167
167
|
import { generateTableTypes } from "@truenorth-it/dataverse-client";
|
|
168
168
|
|
|
169
|
-
const response = await fetch("https://
|
|
169
|
+
const response = await fetch("https://api.dataverse-contact.tnapps.co.uk/api/v2/default/schema");
|
|
170
170
|
const schema = await response.json();
|
|
171
171
|
const tsSource = generateTableTypes(schema);
|
|
172
172
|
// Write tsSource to a file, pipe it, etc.
|
|
@@ -228,7 +228,7 @@ const result = await client.me.list("case", {
|
|
|
228
228
|
});
|
|
229
229
|
|
|
230
230
|
// result.data — Record<string, unknown>[] (or Case[] if you pass a generic)
|
|
231
|
-
// result.page — { top, skip, next }
|
|
231
|
+
// result.page — { top, skip, next } — use fetchPage(page.next) for subsequent pages
|
|
232
232
|
|
|
233
233
|
for (const c of result.data) {
|
|
234
234
|
console.log(c.ticketnumber, c.title);
|
|
@@ -263,6 +263,59 @@ for (const activity of allActivities.data) {
|
|
|
263
263
|
}
|
|
264
264
|
```
|
|
265
265
|
|
|
266
|
+
### Paging through results
|
|
267
|
+
|
|
268
|
+
The API uses **cursor-based paging** powered by Dataverse's `$skiptoken`. Each list response includes a `page` object:
|
|
269
|
+
|
|
270
|
+
```typescript
|
|
271
|
+
{
|
|
272
|
+
data: [...], // records for this page
|
|
273
|
+
page: {
|
|
274
|
+
top: 25, // page size
|
|
275
|
+
skip: 0, // offset of this page
|
|
276
|
+
next: "/api/v2/..." // full URL for next page (null on last page)
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
> **Important:** The `page.next` URL contains both `skip` and `skiptoken` (Dataverse's opaque paging cookie). Always use `page.next` to advance — don't manually increment `skip`, as the skiptoken is required for correct cursor positioning.
|
|
282
|
+
|
|
283
|
+
#### Fetch next page
|
|
284
|
+
|
|
285
|
+
Use `fetchPage()` to follow a `page.next` URL:
|
|
286
|
+
|
|
287
|
+
```typescript
|
|
288
|
+
let page = await client.me.list<Case>("case", { top: 25 });
|
|
289
|
+
console.log(`Page 1: ${page.data.length} records`);
|
|
290
|
+
|
|
291
|
+
while (page.page.next) {
|
|
292
|
+
page = await client.me.fetchPage<Case>(page.page.next);
|
|
293
|
+
console.log(`Next page: ${page.data.length} records (offset ${page.page.skip})`);
|
|
294
|
+
}
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
#### Iterate all pages
|
|
298
|
+
|
|
299
|
+
Use `eachPage()` for a clean async iterator over every page:
|
|
300
|
+
|
|
301
|
+
```typescript
|
|
302
|
+
for await (const page of client.me.eachPage<Case>("case", { top: 50 })) {
|
|
303
|
+
for (const record of page.data) {
|
|
304
|
+
console.log(record.ticketnumber, record.title);
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
```
|
|
308
|
+
|
|
309
|
+
#### Collect all records
|
|
310
|
+
|
|
311
|
+
```typescript
|
|
312
|
+
const allCases: Case[] = [];
|
|
313
|
+
for await (const page of client.all.eachPage<Case>("case", { top: 100 })) {
|
|
314
|
+
allCases.push(...page.data);
|
|
315
|
+
}
|
|
316
|
+
console.log(`Total: ${allCases.length} cases`);
|
|
317
|
+
```
|
|
318
|
+
|
|
266
319
|
### Get a single record
|
|
267
320
|
|
|
268
321
|
```typescript
|
|
@@ -380,7 +433,7 @@ Used by `list()`:
|
|
|
380
433
|
|--------|------|-------------|
|
|
381
434
|
| `select` | `string[]` | Fields to return |
|
|
382
435
|
| `top` | `number` | Page size (1-100) |
|
|
383
|
-
| `skip` | `number` |
|
|
436
|
+
| `skip` | `number` | Initial offset (rarely needed). For paging through results, always use `fetchPage(page.next)` or `eachPage()` instead — Dataverse requires the `$skiptoken` cursor from `page.next`, not just a skip offset. |
|
|
384
437
|
| `orderBy` | `string` | Sort field and direction, e.g. `"createdon:desc"` |
|
|
385
438
|
| `filter` | `string \| string[]` | OData-style filter expressions |
|
|
386
439
|
| `filterLogic` | `"and" \| "or"` | How to combine multiple filters (default: `"and"`) |
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@truenorth-it/dataverse-client",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.9",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./sdk/dist/index.js",
|
|
6
6
|
"types": "./sdk/dist/index.d.ts",
|
|
@@ -18,11 +18,8 @@
|
|
|
18
18
|
],
|
|
19
19
|
"scripts": {
|
|
20
20
|
"build:sdk": "tsc -p sdk/tsconfig.json",
|
|
21
|
-
"
|
|
22
|
-
"
|
|
23
|
-
"build": "tsc & vite build && wait",
|
|
24
|
-
"preview": "vite preview",
|
|
25
|
-
"lint": "eslint . --ext .ts,.tsx",
|
|
21
|
+
"prepublishOnly": "tsc -p sdk/tsconfig.json",
|
|
22
|
+
"lint": "eslint . --ext .ts",
|
|
26
23
|
"typecheck": "tsc --noEmit",
|
|
27
24
|
"generate-tables": "tsx scripts/generate-tables.ts",
|
|
28
25
|
"sync-auth0-perms": "tsx scripts/sync-auth0-permissions.ts",
|
|
@@ -33,43 +30,33 @@
|
|
|
33
30
|
"test": "vitest run",
|
|
34
31
|
"test:watch": "vitest",
|
|
35
32
|
"test:coverage": "vitest run --coverage",
|
|
36
|
-
"test:stats": "vitest run --coverage && node scripts/generate-test-stats.cjs"
|
|
33
|
+
"test:stats": "vitest run --coverage && node scripts/generate-test-stats.cjs",
|
|
34
|
+
"build:landing": "vite build --config landing/vite.config.ts && cp -rL docs dist/docs",
|
|
35
|
+
"build": "npm run build:landing && npm run build:sdk"
|
|
37
36
|
},
|
|
38
37
|
"dependencies": {
|
|
39
|
-
"@auth0/auth0-react": "^2.2.4",
|
|
40
38
|
"@azure/identity": "^4.2.0",
|
|
41
|
-
"@
|
|
39
|
+
"@azure/storage-blob": "^12.31.0",
|
|
42
40
|
"@modelcontextprotocol/sdk": "^1.26.0",
|
|
43
41
|
"applicationinsights": "^2.9.8",
|
|
44
42
|
"jose": "^5.2.0",
|
|
45
|
-
"mermaid": "^11.12.2",
|
|
46
|
-
"react": "^18.2.0",
|
|
47
|
-
"react-dom": "^18.2.0",
|
|
48
|
-
"react-markdown": "^10.1.0",
|
|
49
|
-
"react-router-dom": "^7.13.0",
|
|
50
|
-
"remark-gfm": "^4.0.1",
|
|
51
43
|
"zod": "^3.25.76"
|
|
52
44
|
},
|
|
53
45
|
"devDependencies": {
|
|
46
|
+
"@auth0/auth0-spa-js": "^2.16.0",
|
|
54
47
|
"@microsoft/signalr": "^10.0.0",
|
|
55
|
-
"@tailwindcss/vite": "^4.1.18",
|
|
56
|
-
"@testing-library/jest-dom": "^6.9.1",
|
|
57
|
-
"@testing-library/react": "^16.3.2",
|
|
58
|
-
"@testing-library/user-event": "^14.6.1",
|
|
59
48
|
"@types/node": "^20.11.0",
|
|
60
49
|
"@types/react": "^18.2.48",
|
|
61
50
|
"@types/react-dom": "^18.2.18",
|
|
62
51
|
"@typescript-eslint/eslint-plugin": "^7.0.0",
|
|
63
52
|
"@typescript-eslint/parser": "^7.0.0",
|
|
64
53
|
"@vercel/node": "^3.0.0",
|
|
65
|
-
"@vitejs/plugin-react": "^4.2.1",
|
|
66
54
|
"@vitest/coverage-v8": "^4.0.18",
|
|
67
55
|
"eslint": "^8.56.0",
|
|
68
|
-
"
|
|
69
|
-
"
|
|
56
|
+
"react": "^18.2.0",
|
|
57
|
+
"react-dom": "^18.2.0",
|
|
70
58
|
"tsx": "^4.21.0",
|
|
71
59
|
"typescript": "^5.3.3",
|
|
72
|
-
"vercel": "^33.0.0",
|
|
73
60
|
"vite": "^5.0.12",
|
|
74
61
|
"vitest": "^4.0.18"
|
|
75
62
|
},
|
|
@@ -86,6 +73,6 @@
|
|
|
86
73
|
}
|
|
87
74
|
},
|
|
88
75
|
"engines": {
|
|
89
|
-
"node": "
|
|
76
|
+
"node": "24.x"
|
|
90
77
|
}
|
|
91
78
|
}
|
package/sdk/dist/client.d.ts
CHANGED
|
@@ -10,6 +10,35 @@ export declare class ApiError extends Error {
|
|
|
10
10
|
export interface ScopeClient {
|
|
11
11
|
/** List records from a table */
|
|
12
12
|
list<T = Record<string, unknown>>(table: string, options?: QueryOptions): Promise<PaginatedResponse<T>>;
|
|
13
|
+
/**
|
|
14
|
+
* Fetch the next page using a `page.next` URL from a previous response.
|
|
15
|
+
*
|
|
16
|
+
* The API uses cursor-based paging — the `page.next` URL contains an opaque
|
|
17
|
+
* pagination token. Always use this method (or the URL from `page.next`) to
|
|
18
|
+
* advance through pages.
|
|
19
|
+
*
|
|
20
|
+
* ```typescript
|
|
21
|
+
* let page = await client.me.list<Case>("case", { top: 25 });
|
|
22
|
+
* while (page.page.next) {
|
|
23
|
+
* page = await client.me.fetchPage<Case>(page.page.next);
|
|
24
|
+
* }
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
fetchPage<T = Record<string, unknown>>(nextUrl: string): Promise<PaginatedResponse<T>>;
|
|
28
|
+
/**
|
|
29
|
+
* Async iterator that yields every page of results, following `page.next`
|
|
30
|
+
* cursors automatically. Starts with a `list()` call and keeps fetching
|
|
31
|
+
* until there are no more pages.
|
|
32
|
+
*
|
|
33
|
+
* ```typescript
|
|
34
|
+
* for await (const page of client.me.eachPage<Case>("case", { top: 50 })) {
|
|
35
|
+
* for (const record of page.data) {
|
|
36
|
+
* console.log(record.title);
|
|
37
|
+
* }
|
|
38
|
+
* }
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
eachPage<T = Record<string, unknown>>(table: string, options?: QueryOptions): AsyncIterable<PaginatedResponse<T>>;
|
|
13
42
|
/** Get a single record by ID */
|
|
14
43
|
get<T = Record<string, unknown>>(table: string, id: string, options?: Pick<QueryOptions, "select" | "expand">): Promise<SingleResponse<T>>;
|
|
15
44
|
/** Update a record */
|
package/sdk/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,WAAW,EACX,oBAAoB,EACpB,oBAAoB,EACpB,YAAY,EACb,MAAM,YAAY,CAAC;AAGpB,0DAA0D;AAC1D,qBAAa,QAAS,SAAQ,KAAK;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,CAAC;gBAEvB,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,GAAG,IAAI;CAO1E;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/sdk/dist/client.js
CHANGED
|
@@ -35,8 +35,6 @@ function buildQueryString(options) {
|
|
|
35
35
|
params.set("select", options.select.join(","));
|
|
36
36
|
if (options.top != null)
|
|
37
37
|
params.set("top", String(options.top));
|
|
38
|
-
if (options.skip != null)
|
|
39
|
-
params.set("skip", String(options.skip));
|
|
40
38
|
if (options.orderBy)
|
|
41
39
|
params.set("orderBy", options.orderBy);
|
|
42
40
|
if (options.expand)
|
|
@@ -91,6 +89,27 @@ function buildAggregateQueryString(options) {
|
|
|
91
89
|
const qs = params.toString();
|
|
92
90
|
return qs ? `?${qs}` : "";
|
|
93
91
|
}
|
|
92
|
+
/**
|
|
93
|
+
* Fetch a page.next URL. These URLs are absolute paths (e.g. /api/v2/default/all/case?top=5&cursor=...)
|
|
94
|
+
* so we construct the full URL from the base and call fetch directly.
|
|
95
|
+
*/
|
|
96
|
+
async function requestAbsolute(config, nextUrl) {
|
|
97
|
+
const token = await config.getToken();
|
|
98
|
+
const base = config.baseUrl.replace(/\/+$/, "");
|
|
99
|
+
const url = nextUrl.startsWith("http") ? nextUrl : `${base}${nextUrl}`;
|
|
100
|
+
const res = await fetch(url, {
|
|
101
|
+
method: "GET",
|
|
102
|
+
headers: { Authorization: `Bearer ${token}` },
|
|
103
|
+
});
|
|
104
|
+
if (!res.ok) {
|
|
105
|
+
const errorBody = (await res.json().catch(() => null));
|
|
106
|
+
throw new ApiError(res.status, res.statusText, errorBody);
|
|
107
|
+
}
|
|
108
|
+
const text = await res.text();
|
|
109
|
+
if (!text)
|
|
110
|
+
return undefined;
|
|
111
|
+
return JSON.parse(text);
|
|
112
|
+
}
|
|
94
113
|
function createScopeClient(config, scope) {
|
|
95
114
|
return {
|
|
96
115
|
list(table, options = {}) {
|
|
@@ -100,6 +119,21 @@ function createScopeClient(config, scope) {
|
|
|
100
119
|
: `/${scope}/${table}${buildQueryString(queryOptions)}`;
|
|
101
120
|
return request(config, "GET", path);
|
|
102
121
|
},
|
|
122
|
+
fetchPage(nextUrl) {
|
|
123
|
+
return requestAbsolute(config, nextUrl);
|
|
124
|
+
},
|
|
125
|
+
async *eachPage(table, options = {}) {
|
|
126
|
+
const { subtype, ...queryOptions } = options;
|
|
127
|
+
const path = subtype
|
|
128
|
+
? `/${scope}/${table}/${subtype}${buildQueryString(queryOptions)}`
|
|
129
|
+
: `/${scope}/${table}${buildQueryString(queryOptions)}`;
|
|
130
|
+
let page = await request(config, "GET", path);
|
|
131
|
+
yield page;
|
|
132
|
+
while (page.page.next) {
|
|
133
|
+
page = await requestAbsolute(config, page.page.next);
|
|
134
|
+
yield page;
|
|
135
|
+
}
|
|
136
|
+
},
|
|
103
137
|
get(table, id, options = {}) {
|
|
104
138
|
return request(config, "GET", `/${scope}/${table}/${id}${buildQueryString(options)}`);
|
|
105
139
|
},
|
package/sdk/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,0DAA0D;AAC1D,MAAM,OAAO,QAAS,SAAQ,KAAK;IACxB,MAAM,CAAS;IACf,UAAU,CAAS;IACnB,IAAI,CAAsB;IAEnC,YAAY,MAAc,EAAE,UAAkB,EAAE,IAAyB;QACvE,KAAK,CAAC,IAAI,EAAE,OAAO,IAAI,QAAQ,MAAM,IAAI,UAAU,EAAE,CAAC,CAAC;QACvD,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAED;;;;GAIG;AACH,SAAS,cAAc,CAAC,OAA4E;IAClG,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC9E,OAAO,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;IACvB,CAAC;IACD,IAAI,OAAO,CAAC,OAAO;QAAE,OAAO,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;IACvF,IAAI,OAAO,CAAC,QAAQ;QAAE,OAAO,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,YAAY,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC1F,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,gBAAgB,CAAC,OAA2C;IACnE,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;IAErC,IAAI,OAAO,CAAC,MAAM,EAAE,MAAM;QAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3E,IAAI,OAAO,CAAC,GAAG,IAAI,IAAI;QAAE,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IAChE,IAAI,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/sdk/dist/types.d.ts
CHANGED
|
@@ -15,8 +15,6 @@ export interface QueryOptions {
|
|
|
15
15
|
select?: string[];
|
|
16
16
|
/** Page size (1-100) */
|
|
17
17
|
top?: number;
|
|
18
|
-
/** Records to skip */
|
|
19
|
-
skip?: number;
|
|
20
18
|
/** Sort order, e.g. "modifiedon:desc" */
|
|
21
19
|
orderBy?: string;
|
|
22
20
|
/** OData-style filters. Repeated values combined with filterLogic. */
|
|
@@ -54,7 +52,6 @@ export interface PaginatedResponse<T = Record<string, unknown>> {
|
|
|
54
52
|
data: T[];
|
|
55
53
|
page: {
|
|
56
54
|
top: number;
|
|
57
|
-
skip: number;
|
|
58
55
|
next: string | null;
|
|
59
56
|
};
|
|
60
57
|
}
|
|
@@ -101,6 +98,15 @@ export interface TableSchema {
|
|
|
101
98
|
aliases?: string[];
|
|
102
99
|
defaultFields: string[];
|
|
103
100
|
fields: SchemaField[];
|
|
101
|
+
/** Active record filter preset. "active" = only statecode 0, "all" = no filter. */
|
|
102
|
+
recordFilter?: "active" | "all";
|
|
103
|
+
/** Parent table relationship for child record tables. Enables parent.field filter syntax. */
|
|
104
|
+
parentTable?: {
|
|
105
|
+
table: string;
|
|
106
|
+
navigationProperty: string;
|
|
107
|
+
};
|
|
108
|
+
/** Always-on filter expressions (AND'd with all other filters). Supports parent.field syntax. */
|
|
109
|
+
defaultFilters?: string[];
|
|
104
110
|
supportsTeam: boolean;
|
|
105
111
|
contactScope?: {
|
|
106
112
|
description: string;
|
package/sdk/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,MAAM,WAAW,YAAY;IAC3B,uEAAuE;IACvE,OAAO,EAAE,MAAM,CAAC;IAChB,qFAAqF;IACrF,QAAQ,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IAChC,2CAA2C;IAC3C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kDAAkD;IAClD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,uCAAuC;AACvC,MAAM,WAAW,YAAY;IAC3B,uBAAuB;IACvB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,wBAAwB;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,MAAM,WAAW,YAAY;IAC3B,uEAAuE;IACvE,OAAO,EAAE,MAAM,CAAC;IAChB,qFAAqF;IACrF,QAAQ,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IAChC,2CAA2C;IAC3C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kDAAkD;IAClD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,uCAAuC;AACvC,MAAM,WAAW,YAAY;IAC3B,uBAAuB;IACvB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,wBAAwB;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,yCAAyC;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sEAAsE;IACtE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC3B,iEAAiE;IACjE,WAAW,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;IAC3B,gFAAgF;IAChF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,mFAAmF;AACnF,MAAM,WAAW,aAAc,SAAQ,YAAY;IACjD,0CAA0C;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,+CAA+C;AAC/C,MAAM,WAAW,iBAAiB,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC5D,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,IAAI,EAAE;QACJ,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;KACrB,CAAC;CACH;AAED,sDAAsD;AACtD,MAAM,WAAW,cAAc,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACzD,IAAI,EAAE,CAAC,CAAC;CACT;AAED,sBAAsB;AACtB,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,2DAA2D;AAC3D,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,8DAA8D;AAC9D,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC/D;AAED,yCAAyC;AACzC,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,mFAAmF;IACnF,YAAY,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAC;IAChC,6FAA6F;IAC7F,WAAW,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,kBAAkB,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5D,iGAAiG;IACjG,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;KAC1D,CAAC;IACF,SAAS,CAAC,EAAE;QACV,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;KAC1D,CAAC;CACH;AAED,0BAA0B;AAC1B,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,0CAA0C;AAC1C,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,iDAAiD;AACjD,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CAClC;AAED,8BAA8B;AAC9B,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,sCAAsC;AACtC,MAAM,WAAW,gBAAgB;IAC/B;;;;;OAKG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB,+DAA+D;IAC/D,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,wEAAwE;IACxE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC3B,iEAAiE;IACjE,WAAW,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;IAC3B,2EAA2E;IAC3E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iFAAiF;IACjF,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,uCAAuC;AACvC,MAAM,WAAW,iBAAiB,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC5D,IAAI,EAAE,CAAC,EAAE,CAAC;CACX"}
|