@greatwait/contracts 0.1.0-alpha.5 → 0.1.0-alpha.6
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/dist/authority.d.ts +4 -1
- package/dist/authority.js +1 -0
- package/dist/data-export.d.ts +2 -0
- package/dist/delivery.d.ts +26 -0
- package/dist/delivery.js +2 -0
- package/dist/endpoints.d.ts +168 -0
- package/dist/endpoints.js +72 -1
- package/dist/http-request.d.ts +193 -0
- package/dist/http-request.js +305 -0
- package/dist/identity.d.ts +4 -4
- package/dist/index.d.ts +5 -3
- package/dist/index.js +4 -2
- package/dist/mcp.d.ts +2 -1
- package/dist/members.d.ts +141 -0
- package/dist/members.js +223 -0
- package/dist/oauth.d.ts +7 -0
- package/dist/operation-definitions.d.ts +20 -4
- package/dist/operation-definitions.js +9 -1
- package/dist/operations.d.ts +705 -39
- package/dist/operations.js +83 -10
- package/dist/organization-lifecycle.d.ts +10 -0
- package/dist/policy.js +5 -2
- package/dist/scheduling-records.d.ts +220 -0
- package/dist/scheduling-records.js +5 -0
- package/dist/scheduling.d.ts +236 -0
- package/dist/scheduling.js +31 -0
- package/dist/secrets.d.ts +7 -0
- package/dist/tenancy.d.ts +1 -1
- package/dist/tenancy.js +1 -1
- package/dist/zod-values.d.ts +2 -2
- package/dist/zod-values.js +1 -1
- package/generated/v1/examples/endpoints.ensure.request.json +3 -0
- package/generated/v1/examples/endpoints.ensure.response.json +20 -0
- package/generated/v1/examples/invitations.create.request.json +5 -0
- package/generated/v1/examples/invitations.create.response.json +7 -0
- package/generated/v1/examples/invitations.list.response.json +11 -0
- package/generated/v1/examples/invitations.resend.request.json +1 -0
- package/generated/v1/examples/invitations.resend.response.json +4 -0
- package/generated/v1/examples/invitations.revoke.request.json +3 -0
- package/generated/v1/examples/invitations.revoke.response.json +4 -0
- package/generated/v1/examples/members.list.response.json +13 -0
- package/generated/v1/examples/members.remove.request.json +3 -0
- package/generated/v1/examples/members.remove.response.json +4 -0
- package/generated/v1/examples/members.role.request.json +3 -0
- package/generated/v1/examples/members.role.response.json +4 -0
- package/generated/v1/examples/projectmembers.add.request.json +1 -0
- package/generated/v1/examples/projectmembers.add.response.json +4 -0
- package/generated/v1/examples/projectmembers.remove.request.json +3 -0
- package/generated/v1/examples/projectmembers.remove.response.json +4 -0
- package/generated/v1/manifest.json +285 -0
- package/generated/v1/openapi.json +8339 -773
- package/generated/v1/policy-matrix.json +72 -0
- package/generated/v1/schemas/context.read.response.json +1 -0
- package/generated/v1/schemas/credentials.connection.response.json +1 -0
- package/generated/v1/schemas/credentials.create.request.json +1 -0
- package/generated/v1/schemas/credentials.create.response.json +1 -0
- package/generated/v1/schemas/credentials.list.response.json +1 -0
- package/generated/v1/schemas/credentials.revoke.response.json +1 -0
- package/generated/v1/schemas/credentials.rotate.response.json +2 -0
- package/generated/v1/schemas/endpoints.acknowledgeSigningKeyRotation.response.json +59 -0
- package/generated/v1/schemas/endpoints.create.request.json +74 -0
- package/generated/v1/schemas/endpoints.create.response.json +59 -0
- package/generated/v1/schemas/endpoints.disable.response.json +59 -0
- package/generated/v1/schemas/endpoints.enable.response.json +59 -0
- package/generated/v1/schemas/endpoints.ensure.request.json +91 -0
- package/generated/v1/schemas/endpoints.ensure.response.json +169 -0
- package/generated/v1/schemas/endpoints.list.response.json +59 -0
- package/generated/v1/schemas/endpoints.read.response.json +59 -0
- package/generated/v1/schemas/endpoints.rotateSigningKey.response.json +59 -0
- package/generated/v1/schemas/endpoints.update.request.json +74 -0
- package/generated/v1/schemas/endpoints.update.response.json +59 -0
- package/generated/v1/schemas/grants.list.response.json +1 -0
- package/generated/v1/schemas/grants.revoke.response.json +1 -0
- package/generated/v1/schemas/invitations.create.request-headers.json +13 -0
- package/generated/v1/schemas/invitations.create.request.json +24 -0
- package/generated/v1/schemas/invitations.create.response.json +31 -0
- package/generated/v1/schemas/invitations.list.response.json +40 -0
- package/generated/v1/schemas/invitations.resend.request-headers.json +13 -0
- package/generated/v1/schemas/invitations.resend.request.json +6 -0
- package/generated/v1/schemas/invitations.resend.response.json +27 -0
- package/generated/v1/schemas/invitations.revoke.request-headers.json +13 -0
- package/generated/v1/schemas/invitations.revoke.request.json +12 -0
- package/generated/v1/schemas/invitations.revoke.response.json +27 -0
- package/generated/v1/schemas/members.list.response.json +53 -0
- package/generated/v1/schemas/members.remove.request-headers.json +13 -0
- package/generated/v1/schemas/members.remove.request.json +12 -0
- package/generated/v1/schemas/members.remove.response.json +27 -0
- package/generated/v1/schemas/members.role.request-headers.json +13 -0
- package/generated/v1/schemas/members.role.request.json +12 -0
- package/generated/v1/schemas/members.role.response.json +27 -0
- package/generated/v1/schemas/projectmembers.add.request-headers.json +13 -0
- package/generated/v1/schemas/projectmembers.add.request.json +6 -0
- package/generated/v1/schemas/projectmembers.add.response.json +27 -0
- package/generated/v1/schemas/projectmembers.remove.request-headers.json +13 -0
- package/generated/v1/schemas/projectmembers.remove.request.json +12 -0
- package/generated/v1/schemas/projectmembers.remove.response.json +27 -0
- package/generated/v1/schemas/schedules.archive.response.json +138 -1
- package/generated/v1/schemas/schedules.cancel.response.json +138 -1
- package/generated/v1/schemas/schedules.create.request.json +150 -1
- package/generated/v1/schemas/schedules.create.response.json +156 -1
- package/generated/v1/schemas/schedules.list.response.json +138 -1
- package/generated/v1/schemas/schedules.pause.response.json +138 -1
- package/generated/v1/schemas/schedules.read.response.json +138 -1
- package/generated/v1/schemas/schedules.replace.request.json +150 -1
- package/generated/v1/schemas/schedules.replace.response.json +156 -1
- package/generated/v1/schemas/schedules.resume.response.json +138 -1
- package/generated/v1/snippets/endpoints.create.json +1 -1
- package/generated/v1/snippets/endpoints.ensure.json +6 -0
- package/generated/v1/snippets/invitations.create.json +6 -0
- package/generated/v1/snippets/invitations.list.json +6 -0
- package/generated/v1/snippets/invitations.resend.json +6 -0
- package/generated/v1/snippets/invitations.revoke.json +6 -0
- package/generated/v1/snippets/journey/create-destination.json +1 -1
- package/generated/v1/snippets/members.list.json +6 -0
- package/generated/v1/snippets/members.remove.json +6 -0
- package/generated/v1/snippets/members.role.json +6 -0
- package/generated/v1/snippets/projectmembers.add.json +6 -0
- package/generated/v1/snippets/projectmembers.remove.json +6 -0
- package/package.json +1 -1
package/dist/members.js
ADDED
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
import { z } from "./zod.js";
|
|
2
|
+
import { projectIdSchema } from "./identifiers.js";
|
|
3
|
+
import { API_UNUSED_RESPONSE_SCHEMA, defineOperations, } from "./operation-definitions.js";
|
|
4
|
+
import { requiredIdempotencyRequestHeaderSchema } from "./protocol.js";
|
|
5
|
+
const requestOnly = globalThis
|
|
6
|
+
.GREATWAIT_API_REQUEST_REGISTRY;
|
|
7
|
+
const withoutExamples = globalThis
|
|
8
|
+
.GREATWAIT_RUNTIME_WITHOUT_EXAMPLES;
|
|
9
|
+
const contractsOnly = globalThis
|
|
10
|
+
.GREATWAIT_RUNTIME_CONTRACTS_ONLY;
|
|
11
|
+
/** Assignable roles on the included Clerk plan. Billing is not offered. */
|
|
12
|
+
export const managedMemberRoleSchema = z.enum(["admin", "member"]);
|
|
13
|
+
export const memberIdSchema = z.string().regex(/^mem_[0-9a-f]{26}$/u);
|
|
14
|
+
export const invitationIdSchema = z.string().regex(/^inv_[0-9a-f]{26}$/u);
|
|
15
|
+
export const memberViewSchema = z.strictObject({
|
|
16
|
+
id: memberIdSchema,
|
|
17
|
+
email: z.string().email(),
|
|
18
|
+
name: z.string(),
|
|
19
|
+
role: managedMemberRoleSchema,
|
|
20
|
+
projects: z.array(projectIdSchema),
|
|
21
|
+
allProjects: z.boolean(),
|
|
22
|
+
self: z.boolean(),
|
|
23
|
+
});
|
|
24
|
+
export const memberListSchema = z.strictObject({
|
|
25
|
+
data: z.array(memberViewSchema),
|
|
26
|
+
});
|
|
27
|
+
export const invitationViewSchema = z.strictObject({
|
|
28
|
+
id: invitationIdSchema,
|
|
29
|
+
email: z.string().email(),
|
|
30
|
+
role: managedMemberRoleSchema,
|
|
31
|
+
projects: z.array(projectIdSchema),
|
|
32
|
+
status: z.enum(["pending", "accepted", "revoked", "expired"]),
|
|
33
|
+
});
|
|
34
|
+
export const invitationListSchema = z.strictObject({
|
|
35
|
+
data: z.array(invitationViewSchema),
|
|
36
|
+
});
|
|
37
|
+
export const memberInviteRequestSchema = z.strictObject({
|
|
38
|
+
email: z.string().email(),
|
|
39
|
+
role: managedMemberRoleSchema,
|
|
40
|
+
projects: z.array(projectIdSchema),
|
|
41
|
+
});
|
|
42
|
+
export const memberRoleRequestSchema = z.strictObject({
|
|
43
|
+
role: managedMemberRoleSchema,
|
|
44
|
+
});
|
|
45
|
+
export const memberRemovalRequestSchema = z.strictObject({
|
|
46
|
+
confirmed: z.literal(true),
|
|
47
|
+
});
|
|
48
|
+
export const memberActionSchema = z.strictObject({
|
|
49
|
+
completed: z.literal(true),
|
|
50
|
+
id: z.union([memberIdSchema, invitationIdSchema]),
|
|
51
|
+
project: projectIdSchema.optional(),
|
|
52
|
+
});
|
|
53
|
+
const member = {
|
|
54
|
+
id: "mem_0123456789abcdef0123456789",
|
|
55
|
+
email: "teammate@example.com",
|
|
56
|
+
name: "Teammate",
|
|
57
|
+
role: "member",
|
|
58
|
+
projects: ["proj_01h8xyz9k2m4n6p8r0t2v4w6y8"],
|
|
59
|
+
allProjects: false,
|
|
60
|
+
self: false,
|
|
61
|
+
};
|
|
62
|
+
const invitation = {
|
|
63
|
+
id: "inv_0123456789abcdef0123456789",
|
|
64
|
+
email: "teammate@example.com",
|
|
65
|
+
role: "member",
|
|
66
|
+
projects: member.projects,
|
|
67
|
+
status: "pending",
|
|
68
|
+
};
|
|
69
|
+
const common = {
|
|
70
|
+
creates: false,
|
|
71
|
+
idempotent: true,
|
|
72
|
+
principals: ["session", "oauth"],
|
|
73
|
+
scopes: ["members:manage"],
|
|
74
|
+
surfaces: ["api", "mock"],
|
|
75
|
+
problems: [
|
|
76
|
+
"invalid_request",
|
|
77
|
+
"not_found",
|
|
78
|
+
"state_conflict",
|
|
79
|
+
"service_unavailable",
|
|
80
|
+
"capability_not_configured",
|
|
81
|
+
],
|
|
82
|
+
sessionAuthority: "organization",
|
|
83
|
+
};
|
|
84
|
+
const write = {
|
|
85
|
+
...common,
|
|
86
|
+
mutates: true,
|
|
87
|
+
problems: [...common.problems, "idempotency_key_reused"],
|
|
88
|
+
requestHeaders: requiredIdempotencyRequestHeaderSchema,
|
|
89
|
+
response: requestOnly ? API_UNUSED_RESPONSE_SCHEMA : memberActionSchema,
|
|
90
|
+
example: withoutExamples ? {} : { completed: true, id: member.id },
|
|
91
|
+
mcp: { kind: "tool", destructive: false, openWorld: true },
|
|
92
|
+
};
|
|
93
|
+
export const MEMBER_OPERATIONS = defineOperations([
|
|
94
|
+
{
|
|
95
|
+
...common,
|
|
96
|
+
id: "members.list",
|
|
97
|
+
method: "GET",
|
|
98
|
+
path: "/v1/organization/members",
|
|
99
|
+
mutates: false,
|
|
100
|
+
response: requestOnly ? API_UNUSED_RESPONSE_SCHEMA : memberListSchema,
|
|
101
|
+
example: withoutExamples ? {} : { data: [member] },
|
|
102
|
+
mcp: { kind: "tool", destructive: false, openWorld: false },
|
|
103
|
+
summary: requestOnly ? "" : "List organization members and project access",
|
|
104
|
+
description: contractsOnly
|
|
105
|
+
? ""
|
|
106
|
+
: "An administrator lists current members. Members cannot enumerate or manage their colleagues. OAuth requires current administrator membership and explicit members:manage consent; API keys cannot manage people.",
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
...common,
|
|
110
|
+
id: "invitations.list",
|
|
111
|
+
method: "GET",
|
|
112
|
+
path: "/v1/organization/invitations",
|
|
113
|
+
mutates: false,
|
|
114
|
+
response: requestOnly ? API_UNUSED_RESPONSE_SCHEMA : invitationListSchema,
|
|
115
|
+
example: withoutExamples ? {} : { data: [invitation] },
|
|
116
|
+
mcp: { kind: "tool", destructive: false, openWorld: false },
|
|
117
|
+
summary: requestOnly ? "" : "List organization invitations",
|
|
118
|
+
description: contractsOnly
|
|
119
|
+
? ""
|
|
120
|
+
: "Lists invitations with current pending, accepted, revoked or expired status. No invitation ticket is returned.",
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
...write,
|
|
124
|
+
id: "invitations.create",
|
|
125
|
+
creates: true,
|
|
126
|
+
method: "POST",
|
|
127
|
+
path: "/v1/organization/invitations",
|
|
128
|
+
request: memberInviteRequestSchema,
|
|
129
|
+
response: requestOnly ? API_UNUSED_RESPONSE_SCHEMA : invitationViewSchema,
|
|
130
|
+
example: withoutExamples ? {} : invitation,
|
|
131
|
+
requestExample: withoutExamples
|
|
132
|
+
? {}
|
|
133
|
+
: {
|
|
134
|
+
email: invitation.email,
|
|
135
|
+
role: invitation.role,
|
|
136
|
+
projects: invitation.projects,
|
|
137
|
+
},
|
|
138
|
+
summary: requestOnly ? "" : "Invite a teammate to selected projects",
|
|
139
|
+
description: contractsOnly
|
|
140
|
+
? ""
|
|
141
|
+
: "Sends a Clerk organization invitation as admin or member, with the selected project access. No seat pricing or product member limit applies. Admins have access to every project.",
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
...write,
|
|
145
|
+
id: "invitations.resend",
|
|
146
|
+
example: withoutExamples ? {} : { completed: true, id: invitation.id },
|
|
147
|
+
method: "POST",
|
|
148
|
+
path: "/v1/organization/invitations/{invitationId}/resend",
|
|
149
|
+
request: z.strictObject({}),
|
|
150
|
+
requestExample: withoutExamples ? {} : {},
|
|
151
|
+
summary: requestOnly ? "" : "Resend a pending invitation",
|
|
152
|
+
description: contractsOnly
|
|
153
|
+
? ""
|
|
154
|
+
: "Revokes the previous ticket before sending a replacement for the same role and selected projects. Accepted, revoked or expired invitations cannot be resent.",
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
...write,
|
|
158
|
+
id: "invitations.revoke",
|
|
159
|
+
example: withoutExamples ? {} : { completed: true, id: invitation.id },
|
|
160
|
+
method: "POST",
|
|
161
|
+
path: "/v1/organization/invitations/{invitationId}/revoke",
|
|
162
|
+
request: memberRemovalRequestSchema,
|
|
163
|
+
requestExample: withoutExamples ? {} : { confirmed: true },
|
|
164
|
+
mcp: { kind: "tool", destructive: true, openWorld: true },
|
|
165
|
+
summary: requestOnly ? "" : "Revoke a pending invitation",
|
|
166
|
+
description: contractsOnly
|
|
167
|
+
? ""
|
|
168
|
+
: "Requires explicit confirmation. The outstanding ticket no longer grants organization or project access.",
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
...write,
|
|
172
|
+
id: "members.role",
|
|
173
|
+
method: "PATCH",
|
|
174
|
+
path: "/v1/organization/members/{memberId}",
|
|
175
|
+
request: memberRoleRequestSchema,
|
|
176
|
+
requestExample: withoutExamples ? {} : { role: "member" },
|
|
177
|
+
mcp: { kind: "tool", destructive: true, openWorld: true },
|
|
178
|
+
summary: requestOnly ? "" : "Change a member's role",
|
|
179
|
+
description: contractsOnly
|
|
180
|
+
? ""
|
|
181
|
+
: "An administrator changes another person's role. Self role changes and demoting the last administrator are refused, including concurrent requests. Existing sessions and grants are narrowed on their next request.",
|
|
182
|
+
},
|
|
183
|
+
{
|
|
184
|
+
...write,
|
|
185
|
+
id: "members.remove",
|
|
186
|
+
method: "POST",
|
|
187
|
+
path: "/v1/organization/members/{memberId}/remove",
|
|
188
|
+
request: memberRemovalRequestSchema,
|
|
189
|
+
requestExample: withoutExamples ? {} : { confirmed: true },
|
|
190
|
+
mcp: { kind: "tool", destructive: true, openWorld: true },
|
|
191
|
+
summary: requestOnly ? "" : "Remove an organization member",
|
|
192
|
+
description: contractsOnly
|
|
193
|
+
? ""
|
|
194
|
+
: "Requires explicit confirmation. Removing the last administrator or oneself is refused. Subsequent sessions and grants lose access; organization-owned API keys remain valid and may be revoked separately.",
|
|
195
|
+
},
|
|
196
|
+
{
|
|
197
|
+
...write,
|
|
198
|
+
id: "projectmembers.add",
|
|
199
|
+
method: "PUT",
|
|
200
|
+
path: "/v1/projects/{projectId}/members/{memberId}",
|
|
201
|
+
sessionAuthority: "headers",
|
|
202
|
+
request: z.strictObject({}),
|
|
203
|
+
requestExample: withoutExamples ? {} : {},
|
|
204
|
+
summary: requestOnly ? "" : "Add a member to a project",
|
|
205
|
+
description: contractsOnly
|
|
206
|
+
? ""
|
|
207
|
+
: "A current administrator adds another organization member to an owned project. Foreign members and projects are indistinguishable from missing ones. No self addition.",
|
|
208
|
+
},
|
|
209
|
+
{
|
|
210
|
+
...write,
|
|
211
|
+
id: "projectmembers.remove",
|
|
212
|
+
method: "POST",
|
|
213
|
+
path: "/v1/projects/{projectId}/members/{memberId}/remove",
|
|
214
|
+
sessionAuthority: "headers",
|
|
215
|
+
request: memberRemovalRequestSchema,
|
|
216
|
+
requestExample: withoutExamples ? {} : { confirmed: true },
|
|
217
|
+
mcp: { kind: "tool", destructive: true, openWorld: false },
|
|
218
|
+
summary: requestOnly ? "" : "Remove a member's project access",
|
|
219
|
+
description: contractsOnly
|
|
220
|
+
? ""
|
|
221
|
+
: "Requires explicit confirmation. The member's existing sessions and OAuth grants lose access on the next request. Administrators retain access to every project; organization-owned API keys keep their single-project authority.",
|
|
222
|
+
},
|
|
223
|
+
]);
|
package/dist/oauth.d.ts
CHANGED
|
@@ -414,6 +414,7 @@ export declare const consentPromptSchema: import("zod").ZodObject<{
|
|
|
414
414
|
name: import("zod").ZodString;
|
|
415
415
|
}, import("zod/v4/core").$strip>>;
|
|
416
416
|
scopes: import("zod").ZodArray<import("zod").ZodEnum<{
|
|
417
|
+
"members:manage": "members:manage";
|
|
417
418
|
"credentials:administer": "credentials:administer";
|
|
418
419
|
"billing:write": "billing:write";
|
|
419
420
|
"credentials:read": "credentials:read";
|
|
@@ -455,6 +456,7 @@ export declare const consentDecisionSchema: import("zod").ZodDiscriminatedUnion<
|
|
|
455
456
|
}>;
|
|
456
457
|
project: import("zod").ZodString;
|
|
457
458
|
scopes: import("zod").ZodArray<import("zod").ZodEnum<{
|
|
459
|
+
"members:manage": "members:manage";
|
|
458
460
|
"credentials:administer": "credentials:administer";
|
|
459
461
|
"billing:write": "billing:write";
|
|
460
462
|
"credentials:read": "credentials:read";
|
|
@@ -591,6 +593,7 @@ export declare const oauthGrantSchema: import("zod").ZodObject<{
|
|
|
591
593
|
}>>;
|
|
592
594
|
revokedAt: import("zod").ZodOptional<import("zod").ZodString>;
|
|
593
595
|
scopes: import("zod").ZodArray<import("zod").ZodEnum<{
|
|
596
|
+
"members:manage": "members:manage";
|
|
594
597
|
"credentials:administer": "credentials:administer";
|
|
595
598
|
"billing:write": "billing:write";
|
|
596
599
|
"credentials:read": "credentials:read";
|
|
@@ -637,6 +640,7 @@ export declare const oauthGrantListSchema: import("zod").ZodObject<{
|
|
|
637
640
|
}>>;
|
|
638
641
|
revokedAt: import("zod").ZodOptional<import("zod").ZodString>;
|
|
639
642
|
scopes: import("zod").ZodArray<import("zod").ZodEnum<{
|
|
643
|
+
"members:manage": "members:manage";
|
|
640
644
|
"credentials:administer": "credentials:administer";
|
|
641
645
|
"billing:write": "billing:write";
|
|
642
646
|
"credentials:read": "credentials:read";
|
|
@@ -691,6 +695,7 @@ export declare const oauthGrantRevokedSchema: import("zod").ZodObject<{
|
|
|
691
695
|
}>>;
|
|
692
696
|
revokedAt: import("zod").ZodOptional<import("zod").ZodString>;
|
|
693
697
|
scopes: import("zod").ZodArray<import("zod").ZodEnum<{
|
|
698
|
+
"members:manage": "members:manage";
|
|
694
699
|
"credentials:administer": "credentials:administer";
|
|
695
700
|
"billing:write": "billing:write";
|
|
696
701
|
"credentials:read": "credentials:read";
|
|
@@ -742,6 +747,7 @@ export declare const authorizationServerMetadataSchema: import("zod").ZodObject<
|
|
|
742
747
|
}>>;
|
|
743
748
|
revocation_endpoint: import("zod").ZodURL;
|
|
744
749
|
scopes_supported: import("zod").ZodArray<import("zod").ZodEnum<{
|
|
750
|
+
"members:manage": "members:manage";
|
|
745
751
|
"credentials:administer": "credentials:administer";
|
|
746
752
|
"billing:write": "billing:write";
|
|
747
753
|
"credentials:read": "credentials:read";
|
|
@@ -780,6 +786,7 @@ export declare const protectedResourceMetadataSchema: import("zod").ZodObject<{
|
|
|
780
786
|
bearer_methods_supported: import("zod").ZodArray<import("zod").ZodLiteral<"header">>;
|
|
781
787
|
resource: import("zod").ZodURL;
|
|
782
788
|
scopes_supported: import("zod").ZodArray<import("zod").ZodEnum<{
|
|
789
|
+
"members:manage": "members:manage";
|
|
783
790
|
"credentials:administer": "credentials:administer";
|
|
784
791
|
"billing:write": "billing:write";
|
|
785
792
|
"credentials:read": "credentials:read";
|
|
@@ -1,9 +1,25 @@
|
|
|
1
1
|
import type { OperationDefinition } from "./operations.js";
|
|
2
2
|
/** Fail-closed response placeholder used by the hosted API's request-only registry. */
|
|
3
3
|
export declare const API_UNUSED_RESPONSE_SCHEMA: import("zod").ZodNever;
|
|
4
|
-
/**
|
|
4
|
+
/**
|
|
5
|
+
* Keep registry ids precise without duplicating inferred Zod internals in every
|
|
6
|
+
* consumer declaration.
|
|
7
|
+
*
|
|
8
|
+
* The request schema is kept as well (W9-46): the generated client types each
|
|
9
|
+
* builder's body from it, and an entry declared here with only its id kept
|
|
10
|
+
* would leave that body `unknown` — the member and invitation commands took
|
|
11
|
+
* any object at all until this carried it.
|
|
12
|
+
*/
|
|
5
13
|
export declare function defineOperations<const T extends readonly OperationDefinition[]>(definitions: T): {
|
|
6
|
-
readonly [K in keyof T]:
|
|
7
|
-
readonly id: T[K]["id"];
|
|
8
|
-
};
|
|
14
|
+
readonly [K in keyof T]: DefinedOperation<T[K]>;
|
|
9
15
|
};
|
|
16
|
+
type DefinedOperation<TEntry> = OperationDefinition & {
|
|
17
|
+
readonly id: TEntry extends {
|
|
18
|
+
readonly id: infer TId;
|
|
19
|
+
} ? TId : never;
|
|
20
|
+
} & (TEntry extends {
|
|
21
|
+
readonly request: infer TRequest;
|
|
22
|
+
} ? {
|
|
23
|
+
readonly request: TRequest;
|
|
24
|
+
} : unknown);
|
|
25
|
+
export {};
|
|
@@ -1,7 +1,15 @@
|
|
|
1
1
|
import { never as neverSchema } from "zod";
|
|
2
2
|
/** Fail-closed response placeholder used by the hosted API's request-only registry. */
|
|
3
3
|
export const API_UNUSED_RESPONSE_SCHEMA = neverSchema();
|
|
4
|
-
/**
|
|
4
|
+
/**
|
|
5
|
+
* Keep registry ids precise without duplicating inferred Zod internals in every
|
|
6
|
+
* consumer declaration.
|
|
7
|
+
*
|
|
8
|
+
* The request schema is kept as well (W9-46): the generated client types each
|
|
9
|
+
* builder's body from it, and an entry declared here with only its id kept
|
|
10
|
+
* would leave that body `unknown` — the member and invitation commands took
|
|
11
|
+
* any object at all until this carried it.
|
|
12
|
+
*/
|
|
5
13
|
export function defineOperations(definitions) {
|
|
6
14
|
return definitions;
|
|
7
15
|
}
|