@registrystack/client 0.29.0 → 0.30.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
@@ -1,7 +1,7 @@
1
1
  # @registrystack/client
2
2
 
3
- One versioned Node.js package for the Discovery, Evidence, Relay, and Base
4
- Registry Engine client APIs in Registry Stack.
3
+ One versioned Node.js package for the Discovery, Evidence, Relay, Base Registry
4
+ Engine, and Casework client APIs in Registry Stack.
5
5
 
6
6
  ## Install
7
7
 
@@ -11,17 +11,20 @@ npm install "@registrystack/client@<version>"
11
11
 
12
12
  Requires Node.js 22.12 or newer. Supported targets are macOS arm64, Linux
13
13
  arm64 with glibc, and Linux x64 with glibc; installing the package pulls in
14
- one platform-specific optional dependency containing all four native
14
+ one platform-specific optional dependency containing all five native
15
15
  bindings.
16
16
 
17
17
  ## Usage
18
18
 
19
19
  ```js
20
- const { discovery, evidence, relay, breg } = require('@registrystack/client');
20
+ const { discovery, evidence, relay, breg, casework } = require('@registrystack/client');
21
21
 
22
22
  const registry = new breg.BaseRegistryClient({
23
23
  baseUrl: 'https://registry.example.invalid/',
24
24
  });
25
+ const work = new casework.CaseworkClient({
26
+ baseUrl: 'https://casework.example.invalid/',
27
+ });
25
28
  ```
26
29
 
27
30
  ## Products
