@sylphx/management 0.5.0 → 0.6.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/CHANGELOG.md +13 -0
- package/dist/domains.d.ts +6 -2
- package/dist/domains.d.ts.map +1 -1
- package/dist/domains.js +4 -4
- package/dist/envVars.d.ts +7 -4
- package/dist/envVars.d.ts.map +1 -1
- package/dist/envVars.js +4 -3
- package/dist/environments.d.ts.map +1 -1
- package/dist/environments.js +12 -5
- package/dist/logs.d.ts +1 -1
- package/dist/logs.d.ts.map +1 -1
- package/dist/logs.js +8 -2
- package/dist/services.d.ts +4 -1
- package/dist/services.d.ts.map +1 -1
- package/dist/services.js +6 -2
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# @sylphx/management
|
|
2
2
|
|
|
3
|
+
## 0.6.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#1019](https://github.com/SylphxAI/platform/pull/1019) [`7978a14`](https://github.com/SylphxAI/platform/commit/7978a140c6eaf146456a458aa89b943cd3989659) Thanks [@shtse8](https://github.com/shtse8)! - Fail closed when environment targeting is ambiguous across platform management APIs.
|
|
8
|
+
|
|
9
|
+
The contract, Management SDK, and CLI now preserve explicit `envId` targeting for env vars, domains, services, deployments, and logs instead of relying on `envType` defaults when a project has multiple matching environments.
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- Updated dependencies [[`7978a14`](https://github.com/SylphxAI/platform/commit/7978a140c6eaf146456a458aa89b943cd3989659)]:
|
|
14
|
+
- @sylphx/contract@0.8.0
|
|
15
|
+
|
|
3
16
|
## 0.5.0
|
|
4
17
|
|
|
5
18
|
### Minor Changes
|
package/dist/domains.d.ts
CHANGED
|
@@ -11,10 +11,14 @@ import type { Client } from './client.js';
|
|
|
11
11
|
export interface OrgScopedRequestOptions {
|
|
12
12
|
readonly orgId?: string;
|
|
13
13
|
}
|
|
14
|
-
export
|
|
15
|
-
|
|
14
|
+
export interface EnvironmentTargetRequestOptions extends OrgScopedRequestOptions {
|
|
15
|
+
readonly envId?: string;
|
|
16
|
+
}
|
|
17
|
+
export declare const list: (client: Client, projectId: string, envType?: string, options?: EnvironmentTargetRequestOptions) => Promise<DomainResult[]>;
|
|
18
|
+
export declare const create: (client: Client, projectId: string, apexDomain: string, envType?: string, options?: EnvironmentTargetRequestOptions) => Promise<DomainResult>;
|
|
16
19
|
export interface AddHostnameOpts extends Omit<AddHostnameInput, 'hostname'> {
|
|
17
20
|
readonly envType?: string;
|
|
21
|
+
readonly envId?: string;
|
|
18
22
|
}
|
|
19
23
|
export declare const addHostname: (client: Client, projectId: string, domainId: string, hostname: string, opts: AddHostnameOpts, options?: OrgScopedRequestOptions) => Promise<DomainHostname>;
|
|
20
24
|
export declare const removeHostname: (client: Client, projectId: string, domainId: string, hostnameId: string, options?: OrgScopedRequestOptions) => Promise<void>;
|
package/dist/domains.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domains.d.ts","sourceRoot":"","sources":["../src/domains.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACX,gBAAgB,EAChB,kBAAkB,EAClB,cAAc,EACd,MAAM,IAAI,YAAY,EACtB,MAAM,kBAAkB,CAAA;AAEzB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAGzC,MAAM,WAAW,uBAAuB;IACvC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CACvB;AAQD,eAAO,MAAM,IAAI,GAChB,QAAQ,MAAM,EACd,WAAW,MAAM,EACjB,gBAAsB,EACtB,UAAS,
|
|
1
|
+
{"version":3,"file":"domains.d.ts","sourceRoot":"","sources":["../src/domains.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACX,gBAAgB,EAChB,kBAAkB,EAClB,cAAc,EACd,MAAM,IAAI,YAAY,EACtB,MAAM,kBAAkB,CAAA;AAEzB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAGzC,MAAM,WAAW,uBAAuB;IACvC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,+BAAgC,SAAQ,uBAAuB;IAC/E,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CACvB;AAQD,eAAO,MAAM,IAAI,GAChB,QAAQ,MAAM,EACd,WAAW,MAAM,EACjB,gBAAsB,EACtB,UAAS,+BAAoC,KAC3C,OAAO,CAAC,YAAY,EAAE,CAMxB,CAAA;AAED,eAAO,MAAM,MAAM,GAClB,QAAQ,MAAM,EACd,WAAW,MAAM,EACjB,YAAY,MAAM,EAClB,gBAAsB,EACtB,UAAS,+BAAoC,KAC3C,OAAO,CAAC,YAAY,CAMtB,CAAA;AAED,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC;IAC1E,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,eAAO,MAAM,WAAW,GACvB,QAAQ,MAAM,EACd,WAAW,MAAM,EACjB,UAAU,MAAM,EAChB,UAAU,MAAM,EAChB,MAAM,eAAe,EACrB,UAAS,uBAA4B,KACnC,OAAO,CAAC,cAAc,CAQxB,CAAA;AAED,eAAO,MAAM,cAAc,GAC1B,QAAQ,MAAM,EACd,WAAW,MAAM,EACjB,UAAU,MAAM,EAChB,YAAY,MAAM,EAClB,UAAS,uBAA4B,KACnC,OAAO,CAAC,IAAI,CAKd,CAAA;AAID,eAAO,MAAM,aAAa,GACzB,QAAQ,MAAM,EACd,WAAW,MAAM,EACjB,UAAU,MAAM,EAChB,YAAY,MAAM,EAClB,UAAS,uBAA4B,KACnC,OAAO,CAAC,cAAc,CAMvB,CAAA;AAEF,MAAM,WAAW,eAAe;IAC/B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAClC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CACjC;AAED,eAAO,MAAM,WAAW,GACvB,QAAQ,MAAM,EACd,WAAW,MAAM,EACjB,UAAU,MAAM,EAChB,OAAO,eAAe,EACtB,UAAS,uBAA4B,KACnC,OAAO,CAAC,kBAAkB,CAM3B,CAAA;AAEF,eAAO,MAAM,UAAU,GACtB,QAAQ,MAAM,EACd,WAAW,MAAM,EACjB,UAAU,MAAM,EAChB,UAAS,uBAA4B,KACnC,OAAO,CAAC,kBAAkB,CAM3B,CAAA;AAEF,eAAO,MAAM,YAAY,GACxB,QAAQ,MAAM,EACd,WAAW,MAAM,EACjB,UAAU,MAAM,EAChB,UAAS,uBAA4B,KACnC,OAAO,CAAC,IAAI,CAMb,CAAA"}
|
package/dist/domains.js
CHANGED
|
@@ -14,22 +14,22 @@ const orgHeaders = (options = {}) => ({
|
|
|
14
14
|
export const list = (client, projectId, envType = 'production', options = {}) => {
|
|
15
15
|
const { method, path } = domainsEndpoints.list;
|
|
16
16
|
return request(client, method, interpolatePath(path, { projectId }), {
|
|
17
|
-
query: { envType },
|
|
17
|
+
query: { envType, envId: options.envId },
|
|
18
18
|
headers: orgHeaders(options),
|
|
19
19
|
});
|
|
20
20
|
};
|
|
21
21
|
export const create = (client, projectId, apexDomain, envType = 'production', options = {}) => {
|
|
22
22
|
const { method, path } = domainsEndpoints.create;
|
|
23
23
|
return request(client, method, interpolatePath(path, { projectId }), {
|
|
24
|
-
body: { apexDomain, envType },
|
|
24
|
+
body: { apexDomain, envType, envId: options.envId },
|
|
25
25
|
headers: orgHeaders(options),
|
|
26
26
|
});
|
|
27
27
|
};
|
|
28
28
|
export const addHostname = (client, projectId, domainId, hostname, opts, options = {}) => {
|
|
29
29
|
const { method, path } = domainsEndpoints.addHostname;
|
|
30
|
-
const { envType = 'production', ...body } = opts;
|
|
30
|
+
const { envType = 'production', envId, ...body } = opts;
|
|
31
31
|
return request(client, method, interpolatePath(path, { projectId, domainId }), {
|
|
32
|
-
query: { envType },
|
|
32
|
+
query: { envType, envId },
|
|
33
33
|
body: { hostname, ...body },
|
|
34
34
|
headers: orgHeaders(options),
|
|
35
35
|
});
|
package/dist/envVars.d.ts
CHANGED
|
@@ -8,13 +8,16 @@ import type { Client } from './client.js';
|
|
|
8
8
|
export interface OrgScopedRequestOptions {
|
|
9
9
|
readonly orgId?: string;
|
|
10
10
|
}
|
|
11
|
-
export
|
|
12
|
-
|
|
11
|
+
export interface EnvironmentTargetRequestOptions extends OrgScopedRequestOptions {
|
|
12
|
+
readonly envId?: string;
|
|
13
|
+
}
|
|
14
|
+
export declare const list: (client: Client, projectId: string, envType: string, options?: EnvironmentTargetRequestOptions) => Promise<EnvVar[]>;
|
|
15
|
+
export declare const set: (client: Client, projectId: string, key: string, value: string, envType: string, secret?: boolean, options?: EnvironmentTargetRequestOptions) => Promise<void>;
|
|
13
16
|
export declare const setMany: (client: Client, projectId: string, vars: ReadonlyArray<{
|
|
14
17
|
key: string;
|
|
15
18
|
value: string;
|
|
16
19
|
secret?: boolean;
|
|
17
|
-
}>, envType: string, options?:
|
|
18
|
-
declare const _delete: (client: Client, projectId: string, key: string, envType: string, options?:
|
|
20
|
+
}>, envType: string, options?: EnvironmentTargetRequestOptions) => Promise<void>;
|
|
21
|
+
declare const _delete: (client: Client, projectId: string, key: string, envType: string, options?: EnvironmentTargetRequestOptions) => Promise<void>;
|
|
19
22
|
export { _delete as delete };
|
|
20
23
|
//# sourceMappingURL=envVars.d.ts.map
|
package/dist/envVars.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"envVars.d.ts","sourceRoot":"","sources":["../src/envVars.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAE9C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAGzC,MAAM,WAAW,uBAAuB;IACvC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CACvB;AAQD,eAAO,MAAM,IAAI,GAChB,QAAQ,MAAM,EACd,WAAW,MAAM,EACjB,SAAS,MAAM,EACf,UAAS,
|
|
1
|
+
{"version":3,"file":"envVars.d.ts","sourceRoot":"","sources":["../src/envVars.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAE9C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAGzC,MAAM,WAAW,uBAAuB;IACvC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,+BAAgC,SAAQ,uBAAuB;IAC/E,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CACvB;AAQD,eAAO,MAAM,IAAI,GAChB,QAAQ,MAAM,EACd,WAAW,MAAM,EACjB,SAAS,MAAM,EACf,UAAS,+BAAoC,KAC3C,OAAO,CAAC,MAAM,EAAE,CASlB,CAAA;AAED,eAAO,MAAM,GAAG,GACf,QAAQ,MAAM,EACd,WAAW,MAAM,EACjB,KAAK,MAAM,EACX,OAAO,MAAM,EACb,SAAS,MAAM,EACf,SAAS,OAAO,EAChB,UAAS,+BAAoC,KAC3C,OAAO,CAAC,IAAI,CAUd,CAAA;AAED,eAAO,MAAM,OAAO,GACnB,QAAQ,MAAM,EACd,WAAW,MAAM,EACjB,MAAM,aAAa,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,EACrE,SAAS,MAAM,EACf,UAAS,+BAAoC,KAC3C,OAAO,CAAC,IAAI,CAMd,CAAA;AAED,QAAA,MAAM,OAAO,GACZ,QAAQ,MAAM,EACd,WAAW,MAAM,EACjB,KAAK,MAAM,EACX,SAAS,MAAM,EACf,UAAS,+BAAoC,KAC3C,OAAO,CAAC,IAAI,CAMd,CAAA;AACD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,CAAA"}
|
package/dist/envVars.js
CHANGED
|
@@ -10,7 +10,7 @@ const orgHeaders = (options = {}) => ({
|
|
|
10
10
|
});
|
|
11
11
|
export const list = async (client, projectId, envType, options = {}) => {
|
|
12
12
|
const { method, path } = envVarsEndpoints.list;
|
|
13
|
-
const res = await request(client, method, interpolatePath(path, { id: projectId }), { query: { envType }, headers: orgHeaders(options) });
|
|
13
|
+
const res = await request(client, method, interpolatePath(path, { id: projectId }), { query: { envType, envId: options.envId }, headers: orgHeaders(options) });
|
|
14
14
|
return Array.isArray(res) ? res : (res.data ?? []);
|
|
15
15
|
};
|
|
16
16
|
export const set = (client, projectId, key, value, envType, secret, options = {}) => {
|
|
@@ -18,6 +18,7 @@ export const set = (client, projectId, key, value, envType, secret, options = {}
|
|
|
18
18
|
return request(client, method, interpolatePath(path, { id: projectId }), {
|
|
19
19
|
body: {
|
|
20
20
|
envType,
|
|
21
|
+
envId: options.envId,
|
|
21
22
|
vars: [{ key, value, secret: secret ?? false }],
|
|
22
23
|
},
|
|
23
24
|
headers: orgHeaders(options),
|
|
@@ -26,14 +27,14 @@ export const set = (client, projectId, key, value, envType, secret, options = {}
|
|
|
26
27
|
export const setMany = (client, projectId, vars, envType, options = {}) => {
|
|
27
28
|
const { method, path } = envVarsEndpoints.set;
|
|
28
29
|
return request(client, method, interpolatePath(path, { id: projectId }), {
|
|
29
|
-
body: { envType, vars },
|
|
30
|
+
body: { envType, envId: options.envId, vars },
|
|
30
31
|
headers: orgHeaders(options),
|
|
31
32
|
});
|
|
32
33
|
};
|
|
33
34
|
const _delete = (client, projectId, key, envType, options = {}) => {
|
|
34
35
|
const { method, path } = envVarsEndpoints.delete;
|
|
35
36
|
return request(client, method, interpolatePath(path, { id: projectId, key }), {
|
|
36
|
-
query: { envType },
|
|
37
|
+
query: { envType, envId: options.envId },
|
|
37
38
|
headers: orgHeaders(options),
|
|
38
39
|
});
|
|
39
40
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"environments.d.ts","sourceRoot":"","sources":["../src/environments.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACX,sBAAsB,EACtB,uBAAuB,EACvB,WAAW,EACX,aAAa,EACb,sBAAsB,EACtB,MAAM,kBAAkB,CAAA;AAEzB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"environments.d.ts","sourceRoot":"","sources":["../src/environments.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACX,sBAAsB,EACtB,uBAAuB,EACvB,WAAW,EACX,aAAa,EACb,sBAAsB,EACtB,MAAM,kBAAkB,CAAA;AAEzB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAIzC,MAAM,WAAW,uBAAuB;IACvC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CACvB;AAQD,eAAO,MAAM,IAAI,GAChB,QAAQ,MAAM,EACd,WAAW,MAAM,EACjB,UAAS,uBAA4B,KACnC,OAAO,CAAC,WAAW,EAAE,CASvB,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,SAAS,GACrB,QAAQ,MAAM,EACd,WAAW,MAAM,EACjB,SAAS,MAAM,EACf,UAAS,uBAA4B,KACnC,OAAO,CAAC,MAAM,GAAG,IAAI,CAqBvB,CAAA;AAED,eAAO,MAAM,OAAO,GACnB,QAAQ,MAAM,EACd,WAAW,MAAM,EACjB,aAAa,MAAM,EACnB,aAAa,MAAM,EACnB,UAAS,uBAA4B,KACnC,OAAO,CAAC,aAAa,CAMvB,CAAA;AAED,MAAM,MAAM,WAAW,GAAG,sBAAsB,CAAA;AAChD,MAAM,MAAM,YAAY,GAAG,uBAAuB,CAAA;AAElD,eAAO,MAAM,MAAM,GAClB,QAAQ,MAAM,EACd,WAAW,MAAM,EACjB,OAAO,WAAW,EAClB,UAAS,uBAA4B,KACnC,OAAO,CAAC,YAAY,CAMtB,CAAA;AAED,MAAM,MAAM,WAAW,GAAG,sBAAsB,CAAA;AAEhD,eAAO,MAAM,MAAM,GAClB,QAAQ,MAAM,EACd,OAAO,MAAM,EACb,OAAO,WAAW,EAClB,UAAS,uBAA4B,KACnC,OAAO,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAMtC,CAAA;AAED,QAAA,MAAM,OAAO,GACZ,QAAQ,MAAM,EACd,OAAO,MAAM,EACb,UAAS,uBAA4B,KACnC,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAGlD,CAAA;AACD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,CAAA;AAE5B;;;;;GAKG;AACH,eAAO,MAAM,KAAK,GACjB,QAAQ,MAAM,EACd,aAAa,MAAM,EACnB,MAAM;IACL,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAA;IACjC,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAA;CAClC,EACD,UAAS,uBAA4B,KACnC,OAAO,CAAC,YAAY,CAIpB,CAAA"}
|
package/dist/environments.js
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* Wire shape sourced from `@sylphx/contract` (ADR-084).
|
|
5
5
|
*/
|
|
6
6
|
import { environmentsEndpoints } from '@sylphx/contract';
|
|
7
|
+
import { ApiError } from './errors.js';
|
|
7
8
|
import { interpolatePath, request } from './http.js';
|
|
8
9
|
const orgHeaders = (options = {}) => ({
|
|
9
10
|
...(options.orgId ? { 'x-preferred-org-id': options.orgId } : {}),
|
|
@@ -24,11 +25,17 @@ export const resolveId = async (client, projectId, envType, options = {}) => {
|
|
|
24
25
|
const byId = envs.find((e) => e.id === envType.trim());
|
|
25
26
|
if (byId)
|
|
26
27
|
return byId.id;
|
|
27
|
-
const byName = envs.
|
|
28
|
-
if (byName)
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
28
|
+
const byName = envs.filter((e) => (e.name ?? '').toLowerCase() === needle);
|
|
29
|
+
if (byName.length > 1) {
|
|
30
|
+
throw new ApiError(422, `Multiple active environments named '${envType}' exist for project '${projectId}'. Pass the environment id explicitly.`);
|
|
31
|
+
}
|
|
32
|
+
if (byName[0])
|
|
33
|
+
return byName[0].id;
|
|
34
|
+
const byType = envs.filter((e) => (e.envType ?? '').toLowerCase() === needle);
|
|
35
|
+
if (byType.length > 1) {
|
|
36
|
+
throw new ApiError(422, `Multiple active ${envType} environments exist for project '${projectId}'. Pass the environment id explicitly.`);
|
|
37
|
+
}
|
|
38
|
+
return byType[0]?.id ?? null;
|
|
32
39
|
};
|
|
33
40
|
export const promote = (client, projectId, targetEnvId, sourceEnvId, options = {}) => {
|
|
34
41
|
const { method, path } = environmentsEndpoints.promote;
|
package/dist/logs.d.ts
CHANGED
|
@@ -17,6 +17,6 @@ export interface ListLogsOptions {
|
|
|
17
17
|
readonly limit?: number;
|
|
18
18
|
readonly orgId?: string;
|
|
19
19
|
}
|
|
20
|
-
export declare const stream: (client: Client, projectId: string, envType: string) => LogStream;
|
|
20
|
+
export declare const stream: (client: Client, projectId: string, envType: string, options?: Pick<ListLogsOptions, "envId">) => LogStream;
|
|
21
21
|
export declare const list: (client: Client, projectId: string, options?: ListLogsOptions) => Promise<LogListResult>;
|
|
22
22
|
//# sourceMappingURL=logs.d.ts.map
|
package/dist/logs.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logs.d.ts","sourceRoot":"","sources":["../src/logs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEzC,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAE1D,MAAM,WAAW,eAAe;IAC/B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CACvB;AAQD,eAAO,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"logs.d.ts","sourceRoot":"","sources":["../src/logs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEzC,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAE1D,MAAM,WAAW,eAAe;IAC/B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CACvB;AAQD,eAAO,MAAM,MAAM,GAClB,QAAQ,MAAM,EACd,WAAW,MAAM,EACjB,SAAS,MAAM,EACf,UAAS,IAAI,CAAC,eAAe,EAAE,OAAO,CAAM,KAC1C,SAWF,CAAA;AAED,eAAO,MAAM,IAAI,GAChB,QAAQ,MAAM,EACd,WAAW,MAAM,EACjB,UAAS,eAAoB,KAC3B,OAAO,CAAC,aAAa,CASrB,CAAA"}
|
package/dist/logs.js
CHANGED
|
@@ -12,8 +12,14 @@ import { request } from './http.js';
|
|
|
12
12
|
const orgHeaders = (options = {}) => ({
|
|
13
13
|
...(options.orgId ? { 'x-preferred-org-id': options.orgId } : {}),
|
|
14
14
|
});
|
|
15
|
-
export const stream = (client, projectId, envType) => {
|
|
16
|
-
const params = new URLSearchParams({
|
|
15
|
+
export const stream = (client, projectId, envType, options = {}) => {
|
|
16
|
+
const params = new URLSearchParams({ stream: 'true', limit: '200' });
|
|
17
|
+
if (options.envId) {
|
|
18
|
+
params.set('envId', options.envId);
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
params.set('envType', envType);
|
|
22
|
+
}
|
|
17
23
|
return {
|
|
18
24
|
url: `${client.apiBase}/projects/${encodeURIComponent(projectId)}/logs?${params.toString()}`,
|
|
19
25
|
token: client.token,
|
package/dist/services.d.ts
CHANGED
|
@@ -4,6 +4,9 @@ import type { DeployResult, Service } from './types.js';
|
|
|
4
4
|
export interface OrgScopedRequestOptions {
|
|
5
5
|
readonly orgId?: string;
|
|
6
6
|
}
|
|
7
|
+
export interface ServiceDeployOptions extends OrgScopedRequestOptions {
|
|
8
|
+
readonly envId?: string;
|
|
9
|
+
}
|
|
7
10
|
export interface ServiceUpdateInput {
|
|
8
11
|
readonly githubRepo?: string | null;
|
|
9
12
|
readonly githubBranch?: string | null;
|
|
@@ -18,7 +21,7 @@ export declare const list: (client: Client, projectId: string, options?: OrgScop
|
|
|
18
21
|
export declare const get: (client: Client, projectId: string, name: string, options?: OrgScopedRequestOptions) => Promise<Service>;
|
|
19
22
|
export declare const update: (client: Client, projectId: string, name: string, input: ServiceUpdateInput, options?: OrgScopedRequestOptions) => Promise<Service>;
|
|
20
23
|
/** Deploy a specific service — resolves envType → environmentId first. */
|
|
21
|
-
export declare const deploy: (client: Client, projectId: string, name: string, envType: string, options?:
|
|
24
|
+
export declare const deploy: (client: Client, projectId: string, name: string, envType: string, options?: ServiceDeployOptions) => Promise<DeployResult>;
|
|
22
25
|
declare const _delete: (client: Client, projectId: string, name: string, options?: OrgScopedRequestOptions) => Promise<void>;
|
|
23
26
|
export { _delete as delete };
|
|
24
27
|
//# sourceMappingURL=services.d.ts.map
|
package/dist/services.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../src/services.ts"],"names":[],"mappings":"AAAA,oEAAoE;AAEpE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../src/services.ts"],"names":[],"mappings":"AAAA,oEAAoE;AAEpE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAIzC,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEvD,MAAM,WAAW,uBAAuB;IACvC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,oBAAqB,SAAQ,uBAAuB;IACpE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,kBAAkB;IAClC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACnC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACrC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACvC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACrC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACrC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAC3B;AAED,eAAO,MAAM,IAAI,GAChB,QAAQ,MAAM,EACd,WAAW,MAAM,EACjB,UAAS,uBAA4B,KACnC,OAAO,CAAC,OAAO,EAAE,CAQnB,CAAA;AAED,eAAO,MAAM,GAAG,GACf,QAAQ,MAAM,EACd,WAAW,MAAM,EACjB,MAAM,MAAM,EACZ,UAAS,uBAA4B,KACnC,OAAO,CAAC,OAAO,CAMhB,CAAA;AAEF,eAAO,MAAM,MAAM,GAClB,QAAQ,MAAM,EACd,WAAW,MAAM,EACjB,MAAM,MAAM,EACZ,OAAO,kBAAkB,EACzB,UAAS,uBAA4B,KACnC,OAAO,CAAC,OAAO,CAShB,CAAA;AAEF,0EAA0E;AAC1E,eAAO,MAAM,MAAM,GAClB,QAAQ,MAAM,EACd,WAAW,MAAM,EACjB,MAAM,MAAM,EACZ,SAAS,MAAM,EACf,UAAS,oBAAyB,KAChC,OAAO,CAAC,YAAY,CActB,CAAA;AAED,QAAA,MAAM,OAAO,GACZ,QAAQ,MAAM,EACd,WAAW,MAAM,EACjB,MAAM,MAAM,EACZ,UAAS,uBAA4B,KACnC,OAAO,CAAC,IAAI,CAMb,CAAA;AACF,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,CAAA"}
|
package/dist/services.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/** Per-project services — list / get / update / deploy / delete. */
|
|
2
2
|
import { resolveId as resolveEnvId } from './environments.js';
|
|
3
|
+
import { ApiError } from './errors.js';
|
|
3
4
|
import { request } from './http.js';
|
|
4
5
|
export const list = async (client, projectId, options = {}) => {
|
|
5
6
|
const res = await request(client, 'GET', `/projects/${encodeURIComponent(projectId)}/services`, { headers: { 'x-preferred-org-id': options.orgId } });
|
|
@@ -12,9 +13,12 @@ export const update = (client, projectId, name, input, options = {}) => request(
|
|
|
12
13
|
});
|
|
13
14
|
/** Deploy a specific service — resolves envType → environmentId first. */
|
|
14
15
|
export const deploy = async (client, projectId, name, envType, options = {}) => {
|
|
15
|
-
const environmentId = await resolveEnvId(client, projectId, envType, options);
|
|
16
|
+
const environmentId = options.envId ?? (await resolveEnvId(client, projectId, envType, options));
|
|
17
|
+
if (!environmentId) {
|
|
18
|
+
throw new ApiError(404, `Environment '${envType}' not found`);
|
|
19
|
+
}
|
|
16
20
|
return request(client, 'POST', `/projects/${encodeURIComponent(projectId)}/services/${encodeURIComponent(name)}/deploy`, {
|
|
17
|
-
body:
|
|
21
|
+
body: { environmentId },
|
|
18
22
|
headers: { 'x-preferred-org-id': options.orgId },
|
|
19
23
|
});
|
|
20
24
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sylphx/management",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.0",
|
|
4
4
|
"description": "Sylphx Management SDK — pure-FP Promise client for the Sylphx Platform Management API. 55+ namespaces covering the full PaaS surface (ADR-089 Phase 4b 100% coverage), types derived from @sylphx/contract (Effect Schema SSOT).",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -205,7 +205,7 @@
|
|
|
205
205
|
"prepublishOnly": "bun run build"
|
|
206
206
|
},
|
|
207
207
|
"dependencies": {
|
|
208
|
-
"@sylphx/contract": "0.
|
|
208
|
+
"@sylphx/contract": "0.8.0"
|
|
209
209
|
},
|
|
210
210
|
"files": [
|
|
211
211
|
"dist",
|