@dropthis/cli 0.31.0 → 0.33.1

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.
@@ -294,6 +294,43 @@ type Workspace = {
294
294
  plan: string;
295
295
  /** Whether this workspace is currently the caller's active workspace. */
296
296
  isActive: boolean;
297
+ /**
298
+ * On CREATE only (null otherwise): whether the credential that created this workspace can act
299
+ * in it. `false` means an allowlist-restricted key created a workspace outside its allowlist —
300
+ * it will be denied on the next write; re-authenticate to obtain a credential that reaches it.
301
+ */
302
+ creatorCanReach?: boolean | null;
303
+ };
304
+ /** A role grantable via invite or a member role-change (owner is transferred, never granted). */
305
+ type WorkspaceRole = "owner" | "admin" | "member";
306
+ type InvitableRole = "admin" | "member";
307
+ /** A member of a team workspace. */
308
+ type Member = {
309
+ accountId: string;
310
+ /** The member's email, or null if their account was deleted. */
311
+ email: string | null;
312
+ role: WorkspaceRole;
313
+ /** Whether this row is the calling account. */
314
+ isYou: boolean;
315
+ joinedAt: string;
316
+ };
317
+ type MemberListResponse = {
318
+ members: Member[];
319
+ };
320
+ /** An invitation to join a team workspace. */
321
+ type Invitation = {
322
+ id: string;
323
+ workspaceId: string;
324
+ email: string;
325
+ role: WorkspaceRole;
326
+ /** `pending`, `accepted`, or `revoked`. */
327
+ status: string;
328
+ expiresAt: string;
329
+ createdAt: string;
330
+ acceptedAt?: string | null;
331
+ };
332
+ type InvitationListResponse = {
333
+ invitations: Invitation[];
297
334
  };
298
335
  type AccountResponse = {
299
336
  id: string;
@@ -785,6 +822,14 @@ declare class ApiKeysResource {
785
822
  workspace?: string;
786
823
  /** Restrict a `delegated` key to these workspace slugs or ids. */
787
824
  allowedWorkspaces?: string[];
825
+ /**
826
+ * Request the credential's capability scopes (ADR 0068). Each entry is a bundle
827
+ * name (`publish`, `team`, `team-admin`) or a fine-grained scope (`members:admin`).
828
+ * The minted key gets the requested set intersected with your own scopes
829
+ * (downscope-only). Omit for the default `publish` bundle; pass `["team"]` to mint
830
+ * a credential that can create + manage teams (`login --scope team`).
831
+ */
832
+ scopes?: string[];
788
833
  }): Promise<DropthisResult<ApiKeyCreatedResponse>>;
789
834
  /** Revoke an API key. 204 No Content — data is null on success. */
790
835
  delete(keyId: string): Promise<DropthisResult<null>>;
@@ -958,8 +1003,21 @@ declare class WorkspacesResource {
958
1003
  list(): Promise<DropthisResult<{
959
1004
  workspaces: Workspace[];
960
1005
  }>>;
1006
+ /** Create a team workspace (the caller becomes its sole owner). Needs `workspaces:write`. */
1007
+ create(input: {
1008
+ name: string;
1009
+ /** URL-safe slug; derived from the name when omitted. A clash on an explicit slug → 409. */
1010
+ slug?: string;
1011
+ }): Promise<DropthisResult<Workspace>>;
1012
+ /** Rename a team workspace (owner/admin). Needs `workspaces:write`. */
1013
+ rename(workspaceId: string, input: {
1014
+ name?: string;
1015
+ slug?: string;
1016
+ }): Promise<DropthisResult<Workspace>>;
1017
+ /** Delete a team workspace (owner only). Needs `workspaces:admin`. 204 — data is null. */
1018
+ delete(workspaceId: string): Promise<DropthisResult<null>>;
961
1019
  use(workspace: string): Promise<DropthisResult<Workspace>>;
962
1020
  active(): Promise<DropthisResult<Workspace | null>>;
963
1021
  }
964
1022
 
