@propertysimple/client 0.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.
Files changed (54) hide show
  1. package/API.md +79 -0
  2. package/README.md +348 -0
  3. package/client/src/directory-sync.d.ts +123 -0
  4. package/client/src/directory-sync.js +404 -0
  5. package/client/src/index.d.ts +5123 -0
  6. package/client/src/index.js +285 -0
  7. package/client/src/managed-sync.d.ts +129 -0
  8. package/client/src/managed-sync.js +410 -0
  9. package/contracts/src/catalog-derived.d.ts +7 -0
  10. package/contracts/src/catalog-derived.js +78 -0
  11. package/contracts/src/catalog-fields.d.ts +231 -0
  12. package/contracts/src/catalog-fields.js +194 -0
  13. package/contracts/src/catalog-inventory.d.ts +14 -0
  14. package/contracts/src/catalog-inventory.js +10 -0
  15. package/contracts/src/directory-execution.d.ts +320 -0
  16. package/contracts/src/directory-execution.js +122 -0
  17. package/contracts/src/directory-identity.d.ts +1255 -0
  18. package/contracts/src/directory-identity.js +129 -0
  19. package/contracts/src/directory-sales.d.ts +333 -0
  20. package/contracts/src/directory-sales.js +102 -0
  21. package/contracts/src/directory.d.ts +1088 -0
  22. package/contracts/src/directory.js +179 -0
  23. package/contracts/src/index.d.ts +18 -0
  24. package/contracts/src/index.js +18 -0
  25. package/contracts/src/intelligence.d.ts +366 -0
  26. package/contracts/src/intelligence.js +157 -0
  27. package/contracts/src/location-serving.d.ts +13 -0
  28. package/contracts/src/location-serving.js +89 -0
  29. package/contracts/src/location.d.ts +73 -0
  30. package/contracts/src/location.js +75 -0
  31. package/contracts/src/openapi.d.ts +22 -0
  32. package/contracts/src/openapi.js +109 -0
  33. package/contracts/src/operations.d.ts +8316 -0
  34. package/contracts/src/operations.js +56 -0
  35. package/contracts/src/opportunity-events.d.ts +38 -0
  36. package/contracts/src/opportunity-events.js +69 -0
  37. package/contracts/src/platform-api.d.ts +12 -0
  38. package/contracts/src/platform-api.js +1 -0
  39. package/contracts/src/professional-intelligence.d.ts +256 -0
  40. package/contracts/src/professional-intelligence.js +90 -0
  41. package/contracts/src/property-features.d.ts +94 -0
  42. package/contracts/src/property-features.js +398 -0
  43. package/contracts/src/publication.d.ts +44 -0
  44. package/contracts/src/publication.js +42 -0
  45. package/contracts/src/routes.d.ts +437 -0
  46. package/contracts/src/routes.js +496 -0
  47. package/contracts/src/schemas.d.ts +3198 -0
  48. package/contracts/src/schemas.js +674 -0
  49. package/contracts/src/search.d.ts +2630 -0
  50. package/contracts/src/search.js +223 -0
  51. package/contracts/src/smart-feed.d.ts +3731 -0
  52. package/contracts/src/smart-feed.js +109 -0
  53. package/openapi.json +43542 -0
  54. package/package.json +60 -0
