@studiometa/forge-sdk 0.4.5 → 0.4.7
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 +19 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +304 -1
- package/dist/index.js.map +1 -1
- package/dist/resources/daemons.d.ts +9 -0
- package/dist/resources/daemons.d.ts.map +1 -1
- package/dist/resources/php.d.ts +151 -0
- package/dist/resources/php.d.ts.map +1 -0
- package/dist/resources/servers.d.ts +6 -0
- package/dist/resources/servers.d.ts.map +1 -1
- package/dist/resources/services.d.ts +74 -0
- package/dist/resources/services.d.ts.map +1 -0
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -185,6 +185,25 @@ forge.server(id).daemons.restart(daemonId);
|
|
|
185
185
|
forge.server(id).daemons.delete(daemonId);
|
|
186
186
|
```
|
|
187
187
|
|
|
188
|
+
### PHP
|
|
189
|
+
|
|
190
|
+
Version methods take the PHP version ID from `php.list()`.
|
|
191
|
+
|
|
192
|
+
```typescript
|
|
193
|
+
forge.server(id).php.list(); // Installed PHP versions
|
|
194
|
+
forge.server(id).php.get(versionId);
|
|
195
|
+
forge.server(id).php.config(versionId, "fpm"); // "cli", "fpm" or "pool"
|
|
196
|
+
forge.server(id).php.config(versionId, "pool", { user: "forge" });
|
|
197
|
+
forge.server(id).php.updateConfig(versionId, "fpm", "memory_limit = 512M\n...");
|
|
198
|
+
forge.server(id).php.maxUploadSize(); // Megabytes
|
|
199
|
+
forge.server(id).php.setMaxUploadSize(128);
|
|
200
|
+
forge.server(id).php.maxExecutionTime(); // Seconds
|
|
201
|
+
forge.server(id).php.setMaxExecutionTime(120);
|
|
202
|
+
forge.server(id).php.opcache(); // true or false
|
|
203
|
+
forge.server(id).php.enableOpcache();
|
|
204
|
+
forge.server(id).php.disableOpcache();
|
|
205
|
+
```
|
|
206
|
+
|
|
188
207
|
### User
|
|
189
208
|
|
|
190
209
|
```typescript
|
package/dist/index.d.ts
CHANGED
|
@@ -21,6 +21,8 @@ export { MonitorsCollection } from "./resources/monitors.ts";
|
|
|
21
21
|
export type { MonitorListOptions } from "./resources/monitors.ts";
|
|
22
22
|
export { NginxTemplatesCollection } from "./resources/nginx-templates.ts";
|
|
23
23
|
export type { NginxTemplateListOptions } from "./resources/nginx-templates.ts";
|
|
24
|
+
export { PhpResource, PHP_CONFIG_TYPES } from "./resources/php.ts";
|
|
25
|
+
export type { PhpConfigOptions, PhpConfigType, PhpVersionListOptions } from "./resources/php.ts";
|
|
24
26
|
export { RecipesCollection } from "./resources/recipes.ts";
|
|
25
27
|
export type { RecipeListOptions, RunRecipeOptions } from "./resources/recipes.ts";
|
|
26
28
|
export { RedirectRulesCollection } from "./resources/redirect-rules.ts";
|
|
@@ -31,6 +33,8 @@ export { SecurityRulesCollection } from "./resources/security-rules.ts";
|
|
|
31
33
|
export type { SecurityRuleListOptions } from "./resources/security-rules.ts";
|
|
32
34
|
export { ServersCollection, ServerResource } from "./resources/servers.ts";
|
|
33
35
|
export type { ServerListOptions, ResolveMatch, ResolveResult } from "./resources/servers.ts";
|
|
36
|
+
export { ServicesCollection, RESTARTABLE_SERVICES } from "./resources/services.ts";
|
|
37
|
+
export type { RestartableService, RestartServiceOptions, ServiceStatus, } from "./resources/services.ts";
|
|
34
38
|
export { SshKeysCollection } from "./resources/ssh-keys.ts";
|
|
35
39
|
export type { SshKeyListOptions } from "./resources/ssh-keys.ts";
|
|
36
40
|
export { SiteEnvResource, SiteNginxResource, SiteResource, SitesCollection, } from "./resources/sites.ts";
|
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,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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1100,6 +1100,17 @@ var DaemonsCollection = class extends BaseCollection {
|
|
|
1100
1100
|
return unwrapDocument$1(await this.client.get(`${this.basePath}/${daemonId}`));
|
|
1101
1101
|
}
|
|
1102
1102
|
/**
|
|
1103
|
+
* Get the log output of a daemon.
|
|
1104
|
+
*
|
|
1105
|
+
* @example
|
|
1106
|
+
* ```ts
|
|
1107
|
+
* const log = await forge.server(123).daemons.log(789);
|
|
1108
|
+
* ```
|
|
1109
|
+
*/
|
|
1110
|
+
async log(daemonId) {
|
|
1111
|
+
return unwrapDocument$1(await this.client.get(`${this.basePath}/${daemonId}/log`)).content;
|
|
1112
|
+
}
|
|
1113
|
+
/**
|
|
1103
1114
|
* Create a new daemon.
|
|
1104
1115
|
*
|
|
1105
1116
|
* @example
|
|
@@ -1740,6 +1751,292 @@ var NginxTemplatesCollection = class extends BaseCollection {
|
|
|
1740
1751
|
}
|
|
1741
1752
|
};
|
|
1742
1753
|
//#endregion
|
|
1754
|
+
//#region src/resources/services.ts
|
|
1755
|
+
/**
|
|
1756
|
+
* The six restartable services exposed by the Forge v2 API.
|
|
1757
|
+
*/
|
|
1758
|
+
var RESTARTABLE_SERVICES = [
|
|
1759
|
+
"nginx",
|
|
1760
|
+
"php",
|
|
1761
|
+
"mysql",
|
|
1762
|
+
"postgres",
|
|
1763
|
+
"redis",
|
|
1764
|
+
"supervisor"
|
|
1765
|
+
];
|
|
1766
|
+
/**
|
|
1767
|
+
* Services on a server — list availability and restart individual services.
|
|
1768
|
+
*
|
|
1769
|
+
* Access via `forge.server(id).services`.
|
|
1770
|
+
*
|
|
1771
|
+
* The v2 API has no GET endpoint for services, so `list()` derives availability
|
|
1772
|
+
* from the server object. Restarting maps to the API action `reboot`.
|
|
1773
|
+
*
|
|
1774
|
+
* @example
|
|
1775
|
+
* ```ts
|
|
1776
|
+
* // List services and their availability
|
|
1777
|
+
* const services = await forge.server(123).services.list();
|
|
1778
|
+
*
|
|
1779
|
+
* // Restart nginx
|
|
1780
|
+
* await forge.server(123).services.restart('nginx');
|
|
1781
|
+
*
|
|
1782
|
+
* // Restart php (version required)
|
|
1783
|
+
* await forge.server(123).services.restart('php', { version: 'php83' });
|
|
1784
|
+
* ```
|
|
1785
|
+
*/
|
|
1786
|
+
var ServicesCollection = class extends BaseCollection {
|
|
1787
|
+
serverId;
|
|
1788
|
+
/** @internal */
|
|
1789
|
+
constructor(client, orgSlug, serverId) {
|
|
1790
|
+
super(client, orgSlug);
|
|
1791
|
+
this.serverId = serverId;
|
|
1792
|
+
}
|
|
1793
|
+
get basePath() {
|
|
1794
|
+
return `/orgs/${this.orgSlug}/servers/${this.serverId}`;
|
|
1795
|
+
}
|
|
1796
|
+
/**
|
|
1797
|
+
* List services on this server with a derived availability flag.
|
|
1798
|
+
*
|
|
1799
|
+
* @example
|
|
1800
|
+
* ```ts
|
|
1801
|
+
* const services = await forge.server(123).services.list();
|
|
1802
|
+
* // → [{ service: 'nginx', available: true, detail: null }, ...]
|
|
1803
|
+
* ```
|
|
1804
|
+
*/
|
|
1805
|
+
async list() {
|
|
1806
|
+
const server = unwrapDocument$1(await this.client.get(this.basePath));
|
|
1807
|
+
const databaseType = server.database_type ?? "";
|
|
1808
|
+
const isMysql = databaseType.startsWith("mysql") || databaseType.startsWith("mariadb");
|
|
1809
|
+
const isPostgres = databaseType.startsWith("postgres");
|
|
1810
|
+
return [
|
|
1811
|
+
{
|
|
1812
|
+
service: "nginx",
|
|
1813
|
+
available: true,
|
|
1814
|
+
detail: null
|
|
1815
|
+
},
|
|
1816
|
+
{
|
|
1817
|
+
service: "php",
|
|
1818
|
+
available: server.php_version !== null,
|
|
1819
|
+
detail: server.php_version
|
|
1820
|
+
},
|
|
1821
|
+
{
|
|
1822
|
+
service: "mysql",
|
|
1823
|
+
available: isMysql,
|
|
1824
|
+
detail: isMysql ? server.database_type : null
|
|
1825
|
+
},
|
|
1826
|
+
{
|
|
1827
|
+
service: "postgres",
|
|
1828
|
+
available: isPostgres,
|
|
1829
|
+
detail: isPostgres ? server.database_type : null
|
|
1830
|
+
},
|
|
1831
|
+
{
|
|
1832
|
+
service: "redis",
|
|
1833
|
+
available: server.redis_status !== null,
|
|
1834
|
+
detail: server.redis_status
|
|
1835
|
+
},
|
|
1836
|
+
{
|
|
1837
|
+
service: "supervisor",
|
|
1838
|
+
available: true,
|
|
1839
|
+
detail: null
|
|
1840
|
+
}
|
|
1841
|
+
];
|
|
1842
|
+
}
|
|
1843
|
+
/**
|
|
1844
|
+
* Restart a service on this server.
|
|
1845
|
+
*
|
|
1846
|
+
* Maps to the API action `reboot`. The php service requires a `version`.
|
|
1847
|
+
*
|
|
1848
|
+
* @example
|
|
1849
|
+
* ```ts
|
|
1850
|
+
* await forge.server(123).services.restart('nginx');
|
|
1851
|
+
* await forge.server(123).services.restart('php', { version: 'php83' });
|
|
1852
|
+
* ```
|
|
1853
|
+
*/
|
|
1854
|
+
async restart(service, options = {}) {
|
|
1855
|
+
if (!RESTARTABLE_SERVICES.includes(service)) throw new Error(`Invalid service "${service}". Valid services: ${RESTARTABLE_SERVICES.join(", ")}.`);
|
|
1856
|
+
if (service === "php" && !options.version) throw new Error("The \"php\" service requires a version (e.g. \"php83\") to restart.");
|
|
1857
|
+
await this.client.post(`${this.basePath}/services/${service}/actions`, {
|
|
1858
|
+
action: "reboot",
|
|
1859
|
+
...options.version ? { version: options.version } : {}
|
|
1860
|
+
});
|
|
1861
|
+
}
|
|
1862
|
+
};
|
|
1863
|
+
//#endregion
|
|
1864
|
+
//#region src/resources/php.ts
|
|
1865
|
+
/**
|
|
1866
|
+
* The PHP configuration files that Forge can read and write.
|
|
1867
|
+
*/
|
|
1868
|
+
var PHP_CONFIG_TYPES = [
|
|
1869
|
+
"cli",
|
|
1870
|
+
"fpm",
|
|
1871
|
+
"pool"
|
|
1872
|
+
];
|
|
1873
|
+
/**
|
|
1874
|
+
* Throw when the configuration type is not one of cli, fpm or pool,
|
|
1875
|
+
* or when a user is given for a type other than pool.
|
|
1876
|
+
*/
|
|
1877
|
+
function assertConfigTarget(type, options) {
|
|
1878
|
+
if (!PHP_CONFIG_TYPES.includes(type)) throw new Error(`Invalid PHP config type "${type}". Valid types: ${PHP_CONFIG_TYPES.join(", ")}.`);
|
|
1879
|
+
if (options.user && type !== "pool") throw new Error(`The user option applies to the pool config only, not "${type}".`);
|
|
1880
|
+
}
|
|
1881
|
+
/**
|
|
1882
|
+
* PHP on a server — installed versions, configuration files, limits and OPcache.
|
|
1883
|
+
*
|
|
1884
|
+
* Access via `forge.server(id).php`.
|
|
1885
|
+
*
|
|
1886
|
+
* Version methods take the PHP version ID from `list()`.
|
|
1887
|
+
*
|
|
1888
|
+
* @example
|
|
1889
|
+
* ```ts
|
|
1890
|
+
* const versions = await forge.server(123).php.list();
|
|
1891
|
+
* const fpm = await forge.server(123).php.config(versions[0].id, 'fpm');
|
|
1892
|
+
* await forge.server(123).php.setMaxUploadSize(64);
|
|
1893
|
+
* await forge.server(123).php.enableOpcache();
|
|
1894
|
+
* ```
|
|
1895
|
+
*/
|
|
1896
|
+
var PhpResource = class extends BaseCollection {
|
|
1897
|
+
serverId;
|
|
1898
|
+
/** @internal */
|
|
1899
|
+
constructor(client, orgSlug, serverId) {
|
|
1900
|
+
super(client, orgSlug);
|
|
1901
|
+
this.serverId = serverId;
|
|
1902
|
+
}
|
|
1903
|
+
get basePath() {
|
|
1904
|
+
return `/orgs/${this.orgSlug}/servers/${this.serverId}/php`;
|
|
1905
|
+
}
|
|
1906
|
+
/**
|
|
1907
|
+
* List the PHP versions installed on this server.
|
|
1908
|
+
*
|
|
1909
|
+
* @example
|
|
1910
|
+
* ```ts
|
|
1911
|
+
* const versions = await forge.server(123).php.list();
|
|
1912
|
+
* // → [{ id: 12, version: '8.3', binary_name: 'php8.3', status: 'installed', ... }]
|
|
1913
|
+
* ```
|
|
1914
|
+
*/
|
|
1915
|
+
async list(options = {}) {
|
|
1916
|
+
const query = options.cursor !== void 0 ? `?page[cursor]=${options.cursor}` : "";
|
|
1917
|
+
return unwrapListDocument$1(await this.client.get(`${this.basePath}/versions${query}`));
|
|
1918
|
+
}
|
|
1919
|
+
/**
|
|
1920
|
+
* Get one installed PHP version.
|
|
1921
|
+
*
|
|
1922
|
+
* @example
|
|
1923
|
+
* ```ts
|
|
1924
|
+
* const version = await forge.server(123).php.get(12);
|
|
1925
|
+
* ```
|
|
1926
|
+
*/
|
|
1927
|
+
async get(versionId) {
|
|
1928
|
+
return unwrapDocument$1(await this.client.get(`${this.basePath}/versions/${versionId}`));
|
|
1929
|
+
}
|
|
1930
|
+
/**
|
|
1931
|
+
* Get a PHP configuration file (cli, fpm or pool) of a version.
|
|
1932
|
+
*
|
|
1933
|
+
* @example
|
|
1934
|
+
* ```ts
|
|
1935
|
+
* const ini = await forge.server(123).php.config(12, 'fpm');
|
|
1936
|
+
* const pool = await forge.server(123).php.config(12, 'pool', { user: 'forge' });
|
|
1937
|
+
* ```
|
|
1938
|
+
*/
|
|
1939
|
+
async config(versionId, type, options = {}) {
|
|
1940
|
+
assertConfigTarget(type, options);
|
|
1941
|
+
const query = options.user ? `?user=${encodeURIComponent(options.user)}` : "";
|
|
1942
|
+
return unwrapDocument$1(await this.client.get(`${this.basePath}/versions/${versionId}/configs/${type}${query}`)).configuration;
|
|
1943
|
+
}
|
|
1944
|
+
/**
|
|
1945
|
+
* Replace a PHP configuration file (cli, fpm or pool) of a version.
|
|
1946
|
+
*
|
|
1947
|
+
* @example
|
|
1948
|
+
* ```ts
|
|
1949
|
+
* await forge.server(123).php.updateConfig(12, 'fpm', 'memory_limit = 512M\n...');
|
|
1950
|
+
* ```
|
|
1951
|
+
*/
|
|
1952
|
+
async updateConfig(versionId, type, content, options = {}) {
|
|
1953
|
+
assertConfigTarget(type, options);
|
|
1954
|
+
await this.client.put(`${this.basePath}/versions/${versionId}/configs/${type}`, {
|
|
1955
|
+
config: content,
|
|
1956
|
+
...options.user ? { user: options.user } : {}
|
|
1957
|
+
});
|
|
1958
|
+
}
|
|
1959
|
+
/**
|
|
1960
|
+
* Get the PHP max upload size, in megabytes.
|
|
1961
|
+
*
|
|
1962
|
+
* @example
|
|
1963
|
+
* ```ts
|
|
1964
|
+
* const size = await forge.server(123).php.maxUploadSize(); // → "64"
|
|
1965
|
+
* ```
|
|
1966
|
+
*/
|
|
1967
|
+
async maxUploadSize() {
|
|
1968
|
+
const response = await this.client.get(`${this.basePath}/max-upload-size`);
|
|
1969
|
+
return String(unwrapDocument$1(response).max_upload_size);
|
|
1970
|
+
}
|
|
1971
|
+
/**
|
|
1972
|
+
* Set the PHP max upload size, in megabytes.
|
|
1973
|
+
*
|
|
1974
|
+
* @example
|
|
1975
|
+
* ```ts
|
|
1976
|
+
* await forge.server(123).php.setMaxUploadSize(128);
|
|
1977
|
+
* ```
|
|
1978
|
+
*/
|
|
1979
|
+
async setMaxUploadSize(size) {
|
|
1980
|
+
await this.client.put(`${this.basePath}/max-upload-size`, { max_upload_size: size });
|
|
1981
|
+
}
|
|
1982
|
+
/**
|
|
1983
|
+
* Get the PHP max execution time, in seconds.
|
|
1984
|
+
*
|
|
1985
|
+
* @example
|
|
1986
|
+
* ```ts
|
|
1987
|
+
* const seconds = await forge.server(123).php.maxExecutionTime(); // → "60"
|
|
1988
|
+
* ```
|
|
1989
|
+
*/
|
|
1990
|
+
async maxExecutionTime() {
|
|
1991
|
+
const response = await this.client.get(`${this.basePath}/max-execution-time`);
|
|
1992
|
+
return String(unwrapDocument$1(response).max_execution_time);
|
|
1993
|
+
}
|
|
1994
|
+
/**
|
|
1995
|
+
* Set the PHP max execution time, in seconds.
|
|
1996
|
+
*
|
|
1997
|
+
* @example
|
|
1998
|
+
* ```ts
|
|
1999
|
+
* await forge.server(123).php.setMaxExecutionTime(120);
|
|
2000
|
+
* ```
|
|
2001
|
+
*/
|
|
2002
|
+
async setMaxExecutionTime(seconds) {
|
|
2003
|
+
await this.client.put(`${this.basePath}/max-execution-time`, { max_execution_time: seconds });
|
|
2004
|
+
}
|
|
2005
|
+
/**
|
|
2006
|
+
* Get whether OPcache is enabled.
|
|
2007
|
+
*
|
|
2008
|
+
* @example
|
|
2009
|
+
* ```ts
|
|
2010
|
+
* const enabled = await forge.server(123).php.opcache(); // → true
|
|
2011
|
+
* ```
|
|
2012
|
+
*/
|
|
2013
|
+
async opcache() {
|
|
2014
|
+
return unwrapDocument$1(await this.client.get(`${this.basePath}/opcache`)).opcache_enabled;
|
|
2015
|
+
}
|
|
2016
|
+
/**
|
|
2017
|
+
* Enable OPcache.
|
|
2018
|
+
*
|
|
2019
|
+
* @example
|
|
2020
|
+
* ```ts
|
|
2021
|
+
* await forge.server(123).php.enableOpcache();
|
|
2022
|
+
* ```
|
|
2023
|
+
*/
|
|
2024
|
+
async enableOpcache() {
|
|
2025
|
+
await this.client.post(`${this.basePath}/opcache`);
|
|
2026
|
+
}
|
|
2027
|
+
/**
|
|
2028
|
+
* Disable OPcache.
|
|
2029
|
+
*
|
|
2030
|
+
* @example
|
|
2031
|
+
* ```ts
|
|
2032
|
+
* await forge.server(123).php.disableOpcache();
|
|
2033
|
+
* ```
|
|
2034
|
+
*/
|
|
2035
|
+
async disableOpcache() {
|
|
2036
|
+
await this.client.delete(`${this.basePath}/opcache`);
|
|
2037
|
+
}
|
|
2038
|
+
};
|
|
2039
|
+
//#endregion
|
|
1743
2040
|
//#region src/resources/servers.ts
|
|
1744
2041
|
/**
|
|
1745
2042
|
* Collection of servers.
|
|
@@ -1933,6 +2230,10 @@ var ServerResource = class extends BaseCollection {
|
|
|
1933
2230
|
sshKeys;
|
|
1934
2231
|
/** Nginx templates on this server. */
|
|
1935
2232
|
nginxTemplates;
|
|
2233
|
+
/** Services (nginx, php, mysql, etc.) on this server. */
|
|
2234
|
+
services;
|
|
2235
|
+
/** PHP versions, configuration files, limits and OPcache on this server. */
|
|
2236
|
+
php;
|
|
1936
2237
|
/** @internal */
|
|
1937
2238
|
constructor(client, orgSlug, serverId) {
|
|
1938
2239
|
super(client, orgSlug);
|
|
@@ -1947,6 +2248,8 @@ var ServerResource = class extends BaseCollection {
|
|
|
1947
2248
|
this.firewallRules = new FirewallRulesCollection(client, orgSlug, serverId);
|
|
1948
2249
|
this.sshKeys = new SshKeysCollection(client, orgSlug, serverId);
|
|
1949
2250
|
this.nginxTemplates = new NginxTemplatesCollection(client, orgSlug, serverId);
|
|
2251
|
+
this.services = new ServicesCollection(client, orgSlug, serverId);
|
|
2252
|
+
this.php = new PhpResource(client, orgSlug, serverId);
|
|
1950
2253
|
}
|
|
1951
2254
|
/**
|
|
1952
2255
|
* Access a specific site on this server, with nested resources.
|
|
@@ -2207,6 +2510,6 @@ var Forge = class {
|
|
|
2207
2510
|
}
|
|
2208
2511
|
};
|
|
2209
2512
|
//#endregion
|
|
2210
|
-
export { AsyncPaginatedIterator, BackupsCollection, BaseCollection, CertificatesCollection, CommandsCollection, DaemonsCollection, DatabaseUsersCollection, DatabasesCollection, DeploymentsCollection, FirewallRulesCollection, Forge, MonitorsCollection, NginxTemplatesCollection, RecipesCollection, RedirectRulesCollection, ScheduledJobsCollection, SecurityRulesCollection, ServerResource, ServersCollection, SiteEnvResource, SiteNginxResource, SiteResource, SitesCollection, SshKeysCollection, unwrapDocument, unwrapListDocument, unwrapResource };
|
|
2513
|
+
export { AsyncPaginatedIterator, BackupsCollection, BaseCollection, CertificatesCollection, CommandsCollection, DaemonsCollection, DatabaseUsersCollection, DatabasesCollection, DeploymentsCollection, FirewallRulesCollection, Forge, MonitorsCollection, NginxTemplatesCollection, PHP_CONFIG_TYPES, PhpResource, RESTARTABLE_SERVICES, RecipesCollection, RedirectRulesCollection, ScheduledJobsCollection, SecurityRulesCollection, ServerResource, ServersCollection, ServicesCollection, SiteEnvResource, SiteNginxResource, SiteResource, SitesCollection, SshKeysCollection, unwrapDocument, unwrapListDocument, unwrapResource };
|
|
2211
2514
|
|
|
2212
2515
|
//# sourceMappingURL=index.js.map
|