965
- export { type UploadSessionFileResponse as $, AccountResource as A, type ListDeploymentsParams as B, type CreateUploadSessionRequest as C, type DeploymentContentFile as D, type EmailOtpResponse as E, type ListDeploymentsResponse as F, type GetContentOptions as G, type ListPage as H, type InMemoryPublishInput as I, type PreparedPublishRequest as J, type KeyType as K, type Limitations as L, type PreparedUploadFile as M, type NextHint as N, type PublishFileInput as O, type PrepareOptions as P, type PublishInput as Q, type PublishOptions as R, type RequestControls as S, type RequestOptions as T, type RevokeImpact as U, SHARED_POOL as V, type SessionResponse as W, type TierInfo as X, Transport as Y, type UpdateContentOptions as Z, type UploadManifestFile as _, type AccountResponse as a, type UploadSessionResponse as a0, type UploadTarget as a1, type Workspace as a2, WorkspacesResource as a3, type AccountUsage as b, type AccountWorkspace as c, type ActionResolve as d, ApiKeysResource as e, type CreateUploadSessionResponse as f, CursorPage as g, type DeploymentContentManifest as h, DeploymentsResource as i, type DnsRecord as j, type DomainDeletedResponse as k, type DomainListResponse as l, type DomainResponse as m, DomainsResource as n, type DropAction as o, type DropContentFile as p, type DropDeploymentResponse as q, type DropOptions as r, type DropResponse as s, type DropWorkspace as t, DropsResource as u, type DropthisClientOptions as v, type DropthisErrorResponse as w, type DropthisResult as x, type EntitlementLimits as y, type Entitlements as z };
1023
+ export { type SessionResponse as $, AccountResource as A, type InvitableRole as B, type CreateUploadSessionRequest as C, type DeploymentContentFile as D, type EmailOtpResponse as E, type Invitation as F, type GetContentOptions as G, type InvitationListResponse as H, type InMemoryPublishInput as I, type ListDeploymentsParams as J, type KeyType as K, type Limitations as L, type ListDeploymentsResponse as M, type ListPage as N, type Member as O, type MemberListResponse as P, type NextHint as Q, type PrepareOptions as R, type PreparedPublishRequest as S, type PreparedUploadFile as T, type PublishFileInput as U, type PublishInput as V, type PublishOptions as W, type RequestControls as X, type RequestOptions as Y, type RevokeImpact as Z, SHARED_POOL as _, type AccountResponse as a, type TierInfo as a0, Transport as a1, type UpdateContentOptions as a2, type UploadManifestFile as a3, type UploadSessionFileResponse as a4, type UploadSessionResponse as a5, type UploadTarget as a6, type Workspace as a7, type WorkspaceRole as a8, WorkspacesResource as a9, type AccountUsage as b, type AccountWorkspace as c, type ActionResolve as d, ApiKeysResource as e, type CreateUploadSessionResponse as f, CursorPage as g, type DeploymentContentManifest as h, DeploymentsResource as i, type DnsRecord as j, type DomainDeletedResponse as k, type DomainListResponse as l, type DomainResponse as m, DomainsResource as n, type DropAction as o, type DropContentFile as p, type DropDeploymentResponse as q, type DropOptions as r, type DropResponse as s, type DropWorkspace as t, DropsResource as u, type DropthisClientOptions as v, type DropthisErrorResponse as w, type DropthisResult as x, type EntitlementLimits as y, type Entitlements as z };
@@ -294,6 +294,43 @@ type Workspace = {
294
294
  plan: string;
295
295
  /** Whether this workspace is currently the caller's active workspace. */
296
296
  isActive: boolean;
297
+ /**
298
+ * On CREATE only (null otherwise): whether the credential that created this workspace can act
299
+ * in it. `false` means an allowlist-restricted key created a workspace outside its allowlist —
300
+ * it will be denied on the next write; re-authenticate to obtain a credential that reaches it.
301
+ */
302
+ creatorCanReach?: boolean | null;
303
+ };
304
+ /** A role grantable via invite or a member role-change (owner is transferred, never granted). */
305
+ type WorkspaceRole = "owner" | "admin" | "member";
306
+ type InvitableRole = "admin" | "member";
307
+ /** A member of a team workspace. */
308
+ type Member = {
309
+ accountId: string;
310
+ /** The member's email, or null if their account was deleted. */
311
+ email: string | null;
312
+ role: WorkspaceRole;
313
+ /** Whether this row is the calling account. */
314
+ isYou: boolean;
315
+ joinedAt: string;
316
+ };
317
+ type MemberListResponse = {
318
+ members: Member[];
319
+ };
320
+ /** An invitation to join a team workspace. */
321
+ type Invitation = {
322
+ id: string;
323
+ workspaceId: string;
324
+ email: string;
325
+ role: WorkspaceRole;
326
+ /** `pending`, `accepted`, or `revoked`. */
327
+ status: string;
328
+ expiresAt: string;
329
+ createdAt: string;
330
+ acceptedAt?: string | null;
331
+ };
332
+ type InvitationListResponse = {
333
+ invitations: Invitation[];
297
334
  };
