@pipelex/sdk 0.58.0 → 0.60.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 +1 -2
- package/dist/cli/script.d.ts +1 -1
- package/dist/client.d.ts +121 -33
- package/dist/client.js +179 -55
- package/dist/client.js.map +1 -1
- package/dist/errors.d.ts +5 -4
- package/dist/errors.js +5 -4
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/models.d.ts +15 -3
- package/dist/product-models.d.ts +7 -36
- package/dist/runs.d.ts +7 -0
- package/dist/runs.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/webhooks.d.ts +304 -0
- package/dist/webhooks.js +318 -0
- package/dist/webhooks.js.map +1 -0
- package/docs/architecture.md +10 -4
- package/docs/crate-routes.md +5 -5
- package/docs/errors.md +2 -0
- package/docs/input-preparation.md +1 -1
- package/docs/method-copy.md +5 -14
- package/docs/webhooks.md +130 -0
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -30,9 +30,11 @@ export type { ArtifactItemError, ArtifactLocation, ArtifactScope, BulkResolveSto
|
|
|
30
30
|
export type { DiagnosticKind, DiagnosticRange, Diagnostic, LintResponse, FormatResponse, DictStuff, DictWorkingMemory, DictPipeOutput, DictRunResultExecute, MethodProvenance, PipelexRunResultStart, PipelexHostedToolingExtensions, DryRunStatus, ValidatedPipeEntry, LiftablePipeEntry, TreeFileUse, TreeFileRead, PipelexValidationReport, PipelexInvalidReport, PipelexValidationResult, CrateRequestBase, CrateRouteOptions, CrateInvalidReport, GeneratedArtifact, ResolveRequest, ResolveValidReport, ResolveResponse, CodegenKind, CodegenTarget, CodegenRequest, CodegenValidReport, CodegenResponse, PipeIORequest, PipeIOValidReport, PipeIOResponse, ModelCheckCategory, ModelReferenceKind, ModelReferenceResolution, ModelReferenceMatchBase, PresetMatch, AliasMatch, WaterfallMatch, HandleMatch, ModelReferenceMatch, ModelReferenceVerdictBase, PresetReferenceVerdict, AliasReferenceVerdict, WaterfallReferenceVerdict, HandleReferenceVerdict, ModelReferenceVerdict, } from "./models.js";
|
|
31
31
|
export { runCodegenCheck, isStampableArtifactPath, STAMPABLE_ARTIFACT_SUFFIXES, CodegenLockError, } from "./codegen-check.js";
|
|
32
32
|
export type { CodegenCheckInput, CodegenCheckReport, CodegenDrift, CodegenDriftCategory, CodegenTreeFile, } from "./codegen-check.js";
|
|
33
|
-
export type { UserProfile, BundleStorageReference,
|
|
33
|
+
export type { UserProfile, BundleStorageReference, ListMethodExamplesQuery, ListMethodsQuery, ListMethodVersionsQuery, MethodCopied, MethodCopiedFrom, MethodCopyInput, MethodCopyLimit, MethodCopyOutcome, MethodCopyRefusalReason, MethodCopyRefused, MethodCopyResult, MethodData, MethodDeletionAccepted, MethodDeletionState, MethodDetail, MethodDraftInput, MethodExample, MethodExampleAssistantCreated, MethodExampleAssistantKept, MethodExampleAssistantSaveInput, MethodExampleAssistantSaveOutcome, MethodExampleAssistantSaveResult, MethodExampleCreateInput, MethodExampleLatestRunInput, MethodExampleLatestRunOutcome, MethodExampleLatestRunRecorded, MethodExampleLatestRunResult, MethodExampleLatestRunStale, MethodExamplePage, MethodExampleUpdateInput, MethodPage, MethodPublished, MethodPublishInput, MethodPublishOutcome, MethodPublishRefusalReason, MethodPublishRefused, MethodPublishResult, MethodPublishUnchanged, MethodRenameInput, MethodSummary, MethodTreeInput, MethodVersion, MethodVersionPage, MethodVersionSummary, MethodWriteInput, SavedMethodFile, Membership, MembershipsResponse, OrgRole, BrandingColors, BrandingColorsUpdate, LogoDescriptor, OrganizationBranding, OrganizationBrandingUpdate, SubscriptionResponse, PlanView, InvoiceView, CheckoutResponse, ChangePlanResponse, BillingPortalResponse, PipelexApiKey, PipelexApiKeyCreated, PipelexApiKeyList, OnboardingRole, OnboardingCurrentTool, OnboardingInputType, OnboardingHeardFrom, OnboardingSubmission, DraftFileAdded, DraftFileBlob, DraftFileFromFileInput, DraftFileFromFileResult, FileArchive, FileArchiveFailure, FileArchiveFailureCode, FileArchiveLimit, FileArchiveRequest, FileArchiveSource, FileArchiveState, FileDetail, FileKind, FileLink, FileLinkError, FileLinksResult, FileLinkTarget, FileOrigin, FilePage, FileRecord, FileRecordList, FileRenameInput, FileRole, FileState, FileSummary, FileUse, FileUseHolderType, FileUsePage, GetFileQuery, GetFilesByUriOptions, ListFilesQuery, ListRunFilesQuery, RunFileEntry, RunFileMark, RunFilesPage, RunFilesState, RunInputLink, ResolvedStorageUrl, UploadInput, UploadedFile, UploadGrantInput, UploadGrant, UploadKind, ListRunsQuery, PipelineRun, RunDetail, RunHistoryItem, RunPage, UpdateRunInput, } from "./product-models.js";
|
|
34
34
|
export { isFresherRunProgress, isTerminalRunStatus, isSuccessRunStatus, RUN_RESULT_ARTIFACTS, } from "./runs.js";
|
|
35
35
|
export type { DegradationReason, GetRunResultOptions, ProgressAttempt, ProgressBatch, ProgressCondition, ProgressFailure, ProgressInvocation, ProgressInvocationStatus, RunDegradation, RunProgress, RunProgressStatus, RunResultArtifact, RunStatus, RunPublic, RunRead, RunResults, RunResultState, StartAndWaitForResultOptions, TokensUsageRecord, WaitForResultOptions, } from "./runs.js";
|
|
36
|
+
export { verifyWebhook, isRunFinishedEvent, RUN_FINISHED_EVENT_TYPE, WEBHOOK_TIMESTAMP_TOLERANCE_SECONDS, WebhookVerificationError, WebhookEventUnreadableError, } from "./webhooks.js";
|
|
37
|
+
export type { RunFinishedEvent, RunFinishedEventData, RunFinishedStatus, UnknownWebhookEvent, VerifyWebhookOptions, WebhookAttemptFailure, WebhookDeliveryAttempt, WebhookDeliveryDetail, WebhookDeliveryList, WebhookDeliveryState, WebhookDeliverySummary, WebhookEvent, WebhookHeaders, WebhookRefusal, WebhookReplayAccepted, WebhookReplayOptions, WebhookSecret, WebhookSecretRotateOptions, } from "./webhooks.js";
|
|
36
38
|
export { summarizeUsage } from "./usage.js";
|
|
37
39
|
export type { PipeUsageSummary, RunUsagePair, UsageSummary, UsageSummaryState, UsageTokenTotals, } from "./usage.js";
|
|
38
40
|
export { PipelexRequestError, RequestArgumentError, ApiResponseError, ApiUnreachableError, MissingMainStuffError, PagingNotTerminatingError, PipelineExecuteTimeoutError, RunFailedError, RunTimeoutError, RunStillRunningError, RunLifecycleUnavailableError, InputPreparationError, InvalidLocalSourceError, InvalidInputValueError, UploadNotAllowedError, MethodLoadError, RejectedAssetError, UnsupportedUploadCapabilityError, UploadAuthenticationError, TestFileRefusedError, UploadTransportError, ArtifactOperationError, ArtifactAuthenticationError, ArtifactFetchError, ScopeUnavailableError, MethodFileTransferError, } from "./errors.js";
|
package/dist/index.js
CHANGED
|
@@ -54,6 +54,10 @@ export { locateArtifacts, collectArtifacts, artifactFilename, PIPELEX_STORAGE_SC
|
|
|
54
54
|
export { runCodegenCheck, isStampableArtifactPath, STAMPABLE_ARTIFACT_SUFFIXES, CodegenLockError, } from "./codegen-check.js";
|
|
55
55
|
// ── Run lifecycle (hosted extension — NOT part of the protocol) ──────
|
|
56
56
|
export { isFresherRunProgress, isTerminalRunStatus, isSuccessRunStatus, RUN_RESULT_ARTIFACTS, } from "./runs.js";
|
|
57
|
+
// ── Caller webhooks (the `run.finished` event, its verification, the delivery log, the secret) ──
|
|
58
|
+
// `verifyWebhook` runs where the receiver runs, with Web Crypto, so it needs no client; the
|
|
59
|
+
// delivery-log and secret routes are client methods, and only their shapes travel here.
|
|
60
|
+
export { verifyWebhook, isRunFinishedEvent, RUN_FINISHED_EVENT_TYPE, WEBHOOK_TIMESTAMP_TOLERANCE_SECONDS, WebhookVerificationError, WebhookEventUnreadableError, } from "./webhooks.js";
|
|
57
61
|
// ── Usage summary (pure — folds a run's usage pair into one null-aware reading) ──
|
|
58
62
|
export { summarizeUsage } from "./usage.js";
|
|
59
63
|
// ── Typed errors (ProblemError and PipelineRequestError ride the protocol re-export above) ──
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,6FAA6F;AAC7F,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,oFAAoF;AACpF,kFAAkF;AAClF,mFAAmF;AACnF,wBAAwB;AACxB,cAAc,gBAAgB,CAAC;AAE/B,wEAAwE;AACxE,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACtF,sFAAsF;AACtF,yFAAyF;AACzF,2EAA2E;AAC3E,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAezF,oFAAoF;AACpF,6FAA6F;AAC7F,+FAA+F;AAC/F,kDAAkD;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,+FAA+F;AAC/F,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAE3D,+FAA+F;AAC/F,6FAA6F;AAC7F,iGAAiG;AACjG,8FAA8F;AAC9F,iEAAiE;AACjE,OAAO,EAAE,yBAAyB,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAEhG,iGAAiG;AACjG,kFAAkF;AAClF,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAQ/E,6FAA6F;AAC7F,6FAA6F;AAC7F,4CAA4C;AAC5C,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAcpE,+FAA+F;AAC/F,0EAA0E;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,uEAAuE;AACvE,wFAAwF;AACxF,0FAA0F;AAC1F,iFAAiF;AACjF,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,sBAAsB,EACtB,qBAAqB,EACrB,0BAA0B,EAC1B,2BAA2B,EAC3B,gCAAgC,EAChC,4BAA4B,GAC7B,MAAM,gBAAgB,CAAC;AAqExB,+EAA+E;AAC/E,4EAA4E;AAC5E,iFAAiF;AACjF,0EAA0E;AAC1E,OAAO,EACL,eAAe,EACf,uBAAuB,EACvB,2BAA2B,EAC3B,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,6FAA6F;AAC7F,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,oFAAoF;AACpF,kFAAkF;AAClF,mFAAmF;AACnF,wBAAwB;AACxB,cAAc,gBAAgB,CAAC;AAE/B,wEAAwE;AACxE,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACtF,sFAAsF;AACtF,yFAAyF;AACzF,2EAA2E;AAC3E,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAezF,oFAAoF;AACpF,6FAA6F;AAC7F,+FAA+F;AAC/F,kDAAkD;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,+FAA+F;AAC/F,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAE3D,+FAA+F;AAC/F,6FAA6F;AAC7F,iGAAiG;AACjG,8FAA8F;AAC9F,iEAAiE;AACjE,OAAO,EAAE,yBAAyB,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAEhG,iGAAiG;AACjG,kFAAkF;AAClF,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAQ/E,6FAA6F;AAC7F,6FAA6F;AAC7F,4CAA4C;AAC5C,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAcpE,+FAA+F;AAC/F,0EAA0E;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,uEAAuE;AACvE,wFAAwF;AACxF,0FAA0F;AAC1F,iFAAiF;AACjF,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,sBAAsB,EACtB,qBAAqB,EACrB,0BAA0B,EAC1B,2BAA2B,EAC3B,gCAAgC,EAChC,4BAA4B,GAC7B,MAAM,gBAAgB,CAAC;AAqExB,+EAA+E;AAC/E,4EAA4E;AAC5E,iFAAiF;AACjF,0EAA0E;AAC1E,OAAO,EACL,eAAe,EACf,uBAAuB,EACvB,2BAA2B,EAC3B,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAoI5B,wEAAwE;AACxE,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,WAAW,CAAC;AAwBnB,mGAAmG;AACnG,4FAA4F;AAC5F,wFAAwF;AACxF,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,uBAAuB,EACvB,mCAAmC,EACnC,wBAAwB,EACxB,2BAA2B,GAC5B,MAAM,eAAe,CAAC;AAsBvB,oFAAoF;AACpF,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAS5C,+FAA+F;AAC/F,2FAA2F;AAC3F,iGAAiG;AACjG,kFAAkF;AAClF,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,gBAAgB,EAChB,mBAAmB,EACnB,qBAAqB,EACrB,yBAAyB,EACzB,2BAA2B,EAC3B,cAAc,EACd,eAAe,EACf,oBAAoB,EACpB,4BAA4B,EAC5B,qBAAqB,EACrB,uBAAuB,EACvB,sBAAsB,EACtB,qBAAqB,EACrB,eAAe,EACf,kBAAkB,EAClB,gCAAgC,EAChC,yBAAyB,EACzB,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,EACtB,2BAA2B,EAC3B,kBAAkB,EAClB,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,aAAa,CAAC;AAcrB,mFAAmF;AACnF,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC"}
|
package/dist/models.d.ts
CHANGED
|
@@ -71,6 +71,14 @@ export interface PipelexRunResultStart extends RunResultStart {
|
|
|
71
71
|
* or `null` for any other run, and on a server that does not resolve version selectors.
|
|
72
72
|
*/
|
|
73
73
|
method_version?: number | "draft" | null;
|
|
74
|
+
/**
|
|
75
|
+
* The webhook URLs the run registered in `callback_urls`, each redacted to its scheme, its host
|
|
76
|
+
* and a port other than the scheme's default, with `/***` in place of a path or query string,
|
|
77
|
+
* so a caller sees at once that its webhooks were taken. Absent for a run that registered none,
|
|
78
|
+
* since the platform leaves a member with no value out of the acknowledgement (the status read
|
|
79
|
+
* and the run record answer `null` instead), and on a server that does not echo them.
|
|
80
|
+
*/
|
|
81
|
+
callback_urls?: string[] | null;
|
|
74
82
|
}
|
|
75
83
|
/**
|
|
76
84
|
* The hosted tooling routes' own selector — the layer-3 extension the platform
|
|
@@ -428,7 +436,9 @@ export interface FormatResponse {
|
|
|
428
436
|
* An **address-form** `method_ref` (`github.com/<owner>/<repo>[/<selector>][@<tag>]`) is
|
|
429
437
|
* resolved by the server (pipelex-api >= 0.21.0): the package's whole tree is fetched at the tag
|
|
430
438
|
* and read as a tree sent in `files` is. The **registry form** (any non-address reference) stays
|
|
431
|
-
* reserved
|
|
439
|
+
* reserved until a method registry exists: the server refuses it with a `422`
|
|
440
|
+
* `request.unsupported` whose `params.reason` is `registry_form_method_ref`, as pipelex-api does
|
|
441
|
+
* from v0.90.0, where it answered `501` before.
|
|
432
442
|
*
|
|
433
443
|
* The XOR is a server-side invariant, not a type-level one: expressing it as a union here would
|
|
434
444
|
* make the common `{ files }` call site pick a branch for no gain, and the server rejects the
|
|
@@ -614,8 +624,10 @@ export interface PipeIORequest extends CrateRequestBase, PipelexHostedToolingExt
|
|
|
614
624
|
* declaration. A selection the server refuses is a problem coded by what went wrong, of
|
|
615
625
|
* the domain `input`, the candidates in its parameters where there are some:
|
|
616
626
|
* `request.pipe_not_found` for a ref that names no pipe, `request.pipe_unspecified` for
|
|
617
|
-
* (without `all_pipes`) a method with no entry pipe,
|
|
618
|
-
*
|
|
627
|
+
* (without `all_pipes`) a method with no entry pipe or, with no manifest, several bundles'
|
|
628
|
+
* `main_pipe` declarations, `request.pipe_ambiguous` for a bare code that matches pipes in
|
|
629
|
+
* several domains. A manifest `main_pipe` that no bundle or several define is the method's own
|
|
630
|
+
* fault, `method.pipe_unresolved` or `method.ref_ambiguous`.
|
|
619
631
|
* A malformed request is `request.malformed`.
|
|
620
632
|
*
|
|
621
633
|
* The server does not refuse a bare code yet: a bare ref that matches one pipe is
|
package/dist/product-models.d.ts
CHANGED
|
@@ -467,42 +467,6 @@ export interface MethodCopyLimit {
|
|
|
467
467
|
value: number;
|
|
468
468
|
reached: number;
|
|
469
469
|
}
|
|
470
|
-
/** Query for one page of a method's copies. */
|
|
471
|
-
export interface ListMethodCopiesQuery {
|
|
472
|
-
/**
|
|
473
|
-
* Page size, from 1 to 100; the API defaults to 50 and refuses a `limit` outside that range
|
|
474
|
-
* with a `422`.
|
|
475
|
-
*/
|
|
476
|
-
limit?: number;
|
|
477
|
-
/** Opaque `nextCursor` from the previous page. */
|
|
478
|
-
cursor?: string;
|
|
479
|
-
}
|
|
480
|
-
/**
|
|
481
|
-
* The original's record of one copy made of it — a row of `listMethodCopies`. It names the
|
|
482
|
-
* destination by its id alone, never its name, so the listing tells no reader the name of an
|
|
483
|
-
* organization they do not belong to: show a destination's name only from the reader's own
|
|
484
|
-
* memberships. The marker stays when its copy is erased, and the copy then reads as not found.
|
|
485
|
-
*/
|
|
486
|
-
export interface MethodCopyMarker {
|
|
487
|
-
/** The copy's method id, in the destination organization. */
|
|
488
|
-
copy_method_id: string;
|
|
489
|
-
/** The canonical id of the organization the copy was made in. */
|
|
490
|
-
destination_org_id: string;
|
|
491
|
-
/** The canonical id of the member who made the copy. */
|
|
492
|
-
copied_by_user_id: string;
|
|
493
|
-
/** ISO 8601 UTC instant the copy's row was written. */
|
|
494
|
-
copied_at: string;
|
|
495
|
-
}
|
|
496
|
-
/**
|
|
497
|
-
* One page of a method's copies, in the order of the copies' ids, which says nothing of when each
|
|
498
|
-
* was made. `nextCursor` is opaque — pass it straight back to `listMethodCopies` to continue;
|
|
499
|
-
* `null` means this was the last page. A method never copied, and a copy, which names its
|
|
500
|
-
* original through `copied_from` and has no copies of its own, answer an empty page.
|
|
501
|
-
*/
|
|
502
|
-
export interface MethodCopyPage {
|
|
503
|
-
items: MethodCopyMarker[];
|
|
504
|
-
nextCursor: string | null;
|
|
505
|
-
}
|
|
506
470
|
/**
|
|
507
471
|
* One saved example of a method — what `createMethodExample`, `getMethodExample`,
|
|
508
472
|
* `updateMethodExample` and both arms of `recordMethodExampleLatestRun` and
|
|
@@ -1588,6 +1552,13 @@ export interface RunDetail extends PipelineRun {
|
|
|
1588
1552
|
tree_digest?: string | null;
|
|
1589
1553
|
/** The runner's fingerprint of the crate it loaded the tree into; `null` when it reported none. */
|
|
1590
1554
|
crate_fingerprint?: string | null;
|
|
1555
|
+
/**
|
|
1556
|
+
* The webhook URLs the run registered in `callback_urls`, each redacted to its scheme, its host
|
|
1557
|
+
* and a port other than the scheme's default, with `/***` in place of a path or query string.
|
|
1558
|
+
* `null` for a run that registered none; absent on a server that does not serve it. Its
|
|
1559
|
+
* deliveries are read with `listRunWebhookDeliveries`.
|
|
1560
|
+
*/
|
|
1561
|
+
callback_urls?: string[] | null;
|
|
1591
1562
|
}
|
|
1592
1563
|
/** Query for one page of run history. */
|
|
1593
1564
|
export interface ListRunsQuery {
|
package/dist/runs.d.ts
CHANGED
|
@@ -164,6 +164,13 @@ export interface RunRead extends RunPublic {
|
|
|
164
164
|
* saved before the platform recorded it; absent on a server that does not serve it.
|
|
165
165
|
*/
|
|
166
166
|
request_id?: string | null;
|
|
167
|
+
/**
|
|
168
|
+
* The webhook URLs the run registered in `callback_urls`, each redacted to its scheme, its host
|
|
169
|
+
* and a port other than the scheme's default, with `/***` in place of a path or query string.
|
|
170
|
+
* `null` for a run that registered none; absent on a server that does not serve it. A run's
|
|
171
|
+
* `run.finished` event carries this read without it.
|
|
172
|
+
*/
|
|
173
|
+
callback_urls?: string[] | null;
|
|
167
174
|
/** The `Retry-After` header's delay, in seconds; set when the platform sent one. */
|
|
168
175
|
retry_after_seconds?: number | null;
|
|
169
176
|
}
|
package/dist/runs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runs.js","sourceRoot":"","sources":["../src/runs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG3C,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,sBAAsB,EACtB,4BAA4B,EAC5B,eAAe,GAChB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAyCxD,8DAA8D;AAC9D,MAAM,CAAC,MAAM,YAAY,GAAyB;IAChD,SAAS;IACT,SAAS;IACT,SAAS;IACT,WAAW;IACX,QAAQ;IACR,WAAW;IACX,YAAY;IACZ,WAAW;CACZ,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAC7B,MAAwC;IAExC,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC3C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,SAAS,CACjB,mDAAmD,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAC9E,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,oBAAoB,CAC5B,qCAAqC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,iCAAiC,EAC7F,EAAE,OAAO,EAAE,sBAAsB,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,CACvD,CAAC;IACJ,CAAC;IACD,MAAM,KAAK,GAAsB,YAAY,CAAC;IAC9C,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/D,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,oBAAoB,CAC5B,0BAA0B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAyB,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAC/F,EAAE,OAAO,EAAE,sBAAsB,CAAC,QAAQ,EAAE,eAAe,CAAC,EAAE,CAC/D,CAAC;IACJ,CAAC;IACD,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,qBAAqB,GAA2B,IAAI,GAAG,CAAY;IACvE,WAAW;IACX,QAAQ;IACR,WAAW;IACX,YAAY;IACZ,WAAW;CACZ,CAAC,CAAC;AAEH,6EAA6E;AAC7E,MAAM,UAAU,mBAAmB,CAAC,MAAiB;IACnD,OAAO,qBAAqB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC3C,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,kBAAkB,CAAC,MAAiB;IAClD,OAAO,MAAM,KAAK,WAAW,CAAC;AAChC,CAAC;AAsID;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAc;IAC/C,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3E,MAAM,WAAW,GAA4B,EAAE,GAAG,KAAK,EAAE,CAAC;IAC1D,SAAS,CACP,WAAW,EACX,CAAC,SAAS,EAAE,eAAe,EAAE,SAAS,CAAC,EACvC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CACrC,CAAC;IACF,SAAS,CAAC,WAAW,EAAE,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;IAC9D,OAAO,WAA6B,CAAC;AACvC,CAAC;AAsKD,MAAM,uBAAuB,GAAwB,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;AACrF,MAAM,uBAAuB,GAAwB,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAElG;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAiB,EAAE,IAA6B;IACnF,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACpC,IAAI,uBAAuB,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,uBAAuB,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACzF,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,uBAAuB,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,uBAAuB,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACzF,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IACtE,OAAO,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAC7E,CAAC;AAED;;;;GAIG;AACH,SAAS,aAAa,CAAC,SAAiB;IACtC,MAAM,KAAK,GAAG,yEAAyE,CAAC,IAAI,CAC1F,SAAS,CACV,CAAC;IACF,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC;IACtC,MAAM,CAAC,EAAE,OAAO,GAAG,EAAE,EAAE,QAAQ,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC;IACzD,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IACjF,OAAO,YAAY,GAAG,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC3E,CAAC;AAED,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAW,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC;AACxE,MAAM,cAAc,GAAG,CAAC,KAAc,EAAW,EAAE,CAAC,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC;AAEhG,8EAA8E;AAC9E,MAAM,mBAAmB,GAErB;IACF,CAAC,iBAAiB,EAAE,UAAU,EAAE,QAAQ,CAAC;IACzC,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC;IAC9B,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC;IAChC;QACE,SAAS;QACT,wBAAwB;QACxB,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAK,KAAgB,IAAI,CAAC;KACjE;IACD,CAAC,cAAc,EAAE,UAAU,EAAE,QAAQ,CAAC;IACtC,CAAC,SAAS,EAAE,UAAU,EAAE,QAAQ,CAAC;IACjC,CAAC,aAAa,EAAE,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC;CACzC,CAAC;AAEF,mFAAmF;AACnF,MAAM,0BAA0B,GAM5B;IACF,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC;IAC9B,CAAC,WAAW,EAAE,UAAU,EAAE,QAAQ,CAAC;IACnC,CAAC,UAAU,EAAE,UAAU,EAAE,QAAQ,CAAC;IAClC,CAAC,WAAW,EAAE,UAAU,EAAE,QAAQ,CAAC;IACnC,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC;IAChC,CAAC,YAAY,EAAE,kBAAkB,EAAE,cAAc,CAAC;IAClD,CAAC,UAAU,EAAE,kBAAkB,EAAE,cAAc,CAAC;CACjD,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAAiC;IAChE,KAAK,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,mBAAmB,EAAE,CAAC;QAC1D,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAAE,OAAO,KAAK,KAAK,aAAa,QAAQ,EAAE,CAAC;IACvE,CAAC;IACD,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAwB,CAAC;IACtD,KAAK,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC;QACxD,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;YAAE,OAAO,iBAAiB,KAAK,sBAAsB,CAAC;QACpF,KAAK,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,0BAA0B,EAAE,CAAC;YACjE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;gBAC7B,OAAO,iBAAiB,KAAK,KAAK,KAAK,aAAa,QAAQ,EAAE,CAAC;YACjE,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAc;IAChD,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC;QAAE,OAAO,SAAS,CAAC;IACzE,MAAM,OAAO,GAA4B,EAAE,GAAG,KAAK,EAAE,CAAC;IACtD,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,OAAO,OAAO,CAAC,EAAE,KAAK,QAAQ;QAAE,OAAO,OAAO,CAAC,EAAE,CAAC;IACtF,OAAO,OAAqC,CAAC;AAC/C,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,yBAAyB,CAAC,QAAqB;IAC7D,OAAO;QACL,GAAG,4BAA4B,CAAC,QAAQ,CAAC;QACzC,WAAW,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CACnD,wBAAwB,CAAC,4BAA4B,CAAC,UAAU,CAAC,CAAC,CACnE;KACF,CAAC;AACJ,CAAC;AAED,SAAS,4BAA4B,CAA6C,MAAS;IACzF,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;QAAE,OAAO,MAAM,CAAC;IACzD,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;IACxC,MAAM,OAAO,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAChD,OAAO,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,CAAM,CAAC;AAC5E,CAAC;AAED,SAAS,wBAAwB,CAAC,UAA8B;IAC9D,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,cAAc,CAAC;QAAE,OAAO,UAAU,CAAC;IAClE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,UAAU,CAAC;IACtD,MAAM,OAAO,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC7C,OAAO,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,CAAuB,CAAC;AACnG,CAAC;AA2DD,oEAAoE;AAEpE;;;;;GAKG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,YAAY;IACZ,mBAAmB;IACnB,YAAY;IACZ,aAAa;IACb,YAAY;IACZ,gBAAgB;IAChB,eAAe;CACP,CAAC;AAKX;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CAAC,SAAwC;IAC9E,IAAI,SAAS,KAAK,SAAS;QAAE,OAAO;IACpC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,SAAS,CACjB,sDAAsD,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACzF,CAAC;IACJ,CAAC;IACD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,oBAAoB,CAC5B,wCAAwC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB;YACzF,iBAAiB,EACnB,EAAE,OAAO,EAAE,sBAAsB,CAAC,WAAW,EAAE,OAAO,CAAC,EAAE,CAC1D,CAAC;IACJ,CAAC;IACD,MAAM,KAAK,GAAsB,oBAAoB,CAAC;IACtD,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IAClE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,oBAAoB,CAC5B,8BAA8B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAyB;YACvE,GAAG,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EACvC,EAAE,OAAO,EAAE,sBAAsB,CAAC,WAAW,EAAE,eAAe,CAAC,EAAE,CAClE,CAAC;IACJ,CAAC;AACH,CAAC;AAED,gGAAgG;AAChG,MAAM,UAAU,0BAA0B,CACxC,SAAmD;IAEnD,OAAO,SAAS,KAAK,SAAS,IAAI,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;AACrE,CAAC;AAuOD,uEAAuE;AAEvE,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,CAAC;AAC9C,MAAM,CAAC,MAAM,uBAAuB,GAAG,SAAS,CAAC,CAAC,0DAA0D;AAc5G;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,UAAgC,EAAE;IAClE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IAC1C,IAAI,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;QACxD,MAAM,IAAI,UAAU,CAClB,qDAAqD,MAAM,CAAC,UAAU,CAAC,OAAO;YAC5E,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,CAC1B,CAAC;IACJ,CAAC;IACD,uBAAuB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAC7C,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,SAA0B,EAC1B,KAAa,EACb,UAAgC,EAAE,EAClC,aAAiC;IAEjC,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAC3B,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,wBAAwB,CAAC;IAClE,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,uBAAuB,CAAC;IAC/D,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;IAC/B,mEAAmE;IACnE,IAAI,aAAa,GAAG,UAAU,KAAK,SAAS,IAAI,aAAa,KAAK,SAAS,CAAC;IAC5E,IAAI,SAAkC,CAAC;IAEvC,SAAS,CAAC;QACR,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAE/B,8EAA8E;QAC9E,0EAA0E;QAC1E,qDAAqD;QACrD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QACzC,IAAI,SAAS,IAAI,SAAS,EAAE,CAAC;YAC3B,MAAM,IAAI,eAAe,CACvB,OAAO,KAAK,0CAA0C,SAAS,KAAK,EACpE,KAAK,EACL,SAAS,CACV,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,SAAS,CAC3B,KAAK,EACL,OAAO,CAAC,SAAS,KAAK,SAAS;YAC7B,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE;YAC5B,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAC7D,CAAC;QAEF,IAAI,KAAK,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;YAChC,OAAO,KAAK,CAAC,MAAM,CAAC;QACtB,CAAC;QACD,IAAI,KAAK,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC7B,MAAM,IAAI,cAAc,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3F,CAAC;QAED,IAAI,aAAa,IAAI,UAAU,KAAK,SAAS,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YAC7E,IAAI,QAAiC,CAAC;YACtC,IAAI,CAAC;gBACH,QAAQ,GAAG,MAAM,aAAa,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;YACpE,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,wFAAwF;gBACxF,kEAAkE;gBAClE,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBAC/B,gFAAgF;gBAChF,IAAI,KAAK,YAAY,4BAA4B;oBAAE,aAAa,GAAG,KAAK,CAAC;YAC3E,CAAC;YACD,IAAI,QAAQ,KAAK,SAAS,IAAI,oBAAoB,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,CAAC;gBACxE,SAAS,GAAG,QAAQ,CAAC;gBACrB,UAAU,CAAC,QAAQ,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC,CAAC;QACb,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;QAEzC,MAAM,OAAO,GAAG,KAAK,CAAC,mBAAmB,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACzF,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC,CAAC;QAC9E,MAAM,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;AACH,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,cAAc,CAAC,MAAoB;IACjD,IAAI,MAAM,EAAE,OAAO;QAAE,MAAM,UAAU,CAAC,MAAM,CAAC,CAAC;AAChD,CAAC;AAED,SAAS,UAAU,CAAC,MAAoB;IACtC,MAAM,MAAM,GAAG,MAAM,EAAE,MAAM,CAAC;IAC9B,IAAI,MAAM,YAAY,KAAK;QAAE,OAAO,MAAM,CAAC;IAC3C,OAAO,IAAI,YAAY,CAAC,2BAA2B,EAAE,YAAY,CAAC,CAAC;AACrE,CAAC;AAED,iFAAiF;AACjF,SAAS,KAAK,CAAC,EAAU,EAAE,MAAoB;IAC7C,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;QACZ,cAAc,CAAC,MAAM,CAAC,CAAC;QACvB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IACD,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC3C,MAAM,OAAO,GAAG,GAAS,EAAE;YACzB,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;QAC7B,CAAC,CAAC;QACF,oFAAoF;QACpF,iEAAiE;QACjE,MAAM,KAAK,GAAG,UAAU,CACtB,GAAG,EAAE;YACH,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC9C,OAAO,EAAE,CAAC;QACZ,CAAC,EACD,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,kBAAkB,CAAC,CACjC,CAAC;QACF,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC3B,OAAO;YACT,CAAC;YACD,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
1
|
+
{"version":3,"file":"runs.js","sourceRoot":"","sources":["../src/runs.ts"],"names":[],"mappings":"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"}
|
package/dist/version.d.ts
CHANGED
package/dist/version.js
CHANGED
|
@@ -0,0 +1,304 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Caller webhooks: the `run.finished` event a Pipelex runtime sends each URL a run registered in
|
|
3
|
+
* `callback_urls` once the run has ended, the receiver's verification of a call, and the shapes of
|
|
4
|
+
* the hosted delivery log and of an organization's signing secret.
|
|
5
|
+
*
|
|
6
|
+
* The contract is the spec `conformance/specs/pipelex-caller-webhooks.md`, in the `conformance`
|
|
7
|
+
* repository: a call is a Standard Webhooks v1 `POST`, its `webhook-id`, `webhook-timestamp` and
|
|
8
|
+
* `webhook-signature` headers signing `{webhook-id}.{webhook-timestamp}.{body}` with HMAC-SHA256
|
|
9
|
+
* under a `whsec_` secret, and its body a `run.finished` event. `verifyWebhook` follows the spec's
|
|
10
|
+
* verification procedure step by step and is held to its known-answer vectors, a byte-identical copy
|
|
11
|
+
* of which this package's tests run (`tests/fixtures/caller-webhooks/`).
|
|
12
|
+
*
|
|
13
|
+
* Browser-safe, as the whole barrel is: the signature is computed with Web Crypto
|
|
14
|
+
* (`globalThis.crypto.subtle`), which Node, Deno, Bun, edge runtimes and browsers carry, never with
|
|
15
|
+
* `node:crypto`. See `docs/webhooks.md`.
|
|
16
|
+
*/
|
|
17
|
+
import { ProblemError } from "mthds/protocol";
|
|
18
|
+
import type { Problem } from "mthds/protocol";
|
|
19
|
+
import type { RunStatus } from "./runs.js";
|
|
20
|
+
/** The `type` of the event a run's end sends: one type for every ending, the outcome in `data.status`. */
|
|
21
|
+
export declare const RUN_FINISHED_EVENT_TYPE = "run.finished";
|
|
22
|
+
/**
|
|
23
|
+
* How far a call's `webhook-timestamp` may be from the receiver's clock, either way, in seconds:
|
|
24
|
+
* five minutes, as the contract sets it. A call further away is refused, which bounds how long a
|
|
25
|
+
* captured call can be replayed.
|
|
26
|
+
*/
|
|
27
|
+
export declare const WEBHOOK_TIMESTAMP_TOLERANCE_SECONDS = 300;
|
|
28
|
+
/**
|
|
29
|
+
* The status a `run.finished` event's `data` reports. A self-hosted runner sends the MTHDS
|
|
30
|
+
* protocol's status read, `completed` or `failed`, a cancelled or timed-out run reading `failed`
|
|
31
|
+
* with a code that says why. The hosted plane sends its own status read until it moves onto the
|
|
32
|
+
* protocol's, so its event reads an ended `RunStatus` in uppercase, `COMPLETED`, `FAILED`,
|
|
33
|
+
* `CANCELLED`, `TERMINATED` or `TIMED_OUT`, and its spelling turns lowercase when it does. Read
|
|
34
|
+
* open: a status this SDK does not name arrives as its raw string. To tell a success from a
|
|
35
|
+
* failure under both spellings, compare `status.toLowerCase()` with `"completed"`.
|
|
36
|
+
*/
|
|
37
|
+
export type RunFinishedStatus = "completed" | "failed" | Extract<RunStatus, "COMPLETED" | "FAILED" | "CANCELLED" | "TERMINATED" | "TIMED_OUT"> | (string & {});
|
|
38
|
+
/**
|
|
39
|
+
* A `run.finished` event's `data`: the run as its caller's status read served it when the delivery
|
|
40
|
+
* was created, the same on every attempt and replay of the delivery.
|
|
41
|
+
*
|
|
42
|
+
* Two shapes reach a receiver today, and this type accepts both. A self-hosted runner sends the
|
|
43
|
+
* MTHDS protocol's status read (`pipeline_run_id`, a lowercase `status`, and for a failed run its
|
|
44
|
+
* problem as `error`, a member with no value left out). The hosted plane sends the body of its own
|
|
45
|
+
* `GET /v1/runs/{id}/status` (this SDK's `RunRead`) without `callback_urls`: an uppercase `status`,
|
|
46
|
+
* a member with no value written as `null`, and the platform's own members, such as `finished_at`,
|
|
47
|
+
* `method_id` and `request_id`. That shape does not validate against the contract's JSON Schema,
|
|
48
|
+
* which describes the protocol's read; the hosted event follows its status read onto the
|
|
49
|
+
* protocol's shape when that read moves, with no change of its own.
|
|
50
|
+
*/
|
|
51
|
+
export interface RunFinishedEventData {
|
|
52
|
+
/** The run that ended. */
|
|
53
|
+
pipeline_run_id: string;
|
|
54
|
+
/** How it ended; see `RunFinishedStatus` for the two spellings. */
|
|
55
|
+
status: RunFinishedStatus;
|
|
56
|
+
/**
|
|
57
|
+
* A failed run's problem, in its caller's view: never its `diagnostics`. Kept when it is a
|
|
58
|
+
* problem document (`isProblem`), and read as `null` otherwise; absent on a completed run of a
|
|
59
|
+
* self-hosted runner, `null` on one of the hosted plane.
|
|
60
|
+
*/
|
|
61
|
+
error?: Problem | null;
|
|
62
|
+
/** Every other member the status read served, as it served it. */
|
|
63
|
+
[member: string]: unknown;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* The body of the call a run's end makes to each URL it registered: a `run.finished` event. The
|
|
67
|
+
* event never carries the run's results; fetch them with `getRunResult` and the `pipeline_run_id`
|
|
68
|
+
* of `data`. A receiver deduplicates on the `webhook-id` header, never on the body or `attempt`.
|
|
69
|
+
*/
|
|
70
|
+
export interface RunFinishedEvent {
|
|
71
|
+
type: typeof RUN_FINISHED_EVENT_TYPE;
|
|
72
|
+
/** When the run ended, its `finished_at`, as an RFC 3339 date-time in UTC. Not the call's send time. */
|
|
73
|
+
timestamp: string;
|
|
74
|
+
/**
|
|
75
|
+
* Which attempt of the delivery this call is, from 1. Informational: it increases with each retry
|
|
76
|
+
* and a replay continues it, but a runtime that runs its delivery step again may skip numbers or
|
|
77
|
+
* start again at 1 under the same `webhook-id`, so never rely on it being unique or gapless.
|
|
78
|
+
*/
|
|
79
|
+
attempt: number;
|
|
80
|
+
/** The run as its caller's status read served it; see `RunFinishedEventData`. */
|
|
81
|
+
data: RunFinishedEventData;
|
|
82
|
+
/** A member a later contract adds, which a receiver ignores. */
|
|
83
|
+
[member: string]: unknown;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* An event whose `type` this SDK does not read. A receiver acknowledges it with a `2xx` rather
|
|
87
|
+
* than failing it, so the sender does not retry an event the receiver has no use for.
|
|
88
|
+
*/
|
|
89
|
+
export interface UnknownWebhookEvent {
|
|
90
|
+
type: string;
|
|
91
|
+
[member: string]: unknown;
|
|
92
|
+
}
|
|
93
|
+
/** What `verifyWebhook` returns: a `run.finished` event, or one of a type this SDK does not read. */
|
|
94
|
+
export type WebhookEvent = RunFinishedEvent | UnknownWebhookEvent;
|
|
95
|
+
/** Whether `event` is a `run.finished` event, narrowing it to `RunFinishedEvent`. */
|
|
96
|
+
export declare function isRunFinishedEvent(event: WebhookEvent): event is RunFinishedEvent;
|
|
97
|
+
/**
|
|
98
|
+
* The headers of a call, as a receiver's framework hands them over: a fetch `Headers` (a Next.js
|
|
99
|
+
* route handler, Hono, a worker) or a plain record (Node's `IncomingHttpHeaders`, Express). Names
|
|
100
|
+
* are matched whatever their case. A header given as several values is read as those values
|
|
101
|
+
* joined by spaces, which for `webhook-signature` lists every signature they carry.
|
|
102
|
+
*/
|
|
103
|
+
export type WebhookHeaders = Headers | Readonly<Record<string, string | readonly string[] | undefined>>;
|
|
104
|
+
/** `verifyWebhook`'s options. */
|
|
105
|
+
export interface VerifyWebhookOptions {
|
|
106
|
+
/**
|
|
107
|
+
* The receiver's clock, which the call's `webhook-timestamp` must be within five minutes of;
|
|
108
|
+
* the current time when absent. Given for a test, or to verify a call received earlier.
|
|
109
|
+
*/
|
|
110
|
+
now?: Date;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Why `verifyWebhook` refused a call, named as the contract's verification procedure names its
|
|
114
|
+
* steps, in the order it takes them:
|
|
115
|
+
*
|
|
116
|
+
* - `missing_header`: `webhook-id`, `webhook-timestamp` or `webhook-signature` is absent or empty;
|
|
117
|
+
* - `timestamp`: `webhook-timestamp` is not a whole number of Unix seconds, or is more than five
|
|
118
|
+
* minutes from the receiver's clock, either way;
|
|
119
|
+
* - `signature`: no `v1` signature in `webhook-signature` is the call's under any secret given.
|
|
120
|
+
*/
|
|
121
|
+
export type WebhookRefusal = "missing_header" | "timestamp" | "signature";
|
|
122
|
+
/**
|
|
123
|
+
* A call `verifyWebhook` refused: it does not come from the runtime holding the secret, or not
|
|
124
|
+
* within the last five minutes, so its body must not be acted on. Answer it with a status outside
|
|
125
|
+
* `2xx`, such as `401`, which the sender counts as a failed attempt and retries.
|
|
126
|
+
*
|
|
127
|
+
* Branch on `refusal` (see `WebhookRefusal`). Its problem treats the signature as the call's
|
|
128
|
+
* credential: `auth.missing_credential` for a missing header, `auth.invalid_credential` for a
|
|
129
|
+
* timestamp or a signature refused. Nothing was requested, so it is no `PipelexRequestError`; it
|
|
130
|
+
* is a `ProblemError`, as every error this SDK raises is.
|
|
131
|
+
*/
|
|
132
|
+
export declare class WebhookVerificationError extends ProblemError {
|
|
133
|
+
/** Which step of the verification refused the call. */
|
|
134
|
+
readonly refusal: WebhookRefusal;
|
|
135
|
+
constructor(message: string, refusal: WebhookRefusal);
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* A verified call whose body is not a webhook event this SDK can read: bytes that are not UTF-8,
|
|
139
|
+
* text that is not JSON, JSON that is not an object with a string `type`, or a `run.finished` event
|
|
140
|
+
* missing a member the contract gives it or carrying one of the wrong type. The call does come from
|
|
141
|
+
* the runtime holding the secret, so this is that runtime's fault, never the receiver's.
|
|
142
|
+
*
|
|
143
|
+
* Its problem is `request.malformed`, whose `reason` is `not_utf8` or `not_json`, for a body that
|
|
144
|
+
* does not parse, and `request.invalid`, whose `field` names the member as a dotted path (`type`,
|
|
145
|
+
* `attempt`, `data.status`), for one that parses but is no event.
|
|
146
|
+
*/
|
|
147
|
+
export declare class WebhookEventUnreadableError extends ProblemError {
|
|
148
|
+
constructor(message: string, problem: Problem, options?: {
|
|
149
|
+
cause?: unknown;
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Verify a call to a caller webhook and read its event.
|
|
154
|
+
*
|
|
155
|
+
* It follows the contract's procedure: it refuses a call missing one of the three headers, then
|
|
156
|
+
* one whose `webhook-timestamp` is more than five minutes from `options.now`, then one whose
|
|
157
|
+
* `webhook-signature` lists no `v1` signature matching its own, computed from the raw body under
|
|
158
|
+
* each secret given and compared in constant time. Only then does it parse the body.
|
|
159
|
+
*
|
|
160
|
+
* Give `body` exactly as received, the raw bytes or their text, never a value parsed and written
|
|
161
|
+
* again: the same JSON written with other bytes signs differently. In a framework that parses JSON
|
|
162
|
+
* bodies by itself, read the raw body instead (`await request.text()` in a fetch handler,
|
|
163
|
+
* `express.raw({ type: "application/json" })` in Express).
|
|
164
|
+
*
|
|
165
|
+
* `secret` is the `whsec_` secret the runtime signs with: the organization's, which its admins read
|
|
166
|
+
* with `getWebhookSecret`, or the one a self-hosted runner's operator configured. During a rotation
|
|
167
|
+
* give both, the call then verifying under either: the hosted plane signs every call with the new
|
|
168
|
+
* secret and the previous one for 24 hours.
|
|
169
|
+
*
|
|
170
|
+
* Returns the event: a `RunFinishedEvent` (`isRunFinishedEvent`), or an `UnknownWebhookEvent` for a
|
|
171
|
+
* `type` this SDK does not read, to acknowledge and ignore. Deduplicate on the `webhook-id` header,
|
|
172
|
+
* since a delivery can arrive more than once.
|
|
173
|
+
*
|
|
174
|
+
* Throws `WebhookVerificationError` for a call refused, whose `refusal` says why;
|
|
175
|
+
* `WebhookEventUnreadableError` for a verified call that holds no event this SDK reads; and
|
|
176
|
+
* `RequestArgumentError` for a `secret` that is not a `whsec_` secret written in standard base64
|
|
177
|
+
* with its padding, a `body` that is neither text nor bytes, or an `options.now` that is no valid
|
|
178
|
+
* `Date`, before the call is looked at.
|
|
179
|
+
*/
|
|
180
|
+
export declare function verifyWebhook(body: string | Uint8Array | ArrayBuffer, headers: WebhookHeaders, secret: string | readonly string[], options?: VerifyWebhookOptions): Promise<WebhookEvent>;
|
|
181
|
+
/**
|
|
182
|
+
* Where a delivery stands: `pending` while on its retry schedule, `delivered` once a receiver
|
|
183
|
+
* answered `2xx`, `failed` past its last attempt, which a replay can still deliver. Read open: a
|
|
184
|
+
* state this SDK does not name arrives as its raw string.
|
|
185
|
+
*/
|
|
186
|
+
export type WebhookDeliveryState = "pending" | "delivered" | "failed";
|
|
187
|
+
/**
|
|
188
|
+
* Why an attempt got no HTTP answer: `timeout` (none within fifteen seconds), `connection` (none
|
|
189
|
+
* could be made, or it was cut), `tls` (the handshake failed, the receiver's certificate
|
|
190
|
+
* included), `refused_address` (the host resolved to a private, loopback, link-local or metadata
|
|
191
|
+
* address, or to none). An attempt that got an answer records its `status_code` instead.
|
|
192
|
+
*/
|
|
193
|
+
export type WebhookAttemptFailure = "timeout" | "connection" | "tls" | "refused_address";
|
|
194
|
+
/** One attempt of a delivery: when it was sent, what came back, how long it took. No response body is kept. */
|
|
195
|
+
export interface WebhookDeliveryAttempt {
|
|
196
|
+
/** The attempt's number, from 1: the body's `attempt`. */
|
|
197
|
+
attempt: number;
|
|
198
|
+
/** When it was sent, ISO-8601 UTC. */
|
|
199
|
+
attempted_at: string;
|
|
200
|
+
/** The HTTP status the receiver answered; `null` when no answer came. */
|
|
201
|
+
status_code: number | null;
|
|
202
|
+
/** Why no answer came; `null` when one did. */
|
|
203
|
+
failure: WebhookAttemptFailure | (string & {}) | null;
|
|
204
|
+
/** How long it took, in milliseconds. */
|
|
205
|
+
duration_ms: number | null;
|
|
206
|
+
}
|
|
207
|
+
/** One delivery of a run's webhook, as anyone who can read the run sees it. */
|
|
208
|
+
export interface WebhookDeliverySummary {
|
|
209
|
+
/**
|
|
210
|
+
* The receiver's `webhook-id`, the same on every attempt and replay: `whd_` followed by ASCII
|
|
211
|
+
* letters, digits and underscores, at most 64 characters in all. Treat it as opaque, a key to
|
|
212
|
+
* deduplicate on and nothing to parse.
|
|
213
|
+
*/
|
|
214
|
+
delivery_id: string;
|
|
215
|
+
/** The run whose event the delivery carries. */
|
|
216
|
+
pipeline_run_id: string;
|
|
217
|
+
/** The URL's position in the run's `callback_urls`, from 0. */
|
|
218
|
+
url_index: number;
|
|
219
|
+
/**
|
|
220
|
+
* The URL redacted, as every view shows a registered URL: its scheme, its host and a port other
|
|
221
|
+
* than the scheme's default, with `/***` in place of a path or query string, which may hold the
|
|
222
|
+
* receiver's credential.
|
|
223
|
+
*/
|
|
224
|
+
url: string;
|
|
225
|
+
state: WebhookDeliveryState | (string & {});
|
|
226
|
+
/** The event's `type`, `run.finished`. */
|
|
227
|
+
event_type: string;
|
|
228
|
+
/** When the delivery was recorded, ISO-8601 UTC. */
|
|
229
|
+
created_at: string;
|
|
230
|
+
/** Every attempt so far, oldest first, replays included. */
|
|
231
|
+
attempts: WebhookDeliveryAttempt[];
|
|
232
|
+
}
|
|
233
|
+
/** One delivery with its event as sent — `GET /v1/runs/{id}/webhook-deliveries/{delivery_id}`. */
|
|
234
|
+
export interface WebhookDeliveryDetail extends WebhookDeliverySummary {
|
|
235
|
+
/**
|
|
236
|
+
* The body of the delivery's latest attempt, as sent: `type`, `timestamp`, `attempt` and `data`,
|
|
237
|
+
* every attempt's body differing only in its `attempt`. Before any attempt, the body its first
|
|
238
|
+
* attempt carries.
|
|
239
|
+
*/
|
|
240
|
+
event: WebhookEvent;
|
|
241
|
+
}
|
|
242
|
+
/** A run's deliveries — `GET /v1/runs/{id}/webhook-deliveries`. */
|
|
243
|
+
export interface WebhookDeliveryList {
|
|
244
|
+
pipeline_run_id: string;
|
|
245
|
+
/**
|
|
246
|
+
* One delivery per URL the run registered, in their order, once the run has ended; none for a
|
|
247
|
+
* run that registered none or has not ended.
|
|
248
|
+
*/
|
|
249
|
+
deliveries: WebhookDeliverySummary[];
|
|
250
|
+
}
|
|
251
|
+
/** A replay queued — the `202` of `POST /v1/runs/{id}/webhook-deliveries/{delivery_id}/replay`. */
|
|
252
|
+
export interface WebhookReplayAccepted {
|
|
253
|
+
pipeline_run_id: string;
|
|
254
|
+
/** The delivery replayed: the `webhook-id` the replay is sent under. */
|
|
255
|
+
delivery_id: string;
|
|
256
|
+
/**
|
|
257
|
+
* The attempt number the replay is sent under. A replay asked again before this one is sent is
|
|
258
|
+
* this same attempt.
|
|
259
|
+
*/
|
|
260
|
+
attempt: number;
|
|
261
|
+
}
|
|
262
|
+
/** What a delivery's replay sends beside its path: the request's own header. */
|
|
263
|
+
export interface WebhookReplayOptions {
|
|
264
|
+
/**
|
|
265
|
+
* The replay's idempotency key, sent as the `Idempotency-Key` header, and not sent at all when
|
|
266
|
+
* absent or `null`. Generate one per replay the caller means to ask for (a `crypto.randomUUID()`
|
|
267
|
+
* is a good key), and keep it across that replay's retries: the same replay sent again under the
|
|
268
|
+
* same key is answered with the stored answer, naming the same attempt, so a replay whose answer
|
|
269
|
+
* was lost can be sent again without the delivery being sent twice. A key reused for another
|
|
270
|
+
* request is refused `409` `request.idempotency_conflict`, and one whose earlier request is still
|
|
271
|
+
* being handled `409` `request.idempotency_key_in_use`, whose `retry` is `yes`. A key is 1 to 255
|
|
272
|
+
* visible ASCII characters, anything else a `RequestArgumentError` before any request.
|
|
273
|
+
*/
|
|
274
|
+
idempotencyKey?: string | null;
|
|
275
|
+
}
|
|
276
|
+
/**
|
|
277
|
+
* An organization's webhook signing secret — `GET /v1/organizations/{org_id}/webhook-secret` and
|
|
278
|
+
* its rotation. Only the current secret's value is served: the previous one, still signing until
|
|
279
|
+
* `previous_secret_expires_at`, is the one a receiver already holds.
|
|
280
|
+
*/
|
|
281
|
+
export interface WebhookSecret {
|
|
282
|
+
/** `whsec_` and the base64 of 32 random bytes: give the whole value to `verifyWebhook`. */
|
|
283
|
+
secret: string;
|
|
284
|
+
/** When the organization's first secret was generated, ISO-8601 UTC. */
|
|
285
|
+
created_at: string;
|
|
286
|
+
/** When it was last rotated; `null` when never. */
|
|
287
|
+
rotated_at: string | null;
|
|
288
|
+
/**
|
|
289
|
+
* Until when the secret the last rotation replaced still signs beside this one, ISO-8601 UTC;
|
|
290
|
+
* `null` once that has passed, or when nothing was replaced.
|
|
291
|
+
*/
|
|
292
|
+
previous_secret_expires_at: string | null;
|
|
293
|
+
}
|
|
294
|
+
/** What a secret rotation sends beside its path: the request's own header. */
|
|
295
|
+
export interface WebhookSecretRotateOptions {
|
|
296
|
+
/**
|
|
297
|
+
* The rotation's idempotency key, sent as the `Idempotency-Key` header, and not sent at all when
|
|
298
|
+
* absent or `null`. The answer carries the new secret, so the platform never replays it: the same
|
|
299
|
+
* key sent again is refused `409` `request.already_executed`, rotating nothing more, and the
|
|
300
|
+
* caller reads the secret with `getWebhookSecret`. A key is 1 to 255 visible ASCII characters,
|
|
301
|
+
* anything else a `RequestArgumentError` before any request.
|
|
302
|
+
*/
|
|
303
|
+
idempotencyKey?: string | null;
|
|
304
|
+
}
|