@@ -0,0 +1,437 @@
1
+ import type { Operation } from './schemas.js';
2
+ export interface RouteDefinition {
3
+ method: 'GET' | 'POST';
4
+ path: string;
5
+ operation: Operation;
6
+ scope?: string;
7
+ status?: number;
8
+ summary: string;
9
+ /** POST search requests carry a JSON query but do not mutate or reserve work. */
10
+ readOnly?: boolean;
11
+ }
12
+ /** Keep HTTP/SDK/OpenAPI paths together so a renamed endpoint cannot strand consumers. */
13
+ export declare const routes: readonly [{
14
+ readonly method: "GET";
15
+ readonly path: "/v1/search/features";
16
+ readonly operation: "searchFeatures";
17
+ readonly scope: "catalog:read";
18
+ readonly summary: "Read typed feature definitions and supported search operators.";
19
+ }, {
20
+ readonly method: "POST";
21
+ readonly path: "/v1/search/listings";
22
+ readonly operation: "searchListings";
23
+ readonly scope: "catalog:read";
24
+ readonly readOnly: true;
25
+ readonly summary: "Search current inventory with typed hard constraints and evidence.";
26
+ }, {
27
+ readonly method: "POST";
28
+ readonly path: "/v1/search/facets";
29
+ readonly operation: "searchFacets";
30
+ readonly scope: "catalog:read";
31
+ readonly readOnly: true;
32
+ readonly summary: "Read authorized refinement counts for the same normalized search.";
33
+ }, {
34
+ readonly method: "POST";
35
+ readonly path: "/v1/search/map";
36
+ readonly operation: "searchMap";
37
+ readonly scope: "catalog:read";
38
+ readonly readOnly: true;
39
+ readonly summary: "Read bounded map points and clusters with matching search semantics.";
40
+ }, {
41
+ readonly method: "GET";
42
+ readonly path: "/v1/search/suggest";
43
+ readonly operation: "searchSuggest";
44
+ readonly scope: "catalog:read";
45
+ readonly summary: "Suggest registered features and permitted listing locations.";
46
+ }, {
47
+ readonly method: "POST";
48
+ readonly path: "/v1/search/interpret";
49
+ readonly operation: "searchInterpret";
50
+ readonly scope: "catalog:read";
51
+ readonly readOnly: true;
52
+ readonly summary: "Interpret a bounded search vocabulary into editable filters and unresolved text.";
53
+ }, {
54
+ readonly method: "GET";
55
+ readonly path: "/v1/directory/canonical-identities/{id}";
56
+ readonly operation: "directoryGetCanonicalIdentity";
57
+ readonly scope: "directory:read";
58
+ readonly summary: "Resolve reviewed identity links using only permitted source members.";
59
+ }, {
60
+ readonly method: "POST";
61
+ readonly path: "/v1/directory/identity-merges";
62
+ readonly operation: "directoryMergeIdentities";
63
+ readonly scope: "directory:identity:write";
64
+ readonly summary: "Record an audited identity merge with expected source bindings.";
65
+ }, {
66
+ readonly method: "POST";
67
+ readonly path: "/v1/directory/identity-splits";
68
+ readonly operation: "directorySplitIdentity";
69
+ readonly scope: "directory:identity:write";
70
+ readonly summary: "Split a reviewed identity without moving account or action history.";
71
+ }, {
72
+ readonly method: "GET";
73
+ readonly path: "/v1/directory/entities/{id}/inventory";
74
+ readonly operation: "directoryListInventory";
75
+ readonly scope: "directory:read";
76
+ readonly summary: "Read represented or current-roster inventory with optional verified corporate rollup.";
77
+ }, {
78
+ readonly method: "GET";
79
+ readonly path: "/v1/directory/sales-candidates";
80
+ readonly operation: "discoverDirectorySalesCandidates";
81
+ readonly scope: "directory:sales";
82
+ readonly summary: "Discover a bounded authorized page of subjects for sales-plan evaluation.";
83
+ }, {
84
+ readonly method: "POST";
85
+ readonly path: "/v1/directory/action-claims";
86
+ readonly operation: "claimDirectoryActions";
87
+ readonly scope: "directory:execute";
88
+ readonly summary: "Reserve directory recommendations under a separately reviewed execution policy.";
89
+ }, {
90
+ readonly method: "POST";
91
+ readonly path: "/v1/directory/actions/{id}/attempts";
92
+ readonly operation: "startDirectoryAttempt";
93
+ readonly scope: "directory:execute";
94
+ readonly summary: "Recheck authority and start one attempt, or return reconciliation-only replay.";
95
+ }, {
96
+ readonly method: "GET";
97
+ readonly path: "/v1/directory/actions/{id}";
98
+ readonly operation: "getDirectoryAction";
99
+ readonly scope: "directory:execute";
100
+ readonly summary: "Read a product-scoped directory action and its execution state.";
101
+ }, {
102
+ readonly method: "POST";
103
+ readonly path: "/v1/directory/action-outcomes";
104
+ readonly operation: "recordDirectoryActionOutcomes";
105
+ readonly scope: "directory:execute";
106
+ readonly summary: "Record authenticated provider receipts without retrying ambiguous effects.";
107
+ }, {
108
+ readonly method: "POST";
109
+ readonly path: "/v1/directory/profile-observations";
110
+ readonly operation: "directoryRecordProfile";
111
+ readonly scope: "directory:write";
112
+ readonly summary: "Record a trusted producer’s scoped profile evidence.";
113
+ }, {
114
+ readonly method: "POST";
115
+ readonly path: "/v1/directory/relationship-observations";
116
+ readonly operation: "directoryRecordRelationship";
117
+ readonly scope: "directory:write";
118
+ readonly summary: "Record a trusted producer’s evidenced relationship.";
119
+ }, {
120
+ readonly method: "GET";
121
+ readonly path: "/v1/directory/professionals";
122
+ readonly operation: "directoryListProfessionals";
123
+ readonly scope: "directory:read";
124
+ readonly summary: "Read permitted source-backed professionals.";
125
+ }, {
126
+ readonly method: "GET";
127
+ readonly path: "/v1/directory/offices";
128
+ readonly operation: "directoryListOffices";
129
+ readonly scope: "directory:read";
130
+ readonly summary: "Read permitted source offices.";
131
+ }, {
132
+ readonly method: "GET";
133
+ readonly path: "/v1/directory/organizations";
134
+ readonly operation: "directoryListOrganizations";
135
+ readonly scope: "directory:read";
136
+ readonly summary: "Read evidenced business and brand observations.";
137
+ }, {
138
+ readonly method: "GET";
139
+ readonly path: "/v1/directory/teams";
140
+ readonly operation: "directoryListTeams";
141
+ readonly scope: "directory:read";
142
+ readonly summary: "Read evidenced teams.";
143
+ }, {
144
+ readonly method: "GET";
145
+ readonly path: "/v1/directory/entities/{id}";
146
+ readonly operation: "directoryGetEntity";
147
+ readonly scope: "directory:read";
148
+ readonly summary: "Read a scoped professional, office, organization or team.";
149
+ }, {
150
+ readonly method: "GET";
151
+ readonly path: "/v1/directory/legacy-agents/{id}";
152
+ readonly operation: "directoryResolveAgent";
153
+ readonly scope: "directory:read";
154
+ readonly summary: "Resolve a listing agent ID to its permitted public directory identity.";
155
+ }, {
156
+ readonly method: "GET";
157
+ readonly path: "/v1/directory/identities";
158
+ readonly operation: "directoryResolveIdentity";
159
+ readonly scope: "directory:read";
160
+ readonly summary: "Resolve a typed directory source identity.";
161
+ }, {
162
+ readonly method: "GET";
163
+ readonly path: "/v1/directory/relationships";
164
+ readonly operation: "directoryListRelationships";
165
+ readonly scope: "directory:read";
166
+ readonly summary: "Read bounded evidenced relationships.";
167
+ }, {
168
+ readonly method: "GET";
169
+ readonly path: "/v1/directory/entities/{id}/contacts";
170
+ readonly operation: "directoryGetContacts";
171
+ readonly scope: "directory:contacts";
172
+ readonly summary: "Read purpose-permitted directory contact endpoints.";
173
+ }, {
174
+ readonly method: "GET";
175
+ readonly path: "/v1/directory/entities/{id}/metrics";
176
+ readonly operation: "directoryGetMetrics";
177
+ readonly scope: "directory:read";
178
+ readonly summary: "Read authorized observed inventory metrics.";
179
+ }, {
180
+ readonly method: "POST";
181
+ readonly path: "/v1/directory/snapshots";
182
+ readonly operation: "createDirectorySnapshot";
183
+ readonly scope: "directory:sync";
184
+ readonly status: 202;
185
+ readonly summary: "Capture a directory or combined feed boundary.";
186
+ }, {
187
+ readonly method: "GET";
188
+ readonly path: "/v1/directory/snapshots/{id}";
189
+ readonly operation: "getDirectorySnapshot";
190
+ readonly scope: "directory:sync";
191
+ readonly summary: "Read snapshot scope, boundary and expiry.";
192
+ }, {
193
+ readonly method: "GET";
194
+ readonly path: "/v1/directory/snapshots/{id}/items";
195
+ readonly operation: "listDirectorySnapshotItems";
196
+ readonly scope: "directory:sync";
197
+ readonly summary: "Page immutable typed snapshot resources.";
198
+ }, {
199
+ readonly method: "GET";
200
+ readonly path: "/v1/directory/changes";
201
+ readonly operation: "listDirectoryChanges";
202
+ readonly scope: "directory:sync";
203
+ readonly summary: "Replay typed changes with complete commit-group boundaries.";
204
+ }, {
205
+ readonly method: "POST";
206
+ readonly path: "/v1/directory/sales-plans";
207
+ readonly operation: "createDirectorySalesPlan";
208
+ readonly scope: "directory:sales";
209
+ readonly summary: "Prepare bounded professional or organization sales recommendations.";
210
+ }, {
211
+ readonly method: "GET";
212
+ readonly path: "/v1/directory/sales-plans/{id}";
213
+ readonly operation: "getDirectorySalesPlan";
214
+ readonly scope: "directory:sales";
215
+ readonly summary: "Read a scoped recommendation-only directory sales plan.";
216
+ }, {
217
+ readonly method: "POST";
218
+ readonly path: "/v1/directory/assessments";
219
+ readonly operation: "requestDirectoryAssessment";
220
+ readonly scope: "intelligence:judge";
221
+ readonly status: 202;
222
+ readonly summary: "Queue a canonical-evidence directory assessment.";
223
+ }, {
224
+ readonly method: "GET";
225
+ readonly path: "/v1/directory/assessments/latest";
226
+ readonly operation: "latestDirectoryAssessment";
227
+ readonly scope: "intelligence:read";
228
+ readonly summary: "Read prepared directory intelligence with current evidence checks.";
229
+ }, {
230
+ readonly method: "GET";
231
+ readonly path: "/v1/directory/assessments/{id}";
232
+ readonly operation: "getDirectoryAssessment";
233
+ readonly scope: "intelligence:read";
234
+ readonly summary: "Read a purpose-scoped directory assessment.";
235
+ }, {
236
+ readonly method: "POST";
237
+ readonly path: "/v1/publications";
238
+ readonly operation: "reportPublication";
239
+ readonly scope: "publications:write";
240
+ readonly summary: "Acknowledge this product’s current listing publication.";
241
+ }, {
242
+ readonly method: "GET";
243
+ readonly path: "/v1/listings/{id}/destination";
244
+ readonly operation: "resolveDestination";
245
+ readonly scope: "catalog:read";
246
+ readonly summary: "Resolve a current product-reported destination.";
247
+ }, {
248
+ readonly method: "POST";
249
+ readonly path: "/v1/judgments";
250
+ readonly operation: "evaluateJudgment";
251
+ readonly scope: "intelligence:judge";
252
+ readonly summary: "Evaluate a bounded versioned task against caller-supplied evidence.";
253
+ }, {
254
+ readonly method: "GET";
255
+ readonly path: "/v1/judgments/{id}";
256
+ readonly operation: "getJudgment";
257
+ readonly scope: "intelligence:read";
258
+ readonly summary: "Read this credential subject’s durable judgment audit.";
259
+ }, {
260
+ readonly method: "GET";
261
+ readonly path: "/v1/intelligence-capabilities";
262
+ readonly operation: "intelligenceCapabilities";
263
+ readonly scope: "intelligence:read";
264
+ readonly summary: "Read implemented judgment tasks and explicit unsupported capabilities.";
265
+ }, {
266
+ readonly method: "GET";
267
+ readonly path: "/v1/capabilities";
268
+ readonly operation: "capabilities";
269
+ readonly summary: "Read this caller’s supported capabilities.";
270
+ }, {
271
+ readonly method: "GET";
272
+ readonly path: "/v1/catalog-health";
273
+ readonly operation: "getCatalogHealth";
274
+ readonly scope: "catalog:read";
275
+ readonly summary: "Read authorized source freshness independently of catalog changes.";
276
+ }, {
277
+ readonly method: "GET";
278
+ readonly path: "/v1/listings";
279
+ readonly operation: "listListings";
280
+ readonly scope: "catalog:read";
281
+ readonly summary: "Search the current authorized catalog.";
282
+ }, {
283
+ readonly method: "GET";
284
+ readonly path: "/v1/listings/map";
285
+ readonly operation: "listListingMap";
286
+ readonly scope: "catalog:read";
287
+ readonly summary: "Read bounded map markers within a required geographic box.";
288
+ }, {
289
+ readonly method: "GET";
290
+ readonly path: "/v1/listings/{id}/similar";
291
+ readonly operation: "listSimilarListings";
292
+ readonly scope: "catalog:read";
293
+ readonly summary: "Rank a bounded local shortlist using transparent fact similarity.";
294
+ }, {
295
+ readonly method: "GET";
296
+ readonly path: "/v1/listings/{id}";
297
+ readonly operation: "getListing";
298
+ readonly scope: "catalog:read";
299
+ readonly summary: "Read a current listing.";
300
+ }, {
301
+ readonly method: "GET";
302
+ readonly path: "/v1/listings/{id}/contacts";
303
+ readonly operation: "getListingContacts";
304
+ readonly scope: "contacts:read";
305
+ readonly summary: "Read protected source contact routing for a current active listing.";
306
+ }, {
307
+ readonly method: "GET";
308
+ readonly path: "/v1/listing-identities";
309
+ readonly operation: "resolveListingIdentity";
310
+ readonly scope: "catalog:read";
311
+ readonly summary: "Resolve a namespaced source alias.";
312
+ }, {
313
+ readonly method: "GET";
314
+ readonly path: "/v1/agent-identities";
315
+ readonly operation: "resolveAgentIdentity";
316
+ readonly scope: "agents:read";
317
+ readonly summary: "Resolve a namespaced agent source alias.";
318
+ }, {
319
+ readonly method: "GET";
320
+ readonly path: "/v1/agents/{id}";
321
+ readonly operation: "getAgent";
322
+ readonly scope: "agents:read";
323
+ readonly summary: "Read permitted agent attribution.";
324
+ }, {
325
+ readonly method: "GET";
326
+ readonly path: "/v1/agents/{id}/listings";
327
+ readonly operation: "listAgentListings";
328
+ readonly scope: "catalog:read";
329
+ readonly summary: "Read an agent’s authorized inventory.";
330
+ }, {
331
+ readonly method: "GET";
332
+ readonly path: "/v1/classification-schema";
333
+ readonly operation: "classificationSchema";
334
+ readonly scope: "catalog:read";
335
+ readonly summary: "Read the current classification vocabulary.";
336
+ }, {
337
+ readonly method: "POST";
338
+ readonly path: "/v1/catalog-snapshots";
339
+ readonly operation: "createSnapshot";
340
+ readonly scope: "catalog:sync";
341
+ readonly status: 202;
342
+ readonly summary: "Create a consistent snapshot with its replay cursor.";
343
+ }, {
344
+ readonly method: "GET";
345
+ readonly path: "/v1/catalog-snapshots/{id}";
346
+ readonly operation: "getSnapshot";
347
+ readonly scope: "catalog:sync";
348
+ readonly summary: "Read snapshot readiness and expiry.";
349
+ }, {
350
+ readonly method: "GET";
351
+ readonly path: "/v1/catalog-snapshots/{id}/items";
352
+ readonly operation: "listSnapshotItems";
353
+ readonly scope: "catalog:sync";
354
+ readonly summary: "Page an immutable snapshot.";
355
+ }, {
356
+ readonly method: "GET";
357
+ readonly path: "/v1/catalog-changes";
358
+ readonly operation: "listCatalogChanges";
359
+ readonly scope: "catalog:sync";
360
+ readonly summary: "Replay authorized projection changes and removals.";
361
+ }, {
362
+ readonly method: "GET";
363
+ readonly path: "/v1/events";
364
+ readonly operation: "listEvents";
365
+ readonly scope: "catalog:sync";
366
+ readonly summary: "Replay committed domain occurrences.";
367
+ }, {
368
+ readonly method: "GET";
369
+ readonly path: "/v1/action-profiles";
370
+ readonly operation: "listActionProfiles";
371
+ readonly scope: "opportunities:read";
372
+ readonly summary: "Read published action profiles.";
373
+ }, {
374
+ readonly method: "GET";
375
+ readonly path: "/v1/opportunities";
376
+ readonly operation: "listOpportunities";
377
+ readonly scope: "opportunities:read";
378
+ readonly summary: "Read current candidates without reserving actions.";
379
+ }, {
380
+ readonly method: "POST";
381
+ readonly path: "/v1/opportunity-plans";
382
+ readonly operation: "createPlan";
383
+ readonly scope: "plans:create";
384
+ readonly status: 202;
385
+ readonly summary: "Create or reuse an actual persisted selection.";
386
+ }, {
387
+ readonly method: "GET";
388
+ readonly path: "/v1/opportunity-plans/{id}";
389
+ readonly operation: "getPlan";
390
+ readonly scope: "opportunities:read";
391
+ readonly summary: "Read plan progress, coverage and execution counts.";
392
+ }, {
393
+ readonly method: "GET";
394
+ readonly path: "/v1/opportunity-plans/{id}/items";
395
+ readonly operation: "listPlanItems";
396
+ readonly scope: "opportunities:read";
397
+ readonly summary: "Read stable selection pages.";
398
+ }, {
399
+ readonly method: "POST";
400
+ readonly path: "/v1/dispatch-batches";
401
+ readonly operation: "claimDispatchBatch";
402
+ readonly scope: "actions:dispatch";
403
+ readonly status: 201;
404
+ readonly summary: "Reserve executable actions after critical revalidation.";
405
+ }, {
406
+ readonly method: "POST";
407
+ readonly path: "/v1/actions/{id}/attempts";
408
+ readonly operation: "startAttempt";
409
+ readonly scope: "actions:dispatch";
410
+ readonly status: 201;
411
+ readonly summary: "Fence and record dispatch before an external effect.";
412
+ }, {
413
+ readonly method: "POST";
414
+ readonly path: "/v1/action-outcomes";
415
+ readonly operation: "recordActionOutcomes";
416
+ readonly scope: "actions:dispatch";
417
+ readonly summary: "Record idempotent sender receipts with per-item results.";
418
+ }, {
419
+ readonly method: "POST";
420
+ readonly path: "/v1/product-context-events";
421
+ readonly operation: "recordProductContextEvents";
422
+ readonly scope: "product-events:write";
423
+ readonly summary: "Ingest owned product context snapshots and deltas.";
424
+ }, {
425
+ readonly method: "POST";
426
+ readonly path: "/v1/webhook-subscriptions";
427
+ readonly operation: "createWebhookSubscription";
428
+ readonly scope: "webhooks:manage";
429
+ readonly status: 201;
430
+ readonly summary: "Register a subscription only where delivery support is configured.";
431
+ }, {
432
+ readonly method: "GET";
433
+ readonly path: "/v1/operations/readiness";
434
+ readonly operation: "readiness";
435
+ readonly scope: "operations:read";
436
+ readonly summary: "Inspect configured operational dependencies.";
437
+ }];