@zapier/kitcore 0.15.0 → 0.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +131 -0
- package/README.md +9 -7
- package/dist/index.cjs +510 -183
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.mts +465 -100
- package/dist/index.d.ts +465 -100
- package/dist/index.mjs +506 -183
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -8,6 +8,49 @@ declare module "zod" {
|
|
|
8
8
|
}
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
+
/**
|
|
12
|
+
* What the framework reports about the output it produced.
|
|
13
|
+
*
|
|
14
|
+
* `skipped` says only that THE FRAMEWORK did not parse, never that the data is
|
|
15
|
+
* unchecked: a plugin opting out with `skipOutputValidation` may still parse
|
|
16
|
+
* inside its own `run`, and several do precisely to avoid a double-parse.
|
|
17
|
+
*
|
|
18
|
+
* `droppedPaths` is what the strip removed. `null` means nothing was dropped,
|
|
19
|
+
* never "we did not look": the diff is gated on the head's
|
|
20
|
+
* `includeOutputValidationDroppedPaths`, and a report only carries paths on a
|
|
21
|
+
* path that computed them. Paths are relative to `data` in both
|
|
22
|
+
* modes (`a.b` for an item), with array elements collapsed to one `[]` segment
|
|
23
|
+
* and unioned (`[].b` on a page, `items[].b` for an array inside an item).
|
|
24
|
+
*
|
|
25
|
+
* `instruction` rides only the arm where it is actionable, telling a caller how
|
|
26
|
+
* to get the stripped fields back.
|
|
27
|
+
*
|
|
28
|
+
* Three arms, matching the connectors SDK's `OutputDataValidationMeta` exactly.
|
|
29
|
+
* That SDK is the consumer this work is heading toward, and its instruction text
|
|
30
|
+
* is agent-facing, so a divergent shape or wording would have to be translated
|
|
31
|
+
* at the boundary rather than passed through.
|
|
32
|
+
*
|
|
33
|
+
* kitcore does not currently emit the middle arm. Reporting a validated call
|
|
34
|
+
* with nothing dropped requires a surface that reports unconditionally, and
|
|
35
|
+
* kitcore only reports when there is something to say. The arm is here so the
|
|
36
|
+
* type IS connectors' type rather than a subset of it, and so a reader written
|
|
37
|
+
* against either handles both.
|
|
38
|
+
*
|
|
39
|
+
* WHETHER a report is emitted is a separate question from its shape, and it is
|
|
40
|
+
* deliberately different: connectors reports on every run, kitcore only when
|
|
41
|
+
* there is something to say (a caller's skip that changed something, or paths
|
|
42
|
+
* actually dropped with the head's `includeOutputValidationDroppedPaths` on).
|
|
43
|
+
*/
|
|
44
|
+
type OutputDataValidationReport = {
|
|
45
|
+
skipped: true;
|
|
46
|
+
} | {
|
|
47
|
+
skipped: false;
|
|
48
|
+
droppedPaths: null;
|
|
49
|
+
} | {
|
|
50
|
+
skipped: false;
|
|
51
|
+
droppedPaths: string[];
|
|
52
|
+
instruction: string;
|
|
53
|
+
};
|
|
11
54
|
/**
|
|
12
55
|
* The response `meta` sidecar, shared by both output modes: an item method's
|
|
13
56
|
* `{ data, meta }` envelope and a list method's page carry the same shape, so a
|
|
@@ -18,13 +61,20 @@ declare module "zod" {
|
|
|
18
61
|
* the boundary attaches what belongs here.
|
|
19
62
|
*/
|
|
20
63
|
interface ResponseMeta {
|
|
64
|
+
/** See {@link OutputDataValidationReport}. Present only when there is
|
|
65
|
+
* something to say: a caller's skip that changed something, or paths that
|
|
66
|
+
* were dropped. */
|
|
67
|
+
outputDataValidation?: OutputDataValidationReport;
|
|
21
68
|
/**
|
|
22
|
-
*
|
|
23
|
-
* the
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
69
|
+
* @deprecated Read `outputDataValidation` instead. Still written alongside
|
|
70
|
+
* it, with the shape and the emission rule it always had (present only when
|
|
71
|
+
* the strip actually removed something), and removed next release.
|
|
72
|
+
*
|
|
73
|
+
* No runtime deprecation warning accompanies this, unlike every other exit in
|
|
74
|
+
* the package. There is no call to attach one to: a consumer reads a property
|
|
75
|
+
* off a plain result object, and the only way to notice would be to make this
|
|
76
|
+
* a logging getter, which would then fire on anything that serializes a
|
|
77
|
+
* response.
|
|
28
78
|
*/
|
|
29
79
|
outputValidation?: {
|
|
30
80
|
droppedPaths: string[];
|
|
@@ -89,6 +139,22 @@ interface PaginatedSdkResult<TItem> extends Promise<SdkPage<TItem>> {
|
|
|
89
139
|
}
|
|
90
140
|
type PaginatedSdkFunction<TOptions, TItem> = (options: TOptions) => PaginatedSdkResult<TItem>;
|
|
91
141
|
|
|
142
|
+
/**
|
|
143
|
+
* The external escape-hatch key for an SDK's context. A Symbol,
|
|
144
|
+
* not a string, so it stays off the string surface (which is exactly the root's
|
|
145
|
+
* exports) and is collision-free and clearly internal. It is attached at
|
|
146
|
+
* runtime but kept OUT of the public SDK type (a `unique symbol` in an exported
|
|
147
|
+
* type can't be named in a consumer's emitted `.d.ts`); reach it through the
|
|
148
|
+
* typed `getContext(sdk)` accessor.
|
|
149
|
+
*
|
|
150
|
+
* `Symbol.for`, not `Symbol()`: heads bundle kitcore (tsup `noExternal`), so
|
|
151
|
+
* an sdk built by one bundle's copy must still be readable by another copy's
|
|
152
|
+
* `getContext` / `resolvePlugin` (e.g. a CLI sdk inspected with helpers
|
|
153
|
+
* imported from `@zapier/zapier-sdk`). The global symbol registry makes every
|
|
154
|
+
* copy agree on the key.
|
|
155
|
+
*/
|
|
156
|
+
declare const CONTEXT: unique symbol;
|
|
157
|
+
|
|
92
158
|
/**
|
|
93
159
|
* Per-call context threaded explicitly through the method boundary in place of
|
|
94
160
|
* ambient AsyncLocalStorage. It carries call identity, nesting depth, and a
|
|
@@ -301,6 +367,20 @@ declare function applyStabilityLabel({ description, stability, placement, }: {
|
|
|
301
367
|
* Runtime validation still uses the full union; only shape reading canonicalizes.
|
|
302
368
|
*/
|
|
303
369
|
declare function canonicalInputSchema(schema: z.ZodSchema | undefined): z.ZodSchema | undefined;
|
|
370
|
+
/** Strip optional/default/nullable wrappers to the inner schema, tracking
|
|
371
|
+
* whether the wrappers made the field non-required. */
|
|
372
|
+
declare function unwrapSchema(schema: z.ZodType): {
|
|
373
|
+
inner: z.ZodType;
|
|
374
|
+
required: boolean;
|
|
375
|
+
};
|
|
376
|
+
/**
|
|
377
|
+
* The object shape of a method's input schema, or undefined when the schema is
|
|
378
|
+
* absent or not a plain object. A required-rename union (`z.union([canonical,
|
|
379
|
+
* deprecated])`) is canonicalized to its first variant first, and
|
|
380
|
+
* optional/default/nullable wrappers are stripped, so a schema whose fields are
|
|
381
|
+
* readable at all is read rather than treated as shapeless.
|
|
382
|
+
*/
|
|
383
|
+
declare function objectShapeOf(schema: z.ZodSchema | undefined): Record<string, z.ZodType> | undefined;
|
|
304
384
|
interface FormattedItem {
|
|
305
385
|
title: string;
|
|
306
386
|
/**
|
|
@@ -636,6 +716,32 @@ interface LeafMetaFields {
|
|
|
636
716
|
aliases?: Record<string, string>;
|
|
637
717
|
supportsJsonOutput?: boolean;
|
|
638
718
|
}
|
|
719
|
+
/**
|
|
720
|
+
* The meta an override may patch onto an already-built method.
|
|
721
|
+
*
|
|
722
|
+
* An allow-list, so a field added to {@link LeafMetaFields} later is refused
|
|
723
|
+
* until someone decides it is safe. Naming the dangerous fields instead would
|
|
724
|
+
* hand every future field to overrides by default, and the default has to be
|
|
725
|
+
* the safe one: an override changes how a surface PRESENTS a method, never what
|
|
726
|
+
* runs, what input is accepted, or what safety gate fires. Nothing re-checks
|
|
727
|
+
* the method's declared TypeScript type after `defineMethod` fixes it.
|
|
728
|
+
*
|
|
729
|
+
* What that rule rules out, and why each is dangerous rather than merely
|
|
730
|
+
* unused:
|
|
731
|
+
*
|
|
732
|
+
* - `outputSchema` decides what output validation enforces. Patching it makes
|
|
733
|
+
* a call fail against a contract its own return type says it satisfies.
|
|
734
|
+
* - `confirm` gates a host's confirmation prompt. Patching it can drop the
|
|
735
|
+
* prompt in front of a destructive call.
|
|
736
|
+
* - `type` reaches `confirm` indirectly: the registry derives
|
|
737
|
+
* `confirm: m.confirm ?? (m.type === "delete" ? "delete" : undefined)`, so
|
|
738
|
+
* moving a method off `"delete"` removes the same prompt quietly.
|
|
739
|
+
* - `aliases` maps a parameter to a CLI flag, so patching it changes which
|
|
740
|
+
* input a caller can pass.
|
|
741
|
+
* - `skipOutputValidation` is already unreachable, being absent from
|
|
742
|
+
* `LEAF_META_KEYS` and never folded into the projected meta.
|
|
743
|
+
*/
|
|
744
|
+
type OverridableMetaFields = Pick<LeafMetaFields, "description" | "categories" | "itemType" | "returnType" | "packages" | "experimental" | "deprecation" | "supportsJsonOutput">;
|
|
639
745
|
/** One segment of a {@link DynamicMember} path: a literal binding/segment name,
|
|
640
746
|
* or a `{ param }` placeholder for an open-ended key (rendered `{param}`). */
|
|
641
747
|
type DynamicMemberSegment = string | {
|
|
@@ -689,6 +795,17 @@ interface ImportBinding {
|
|
|
689
795
|
* `{ name: signature }` union into one `imports` object type.
|
|
690
796
|
*/
|
|
691
797
|
type UnionToIntersection<U> = (U extends unknown ? (x: U) => void : never) extends (x: infer I) => void ? I : never;
|
|
798
|
+
/**
|
|
799
|
+
* What `run` sees, given what a CALLER may pass.
|
|
800
|
+
*
|
|
801
|
+
* Subtracts exactly what the runtime strips on the way in, so the type and
|
|
802
|
+
* `stripFrameworkOnlyOptions` cannot drift. The subtraction is unconditional,
|
|
803
|
+
* matching the runtime: a method that DECLARES `maxItems` still does not
|
|
804
|
+
* receive it, because a list `run` fetches one page and the cap spans pages.
|
|
805
|
+
*/
|
|
806
|
+
type ItemRunInput<TInput> = Omit<TInput, "skipOutputDataValidation">;
|
|
807
|
+
/** The list twin of {@link ItemRunInput}, plus the page `run` is asked for. */
|
|
808
|
+
type ListRunInput<TInput> = Omit<TInput, "skipOutputDataValidation" | "maxItems"> & PageFetchInput;
|
|
692
809
|
/**
|
|
693
810
|
* A method's callable signature. A method with no declared input infers
|
|
694
811
|
* `TInput = unknown`; make its input optional so it is callable with no
|
|
@@ -806,13 +923,31 @@ interface Field {
|
|
|
806
923
|
required?: boolean;
|
|
807
924
|
valueType?: string;
|
|
808
925
|
}
|
|
926
|
+
/**
|
|
927
|
+
* One entry in `requireParameters`. A bare NAME is looked up in the resolver's
|
|
928
|
+
* own container first, then at the root. That is convenient, and ambiguous when
|
|
929
|
+
* both hold the name: the container wins, silently. An ARRAY is an absolute
|
|
930
|
+
* path from the root (`["input", "owner"]`), matching the engine's own path
|
|
931
|
+
* representation, so it says exactly which value is meant, and it also reaches
|
|
932
|
+
* a field inside another parameter that no bare name can name.
|
|
933
|
+
*
|
|
934
|
+
* An index in a path is LITERAL. `["filters", 0, "operator"]` names the first
|
|
935
|
+
* item and no other, so it cannot address the array item currently being
|
|
936
|
+
* walked. A requirement inside an array item names its sibling with a bare
|
|
937
|
+
* name, which resolves against the item.
|
|
938
|
+
*
|
|
939
|
+
* A dotted string is NOT a path: the engine looks the whole string up as one
|
|
940
|
+
* key, so `"input.owner"` silently never matches. Use the array form.
|
|
941
|
+
*/
|
|
942
|
+
type ResolverRequirement = string | readonly [string | number, ...(string | number)[]];
|
|
809
943
|
/** Shared gates for resolvers that resolve a value: the attachment plumbing
|
|
810
944
|
* plus the param-dataflow prerequisite. (`info` skips these.) */
|
|
811
945
|
interface ResolverBase extends MethodAttachment {
|
|
812
|
-
/**
|
|
813
|
-
*
|
|
814
|
-
* `imports`' SDK-capability graph.
|
|
815
|
-
|
|
946
|
+
/** Parameters that must resolve before this resolver runs (it reads their
|
|
947
|
+
* values from `input`). The param-dataflow prerequisite, distinct from
|
|
948
|
+
* `imports`' SDK-capability graph. See {@link ResolverRequirement} for the
|
|
949
|
+
* bare-name vs absolute-path forms. */
|
|
950
|
+
requireParameters?: readonly ResolverRequirement[];
|
|
816
951
|
}
|
|
817
952
|
/** List candidate items and prompt the user to pick one. */
|
|
818
953
|
interface DynamicResolver extends ResolverBase {
|
|
@@ -999,10 +1134,10 @@ interface BoundField {
|
|
|
999
1134
|
}
|
|
1000
1135
|
/** Fields shared by every bound resolver kind. */
|
|
1001
1136
|
interface BoundResolverBase {
|
|
1002
|
-
/**
|
|
1003
|
-
*
|
|
1004
|
-
* `imports`' SDK-capability graph. */
|
|
1005
|
-
requireParameters?: readonly
|
|
1137
|
+
/** Parameters that must resolve before this resolver runs (it reads their
|
|
1138
|
+
* values from `input`). The param-dataflow prerequisite, distinct from
|
|
1139
|
+
* `imports`' SDK-capability graph. See {@link ResolverRequirement}. */
|
|
1140
|
+
requireParameters?: readonly ResolverRequirement[];
|
|
1006
1141
|
}
|
|
1007
1142
|
/** Free-text input, no candidate list. */
|
|
1008
1143
|
interface BoundStaticResolver extends BoundResolverBase {
|
|
@@ -1124,7 +1259,19 @@ interface BoundFormatter<TItem = unknown, TInput = Record<string, unknown>, TCon
|
|
|
1124
1259
|
* `run` is loosely typed for `imports` (the precise type lives on the
|
|
1125
1260
|
* `defineMethod` authoring surface, like the shipped definePlugin).
|
|
1126
1261
|
*/
|
|
1127
|
-
interface MethodPlugin<TName extends string = string, TInput = unknown, TOutput = unknown, TPositional extends readonly string[] = readonly []
|
|
1262
|
+
interface MethodPlugin<TName extends string = string, TInput = unknown, TOutput = unknown, TPositional extends readonly string[] = readonly [],
|
|
1263
|
+
/**
|
|
1264
|
+
* What `run` receives, when that differs from what a CALLER may pass.
|
|
1265
|
+
*
|
|
1266
|
+
* They part company for item and list, whose call type mixes in
|
|
1267
|
+
* {@link CallOutputOptions} and {@link PaginatedCallInput}. Those are the
|
|
1268
|
+
* framework's, peeled off before `run`, so folding them into one parameter
|
|
1269
|
+
* told a consumer reading `Parameters<typeof plugin.run>[0]` that `run` gets
|
|
1270
|
+
* a flag the runtime always removes.
|
|
1271
|
+
*
|
|
1272
|
+
* Defaults to `TInput`, since raw's caller and `run` see the same object.
|
|
1273
|
+
*/
|
|
1274
|
+
TRunInput = TInput> {
|
|
1128
1275
|
pluginType: "method";
|
|
1129
1276
|
name: TName;
|
|
1130
1277
|
namespace?: string;
|
|
@@ -1184,7 +1331,15 @@ interface MethodPlugin<TName extends string = string, TInput = unknown, TOutput
|
|
|
1184
1331
|
* telemetry fields knowable before the method's own work; never passed to
|
|
1185
1332
|
* `run`. */
|
|
1186
1333
|
annotator?: MethodAnnotator;
|
|
1187
|
-
|
|
1334
|
+
/**
|
|
1335
|
+
* Phantom, never present at runtime. `TInput` types the CALL and `TRunInput`
|
|
1336
|
+
* types `run`, and once they differ `run` alone cannot tell a reader which is
|
|
1337
|
+
* which: an interface is structural, so a parameter that appears nowhere in
|
|
1338
|
+
* the body is not inferable. `ExportSurface` recovers the call type from
|
|
1339
|
+
* here. Optional and `undefined`-valued, so no implementation writes it.
|
|
1340
|
+
*/
|
|
1341
|
+
readonly __callInput?: TInput;
|
|
1342
|
+
run: (bag: MethodRunBag<any, TRunInput, any>) => TOutput;
|
|
1188
1343
|
/** How `run`'s result is shaped into the public surface (see Output in the
|
|
1189
1344
|
* design doc). Omitted is "raw". Stored loosely; the precise per-mode typing
|
|
1190
1345
|
* lives on the `defineMethod` overloads. */
|
|
@@ -1202,9 +1357,21 @@ interface MethodPlugin<TName extends string = string, TInput = unknown, TOutput
|
|
|
1202
1357
|
* @internal
|
|
1203
1358
|
*/
|
|
1204
1359
|
readonly [POSITIONAL_NAMES]?: TPositional;
|
|
1360
|
+
/**
|
|
1361
|
+
* Phantom carrier for the CALL input.
|
|
1362
|
+
*
|
|
1363
|
+
* `TInput` and `TRunInput` differ for item and list, and `run` types the
|
|
1364
|
+
* latter. An interface is structural, so a parameter appearing nowhere in the
|
|
1365
|
+
* body is not inferable, and without this `ExportSurface` would recover the
|
|
1366
|
+
* run input and offer callers the wrong shape. Never present at runtime.
|
|
1367
|
+
* @internal
|
|
1368
|
+
*/
|
|
1369
|
+
readonly [CALL_INPUT]?: TInput;
|
|
1205
1370
|
}
|
|
1206
1371
|
/** Phantom-only key (see `MethodPlugin`); never set at runtime. */
|
|
1207
1372
|
declare const POSITIONAL_NAMES: unique symbol;
|
|
1373
|
+
/** Phantom-only key (see `MethodPlugin`); never set at runtime. */
|
|
1374
|
+
declare const CALL_INPUT: unique symbol;
|
|
1208
1375
|
/** A method's output mode: raw passthrough, a `{ data }` item envelope, or a
|
|
1209
1376
|
* paginated list. */
|
|
1210
1377
|
type OutputMode = "raw" | "item" | "list";
|
|
@@ -1234,6 +1401,25 @@ type PageFetchInput = {
|
|
|
1234
1401
|
type PaginatedCallInput = PageFetchInput & {
|
|
1235
1402
|
maxItems?: number;
|
|
1236
1403
|
};
|
|
1404
|
+
/**
|
|
1405
|
+
* Output controls a method's public caller may pass, the sibling of
|
|
1406
|
+
* {@link PaginatedCallInput}: caller-side only, peeled before `run`, and never
|
|
1407
|
+
* part of a plugin's declared input, so `run` never sees it.
|
|
1408
|
+
*
|
|
1409
|
+
* Item and list only, and raw's absence is a decision rather than a gap: raw
|
|
1410
|
+
* reserves NOTHING in the caller's call object. That object is entirely the
|
|
1411
|
+
* author's, and raw is the mode most likely to forward it verbatim into a
|
|
1412
|
+
* request, so a framework key shadowing a domain one there is the worst version
|
|
1413
|
+
* of a collision the framework should not create. A `skipOutputDataValidation`
|
|
1414
|
+
* passed to a raw method is domain input that happens to share the name: not
|
|
1415
|
+
* read, not stripped, and it does not skip.
|
|
1416
|
+
*
|
|
1417
|
+
* Raw still validates. The author's `skipOutputValidation` field is the only
|
|
1418
|
+
* opt-out it honors, which is why that field keeps its name across every mode.
|
|
1419
|
+
*/
|
|
1420
|
+
type CallOutputOptions = {
|
|
1421
|
+
skipOutputDataValidation?: boolean;
|
|
1422
|
+
};
|
|
1237
1423
|
/**
|
|
1238
1424
|
* A response whose only own keys are `data` / `nextCursor`. Gates the
|
|
1239
1425
|
* list-standard overload: a raw envelope with extra keys is not a `StrictPage`
|
|
@@ -1263,10 +1449,10 @@ type DataOf<TResponse> = TResponse extends {
|
|
|
1263
1449
|
} ? TData : never;
|
|
1264
1450
|
/**
|
|
1265
1451
|
* A leaf plugin that is a single value (not a function). `value` is a static
|
|
1266
|
-
* constant; `get({ imports })` computes the value from imports
|
|
1267
|
-
*
|
|
1268
|
-
*
|
|
1269
|
-
* the value, not a callable.
|
|
1452
|
+
* constant; `get({ imports, state })` computes the value from imports and
|
|
1453
|
+
* `setup` state, re-running live on each read. An optional `setup` runs once
|
|
1454
|
+
* eagerly at createSdk (dependencies first, like a method's `setup`) to build
|
|
1455
|
+
* that state. An imported/surfaced property yields the value, not a callable.
|
|
1270
1456
|
*/
|
|
1271
1457
|
interface PropertyPlugin<TName extends string = string, TValue = unknown> {
|
|
1272
1458
|
pluginType: "property";
|
|
@@ -1306,6 +1492,7 @@ interface PropertyPlugin<TName extends string = string, TValue = unknown> {
|
|
|
1306
1492
|
get?: (bag: {
|
|
1307
1493
|
imports: Record<string, unknown>;
|
|
1308
1494
|
state: unknown;
|
|
1495
|
+
callContext?: CallContext;
|
|
1309
1496
|
}) => TValue;
|
|
1310
1497
|
/** Descriptive metadata for the registry / CLI / MCP / docs (carry-only). */
|
|
1311
1498
|
meta?: LeafMeta;
|
|
@@ -1548,7 +1735,10 @@ interface PropertyEntry {
|
|
|
1548
1735
|
pluginType: "property";
|
|
1549
1736
|
name: string;
|
|
1550
1737
|
value?: any;
|
|
1551
|
-
|
|
1738
|
+
/** Re-derives the value per read. Receives the live per-call `CallContext`
|
|
1739
|
+
* when installed on a method's `imports` bag with a threaded context, and
|
|
1740
|
+
* nothing on a surface / build-time read. */
|
|
1741
|
+
getValue?: (callContext?: CallContext) => any;
|
|
1552
1742
|
/** Carried from the descriptor for the registry / CLI / MCP / docs. */
|
|
1553
1743
|
meta?: LeafMeta;
|
|
1554
1744
|
/** Carried from the descriptor: templated registry members for this
|
|
@@ -1635,14 +1825,24 @@ type PluginSurface<P extends AnyPlugin> = P extends MethodPlugin<infer TName, in
|
|
|
1635
1825
|
[K in keyof TExports]: ExportSurface<TExports[K]>;
|
|
1636
1826
|
} : never;
|
|
1637
1827
|
/**
|
|
1638
|
-
* The framework-owned access an SDK carries beyond its string surface
|
|
1639
|
-
*
|
|
1640
|
-
*
|
|
1641
|
-
*
|
|
1828
|
+
* The framework-owned access an SDK carries beyond its string surface.
|
|
1829
|
+
*
|
|
1830
|
+
* Both keys, because the value has both. `[CONTEXT]` is what materialization
|
|
1831
|
+
* writes and what `getContext` reads, so declaring it is the type telling the
|
|
1832
|
+
* truth. `context` is the legacy string key, kept for back-compat and narrowing
|
|
1833
|
+
* away later.
|
|
1834
|
+
*
|
|
1835
|
+
* The symbol used to be omitted so it would not reach a consumer's emitted
|
|
1836
|
+
* declarations. It is exported from the package root, so it is nameable there,
|
|
1837
|
+
* and hiding it cost more than it saved: `ControllerSdk` had to check the
|
|
1838
|
+
* legacy string key as a stand-in for the real one.
|
|
1642
1839
|
*/
|
|
1840
|
+
interface SdkContextCarrier {
|
|
1841
|
+
readonly [CONTEXT]: SdkContext;
|
|
1842
|
+
}
|
|
1643
1843
|
type SdkInternals = {
|
|
1644
1844
|
context: SdkContext;
|
|
1645
|
-
};
|
|
1845
|
+
} & SdkContextCarrier;
|
|
1646
1846
|
/**
|
|
1647
1847
|
* The materialized SDK for a leaf root: the root's callable (method) or value
|
|
1648
1848
|
* (property) under its name, plus framework access.
|
|
@@ -1685,6 +1885,25 @@ interface PluginSummary<TRequires extends string = never, TProvides extends stri
|
|
|
1685
1885
|
/** Ids the plugin and its subgraph provide. @internal */
|
|
1686
1886
|
readonly [PROVIDES]?: TProvides;
|
|
1687
1887
|
}
|
|
1888
|
+
/**
|
|
1889
|
+
* The id a stand-in declares, carried separately from the requires ledger.
|
|
1890
|
+
*
|
|
1891
|
+
* `declareProperty` requires its own id, so the ledger alone would do. A
|
|
1892
|
+
* `declareOptionalProperty` requires NOTHING, which is the point of it, so its
|
|
1893
|
+
* ledger is empty and the id has nowhere else to live. Reading the id off the
|
|
1894
|
+
* ledger meant an optional stand-in handed a by-reference provider `never`,
|
|
1895
|
+
* and a `never` in that position stopped `CompletenessOf` reporting anything
|
|
1896
|
+
* for the whole graph.
|
|
1897
|
+
*
|
|
1898
|
+
* A carrier of its own keeps the two facts apart: what a stand-in NEEDS, and
|
|
1899
|
+
* what it NAMES.
|
|
1900
|
+
*/
|
|
1901
|
+
interface StandInId<TId extends string = never> {
|
|
1902
|
+
/** @internal */
|
|
1903
|
+
readonly [DECLARES]?: TId;
|
|
1904
|
+
}
|
|
1905
|
+
/** Phantom-only key (see `StandInId`); never set at runtime. */
|
|
1906
|
+
declare const DECLARES: unique symbol;
|
|
1688
1907
|
/** The declaration ids a plugin still needs (reads the phantom carrier). */
|
|
1689
1908
|
type RequiresOf<P> = P extends {
|
|
1690
1909
|
readonly [REQUIRES]?: infer R;
|
|
@@ -2330,6 +2549,26 @@ declare function createPluginStack<TRequires = object>(): PluginStack<TRequires,
|
|
|
2330
2549
|
};
|
|
2331
2550
|
}>;
|
|
2332
2551
|
|
|
2552
|
+
/**
|
|
2553
|
+
* Reject a LIST stand-in from the ref form, at the REF rather than at `run`.
|
|
2554
|
+
* Without this the mismatch surfaces as a run-return type error, which sends
|
|
2555
|
+
* the reader to the wrong file. The key is the message: a missing required
|
|
2556
|
+
* property names itself in the error.
|
|
2557
|
+
*
|
|
2558
|
+
* A `PaginatedSdkResult` is a decorated thenable the framework builds, so no
|
|
2559
|
+
* hand-written `run` returns one. That makes it a fact about the ref, not a
|
|
2560
|
+
* guess.
|
|
2561
|
+
*
|
|
2562
|
+
* ITEM is deliberately absent. An item surface is `Promise<{ data }>`, which is
|
|
2563
|
+
* also just an ordinary async method returning an object with a `data` field,
|
|
2564
|
+
* and rejecting the second to catch the first turned a valid raw provider into
|
|
2565
|
+
* a compile error with advice that did not apply. An item stand-in implemented
|
|
2566
|
+
* by reference now fails on the run return instead, which is a worse message
|
|
2567
|
+
* for a real mistake but does not refuse correct code.
|
|
2568
|
+
*/
|
|
2569
|
+
type RefFormRawOnly<TOutput> = TOutput extends PaginatedSdkResult<unknown> ? {
|
|
2570
|
+
"defineMethod(ref, config) provides raw output only; define a list provider from scratch": never;
|
|
2571
|
+
} : unknown;
|
|
2333
2572
|
/**
|
|
2334
2573
|
* Define a method leaf. The plugin IS the function; `createSdk` (or a
|
|
2335
2574
|
* dependent's `imports`) binds it under its bare `name`. `imports` is typed
|
|
@@ -2389,10 +2628,10 @@ declare function defineMethod<const TName extends string, TInput, TResponse exte
|
|
|
2389
2628
|
input?: unknown;
|
|
2390
2629
|
}) => void | Promise<void>;
|
|
2391
2630
|
run: (bag: MethodRunBag<ImportsOf<TImports>, TInput, TState>) => TResponse | Promise<TResponse>;
|
|
2392
|
-
} & LeafMetaFields): MethodPlugin<TName, TInput, Promise<{
|
|
2631
|
+
} & LeafMetaFields): MethodPlugin<TName, TInput & CallOutputOptions, Promise<{
|
|
2393
2632
|
data: TData;
|
|
2394
2633
|
meta?: ResponseMeta;
|
|
2395
|
-
}>> & LeafSummary<TNamespace, TName, TImports>;
|
|
2634
|
+
}>, readonly [], ItemRunInput<TInput>> & LeafSummary<TNamespace, TName, TImports>;
|
|
2396
2635
|
declare function defineMethod<const TName extends string, TInput, TResponse extends StrictPage$1<TResponse>, TItem = ItemOf$1<TResponse>, const TImports extends ImportsInput = readonly [], const TNamespace extends string = "", TState = undefined>(config: {
|
|
2397
2636
|
name: TName;
|
|
2398
2637
|
namespace?: TNamespace;
|
|
@@ -2415,7 +2654,7 @@ declare function defineMethod<const TName extends string, TInput, TResponse exte
|
|
|
2415
2654
|
input?: unknown;
|
|
2416
2655
|
}) => void | Promise<void>;
|
|
2417
2656
|
run: (bag: MethodRunBag<ImportsOf<TImports>, TInput & PageFetchInput, TState>) => TResponse | Promise<TResponse>;
|
|
2418
|
-
} & LeafMetaFields): MethodPlugin<TName, TInput & PaginatedCallInput, PaginatedSdkResult<TItem>> & LeafSummary<TNamespace, TName, TImports>;
|
|
2657
|
+
} & LeafMetaFields): MethodPlugin<TName, TInput & PaginatedCallInput & CallOutputOptions, PaginatedSdkResult<TItem>, readonly [], ListRunInput<TInput>> & LeafSummary<TNamespace, TName, TImports>;
|
|
2419
2658
|
declare function defineMethod<const TName extends string, TInput, TResponse, TItem, const TImports extends ImportsInput = readonly [], const TNamespace extends string = "", TState = undefined>(config: {
|
|
2420
2659
|
name: TName;
|
|
2421
2660
|
namespace?: TNamespace;
|
|
@@ -2438,25 +2677,57 @@ declare function defineMethod<const TName extends string, TInput, TResponse, TIt
|
|
|
2438
2677
|
input?: unknown;
|
|
2439
2678
|
}) => void | Promise<void>;
|
|
2440
2679
|
run: (bag: MethodRunBag<ImportsOf<TImports>, TInput & PageFetchInput, TState>) => TResponse | Promise<TResponse>;
|
|
2441
|
-
} & LeafMetaFields): MethodPlugin<TName, TInput & PaginatedCallInput, PaginatedSdkResult<TItem>> & LeafSummary<TNamespace, TName, TImports>;
|
|
2442
|
-
|
|
2443
|
-
|
|
2444
|
-
|
|
2445
|
-
|
|
2446
|
-
|
|
2447
|
-
|
|
2448
|
-
|
|
2449
|
-
|
|
2450
|
-
|
|
2451
|
-
|
|
2452
|
-
|
|
2680
|
+
} & LeafMetaFields): MethodPlugin<TName, TInput & PaginatedCallInput & CallOutputOptions, PaginatedSdkResult<TItem>, readonly [], ListRunInput<TInput>> & LeafSummary<TNamespace, TName, TImports>;
|
|
2681
|
+
declare function defineMethod<const TName extends string, TInput, TOutput, const TId extends string, const TImports extends ImportsInput = readonly [], TState = undefined>(ref: MethodPlugin<TName, TInput, TOutput> & StandInId<TId> & RefFormRawOnly<TOutput>, config: {
|
|
2682
|
+
imports?: TImports & StaticList<TImports>;
|
|
2683
|
+
inputSchema?: z.ZodType<TInput>;
|
|
2684
|
+
skipInputValidation?: boolean;
|
|
2685
|
+
resolvers?: Record<string, Resolver>;
|
|
2686
|
+
formatter?: Formatter;
|
|
2687
|
+
setup?: (bag: {
|
|
2688
|
+
imports: ImportsOf<TImports>;
|
|
2689
|
+
}) => TState;
|
|
2690
|
+
dispose?: (bag: {
|
|
2691
|
+
imports: ImportsOf<TImports>;
|
|
2692
|
+
state: TState;
|
|
2693
|
+
input?: unknown;
|
|
2694
|
+
}) => void | Promise<void>;
|
|
2695
|
+
run: (bag: MethodRunBag<ImportsOf<TImports>, NoInfer<TInput>, TState>) => NoInfer<TOutput>;
|
|
2696
|
+
} & LeafMetaFields): MethodPlugin<TName, TInput, TOutput> & PluginSummary<LeafRequires<TId, TImports>, LeafProvides<TId, TImports>>;
|
|
2697
|
+
/**
|
|
2698
|
+
* Patch how a surface PRESENTS an already-defined method, by reference. Pass
|
|
2699
|
+
* the method (or its `declareMethod` stand-in) and any of
|
|
2700
|
+
* {@link OverridableMetaFields}. After the SDK materializes, those fields merge
|
|
2701
|
+
* onto the target's entry, so the registry / CLI / MCP / docs project the
|
|
2702
|
+
* patched values. The target's `run`, resolvers, and declared type are
|
|
2703
|
+
* untouched, which is the whole point: see {@link OverridableMetaFields} for
|
|
2704
|
+
* the fields that are refused and why.
|
|
2705
|
+
*
|
|
2706
|
+
* Use it for a tweak one surface wants and the base method should not carry, a
|
|
2707
|
+
* CLI deprecating `fetch` while the SDK does not. Include it in an aggregate's
|
|
2453
2708
|
* `imports` to apply it during `createSdk`, or `addPlugin(sdk, override)` to
|
|
2454
2709
|
* apply it to a built SDK.
|
|
2710
|
+
*
|
|
2711
|
+
* Taking the reference rather than an id string is the same choice
|
|
2712
|
+
* `defineMethod(ref, ...)` and `defineProperty(ref, ...)` make. No id is
|
|
2713
|
+
* respelled, so a rename cannot leave a silent no-op behind, and the name does
|
|
2714
|
+
* not restate what the reference already says. `declareMethod` gives you a
|
|
2715
|
+
* stand-in when you want to patch a method without importing it.
|
|
2716
|
+
*
|
|
2717
|
+
* `namespace` names the OVERRIDE, not the target, so two surfaces can each
|
|
2718
|
+
* patch the same method in one graph without colliding.
|
|
2719
|
+
*/
|
|
2720
|
+
declare function defineOverride(ref: AnyMethodPlugin, config?: {
|
|
2721
|
+
namespace?: string;
|
|
2722
|
+
} & OverridableMetaFields): MethodOverridePlugin;
|
|
2723
|
+
/**
|
|
2724
|
+
* @deprecated Use {@link defineOverride}, which takes the method itself instead
|
|
2725
|
+
* of its id spelled out again.
|
|
2455
2726
|
*/
|
|
2456
2727
|
declare function defineMethodOverride<const TTarget extends string>(config: {
|
|
2457
2728
|
target: TTarget;
|
|
2458
2729
|
namespace?: string;
|
|
2459
|
-
} &
|
|
2730
|
+
} & OverridableMetaFields): MethodOverridePlugin;
|
|
2460
2731
|
/**
|
|
2461
2732
|
* Define an input resolver: a method attachment for one of its parameters. Like
|
|
2462
2733
|
* `defineMethod` it declares its own `imports`, and its callbacks receive a
|
|
@@ -2477,7 +2748,7 @@ declare function defineMethodOverride<const TTarget extends string>(config: {
|
|
|
2477
2748
|
declare function defineResolver<const TImports extends ImportsInput = readonly [], TItem = unknown, TInput = Record<string, unknown>, TContext = unknown>(config: {
|
|
2478
2749
|
type?: "dynamic";
|
|
2479
2750
|
imports?: TImports & StaticList<TImports>;
|
|
2480
|
-
requireParameters?: readonly
|
|
2751
|
+
requireParameters?: readonly ResolverRequirement[];
|
|
2481
2752
|
inputType?: "text" | "password" | "email" | "search";
|
|
2482
2753
|
placeholder?: string;
|
|
2483
2754
|
/** Compute side-context once, before `listItems` (pre-fetch, no items yet),
|
|
@@ -2539,14 +2810,14 @@ declare function defineResolver<const TImports extends ImportsInput = readonly [
|
|
|
2539
2810
|
}): DynamicResolver;
|
|
2540
2811
|
declare function defineResolver(config: {
|
|
2541
2812
|
type: "static";
|
|
2542
|
-
requireParameters?: readonly
|
|
2813
|
+
requireParameters?: readonly ResolverRequirement[];
|
|
2543
2814
|
inputType?: "text" | "password" | "email" | "search";
|
|
2544
2815
|
placeholder?: string;
|
|
2545
2816
|
}): StaticResolver;
|
|
2546
2817
|
declare function defineResolver(config: {
|
|
2547
2818
|
type: "constant";
|
|
2548
2819
|
value: unknown;
|
|
2549
|
-
requireParameters?: readonly
|
|
2820
|
+
requireParameters?: readonly ResolverRequirement[];
|
|
2550
2821
|
}): ConstantResolver;
|
|
2551
2822
|
declare function defineResolver(config: {
|
|
2552
2823
|
type: "info";
|
|
@@ -2555,7 +2826,7 @@ declare function defineResolver(config: {
|
|
|
2555
2826
|
declare function defineResolver<const TImports extends ImportsInput = readonly [], TInput = Record<string, unknown>>(config: {
|
|
2556
2827
|
type: "object";
|
|
2557
2828
|
imports?: TImports & StaticList<TImports>;
|
|
2558
|
-
requireParameters?: readonly
|
|
2829
|
+
requireParameters?: readonly ResolverRequirement[];
|
|
2559
2830
|
properties?: Record<string, Field>;
|
|
2560
2831
|
/** Build the property map when the key set is dynamic (re-invoked as `input`
|
|
2561
2832
|
* grow). Returns the map raw, no envelope. */
|
|
@@ -2569,7 +2840,7 @@ declare function defineResolver<const TImports extends ImportsInput = readonly [
|
|
|
2569
2840
|
}): ObjectResolver;
|
|
2570
2841
|
declare function defineResolver(config: {
|
|
2571
2842
|
type: "array";
|
|
2572
|
-
requireParameters?: readonly
|
|
2843
|
+
requireParameters?: readonly ResolverRequirement[];
|
|
2573
2844
|
items: Resolver | ResolverRef;
|
|
2574
2845
|
minItems?: number;
|
|
2575
2846
|
maxItems?: number;
|
|
@@ -2612,7 +2883,7 @@ declare function defineFormatter<const TImports extends ImportsInput = readonly
|
|
|
2612
2883
|
*/
|
|
2613
2884
|
declare function declareMethod<const TId extends string, TInput = unknown, TOutput = unknown>(config: {
|
|
2614
2885
|
id: LiteralString<TId>;
|
|
2615
|
-
}): MethodPlugin<LastSegment<TId>, TInput, TOutput> & PluginSummary<TId, never>;
|
|
2886
|
+
}): MethodPlugin<LastSegment<TId>, TInput, TOutput> & PluginSummary<TId, never> & StandInId<TId>;
|
|
2616
2887
|
/**
|
|
2617
2888
|
* Declare an OPTIONAL stand-in for a method registered elsewhere: the method twin
|
|
2618
2889
|
* of `declareOptionalProperty`. Unlike `declareMethod`, an unsatisfied optional
|
|
@@ -2625,11 +2896,13 @@ declare function declareOptionalMethod<const TId extends string, TInput = unknow
|
|
|
2625
2896
|
id: LiteralString<TId>;
|
|
2626
2897
|
}): MethodPlugin<LastSegment<TId>, TInput, TOutput> & {
|
|
2627
2898
|
optional: true;
|
|
2628
|
-
} & PluginSummary<never, never>;
|
|
2899
|
+
} & PluginSummary<never, never> & StandInId<TId>;
|
|
2629
2900
|
/**
|
|
2630
|
-
* Define a property leaf. Either a static `value` or a computed `get
|
|
2631
|
-
*
|
|
2632
|
-
*
|
|
2901
|
+
* Define a property leaf. Either a static `value` or a computed `get`, which
|
|
2902
|
+
* re-runs live on each read; an optional `setup` runs once at `createSdk`
|
|
2903
|
+
* (dependencies first, like a method's `setup`) to build the state `get` reads.
|
|
2904
|
+
* `createSdk`, a dependent's `imports`, or an aggregate's re-export binds it
|
|
2905
|
+
* under its bare `name` and yields the value.
|
|
2633
2906
|
*/
|
|
2634
2907
|
declare function defineProperty<const TName extends string, TValue, const TNamespace extends string = "">(config: {
|
|
2635
2908
|
name: TName;
|
|
@@ -2651,11 +2924,29 @@ declare function defineProperty<const TName extends string, TValue, const TImpor
|
|
|
2651
2924
|
get: (bag: {
|
|
2652
2925
|
imports: ImportsOf<TImports>;
|
|
2653
2926
|
state: TState;
|
|
2927
|
+
/** The live per-call context when the property is read from a method's
|
|
2928
|
+
* `imports` bag — every method call has one, at any depth. Undefined only
|
|
2929
|
+
* where no call is in flight: the property bound onto the SDK object
|
|
2930
|
+
* itself, and reads from a `setup`-time imports bag. A context-aware
|
|
2931
|
+
* property reads its `callId` off this; because its value is then specific
|
|
2932
|
+
* to the reading call, callers must not cache it across calls. */
|
|
2933
|
+
callContext?: CallContext;
|
|
2654
2934
|
}) => TValue;
|
|
2655
2935
|
/** Templated registry members for this property's dynamic sub-surface (e.g.
|
|
2656
2936
|
* a proxy): each a bodyless declaration keyed by `path` instead of `name`. */
|
|
2657
2937
|
dynamicMembers?: readonly DynamicMember[];
|
|
2658
2938
|
} & LeafMetaFields): PropertyPlugin<TName, TValue> & LeafSummary<TNamespace, TName, TImports>;
|
|
2939
|
+
/**
|
|
2940
|
+
* Provide a value for a declared property BY REFERENCE: pass the
|
|
2941
|
+
* `declareProperty` / `declareOptionalProperty` stand-in instead of respelling
|
|
2942
|
+
* its `name` / `namespace`, and `value` is typed against the declaration. The
|
|
2943
|
+
* result is a real property that satisfies the stand-in (or overrides its
|
|
2944
|
+
* default) by id. The refactor-safe, no-string alternative to matching ids by
|
|
2945
|
+
* hand (and the in-graph replacement for `createSdk`'s `configuration` channel).
|
|
2946
|
+
*/
|
|
2947
|
+
declare function defineProperty<const TName extends string, TValue, const TId extends string>(ref: PropertyPlugin<TName, TValue> & StandInId<TId>, config: {
|
|
2948
|
+
value: NoInfer<TValue>;
|
|
2949
|
+
} & LeafMetaFields): PropertyPlugin<TName, TValue> & PluginSummary<never, TId>;
|
|
2659
2950
|
/**
|
|
2660
2951
|
* Declare a stand-in for a property registered elsewhere (a configured factory
|
|
2661
2952
|
* plugin, e.g. the api client built from options). Carries only a name and a
|
|
@@ -2666,7 +2957,7 @@ declare function defineProperty<const TName extends string, TValue, const TImpor
|
|
|
2666
2957
|
*/
|
|
2667
2958
|
declare function declareProperty<const TId extends string, TValue = unknown>(config: {
|
|
2668
2959
|
id: LiteralString<TId>;
|
|
2669
|
-
}): PropertyPlugin<LastSegment<TId>, TValue> & PluginSummary<TId, never>;
|
|
2960
|
+
}): PropertyPlugin<LastSegment<TId>, TValue> & PluginSummary<TId, never> & StandInId<TId>;
|
|
2670
2961
|
/**
|
|
2671
2962
|
* Declare an OPTIONAL stand-in for a property registered elsewhere. Unlike
|
|
2672
2963
|
* `declareProperty`, a `declareOptionalProperty` left unsatisfied is NOT a missing
|
|
@@ -2682,7 +2973,7 @@ declare function declareProperty<const TId extends string, TValue = unknown>(con
|
|
|
2682
2973
|
*/
|
|
2683
2974
|
declare function declareOptionalProperty<const TId extends string, TValue = unknown>(config: {
|
|
2684
2975
|
id: LiteralString<TId>;
|
|
2685
|
-
}): PropertyPlugin<LastSegment<TId>, TValue | undefined> & PluginSummary<never, never>;
|
|
2976
|
+
}): PropertyPlugin<LastSegment<TId>, TValue | undefined> & PluginSummary<never, never> & StandInId<TId>;
|
|
2686
2977
|
/**
|
|
2687
2978
|
* Declare a DEFAULT provider for a dependency you own: import the capability the
|
|
2688
2979
|
* given plugin provides, and fall back to that plugin when nothing else provides
|
|
@@ -3072,7 +3363,7 @@ interface CoreOptions {
|
|
|
3072
3363
|
logStabilityNotice?: (notice: StabilityNotice) => void;
|
|
3073
3364
|
/**
|
|
3074
3365
|
* Report what output validation stripped, on the response's
|
|
3075
|
-
* `meta.
|
|
3366
|
+
* `meta.outputDataValidation.droppedPaths`. Off by
|
|
3076
3367
|
* default: the report is a debugging aid for reconciling a schema against the
|
|
3077
3368
|
* wire, and a sidecar every caller has to ignore is worse than one a head
|
|
3078
3369
|
* turns on while it audits its schemas. Off also skips the recursive
|
|
@@ -3088,7 +3379,7 @@ interface CoreOptions {
|
|
|
3088
3379
|
* `CoreOptions | undefined` (absent means kitcore's built-in behavior). Heads
|
|
3089
3380
|
* supply the value via `createSdk`'s `configuration` or a registered property.
|
|
3090
3381
|
*/
|
|
3091
|
-
declare const coreOptionsPluginRef: PropertyPlugin<"coreOptions", CoreOptions | undefined> & PluginSummary<never, never>;
|
|
3382
|
+
declare const coreOptionsPluginRef: PropertyPlugin<"coreOptions", CoreOptions | undefined> & PluginSummary<never, never> & StandInId<"kitcore/coreOptions">;
|
|
3092
3383
|
/**
|
|
3093
3384
|
* Escape hatch. A built-in privileged plugin whose value is the live
|
|
3094
3385
|
* `SdkContext` (the raw plugin graph). Importing it (`imports.context`) lets a
|
|
@@ -3102,34 +3393,32 @@ declare const coreOptionsPluginRef: PropertyPlugin<"coreOptions", CoreOptions |
|
|
|
3102
3393
|
*/
|
|
3103
3394
|
declare const dangerousContextPlugin: PropertyPlugin<"context", SdkContext>;
|
|
3104
3395
|
/**
|
|
3105
|
-
* A built-in that reports the
|
|
3396
|
+
* A built-in that reports the SDK surface as the canonical
|
|
3106
3397
|
* {@link RegistryResult}. It is just a method depending on `dangerousContextPlugin` (no
|
|
3107
|
-
* new privilege): re-export it to put `getRegistry()` on the SDK surface.
|
|
3108
|
-
*
|
|
3109
|
-
*
|
|
3110
|
-
*
|
|
3398
|
+
* new privilege): re-export it to put `getRegistry()` on the SDK surface. A thin
|
|
3399
|
+
* shim over the shared `getCachedRegistry`, the same path the free
|
|
3400
|
+
* `getRegistry(sdk)` takes, so a surfaced call and an off-surface call return
|
|
3401
|
+
* the identical memoized object. Surfacing is optional, since controllers reach
|
|
3402
|
+
* the registry through `getRegistry(sdk)` whether or not a head re-exports this.
|
|
3111
3403
|
*/
|
|
3112
3404
|
declare const getRegistryPlugin: MethodPlugin<"getRegistry", {
|
|
3113
3405
|
package?: string | undefined;
|
|
3114
|
-
} | undefined, RegistryResult, readonly []
|
|
3406
|
+
} | undefined, RegistryResult, readonly [], {
|
|
3407
|
+
package?: string | undefined;
|
|
3408
|
+
} | undefined> & LeafSummary<"kitcore", "getRegistry", readonly [PropertyPlugin<"context", SdkContext>]>;
|
|
3115
3409
|
|
|
3116
|
-
/**
|
|
3117
|
-
* The external escape-hatch key for an SDK's context. A Symbol,
|
|
3118
|
-
* not a string, so it stays off the string surface (which is exactly the root's
|
|
3119
|
-
* exports) and is collision-free and clearly internal. It is attached at
|
|
3120
|
-
* runtime but kept OUT of the public SDK type (a `unique symbol` in an exported
|
|
3121
|
-
* type can't be named in a consumer's emitted `.d.ts`); reach it through the
|
|
3122
|
-
* typed `getContext(sdk)` accessor.
|
|
3123
|
-
*
|
|
3124
|
-
* `Symbol.for`, not `Symbol()`: heads bundle kitcore (tsup `noExternal`), so
|
|
3125
|
-
* an sdk built by one bundle's copy must still be readable by another copy's
|
|
3126
|
-
* `getContext` / `resolvePlugin` (e.g. a CLI sdk inspected with helpers
|
|
3127
|
-
* imported from `@zapier/zapier-sdk`). The global symbol registry makes every
|
|
3128
|
-
* copy agree on the key.
|
|
3129
|
-
*/
|
|
3130
|
-
declare const CONTEXT: unique symbol;
|
|
3131
3410
|
/** The off-surface escape hatch to an SDK's `SdkContext`. */
|
|
3132
3411
|
declare function getContext(sdk: unknown): SdkContext;
|
|
3412
|
+
/**
|
|
3413
|
+
* Read an SDK's registry from outside its surface, so a head need not re-export
|
|
3414
|
+
* `getRegistryPlugin` for a controller to introspect it. Module-model SDKs go
|
|
3415
|
+
* through the shared, memoized {@link getCachedRegistry} (context-keyed, so this
|
|
3416
|
+
* and a surfaced `getRegistry()` return the same object). A pure-legacy
|
|
3417
|
+
* stack-built SDK has no `[CONTEXT]` graph; for those the only path is a
|
|
3418
|
+
* surfaced `getRegistry()`, so fall back to it when present. Each package
|
|
3419
|
+
* filter is memoized separately.
|
|
3420
|
+
*/
|
|
3421
|
+
declare function getRegistry(sdk: unknown, packageFilter?: string): RegistryResult;
|
|
3133
3422
|
/**
|
|
3134
3423
|
* Resolve a plugin's materialized value against a built SDK: a method's
|
|
3135
3424
|
* callable or a property's value (the same thing an importer receives), NOT
|
|
@@ -3480,10 +3769,12 @@ interface ControllerParameterDescription {
|
|
|
3480
3769
|
/** Statically known labeled values, when the parameter is a fixed enum. Richer
|
|
3481
3770
|
* than `schema.enum` (carries label/hint), so kept alongside `schema`. */
|
|
3482
3771
|
choices?: ControllerChoice[];
|
|
3483
|
-
/**
|
|
3484
|
-
*
|
|
3485
|
-
*
|
|
3486
|
-
|
|
3772
|
+
/** Parameters this one depends on (`requireParameters`). A form host reads
|
|
3773
|
+
* this to know which fields are independent (render together) and which to
|
|
3774
|
+
* re-fetch when a dependency changes. A bare name is resolved by the engine
|
|
3775
|
+
* (container, then root); an array is an absolute path. Both are plain JSON,
|
|
3776
|
+
* so this stays serializable across the controller wall. */
|
|
3777
|
+
requireParameters?: readonly (string | readonly (string | number)[])[];
|
|
3487
3778
|
}
|
|
3488
3779
|
/** A method's lightweight index entry: enough to render a menu or tool list
|
|
3489
3780
|
* without the full per-parameter detail. The list face of {@link Controller}. */
|
|
@@ -3576,20 +3867,82 @@ interface Controller {
|
|
|
3576
3867
|
}>;
|
|
3577
3868
|
}
|
|
3578
3869
|
|
|
3579
|
-
/**
|
|
3580
|
-
|
|
3870
|
+
/**
|
|
3871
|
+
* What the driver needs of a built SDK: one of two ways to reach a registry.
|
|
3872
|
+
*
|
|
3873
|
+
* The registry is read with the free {@link getRegistry}, which finds it on the
|
|
3874
|
+
* SDK's context and falls back to a surfaced `getRegistry()` for a legacy
|
|
3875
|
+
* stack-built SDK. So demanding the surfaced method alone is wrong: a bare tool
|
|
3876
|
+
* SDK does not surface one, and it cannot always add `getRegistryPlugin`
|
|
3877
|
+
* either, because a head bundling its own kitcore copy would collide with it on
|
|
3878
|
+
* the shared `kitcore/getRegistry` id.
|
|
3879
|
+
*
|
|
3880
|
+
* A union, because those really are two different shapes. `SdkInternals` is
|
|
3881
|
+
* what every `createSdk` result carries, and the structural branch is the
|
|
3882
|
+
* legacy one. Anything else can never back a controller, and saying so here
|
|
3883
|
+
* beats an internal registry error on the caller's first `listMethods()`.
|
|
3884
|
+
*
|
|
3885
|
+
* The context branch is `SdkInternals`, which declares the `[CONTEXT]` symbol
|
|
3886
|
+
* materialization actually writes. So this checks the real thing rather than a
|
|
3887
|
+
* correlated one.
|
|
3888
|
+
*/
|
|
3889
|
+
type ControllerSdk = SdkInternals | {
|
|
3581
3890
|
getRegistry: (options?: {
|
|
3582
3891
|
package?: string;
|
|
3583
3892
|
}) => RegistryResult;
|
|
3584
|
-
}
|
|
3893
|
+
};
|
|
3585
3894
|
/**
|
|
3586
|
-
* Build a {@link Controller} over a built SDK. Reads
|
|
3895
|
+
* Build a {@link Controller} over a built SDK. Reads the registry
|
|
3587
3896
|
* at call time (so post-build `addPlugin` additions are visible) to find each
|
|
3588
3897
|
* method's canonical input schema and bound resolvers, then drives the engine.
|
|
3589
3898
|
* The SDK surface itself is untouched; this is a sibling layer.
|
|
3590
3899
|
*/
|
|
3591
3900
|
declare function createController(sdk: ControllerSdk): Controller;
|
|
3592
3901
|
|
|
3902
|
+
/**
|
|
3903
|
+
* The floor the framework holds its own call parameters to, and the only
|
|
3904
|
+
* statement of their shapes. Which of them a given boundary reads at all is
|
|
3905
|
+
* that boundary's {@link FrameworkOptionsPolicy}.
|
|
3906
|
+
*
|
|
3907
|
+
* MINIMAL on purpose. It rejects what the machinery cannot act on and nothing
|
|
3908
|
+
* else, leaving a plugin free to tighten it. `pageSize` is at least 1 because a
|
|
3909
|
+
* page loop asking upstream for zero items does not terminate. `maxItems` may
|
|
3910
|
+
* be 0, since "return nothing" is a coherent request the loop already handles.
|
|
3911
|
+
* `cursor` is any string: its meaning belongs to the head's API, including
|
|
3912
|
+
* whatever a reverse-paginating one encodes in it.
|
|
3913
|
+
*
|
|
3914
|
+
* A plugin that wants a tighter rule writes it in its own `inputSchema`, and
|
|
3915
|
+
* both run. See {@link parseCallOptions}.
|
|
3916
|
+
*/
|
|
3917
|
+
declare const CallFrameworkOptionsSchema: z.ZodObject<{
|
|
3918
|
+
cursor: z.ZodOptional<z.ZodString>;
|
|
3919
|
+
pageSize: z.ZodOptional<z.ZodNumber>;
|
|
3920
|
+
maxItems: z.ZodOptional<z.ZodNumber>;
|
|
3921
|
+
skipOutputDataValidation: z.ZodOptional<z.ZodBoolean>;
|
|
3922
|
+
}, z.core.$strip>;
|
|
3923
|
+
type CallFrameworkOptions = z.infer<typeof CallFrameworkOptionsSchema>;
|
|
3924
|
+
type CallFrameworkOptionKey = keyof CallFrameworkOptions;
|
|
3925
|
+
/**
|
|
3926
|
+
* What one boundary does with the framework's call parameters.
|
|
3927
|
+
*
|
|
3928
|
+
* There is no global answer, because the modes differ. A list call feeds a page
|
|
3929
|
+
* loop; an item call has no loop to feed; a legacy handler honors nothing the
|
|
3930
|
+
* framework added after it was written.
|
|
3931
|
+
*
|
|
3932
|
+
* This is a fact about the MODE, decided when the boundary is built. It says
|
|
3933
|
+
* nothing about the plugin's schema, which is the difference between this and
|
|
3934
|
+
* everything {@link parseCallOptions} used to infer.
|
|
3935
|
+
*/
|
|
3936
|
+
interface FrameworkOptionsPolicy {
|
|
3937
|
+
/** The parameters this boundary reads. Each is also held to
|
|
3938
|
+
* {@link CallFrameworkOptionsSchema}, whatever the plugin's schema says. */
|
|
3939
|
+
claims: readonly CallFrameworkOptionKey[];
|
|
3940
|
+
/** The subset handed to `run` even when the plugin's schema dropped it,
|
|
3941
|
+
* because `run` cannot do its job without it. A list `run` is asked for one
|
|
3942
|
+
* page, so it gets that page. */
|
|
3943
|
+
injects: readonly CallFrameworkOptionKey[];
|
|
3944
|
+
}
|
|
3945
|
+
|
|
3593
3946
|
/**
|
|
3594
3947
|
* Generic utility functions for creating SDK-method wrappers.
|
|
3595
3948
|
*
|
|
@@ -3631,6 +3984,11 @@ declare function createFunction<TOptions, TResult, TSchemaOptions extends TOptio
|
|
|
3631
3984
|
* onMethodStart with the normalized input, its result merged into the
|
|
3632
3985
|
* call's annotation bag. */
|
|
3633
3986
|
annotator?: (input: unknown) => Annotations;
|
|
3987
|
+
/** Which framework call parameters this callable reads; see
|
|
3988
|
+
* `FrameworkOptionsPolicy`. Omitted means none, which is what a legacy
|
|
3989
|
+
* handler wants: nothing there honors a framework parameter, so every key
|
|
3990
|
+
* in the call object is the handler's own. */
|
|
3991
|
+
frameworkOptions?: FrameworkOptionsPolicy;
|
|
3634
3992
|
/** Live read of the method's deprecation meta (see signalDeprecation). */
|
|
3635
3993
|
getDeprecation?: () => FunctionDeprecation | undefined;
|
|
3636
3994
|
/** Live read of the method's stability level (see signalStability). */
|
|
@@ -3671,8 +4029,12 @@ declare function createPaginatedFunction<TUserOptions, TResponse, TItem = ItemTy
|
|
|
3671
4029
|
adaptPage?: (response: TResponse) => SdkPage<NoInfer<TItem>>;
|
|
3672
4030
|
/** Pre-run per-method annotator (see applyAnnotations). */
|
|
3673
4031
|
annotator?: (input: unknown) => Annotations;
|
|
3674
|
-
/** Applied to each canonical page after the shape guard (output validation)
|
|
3675
|
-
|
|
4032
|
+
/** Applied to each canonical page after the shape guard (output validation),
|
|
4033
|
+
* with this call's options so it can read per-call controls. */
|
|
4034
|
+
finalizePage?: (page: SdkPage<TItem>, callOptions: unknown) => SdkPage<TItem>;
|
|
4035
|
+
/** Which framework call parameters this callable reads; see
|
|
4036
|
+
* `FrameworkOptionsPolicy`. */
|
|
4037
|
+
frameworkOptions?: FrameworkOptionsPolicy;
|
|
3676
4038
|
/** Live read of the method's deprecation meta (see signalDeprecation). */
|
|
3677
4039
|
getDeprecation?: () => FunctionDeprecation | undefined;
|
|
3678
4040
|
/** Live read of the method's stability level (see signalStability). */
|
|
@@ -4157,14 +4519,14 @@ type SendHttpRequest = (request: HttpRequest) => ReturnType<typeof fetch>;
|
|
|
4157
4519
|
* removes the only boundary below `initializeHttpRequest`, and a retry wrap
|
|
4158
4520
|
* would then re-initialize and mint a fresh `operationId` per attempt.
|
|
4159
4521
|
*/
|
|
4160
|
-
declare const attemptHttpRequestPlugin: MethodPlugin<"attemptHttpRequest", AttemptHttpRequestInput, Promise<Response>, readonly []> & LeafSummary<"kitcore", "attemptHttpRequest", readonly [MethodPlugin<"prepareHttpRequest", PrepareHttpRequestInput, Promise<HttpRequest>, readonly []> & LeafSummary<"kitcore", "prepareHttpRequest", readonly []>, MethodPlugin<"authorizeHttpRequest", AuthorizeHttpRequestInput, Promise<HttpRequest>, readonly []> & LeafSummary<"kitcore", "authorizeHttpRequest", readonly []>, MethodPlugin<"dispatchHttpRequest", DispatchHttpRequestInput, Promise<Response>, readonly []> & LeafSummary<"kitcore", "dispatchHttpRequest", readonly []>, MethodPlugin<"receiveHttpResponse", ReceiveHttpResponseInput, Promise<Response>, readonly []> & LeafSummary<"kitcore", "receiveHttpResponse", readonly []>]>;
|
|
4522
|
+
declare const attemptHttpRequestPlugin: MethodPlugin<"attemptHttpRequest", AttemptHttpRequestInput, Promise<Response>, readonly [], AttemptHttpRequestInput> & LeafSummary<"kitcore", "attemptHttpRequest", readonly [MethodPlugin<"prepareHttpRequest", PrepareHttpRequestInput, Promise<HttpRequest>, readonly [], PrepareHttpRequestInput> & LeafSummary<"kitcore", "prepareHttpRequest", readonly []>, MethodPlugin<"authorizeHttpRequest", AuthorizeHttpRequestInput, Promise<HttpRequest>, readonly [], AuthorizeHttpRequestInput> & LeafSummary<"kitcore", "authorizeHttpRequest", readonly []>, MethodPlugin<"dispatchHttpRequest", DispatchHttpRequestInput, Promise<Response>, readonly [], DispatchHttpRequestInput> & LeafSummary<"kitcore", "dispatchHttpRequest", readonly []>, MethodPlugin<"receiveHttpResponse", ReceiveHttpResponseInput, Promise<Response>, readonly [], ReceiveHttpResponseInput> & LeafSummary<"kitcore", "receiveHttpResponse", readonly []>]>;
|
|
4161
4523
|
|
|
4162
4524
|
/**
|
|
4163
4525
|
* Completes the operation context: normalizes the caller's request and records
|
|
4164
4526
|
* whether its body can be sent again. Everything below this stage reads those
|
|
4165
4527
|
* two facts off `attempt.operation`, and neither changes across retries.
|
|
4166
4528
|
*/
|
|
4167
|
-
declare const initializeHttpRequestPlugin: MethodPlugin<"initializeHttpRequest", InitializeHttpRequestInput, Promise<HttpOperationContext>, readonly []> & LeafSummary<"kitcore", "initializeHttpRequest", readonly []>;
|
|
4529
|
+
declare const initializeHttpRequestPlugin: MethodPlugin<"initializeHttpRequest", InitializeHttpRequestInput, Promise<HttpOperationContext>, readonly [], InitializeHttpRequestInput> & LeafSummary<"kitcore", "initializeHttpRequest", readonly []>;
|
|
4168
4530
|
|
|
4169
4531
|
/**
|
|
4170
4532
|
* Options for {@link retryHttpRequestPlugin}, supplied by id like every other
|
|
@@ -4194,7 +4556,7 @@ interface RetryHttpRequestOptions {
|
|
|
4194
4556
|
retryOnError?: boolean;
|
|
4195
4557
|
}
|
|
4196
4558
|
declare const RETRY_HTTP_REQUEST_OPTIONS_ID = "kitcore/retryHttpRequestOptions";
|
|
4197
|
-
declare const retryHttpRequestOptionsPluginRef: PropertyPlugin<"retryHttpRequestOptions", RetryHttpRequestOptions | undefined> & PluginSummary<never, never>;
|
|
4559
|
+
declare const retryHttpRequestOptionsPluginRef: PropertyPlugin<"retryHttpRequestOptions", RetryHttpRequestOptions | undefined> & PluginSummary<never, never> & StandInId<"kitcore/retryHttpRequestOptions">;
|
|
4198
4560
|
/**
|
|
4199
4561
|
* Re-issue a failed attempt, opt-in by composition.
|
|
4200
4562
|
*
|
|
@@ -4226,13 +4588,13 @@ declare const retryHttpRequestOptionsPluginRef: PropertyPlugin<"retryHttpRequest
|
|
|
4226
4588
|
*/
|
|
4227
4589
|
declare const retryHttpRequestPlugin: HookPlugin<string>;
|
|
4228
4590
|
|
|
4229
|
-
declare const prepareHttpRequestPlugin: MethodPlugin<"prepareHttpRequest", PrepareHttpRequestInput, Promise<HttpRequest>, readonly []> & LeafSummary<"kitcore", "prepareHttpRequest", readonly []>;
|
|
4591
|
+
declare const prepareHttpRequestPlugin: MethodPlugin<"prepareHttpRequest", PrepareHttpRequestInput, Promise<HttpRequest>, readonly [], PrepareHttpRequestInput> & LeafSummary<"kitcore", "prepareHttpRequest", readonly []>;
|
|
4230
4592
|
|
|
4231
|
-
declare const authorizeHttpRequestPlugin: MethodPlugin<"authorizeHttpRequest", AuthorizeHttpRequestInput, Promise<HttpRequest>, readonly []> & LeafSummary<"kitcore", "authorizeHttpRequest", readonly []>;
|
|
4593
|
+
declare const authorizeHttpRequestPlugin: MethodPlugin<"authorizeHttpRequest", AuthorizeHttpRequestInput, Promise<HttpRequest>, readonly [], AuthorizeHttpRequestInput> & LeafSummary<"kitcore", "authorizeHttpRequest", readonly []>;
|
|
4232
4594
|
|
|
4233
|
-
declare const dispatchHttpRequestPlugin: MethodPlugin<"dispatchHttpRequest", DispatchHttpRequestInput, Promise<Response>, readonly []> & LeafSummary<"kitcore", "dispatchHttpRequest", readonly []>;
|
|
4595
|
+
declare const dispatchHttpRequestPlugin: MethodPlugin<"dispatchHttpRequest", DispatchHttpRequestInput, Promise<Response>, readonly [], DispatchHttpRequestInput> & LeafSummary<"kitcore", "dispatchHttpRequest", readonly []>;
|
|
4234
4596
|
|
|
4235
|
-
declare const receiveHttpResponsePlugin: MethodPlugin<"receiveHttpResponse", ReceiveHttpResponseInput, Promise<Response>, readonly []> & LeafSummary<"kitcore", "receiveHttpResponse", readonly []>;
|
|
4597
|
+
declare const receiveHttpResponsePlugin: MethodPlugin<"receiveHttpResponse", ReceiveHttpResponseInput, Promise<Response>, readonly [], ReceiveHttpResponseInput> & LeafSummary<"kitcore", "receiveHttpResponse", readonly []>;
|
|
4236
4598
|
|
|
4237
4599
|
/**
|
|
4238
4600
|
* The transport orchestrator: turn an {@link HttpRequestInput} into a native
|
|
@@ -4261,7 +4623,7 @@ declare const receiveHttpResponsePlugin: MethodPlugin<"receiveHttpResponse", Rec
|
|
|
4261
4623
|
* No retry by default: with nothing composed this runs exactly one attempt.
|
|
4262
4624
|
* `retryHttpRequestPlugin` is opt-in.
|
|
4263
4625
|
*/
|
|
4264
|
-
declare const sendHttpRequestPlugin: MethodPlugin<"sendHttpRequest", HttpRequestInput, Promise<Response>, readonly []> & LeafSummary<"kitcore", "sendHttpRequest", readonly [MethodPlugin<"initializeHttpRequest", InitializeHttpRequestInput, Promise<HttpOperationContext>, readonly []> & LeafSummary<"kitcore", "initializeHttpRequest", readonly []>, MethodPlugin<"attemptHttpRequest", AttemptHttpRequestInput, Promise<Response>, readonly []> & LeafSummary<"kitcore", "attemptHttpRequest", readonly [MethodPlugin<"prepareHttpRequest", PrepareHttpRequestInput, Promise<HttpRequest>, readonly []> & LeafSummary<"kitcore", "prepareHttpRequest", readonly []>, MethodPlugin<"authorizeHttpRequest", AuthorizeHttpRequestInput, Promise<HttpRequest>, readonly []> & LeafSummary<"kitcore", "authorizeHttpRequest", readonly []>, MethodPlugin<"dispatchHttpRequest", DispatchHttpRequestInput, Promise<Response>, readonly []> & LeafSummary<"kitcore", "dispatchHttpRequest", readonly []>, MethodPlugin<"receiveHttpResponse", ReceiveHttpResponseInput, Promise<Response>, readonly []> & LeafSummary<"kitcore", "receiveHttpResponse", readonly []>]>]>;
|
|
4626
|
+
declare const sendHttpRequestPlugin: MethodPlugin<"sendHttpRequest", HttpRequestInput, Promise<Response>, readonly [], HttpRequestInput> & LeafSummary<"kitcore", "sendHttpRequest", readonly [MethodPlugin<"initializeHttpRequest", InitializeHttpRequestInput, Promise<HttpOperationContext>, readonly [], InitializeHttpRequestInput> & LeafSummary<"kitcore", "initializeHttpRequest", readonly []>, MethodPlugin<"attemptHttpRequest", AttemptHttpRequestInput, Promise<Response>, readonly [], AttemptHttpRequestInput> & LeafSummary<"kitcore", "attemptHttpRequest", readonly [MethodPlugin<"prepareHttpRequest", PrepareHttpRequestInput, Promise<HttpRequest>, readonly [], PrepareHttpRequestInput> & LeafSummary<"kitcore", "prepareHttpRequest", readonly []>, MethodPlugin<"authorizeHttpRequest", AuthorizeHttpRequestInput, Promise<HttpRequest>, readonly [], AuthorizeHttpRequestInput> & LeafSummary<"kitcore", "authorizeHttpRequest", readonly []>, MethodPlugin<"dispatchHttpRequest", DispatchHttpRequestInput, Promise<Response>, readonly [], DispatchHttpRequestInput> & LeafSummary<"kitcore", "dispatchHttpRequest", readonly []>, MethodPlugin<"receiveHttpResponse", ReceiveHttpResponseInput, Promise<Response>, readonly [], ReceiveHttpResponseInput> & LeafSummary<"kitcore", "receiveHttpResponse", readonly []>]>]>;
|
|
4265
4627
|
|
|
4266
4628
|
/**
|
|
4267
4629
|
* `fetch` — native `fetch(url, init)` ergonomics over the transport. It
|
|
@@ -4287,7 +4649,10 @@ declare const sendHttpRequestPlugin: MethodPlugin<"sendHttpRequest", HttpRequest
|
|
|
4287
4649
|
declare const fetchPlugin: MethodPlugin<"fetch", {
|
|
4288
4650
|
url: string | URL;
|
|
4289
4651
|
init?: Omit<HttpRequestInput, "url">;
|
|
4290
|
-
}, Promise<Response>, readonly ["url", "init"]
|
|
4652
|
+
}, Promise<Response>, readonly ["url", "init"], {
|
|
4653
|
+
url: string | URL;
|
|
4654
|
+
init?: Omit<HttpRequestInput, "url">;
|
|
4655
|
+
}> & LeafSummary<"kitcore", "fetch", readonly [MethodPlugin<"sendHttpRequest", HttpRequestInput, Promise<Response>, readonly [], HttpRequestInput> & LeafSummary<"kitcore", "sendHttpRequest", readonly [MethodPlugin<"initializeHttpRequest", InitializeHttpRequestInput, Promise<HttpOperationContext>, readonly [], InitializeHttpRequestInput> & LeafSummary<"kitcore", "initializeHttpRequest", readonly []>, MethodPlugin<"attemptHttpRequest", AttemptHttpRequestInput, Promise<Response>, readonly [], AttemptHttpRequestInput> & LeafSummary<"kitcore", "attemptHttpRequest", readonly [MethodPlugin<"prepareHttpRequest", PrepareHttpRequestInput, Promise<HttpRequest>, readonly [], PrepareHttpRequestInput> & LeafSummary<"kitcore", "prepareHttpRequest", readonly []>, MethodPlugin<"authorizeHttpRequest", AuthorizeHttpRequestInput, Promise<HttpRequest>, readonly [], AuthorizeHttpRequestInput> & LeafSummary<"kitcore", "authorizeHttpRequest", readonly []>, MethodPlugin<"dispatchHttpRequest", DispatchHttpRequestInput, Promise<Response>, readonly [], DispatchHttpRequestInput> & LeafSummary<"kitcore", "dispatchHttpRequest", readonly []>, MethodPlugin<"receiveHttpResponse", ReceiveHttpResponseInput, Promise<Response>, readonly [], ReceiveHttpResponseInput> & LeafSummary<"kitcore", "receiveHttpResponse", readonly []>]>]>]>;
|
|
4291
4656
|
|
|
4292
4657
|
/**
|
|
4293
4658
|
* Headers with every credential value masked, as a plain object a logger can
|
|
@@ -4333,9 +4698,9 @@ interface NormalizedConnection {
|
|
|
4333
4698
|
value: string;
|
|
4334
4699
|
}
|
|
4335
4700
|
|
|
4336
|
-
declare const defaultConnectionSchemePlugin: MethodPlugin<"defaultConnectionScheme", DefaultConnectionSchemeInput, string | undefined, readonly []> & LeafSummary<"kitcore", "defaultConnectionScheme", readonly []>;
|
|
4701
|
+
declare const defaultConnectionSchemePlugin: MethodPlugin<"defaultConnectionScheme", DefaultConnectionSchemeInput, string | undefined, readonly [], DefaultConnectionSchemeInput> & LeafSummary<"kitcore", "defaultConnectionScheme", readonly []>;
|
|
4337
4702
|
|
|
4338
|
-
declare const normalizeConnectionPlugin: MethodPlugin<"normalizeConnection", NormalizeConnectionInput, NormalizedConnection | undefined, readonly []> & LeafSummary<"kitcore", "normalizeConnection", readonly [MethodPlugin<"defaultConnectionScheme", DefaultConnectionSchemeInput, string | undefined, readonly []> & LeafSummary<"kitcore", "defaultConnectionScheme", readonly []>]>;
|
|
4703
|
+
declare const normalizeConnectionPlugin: MethodPlugin<"normalizeConnection", NormalizeConnectionInput, NormalizedConnection | undefined, readonly [], NormalizeConnectionInput> & LeafSummary<"kitcore", "normalizeConnection", readonly [MethodPlugin<"defaultConnectionScheme", DefaultConnectionSchemeInput, string | undefined, readonly [], DefaultConnectionSchemeInput> & LeafSummary<"kitcore", "defaultConnectionScheme", readonly []>]>;
|
|
4339
4704
|
|
|
4340
4705
|
/**
|
|
4341
4706
|
* SELECT which connection REFERENCE a call should use: the explicit one if the
|
|
@@ -4353,6 +4718,6 @@ declare const normalizeConnectionPlugin: MethodPlugin<"normalizeConnection", Nor
|
|
|
4353
4718
|
* fatal depends on what the caller declared it needs, which this stage cannot
|
|
4354
4719
|
* see, so this stays policy-free.
|
|
4355
4720
|
*/
|
|
4356
|
-
declare const resolveConnectionPlugin: MethodPlugin<"resolveConnection", ResolveConnectionInput, string | undefined, readonly []> & LeafSummary<"kitcore", "resolveConnection", readonly []>;
|
|
4721
|
+
declare const resolveConnectionPlugin: MethodPlugin<"resolveConnection", ResolveConnectionInput, string | undefined, readonly [], ResolveConnectionInput> & LeafSummary<"kitcore", "resolveConnection", readonly []>;
|
|
4357
4722
|
|
|
4358
|
-
export { type AdaptError, type AdaptErrorOptions, type AdaptPage, type AggregatePlugin, type Annotations, type ArrayResolver$1 as ArrayResolver, type AsyncContext, type AttemptHttpRequestInput, type AuthorizeHttpRequestInput, type BoundFormatter, type BoundResolver, CONTEXT, CORE_ERROR_SYMBOL, CORE_OPTIONS_ID, CORE_SIGNAL_SYMBOL, type CallContext, type CallOrigin, type CategoryDefinition, type ComposedAnnotator, type ConstantResolver$1 as ConstantResolver, type Controller, type ControllerAction, type ControllerAffordance, type ControllerAnswerFn, type ControllerChoice, type ControllerError, type ControllerIssue, type ControllerListingPage, type ControllerListingPosition, type ControllerMethodDescription, type ControllerMethodSummary, type ControllerPagination, type ControllerParameterDescription, type ControllerPath, type ControllerQuestion, type ControllerResult, type ControllerSdk, type ControllerSelectPage, type ControllerState, type CoreApiError, CoreCancelledSignal, CoreDisposeError, CoreError, CoreErrorCode, type CoreErrorOptions, type CoreOptions, CoreSignal, type CreateSdkOptions, type DefaultConnectionSchemeInput, type DeprecatedPromptConfigChoice, type DeprecationLogger, type DeprecationWarning, type DispatchHttpRequestInput, type DisposeFn, type DynamicListResolver, type DynamicMember, type DynamicResolver$1 as DynamicResolver, type DynamicSearchResolver, type FieldsResolver, type FormattedItem, type Formatter, type FunctionDeprecation, type FunctionRegistryEntry, type HookAnnotator, type HookPlugin, type HttpAttemptContext, type HttpFetchInit, type HttpOperationContext, type HttpOperationStart, type HttpPipelineState, type HttpRequest, type HttpRequestInput, type HttpResponse, type InitializeHttpRequestInput, type LeafMeta, type LeafSummary, type LegacyMergePlugin, type LegacyPlugin, type ListItemsResult, type ListPromptConfig, type MethodAnnotator, type MethodAttachment, type MethodHooks, type MethodOverridePlugin, type MethodPlugin, type MethodScope, type Resolver as ModelResolver, type NegatableMetadata, type NormalizeConnectionInput, type NormalizedConnection, type OnMethodEnd, type OnMethodEndContext, type OnMethodStart, type OnMethodStartContext, type OutputFormatter, type PaginatedSdkFunction, type PaginatedSdkResult, type Plugin, type PluginMeta, type PluginProvides, type PluginStack, type PluginSummary, type PluginSurface, type PositionalMetadata, type PrepareHttpRequestInput, type PromptConfig, type PromptConfigChoice, type PropertyPlugin, RETRY_HTTP_REQUEST_OPTIONS_ID, type ReceiveHttpResponseInput, type RegistryResult, type RequiredSdkOf, type ResolveConnectionInput, type Resolver$1 as Resolver, type ResolverConfig, type ResolverFieldItem, type ResolverMetadata, type ResolverPromptConfig, type ResolverType, type ResponseMeta, type RetryHttpRequestOptions, STABILITY_LEVELS, STABILITY_TITLES, type Sdk, type SdkContext, type SdkPage, type SendHttpRequest, type StabilityLevel, type StabilityNotice, type StabilityNoticeLogger, type StaticResolver$1 as StaticResolver, type ValidResolvers, addPlugin, applyStabilityLabel, attemptHttpRequestPlugin, authorizeHttpRequestPlugin, canonicalInputSchema, composePlugins, concatLists, concatPaginated, coreOptionsPluginRef, createAsyncContext, createController, createCoreError, createCorePlugin, createDeprecationLogger, createFunction, createPaginatedFunction, createPaginatedPluginMethod, createPluginMethod, createPluginStack, createPrefixedCursor, createSdk, createStabilityNoticeLogger, createValidator, dangerousContextPlugin, declareDefault, declareMethod, declareOptionalMethod, declareOptionalProperty, declarePlugin, declareProperty, decodeIncomingCursor, defaultConnectionSchemePlugin, defaultLogDeprecation, defineFormatter, defineHook, defineLegacyMerge, defineMethod, defineMethodOverride, definePlugin, defineProperty, defineResolver, dispatchHttpRequestPlugin, disposeSdk, fetchPlugin, fromFunctionPlugin, getContext, getCoreErrorCause, getCoreErrorCode, getCurrentDepth, getCurrentScope, getFieldDescriptions, getNegatable, getOutputSchema, getRegistryPlugin, getSchemaDescription, initializeHttpRequestPlugin, isCoreCancelledSignal, isCoreError, isCoreSignal, isNestedMethodCall, isPositional, isTelemetryNested, normalizeConnectionPlugin, normalizeStability, omitExports, openEnum, paginate, paginateBuffered, paginateMaxItems, prepareHttpRequestPlugin, receiveHttpResponsePlugin, redactHeaders, redactHttpRequest, resolveConnectionPlugin, resolvePlugin, retryHttpRequestOptionsPluginRef, retryHttpRequestPlugin, runInMethodScope, runWithTelemetryContext, selectExports, sendHttpRequestPlugin, splitPrefixedCursor, toIterable, toSnakeCase, toTitleCase, validateOptions, withOutputSchema, withPositional, withResolver };
|
|
4723
|
+
export { type AdaptError, type AdaptErrorOptions, type AdaptPage, type AggregatePlugin, type Annotations, type ArrayResolver$1 as ArrayResolver, type AsyncContext, type AttemptHttpRequestInput, type AuthorizeHttpRequestInput, type BoundFormatter, type BoundResolver, CONTEXT, CORE_ERROR_SYMBOL, CORE_OPTIONS_ID, CORE_SIGNAL_SYMBOL, type CallContext, type CallOrigin, type CategoryDefinition, type ComposedAnnotator, type ConstantResolver$1 as ConstantResolver, type Controller, type ControllerAction, type ControllerAffordance, type ControllerAnswerFn, type ControllerChoice, type ControllerError, type ControllerIssue, type ControllerListingPage, type ControllerListingPosition, type ControllerMethodDescription, type ControllerMethodSummary, type ControllerPagination, type ControllerParameterDescription, type ControllerPath, type ControllerQuestion, type ControllerResult, type ControllerSdk, type ControllerSelectPage, type ControllerState, type CoreApiError, CoreCancelledSignal, CoreDisposeError, CoreError, CoreErrorCode, type CoreErrorOptions, type CoreOptions, CoreSignal, type CreateSdkOptions, type DefaultConnectionSchemeInput, type DeprecatedPromptConfigChoice, type DeprecationLogger, type DeprecationWarning, type DispatchHttpRequestInput, type DisposeFn, type DynamicListResolver, type DynamicMember, type DynamicResolver$1 as DynamicResolver, type DynamicSearchResolver, type FieldsResolver, type FormattedItem, type Formatter, type FunctionDeprecation, type FunctionRegistryEntry, type HookAnnotator, type HookPlugin, type HttpAttemptContext, type HttpFetchInit, type HttpOperationContext, type HttpOperationStart, type HttpPipelineState, type HttpRequest, type HttpRequestInput, type HttpResponse, type InitializeHttpRequestInput, type LeafMeta, type LeafSummary, type LegacyMergePlugin, type LegacyPlugin, type ListItemsResult, type ListPromptConfig, type MethodAnnotator, type MethodAttachment, type MethodHooks, type MethodOverridePlugin, type MethodPlugin, type MethodScope, type Resolver as ModelResolver, type NegatableMetadata, type NormalizeConnectionInput, type NormalizedConnection, type OnMethodEnd, type OnMethodEndContext, type OnMethodStart, type OnMethodStartContext, type OutputDataValidationReport, type OutputFormatter, type OverridableMetaFields, type PaginatedSdkFunction, type PaginatedSdkResult, type Plugin, type PluginMeta, type PluginProvides, type PluginStack, type PluginSummary, type PluginSurface, type PositionalMetadata, type PrepareHttpRequestInput, type PromptConfig, type PromptConfigChoice, type PropertyPlugin, RETRY_HTTP_REQUEST_OPTIONS_ID, type ReceiveHttpResponseInput, type RegistryResult, type RequiredSdkOf, type ResolveConnectionInput, type Resolver$1 as Resolver, type ResolverConfig, type ResolverFieldItem, type ResolverMetadata, type ResolverPromptConfig, type ResolverRequirement, type ResolverType, type ResponseMeta, type RetryHttpRequestOptions, STABILITY_LEVELS, STABILITY_TITLES, type Sdk, type SdkContext, type SdkContextCarrier, type SdkPage, type SendHttpRequest, type StabilityLevel, type StabilityNotice, type StabilityNoticeLogger, type StandInId, type StaticResolver$1 as StaticResolver, type ValidResolvers, addPlugin, applyStabilityLabel, attemptHttpRequestPlugin, authorizeHttpRequestPlugin, canonicalInputSchema, composePlugins, concatLists, concatPaginated, coreOptionsPluginRef, createAsyncContext, createController, createCoreError, createCorePlugin, createDeprecationLogger, createFunction, createPaginatedFunction, createPaginatedPluginMethod, createPluginMethod, createPluginStack, createPrefixedCursor, createSdk, createStabilityNoticeLogger, createValidator, dangerousContextPlugin, declareDefault, declareMethod, declareOptionalMethod, declareOptionalProperty, declarePlugin, declareProperty, decodeIncomingCursor, defaultConnectionSchemePlugin, defaultLogDeprecation, defineFormatter, defineHook, defineLegacyMerge, defineMethod, defineMethodOverride, defineOverride, definePlugin, defineProperty, defineResolver, dispatchHttpRequestPlugin, disposeSdk, fetchPlugin, fromFunctionPlugin, getContext, getCoreErrorCause, getCoreErrorCode, getCurrentDepth, getCurrentScope, getFieldDescriptions, getNegatable, getOutputSchema, getRegistry, getRegistryPlugin, getSchemaDescription, initializeHttpRequestPlugin, isCoreCancelledSignal, isCoreError, isCoreSignal, isNestedMethodCall, isPositional, isTelemetryNested, normalizeConnectionPlugin, normalizeStability, objectShapeOf, omitExports, openEnum, paginate, paginateBuffered, paginateMaxItems, prepareHttpRequestPlugin, receiveHttpResponsePlugin, redactHeaders, redactHttpRequest, resolveConnectionPlugin, resolvePlugin, retryHttpRequestOptionsPluginRef, retryHttpRequestPlugin, runInMethodScope, runWithTelemetryContext, selectExports, sendHttpRequestPlugin, splitPrefixedCursor, toIterable, toSnakeCase, toTitleCase, unwrapSchema, validateOptions, withOutputSchema, withPositional, withResolver };
|