@dropthis/cli 0.30.1 → 0.33.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +36 -10
- package/dist/cli.cjs +678 -115
- package/dist/cli.cjs.map +1 -1
- package/node_modules/@dropthis/node/README.md +18 -7
- package/node_modules/@dropthis/node/dist/edge.cjs +37 -1
- package/node_modules/@dropthis/node/dist/edge.cjs.map +1 -1
- package/node_modules/@dropthis/node/dist/edge.d.cts +1 -1
- package/node_modules/@dropthis/node/dist/edge.d.ts +1 -1
- package/node_modules/@dropthis/node/dist/edge.mjs +37 -1
- package/node_modules/@dropthis/node/dist/edge.mjs.map +1 -1
- package/node_modules/@dropthis/node/dist/index.cjs +131 -1
- package/node_modules/@dropthis/node/dist/index.cjs.map +1 -1
- package/node_modules/@dropthis/node/dist/index.d.cts +64 -3
- package/node_modules/@dropthis/node/dist/index.d.ts +64 -3
- package/node_modules/@dropthis/node/dist/index.mjs +126 -1
- package/node_modules/@dropthis/node/dist/index.mjs.map +1 -1
- package/node_modules/@dropthis/node/dist/{workspaces-BXW942z-.d.cts → workspaces-CebiV4DS.d.cts} +107 -11
- package/node_modules/@dropthis/node/dist/{workspaces-BXW942z-.d.ts → workspaces-CebiV4DS.d.ts} +107 -11
- package/node_modules/@dropthis/node/package.json +1 -1
- package/package.json +49 -49
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export {
|
|
1
|
+
import { a1 as Transport, x as DropthisResult, E as EmailOtpResponse, $ as SessionResponse, H as InvitationListResponse, a7 as Workspace, P as MemberListResponse, B as InvitableRole, F as Invitation, a8 as WorkspaceRole, O as Member, C as CreateUploadSessionRequest, f as CreateUploadSessionResponse, a5 as UploadSessionResponse, v as DropthisClientOptions, e as ApiKeysResource, A as AccountResource, u as DropsResource, V as PublishInput, i as DeploymentsResource, n as DomainsResource, a9 as WorkspacesResource, W as PublishOptions, S as PreparedPublishRequest } from './workspaces-CebiV4DS.cjs';
|
|
2
|
+
export { a as AccountResponse, b as AccountUsage, c as AccountWorkspace, d as ActionResolve, g as CursorPage, D as DeploymentContentFile, h as DeploymentContentManifest, j as DnsRecord, k as DomainDeletedResponse, l as DomainListResponse, m as DomainResponse, o as DropAction, p as DropContentFile, q as DropDeploymentResponse, r as DropOptions, s as DropResponse, t as DropWorkspace, w as DropthisErrorResponse, y as EntitlementLimits, z as Entitlements, G as GetContentOptions, I as InMemoryPublishInput, K as KeyType, L as Limitations, J as ListDeploymentsParams, M as ListDeploymentsResponse, N as ListPage, Q as NextHint, R as PrepareOptions, T as PreparedUploadFile, U as PublishFileInput, X as RequestControls, Y as RequestOptions, Z as RevokeImpact, _ as SHARED_POOL, a0 as TierInfo, a2 as UpdateContentOptions, a3 as UploadManifestFile, a4 as UploadSessionFileResponse, a6 as UploadTarget } from './workspaces-CebiV4DS.cjs';
|
|
3
3
|
|
|
4
4
|
declare class AuthResource {
|
|
5
5
|
private readonly transport;
|
|
@@ -21,6 +21,42 @@ declare class AuthResource {
|
|
|
21
21
|
logout(): Promise<DropthisResult<null>>;
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
+
/** Invitee-side invitations (ADR 0068). Listing needs `members:read`; accepting needs `members:write`. */
|
|
25
|
+
declare class InvitationsResource {
|
|
26
|
+
private readonly transport;
|
|
27
|
+
constructor(transport: Transport);
|
|
28
|
+
/** List the calling account's own pending invitations. */
|
|
29
|
+
list(): Promise<DropthisResult<InvitationListResponse>>;
|
|
30
|
+
/** Accept by the raw single-use token from the invite email. Joins + switches active workspace. */
|
|
31
|
+
accept(input: {
|
|
32
|
+
token: string;
|
|
33
|
+
}): Promise<DropthisResult<Workspace>>;
|
|
34
|
+
/** Accept by invitation id, once authenticated as the invited email — the agent path, no token. */
|
|
35
|
+
acceptById(input: {
|
|
36
|
+
invitationId: string;
|
|
37
|
+
}): Promise<DropthisResult<Workspace>>;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/** Team membership management (ADR 0068). Capability follows the credential's scopes. */
|
|
41
|
+
declare class MembersResource {
|
|
42
|
+
private readonly transport;
|
|
43
|
+
constructor(transport: Transport);
|
|
44
|
+
/** List a workspace's members (any member, `members:read`). */
|
|
45
|
+
list(workspaceId: string): Promise<DropthisResult<MemberListResponse>>;
|
|
46
|
+
/** Invite an email to the workspace (owner/admin, `members:write`). */
|
|
47
|
+
invite(workspaceId: string, input: {
|
|
48
|
+
email: string;
|
|
49
|
+
role: InvitableRole;
|
|
50
|
+
}): Promise<DropthisResult<Invitation>>;
|
|
51
|
+
/** Change a member's role (`members:admin`, owner-only-touches-owner enforced server-side). */
|
|
52
|
+
updateRole(workspaceId: string, accountId: string, input: {
|
|
53
|
+
role: WorkspaceRole;
|
|
54
|
+
}): Promise<DropthisResult<Member>>;
|
|
55
|
+
/** Remove a member, or leave the workspace (your own id). Removing others needs `members:admin`;
|
|
56
|
+
* leaving needs `members:write`. 204 — data is null. */
|
|
57
|
+
remove(workspaceId: string, accountId: string): Promise<DropthisResult<null>>;
|
|
58
|
+
}
|
|
59
|
+
|
|
24
60
|
declare class UploadsResource {
|
|
25
61
|
private readonly transport;
|
|
26
62
|
constructor(transport: Transport);
|
|
@@ -50,6 +86,8 @@ declare class Dropthis {
|
|
|
50
86
|
private uploadsResource?;
|
|
51
87
|
private domainsResource?;
|
|
52
88
|
private workspacesResource?;
|
|
89
|
+
private membersResource?;
|
|
90
|
+
private invitationsResource?;
|
|
53
91
|
constructor(options?: DropthisClientOptions | string);
|
|
54
92
|
get auth(): AuthResource;
|
|
55
93
|
get apiKeys(): ApiKeysResource;
|
|
@@ -59,6 +97,8 @@ declare class Dropthis {
|
|
|
59
97
|
get uploads(): UploadsResource;
|
|
60
98
|
get domains(): DomainsResource;
|
|
61
99
|
get workspaces(): WorkspacesResource;
|
|
100
|
+
get members(): MembersResource;
|
|
101
|
+
get invitations(): InvitationsResource;
|
|
62
102
|
prepare(input: PublishInput, options?: PublishOptions): Promise<PreparedPublishRequest>;
|
|
63
103
|
}
|
|
64
104
|
|
|
@@ -74,8 +114,29 @@ declare function createErrorResult<T>(code: string, message: string, statusCode:
|
|
|
74
114
|
headers?: Record<string, string>;
|
|
75
115
|
suggestion?: string | null;
|
|
76
116
|
retryable?: boolean | null;
|
|
117
|
+
feature?: string | null;
|
|
118
|
+
currentPlan?: string | null;
|
|
119
|
+
requiredPlan?: string | null;
|
|
120
|
+
upgradeUrl?: string | null;
|
|
121
|
+
limit?: number | null;
|
|
122
|
+
used?: number | null;
|
|
123
|
+
requested?: number | null;
|
|
77
124
|
body?: unknown;
|
|
78
125
|
}): DropthisResult<T>;
|
|
126
|
+
/** True for a capability denial (`feature_not_in_plan`) — a plan gate, never retryable. */
|
|
127
|
+
declare function isFeatureNotInPlan(error: {
|
|
128
|
+
code: string;
|
|
129
|
+
} | null): boolean;
|
|
130
|
+
/** True for a numeric-ceiling denial (`quota_exceeded`: per-drop bytes 413, or an
|
|
131
|
+
* account ceiling 403). Never retryable — a plan ceiling does not free up on retry. */
|
|
132
|
+
declare function isQuotaExceeded(error: {
|
|
133
|
+
code: string;
|
|
134
|
+
} | null): boolean;
|
|
135
|
+
/** True for either plan-gate code — branch a retry layer on this to stop and
|
|
136
|
+
* hand off to a human instead of re-issuing a request that can never succeed. */
|
|
137
|
+
declare function isPlanGate(error: {
|
|
138
|
+
code: string;
|
|
139
|
+
} | null): boolean;
|
|
79
140
|
declare class PublishInputError extends Error {
|
|
80
141
|
readonly code: string;
|
|
81
142
|
readonly param?: string | undefined;
|
|
@@ -83,4 +144,4 @@ declare class PublishInputError extends Error {
|
|
|
83
144
|
constructor(code: string, message: string, param?: string | undefined, suggestion?: string | undefined);
|
|
84
145
|
}
|
|
85
146
|
|
|
86
|
-
export { CreateUploadSessionRequest, CreateUploadSessionResponse, DeploymentsResource, DomainsResource, Dropthis, DropthisClientOptions, DropthisResult, PreparedPublishRequest, PublishInput, PublishInputError, PublishOptions, UploadSessionResponse, UploadsResource, WorkspacesResource, createErrorResult, redactSecrets };
|
|
147
|
+
export { CreateUploadSessionRequest, CreateUploadSessionResponse, DeploymentsResource, DomainsResource, Dropthis, DropthisClientOptions, DropthisResult, InvitableRole, Invitation, InvitationListResponse, InvitationsResource, Member, MemberListResponse, MembersResource, PreparedPublishRequest, PublishInput, PublishInputError, PublishOptions, UploadSessionResponse, UploadsResource, Workspace, WorkspaceRole, WorkspacesResource, createErrorResult, isFeatureNotInPlan, isPlanGate, isQuotaExceeded, redactSecrets };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export {
|
|
1
|
+
import { a1 as Transport, x as DropthisResult, E as EmailOtpResponse, $ as SessionResponse, H as InvitationListResponse, a7 as Workspace, P as MemberListResponse, B as InvitableRole, F as Invitation, a8 as WorkspaceRole, O as Member, C as CreateUploadSessionRequest, f as CreateUploadSessionResponse, a5 as UploadSessionResponse, v as DropthisClientOptions, e as ApiKeysResource, A as AccountResource, u as DropsResource, V as PublishInput, i as DeploymentsResource, n as DomainsResource, a9 as WorkspacesResource, W as PublishOptions, S as PreparedPublishRequest } from './workspaces-CebiV4DS.js';
|
|
2
|
+
export { a as AccountResponse, b as AccountUsage, c as AccountWorkspace, d as ActionResolve, g as CursorPage, D as DeploymentContentFile, h as DeploymentContentManifest, j as DnsRecord, k as DomainDeletedResponse, l as DomainListResponse, m as DomainResponse, o as DropAction, p as DropContentFile, q as DropDeploymentResponse, r as DropOptions, s as DropResponse, t as DropWorkspace, w as DropthisErrorResponse, y as EntitlementLimits, z as Entitlements, G as GetContentOptions, I as InMemoryPublishInput, K as KeyType, L as Limitations, J as ListDeploymentsParams, M as ListDeploymentsResponse, N as ListPage, Q as NextHint, R as PrepareOptions, T as PreparedUploadFile, U as PublishFileInput, X as RequestControls, Y as RequestOptions, Z as RevokeImpact, _ as SHARED_POOL, a0 as TierInfo, a2 as UpdateContentOptions, a3 as UploadManifestFile, a4 as UploadSessionFileResponse, a6 as UploadTarget } from './workspaces-CebiV4DS.js';
|
|
3
3
|
|
|
4
4
|
declare class AuthResource {
|
|
5
5
|
private readonly transport;
|
|
@@ -21,6 +21,42 @@ declare class AuthResource {
|
|
|
21
21
|
logout(): Promise<DropthisResult<null>>;
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
+
/** Invitee-side invitations (ADR 0068). Listing needs `members:read`; accepting needs `members:write`. */
|
|
25
|
+
declare class InvitationsResource {
|
|
26
|
+
private readonly transport;
|
|
27
|
+
constructor(transport: Transport);
|
|
28
|
+
/** List the calling account's own pending invitations. */
|
|
29
|
+
list(): Promise<DropthisResult<InvitationListResponse>>;
|
|
30
|
+
/** Accept by the raw single-use token from the invite email. Joins + switches active workspace. */
|
|
31
|
+
accept(input: {
|
|
32
|
+
token: string;
|
|
33
|
+
}): Promise<DropthisResult<Workspace>>;
|
|
34
|
+
/** Accept by invitation id, once authenticated as the invited email — the agent path, no token. */
|
|
35
|
+
acceptById(input: {
|
|
36
|
+
invitationId: string;
|
|
37
|
+
}): Promise<DropthisResult<Workspace>>;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/** Team membership management (ADR 0068). Capability follows the credential's scopes. */
|
|
41
|
+
declare class MembersResource {
|
|
42
|
+
private readonly transport;
|
|
43
|
+
constructor(transport: Transport);
|
|
44
|
+
/** List a workspace's members (any member, `members:read`). */
|
|
45
|
+
list(workspaceId: string): Promise<DropthisResult<MemberListResponse>>;
|
|
46
|
+
/** Invite an email to the workspace (owner/admin, `members:write`). */
|
|
47
|
+
invite(workspaceId: string, input: {
|
|
48
|
+
email: string;
|
|
49
|
+
role: InvitableRole;
|
|
50
|
+
}): Promise<DropthisResult<Invitation>>;
|
|
51
|
+
/** Change a member's role (`members:admin`, owner-only-touches-owner enforced server-side). */
|
|
52
|
+
updateRole(workspaceId: string, accountId: string, input: {
|
|
53
|
+
role: WorkspaceRole;
|
|
54
|
+
}): Promise<DropthisResult<Member>>;
|
|
55
|
+
/** Remove a member, or leave the workspace (your own id). Removing others needs `members:admin`;
|
|
56
|
+
* leaving needs `members:write`. 204 — data is null. */
|
|
57
|
+
remove(workspaceId: string, accountId: string): Promise<DropthisResult<null>>;
|
|
58
|
+
}
|
|
59
|
+
|
|
24
60
|
declare class UploadsResource {
|
|
25
61
|
private readonly transport;
|
|
26
62
|
constructor(transport: Transport);
|
|
@@ -50,6 +86,8 @@ declare class Dropthis {
|
|
|
50
86
|
private uploadsResource?;
|
|
51
87
|
private domainsResource?;
|
|
52
88
|
private workspacesResource?;
|
|
89
|
+
private membersResource?;
|
|
90
|
+
private invitationsResource?;
|
|
53
91
|
constructor(options?: DropthisClientOptions | string);
|
|
54
92
|
get auth(): AuthResource;
|
|
55
93
|
get apiKeys(): ApiKeysResource;
|
|
@@ -59,6 +97,8 @@ declare class Dropthis {
|
|
|
59
97
|
get uploads(): UploadsResource;
|
|
60
98
|
get domains(): DomainsResource;
|
|
61
99
|
get workspaces(): WorkspacesResource;
|
|
100
|
+
get members(): MembersResource;
|
|
101
|
+
get invitations(): InvitationsResource;
|
|
62
102
|
prepare(input: PublishInput, options?: PublishOptions): Promise<PreparedPublishRequest>;
|
|
63
103
|
}
|
|
64
104
|
|
|
@@ -74,8 +114,29 @@ declare function createErrorResult<T>(code: string, message: string, statusCode:
|
|
|
74
114
|
headers?: Record<string, string>;
|
|
75
115
|
suggestion?: string | null;
|
|
76
116
|
retryable?: boolean | null;
|
|
117
|
+
feature?: string | null;
|
|
118
|
+
currentPlan?: string | null;
|
|
119
|
+
requiredPlan?: string | null;
|
|
120
|
+
upgradeUrl?: string | null;
|
|
121
|
+
limit?: number | null;
|
|
122
|
+
used?: number | null;
|
|
123
|
+
requested?: number | null;
|
|
77
124
|
body?: unknown;
|
|
78
125
|
}): DropthisResult<T>;
|
|
126
|
+
/** True for a capability denial (`feature_not_in_plan`) — a plan gate, never retryable. */
|
|
127
|
+
declare function isFeatureNotInPlan(error: {
|
|
128
|
+
code: string;
|
|
129
|
+
} | null): boolean;
|
|
130
|
+
/** True for a numeric-ceiling denial (`quota_exceeded`: per-drop bytes 413, or an
|
|
131
|
+
* account ceiling 403). Never retryable — a plan ceiling does not free up on retry. */
|
|
132
|
+
declare function isQuotaExceeded(error: {
|
|
133
|
+
code: string;
|
|
134
|
+
} | null): boolean;
|
|
135
|
+
/** True for either plan-gate code — branch a retry layer on this to stop and
|
|
136
|
+
* hand off to a human instead of re-issuing a request that can never succeed. */
|
|
137
|
+
declare function isPlanGate(error: {
|
|
138
|
+
code: string;
|
|
139
|
+
} | null): boolean;
|
|
79
140
|
declare class PublishInputError extends Error {
|
|
80
141
|
readonly code: string;
|
|
81
142
|
readonly param?: string | undefined;
|
|
@@ -83,4 +144,4 @@ declare class PublishInputError extends Error {
|
|
|
83
144
|
constructor(code: string, message: string, param?: string | undefined, suggestion?: string | undefined);
|
|
84
145
|
}
|
|
85
146
|
|
|
86
|
-
export { CreateUploadSessionRequest, CreateUploadSessionResponse, DeploymentsResource, DomainsResource, Dropthis, DropthisClientOptions, DropthisResult, PreparedPublishRequest, PublishInput, PublishInputError, PublishOptions, UploadSessionResponse, UploadsResource, WorkspacesResource, createErrorResult, redactSecrets };
|
|
147
|
+
export { CreateUploadSessionRequest, CreateUploadSessionResponse, DeploymentsResource, DomainsResource, Dropthis, DropthisClientOptions, DropthisResult, InvitableRole, Invitation, InvitationListResponse, InvitationsResource, Member, MemberListResponse, MembersResource, PreparedPublishRequest, PublishInput, PublishInputError, PublishOptions, UploadSessionResponse, UploadsResource, Workspace, WorkspaceRole, WorkspacesResource, createErrorResult, isFeatureNotInPlan, isPlanGate, isQuotaExceeded, redactSecrets };
|
|
@@ -23,11 +23,27 @@ function createErrorResult(code, message, statusCode, extra = {}) {
|
|
|
23
23
|
...extra.requestId !== void 0 ? { requestId: extra.requestId } : {},
|
|
24
24
|
...extra.suggestion !== void 0 ? { suggestion: extra.suggestion } : {},
|
|
25
25
|
...extra.retryable !== void 0 ? { retryable: extra.retryable } : {},
|
|
26
|
+
...extra.feature != null ? { feature: extra.feature } : {},
|
|
27
|
+
...extra.currentPlan != null ? { currentPlan: extra.currentPlan } : {},
|
|
28
|
+
...extra.requiredPlan != null ? { requiredPlan: extra.requiredPlan } : {},
|
|
29
|
+
...extra.upgradeUrl != null ? { upgradeUrl: extra.upgradeUrl } : {},
|
|
30
|
+
...extra.limit != null ? { limit: extra.limit } : {},
|
|
31
|
+
...extra.used != null ? { used: extra.used } : {},
|
|
32
|
+
...extra.requested != null ? { requested: extra.requested } : {},
|
|
26
33
|
...extra.body !== void 0 ? { body: extra.body } : {}
|
|
27
34
|
},
|
|
28
35
|
headers: extra.headers ?? {}
|
|
29
36
|
};
|
|
30
37
|
}
|
|
38
|
+
function isFeatureNotInPlan(error) {
|
|
39
|
+
return error?.code === "feature_not_in_plan";
|
|
40
|
+
}
|
|
41
|
+
function isQuotaExceeded(error) {
|
|
42
|
+
return error?.code === "quota_exceeded";
|
|
43
|
+
}
|
|
44
|
+
function isPlanGate(error) {
|
|
45
|
+
return isFeatureNotInPlan(error) || isQuotaExceeded(error);
|
|
46
|
+
}
|
|
31
47
|
var PublishInputError = class extends Error {
|
|
32
48
|
constructor(code, message, param, suggestion) {
|
|
33
49
|
super(message);
|
|
@@ -696,6 +712,7 @@ var ApiKeysResource = class {
|
|
|
696
712
|
if (input.workspace !== void 0) body.workspace = input.workspace;
|
|
697
713
|
if (input.allowedWorkspaces !== void 0)
|
|
698
714
|
body.allowed_workspace_ids = input.allowedWorkspaces;
|
|
715
|
+
if (input.scopes !== void 0) body.scopes = input.scopes;
|
|
699
716
|
return this.transport.request("POST", "/api-keys", { body });
|
|
700
717
|
}
|
|
701
718
|
/** Revoke an API key. 204 No Content — data is null on success. */
|
|
@@ -1049,6 +1066,69 @@ function updateBody(options) {
|
|
|
1049
1066
|
};
|
|
1050
1067
|
}
|
|
1051
1068
|
|
|
1069
|
+
// src/resources/invitations.ts
|
|
1070
|
+
var InvitationsResource = class {
|
|
1071
|
+
constructor(transport) {
|
|
1072
|
+
this.transport = transport;
|
|
1073
|
+
}
|
|
1074
|
+
transport;
|
|
1075
|
+
/** List the calling account's own pending invitations. */
|
|
1076
|
+
list() {
|
|
1077
|
+
return this.transport.request("GET", "/invitations");
|
|
1078
|
+
}
|
|
1079
|
+
/** Accept by the raw single-use token from the invite email. Joins + switches active workspace. */
|
|
1080
|
+
accept(input) {
|
|
1081
|
+
return this.transport.request("POST", "/invitations/accept", {
|
|
1082
|
+
body: input
|
|
1083
|
+
});
|
|
1084
|
+
}
|
|
1085
|
+
/** Accept by invitation id, once authenticated as the invited email — the agent path, no token. */
|
|
1086
|
+
acceptById(input) {
|
|
1087
|
+
return this.transport.request("POST", "/invitations/accept-by-id", {
|
|
1088
|
+
body: input
|
|
1089
|
+
});
|
|
1090
|
+
}
|
|
1091
|
+
};
|
|
1092
|
+
|
|
1093
|
+
// src/resources/members.ts
|
|
1094
|
+
var MembersResource = class {
|
|
1095
|
+
constructor(transport) {
|
|
1096
|
+
this.transport = transport;
|
|
1097
|
+
}
|
|
1098
|
+
transport;
|
|
1099
|
+
/** List a workspace's members (any member, `members:read`). */
|
|
1100
|
+
list(workspaceId) {
|
|
1101
|
+
return this.transport.request(
|
|
1102
|
+
"GET",
|
|
1103
|
+
`/workspaces/${encodeURIComponent(workspaceId)}/members`
|
|
1104
|
+
);
|
|
1105
|
+
}
|
|
1106
|
+
/** Invite an email to the workspace (owner/admin, `members:write`). */
|
|
1107
|
+
invite(workspaceId, input) {
|
|
1108
|
+
return this.transport.request(
|
|
1109
|
+
"POST",
|
|
1110
|
+
`/workspaces/${encodeURIComponent(workspaceId)}/invitations`,
|
|
1111
|
+
{ body: input }
|
|
1112
|
+
);
|
|
1113
|
+
}
|
|
1114
|
+
/** Change a member's role (`members:admin`, owner-only-touches-owner enforced server-side). */
|
|
1115
|
+
updateRole(workspaceId, accountId, input) {
|
|
1116
|
+
return this.transport.request(
|
|
1117
|
+
"PATCH",
|
|
1118
|
+
`/workspaces/${encodeURIComponent(workspaceId)}/members/${encodeURIComponent(accountId)}`,
|
|
1119
|
+
{ body: input }
|
|
1120
|
+
);
|
|
1121
|
+
}
|
|
1122
|
+
/** Remove a member, or leave the workspace (your own id). Removing others needs `members:admin`;
|
|
1123
|
+
* leaving needs `members:write`. 204 — data is null. */
|
|
1124
|
+
remove(workspaceId, accountId) {
|
|
1125
|
+
return this.transport.request(
|
|
1126
|
+
"DELETE",
|
|
1127
|
+
`/workspaces/${encodeURIComponent(workspaceId)}/members/${encodeURIComponent(accountId)}`
|
|
1128
|
+
);
|
|
1129
|
+
}
|
|
1130
|
+
};
|
|
1131
|
+
|
|
1052
1132
|
// src/resources/uploads.ts
|
|
1053
1133
|
var UploadsResource = class {
|
|
1054
1134
|
constructor(transport) {
|
|
@@ -1101,6 +1181,25 @@ var WorkspacesResource = class {
|
|
|
1101
1181
|
list() {
|
|
1102
1182
|
return this.transport.request("GET", "/workspaces");
|
|
1103
1183
|
}
|
|
1184
|
+
/** Create a team workspace (the caller becomes its sole owner). Needs `workspaces:write`. */
|
|
1185
|
+
create(input) {
|
|
1186
|
+
return this.transport.request("POST", "/workspaces", { body: input });
|
|
1187
|
+
}
|
|
1188
|
+
/** Rename a team workspace (owner/admin). Needs `workspaces:write`. */
|
|
1189
|
+
rename(workspaceId, input) {
|
|
1190
|
+
return this.transport.request(
|
|
1191
|
+
"PATCH",
|
|
1192
|
+
`/workspaces/${encodeURIComponent(workspaceId)}`,
|
|
1193
|
+
{ body: input }
|
|
1194
|
+
);
|
|
1195
|
+
}
|
|
1196
|
+
/** Delete a team workspace (owner only). Needs `workspaces:admin`. 204 — data is null. */
|
|
1197
|
+
delete(workspaceId) {
|
|
1198
|
+
return this.transport.request(
|
|
1199
|
+
"DELETE",
|
|
1200
|
+
`/workspaces/${encodeURIComponent(workspaceId)}`
|
|
1201
|
+
);
|
|
1202
|
+
}
|
|
1104
1203
|
use(workspace) {
|
|
1105
1204
|
return this.transport.request("PUT", "/account/active-workspace", {
|
|
1106
1205
|
body: { workspace }
|
|
@@ -1151,7 +1250,7 @@ function toSnakeCase(value) {
|
|
|
1151
1250
|
|
|
1152
1251
|
// src/transport.ts
|
|
1153
1252
|
var DEFAULT_BASE_URL = "https://api.dropthis.app";
|
|
1154
|
-
var SDK_VERSION = "0.
|
|
1253
|
+
var SDK_VERSION = "0.29.0";
|
|
1155
1254
|
var Transport = class {
|
|
1156
1255
|
apiKey;
|
|
1157
1256
|
baseUrl;
|
|
@@ -1360,6 +1459,15 @@ function problemResult(response, text, responseHeaders) {
|
|
|
1360
1459
|
requestId: stringValue(body.request_id) ?? responseHeaders["x-request-id"] ?? null,
|
|
1361
1460
|
suggestion: stringValue(body.suggestion),
|
|
1362
1461
|
retryable: booleanValue(body.retryable),
|
|
1462
|
+
// Unified plan-gate contract (feature_not_in_plan / quota_exceeded). The
|
|
1463
|
+
// error body isn't camelCased like a success body, so map the snake keys here.
|
|
1464
|
+
feature: stringValue(body.feature),
|
|
1465
|
+
currentPlan: stringValue(body.current_plan),
|
|
1466
|
+
requiredPlan: stringValue(body.required_plan),
|
|
1467
|
+
upgradeUrl: stringValue(body.upgrade_url),
|
|
1468
|
+
limit: numberValue(body.limit) ?? null,
|
|
1469
|
+
used: numberValue(body.used) ?? null,
|
|
1470
|
+
requested: numberValue(body.requested) ?? null,
|
|
1363
1471
|
headers: responseHeaders
|
|
1364
1472
|
});
|
|
1365
1473
|
}
|
|
@@ -1401,6 +1509,8 @@ var Dropthis = class {
|
|
|
1401
1509
|
uploadsResource;
|
|
1402
1510
|
domainsResource;
|
|
1403
1511
|
workspacesResource;
|
|
1512
|
+
membersResource;
|
|
1513
|
+
invitationsResource;
|
|
1404
1514
|
constructor(options = {}) {
|
|
1405
1515
|
this.transport = new Transport(options);
|
|
1406
1516
|
this.defaultWorkspace = typeof options === "string" ? void 0 : options.workspace;
|
|
@@ -1450,6 +1560,16 @@ var Dropthis = class {
|
|
|
1450
1560
|
this.workspacesResource = new WorkspacesResource(this.transport);
|
|
1451
1561
|
return this.workspacesResource;
|
|
1452
1562
|
}
|
|
1563
|
+
get members() {
|
|
1564
|
+
if (!this.membersResource)
|
|
1565
|
+
this.membersResource = new MembersResource(this.transport);
|
|
1566
|
+
return this.membersResource;
|
|
1567
|
+
}
|
|
1568
|
+
get invitations() {
|
|
1569
|
+
if (!this.invitationsResource)
|
|
1570
|
+
this.invitationsResource = new InvitationsResource(this.transport);
|
|
1571
|
+
return this.invitationsResource;
|
|
1572
|
+
}
|
|
1453
1573
|
async prepare(input, options = {}) {
|
|
1454
1574
|
const merged = this.defaultWorkspace !== void 0 && options.workspace === void 0 ? { ...options, workspace: this.defaultWorkspace } : options;
|
|
1455
1575
|
return resolveInput(input, merged);
|
|
@@ -1463,11 +1583,16 @@ export {
|
|
|
1463
1583
|
DeploymentsResource,
|
|
1464
1584
|
DomainsResource,
|
|
1465
1585
|
Dropthis,
|
|
1586
|
+
InvitationsResource,
|
|
1587
|
+
MembersResource,
|
|
1466
1588
|
PublishInputError,
|
|
1467
1589
|
SHARED_POOL,
|
|
1468
1590
|
UploadsResource,
|
|
1469
1591
|
WorkspacesResource,
|
|
1470
1592
|
createErrorResult,
|
|
1593
|
+
isFeatureNotInPlan,
|
|
1594
|
+
isPlanGate,
|
|
1595
|
+
isQuotaExceeded,
|
|
1471
1596
|
redactSecrets
|
|
1472
1597
|
};
|
|
1473
1598
|
//# sourceMappingURL=index.mjs.map
|