@truenorth-it/dataverse-client 1.0.8 → 1.1.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 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://your-api.vercel.app",
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://your-api.vercel.app
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://your-api.vercel.app",
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://your-api.vercel.app/api/v2/default/schema");
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.
@@ -198,22 +198,23 @@ function useApiClient() {
198
198
 
199
199
  ```typescript
200
200
  createClient({
201
- baseUrl: string; // API deployment URL
202
- getToken: () => Promise<string>; // Returns a Bearer token
203
- apiBase?: string; // Defaults to "/api/v2"
204
- scope?: string; // Defaults to "default" — inserted after apiBase in URLs
201
+ baseUrl: string; // API deployment URL
202
+ getToken?: () => Promise<string>; // Returns a Bearer token (optional for public-only access)
203
+ apiBase?: string; // Defaults to "/api/v2"
204
+ scope?: string; // Defaults to "default" — inserted after apiBase in URLs
205
205
  });
206
206
  ```
207
207
 
208
208
  ## Access scopes
209
209
 
210
- The client exposes three scopes, each backed by server-side authorization:
210
+ The client exposes four scopes, each backed by server-side authorization:
211
211
 
212
212
  | Scope | Description | Operations |
213
213
  |-------|-------------|------------|
214
214
  | `client.me` | Your own records (contact-scoped) | list, get, update, lookup, create, whoami |
215
215
  | `client.team` | Records belonging to your team/account | list, get, update, lookup |
216
216
  | `client.all` | All records (requires elevated permissions) | list, get, update, lookup |
217
+ | `client.public` | Public tables (no authentication) | list, get |
217
218
 
218
219
  ## Operations
219
220
 
@@ -228,7 +229,7 @@ const result = await client.me.list("case", {
228
229
  });
229
230
 
230
231
  // result.data — Record<string, unknown>[] (or Case[] if you pass a generic)
231
- // result.page — { top, skip, next }
232
+ // result.page — { top, skip, next } — use fetchPage(page.next) for subsequent pages
232
233
 
233
234
  for (const c of result.data) {
234
235
  console.log(c.ticketnumber, c.title);
@@ -263,6 +264,59 @@ for (const activity of allActivities.data) {
263
264
  }
264
265
  ```
265
266
 
267
+ ### Paging through results
268
+
269
+ The API uses **cursor-based paging** powered by Dataverse's `$skiptoken`. Each list response includes a `page` object:
270
+
271
+ ```typescript
272
+ {
273
+ data: [...], // records for this page
274
+ page: {
275
+ top: 25, // page size
276
+ skip: 0, // offset of this page
277
+ next: "/api/v2/..." // full URL for next page (null on last page)
278
+ }
279
+ }
280
+ ```
281
+
282
+ > **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.
283
+
284
+ #### Fetch next page
285
+
286
+ Use `fetchPage()` to follow a `page.next` URL:
287
+
288
+ ```typescript
289
+ let page = await client.me.list<Case>("case", { top: 25 });
290
+ console.log(`Page 1: ${page.data.length} records`);
291
+
292
+ while (page.page.next) {
293
+ page = await client.me.fetchPage<Case>(page.page.next);
294
+ console.log(`Next page: ${page.data.length} records (offset ${page.page.skip})`);
295
+ }
296
+ ```
297
+
298
+ #### Iterate all pages
299
+
300
+ Use `eachPage()` for a clean async iterator over every page:
301
+
302
+ ```typescript
303
+ for await (const page of client.me.eachPage<Case>("case", { top: 50 })) {
304
+ for (const record of page.data) {
305
+ console.log(record.ticketnumber, record.title);
306
+ }
307
+ }
308
+ ```
309
+
310
+ #### Collect all records
311
+
312
+ ```typescript
313
+ const allCases: Case[] = [];
314
+ for await (const page of client.all.eachPage<Case>("case", { top: 100 })) {
315
+ allCases.push(...page.data);
316
+ }
317
+ console.log(`Total: ${allCases.length} cases`);
318
+ ```
319
+
266
320
  ### Get a single record
267
321
 
268
322
  ```typescript
@@ -335,6 +389,36 @@ for (const contact of result.data) {
335
389
 
336
390
  > **With types:** any operation accepts a generic — `client.me.lookup<Contact>("contact", ...)`, `client.me.get<Case>("case", ...)`, etc.
337
391
 
392
+ ### Public (unauthenticated) access
393
+
394
+ Tables with `publicRead: true` are available without authentication via `client.public`. Only `list` and `get` are supported — no writes, lookups, or aggregates.
395
+
396
+ ```typescript
397
+ // No getToken needed for public-only usage
398
+ const client = createClient({
399
+ baseUrl: "https://api.dataverse-contact.tnapps.co.uk",
400
+ });
401
+
402
+ const result = await client.public.list("case", {
403
+ select: ["title", "ticketnumber", "statuscode"],
404
+ top: 10,
405
+ });
406
+
407
+ const record = await client.public.get("case", caseId);
408
+ ```
409
+
410
+ Paging works the same as authenticated scopes:
411
+
412
+ ```typescript
413
+ for await (const page of client.public.eachPage("case", { top: 50 })) {
414
+ for (const record of page.data) {
415
+ console.log(record.title);
416
+ }
417
+ }
418
+ ```
419
+
420
+ > `client.public` never sends an `Authorization` header, even if `getToken` is configured on the client. The other scopes (`me`, `team`, `all`) still require authentication.
421
+
338
422
  ### Who am I
339
423
 
340
424
  ```typescript
@@ -380,7 +464,7 @@ Used by `list()`:
380
464
  |--------|------|-------------|
381
465
  | `select` | `string[]` | Fields to return |
382
466
  | `top` | `number` | Page size (1-100) |
383
- | `skip` | `number` | Records to skip |
467
+ | `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
468
  | `orderBy` | `string` | Sort field and direction, e.g. `"createdon:desc"` |
385
469
  | `filter` | `string \| string[]` | OData-style filter expressions |
386
470
  | `filterLogic` | `"and" \| "or"` | How to combine multiple filters (default: `"and"`) |
@@ -613,7 +697,7 @@ All types are importable from the main package:
613
697
  ```typescript
614
698
  import type {
615
699
  // Client & scope interfaces
616
- DataverseClient, ScopeClient, MeScopeClient, ClientConfig,
700
+ DataverseClient, ScopeClient, MeScopeClient, PublicScopeClient, ClientConfig,
617
701
  // Query types
618
702
  QueryOptions, LookupOptions,
619
703
  // Response types
@@ -642,7 +726,7 @@ import type { Case, Contact, TableName } from "./dataverse-tables.generated";
642
726
  ## Requirements
643
727
 
644
728
  - Node.js 18+
645
- - An Auth0 token provider (or any async function that returns a Bearer token)
729
+ - An Auth0 token provider (or any async function that returns a Bearer token) — optional if using only `client.public`
646
730
  - Access to a deployed Dataverse Contact API instance
647
731
 
648
732
  ## License
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@truenorth-it/dataverse-client",
3
- "version": "1.0.8",
3
+ "version": "1.1.0",
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
- "prepare": "tsc -p sdk/tsconfig.json",
22
- "dev": "vite",
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
- "@microsoft/applicationinsights-web": "^3.3.11",
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
- "happy-dom": "^20.6.1",
69
- "tailwindcss": "^4.1.18",
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": ">=18"
76
+ "node": "24.x"
90
77
  }
91
78
  }
@@ -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 */
@@ -37,6 +66,17 @@ export interface MeScopeClient extends ScopeClient {
37
66
  /** Get authenticated identity + Dataverse contact info */
38
67
  whoami(): Promise<WhoamiResponse>;
39
68
  }
69
+ /** Read-only API operations for the public tier (no authentication required) */
70
+ export interface PublicScopeClient {
71
+ /** List records from a public table */
72
+ list<T = Record<string, unknown>>(table: string, options?: QueryOptions): Promise<PaginatedResponse<T>>;
73
+ /** Fetch the next page using a `page.next` URL from a previous response */
74
+ fetchPage<T = Record<string, unknown>>(nextUrl: string): Promise<PaginatedResponse<T>>;
75
+ /** Async iterator that yields every page of results */
76
+ eachPage<T = Record<string, unknown>>(table: string, options?: QueryOptions): AsyncIterable<PaginatedResponse<T>>;
77
+ /** Get a single record by ID */
78
+ get<T = Record<string, unknown>>(table: string, id: string, options?: Pick<QueryOptions, "select" | "expand">): Promise<SingleResponse<T>>;
79
+ }
40
80
  /** SignalR negotiate response */
41
81
  export interface NegotiateResponse {
42
82
  url: string;
@@ -50,6 +90,8 @@ export interface DataverseClient {
50
90
  team: ScopeClient;
51
91
  /** Operations on all records (admin) */
52
92
  all: ScopeClient;
93
+ /** Read-only operations on public tables (no authentication required) */
94
+ public: PublicScopeClient;
53
95
  /** Fetch choice/option-set values for a table, or a specific field */
54
96
  choices(table: string, field?: string): Promise<FieldChoicesResponse | TableChoicesResponse>;
55
97
  /** Fetch table schema (single table or all tables) */
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
@@ -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)
@@ -53,14 +51,14 @@ function buildQueryString(options) {
53
51
  return qs ? `?${qs}` : "";
54
52
  }
55
53
  async function request(config, method, path, body) {
56
- const token = await config.getToken();
54
+ const token = config.getToken ? await config.getToken() : undefined;
57
55
  const base = config.baseUrl.replace(/\/+$/, "");
58
56
  const apiBase = config.apiBase ?? "/api/v2";
59
57
  const scope = config.scope ?? "default";
60
58
  const url = `${base}${apiBase}/${scope}${path}`;
61
- const headers = {
62
- Authorization: `Bearer ${token}`,
63
- };
59
+ const headers = {};
60
+ if (token)
61
+ headers.Authorization = `Bearer ${token}`;
64
62
  const init = { method, headers };
65
63
  if (body !== undefined) {
66
64
  headers["Content-Type"] = "application/json";
@@ -91,6 +89,57 @@ 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 = config.getToken ? await config.getToken() : undefined;
98
+ const base = config.baseUrl.replace(/\/+$/, "");
99
+ const url = nextUrl.startsWith("http") ? nextUrl : `${base}${nextUrl}`;
100
+ const headers = {};
101
+ if (token)
102
+ headers.Authorization = `Bearer ${token}`;
103
+ const res = await fetch(url, { method: "GET", headers });
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
+ }
113
+ /** Make a scoped request without authentication (for public tier) */
114
+ async function requestNoAuth(config, method, path) {
115
+ const base = config.baseUrl.replace(/\/+$/, "");
116
+ const apiBase = config.apiBase ?? "/api/v2";
117
+ const scope = config.scope ?? "default";
118
+ const url = `${base}${apiBase}/${scope}${path}`;
119
+ const res = await fetch(url, { method });
120
+ if (!res.ok) {
121
+ const errorBody = (await res.json().catch(() => null));
122
+ throw new ApiError(res.status, res.statusText, errorBody);
123
+ }
124
+ const text = await res.text();
125
+ if (!text)
126
+ return undefined;
127
+ return JSON.parse(text);
128
+ }
129
+ /** Fetch a page.next URL without authentication (for public tier) */
130
+ async function requestAbsoluteNoAuth(config, nextUrl) {
131
+ const base = config.baseUrl.replace(/\/+$/, "");
132
+ const url = nextUrl.startsWith("http") ? nextUrl : `${base}${nextUrl}`;
133
+ const res = await fetch(url, { method: "GET" });
134
+ if (!res.ok) {
135
+ const errorBody = (await res.json().catch(() => null));
136
+ throw new ApiError(res.status, res.statusText, errorBody);
137
+ }
138
+ const text = await res.text();
139
+ if (!text)
140
+ return undefined;
141
+ return JSON.parse(text);
142
+ }
94
143
  function createScopeClient(config, scope) {
95
144
  return {
96
145
  list(table, options = {}) {
@@ -100,6 +149,21 @@ function createScopeClient(config, scope) {
100
149
  : `/${scope}/${table}${buildQueryString(queryOptions)}`;
101
150
  return request(config, "GET", path);
102
151
  },
152
+ fetchPage(nextUrl) {
153
+ return requestAbsolute(config, nextUrl);
154
+ },
155
+ async *eachPage(table, options = {}) {
156
+ const { subtype, ...queryOptions } = options;
157
+ const path = subtype
158
+ ? `/${scope}/${table}/${subtype}${buildQueryString(queryOptions)}`
159
+ : `/${scope}/${table}${buildQueryString(queryOptions)}`;
160
+ let page = await request(config, "GET", path);
161
+ yield page;
162
+ while (page.page.next) {
163
+ page = await requestAbsolute(config, page.page.next);
164
+ yield page;
165
+ }
166
+ },
103
167
  get(table, id, options = {}) {
104
168
  return request(config, "GET", `/${scope}/${table}/${id}${buildQueryString(options)}`);
105
169
  },
@@ -126,12 +190,42 @@ function createMeScopeClient(config) {
126
190
  },
127
191
  };
128
192
  }
193
+ function createPublicScopeClient(config) {
194
+ return {
195
+ list(table, options = {}) {
196
+ const { subtype, ...queryOptions } = options;
197
+ const path = subtype
198
+ ? `/public/${table}/${subtype}${buildQueryString(queryOptions)}`
199
+ : `/public/${table}${buildQueryString(queryOptions)}`;
200
+ return requestNoAuth(config, "GET", path);
201
+ },
202
+ fetchPage(nextUrl) {
203
+ return requestAbsoluteNoAuth(config, nextUrl);
204
+ },
205
+ async *eachPage(table, options = {}) {
206
+ const { subtype, ...queryOptions } = options;
207
+ const path = subtype
208
+ ? `/public/${table}/${subtype}${buildQueryString(queryOptions)}`
209
+ : `/public/${table}${buildQueryString(queryOptions)}`;
210
+ let page = await requestNoAuth(config, "GET", path);
211
+ yield page;
212
+ while (page.page.next) {
213
+ page = await requestAbsoluteNoAuth(config, page.page.next);
214
+ yield page;
215
+ }
216
+ },
217
+ get(table, id, options = {}) {
218
+ return requestNoAuth(config, "GET", `/public/${table}/${id}${buildQueryString(options)}`);
219
+ },
220
+ };
221
+ }
129
222
  /** Create a configured API client instance */
130
223
  export function createClient(config) {
131
224
  return {
132
225
  me: createMeScopeClient(config),
133
226
  team: createScopeClient(config, "team"),
134
227
  all: createScopeClient(config, "all"),
228
+ public: createPublicScopeClient(config),
135
229
  choices(table, field) {
136
230
  const path = field
137
231
  ? `/choices/${table}/${field}`
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  export { createClient, ApiError } from "./client.js";
2
- export type { DataverseClient, ScopeClient, MeScopeClient, NegotiateResponse, } from "./client.js";
2
+ export type { DataverseClient, ScopeClient, MeScopeClient, PublicScopeClient, NegotiateResponse, } from "./client.js";
3
3
  export type { ClientConfig, QueryOptions, LookupOptions, AggregateOptions, PaginatedResponse, SingleResponse, AggregateResponse, WhoamiResponse, TableSchema, SchemaField, ExpandSchema, Choice, FieldChoicesResponse, TableChoicesResponse, ApiErrorBody, } from "./types.js";
4
4
  export { resolveQuickDate, quickDateToFilters } from "./quick-date.js";
5
5
  export type { DateRange } from "./quick-date.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACrD,YAAY,EACV,eAAe,EACf,WAAW,EACX,aAAa,EACb,iBAAiB,GAClB,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,WAAW,EACX,WAAW,EACX,YAAY,EACZ,MAAM,EACN,oBAAoB,EACpB,oBAAoB,EACpB,YAAY,GACb,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACvE,YAAY,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAGxF,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACrD,YAAY,EACV,eAAe,EACf,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,WAAW,EACX,WAAW,EACX,YAAY,EACZ,MAAM,EACN,oBAAoB,EACpB,oBAAoB,EACpB,YAAY,GACb,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACvE,YAAY,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAGxF,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAyBrD,2EAA2E;AAC3E,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAGvE,kEAAkE;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAGlD,mFAAmF;AACnF,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AA0BrD,2EAA2E;AAC3E,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAGvE,kEAAkE;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAGlD,mFAAmF;AACnF,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC"}
@@ -2,8 +2,8 @@
2
2
  export interface ClientConfig {
3
3
  /** Base URL of the API deployment, e.g. "https://my-api.vercel.app" */
4
4
  baseUrl: string;
5
- /** Function that returns a valid access token (e.g. Auth0 getAccessTokenSilently) */
6
- getToken: () => Promise<string>;
5
+ /** Function that returns a valid access token (e.g. Auth0 getAccessTokenSilently). Optional for public-only access. */
6
+ getToken?: () => Promise<string>;
7
7
  /** API base path. Defaults to "/api/v2" */
8
8
  apiBase?: string;
9
9
  /** API scope partition. Defaults to "default". */
@@ -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;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
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,uHAAuH;IACvH,QAAQ,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IACjC,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"}