@sylphx/management 0.2.2 → 0.3.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 +18 -4
- package/README.md +11 -9
- package/dist/adminBranchDatabases.d.ts +13 -0
- package/dist/adminBranchDatabases.d.ts.map +1 -0
- package/dist/adminBranchDatabases.js +17 -0
- package/dist/adminProjectCredentials.d.ts +6 -5
- package/dist/adminProjectCredentials.d.ts.map +1 -1
- package/dist/adminProjectCredentials.js +3 -2
- package/dist/billing.d.ts +10 -7
- package/dist/billing.d.ts.map +1 -1
- package/dist/billing.js +23 -7
- package/dist/databases.js +5 -5
- package/dist/deployments.d.ts +14 -7
- package/dist/deployments.d.ts.map +1 -1
- package/dist/deployments.js +43 -8
- package/dist/domains.d.ts +11 -8
- package/dist/domains.d.ts.map +1 -1
- package/dist/domains.js +17 -9
- package/dist/envVars.d.ts +7 -4
- package/dist/envVars.d.ts.map +1 -1
- package/dist/envVars.js +11 -5
- package/dist/environments.d.ts +10 -7
- package/dist/environments.d.ts.map +1 -1
- package/dist/environments.js +22 -11
- package/dist/http.d.ts +5 -0
- package/dist/http.d.ts.map +1 -1
- package/dist/http.js +12 -2
- package/dist/index.d.ts +4 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/logs.d.ts +9 -1
- package/dist/logs.d.ts.map +1 -1
- package/dist/logs.js +13 -0
- package/dist/principal.d.ts +11 -0
- package/dist/principal.d.ts.map +1 -0
- package/dist/principal.js +13 -0
- package/dist/projects.d.ts +4 -1
- package/dist/projects.d.ts.map +1 -1
- package/dist/projects.js +7 -2
- package/dist/remoteConfig.d.ts +7 -4
- package/dist/remoteConfig.d.ts.map +1 -1
- package/dist/remoteConfig.js +17 -13
- package/dist/resourceBindings.d.ts +3 -3
- package/dist/resourceBindings.d.ts.map +1 -1
- package/dist/resourceBindings.js +10 -4
- package/dist/resources.d.ts +3 -3
- package/dist/resources.d.ts.map +1 -1
- package/dist/sandboxes.d.ts +5 -2
- package/dist/sandboxes.d.ts.map +1 -1
- package/dist/sandboxes.js +9 -3
- package/dist/services.d.ts +19 -5
- package/dist/services.d.ts.map +1 -1
- package/dist/services.js +15 -8
- package/dist/tasks.d.ts +8 -5
- package/dist/tasks.d.ts.map +1 -1
- package/dist/tasks.js +15 -12
- package/dist/types.d.ts +20 -44
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +2 -3
- package/package.json +6 -6
- package/dist/edgeDeployments.d.ts +0 -43
- package/dist/edgeDeployments.d.ts.map +0 -1
- package/dist/edgeDeployments.js +0 -32
- package/dist/functions.d.ts +0 -39
- package/dist/functions.d.ts.map +0 -1
- package/dist/functions.js +0 -40
package/dist/envVars.d.ts
CHANGED
|
@@ -5,13 +5,16 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import type { EnvVar } from '@sylphx/contract';
|
|
7
7
|
import type { Client } from './client.js';
|
|
8
|
-
export
|
|
9
|
-
|
|
8
|
+
export interface OrgScopedRequestOptions {
|
|
9
|
+
readonly orgId?: string;
|
|
10
|
+
}
|
|
11
|
+
export declare const list: (client: Client, projectId: string, envType: string, options?: OrgScopedRequestOptions) => Promise<EnvVar[]>;
|
|
12
|
+
export declare const set: (client: Client, projectId: string, key: string, value: string, envType: string, secret?: boolean, options?: OrgScopedRequestOptions) => Promise<void>;
|
|
10
13
|
export declare const setMany: (client: Client, projectId: string, vars: ReadonlyArray<{
|
|
11
14
|
key: string;
|
|
12
15
|
value: string;
|
|
13
16
|
secret?: boolean;
|
|
14
|
-
}>, envType: string) => Promise<void>;
|
|
15
|
-
declare const _delete: (client: Client, projectId: string, key: string, envType: string) => Promise<void>;
|
|
17
|
+
}>, envType: string, options?: OrgScopedRequestOptions) => Promise<void>;
|
|
18
|
+
declare const _delete: (client: Client, projectId: string, key: string, envType: string, options?: OrgScopedRequestOptions) => Promise<void>;
|
|
16
19
|
export { _delete as delete };
|
|
17
20
|
//# 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,eAAO,MAAM,IAAI,GAChB,QAAQ,MAAM,EACd,WAAW,MAAM,EACjB,SAAS,MAAM,
|
|
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,uBAA4B,KACnC,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,uBAA4B,KACnC,OAAO,CAAC,IAAI,CASd,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,uBAA4B,KACnC,OAAO,CAAC,IAAI,CAMd,CAAA;AAED,QAAA,MAAM,OAAO,GACZ,QAAQ,MAAM,EACd,WAAW,MAAM,EACjB,KAAK,MAAM,EACX,SAAS,MAAM,EACf,UAAS,uBAA4B,KACnC,OAAO,CAAC,IAAI,CAMd,CAAA;AACD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,CAAA"}
|
package/dist/envVars.js
CHANGED
|
@@ -5,30 +5,36 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { envVarsEndpoints } from '@sylphx/contract';
|
|
7
7
|
import { interpolatePath, request } from './http.js';
|
|
8
|
-
|
|
8
|
+
const orgHeaders = (options = {}) => ({
|
|
9
|
+
...(options.orgId ? { 'x-preferred-org-id': options.orgId } : {}),
|
|
10
|
+
});
|
|
11
|
+
export const list = async (client, projectId, envType, options = {}) => {
|
|
9
12
|
const { method, path } = envVarsEndpoints.list;
|
|
10
|
-
const res = await request(client, method, interpolatePath(path, { id: projectId }), { query: { envType } });
|
|
13
|
+
const res = await request(client, method, interpolatePath(path, { id: projectId }), { query: { envType }, headers: orgHeaders(options) });
|
|
11
14
|
return Array.isArray(res) ? res : (res.data ?? []);
|
|
12
15
|
};
|
|
13
|
-
export const set = (client, projectId, key, value, envType, secret) => {
|
|
16
|
+
export const set = (client, projectId, key, value, envType, secret, options = {}) => {
|
|
14
17
|
const { method, path } = envVarsEndpoints.set;
|
|
15
18
|
return request(client, method, interpolatePath(path, { id: projectId }), {
|
|
16
19
|
body: {
|
|
17
20
|
envType,
|
|
18
21
|
vars: [{ key, value, secret: secret ?? false }],
|
|
19
22
|
},
|
|
23
|
+
headers: orgHeaders(options),
|
|
20
24
|
});
|
|
21
25
|
};
|
|
22
|
-
export const setMany = (client, projectId, vars, envType) => {
|
|
26
|
+
export const setMany = (client, projectId, vars, envType, options = {}) => {
|
|
23
27
|
const { method, path } = envVarsEndpoints.set;
|
|
24
28
|
return request(client, method, interpolatePath(path, { id: projectId }), {
|
|
25
29
|
body: { envType, vars },
|
|
30
|
+
headers: orgHeaders(options),
|
|
26
31
|
});
|
|
27
32
|
};
|
|
28
|
-
const _delete = (client, projectId, key, envType) => {
|
|
33
|
+
const _delete = (client, projectId, key, envType, options = {}) => {
|
|
29
34
|
const { method, path } = envVarsEndpoints.delete;
|
|
30
35
|
return request(client, method, interpolatePath(path, { id: projectId, key }), {
|
|
31
36
|
query: { envType },
|
|
37
|
+
headers: orgHeaders(options),
|
|
32
38
|
});
|
|
33
39
|
};
|
|
34
40
|
export { _delete as delete };
|
package/dist/environments.d.ts
CHANGED
|
@@ -5,23 +5,26 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import type { CreateEnvironmentInput, CreateEnvironmentResult, Environment, PromoteResult, UpdateEnvironmentInput } from '@sylphx/contract';
|
|
7
7
|
import type { Client } from './client.js';
|
|
8
|
-
export
|
|
8
|
+
export interface OrgScopedRequestOptions {
|
|
9
|
+
readonly orgId?: string;
|
|
10
|
+
}
|
|
11
|
+
export declare const list: (client: Client, projectId: string, options?: OrgScopedRequestOptions) => Promise<Environment[]>;
|
|
9
12
|
/**
|
|
10
13
|
* Resolve an environment name ("production" / "alice-demo") → envId for the
|
|
11
14
|
* given project. Matches on `name` first, then `envType` (legacy enum).
|
|
12
15
|
* Returns null if not found.
|
|
13
16
|
*/
|
|
14
|
-
export declare const resolveId: (client: Client, projectId: string, envType: string) => Promise<string | null>;
|
|
15
|
-
export declare const promote: (client: Client, projectId: string, targetEnvId: string, sourceEnvId: string) => Promise<PromoteResult>;
|
|
17
|
+
export declare const resolveId: (client: Client, projectId: string, envType: string, options?: OrgScopedRequestOptions) => Promise<string | null>;
|
|
18
|
+
export declare const promote: (client: Client, projectId: string, targetEnvId: string, sourceEnvId: string, options?: OrgScopedRequestOptions) => Promise<PromoteResult>;
|
|
16
19
|
export type CreateInput = CreateEnvironmentInput;
|
|
17
20
|
export type CreateResult = CreateEnvironmentResult;
|
|
18
|
-
export declare const create: (client: Client, projectId: string, input: CreateInput) => Promise<CreateResult>;
|
|
21
|
+
export declare const create: (client: Client, projectId: string, input: CreateInput, options?: OrgScopedRequestOptions) => Promise<CreateResult>;
|
|
19
22
|
export type UpdateInput = UpdateEnvironmentInput;
|
|
20
|
-
export declare const update: (client: Client, envId: string, input: UpdateInput) => Promise<{
|
|
23
|
+
export declare const update: (client: Client, envId: string, input: UpdateInput, options?: OrgScopedRequestOptions) => Promise<{
|
|
21
24
|
id: string;
|
|
22
25
|
name: string;
|
|
23
26
|
}>;
|
|
24
|
-
declare const _delete: (client: Client, envId: string) => Promise<{
|
|
27
|
+
declare const _delete: (client: Client, envId: string, options?: OrgScopedRequestOptions) => Promise<{
|
|
25
28
|
success: boolean;
|
|
26
29
|
lifecycle?: string;
|
|
27
30
|
}>;
|
|
@@ -37,5 +40,5 @@ export declare const clone: (client: Client, sourceEnvId: string, body: {
|
|
|
37
40
|
readonly envType?: string;
|
|
38
41
|
readonly includeSecrets?: boolean;
|
|
39
42
|
readonly includeDatabase?: boolean;
|
|
40
|
-
}) => Promise<CreateResult>;
|
|
43
|
+
}, options?: OrgScopedRequestOptions) => Promise<CreateResult>;
|
|
41
44
|
//# sourceMappingURL=environments.d.ts.map
|
|
@@ -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;AAGzC,eAAO,MAAM,IAAI,
|
|
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;AAGzC,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,CAOvB,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
|
@@ -5,9 +5,12 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { environmentsEndpoints } from '@sylphx/contract';
|
|
7
7
|
import { interpolatePath, request } from './http.js';
|
|
8
|
-
|
|
8
|
+
const orgHeaders = (options = {}) => ({
|
|
9
|
+
...(options.orgId ? { 'x-preferred-org-id': options.orgId } : {}),
|
|
10
|
+
});
|
|
11
|
+
export const list = async (client, projectId, options = {}) => {
|
|
9
12
|
const { method, path } = environmentsEndpoints.list;
|
|
10
|
-
const res = await request(client, method, interpolatePath(path, { id: projectId }));
|
|
13
|
+
const res = await request(client, method, interpolatePath(path, { id: projectId }), { headers: orgHeaders(options) });
|
|
11
14
|
return Array.isArray(res) ? res : (res.data ?? []);
|
|
12
15
|
};
|
|
13
16
|
/**
|
|
@@ -15,8 +18,8 @@ export const list = async (client, projectId) => {
|
|
|
15
18
|
* given project. Matches on `name` first, then `envType` (legacy enum).
|
|
16
19
|
* Returns null if not found.
|
|
17
20
|
*/
|
|
18
|
-
export const resolveId = async (client, projectId, envType) => {
|
|
19
|
-
const envs = await list(client, projectId);
|
|
21
|
+
export const resolveId = async (client, projectId, envType, options = {}) => {
|
|
22
|
+
const envs = await list(client, projectId, options);
|
|
20
23
|
const needle = envType.toLowerCase();
|
|
21
24
|
const byName = envs.find((e) => (e.name ?? '').toLowerCase() === needle);
|
|
22
25
|
if (byName)
|
|
@@ -24,25 +27,30 @@ export const resolveId = async (client, projectId, envType) => {
|
|
|
24
27
|
const byType = envs.find((e) => (e.envType ?? '').toLowerCase() === needle);
|
|
25
28
|
return byType?.id ?? null;
|
|
26
29
|
};
|
|
27
|
-
export const promote = (client, projectId, targetEnvId, sourceEnvId) => {
|
|
30
|
+
export const promote = (client, projectId, targetEnvId, sourceEnvId, options = {}) => {
|
|
28
31
|
const { method, path } = environmentsEndpoints.promote;
|
|
29
32
|
return request(client, method, interpolatePath(path, { id: projectId, envId: targetEnvId }), {
|
|
30
33
|
body: { sourceEnvId },
|
|
34
|
+
headers: orgHeaders(options),
|
|
31
35
|
});
|
|
32
36
|
};
|
|
33
|
-
export const create = (client, projectId, input) => {
|
|
37
|
+
export const create = (client, projectId, input, options = {}) => {
|
|
34
38
|
const { method, path } = environmentsEndpoints.createStandalone;
|
|
35
39
|
return request(client, method, path, {
|
|
36
40
|
body: { projectId, envType: input.envType ?? 'staging', ...input },
|
|
41
|
+
headers: orgHeaders(options),
|
|
37
42
|
});
|
|
38
43
|
};
|
|
39
|
-
export const update = (client, envId, input) => {
|
|
44
|
+
export const update = (client, envId, input, options = {}) => {
|
|
40
45
|
const { method, path } = environmentsEndpoints.update;
|
|
41
|
-
return request(client, method, interpolatePath(path, { envId }), {
|
|
46
|
+
return request(client, method, interpolatePath(path, { envId }), {
|
|
47
|
+
body: input,
|
|
48
|
+
headers: orgHeaders(options),
|
|
49
|
+
});
|
|
42
50
|
};
|
|
43
|
-
const _delete = (client, envId) => {
|
|
51
|
+
const _delete = (client, envId, options = {}) => {
|
|
44
52
|
const { method, path } = environmentsEndpoints.delete;
|
|
45
|
-
return request(client, method, interpolatePath(path, { envId }));
|
|
53
|
+
return request(client, method, interpolatePath(path, { envId }), { headers: orgHeaders(options) });
|
|
46
54
|
};
|
|
47
55
|
export { _delete as delete };
|
|
48
56
|
/**
|
|
@@ -51,4 +59,7 @@ export { _delete as delete };
|
|
|
51
59
|
* Phase 4b Matrix-2 gap closure — replaces ad-hoc "duplicate then tweak"
|
|
52
60
|
* UX flows.
|
|
53
61
|
*/
|
|
54
|
-
export const clone = (client, sourceEnvId, body) => request(client, 'POST', `/environments/${encodeURIComponent(sourceEnvId)}/clone`, {
|
|
62
|
+
export const clone = (client, sourceEnvId, body, options = {}) => request(client, 'POST', `/environments/${encodeURIComponent(sourceEnvId)}/clone`, {
|
|
63
|
+
body,
|
|
64
|
+
headers: orgHeaders(options),
|
|
65
|
+
});
|
package/dist/http.d.ts
CHANGED
|
@@ -17,6 +17,11 @@ import type { Client } from './client.js';
|
|
|
17
17
|
export interface RequestOptions {
|
|
18
18
|
readonly body?: unknown;
|
|
19
19
|
readonly query?: Readonly<Record<string, string | undefined>>;
|
|
20
|
+
/**
|
|
21
|
+
* Extra request headers for capability modules that need per-call scoping.
|
|
22
|
+
* Undefined values are skipped so callers can pass optional selectors directly.
|
|
23
|
+
*/
|
|
24
|
+
readonly headers?: Readonly<Record<string, string | undefined>>;
|
|
20
25
|
/**
|
|
21
26
|
* Explicit Idempotency-Key. When omitted on a mutating method, the
|
|
22
27
|
* SDK auto-generates a fresh UUID v4 per call so accidental
|
package/dist/http.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAMzC,MAAM,WAAW,cAAc;IAC9B,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAA;IAC7D;;;;;;;;;;;;;;;;OAgBG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CACvC;
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAMzC,MAAM,WAAW,cAAc;IAC9B,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAA;IAC7D;;;OAGG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAA;IAC/D;;;;;;;;;;;;;;;;OAgBG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CACvC;AAqBD;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,MAAM,CAO9F;AAED,wBAAsB,OAAO,CAAC,CAAC,EAC9B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,cAAc,GACnB,OAAO,CAAC,CAAC,CAAC,CA8DZ"}
|
package/dist/http.js
CHANGED
|
@@ -25,6 +25,14 @@ const MUTATING_METHODS = new Set(['POST', 'PUT', 'PATCH', 'DELETE']);
|
|
|
25
25
|
function newIdempotencyKey() {
|
|
26
26
|
return crypto.randomUUID();
|
|
27
27
|
}
|
|
28
|
+
function setHeader(headers, key, value) {
|
|
29
|
+
if (value === undefined)
|
|
30
|
+
return;
|
|
31
|
+
const existingKey = Object.keys(headers).find((candidate) => candidate.toLowerCase() === key.toLowerCase());
|
|
32
|
+
if (existingKey)
|
|
33
|
+
delete headers[existingKey];
|
|
34
|
+
headers[key] = value;
|
|
35
|
+
}
|
|
28
36
|
/**
|
|
29
37
|
* Substitute `:param` tokens in a contract-sourced path with URL-encoded
|
|
30
38
|
* values. Throws if any token is missing from `params` — the SDK should
|
|
@@ -55,8 +63,10 @@ export async function request(client, method, path, opts) {
|
|
|
55
63
|
Accept: 'application/json',
|
|
56
64
|
'User-Agent': client.userAgent,
|
|
57
65
|
};
|
|
58
|
-
|
|
59
|
-
|
|
66
|
+
setHeader(headers, 'X-Preferred-Org-Id', client.preferredOrgId);
|
|
67
|
+
for (const [key, value] of Object.entries(opts?.headers ?? {})) {
|
|
68
|
+
setHeader(headers, key, value);
|
|
69
|
+
}
|
|
60
70
|
// Only send Content-Type when we actually have a body to describe.
|
|
61
71
|
// Some strict proxies (Cloudflare in non-standard modes, certain
|
|
62
72
|
// WAFs) reject GET / DELETE requests carrying a bodyless Content-Type.
|
package/dist/index.d.ts
CHANGED
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
*/
|
|
18
18
|
export * as admin from './admin.js';
|
|
19
19
|
export * as adminBootstrap from './adminBootstrap.js';
|
|
20
|
+
export * as adminBranchDatabases from './adminBranchDatabases.js';
|
|
20
21
|
export * as adminBuilds from './adminBuilds.js';
|
|
21
22
|
export * as adminEnvServices from './adminEnvServices.js';
|
|
22
23
|
export * as adminProjectCredentials from './adminProjectCredentials.js';
|
|
@@ -39,9 +40,9 @@ export type { Client, ClientOptions } from './client.js';
|
|
|
39
40
|
export { createClient } from './client.js';
|
|
40
41
|
export * as consent from './consent.js';
|
|
41
42
|
export * as databases from './databases.js';
|
|
43
|
+
export type { DeploymentHistoryRow, RollbackResult } from './deployments.js';
|
|
42
44
|
export * as deployments from './deployments.js';
|
|
43
45
|
export * as domains from './domains.js';
|
|
44
|
-
export * as edgeDeployments from './edgeDeployments.js';
|
|
45
46
|
export * as email from './email.js';
|
|
46
47
|
export * as engagement from './engagement.js';
|
|
47
48
|
export * as environments from './environments.js';
|
|
@@ -49,7 +50,6 @@ export * as envVars from './envVars.js';
|
|
|
49
50
|
export { ApiError } from './errors.js';
|
|
50
51
|
export * as experiments from './experiments.js';
|
|
51
52
|
export * as flags from './flags.js';
|
|
52
|
-
export * as functions from './functions.js';
|
|
53
53
|
export * as github from './github.js';
|
|
54
54
|
export * as kv from './kv.js';
|
|
55
55
|
export * as logs from './logs.js';
|
|
@@ -60,6 +60,7 @@ export * as notifications from './notifications.js';
|
|
|
60
60
|
export * as oidc from './oidc.js';
|
|
61
61
|
export * as organizations from './organizations.js';
|
|
62
62
|
export * as plans from './plans.js';
|
|
63
|
+
export * as principal from './principal.js';
|
|
63
64
|
export * as privacy from './privacy.js';
|
|
64
65
|
export * as projects from './projects.js';
|
|
65
66
|
export * as realtime from './realtime.js';
|
|
@@ -80,7 +81,7 @@ export * as serviceTokens from './serviceTokens.js';
|
|
|
80
81
|
export * as sessionReplay from './sessionReplay.js';
|
|
81
82
|
export * as storage from './storage.js';
|
|
82
83
|
export * as tasks from './tasks.js';
|
|
83
|
-
export type { App, ConfigEntry, Database, DeploymentStatus, DeploymentStatusEnv, DeployResult, DnsRecord, Domain, DomainEmailBinding, DomainHostname, DomainResult, Environment, EnvVar, HostnameInstruction, LogEntry, LogStream, Org, OrgMember, Project, PromoteResult, ResourceBinding, Sandbox, SandboxCreateResult, SandboxSummary, Service, StorageResource,
|
|
84
|
+
export type { App, AuthenticatedPrincipal, ConfigEntry, Database, DeploymentStatus, DeploymentStatusEnv, DeployResult, DnsRecord, Domain, DomainEmailBinding, DomainHostname, DomainResult, Environment, EnvVar, HostnameInstruction, LogEntry, LogStream, Org, OrgMember, Project, PromoteResult, ResourceBinding, Sandbox, SandboxCreateResult, SandboxSummary, Service, StorageResource, Task, Volume, WhoAmI, } from './types.js';
|
|
84
85
|
export * as user from './user.js';
|
|
85
86
|
export * as users from './users.js';
|
|
86
87
|
export * as volumes from './volumes.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AACrD,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAC/C,OAAO,KAAK,gBAAgB,MAAM,uBAAuB,CAAA;AACzD,OAAO,KAAK,uBAAuB,MAAM,8BAA8B,CAAA;AACvE,OAAO,KAAK,eAAe,MAAM,sBAAsB,CAAA;AACvD,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AACrD,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AACrD,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AACjD,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AACjD,OAAO,KAAK,EAAE,MAAM,SAAS,CAAA;AAC7B,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAC3C,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AACjD,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,eAAe,MAAM,sBAAsB,CAAA;AACvD,OAAO,KAAK,eAAe,MAAM,sBAAsB,CAAA;AACvD,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAC7C,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAExD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAC3C,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
// Capability namespaces — tree-shakable when consumers use subpath imports
|
|
19
19
|
export * as admin from './admin.js';
|
|
20
20
|
export * as adminBootstrap from './adminBootstrap.js';
|
|
21
|
+
export * as adminBranchDatabases from './adminBranchDatabases.js';
|
|
21
22
|
export * as adminBuilds from './adminBuilds.js';
|
|
22
23
|
export * as adminEnvServices from './adminEnvServices.js';
|
|
23
24
|
export * as adminProjectCredentials from './adminProjectCredentials.js';
|
|
@@ -42,7 +43,6 @@ export * as consent from './consent.js';
|
|
|
42
43
|
export * as databases from './databases.js';
|
|
43
44
|
export * as deployments from './deployments.js';
|
|
44
45
|
export * as domains from './domains.js';
|
|
45
|
-
export * as edgeDeployments from './edgeDeployments.js';
|
|
46
46
|
export * as email from './email.js';
|
|
47
47
|
export * as engagement from './engagement.js';
|
|
48
48
|
export * as environments from './environments.js';
|
|
@@ -51,7 +51,6 @@ export * as envVars from './envVars.js';
|
|
|
51
51
|
export { ApiError } from './errors.js';
|
|
52
52
|
export * as experiments from './experiments.js';
|
|
53
53
|
export * as flags from './flags.js';
|
|
54
|
-
export * as functions from './functions.js';
|
|
55
54
|
export * as github from './github.js';
|
|
56
55
|
export * as kv from './kv.js';
|
|
57
56
|
export * as logs from './logs.js';
|
|
@@ -62,6 +61,7 @@ export * as notifications from './notifications.js';
|
|
|
62
61
|
export * as oidc from './oidc.js';
|
|
63
62
|
export * as organizations from './organizations.js';
|
|
64
63
|
export * as plans from './plans.js';
|
|
64
|
+
export * as principal from './principal.js';
|
|
65
65
|
export * as privacy from './privacy.js';
|
|
66
66
|
export * as projects from './projects.js';
|
|
67
67
|
export * as realtime from './realtime.js';
|
package/dist/logs.d.ts
CHANGED
|
@@ -9,6 +9,14 @@
|
|
|
9
9
|
* handshakes look.
|
|
10
10
|
*/
|
|
11
11
|
import type { Client } from './client.js';
|
|
12
|
-
import type { LogStream } from './types.js';
|
|
12
|
+
import type { LogListResult, LogStream } from './types.js';
|
|
13
|
+
export interface ListLogsOptions {
|
|
14
|
+
readonly envType?: string;
|
|
15
|
+
readonly envId?: string;
|
|
16
|
+
readonly deploymentId?: string;
|
|
17
|
+
readonly limit?: number;
|
|
18
|
+
readonly orgId?: string;
|
|
19
|
+
}
|
|
13
20
|
export declare const stream: (client: Client, projectId: string, envType: string) => LogStream;
|
|
21
|
+
export declare const list: (client: Client, projectId: string, options?: ListLogsOptions) => Promise<LogListResult>;
|
|
14
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;
|
|
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,GAAI,QAAQ,MAAM,EAAE,WAAW,MAAM,EAAE,SAAS,MAAM,KAAG,SAM3E,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
|
@@ -8,6 +8,10 @@
|
|
|
8
8
|
* transport-specific state while still standardising how stream
|
|
9
9
|
* handshakes look.
|
|
10
10
|
*/
|
|
11
|
+
import { request } from './http.js';
|
|
12
|
+
const orgHeaders = (options = {}) => ({
|
|
13
|
+
...(options.orgId ? { 'x-preferred-org-id': options.orgId } : {}),
|
|
14
|
+
});
|
|
11
15
|
export const stream = (client, projectId, envType) => {
|
|
12
16
|
const params = new URLSearchParams({ envType, stream: 'true', limit: '200' });
|
|
13
17
|
return {
|
|
@@ -15,3 +19,12 @@ export const stream = (client, projectId, envType) => {
|
|
|
15
19
|
token: client.token,
|
|
16
20
|
};
|
|
17
21
|
};
|
|
22
|
+
export const list = (client, projectId, options = {}) => request(client, 'GET', `/projects/${encodeURIComponent(projectId)}/logs`, {
|
|
23
|
+
query: {
|
|
24
|
+
envType: options.envType,
|
|
25
|
+
envId: options.envId,
|
|
26
|
+
deploymentId: options.deploymentId,
|
|
27
|
+
limit: options.limit === undefined ? undefined : String(options.limit),
|
|
28
|
+
},
|
|
29
|
+
headers: orgHeaders(options),
|
|
30
|
+
});
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Authenticated principal.
|
|
3
|
+
*
|
|
4
|
+
* Unlike `/user/me`, this route supports both interactive users and scoped
|
|
5
|
+
* service-token machine identities. CLI `whoami` uses it as the canonical
|
|
6
|
+
* non-interactive smoke test for `SYLPHX_TOKEN=svc_*`.
|
|
7
|
+
*/
|
|
8
|
+
import type { AuthenticatedPrincipal } from '@sylphx/contract';
|
|
9
|
+
import type { Client } from './client.js';
|
|
10
|
+
export declare const get: (client: Client) => Promise<AuthenticatedPrincipal>;
|
|
11
|
+
//# sourceMappingURL=principal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"principal.d.ts","sourceRoot":"","sources":["../src/principal.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AAE9D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAGzC,eAAO,MAAM,GAAG,GAAI,QAAQ,MAAM,KAAG,OAAO,CAAC,sBAAsB,CAGlE,CAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Authenticated principal.
|
|
3
|
+
*
|
|
4
|
+
* Unlike `/user/me`, this route supports both interactive users and scoped
|
|
5
|
+
* service-token machine identities. CLI `whoami` uses it as the canonical
|
|
6
|
+
* non-interactive smoke test for `SYLPHX_TOKEN=svc_*`.
|
|
7
|
+
*/
|
|
8
|
+
import { authEndpoints } from '@sylphx/contract';
|
|
9
|
+
import { request } from './http.js';
|
|
10
|
+
export const get = (client) => {
|
|
11
|
+
const { method, path } = authEndpoints.getPrincipal;
|
|
12
|
+
return request(client, method, path);
|
|
13
|
+
};
|
package/dist/projects.d.ts
CHANGED
|
@@ -6,7 +6,10 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import type { CreateProjectInput, Project } from '@sylphx/contract';
|
|
8
8
|
import type { Client } from './client.js';
|
|
9
|
-
export
|
|
9
|
+
export interface OrgScopedRequestOptions {
|
|
10
|
+
readonly orgId?: string;
|
|
11
|
+
}
|
|
12
|
+
export declare const list: (client: Client, options?: OrgScopedRequestOptions) => Promise<Project[]>;
|
|
10
13
|
export type CreateInput = CreateProjectInput;
|
|
11
14
|
export declare const create: (client: Client, input: CreateInput) => Promise<Project>;
|
|
12
15
|
declare const _delete: (client: Client, id: string) => Promise<void>;
|
package/dist/projects.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../src/projects.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAEnE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAGzC,eAAO,MAAM,IAAI,
|
|
1
|
+
{"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../src/projects.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAEnE,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,UAAS,uBAA4B,KACnC,OAAO,CAAC,OAAO,EAAE,CAMnB,CAAA;AAED,MAAM,MAAM,WAAW,GAAG,kBAAkB,CAAA;AAE5C,eAAO,MAAM,MAAM,GAAI,QAAQ,MAAM,EAAE,OAAO,WAAW,KAAG,OAAO,CAAC,OAAO,CAG1E,CAAA;AAED,QAAA,MAAM,OAAO,GAAI,QAAQ,MAAM,EAAE,IAAI,MAAM,KAAG,OAAO,CAAC,IAAI,CAGzD,CAAA;AACD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,CAAA"}
|
package/dist/projects.js
CHANGED
|
@@ -6,9 +6,14 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { projectsEndpoints } from '@sylphx/contract';
|
|
8
8
|
import { interpolatePath, request } from './http.js';
|
|
9
|
-
|
|
9
|
+
const orgHeaders = (options = {}) => ({
|
|
10
|
+
...(options.orgId ? { 'x-preferred-org-id': options.orgId } : {}),
|
|
11
|
+
});
|
|
12
|
+
export const list = async (client, options = {}) => {
|
|
10
13
|
const { method, path } = projectsEndpoints.list;
|
|
11
|
-
const res = await request(client, method, path
|
|
14
|
+
const res = await request(client, method, path, {
|
|
15
|
+
headers: orgHeaders(options),
|
|
16
|
+
});
|
|
12
17
|
return Array.isArray(res) ? res : (res.data ?? []);
|
|
13
18
|
};
|
|
14
19
|
export const create = (client, input) => {
|
package/dist/remoteConfig.d.ts
CHANGED
|
@@ -7,9 +7,12 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import type { Client } from './client.js';
|
|
9
9
|
import type { ConfigEntry } from './types.js';
|
|
10
|
-
export
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
declare const
|
|
10
|
+
export interface OrgScopedRequestOptions {
|
|
11
|
+
readonly orgId?: string;
|
|
12
|
+
}
|
|
13
|
+
export declare const list: (client: Client, projectId: string, envType?: string, options?: OrgScopedRequestOptions) => Promise<ConfigEntry[]>;
|
|
14
|
+
export declare const get: (client: Client, projectId: string, key: string, envType?: string, options?: OrgScopedRequestOptions) => Promise<ConfigEntry>;
|
|
15
|
+
export declare const set: (client: Client, projectId: string, key: string, value: string, envType?: string, options?: OrgScopedRequestOptions) => Promise<ConfigEntry>;
|
|
16
|
+
declare const _delete: (client: Client, projectId: string, key: string, envType?: string, options?: OrgScopedRequestOptions) => Promise<void>;
|
|
14
17
|
export { _delete as delete };
|
|
15
18
|
//# sourceMappingURL=remoteConfig.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remoteConfig.d.ts","sourceRoot":"","sources":["../src/remoteConfig.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAGzC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"remoteConfig.d.ts","sourceRoot":"","sources":["../src/remoteConfig.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAGzC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAE7C,MAAM,WAAW,uBAAuB;IACvC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CACvB;AAmBD,eAAO,MAAM,IAAI,GAChB,QAAQ,MAAM,EACd,WAAW,MAAM,EACjB,UAAU,MAAM,EAChB,UAAS,uBAA4B,KACnC,OAAO,CAAC,WAAW,EAAE,CASvB,CAAA;AAED,eAAO,MAAM,GAAG,GACf,QAAQ,MAAM,EACd,WAAW,MAAM,EACjB,KAAK,MAAM,EACX,UAAU,MAAM,EAChB,UAAS,uBAA4B,KACnC,OAAO,CAAC,WAAW,CAQrB,CAAA;AAED,eAAO,MAAM,GAAG,GACf,QAAQ,MAAM,EACd,WAAW,MAAM,EACjB,KAAK,MAAM,EACX,OAAO,MAAM,EACb,UAAU,MAAM,EAChB,UAAS,uBAA4B,KACnC,OAAO,CAAC,WAAW,CAMrB,CAAA;AAED,QAAA,MAAM,OAAO,GACZ,QAAQ,MAAM,EACd,WAAW,MAAM,EACjB,KAAK,MAAM,EACX,UAAU,MAAM,EAChB,UAAS,uBAA4B,KACnC,OAAO,CAAC,IAAI,CAQd,CAAA;AACD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,CAAA"}
|
package/dist/remoteConfig.js
CHANGED
|
@@ -7,29 +7,33 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import { resolveId as resolveEnvId } from './environments.js';
|
|
9
9
|
import { request } from './http.js';
|
|
10
|
-
const
|
|
10
|
+
const orgHeaders = (options = {}) => ({
|
|
11
|
+
...(options.orgId ? { 'x-preferred-org-id': options.orgId } : {}),
|
|
12
|
+
});
|
|
13
|
+
const resolveEnv = async (client, projectId, envType, options = {}) => {
|
|
11
14
|
if (!envType)
|
|
12
15
|
return undefined;
|
|
13
|
-
const envId = await resolveEnvId(client, projectId, envType);
|
|
16
|
+
const envId = await resolveEnvId(client, projectId, envType, options);
|
|
14
17
|
return envId ?? undefined;
|
|
15
18
|
};
|
|
16
|
-
export const list = async (client, projectId, envType) => {
|
|
17
|
-
const env = await resolveEnv(client, projectId, envType);
|
|
18
|
-
const res = await request(client, 'GET', `/projects/${encodeURIComponent(projectId)}/config`, { query: { env } });
|
|
19
|
+
export const list = async (client, projectId, envType, options = {}) => {
|
|
20
|
+
const env = await resolveEnv(client, projectId, envType, options);
|
|
21
|
+
const res = await request(client, 'GET', `/projects/${encodeURIComponent(projectId)}/config`, { query: { env }, headers: orgHeaders(options) });
|
|
19
22
|
return Array.isArray(res) ? res : (res.data ?? []);
|
|
20
23
|
};
|
|
21
|
-
export const get = async (client, projectId, key, envType) => {
|
|
22
|
-
const env = await resolveEnv(client, projectId, envType);
|
|
23
|
-
return request(client, 'GET', `/projects/${encodeURIComponent(projectId)}/config/${encodeURIComponent(key)}`, { query: { env } });
|
|
24
|
+
export const get = async (client, projectId, key, envType, options = {}) => {
|
|
25
|
+
const env = await resolveEnv(client, projectId, envType, options);
|
|
26
|
+
return request(client, 'GET', `/projects/${encodeURIComponent(projectId)}/config/${encodeURIComponent(key)}`, { query: { env }, headers: orgHeaders(options) });
|
|
24
27
|
};
|
|
25
|
-
export const set = async (client, projectId, key, value, envType) => {
|
|
26
|
-
const environmentId = envType ? await resolveEnvId(client, projectId, envType) : null;
|
|
28
|
+
export const set = async (client, projectId, key, value, envType, options = {}) => {
|
|
29
|
+
const environmentId = envType ? await resolveEnvId(client, projectId, envType, options) : null;
|
|
27
30
|
return request(client, 'POST', `/projects/${encodeURIComponent(projectId)}/config`, {
|
|
28
31
|
body: { key, value, environmentId },
|
|
32
|
+
headers: orgHeaders(options),
|
|
29
33
|
});
|
|
30
34
|
};
|
|
31
|
-
const _delete = async (client, projectId, key, envType) => {
|
|
32
|
-
const env = await resolveEnv(client, projectId, envType);
|
|
33
|
-
return request(client, 'DELETE', `/projects/${encodeURIComponent(projectId)}/config/${encodeURIComponent(key)}`, { query: { env } });
|
|
35
|
+
const _delete = async (client, projectId, key, envType, options = {}) => {
|
|
36
|
+
const env = await resolveEnv(client, projectId, envType, options);
|
|
37
|
+
return request(client, 'DELETE', `/projects/${encodeURIComponent(projectId)}/config/${encodeURIComponent(key)}`, { query: { env }, headers: orgHeaders(options) });
|
|
34
38
|
};
|
|
35
39
|
export { _delete as delete };
|
|
@@ -5,15 +5,15 @@
|
|
|
5
5
|
* Renamed from `resources.ts` (class: `ResourceBindingsResource`) in the old
|
|
6
6
|
* OOP SDK — the module name now matches the capability (ADR-077 Rule D).
|
|
7
7
|
*/
|
|
8
|
+
import { type BindingRole, type ResourceBinding } from '@sylphx/contract';
|
|
8
9
|
import type { Client } from './client.js';
|
|
9
|
-
import type { ResourceBinding } from './types.js';
|
|
10
10
|
export declare const list: (client: Client, resourceId: string) => Promise<ResourceBinding[]>;
|
|
11
11
|
export interface BindInput {
|
|
12
12
|
readonly projectId: string;
|
|
13
13
|
readonly envType: string;
|
|
14
|
-
readonly role?:
|
|
14
|
+
readonly role?: BindingRole;
|
|
15
15
|
}
|
|
16
16
|
export declare const create: (client: Client, resourceId: string, input: BindInput) => Promise<ResourceBinding>;
|
|
17
|
-
declare const _delete: (client: Client, resourceId: string, bindingId: string) => Promise<
|
|
17
|
+
declare const _delete: (client: Client, resourceId: string, bindingId: string) => Promise<ResourceBinding>;
|
|
18
18
|
export { _delete as delete };
|
|
19
19
|
//# sourceMappingURL=resourceBindings.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resourceBindings.d.ts","sourceRoot":"","sources":["../src/resourceBindings.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"resourceBindings.d.ts","sourceRoot":"","sources":["../src/resourceBindings.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,eAAe,EAAsB,MAAM,kBAAkB,CAAA;AAC7F,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAIzC,eAAO,MAAM,IAAI,GAAU,QAAQ,MAAM,EAAE,YAAY,MAAM,KAAG,OAAO,CAAC,eAAe,EAAE,CAQxF,CAAA;AAED,MAAM,WAAW,SAAS;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,WAAW,CAAA;CAC3B;AAED,eAAO,MAAM,MAAM,GAClB,QAAQ,MAAM,EACd,YAAY,MAAM,EAClB,OAAO,SAAS,KACd,OAAO,CAAC,eAAe,CASzB,CAAA;AAED,QAAA,MAAM,OAAO,GACZ,QAAQ,MAAM,EACd,YAAY,MAAM,EAClB,WAAW,MAAM,KACf,OAAO,CAAC,eAAe,CAGzB,CAAA;AACD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,CAAA"}
|
package/dist/resourceBindings.js
CHANGED
|
@@ -5,10 +5,12 @@
|
|
|
5
5
|
* Renamed from `resources.ts` (class: `ResourceBindingsResource`) in the old
|
|
6
6
|
* OOP SDK — the module name now matches the capability (ADR-077 Rule D).
|
|
7
7
|
*/
|
|
8
|
+
import { resourcesEndpoints } from '@sylphx/contract';
|
|
8
9
|
import { resolveId as resolveEnvId } from './environments.js';
|
|
9
|
-
import { request } from './http.js';
|
|
10
|
+
import { interpolatePath, request } from './http.js';
|
|
10
11
|
export const list = async (client, resourceId) => {
|
|
11
|
-
const
|
|
12
|
+
const { method, path } = resourcesEndpoints.listBindings;
|
|
13
|
+
const res = await request(client, method, interpolatePath(path, { id: resourceId }));
|
|
12
14
|
return res.bindings ?? [];
|
|
13
15
|
};
|
|
14
16
|
export const create = async (client, resourceId, input) => {
|
|
@@ -16,9 +18,13 @@ export const create = async (client, resourceId, input) => {
|
|
|
16
18
|
if (!projectEnvironmentId) {
|
|
17
19
|
throw new Error(`Environment '${input.envType}' not found for project '${input.projectId}'`);
|
|
18
20
|
}
|
|
19
|
-
|
|
21
|
+
const { method, path } = resourcesEndpoints.createBinding;
|
|
22
|
+
return request(client, method, interpolatePath(path, { id: resourceId }), {
|
|
20
23
|
body: { projectEnvironmentId, role: input.role ?? 'primary' },
|
|
21
24
|
});
|
|
22
25
|
};
|
|
23
|
-
const _delete = (client, resourceId, bindingId) =>
|
|
26
|
+
const _delete = (client, resourceId, bindingId) => {
|
|
27
|
+
const { method, path } = resourcesEndpoints.deleteBinding;
|
|
28
|
+
return request(client, method, interpolatePath(path, { id: resourceId, bindingId }));
|
|
29
|
+
};
|
|
24
30
|
export { _delete as delete };
|
package/dist/resources.d.ts
CHANGED
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
* Generic managed resources — list/get across database, kv, blob, search, and
|
|
3
3
|
* volume resources through the unified `/resources` Management API.
|
|
4
4
|
*/
|
|
5
|
-
import type {
|
|
5
|
+
import type { ManagedResource as Resource, ResourceType } from '@sylphx/contract';
|
|
6
6
|
import type { Client } from './client.js';
|
|
7
|
-
export type ResourceKind =
|
|
7
|
+
export type ResourceKind = ResourceType;
|
|
8
8
|
export type { Resource };
|
|
9
9
|
export declare const list: (client: Client, options?: {
|
|
10
|
-
readonly kind?: ResourceKind
|
|
10
|
+
readonly kind?: ResourceKind;
|
|
11
11
|
}) => Promise<Resource[]>;
|
|
12
12
|
export declare const get: (client: Client, id: string) => Promise<Resource>;
|
|
13
13
|
//# sourceMappingURL=resources.d.ts.map
|
package/dist/resources.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../src/resources.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../src/resources.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,eAAe,IAAI,QAAQ,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAEjF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAGzC,MAAM,MAAM,YAAY,GAAG,YAAY,CAAA;AACvC,YAAY,EAAE,QAAQ,EAAE,CAAA;AAExB,eAAO,MAAM,IAAI,GAChB,QAAQ,MAAM,EACd,UAAS;IAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,YAAY,CAAA;CAAO,KAC5C,OAAO,CAAC,QAAQ,EAAE,CASpB,CAAA;AAED,eAAO,MAAM,GAAG,GAAI,QAAQ,MAAM,EAAE,IAAI,MAAM,KAAG,OAAO,CAAC,QAAQ,CAGhE,CAAA"}
|