298
335
  type AccountResponse = {
299
336
  id: string;
@@ -785,6 +822,14 @@ declare class ApiKeysResource {
785
822
  workspace?: string;
786
823
  /** Restrict a `delegated` key to these workspace slugs or ids. */
787
824
  allowedWorkspaces?: string[];
825
+ /**
826
+ * Request the credential's capability scopes (ADR 0068). Each entry is a bundle
827
+ * name (`publish`, `team`, `team-admin`) or a fine-grained scope (`members:admin`).
828
+ * The minted key gets the requested set intersected with your own scopes
829
+ * (downscope-only). Omit for the default `publish` bundle; pass `["team"]` to mint
830
+ * a credential that can create + manage teams (`login --scope team`).
831
+ */
832
+ scopes?: string[];
788
833
  }): Promise<DropthisResult<ApiKeyCreatedResponse>>;
789
834
  /** Revoke an API key. 204 No Content — data is null on success. */
790
835
  delete(keyId: string): Promise<DropthisResult<null>>;
@@ -958,8 +1003,21 @@ declare class WorkspacesResource {
958
1003
  list(): Promise<DropthisResult<{
959
1004
  workspaces: Workspace[];
960
1005
  }>>;
1006
+ /** Create a team workspace (the caller becomes its sole owner). Needs `workspaces:write`. */
1007
+ create(input: {
1008
+ name: string;
1009
+ /** URL-safe slug; derived from the name when omitted. A clash on an explicit slug → 409. */
1010
+ slug?: string;
1011
+ }): Promise<DropthisResult<Workspace>>;
1012
+ /** Rename a team workspace (owner/admin). Needs `workspaces:write`. */
1013
+ rename(workspaceId: string, input: {
1014
+ name?: string;
1015
+ slug?: string;
1016
+ }): Promise<DropthisResult<Workspace>>;
1017
+ /** Delete a team workspace (owner only). Needs `workspaces:admin`. 204 — data is null. */
1018
+ delete(workspaceId: string): Promise<DropthisResult<null>>;
961
1019
  use(workspace: string): Promise<DropthisResult<Workspace>>;
962
1020
  active(): Promise<DropthisResult<Workspace | null>>;
963
1021
  }
964
1022
 
965
- export { type UploadSessionFileResponse as $, AccountResource as A, type ListDeploymentsParams as B, type CreateUploadSessionRequest as C, type DeploymentContentFile as D, type EmailOtpResponse as E, type ListDeploymentsResponse as F, type GetContentOptions as G, type ListPage as H, type InMemoryPublishInput as I, type PreparedPublishRequest as J, type KeyType as K, type Limitations as L, type PreparedUploadFile as M, type NextHint as N, type PublishFileInput as O, type PrepareOptions as P, type PublishInput as Q, type PublishOptions as R, type RequestControls as S, type RequestOptions as T, type RevokeImpact as U, SHARED_POOL as V, type SessionResponse as W, type TierInfo as X, Transport as Y, type UpdateContentOptions as Z, type UploadManifestFile as _, type AccountResponse as a, type UploadSessionResponse as a0, type UploadTarget as a1, type Workspace as a2, WorkspacesResource as a3, type AccountUsage as b, type AccountWorkspace as c, type ActionResolve as d, ApiKeysResource as e, type CreateUploadSessionResponse as f, CursorPage as g, type DeploymentContentManifest as h, DeploymentsResource as i, type DnsRecord as j, type DomainDeletedResponse as k, type DomainListResponse as l, type DomainResponse as m, DomainsResource as n, type DropAction as o, type DropContentFile as p, type DropDeploymentResponse as q, type DropOptions as r, type DropResponse as s, type DropWorkspace as t, DropsResource as u, type DropthisClientOptions as v, type DropthisErrorResponse as w, type DropthisResult as x, type EntitlementLimits as y, type Entitlements as z };
1023
+ export { type SessionResponse as $, AccountResource as A, type InvitableRole as B, type CreateUploadSessionRequest as C, type DeploymentContentFile as D, type EmailOtpResponse as E, type Invitation as F, type GetContentOptions as G, type InvitationListResponse as H, type InMemoryPublishInput as I, type ListDeploymentsParams as J, type KeyType as K, type Limitations as L, type ListDeploymentsResponse as M, type ListPage as N, type Member as O, type MemberListResponse as P, type NextHint as Q, type PrepareOptions as R, type PreparedPublishRequest as S, type PreparedUploadFile as T, type PublishFileInput as U, type PublishInput as V, type PublishOptions as W, type RequestControls as X, type RequestOptions as Y, type RevokeImpact as Z, SHARED_POOL as _, type AccountResponse as a, type TierInfo as a0, Transport as a1, type UpdateContentOptions as a2, type UploadManifestFile as a3, type UploadSessionFileResponse as a4, type UploadSessionResponse as a5, type UploadTarget as a6, type Workspace as a7, type WorkspaceRole as a8, WorkspacesResource as a9, type AccountUsage as b, type AccountWorkspace as c, type ActionResolve as d, ApiKeysResource as e, type CreateUploadSessionResponse as f, CursorPage as g, type DeploymentContentManifest as h, DeploymentsResource as i, type DnsRecord as j, type DomainDeletedResponse as k, type DomainListResponse as l, type DomainResponse as m, DomainsResource as n, type DropAction as o, type DropContentFile as p, type DropDeploymentResponse as q, type DropOptions as r, type DropResponse as s, type DropWorkspace as t, DropsResource as u, type DropthisClientOptions as v, type DropthisErrorResponse as w, type DropthisResult as x, type EntitlementLimits as y, type Entitlements as z };
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dropthis/node",
3
- "version": "0.27.0",
3
+ "version": "0.29.0",
4
4
  "description": "Official Node.js SDK for Dropthis.",
