fms-odata-js 0.3.0 → 0.4.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/CHANGELOG.md +75 -1
- package/README.md +94 -21
- package/dist/client.d.ts +46 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/fms-odata.esm.js +464 -34
- package/dist/fms-odata.esm.min.js +4 -4
- package/dist/fms-odata.iife.min.js +3 -3
- package/dist/http.d.ts +3 -3
- package/dist/http.d.ts.map +1 -1
- package/dist/index.d.ts +8 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/query.d.ts +3 -3
- package/dist/schema.d.ts +103 -0
- package/dist/schema.d.ts.map +1 -0
- package/dist/webhooks.d.ts +98 -0
- package/dist/webhooks.d.ts.map +1 -0
- package/package.json +2 -2
- package/src/client.ts +118 -1
- package/src/http.ts +6 -6
- package/src/index.ts +18 -1
- package/src/query.ts +4 -4
- package/src/schema.ts +236 -0
- package/src/webhooks.ts +203 -0
package/CHANGELOG.md
CHANGED
|
@@ -5,7 +5,81 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
-
## [
|
|
8
|
+
## [0.4.0] — 2025-01-09
|
|
9
|
+
|
|
10
|
+
### Fixed — DDL and webhook API alignment with real FileMaker Server
|
|
11
|
+
|
|
12
|
+
Verified against a live FileMaker Server 26.0.1 instance and the official
|
|
13
|
+
Claris OData guide. The previous implementations used URL formats that FMS
|
|
14
|
+
rejects; both modules now match the actual server behavior.
|
|
15
|
+
|
|
16
|
+
- **DDL URL format (`schema.ts`):** `addFields`, `deleteTable`, and
|
|
17
|
+
`deleteField` now use the slash-separated URL format
|
|
18
|
+
(`FileMaker_Tables/{table}`) that FMS accepts, instead of the OData
|
|
19
|
+
key-parentheses format (`FileMaker_Tables('{table}')`) which FMS rejects
|
|
20
|
+
with error `-1010` ("entity name must be specified"). The spec docs
|
|
21
|
+
documented the parentheses format, but the live server only accepts the
|
|
22
|
+
slash format for these operations.
|
|
23
|
+
- **Webhook endpoints (`webhooks.ts`):** rewritten to match the official
|
|
24
|
+
Claris OData webhook API:
|
|
25
|
+
- `getAll()` now uses `GET /Webhook.GetAll` (was `POST`).
|
|
26
|
+
- `get(id)` now uses `GET /Webhook.Get({id})` with the id in the URL path
|
|
27
|
+
(was `POST /Webhook.Get` with `{ id }` body).
|
|
28
|
+
- `remove(id)` now uses `POST /Webhook.Delete({id})` with the id in the
|
|
29
|
+
URL path (was `POST /Webhook.Remove` with `{ id }` body). A `delete()`
|
|
30
|
+
alias is provided to match the FMS endpoint name.
|
|
31
|
+
- `invoke(id)` now uses `POST /Webhook.Invoke({id})` with the id in the
|
|
32
|
+
URL path and a required JSON body `{ rowIDs: [...] }` (was `POST
|
|
33
|
+
/Webhook.Invoke` with `{ id }` body). FMS rejects empty bodies.
|
|
34
|
+
- `create()` now returns `{ id: string }` extracted from the FMS response
|
|
35
|
+
`{ webhookResult: { webhookID: N } }` (previously returned the raw
|
|
36
|
+
response and callers had to guess the id field name).
|
|
37
|
+
- All id parameters now accept `string | number` (FMS issues integer IDs).
|
|
38
|
+
- **Integration tests:** added `tests/integration/ddl-webhooks.test.ts`
|
|
39
|
+
covering DDL (create/addFields/index/deleteField/deleteTable) and webhook
|
|
40
|
+
management (create/get/getAll/invoke/remove) against a live FMS. Throwaway
|
|
41
|
+
tables and webhooks are created and cleaned up; production tables are
|
|
42
|
+
never touched.
|
|
43
|
+
|
|
44
|
+
### Changed — Spec alignment with `@fms-odata/spec-ts` 2.0.0
|
|
45
|
+
|
|
46
|
+
Bumped the shared spec dependency from `^1.1.0` to `^2.0.1` and aligned the
|
|
47
|
+
client with the v2.0.0 spec overhaul (drop FileMaker 19.x, corrected version
|
|
48
|
+
history, OAuth/Bearer auth).
|
|
49
|
+
|
|
50
|
+
- **Dependency:** `@fms-odata/spec-ts` `^1.1.0` → `^2.0.1`.
|
|
51
|
+
- **Auth:** replaced the deprecated `fmidAuth()` helper (which produced the
|
|
52
|
+
now-removed `FMID …` scheme) with `bearerAuth()` producing `Bearer …`
|
|
53
|
+
headers, matching the spec's `FMOAuthAuthConfig` / `bearerAuth()`. The
|
|
54
|
+
`FMID` scheme is no longer recognized by `resolveAuthHeader`.
|
|
55
|
+
- **Version baseline:** FileMaker 19.x is no longer in the spec. The minimum
|
|
56
|
+
recognized major version is now `'20'` (Claris FileMaker 2023). Version
|
|
57
|
+
detection of a `19.x` server now resolves to `'future'` instead of `'19'`.
|
|
58
|
+
- **Version names:** corrected year mapping — `'21'` → FileMaker 2024,
|
|
59
|
+
`'22'` → FileMaker 2025 (previously 2023 / 2024 respectively).
|
|
60
|
+
- **Webhooks:** the spec now attributes webhooks to v22 (FileMaker 2025)
|
|
61
|
+
rather than v21. Updated doc comments accordingly; runtime feature gating
|
|
62
|
+
is driven by the spec matrix so behavior follows automatically.
|
|
63
|
+
- **`$apply` aggregation:** doc comments updated to FileMaker 2025+ (v22).
|
|
64
|
+
- **Tests:** updated version-detection tests to the new baseline (`'20'`)
|
|
65
|
+
and corrected year-name labels. Fixed pre-existing `possibly 'undefined'`
|
|
66
|
+
type errors in batch/metadata/integration tests so `tsc --noEmit` is clean.
|
|
67
|
+
|
|
68
|
+
### Added — Schema editing (DDL)
|
|
69
|
+
|
|
70
|
+
- **`SchemaEditor` class** (`src/schema.ts`) with `createTable`, `addFields`, `deleteTable`, `deleteField`, `createIndex`, `deleteIndex` methods, aligned with `@fms-odata/spec-ts` schema types (`FMFieldDefinition`, `CreateTableParams`, `AddFieldsParams`, `FIELD_TYPES`, `parseFieldType`).
|
|
71
|
+
- **Convenience methods on `FMSOData`**: `db.schema()`, `db.createTable()`, `db.addFields()`, `db.deleteTable()`, `db.deleteField()`, `db.createIndex()`, `db.deleteIndex()`.
|
|
72
|
+
- **Field type validation**: field definitions are validated against the spec's `FIELD_TYPES` array before sending.
|
|
73
|
+
- **Destructive op guard**: `deleteTable` and `deleteField` require an explicit `{ confirm: true }` option to prevent accidental data loss.
|
|
74
|
+
- **Spec type re-exports**: `FIELD_TYPES`, `FIELD_DEFAULTS`, `parseFieldType`, `FMFieldType`, `FMFieldDefault`, `FMFieldDefinition`, `CreateTableParams`, `AddFieldsParams` re-exported from the public API.
|
|
75
|
+
|
|
76
|
+
### Added — Webhook management
|
|
77
|
+
|
|
78
|
+
- **`WebhookManager` class** (`src/webhooks.ts`) with `create`, `remove`, `get`, `getAll`, `invoke` methods, aligned with `@fms-odata/spec-ts` webhook types (`WebhookCreateParams`, `WebhookData`, `WebhookOperation`).
|
|
79
|
+
- **Convenience methods on `FMSOData`**: `db.webhooks()`, `db.createWebhook()`, `db.removeWebhook()`, `db.getWebhook()`, `db.getAllWebhooks()`, `db.invokeWebhook()`.
|
|
80
|
+
- **Legacy `headers` alias**: the `headers` field in `WebhookCreateParams` is automatically mapped to `endpointHeaders` for backward compatibility.
|
|
81
|
+
- **Spec type re-exports**: `WebhookCreateParams`, `WebhookData`, `WebhookOperation` re-exported from the public API.
|
|
82
|
+
- Requires FileMaker Server 2025+ (v22). Use `db.hasFeature('webhooks')` to check.
|
|
9
83
|
|
|
10
84
|
## [0.3.0] - 2026-06-23
|
|
11
85
|
|
package/README.md
CHANGED
|
@@ -4,15 +4,16 @@
|
|
|
4
4
|
|
|
5
5
|
**A tiny, type-safe OData v4 client built for FileMaker Server.**
|
|
6
6
|
|
|
7
|
-
Zero runtime dependencies · ~
|
|
7
|
+
Zero runtime dependencies · ~10.6 KB gzipped · ESM + IIFE · Web Viewer / Browser / Node 18+
|
|
8
8
|
|
|
9
9
|
[](https://www.typescriptlang.org/)
|
|
10
10
|
[](https://www.odata.org/)
|
|
11
11
|
[](https://www.claris.com/filemaker/)
|
|
12
|
-
[](#)
|
|
13
13
|
[](#)
|
|
14
14
|
[](#)
|
|
15
15
|
[](./LICENSE)
|
|
16
|
+
[](https://github.com/fsans/fms-odata-spec)
|
|
16
17
|
|
|
17
18
|
</div>
|
|
18
19
|
|
|
@@ -24,7 +25,7 @@ FileMaker Server speaks OData v4, but the spec has sharp corners and FMS has qui
|
|
|
24
25
|
|
|
25
26
|
> **Battle-tested in production.** I've been using this library heavily to let FileMaker Web Viewer instances talk to the *same* hosted database they live in — and the performance has been genuinely impressive. Queries that used to require round-tripping through scripts and set-field loops now resolve in a single OData call, with noticeably lower latency and a much cleaner code path. If you're building rich Web Viewer UIs backed by FMS, this is the fastest route I've found.
|
|
26
27
|
|
|
27
|
-
- **Tiny.** ESM and IIFE bundles, zero runtime dependencies, ~
|
|
28
|
+
- **Tiny.** ESM and IIFE bundles, zero runtime dependencies, ~10.6 KB gzipped.
|
|
28
29
|
- **Type-safe.** Fluent, chainable query builder with full TS inference.
|
|
29
30
|
- **Runs anywhere.** Drop it into a FileMaker Web Viewer, a browser, or Node 18+.
|
|
30
31
|
- **FMS-aware.** Handles the documented FMS OData deviations for you.
|
|
@@ -34,43 +35,38 @@ FileMaker Server speaks OData v4, but the spec has sharp corners and FMS has qui
|
|
|
34
35
|
- **Aggregations.** `$apply` builder for `aggregate()` and `groupBy()` — server-side sum, average, min, max, count (FMS 2024+).
|
|
35
36
|
- **Navigation properties.** Full `$ref` CRUD — `getRefs`, `addRef`, `setRef`, `removeRef` for OData relationship links.
|
|
36
37
|
- **Schema introspection.** `$metadata` parsed into typed `ODataMetadata` with entity types, keys, properties, and actions. Cached by default.
|
|
38
|
+
- **Schema editing (DDL).** Create/delete tables, add/delete fields, create/delete indexes via the `FileMaker_Tables` and `FileMaker_Indexes` system endpoints. Field types validated against the spec; destructive ops guarded by `confirm: true`.
|
|
39
|
+
- **Webhooks.** Create, remove, get, list, and manually invoke webhooks (FMS 2023+ / v21) with typed params and `endpointHeaders` / `queryHeaders` support.
|
|
37
40
|
- **Batch requests.** `$batch` builder composes multiple reads and atomic changesets (POST / PATCH / DELETE) into a single HTTP round-trip.
|
|
38
41
|
- **Multi-auth.** Basic, Bearer, and FMID (FileMaker Cloud / Claris ID) auth with 401 retry, `AbortSignal`, and timeouts built in.
|
|
39
42
|
- **Honest errors.** Every failure becomes a normalized `FMSODataError` (or `FMScriptError` for script failures) with `isFMSODataError` / `isFMScriptError` type guards.
|
|
40
43
|
|
|
41
44
|
## Status
|
|
42
45
|
|
|
43
|
-
| Milestone | Scope | State |
|
|
44
|
-
| ----------- | ----------------------------------------------------------------- | :---: |
|
|
45
|
-
| **M1–M3** | Query builder · collection GET · single-entity CRUD · auth · errors | Done |
|
|
46
|
-
| **M4 · 1/4**| Script execution (database / entity-set / record scope) | Done (v0.1.4) |
|
|
47
|
-
| **M4 · 2/4**| Containers (binary upload / download / stream) | Done (v0.1.5) |
|
|
48
|
-
| **M5** | `$metadata` (schema introspection) | Done |
|
|
49
|
-
| **M6** | `$batch` (multipart with changesets) | Done |
|
|
50
|
-
| **v0.2.0** | Spec alignment — version detection, `$apply`, FMSID scripts, `$ref`, FMID auth, IIFE build | Done (v0.2.0) |
|
|
51
|
-
|
|
52
46
|
Full roadmap and changes live in [`CHANGELOG.md`](./CHANGELOG.md).
|
|
53
47
|
|
|
54
|
-
##
|
|
48
|
+
## Spec alignment
|
|
55
49
|
|
|
56
|
-
|
|
50
|
+
This library follows the [`fms-odata-spec`](https://github.com/fsans/fms-odata-spec) reference specification and depends on [`@fms-odata/spec-ts`](https://www.npmjs.com/package/@fms-odata/spec-ts) (as a devDependency, bundled at build time — zero runtime deps) for shared type definitions and the FileMaker Server version feature matrix. Version detection, feature gating, auth schemes, aggregate functions, and error shapes are all sourced from the spec contract so every implementation in the ecosystem stays in lockstep.
|
|
57
51
|
|
|
58
|
-
|
|
52
|
+
See [`docs/14-reconciliation.md`](https://github.com/fsans/fms-odata-spec/blob/main/docs/14-reconciliation.md) in the spec repo for the full alignment plan.
|
|
53
|
+
|
|
54
|
+
## Install
|
|
59
55
|
|
|
60
56
|
```bash
|
|
61
|
-
npm install
|
|
57
|
+
npm install fms-odata-js
|
|
62
58
|
```
|
|
63
59
|
|
|
64
|
-
From
|
|
60
|
+
From GitHub (latest `main`):
|
|
65
61
|
|
|
66
62
|
```bash
|
|
67
|
-
npm install /
|
|
63
|
+
npm install github:fsans/fms-odata-js
|
|
68
64
|
```
|
|
69
65
|
|
|
70
|
-
|
|
66
|
+
From a local clone:
|
|
71
67
|
|
|
72
68
|
```bash
|
|
73
|
-
npm install fms-odata-js
|
|
69
|
+
npm install /path/to/fms-odata-js
|
|
74
70
|
```
|
|
75
71
|
|
|
76
72
|
Local dev:
|
|
@@ -337,6 +333,83 @@ await db.from('contact').byKey(7).removeRef('addresses', 42)
|
|
|
337
333
|
await db.from('order').byKey(100).removeRef('customer') // clears single-valued
|
|
338
334
|
```
|
|
339
335
|
|
|
336
|
+
## Schema editing (DDL)
|
|
337
|
+
|
|
338
|
+
Create and delete tables, fields, and indexes via the `FileMaker_Tables` and
|
|
339
|
+
`FileMaker_Indexes` system endpoints. Requires a FileMaker account with full
|
|
340
|
+
access (schema modification) privileges.
|
|
341
|
+
|
|
342
|
+
```ts
|
|
343
|
+
// Create a table with typed field definitions
|
|
344
|
+
await db.createTable({
|
|
345
|
+
tableName: 'Company',
|
|
346
|
+
fields: [
|
|
347
|
+
{ name: 'Company ID', type: 'int', primary: true },
|
|
348
|
+
{ name: 'Company Name', type: 'varchar(100)', nullable: false },
|
|
349
|
+
{ name: 'Notes', type: 'varchar(2000)', global: true },
|
|
350
|
+
{ name: 'Signed Contract', type: 'blob', externalSecurePath: 'ContactMgmt/' },
|
|
351
|
+
],
|
|
352
|
+
})
|
|
353
|
+
|
|
354
|
+
// Add fields to an existing table
|
|
355
|
+
await db.addFields({
|
|
356
|
+
tableName: 'Company',
|
|
357
|
+
fields: [{ name: 'Phone', type: 'varchar(30)' }],
|
|
358
|
+
})
|
|
359
|
+
|
|
360
|
+
// Create an index on a field
|
|
361
|
+
await db.createIndex('Company', 'Company Name')
|
|
362
|
+
|
|
363
|
+
// Delete an index
|
|
364
|
+
await db.deleteIndex('Company', 'Company Name')
|
|
365
|
+
|
|
366
|
+
// Delete a field (requires confirm: true — irreversible)
|
|
367
|
+
await db.deleteField('Company', 'OldField', { confirm: true })
|
|
368
|
+
|
|
369
|
+
// Delete a table and all its records (requires confirm: true — irreversible)
|
|
370
|
+
await db.deleteTable('OldTable', { confirm: true })
|
|
371
|
+
```
|
|
372
|
+
|
|
373
|
+
Field types follow the spec: `NUMERIC`, `DECIMAL`, `INT`, `DATE`, `TIME`,
|
|
374
|
+
`TIMESTAMP`, `VARCHAR(n)`, `CHARACTER VARYING`, `BLOB`, `VARBINARY`,
|
|
375
|
+
`LONGVARBINARY`, `BINARY VARYING`. Repetitions in brackets (`INT[4]`), text
|
|
376
|
+
length in parentheses (`VARCHAR(200)`). Destructive operations (`deleteTable`,
|
|
377
|
+
`deleteField`) require an explicit `{ confirm: true }` guard.
|
|
378
|
+
|
|
379
|
+
## Webhooks
|
|
380
|
+
|
|
381
|
+
Manage FileMaker Server webhooks — requires FMS 2023+ (v21). Use
|
|
382
|
+
`hasFeature('webhooks')` to check before calling.
|
|
383
|
+
|
|
384
|
+
```ts
|
|
385
|
+
// Create a webhook that fires on record changes in the contact table
|
|
386
|
+
const result = await db.createWebhook({
|
|
387
|
+
webhook: 'https://my.example.com:8080/webhook',
|
|
388
|
+
tableName: 'contact',
|
|
389
|
+
select: 'id,first_name,last_name',
|
|
390
|
+
filter: "status eq 'active'",
|
|
391
|
+
notifySchemaChanges: true,
|
|
392
|
+
maxFailedAttempts: 10,
|
|
393
|
+
})
|
|
394
|
+
|
|
395
|
+
// List all webhooks
|
|
396
|
+
const all = await db.getAllWebhooks()
|
|
397
|
+
|
|
398
|
+
// Get a specific webhook's data
|
|
399
|
+
const data = await db.getWebhook('wh-id')
|
|
400
|
+
|
|
401
|
+
// Manually invoke a webhook (useful for testing)
|
|
402
|
+
await db.invokeWebhook('wh-id')
|
|
403
|
+
|
|
404
|
+
// Remove a webhook
|
|
405
|
+
await db.removeWebhook('wh-id')
|
|
406
|
+
```
|
|
407
|
+
|
|
408
|
+
The `endpointHeaders` / `queryHeaders` split is supported: `endpointHeaders`
|
|
409
|
+
are sent to the webhook URL without affecting processing, while `queryHeaders`
|
|
410
|
+
control how the payload is generated. The legacy `headers` alias for
|
|
411
|
+
`endpointHeaders` is accepted for backward compatibility.
|
|
412
|
+
|
|
340
413
|
## Live integration tests
|
|
341
414
|
|
|
342
415
|
Copy `.env.sample` to `.env` and fill in real FMS credentials:
|
|
@@ -369,7 +442,7 @@ FM_LIVE=1 npm test -- tests/integration # full CRUD against real FMS
|
|
|
369
442
|
The library ships three bundle formats:
|
|
370
443
|
|
|
371
444
|
- **ESM** (`dist/fms-odata.esm.js`) — for Node, bundlers, and modern browsers
|
|
372
|
-
- **ESM minified** (`dist/fms-odata.esm.min.js`) — ~
|
|
445
|
+
- **ESM minified** (`dist/fms-odata.esm.min.js`) — ~10.6 KB gzipped, production use
|
|
373
446
|
- **IIFE** (`dist/fms-odata.iife.min.js`) — global `FMSODataLib`, for FileMaker Web Viewer and `<script>` tag inclusion without a bundler
|
|
374
447
|
|
|
375
448
|
## Contributing
|
package/dist/client.d.ts
CHANGED
|
@@ -2,8 +2,10 @@ import { Batch } from './batch.js';
|
|
|
2
2
|
import { type HttpClientContext, type HttpRequestOptions } from './http.js';
|
|
3
3
|
import { type MetadataOptions, type ODataMetadata } from './metadata.js';
|
|
4
4
|
import { Query } from './query.js';
|
|
5
|
+
import { SchemaEditor, type DeleteSchemaOptions, type SchemaOptions } from './schema.js';
|
|
5
6
|
import { type ScriptOptions, type ScriptResult } from './scripts.js';
|
|
6
7
|
import type { FMSODataOptions, RequestOptions } from './types.js';
|
|
8
|
+
import { WebhookManager, type WebhookOptions } from './webhooks.js';
|
|
7
9
|
import { type FMVersionMajor, type FMVersionInfo, type FMFeatureFlags, type FMServerVersion } from '@fms-odata/spec-ts';
|
|
8
10
|
/**
|
|
9
11
|
* `FMSOData` is the entrypoint for all OData operations against a FileMaker
|
|
@@ -83,7 +85,7 @@ export declare class FMSOData {
|
|
|
83
85
|
* `@fms-odata/spec-ts` `parseServerVersion`). The result is cached for the
|
|
84
86
|
* lifetime of this `FMSOData` instance.
|
|
85
87
|
*
|
|
86
|
-
* Returns the major version string (`'
|
|
88
|
+
* Returns the major version string (`'20'`, `'21'`, `'22'`, `'26'`) or
|
|
87
89
|
* `'future'` if the version is newer than the spec knows about. Returns
|
|
88
90
|
* `null` if the version cannot be determined (e.g. the metadata lacks the
|
|
89
91
|
* annotation).
|
|
@@ -134,6 +136,49 @@ export declare class FMSOData {
|
|
|
134
136
|
* ```
|
|
135
137
|
*/
|
|
136
138
|
hasFeature(feature: keyof FMFeatureFlags): Promise<boolean>;
|
|
139
|
+
/** @internal */ private _schemaEditor?;
|
|
140
|
+
/**
|
|
141
|
+
* Get a `SchemaEditor` handle for DDL operations (create/delete tables,
|
|
142
|
+
* add/delete fields, create/delete indexes). Requires a FileMaker account
|
|
143
|
+
* with full access privileges.
|
|
144
|
+
*
|
|
145
|
+
* ```ts
|
|
146
|
+
* await db.schema().createTable({ tableName: 'Company', fields: [...] })
|
|
147
|
+
* ```
|
|
148
|
+
*/
|
|
149
|
+
schema(): SchemaEditor;
|
|
150
|
+
/** Convenience: create a table. See {@link SchemaEditor#createTable}. */
|
|
151
|
+
createTable(params: import('@fms-odata/spec-ts').CreateTableParams, opts?: SchemaOptions): Promise<unknown>;
|
|
152
|
+
/** Convenience: add fields to a table. See {@link SchemaEditor#addFields}. */
|
|
153
|
+
addFields(params: import('@fms-odata/spec-ts').AddFieldsParams, opts?: SchemaOptions): Promise<unknown>;
|
|
154
|
+
/** Convenience: delete a table (requires `confirm: true`). See {@link SchemaEditor#deleteTable}. */
|
|
155
|
+
deleteTable(tableName: string, opts: DeleteSchemaOptions): Promise<void>;
|
|
156
|
+
/** Convenience: delete a field (requires `confirm: true`). See {@link SchemaEditor#deleteField}. */
|
|
157
|
+
deleteField(tableName: string, fieldName: string, opts: DeleteSchemaOptions): Promise<void>;
|
|
158
|
+
/** Convenience: create an index. See {@link SchemaEditor#createIndex}. */
|
|
159
|
+
createIndex(tableName: string, fieldName: string, opts?: SchemaOptions): Promise<unknown>;
|
|
160
|
+
/** Convenience: delete an index. See {@link SchemaEditor#deleteIndex}. */
|
|
161
|
+
deleteIndex(tableName: string, fieldName: string, opts?: SchemaOptions): Promise<void>;
|
|
162
|
+
/** @internal */ private _webhookManager?;
|
|
163
|
+
/**
|
|
164
|
+
* Get a `WebhookManager` handle for webhook CRUD operations (create, remove,
|
|
165
|
+
* get, getAll, invoke). Requires FileMaker Server 2025+ (v22).
|
|
166
|
+
*
|
|
167
|
+
* ```ts
|
|
168
|
+
* await db.webhooks().create({ webhook: 'https://...', tableName: 'contact' })
|
|
169
|
+
* ```
|
|
170
|
+
*/
|
|
171
|
+
webhooks(): WebhookManager;
|
|
172
|
+
/** Convenience: create a webhook. See {@link WebhookManager#create}. */
|
|
173
|
+
createWebhook(params: import('@fms-odata/spec-ts').WebhookCreateParams, opts?: WebhookOptions): Promise<unknown>;
|
|
174
|
+
/** Convenience: delete a webhook by ID. See {@link WebhookManager#remove}. */
|
|
175
|
+
removeWebhook(id: string | number, opts?: WebhookOptions): Promise<unknown>;
|
|
176
|
+
/** Convenience: get a webhook by ID. See {@link WebhookManager#get}. */
|
|
177
|
+
getWebhook(id: string | number, opts?: WebhookOptions): Promise<unknown>;
|
|
178
|
+
/** Convenience: list all webhooks. See {@link WebhookManager#getAll}. */
|
|
179
|
+
getAllWebhooks(opts?: WebhookOptions): Promise<unknown>;
|
|
180
|
+
/** Convenience: manually invoke a webhook by ID. See {@link WebhookManager#invoke}. */
|
|
181
|
+
invokeWebhook(id: string | number, opts?: WebhookOptions): Promise<unknown>;
|
|
137
182
|
/**
|
|
138
183
|
* Create a new `$batch` builder for composing multiple OData operations
|
|
139
184
|
* into a single HTTP round-trip.
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAA+B,KAAK,iBAAiB,EAAE,KAAK,kBAAkB,EAAE,MAAM,WAAW,CAAA;AACxG,OAAO,EAAmB,KAAK,eAAe,EAAE,KAAK,aAAa,EAAE,MAAM,eAAe,CAAA;AACzF,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAgD,KAAK,aAAa,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAA;AAClH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AACjE,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,eAAe,EAGrB,MAAM,oBAAoB,CAAA;AAE3B;;;;GAIG;AACH,qBAAa,QAAQ;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAA;IAEtC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAA;IACjD,gBAAgB,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAiB;gBAE/C,OAAO,EAAE,eAAe;IAoBpC;;OAEG;IACH,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC;IAK9D;;;;;;;;OAQG;IACG,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,GAAE,kBAAuB,GAAG,OAAO,CAAC,CAAC,CAAC;IAIxF;;;OAGG;IACG,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,GAAE,kBAAuB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAIrF;;;;;;;;;OASG;IACG,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,aAAkB,GAAG,OAAO,CAAC,YAAY,CAAC;IAI3E;;;;;;;;;;;OAWG;IACG,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,aAAkB,GAAG,OAAO,CAAC,YAAY,CAAC;IAIhF;;;;;;;;OAQG;IACG,QAAQ,CAAC,IAAI,GAAE,eAAoB,GAAG,OAAO,CAAC,aAAa,CAAC;IAOlE;;OAEG;IACG,WAAW,CAAC,IAAI,GAAE,cAAmB,GAAG,OAAO,CAAC,MAAM,CAAC;IAW7D,gBAAgB,CAAC,OAAO,CAAC,gBAAgB,CAAmC;IAC5E,gBAAgB,CAAC,OAAO,CAAC,sBAAsB,CAAoC;IAEnF;;;;;;;;;;;;;;;OAeG;IACG,OAAO,IAAI,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAkB/C;;;;;;;;;;;OAWG;IACG,aAAa,IAAI,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IAYtD;;;;;;;;;;;;OAYG;IACG,WAAW,IAAI,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAMlD;;;;;;;;;;;OAWG;IACG,UAAU,CAAC,OAAO,EAAE,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAA+B,KAAK,iBAAiB,EAAE,KAAK,kBAAkB,EAAE,MAAM,WAAW,CAAA;AACxG,OAAO,EAAmB,KAAK,eAAe,EAAE,KAAK,aAAa,EAAE,MAAM,eAAe,CAAA;AACzF,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,YAAY,EAAE,KAAK,mBAAmB,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAA;AACxF,OAAO,EAAgD,KAAK,aAAa,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAA;AAClH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AACjE,OAAO,EAAE,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAA;AACnE,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,eAAe,EAGrB,MAAM,oBAAoB,CAAA;AAE3B;;;;GAIG;AACH,qBAAa,QAAQ;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAA;IAEtC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAA;IACjD,gBAAgB,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAiB;gBAE/C,OAAO,EAAE,eAAe;IAoBpC;;OAEG;IACH,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC;IAK9D;;;;;;;;OAQG;IACG,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,GAAE,kBAAuB,GAAG,OAAO,CAAC,CAAC,CAAC;IAIxF;;;OAGG;IACG,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,GAAE,kBAAuB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAIrF;;;;;;;;;OASG;IACG,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,aAAkB,GAAG,OAAO,CAAC,YAAY,CAAC;IAI3E;;;;;;;;;;;OAWG;IACG,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,aAAkB,GAAG,OAAO,CAAC,YAAY,CAAC;IAIhF;;;;;;;;OAQG;IACG,QAAQ,CAAC,IAAI,GAAE,eAAoB,GAAG,OAAO,CAAC,aAAa,CAAC;IAOlE;;OAEG;IACG,WAAW,CAAC,IAAI,GAAE,cAAmB,GAAG,OAAO,CAAC,MAAM,CAAC;IAW7D,gBAAgB,CAAC,OAAO,CAAC,gBAAgB,CAAmC;IAC5E,gBAAgB,CAAC,OAAO,CAAC,sBAAsB,CAAoC;IAEnF;;;;;;;;;;;;;;;OAeG;IACG,OAAO,IAAI,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAkB/C;;;;;;;;;;;OAWG;IACG,aAAa,IAAI,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IAYtD;;;;;;;;;;;;OAYG;IACG,WAAW,IAAI,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAMlD;;;;;;;;;;;OAWG;IACG,UAAU,CAAC,OAAO,EAAE,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAUjE,gBAAgB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAc;IAErD;;;;;;;;OAQG;IACH,MAAM,IAAI,YAAY;IAKtB,yEAAyE;IACnE,WAAW,CACf,MAAM,EAAE,OAAO,oBAAoB,EAAE,iBAAiB,EACtD,IAAI,GAAE,aAAkB,GACvB,OAAO,CAAC,OAAO,CAAC;IAInB,8EAA8E;IACxE,SAAS,CACb,MAAM,EAAE,OAAO,oBAAoB,EAAE,eAAe,EACpD,IAAI,GAAE,aAAkB,GACvB,OAAO,CAAC,OAAO,CAAC;IAInB,oGAAoG;IAC9F,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9E,oGAAoG;IAC9F,WAAW,CACf,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,mBAAmB,GACxB,OAAO,CAAC,IAAI,CAAC;IAIhB,0EAA0E;IACpE,WAAW,CACf,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,IAAI,GAAE,aAAkB,GACvB,OAAO,CAAC,OAAO,CAAC;IAInB,0EAA0E;IACpE,WAAW,CACf,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,IAAI,GAAE,aAAkB,GACvB,OAAO,CAAC,IAAI,CAAC;IAQhB,gBAAgB,CAAC,OAAO,CAAC,eAAe,CAAC,CAAgB;IAEzD;;;;;;;OAOG;IACH,QAAQ,IAAI,cAAc;IAK1B,wEAAwE;IAClE,aAAa,CACjB,MAAM,EAAE,OAAO,oBAAoB,EAAE,mBAAmB,EACxD,IAAI,GAAE,cAAmB,GACxB,OAAO,CAAC,OAAO,CAAC;IAInB,8EAA8E;IACxE,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,GAAE,cAAmB,GAAG,OAAO,CAAC,OAAO,CAAC;IAIrF,wEAAwE;IAClE,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,GAAE,cAAmB,GAAG,OAAO,CAAC,OAAO,CAAC;IAIlF,yEAAyE;IACnE,cAAc,CAAC,IAAI,GAAE,cAAmB,GAAG,OAAO,CAAC,OAAO,CAAC;IAIjE,uFAAuF;IACjF,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,GAAE,cAAmB,GAAG,OAAO,CAAC,OAAO,CAAC;IAIrF;;;;;;;;;;;;;;;;;OAiBG;IACH,KAAK,IAAI,KAAK;IAId,gBAAgB;IAChB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;CAKvC;AAGD,YAAY,EAAE,cAAc,EAAE,CAAA"}
|