@model-match/api 3.46.0 → 3.48.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/RELEASE_NOTES.md +19 -0
- package/dist/{index-D5lJRhPf.d.mts → index-cCkX3-4W.d.mts} +878 -71
- package/dist/index.d.mts +2 -2
- package/dist/index.mjs +1 -1
- package/dist/slim/index.d.mts +52 -6
- package/dist/slim/index.mjs +154 -6
- package/dist/{src-B0B4SZ9p.mjs → src-CCp2TVpk.mjs} +170 -4
- package/openapi.json +2347 -372
- package/package.json +1 -1
package/RELEASE_NOTES.md
CHANGED
|
@@ -2,6 +2,25 @@
|
|
|
2
2
|
|
|
3
3
|
Changes to `@model-match/api` that affect how you use it. Each version is generated from the ModelMatch API's OpenAPI spec, so new endpoints and fields appear in the [API reference](https://docs.modelmatch.com/developers) as they ship.
|
|
4
4
|
|
|
5
|
+
## 3.48.0
|
|
6
|
+
|
|
7
|
+
- **Branches: `licenses` on each row.** `getBranch` and `listBranches` gain `licenses`, one entry per state license or registration on file for the branch, authorized or not: `regulator`, `licenseType`, `licenseNumber`, `issueDate`, `status`, `statusDate`, `isAuthorized` and `authorizedSince` (when the current authorized period began; `null` when the license is not authorized). `licenses` is `null` when the branch's licenses aren't on file.
|
|
8
|
+
|
|
9
|
+
- **Branches: `licensedSince` filter.** `listBranches`, `countBranches` and branch bulk exports accept `licensedSince: { gte?, lte? }` (`YYYY-MM-DD`, inclusive) to find branches by the date they were first licensed, the earliest `issueDate` across their `licenses`. `{ gte: "2026-07-01" }` returns branches whose licenses were all issued on or after that date, so an established branch that added a state recently does not match. Branches with no license dates never match. A range that matches more than 5,000 branches is rejected with a 400; narrow the range.
|
|
10
|
+
|
|
11
|
+
- **Saved filters: sharing.** Share a saved filter with specific workspace members (`grantSavedFilterAccess` / `revokeSavedFilterAccess`, as `viewer` or `editor`) or with the whole workspace (`updateSavedFilter` with `visibility: "organization"`, optionally `orgWidePermission: "editor"`). `getSavedFilterShares` returns who a filter is shared with and `listSavedFilterShareableMembers` lists the members it can be shared with. `listSavedFilters` and `getSavedFilter` now include filters shared with you, and every saved filter carries `ownerUserId`, `ownerName`, `isOwner`, `permission`, `canEdit`, `canDelete` and `canManageSharing`. `listSavedFilters` accepts `ownership` (`mine` or `shared`). Only the owner or a workspace admin can delete a filter or change who it is shared with; filters shared with you don't count toward your saved-filter limit.
|
|
12
|
+
|
|
13
|
+
- **Breaking: saved-filter icons are emoji only.** `createSavedFilter` and `updateSavedFilter` accept `icon: { type: "emoji", emoji }` (or `null`); the `color` and named `icon` variants are removed and now return 400. Existing saved filters with a color or named icon were converted to the closest emoji (named icons by meaning, e.g. a flag icon becomes 🚩; color dots become the nearest colored circle), so reads only ever return the emoji shape. Update any code that builds `{ type: "color" }` or `{ type: "icon" }`.
|
|
14
|
+
- **Saved filters report usage.** Every saved filter carries `useCount` and `lastUsedAt`. A filter counts as used when it is fetched with `getSavedFilter`, or when a list request (for example `listOriginators`) sends its id in the `X-MM-Saved-Filter-Id` header. Count requests do not add a use.
|
|
15
|
+
- **`listAgentOfficeGroups` is free.** Listing the agent office groups no longer uses credits.
|
|
16
|
+
|
|
17
|
+
## 3.47.0
|
|
18
|
+
|
|
19
|
+
- **CRM import: safe re-runs with external keys.** `importCrmRecords` rows accept `externalId` (the record's id in your source system) and the batch accepts `externalSource`. A known key updates that record instead of creating a duplicate, so re-running an import or retrying a timed-out request is safe. A conflicting key fails the row with the new `EXTERNAL_ID_CONFLICT` code.
|
|
20
|
+
- **CRM import: lists, statuses and dated notes per row.** Rows accept `lists` (list names the record joins) and `listStatus`; set `createMissingLists` (optionally with `listStatuses`) to create lists that don't exist yet. Rows also accept `timelineNotes: [{ body, occurredAt?, key? }]`, added as notes dated `occurredAt`. A note the record already has is skipped on re-import.
|
|
21
|
+
- **CRM import: dry run.** `dryRun: true` returns the summary the import would produce, with the same per-row outcomes and error codes, without writing anything.
|
|
22
|
+
- **CRM import history and undo.** Send the same `importRunId` (and optionally `fileName`) with every batch so a split import is recorded as one run. New: `listCrmImports`, `getCrmImport`, `listCrmImportRows` (each row's outcome, paged by `after`), `checkCrmImport` (what the file contained compared with what's in the CRM now) and `undoCrmImport` (`dryRun` for counts). Undo removes only records the run created that nobody has touched since, plus lists it created that end up empty. Records it updated are never removed.
|
|
23
|
+
|
|
5
24
|
## 3.46.0
|
|
6
25
|
|
|
7
26
|
- **Agents: office group filters (entitlement-gated).** `listAgents` / `countAgents` and agents bulk delivery accept `officeGroups` / `excludeOfficeGroups`: brokerage brand group keys (`compass_legacy`, `anywhere`, `franchise`, `others`) matched on the agent's current office. `listAgentOfficeGroups` (`GET /v1/agents/office-groups`) returns the group definitions. Both need the workspace's `rocket-filter` entitlement. Without it, the filters answer 403 `office_groups_unavailable` and the definitions list is empty.
|