5
5
  "license": "MIT",
6
6
  "repository": {
package/package.json CHANGED
@@ -1,51 +1,51 @@
1
1
  {
2
- "name": "@dropthis/cli",
3
- "version": "0.31.0",
4
- "description": "Official CLI for Dropthis.",
5
- "license": "MIT",
6
- "repository": {
7
- "type": "git",
8
- "url": "https://github.com/dropthis-dev/dropthis-cli"
9
- },
10
- "type": "module",
11
- "bin": {
12
- "dropthis": "./dist/cli.cjs"
13
- },
14
- "files": [
15
- "dist",
16
- "README.md"
17
- ],
18
- "bundledDependencies": [
19
- "@dropthis/node"
20
- ],
21
- "engines": {
22
- "node": ">=20"
23
- },
24
- "scripts": {
25
- "build": "tsup",
26
- "dev": "tsx src/cli.ts",
27
- "format": "biome check --vcs-enabled=true --vcs-client-kind=git --vcs-use-ignore-file=true --write .",
28
- "lint": "biome check --vcs-enabled=true --vcs-client-kind=git --vcs-use-ignore-file=true .",
29
- "typecheck": "tsc --noEmit",
30
- "test": "vitest run",
31
- "pack:dry": "npm pack --dry-run"
32
- },
33
- "dependencies": {
34
- "@clack/prompts": "1.4.0",
35
- "@dropthis/node": "^0.27.0",
36
- "@napi-rs/keyring": "1.3.0",
37
- "commander": "14.0.3",
38
- "picocolors": "1.1.1"
39
- },
40
- "devDependencies": {
41
- "@biomejs/biome": "2.4.11",
42
- "@types/node": "24.0.0",
43
- "tsup": "8.5.1",
44
- "tsx": "4.20.0",
45
- "typescript": "5.9.3",
46
- "vitest": "4.1.7"
47
- },
48
- "bundleDependencies": [
49
- "@dropthis/node"
50
- ]
2
+ "name": "@dropthis/cli",
3
+ "version": "0.33.1",
4
+ "description": "Official CLI for Dropthis.",
5
+ "license": "MIT",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "https://github.com/dropthis-dev/dropthis-cli"
9
+ },
10
+ "type": "module",
11
+ "bin": {
12
+ "dropthis": "./dist/cli.cjs"
13
+ },
14
+ "files": [
15
+ "dist",
16
+ "README.md"
17
+ ],
18
+ "bundledDependencies": [
19
+ "@dropthis/node"
20
+ ],
21
+ "engines": {
22
+ "node": ">=20"
23
+ },
24
+ "scripts": {
25
+ "build": "tsup",
26
+ "dev": "tsx src/cli.ts",
27
+ "format": "biome check --vcs-enabled=true --vcs-client-kind=git --vcs-use-ignore-file=true --write .",
28
+ "lint": "biome check --vcs-enabled=true --vcs-client-kind=git --vcs-use-ignore-file=true .",
29
+ "typecheck": "tsc --noEmit",
30
+ "test": "vitest run",
31
+ "pack:dry": "npm pack --dry-run"
32
+ },
33
+ "dependencies": {
34
+ "@clack/prompts": "1.4.0",
35
+ "@dropthis/node": "^0.29.0",
36
+ "@napi-rs/keyring": "1.3.0",
37
+ "commander": "14.0.3",
38
+ "picocolors": "1.1.1"
39
+ },
40
+ "devDependencies": {
41
+ "@biomejs/biome": "2.4.11",
42
+ "@types/node": "24.0.0",
43
+ "tsup": "8.5.1",
44
+ "tsx": "4.20.0",
45
+ "typescript": "5.9.3",
46
+ "vitest": "4.1.7"
47
+ },
48
+ "bundleDependencies": [
49
+ "@dropthis/node"
50
+ ]
51
51
  }