@studiometa/forge-sdk 0.3.0 → 0.4.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.
- package/README.md +13 -11
- package/dist/forge.d.ts +13 -8
- package/dist/forge.d.ts.map +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +378 -355
- package/dist/index.js.map +1 -1
- package/dist/pagination.d.ts +8 -5
- package/dist/pagination.d.ts.map +1 -1
- package/dist/resources/backups.d.ts +18 -10
- package/dist/resources/backups.d.ts.map +1 -1
- package/dist/resources/base.d.ts +3 -2
- package/dist/resources/base.d.ts.map +1 -1
- package/dist/resources/certificates.d.ts +22 -59
- package/dist/resources/certificates.d.ts.map +1 -1
- package/dist/resources/commands.d.ts +18 -10
- package/dist/resources/commands.d.ts.map +1 -1
- package/dist/resources/daemons.d.ts +18 -10
- package/dist/resources/daemons.d.ts.map +1 -1
- package/dist/resources/database-users.d.ts +18 -10
- package/dist/resources/database-users.d.ts.map +1 -1
- package/dist/resources/databases.d.ts +18 -10
- package/dist/resources/databases.d.ts.map +1 -1
- package/dist/resources/deployments.d.ts +15 -9
- package/dist/resources/deployments.d.ts.map +1 -1
- package/dist/resources/firewall-rules.d.ts +18 -10
- package/dist/resources/firewall-rules.d.ts.map +1 -1
- package/dist/resources/monitors.d.ts +18 -10
- package/dist/resources/monitors.d.ts.map +1 -1
- package/dist/resources/nginx-templates.d.ts +21 -11
- package/dist/resources/nginx-templates.d.ts.map +1 -1
- package/dist/resources/recipes.d.ts +17 -10
- package/dist/resources/recipes.d.ts.map +1 -1
- package/dist/resources/redirect-rules.d.ts +18 -10
- package/dist/resources/redirect-rules.d.ts.map +1 -1
- package/dist/resources/scheduled-jobs.d.ts +18 -10
- package/dist/resources/scheduled-jobs.d.ts.map +1 -1
- package/dist/resources/security-rules.d.ts +18 -10
- package/dist/resources/security-rules.d.ts.map +1 -1
- package/dist/resources/servers.d.ts +25 -13
- package/dist/resources/servers.d.ts.map +1 -1
- package/dist/resources/sites.d.ts +29 -17
- package/dist/resources/sites.d.ts.map +1 -1
- package/dist/resources/ssh-keys.d.ts +18 -10
- package/dist/resources/ssh-keys.d.ts.map +1 -1
- package/dist/test-utils.d.ts +12 -3
- package/dist/test-utils.d.ts.map +1 -1
- package/dist/test-utils.js +16 -5
- package/dist/test-utils.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -18,7 +18,7 @@ npm install @studiometa/forge-sdk
|
|
|
18
18
|
```typescript
|
|
19
19
|
import { Forge } from "@studiometa/forge-sdk";
|
|
20
20
|
|
|
21
|
-
const forge = new Forge("your-api-token");
|
|
21
|
+
const forge = new Forge("your-api-token", "your-org-slug");
|
|
22
22
|
|
|
23
23
|
// List all servers
|
|
24
24
|
const servers = await forge.servers.list();
|
|
@@ -153,15 +153,17 @@ forge.server(id).site(siteId).deployments.script(); // Get deploy script
|
|
|
153
153
|
forge.server(id).site(siteId).deployments.updateScript("npm run build");
|
|
154
154
|
```
|
|
155
155
|
|
|
156
|
-
### Certificates
|
|
156
|
+
### Certificates (per-domain in v2)
|
|
157
157
|
|
|
158
158
|
```typescript
|
|
159
|
-
|
|
160
|
-
forge.server(id).site(siteId).certificates.get(
|
|
161
|
-
|
|
162
|
-
forge.server(id).site(siteId).certificates.
|
|
163
|
-
|
|
164
|
-
forge.server(id).site(siteId).certificates.
|
|
159
|
+
// Get certificate for a domain
|
|
160
|
+
forge.server(id).site(siteId).certificates.get(domainId);
|
|
161
|
+
// Create a certificate
|
|
162
|
+
forge.server(id).site(siteId).certificates.create(domainId, { type: "letsencrypt" });
|
|
163
|
+
// Activate a certificate
|
|
164
|
+
forge.server(id).site(siteId).certificates.activate(domainId);
|
|
165
|
+
// Delete a certificate
|
|
166
|
+
forge.server(id).site(siteId).certificates.delete(domainId);
|
|
165
167
|
```
|
|
166
168
|
|
|
167
169
|
### Databases
|
|
@@ -208,12 +210,12 @@ The SDK supports dependency injection for testing:
|
|
|
208
210
|
|
|
209
211
|
```typescript
|
|
210
212
|
const mockFetch = async (url, init) => {
|
|
211
|
-
return new Response(JSON.stringify({
|
|
213
|
+
return new Response(JSON.stringify({ data: [] }), {
|
|
212
214
|
headers: { "content-type": "application/json" },
|
|
213
215
|
});
|
|
214
216
|
};
|
|
215
217
|
|
|
216
|
-
const forge = new Forge("test-token", { fetch: mockFetch });
|
|
218
|
+
const forge = new Forge("test-token", "test-org", { fetch: mockFetch });
|
|
217
219
|
const servers = await forge.servers.list(); // Uses mock fetch
|
|
218
220
|
```
|
|
219
221
|
|
|
@@ -222,7 +224,7 @@ const servers = await forge.servers.list(); // Uses mock fetch
|
|
|
222
224
|
```typescript
|
|
223
225
|
import { Forge } from "@studiometa/forge-sdk";
|
|
224
226
|
|
|
225
|
-
const forge = new Forge(process.env.FORGE_API_TOKEN);
|
|
227
|
+
const forge = new Forge(process.env.FORGE_API_TOKEN, process.env.FORGE_ORG);
|
|
226
228
|
|
|
227
229
|
// Deploy after successful CI using resolve() to find the server and site by name
|
|
228
230
|
const serverResult = await forge.servers.resolve("prod");
|
package/dist/forge.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ForgeOptions,
|
|
1
|
+
import type { ForgeOptions, UserAttributes } from "@studiometa/forge-api";
|
|
2
2
|
import { HttpClient } from "@studiometa/forge-api";
|
|
3
3
|
import { ServersCollection, ServerResource } from "./resources/servers.ts";
|
|
4
4
|
import { RecipesCollection } from "./resources/recipes.ts";
|
|
@@ -12,7 +12,7 @@ import { RecipesCollection } from "./resources/recipes.ts";
|
|
|
12
12
|
* ```ts
|
|
13
13
|
* import { Forge } from '@studiometa/forge-sdk';
|
|
14
14
|
*
|
|
15
|
-
* const forge = new Forge('your-api-token');
|
|
15
|
+
* const forge = new Forge('your-api-token', 'my-org');
|
|
16
16
|
*
|
|
17
17
|
* // List all servers
|
|
18
18
|
* const servers = await forge.servers.list();
|
|
@@ -30,6 +30,8 @@ import { RecipesCollection } from "./resources/recipes.ts";
|
|
|
30
30
|
export declare class Forge {
|
|
31
31
|
/** @internal */
|
|
32
32
|
readonly client: HttpClient;
|
|
33
|
+
/** The organization slug used for v2 API URL prefixing. */
|
|
34
|
+
readonly organizationSlug: string;
|
|
33
35
|
/** Server operations (list, get, create, update, delete, reboot). */
|
|
34
36
|
readonly servers: ServersCollection;
|
|
35
37
|
/** Recipe operations (list, get, create, delete, run). */
|
|
@@ -38,23 +40,24 @@ export declare class Forge {
|
|
|
38
40
|
* Create a new Forge SDK instance.
|
|
39
41
|
*
|
|
40
42
|
* @param token Your Laravel Forge API token.
|
|
43
|
+
* @param organizationSlug Your organization slug (used for v2 API URLs).
|
|
41
44
|
* @param options Optional configuration (custom fetch, base URL, rate limiting).
|
|
42
45
|
*
|
|
43
46
|
* @example
|
|
44
47
|
* ```ts
|
|
45
48
|
* // Basic usage
|
|
46
|
-
* const forge = new Forge('your-api-token');
|
|
49
|
+
* const forge = new Forge('your-api-token', 'my-org');
|
|
47
50
|
*
|
|
48
51
|
* // With custom options
|
|
49
|
-
* const forge = new Forge('your-api-token', {
|
|
50
|
-
* baseUrl: 'https://
|
|
52
|
+
* const forge = new Forge('your-api-token', 'my-org', {
|
|
53
|
+
* baseUrl: 'https://forge.laravel.com/api/v2',
|
|
51
54
|
* });
|
|
52
55
|
*
|
|
53
56
|
* // With mock fetch for testing
|
|
54
|
-
* const forge = new Forge('test-token', { fetch: mockFetch });
|
|
57
|
+
* const forge = new Forge('test-token', 'test-org', { fetch: mockFetch });
|
|
55
58
|
* ```
|
|
56
59
|
*/
|
|
57
|
-
constructor(token: string, options?: ForgeOptions);
|
|
60
|
+
constructor(token: string, organizationSlug: string, options?: ForgeOptions);
|
|
58
61
|
/**
|
|
59
62
|
* Access a specific server by ID, with nested resources.
|
|
60
63
|
*
|
|
@@ -88,6 +91,8 @@ export declare class Forge {
|
|
|
88
91
|
* console.log(user.name, user.email);
|
|
89
92
|
* ```
|
|
90
93
|
*/
|
|
91
|
-
user(): Promise<
|
|
94
|
+
user(): Promise<UserAttributes & {
|
|
95
|
+
id: number;
|
|
96
|
+
}>;
|
|
92
97
|
}
|
|
93
98
|
//# sourceMappingURL=forge.d.ts.map
|
package/dist/forge.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"forge.d.ts","sourceRoot":"","sources":["../src/forge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"forge.d.ts","sourceRoot":"","sources":["../src/forge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAmB,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE3F,OAAO,EAAE,UAAU,EAAkB,MAAM,uBAAuB,CAAC;AAEnE,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,KAAK;IAChB,gBAAgB;IAChB,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAE5B,2DAA2D;IAC3D,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAElC,qEAAqE;IACrE,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC;IAEpC,0DAA0D;IAC1D,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC;IAEpC;;;;;;;;;;;;;;;;;;;;OAoBG;gBACS,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY;IAO3E;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc;IAIxC;;;;;;;;OAQG;IACG,IAAI,IAAI,OAAO,CAAC,cAAc,GAAG;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;CAIvD"}
|
package/dist/index.d.ts
CHANGED
|
@@ -5,7 +5,6 @@ export type { PageFetcher } from "./pagination.ts";
|
|
|
5
5
|
export { BackupsCollection } from "./resources/backups.ts";
|
|
6
6
|
export type { BackupConfigListOptions } from "./resources/backups.ts";
|
|
7
7
|
export { CertificatesCollection } from "./resources/certificates.ts";
|
|
8
|
-
export type { CertificateListOptions } from "./resources/certificates.ts";
|
|
9
8
|
export { CommandsCollection } from "./resources/commands.ts";
|
|
10
9
|
export type { CommandListOptions } from "./resources/commands.ts";
|
|
11
10
|
export { DaemonsCollection } from "./resources/daemons.ts";
|
|
@@ -36,5 +35,8 @@ export { SshKeysCollection } from "./resources/ssh-keys.ts";
|
|
|
36
35
|
export type { SshKeyListOptions } from "./resources/ssh-keys.ts";
|
|
37
36
|
export { SiteEnvResource, SiteNginxResource, SiteResource, SitesCollection, } from "./resources/sites.ts";
|
|
38
37
|
export type { SiteListOptions } from "./resources/sites.ts";
|
|
39
|
-
export type {
|
|
38
|
+
export type { JsonApiDocument, JsonApiListDocument, JsonApiResource, JsonApiPaginationLinks, JsonApiPaginationMeta, } from "@studiometa/forge-api";
|
|
39
|
+
export { unwrapDocument, unwrapListDocument, unwrapResource } from "@studiometa/forge-api";
|
|
40
|
+
export type { UserAttributes, ServerAttributes, SiteAttributes, DeploymentAttributes, DeploymentCommit, DeploymentOutputAttributes, DeploymentScriptAttributes, DatabaseAttributes, DatabaseUserAttributes, BackgroundProcessAttributes, CertificateAttributes, FirewallRuleAttributes, SshKeyAttributes, SecurityRuleAttributes, RedirectRuleAttributes, MonitorAttributes, NginxTemplateAttributes, RecipeAttributes, ScheduledJobAttributes, CommandAttributes, BackupConfigAttributes, BackupAttributes, OrganizationAttributes, } from "@studiometa/forge-api";
|
|
41
|
+
export type { CreateBackupConfigData, CreateCertificateData, CreateCommandData, CreateDaemonData, CreateDatabaseData, CreateDatabaseUserData, CreateFirewallRuleData, CreateMonitorData, CreateNginxTemplateData, CreateRecipeData, CreateRedirectRuleData, CreateScheduledJobData, CreateSecurityRuleData, CreateServerData, CreateSiteData, CreateSshKeyData, ForgeOptions, } from "@studiometa/forge-api";
|
|
40
42
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,YAAY,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,YAAY,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,YAAY,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,YAAY,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,YAAY,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AACxE,YAAY,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,YAAY,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AACxE,YAAY,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,YAAY,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,YAAY,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAC/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAClF,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AACxE,YAAY,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AACxE,YAAY,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AACxE,YAAY,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC3E,YAAY,EAAE,iBAAiB,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC7F,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,YAAY,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,eAAe,GAChB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAG5D,YAAY,EACV,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAG3F,YAAY,EACV,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,oBAAoB,EACpB,gBAAgB,EAChB,0BAA0B,EAC1B,0BAA0B,EAC1B,kBAAkB,EAClB,sBAAsB,EACtB,2BAA2B,EAC3B,qBAAqB,EACrB,sBAAsB,EACtB,gBAAgB,EAChB,sBAAsB,EACtB,sBAAsB,EACtB,iBAAiB,EACjB,uBAAuB,EACvB,gBAAgB,EAChB,sBAAsB,EACtB,iBAAiB,EACjB,sBAAsB,EACtB,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,uBAAuB,CAAC;AAG/B,YAAY,EACV,sBAAsB,EACtB,qBAAqB,EACrB,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,sBAAsB,EACtB,sBAAsB,EACtB,iBAAiB,EACjB,uBAAuB,EACvB,gBAAgB,EAChB,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,EACtB,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,YAAY,GACb,MAAM,uBAAuB,CAAC"}
|