@@ -32,6 +35,8 @@ const registry = new breg.BaseRegistryClient({
32
35
  assertions.
33
36
  - `relay`: Registry Relay, scoped read-only APIs over existing sources.
34
37
  - `breg`: Base Registry Engine, records, contracts, writes, and lifecycle.
38
+ - `casework`: Registry Casework, staff inbox, claims, drafts, decisions,
39
+ recovery, history, holdings, and directory bootstrap.
35
40
 
36
41
  Each product remains in its own namespace because its routing,
37
42
  authentication, errors, and verification rules are different.
@@ -63,7 +68,8 @@ consumer does not need it.
63
68
  ## Base Registry Engine notes
64
69
 
65
70
  `breg.BaseRegistryClient.registryContract()` returns caller-filtered
66
- `operations` with typed field, request, and list-query descriptors; those
71
+ `operations` with typed field, readable request field, request, and list-query
72
+ descriptors; those
67
73
  descriptions grant no authority, so select the opaque create, patch, and
68
74
  lifecycle authorities from that same contract before executing a mutation.
69
75
  Methods ending in `Json` keep values exact across the Node number boundary:
@@ -81,6 +87,21 @@ standalone client packages remain available for earlier versions, but the
81
87
  release process does not publish new standalone versions once this package
82
88
  is active.
83
89
 
90
+ The `casework` namespace is part of the unified package beginning with
91
+ Registry Stack v0.30.0.
92
+
93
+ ## Casework notes
94
+
95
+ The Casework module is for a trusted server host. Each call takes that request's
96
+ bearer token and selected Casework profile; source-reading calls also take the
97
+ selected source profile. The client does not retain them. Browsers should send
98
+ only the host's session cookie. Claim, release, and decide consume the
99
+ caller-filtered action returned on the item, including its exact route and
100
+ `ifMatch` revision. Mutations require a caller-controlled idempotency key and
101
+ are never retried automatically. After a lost response, use
102
+ `recoverDecisionByKey` with the original key so recovery does not depend on the
103
+ attempt identifier being received.
104
+
84
105
  ## Documentation
85
106
 
86
107
  - [Client API reference](https://docs.registrystack.org/reference/client-api/)
package/breg/client.d.ts CHANGED
@@ -1,5 +1,8 @@
1
1
  export type JsonScalar = string | number | boolean | null
2
2
  export type JsonValue = JsonScalar | ReadonlyArray<JsonValue> | { readonly [key: string]: JsonValue }
3
+ /** Structured mutation inputs reject integer-valued numbers outside
4
+ * `Number.isSafeInteger`. Use the corresponding `...Json` method for exact
5
+ * wider integer values. */
3
6
  export type JsonObject = { readonly [key: string]: JsonValue }
4
7
  /** An integer that satisfies `Number.isSafeInteger` and the option's documented bounds. */
5
8
  export type SafeInteger = number
@@ -40,17 +43,46 @@ export interface BaseRegistryClientConfig {
40
43
 
41
44
  export type RecordFormat = 'json' | 'json-ld'
42
45
 
43
- export interface RecordOptions {
46
+ export interface RecordProjectionOptions {
44
47
  select?: ReadonlyArray<string> | null
45
48
  accessProfile?: string | null
46
49
  format?: RecordFormat | null
47
50
  }
48
51
 
49
- export interface ListOptions extends RecordOptions {
52
+ export interface RecordOptions extends RecordProjectionOptions {
53
+ requestHistoryAfterProposalVersion?: SafeInteger | null
54
+ }
55
+
56
+ export interface ListOptions extends RecordProjectionOptions {
57
+ top?: SafeInteger | null
58
+ filter?: string | null
59
+ orderby?: string | null
60
+ count?: boolean | null
61
+ bbox?: BoundingBox | null
62
+ }
63
+
64
+ export interface CollectionOptions extends RecordProjectionOptions {
65
+ top?: SafeInteger | null
66
+ filter?: string | null
67
+ orderby?: string | null
68
+ count?: boolean | null
69
+ }
70
+ export interface AsOfListOptions extends CollectionOptions { asOf: string }
71
+ export interface SnapshotListOptions extends CollectionOptions {
72
+ snapshot?: string | null
73
+ validAt?: string | null
74
+ }
75
+ export type BoundingBox = readonly [west: string, south: string, east: string, north: string]
76
+ export interface GeoJsonOptions {
77
+ select?: ReadonlyArray<string> | null
78
+ accessProfile?: string | null
79
+ }
80
+ export interface GeoJsonListOptions extends GeoJsonOptions {
50
81
  top?: SafeInteger | null
51
82
  filter?: string | null
52
83
  orderby?: string | null
53
84
  count?: boolean | null
85
+ bbox?: BoundingBox | null
54
86
  }
55
87
 
56
88
  export interface ListContinuation {
@@ -62,14 +94,92 @@ export interface ListContinuation {
62
94
  datasetIdentifier: string
63
95
  entityTypeIdentifier: string
64
96
  }
97
+ export type CurrentListContinuation = ListContinuation
98
+ export interface AsOfListContinuation extends ListContinuation { asOf: string }
99
+ export interface SnapshotListContinuation extends ListContinuation {
100
+ snapshot: string
101
+ validAt?: string
102
+ }
103
+ export interface RelationshipListContinuation extends ListContinuation {
104
+ rootRecordIdentifier: string
105
+ pathRoute: string
106
+ }
107
+ export interface GeoJsonListContinuation {
108
+ route: string
109
+ skiptoken: string
110
+ accessProfile?: string
111
+ }
65
112
 
66
113
  export interface RegistryRecord {
67
114
  recordIdentifier: string
68
115
  revisionIdentifier: string
69
116
  domainData: Readonly<Record<string, JsonValue>>
117
+ request?: BRegRequestMetadata
70
118
  readonly [member: string]: JsonValue | undefined
71
119
  }
72
120
 
121
+ export type BRegRequestReviewStage = JsonObject & {
122
+ readonly id: string
123
+ readonly approvals: SafeInteger
124
+ readonly excludeSubmitter: boolean
125
+ readonly excludePreviousReviewers?: boolean
126
+ }
127
+ export type BRegRequestReviewState = JsonObject & {
128
+ readonly stages: ReadonlyArray<BRegRequestReviewStage>
129
+ readonly submittedAt: string
130
+ readonly pendingStage: string | null
131
+ readonly stageEnteredAt: string | null
132
+ }
133
+ export type BRegRequestReviewTiming = JsonObject & {
134
+ readonly firstSubmittedAt: string
135
+ readonly pausedMilliseconds: SafeInteger
136
+ readonly pauseStartedAt: string | null
137
+ readonly completedAt: string | null
138
+ }
139
+ export type BRegRequestDecision = JsonObject & {
140
+ readonly stageId: string
141
+ readonly kind: 'approve' | 'reject' | 'request_revision'
142
+ readonly decidedAt: string
143
+ readonly reasonPresent: boolean
144
+ readonly reason?: string
145
+ readonly actorReference?: string
146
+ }
147
+ export type BRegRequestState = 'draft' | 'submitted' | 'approved' | 'needs_changes' | 'rejected' | 'canceled' | 'applied'
148
+ export type BRegRetainedRequestProposal = JsonObject & {
149
+ readonly requestEntityId: string
150
+ readonly requestId: string
151
+ readonly proposalVersion: SafeInteger
152
+ readonly bregState: BRegRequestState
153
+ readonly current: boolean
154
+ readonly contractFingerprint: string
155
+ readonly detailErased: boolean
156
+ readonly applicationId: string | null
157
+ readonly resultLinkCount: SafeInteger
158
+ readonly resultLinks: ReadonlyArray<JsonObject>
159
+ readonly effectDigest?: string
160
+ readonly decisions?: ReadonlyArray<BRegRequestDecision>
161
+ }
162
+ export type BRegRetainedRequestHistory = JsonObject & {
163
+ readonly proposals: ReadonlyArray<BRegRetainedRequestProposal>
164
+ readonly nextAfterProposalVersion: SafeInteger | null
165
+ }
166
+ export type BRegRequestMetadata = JsonObject & {
167
+ readonly bregState: BRegRequestState
168
+ readonly proposalVersion: SafeInteger
169
+ readonly effectDigest?: string | null
170
+ readonly proposal?: JsonObject | null
171
+ readonly editable: boolean
172
+ readonly detailErased?: true
173
+ readonly actions?: ReadonlyArray<JsonObject>
174
+ readonly application?: JsonObject | null
175
+ readonly history?: BRegRetainedRequestHistory
176
+ readonly review?: BRegRequestReviewState
177
+ readonly reviewTiming?: BRegRequestReviewTiming
178
+ readonly submitterReference?: string
179
+ readonly applierReference?: string
180
+ readonly decisions?: ReadonlyArray<BRegRequestDecision>
181
+ }
182
+
73
183
  export interface RecordMetadata {
74
184
  registryIdentifier: string
75
185
  datasetIdentifier: string
@@ -106,12 +216,14 @@ export interface CompleteOutcome<T> {
106
216
  location?: string
107
217
  }
108
218
 
109
- export interface PageOutcome {
219
+ export interface PageOutcome<T = RecordCollection, C = ListContinuation> {
110
220
  kind: 'complete'
111
- value: RecordCollection
112
- continuation?: ListContinuation
221
+ value: T
222
+ continuation?: C
113
223
  traceId: string
114
224
  etag?: string
225
+ snapshot?: string
226
+ validAt?: string
115
227
  }
116
228
 
117
229
  export interface RawOutcome {
@@ -144,23 +256,55 @@ export interface LifecycleReviewTarget {
144
256
 
145
257
  export interface LifecycleReview { targets: ReadonlyArray<LifecycleReviewTarget> }
146
258
 
147
- export interface LifecycleReceipt extends JsonObject {
148
- id: string
149
- revision: SafeInteger
150
- snapshot: string
151
- request: JsonObject
259
+ export type LifecycleReceipt = JsonObject & {
260
+ readonly id: string
261
+ readonly revision: SafeInteger
262
+ readonly snapshot: string
263
+ readonly actorReference?: string
264
+ readonly request: BRegLifecycleReceiptRequest
265
+ }
266
+
267
+ export type BRegLifecycleReceiptRequest = JsonObject & {
268
+ readonly bregState: BRegRequestState
269
+ readonly proposalVersion: SafeInteger | null
270
+ readonly effectDigest: string | null
271
+ readonly proposal?: JsonObject | null
272
+ readonly application: JsonObject | null
152
273
  }
153
274
 
154
275
  /** Exact validated JSON text, serialized before conversion to JavaScript numbers.
155
276
  * Decode with a lossless JSON library if inspecting values outside the safe integer range.
156
277
  * Decimal fields remain fixed-scale JSON strings. */
157
- export interface JsonOutcome {
278
+ export interface JsonOutcome<C = ListContinuation> {
158
279
  kind: 'complete'
159
280
  valueJson: string
160
- continuation?: ListContinuation
281
+ continuation?: C
161
282
  traceId: string
162
283
  etag?: string
163
284
  location?: string
285
+ snapshot?: string
286
+ validAt?: string
287
+ }
288
+
289
+ export interface GeoJsonPoint {
290
+ readonly type: 'Point'
291
+ readonly coordinates: readonly [number, number]
292
+ }
293
+ export interface GeoJsonFeature {
294
+ readonly type: 'Feature'
295
+ readonly id: string
296
+ readonly geometry: GeoJsonPoint | null
297
+ readonly properties: Readonly<Record<string, JsonValue>>
298
+ readonly registry: { readonly revision: SafeInteger }
299
+ }
300
+ export interface GeoJsonFeatureCollection {
301
+ readonly type: 'FeatureCollection'
302
+ readonly features: ReadonlyArray<GeoJsonFeature>
303
+ readonly numberReturned: SafeInteger
304
+ readonly registry: {
305
+ readonly pageInfo: { readonly nextCursor: string | null }
306
+ readonly count?: SafeInteger
307
+ }
164
308
  }
165
309
 
166
310
  export interface BRegFieldDescriptor {
@@ -173,6 +317,20 @@ export interface BRegFieldDescriptor {
173
317
  readonly readOnly: boolean
174
318
  readonly removable: boolean
175
319
  readonly referenceTargetEntity: string | null
320
+ readonly codeLabels: Readonly<Record<string, string>>
321
+ readonly storageValidation: {
322
+ readonly kind: string
323
+ readonly pattern: string
324
+ } | null
325
+ readonly reference: {
326
+ readonly manualEntry: boolean
327
+ readonly targetEntity: string | null
328
+ readonly operations: ReadonlyArray<{
329
+ readonly operationId: string
330
+ readonly accessProfile: string
331
+ readonly labelFields: ReadonlyArray<string>
332
+ }>
333
+ } | null
176
334
  }
177
335
  export interface BRegQueryField {
178
336
  readonly id: string
@@ -192,6 +350,29 @@ export interface BRegQueryDescriptor {
192
350
  readonly maxInValues: number
193
351
  readonly pagination: { readonly parameter: string; readonly responsePath: string; readonly exclusive: boolean }
194
352
  readonly temporal: JsonObject | null
353
+ readonly spatialQueries?: {
354
+ readonly bbox: {
355
+ readonly geometryProperty: string
356
+ readonly maximumLongitudeSpanDegrees: number
357
+ readonly maximumLatitudeSpanDegrees: number
358
+ readonly coordinateReferenceSystem: string
359
+ readonly semantics: string
360
+ } | null
361
+ }
362
+ }
363
+ export interface BRegLookupSelectorFieldDescriptor {
364
+ readonly id: string
365
+ readonly apiName: string
366
+ readonly label: string
367
+ readonly schemaJson: string
368
+ readonly required: boolean
369
+ }
370
+ export interface BRegLookupSelectorDescriptor {
371
+ readonly id: string
372
+ readonly label: string
373
+ readonly valueOrigin: string
374
+ readonly fields: ReadonlyArray<BRegLookupSelectorFieldDescriptor>
375
+ readonly requestFields: ReadonlyArray<string>
195
376
  }
196
377
  export interface BRegOperationDescriptor {
197
378
  readonly id: string
@@ -206,9 +387,12 @@ export interface BRegOperationDescriptor {
206
387
  readonly requiredCapabilities: ReadonlyArray<string>
207
388
  readonly fields: ReadonlyArray<BRegFieldDescriptor>
208
389
  readonly readableFields: ReadonlyArray<string>
390
+ readonly readableRequestFields: ReadonlyArray<string>
209
391
  readonly createWritableFields: ReadonlyArray<string>
210
392
  readonly patchWritableFields: ReadonlyArray<string>
211
393
  readonly query: BRegQueryDescriptor | null
394
+ readonly selectors: ReadonlyArray<BRegLookupSelectorDescriptor>
395
+ readonly readPath: { readonly id: string; readonly label: string } | null
212
396
  readonly request: {
213
397
  readonly fieldNames: string | null
214
398
  readonly queryParameters: ReadonlyArray<string>
@@ -221,6 +405,126 @@ export interface BRegOperationDescriptor {
221
405
  readonly patchPathPrefix: string | null
222
406
  readonly patchOperations: ReadonlyArray<string>
223
407
  readonly removeSemantics: string | null
408
+ readonly maximumItems: SafeInteger | null
409
+ readonly maximumBodyBytes: SafeInteger | null
410
+ readonly allowCreate: boolean | null
411
+ readonly allowPatch: boolean | null
412
+ }
413
+ }
414
+
415
+ export interface BRegImmediateActionDescriptor {
416
+ readonly id: string
417
+ readonly contractFingerprint: string
418
+ readonly inputMode: string | null
419
+ readonly maximumInputStringBytes: SafeInteger | null
420
+ readonly inputs: ReadonlyArray<{
421
+ readonly id: string
422
+ readonly apiName: string
423
+ readonly fieldTypeJson: string
424
+ readonly required: boolean
425
+ readonly nullable: boolean | null
426
+ readonly classification: string
427
+ }>
428
+ readonly referenceInputs: ReadonlyArray<{
429
+ readonly input: string
430
+ readonly apiName: string
431
+ readonly targetEntity: string
432
+ }>
433
+ readonly requiredConditionKeys: ReadonlyArray<string>
434
+ readonly resultEffects: ReadonlyArray<{
435
+ readonly effect: string
436
+ readonly entity: string
437
+ readonly operation: string
438
+ }>
439
+ readonly accessProfile: string
440
+ readonly invokePath: string
441
+ readonly targetConditionsPath: string | null
442
+ readonly bounds: {
443
+ readonly maximumTargets: SafeInteger
444
+ readonly maximumFieldMutations: SafeInteger
445
+ readonly maximumSnapshotBytes: SafeInteger
446
+ }
447
+ }
448
+
449
+ export interface BRegActionReceipt {
450
+ readonly action: string
451
+ readonly applicationId: string
452
+ readonly results: Readonly<Record<string, {
453
+ readonly entity: string
454
+ readonly recordId: string
455
+ readonly revision: SafeInteger
456
+ }>>
457
+ }
458
+
459
+ export interface BRegBatchCreateItem {
460
+ readonly operation: 'create'
461
+ readonly data: JsonObject
462
+ }
463
+ export interface BRegBatchPatchItem {
464
+ readonly operation: 'patch'
465
+ readonly recordIdentifier: string
466
+ readonly etag: string
467
+ readonly operations: ReadonlyArray<PatchOperation | RemovePatchOperation>
468
+ }
469
+ export type BRegBatchItem = BRegBatchCreateItem | BRegBatchPatchItem
470
+ export type BRegChangeContext =
471
+ | {
472
+ readonly kind: 'change'
473
+ readonly reasonText?: string
474
+ readonly sourceReferences?: ReadonlyArray<string>
475
+ }
476
+ | {
477
+ readonly kind: 'correction'
478
+ readonly reasonCode: string
479
+ readonly reasonText?: string
480
+ readonly sourceReferences?: ReadonlyArray<string>
481
+ }
482
+ export interface BRegBatchInput {
483
+ readonly items: ReadonlyArray<BRegBatchItem>
484
+ readonly changeContext?: BRegChangeContext
485
+ }
486
+ export interface BRegBatchReceipt {
487
+ readonly snapshot: string
488
+ readonly results: ReadonlyArray<{
489
+ readonly operation: 'create' | 'patch'
490
+ readonly id: string
491
+ readonly revision: SafeInteger
492
+ readonly etag: string
493
+ readonly data: Readonly<Record<string, JsonValue>>
494
+ }>
495
+ }
496
+
497
+ export interface BRegChangeRequestCapability {
498
+ readonly planner: {
499
+ readonly kind: 'declarative' | 'rhai'
500
+ readonly abi: string | null
501
+ readonly limits: {
502
+ readonly maximumTargets: SafeInteger
503
+ readonly maximumFieldMutations: SafeInteger
504
+ readonly maximumSnapshotBytes: SafeInteger
505
+ readonly maximumSourceBytes: SafeInteger
506
+ readonly maximumOperations: SafeInteger
507
+ readonly maximumCallDepth: SafeInteger
508
+ readonly maximumExpressionDepth: SafeInteger
509
+ readonly maximumStringBytes: SafeInteger
510
+ readonly maximumArrayItems: SafeInteger
511
+ readonly maximumMapEntries: SafeInteger
512
+ readonly maximumModules: SafeInteger
513
+ } | null
514
+ readonly possibleWriteCount: SafeInteger | null
515
+ readonly possibleWriteOperations: ReadonlyArray<string>
516
+ }
517
+ readonly reviewMode: 'none' | 'staged'
518
+ readonly stages: ReadonlyArray<{
519
+ readonly id: string
520
+ readonly approvals: SafeInteger
521
+ readonly excludeSubmitter: boolean
522
+ readonly excludePreviousReviewers: boolean
523
+ }> | null
524
+ readonly application: {
525
+ readonly mode: 'manual' | 'automatic' | 'planner'
526
+ readonly allowedDispositions: ReadonlyArray<'apply' | 'queue'>
527
+ readonly queueReasons: ReadonlyArray<{ readonly code: string; readonly label: string }>
224
528
  }
225
529
  }
226
530
 
@@ -284,6 +588,29 @@ export declare class BRegPatchBinding {
284
588
  private constructor()
285
589
  private readonly __opaque: void
286
590
  }
591
+ /** Opaque authority for one metadata-selected immediate action. */
592
+ export declare class BRegImmediateActionBinding {
593
+ private constructor()
594
+ private readonly __opaque: void
595
+ }
596
+ /** Opaque target conditions obtained for one selected action and input set. */
597
+ export declare class BRegActionTargetConditions {
598
+ private constructor()
599
+ private readonly __opaque: void
600
+ readonly preconditionKeys: ReadonlyArray<string>
601
+ readonly valueJson: string
602
+ readonly traceId: string
603
+ }
604
+ /** Opaque authority for one metadata-selected Tombstone operation. */
605
+ export declare class BRegTombstoneBinding {
606
+ private constructor()
607
+ private readonly __opaque: void
608
+ }
609
+ /** Opaque authority for one metadata-selected atomic Batch operation. */
610
+ export declare class BRegBatchBinding {
611
+ private constructor()
612
+ private readonly __opaque: void
613
+ }
287
614
  /** Opaque lifecycle authority selected from metadata fetched by this client source. */
288
615
  export declare class BRegLifecycleAuthority {
289
616
  private constructor()
@@ -304,26 +631,61 @@ export declare class BRegLifecycleAction {
304
631
  readonly review: LifecycleReview | null
305
632
  }
306
633
 
634
+ /** Inert bounded Create evidence. Persist these bytes with owner-only access. */
635
+ export declare class BRegPreparedCreate {
636
+ private constructor()
637
+ private readonly __opaque: void
638
+ static fromBytes(bytes: Buffer): BRegPreparedCreate
639
+ toBytes(): Buffer
640
+ }
641
+
642
+ /** Inert bounded lifecycle evidence. Persist these bytes with owner-only access. */
643
+ export declare class BRegPreparedLifecycle {
644
+ private constructor()
645
+ private readonly __opaque: void
646
+ static fromBytes(bytes: Buffer): BRegPreparedLifecycle
647
+ toBytes(): Buffer
648
+ }
649
+
650
+ /** Revalidated Create request. It still requires fresh metadata authority to send. */
651
+ export declare class BRegRecoveredCreate {
652
+ private constructor()
653
+ private readonly __opaque: void
654
+ }
655
+
656
+ /** Revalidated lifecycle action. It remains inert until explicitly sent. */
657
+ export declare class BRegRecoveredLifecycle {
658
+ private constructor()
659
+ private readonly __opaque: void
660
+ }
661
+
307
662
  /** Caller-filtered metadata bound to the exact client source that fetched it. */
308
663
  export declare class BRegMetadata {
309
664
  private constructor()
310
665
  private readonly __opaque: void
311
666
  readonly operations: ReadonlyArray<BRegOperationDescriptor>
667
+ readonly immediateActions: ReadonlyArray<BRegImmediateActionDescriptor>
668
+ readonly actionsJson: string | null
312
669
  readonly registryIdentifier: string
313
670
  readonly registryVersion: string
314
671
  readonly registryRevision: string
315
672
  readonly traceId: string
316
673
  readonly etag: string | null
674
+ changeRequestCapability(entityIdentifier: string): BRegChangeRequestCapability | null
317
675
  selectCreate(operationIdentifier: string, expectedProfile: string): BRegCreateBinding
318
676
  selectPatch(operationIdentifier: string, expectedProfile: string): BRegPatchBinding
319
677
  selectLifecycle(entityIdentifier: string, expectedProfile: string): BRegLifecycleAuthority
320
678
  selectAttachments(entityIdentifier: string, expectedProfile: string): ReadonlyArray<BRegAttachmentSlot>
679
+ selectImmediateAction(actionIdentifier: string, expectedProfile: string): BRegImmediateActionBinding
680
+ selectTombstone(entityIdentifier: string, expectedProfile: string): BRegTombstoneBinding
681
+ selectBatch(entityIdentifier: string, expectedProfile: string): BRegBatchBinding
321
682
  }
322
683
 
323
684
  export interface BaseRegistryClientFailure extends Error {
324
685
  readonly kind: string
325
686
  readonly code?: string
326
687
  readonly planRefusal?: string
688
+ readonly refusalCode?: string
327
689
  readonly status?: number
328
690
  readonly traceId?: string
329
691
  readonly transportKind?: string
@@ -334,6 +696,7 @@ export declare class BaseRegistryClientError extends Error implements BaseRegist
334
696
  readonly kind: string
335
697
  readonly code?: string
336
698
  readonly planRefusal?: string
699
+ readonly refusalCode?: string
337
700
  readonly status?: number
338
701
  readonly traceId?: string
339
702
  readonly transportKind?: string
@@ -348,20 +711,62 @@ export declare class BaseRegistryClient {
348
711
  registryMetadata(accessProfile?: string | null): Promise<RawOutcome>
349
712
  registryContract(accessProfile?: string | null): Promise<BRegMetadata>
350
713
  entitySchema(entityIdentifier: string, accessProfile?: string | null): Promise<RawOutcome>
714
+ recordRevisions(entityRoute: string, recordIdentifier: string, accessProfile?: string | null): Promise<RawOutcome>
715
+ getRecordRevision(entityRoute: string, recordIdentifier: string, revision: SafeInteger, options?: RecordProjectionOptions | null): Promise<RawOutcome>
351
716
  getRecord(entityRoute: string, recordIdentifier: string, options?: RecordOptions | null): Promise<CompleteOutcome<RecordEnvelope>>
352
717
  listRecords(entityRoute: string, options?: ListOptions | null): Promise<PageOutcome>
353
718
  continueList(continuation: ListContinuation): Promise<PageOutcome>
354
- lookupRecord(entityRoute: string, selector: string, values?: JsonObject | null, options?: RecordOptions | null): Promise<CompleteOutcome<RecordEnvelope>>
719
+ getGeoJsonRecord(entityRoute: string, recordIdentifier: string, options?: GeoJsonOptions | null): Promise<CompleteOutcome<GeoJsonFeature>>
720
+ listGeoJsonRecords(entityRoute: string, options?: GeoJsonListOptions | null): Promise<PageOutcome<GeoJsonFeatureCollection, GeoJsonListContinuation>>
721
+ continueGeoJsonList(continuation: GeoJsonListContinuation): Promise<PageOutcome<GeoJsonFeatureCollection, GeoJsonListContinuation>>
722
+ listCurrentRecords(entityRoute: string, options?: CollectionOptions | null): Promise<PageOutcome<RecordCollection, CurrentListContinuation>>
723
+ continueCurrentList(continuation: CurrentListContinuation): Promise<PageOutcome<RecordCollection, CurrentListContinuation>>
724
+ listRecordsAsOf(entityRoute: string, options: AsOfListOptions): Promise<PageOutcome<RecordCollection, AsOfListContinuation>>
725
+ continueAsOfList(continuation: AsOfListContinuation): Promise<PageOutcome<RecordCollection, AsOfListContinuation>>
726
+ listSnapshotRecords(entityRoute: string, options?: SnapshotListOptions | null): Promise<PageOutcome<RecordCollection, SnapshotListContinuation>>
727
+ continueSnapshotList(continuation: SnapshotListContinuation): Promise<PageOutcome<RecordCollection, SnapshotListContinuation>>
728
+ listRelationshipRecords(entityRoute: string, recordIdentifier: string, pathRoute: string, options?: CollectionOptions | null): Promise<PageOutcome<RecordCollection, RelationshipListContinuation>>
729
+ continueRelationshipList(continuation: RelationshipListContinuation): Promise<PageOutcome<RecordCollection, RelationshipListContinuation>>
730
+ lookupRecord(entityRoute: string, selector: string, values?: JsonObject | null, options?: RecordProjectionOptions | null): Promise<CompleteOutcome<RecordEnvelope>>
731
+ actionTargetConditions(binding: BRegImmediateActionBinding, inputs: JsonObject): Promise<BRegActionTargetConditions>
732
+ actionTargetConditionsJson(binding: BRegImmediateActionBinding, inputsJson: string): Promise<BRegActionTargetConditions>
733
+ invokeAction(binding: BRegImmediateActionBinding, inputs: JsonObject, idempotencyKey: string, conditions?: BRegActionTargetConditions | null): Promise<CompleteOutcome<BRegActionReceipt>>
734
+ invokeActionJson(binding: BRegImmediateActionBinding, inputsJson: string, idempotencyKey: string, conditions?: BRegActionTargetConditions | null): Promise<JsonOutcome>
355
735
  createRecord(binding: BRegCreateBinding, data: JsonObject, idempotencyKey: string, format?: RecordFormat | null): Promise<CompleteOutcome<RecordEnvelope>>
736
+ prepareCreate(binding: BRegCreateBinding, data: JsonObject, idempotencyKey: string, format?: RecordFormat | null): BRegPreparedCreate
737
+ prepareCreateJson(binding: BRegCreateBinding, dataJson: string, idempotencyKey: string, format?: RecordFormat | null): BRegPreparedCreate
738
+ recoverCreate(binding: BRegCreateBinding, prepared: BRegPreparedCreate): BRegRecoveredCreate
739
+ executeRecoveredCreate(binding: BRegCreateBinding, recovered: BRegRecoveredCreate): Promise<CompleteOutcome<RecordEnvelope>>
740
+ executeRecoveredCreateJson(binding: BRegCreateBinding, recovered: BRegRecoveredCreate): Promise<JsonOutcome>
356
741
  patchRecord(binding: BRegPatchBinding, recordIdentifier: string, etag: string, operations: ReadonlyArray<PatchOperation | RemovePatchOperation>, idempotencyKey: string, format?: RecordFormat | null): Promise<CompleteOutcome<RecordEnvelope>>
742
+ batchRecords(binding: BRegBatchBinding, request: BRegBatchInput, idempotencyKey: string): Promise<CompleteOutcome<BRegBatchReceipt>>
743
+ batchRecordsJson(binding: BRegBatchBinding, requestJson: string, idempotencyKey: string): Promise<JsonOutcome>
744
+ tombstoneRecord(binding: BRegTombstoneBinding, recordIdentifier: string, etag: string, idempotencyKey: string, format?: RecordFormat | null): Promise<CompleteOutcome<RecordEnvelope>>
745
+ tombstoneRecordJson(binding: BRegTombstoneBinding, recordIdentifier: string, etag: string, idempotencyKey: string, format?: RecordFormat | null): Promise<JsonOutcome>
357
746
  lifecycleActions(authority: BRegLifecycleAuthority, record: RecordEnvelope, format?: RecordFormat | null): ReadonlyArray<BRegLifecycleAction>
747
+ prepareLifecycleAction(authority: BRegLifecycleAuthority, record: RecordEnvelope, action: BRegLifecycleAction, idempotencyKey: string, format?: RecordFormat | null): BRegPreparedLifecycle
748
+ prepareLifecycleActionJson(authority: BRegLifecycleAuthority, recordJson: string, action: BRegLifecycleAction, idempotencyKey: string, format?: RecordFormat | null): BRegPreparedLifecycle
749
+ recoverLifecycleAction(authority: BRegLifecycleAuthority, prepared: BRegPreparedLifecycle): BRegRecoveredLifecycle
750
+ executeRecoveredLifecycleAction(recovered: BRegRecoveredLifecycle): Promise<CompleteOutcome<LifecycleReceipt>>
751
+ executeRecoveredLifecycleActionJson(recovered: BRegRecoveredLifecycle): Promise<JsonOutcome>
358
752
  uploadAttachment(slot: BRegAttachmentSlot, recordIdentifier: string, etag: string, upload: BRegAttachmentUpload, idempotencyKey: string, format?: RecordFormat | null): Promise<CompleteOutcome<RecordEnvelope>>
359
753
  downloadAttachment(slot: BRegAttachmentSlot, recordIdentifier: string, proposalVersion: SafeInteger): Promise<RawOutcome>
360
754
  deleteAttachment(slot: BRegAttachmentSlot, recordIdentifier: string, etag: string, idempotencyKey: string, format?: RecordFormat | null): Promise<CompleteOutcome<RecordEnvelope>>
361
755
  getRecordJson(entityRoute: string, recordIdentifier: string, options?: RecordOptions | null): Promise<JsonOutcome>
362
756
  listRecordsJson(entityRoute: string, options?: ListOptions | null): Promise<JsonOutcome>
363
757
  continueListJson(continuation: ListContinuation): Promise<JsonOutcome>
364
- lookupRecordJson(entityRoute: string, selector: string, valuesJson?: string | null, options?: RecordOptions | null): Promise<JsonOutcome>
758
+ getGeoJsonRecordJson(entityRoute: string, recordIdentifier: string, options?: GeoJsonOptions | null): Promise<JsonOutcome>
759
+ listGeoJsonRecordsJson(entityRoute: string, options?: GeoJsonListOptions | null): Promise<JsonOutcome<GeoJsonListContinuation>>
760
+ continueGeoJsonListJson(continuation: GeoJsonListContinuation): Promise<JsonOutcome<GeoJsonListContinuation>>
761
+ listCurrentRecordsJson(entityRoute: string, options?: CollectionOptions | null): Promise<JsonOutcome<CurrentListContinuation>>
762
+ continueCurrentListJson(continuation: CurrentListContinuation): Promise<JsonOutcome<CurrentListContinuation>>
763
+ listRecordsAsOfJson(entityRoute: string, options: AsOfListOptions): Promise<JsonOutcome<AsOfListContinuation>>
764
+ continueAsOfListJson(continuation: AsOfListContinuation): Promise<JsonOutcome<AsOfListContinuation>>
765
+ listSnapshotRecordsJson(entityRoute: string, options?: SnapshotListOptions | null): Promise<JsonOutcome<SnapshotListContinuation>>
766
+ continueSnapshotListJson(continuation: SnapshotListContinuation): Promise<JsonOutcome<SnapshotListContinuation>>
767
+ listRelationshipRecordsJson(entityRoute: string, recordIdentifier: string, pathRoute: string, options?: CollectionOptions | null): Promise<JsonOutcome<RelationshipListContinuation>>
768
+ continueRelationshipListJson(continuation: RelationshipListContinuation): Promise<JsonOutcome<RelationshipListContinuation>>
769
+ lookupRecordJson(entityRoute: string, selector: string, valuesJson?: string | null, options?: RecordProjectionOptions | null): Promise<JsonOutcome>
365
770
  createRecordJson(binding: BRegCreateBinding, dataJson: string, idempotencyKey: string, format?: RecordFormat | null): Promise<JsonOutcome>
366
771
  patchRecordJson(binding: BRegPatchBinding, recordIdentifier: string, etag: string, operationsJson: string, idempotencyKey: string, format?: RecordFormat | null): Promise<JsonOutcome>
367
772
  uploadAttachmentJson(slot: BRegAttachmentSlot, recordIdentifier: string, etag: string, upload: BRegAttachmentUpload, idempotencyKey: string, format?: RecordFormat | null): Promise<JsonOutcome>