@ninedeploy/schemas 0.2.7 → 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/dist/auth.d.ts +19 -14
- package/dist/auth.d.ts.map +1 -1
- package/dist/auth.js +18 -4
- package/dist/auth.js.map +1 -1
- package/dist/common.d.ts +18 -0
- package/dist/common.d.ts.map +1 -1
- package/dist/common.js +47 -0
- package/dist/common.js.map +1 -1
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/insights.d.ts +110 -0
- package/dist/insights.d.ts.map +1 -0
- package/dist/insights.js +64 -0
- package/dist/insights.js.map +1 -0
- package/dist/labels.d.ts +108 -0
- package/dist/labels.d.ts.map +1 -0
- package/dist/labels.js +70 -0
- package/dist/labels.js.map +1 -0
- package/dist/management.d.ts +6 -7
- package/dist/management.d.ts.map +1 -1
- package/dist/management.js +34 -9
- package/dist/management.js.map +1 -1
- package/dist/ninedeployManifest.d.ts +292 -0
- package/dist/ninedeployManifest.d.ts.map +1 -0
- package/dist/ninedeployManifest.js +284 -0
- package/dist/ninedeployManifest.js.map +1 -0
- package/dist/project.d.ts +4 -2
- package/dist/project.d.ts.map +1 -1
- package/dist/project.js +2 -2
- package/dist/project.js.map +1 -1
- package/dist/secretScan.d.ts +52 -0
- package/dist/secretScan.d.ts.map +1 -0
- package/dist/secretScan.js +125 -0
- package/dist/secretScan.js.map +1 -0
- package/dist/service.d.ts +118 -4
- package/dist/service.d.ts.map +1 -1
- package/dist/service.js +148 -10
- package/dist/service.js.map +1 -1
- package/dist/workspaces.d.ts +49 -0
- package/dist/workspaces.d.ts.map +1 -1
- package/dist/workspaces.js +9 -0
- package/dist/workspaces.js.map +1 -1
- package/package.json +1 -1
package/dist/auth.d.ts
CHANGED
|
@@ -40,15 +40,16 @@ export declare const passwordChange: z.ZodObject<{
|
|
|
40
40
|
}, z.core.$strip>;
|
|
41
41
|
export type PasswordChange = z.infer<typeof passwordChange>;
|
|
42
42
|
/** Admin-initiated password reset for another user. */
|
|
43
|
-
/**
|
|
43
|
+
/**
|
|
44
|
+
* Admin-created user — same shape as register, no global role.
|
|
45
|
+
* A new user has no workspace memberships until an existing owner/admin
|
|
46
|
+
* invites them; the first user on a fresh install is auto-promoted to owner
|
|
47
|
+
* of a personal workspace by the auth module.
|
|
48
|
+
*/
|
|
44
49
|
export declare const userCreate: z.ZodObject<{
|
|
45
50
|
email: z.ZodEmail;
|
|
46
51
|
password: z.ZodString;
|
|
47
52
|
name: z.ZodOptional<z.ZodString>;
|
|
48
|
-
role: z.ZodDefault<z.ZodEnum<{
|
|
49
|
-
admin: "admin";
|
|
50
|
-
member: "member";
|
|
51
|
-
}>>;
|
|
52
53
|
}, z.core.$strip>;
|
|
53
54
|
export type UserCreate = z.infer<typeof userCreate>;
|
|
54
55
|
export declare const passwordReset: z.ZodObject<{
|
|
@@ -77,15 +78,20 @@ export declare const refresh: z.ZodObject<{
|
|
|
77
78
|
refreshToken: z.ZodString;
|
|
78
79
|
}, z.core.$strip>;
|
|
79
80
|
export type Refresh = z.infer<typeof refresh>;
|
|
80
|
-
/**
|
|
81
|
+
/**
|
|
82
|
+
* Public user representation (never includes passwordHash).
|
|
83
|
+
* The legacy global `role` field was removed; authorization is per-workspace
|
|
84
|
+
* now. The effective "is operator" check is computed by joining
|
|
85
|
+
* `workspace_members` and asking whether the user holds owner/admin in any
|
|
86
|
+
* workspace.
|
|
87
|
+
*/
|
|
81
88
|
export declare const publicUser: z.ZodObject<{
|
|
82
89
|
id: z.ZodNumber;
|
|
83
90
|
email: z.ZodEmail;
|
|
84
91
|
name: z.ZodNullable<z.ZodString>;
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
}>;
|
|
92
|
+
isOperator: z.ZodBoolean;
|
|
93
|
+
workspaceCount: z.ZodNumber;
|
|
94
|
+
createdAt: z.ZodString;
|
|
89
95
|
}, z.core.$strip>;
|
|
90
96
|
export type PublicUser = z.infer<typeof publicUser>;
|
|
91
97
|
export declare const session: z.ZodObject<{
|
|
@@ -93,10 +99,9 @@ export declare const session: z.ZodObject<{
|
|
|
93
99
|
id: z.ZodNumber;
|
|
94
100
|
email: z.ZodEmail;
|
|
95
101
|
name: z.ZodNullable<z.ZodString>;
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
}>;
|
|
102
|
+
isOperator: z.ZodBoolean;
|
|
103
|
+
workspaceCount: z.ZodNumber;
|
|
104
|
+
createdAt: z.ZodString;
|
|
100
105
|
}, z.core.$strip>;
|
|
101
106
|
tokens: z.ZodObject<{
|
|
102
107
|
accessToken: z.ZodString;
|
package/dist/auth.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,QAAQ;;;;iBAInB,CAAC;AACH,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAC;AAEhD,kFAAkF;AAClF,eAAO,MAAM,KAAK;;;;iBAAW,CAAC;AAC9B,MAAM,MAAM,KAAK,GAAG,QAAQ,CAAC;AAE7B,eAAO,MAAM,KAAK;;;;iBAKhB,CAAC;AACH,MAAM,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,KAAK,CAAC,CAAC;AAE1C,kEAAkE;AAClE,eAAO,MAAM,aAAa;;iBAAkD,CAAC;AAC7E,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAE1D,kFAAkF;AAClF,eAAO,MAAM,cAAc;;iBAA4C,CAAC;AACxE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAE5D,eAAO,MAAM,gBAAgB;;;iBAG3B,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAEhE,mEAAmE;AACnE,eAAO,MAAM,cAAc;;;iBAGzB,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAE5D,uDAAuD;AACvD
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"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"}
|
package/dist/auth.js
CHANGED
|
@@ -26,12 +26,16 @@ export const passwordChange = z.object({
|
|
|
26
26
|
newPassword: z.string().min(8).max(128),
|
|
27
27
|
});
|
|
28
28
|
/** Admin-initiated password reset for another user. */
|
|
29
|
-
/**
|
|
29
|
+
/**
|
|
30
|
+
* Admin-created user — same shape as register, no global role.
|
|
31
|
+
* A new user has no workspace memberships until an existing owner/admin
|
|
32
|
+
* invites them; the first user on a fresh install is auto-promoted to owner
|
|
33
|
+
* of a personal workspace by the auth module.
|
|
34
|
+
*/
|
|
30
35
|
export const userCreate = z.object({
|
|
31
36
|
email: z.email().max(255),
|
|
32
37
|
password: z.string().min(8).max(128),
|
|
33
38
|
name: z.string().min(1).max(100).optional(),
|
|
34
|
-
role: z.enum(['admin', 'member']).default('member'),
|
|
35
39
|
});
|
|
36
40
|
export const passwordReset = z.object({
|
|
37
41
|
newPassword: z.string().min(8).max(128),
|
|
@@ -54,12 +58,22 @@ export const tokenPair = z.object({
|
|
|
54
58
|
export const refresh = z.object({
|
|
55
59
|
refreshToken: z.string().min(1),
|
|
56
60
|
});
|
|
57
|
-
/**
|
|
61
|
+
/**
|
|
62
|
+
* Public user representation (never includes passwordHash).
|
|
63
|
+
* The legacy global `role` field was removed; authorization is per-workspace
|
|
64
|
+
* now. The effective "is operator" check is computed by joining
|
|
65
|
+
* `workspace_members` and asking whether the user holds owner/admin in any
|
|
66
|
+
* workspace.
|
|
67
|
+
*/
|
|
58
68
|
export const publicUser = z.object({
|
|
59
69
|
id: z.number().int(),
|
|
60
70
|
email: z.email(),
|
|
61
71
|
name: z.string().nullable(),
|
|
62
|
-
|
|
72
|
+
/** True iff the user holds owner/admin in at least one workspace. */
|
|
73
|
+
isOperator: z.boolean(),
|
|
74
|
+
/** Number of workspaces the user belongs to. Computed by the server. */
|
|
75
|
+
workspaceCount: z.number().int().nonnegative(),
|
|
76
|
+
createdAt: z.string().datetime(),
|
|
63
77
|
});
|
|
64
78
|
export const session = z.object({
|
|
65
79
|
user: publicUser,
|
package/dist/auth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC;IACzB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IACpC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;CAC5C,CAAC,CAAC;AAGH,kFAAkF;AAClF,MAAM,CAAC,MAAM,KAAK,GAAG,QAAQ,CAAC;AAG9B,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5B,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE;IAChB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3B,iDAAiD;IACjD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE;CACjD,CAAC,CAAC;AAGH,kEAAkE;AAClE,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;AAG7E,kFAAkF;AAClF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAGxE,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC;CAClC,CAAC,CAAC;AAGH,mEAAmE;AACnE,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAClC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;CACxC,CAAC,CAAC;AAGH,uDAAuD;AACvD
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"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"}
|
package/dist/common.d.ts
CHANGED
|
@@ -37,6 +37,24 @@ export declare const gitRepoUrl: z.ZodURL;
|
|
|
37
37
|
* itself rejects in `check-ref-format`.
|
|
38
38
|
*/
|
|
39
39
|
export declare const gitBranch: z.ZodString;
|
|
40
|
+
export declare const repoRelativePath: z.ZodString;
|
|
41
|
+
/** Same rules as {@link repoRelativePath}; named for the build-context field. */
|
|
42
|
+
export declare const repoBaseDir: z.ZodString;
|
|
43
|
+
/**
|
|
44
|
+
* Absolute path inside a container (e.g. `/data`, `/var/lib/uploads`).
|
|
45
|
+
* Rejected: empty, relative, paths containing NUL, parent-relative segments,
|
|
46
|
+
* or a leading double slash (Docker treats `//` as the named-volume named
|
|
47
|
+
* bind-mount form which is not what we want here).
|
|
48
|
+
*/
|
|
49
|
+
export declare const containerPath: z.ZodString;
|
|
50
|
+
/**
|
|
51
|
+
* Docker named-volume name. Lowercase letters, digits, underscores, hyphens
|
|
52
|
+
* and dots; must start with alnum; max 64 chars (the volume driver limit
|
|
53
|
+
* on most filesystems). The managed prefixes `nd-svc-` / `nd-db-` are
|
|
54
|
+
* accepted; clients sending a non-managed name attach a pre-existing volume
|
|
55
|
+
* they have created out-of-band.
|
|
56
|
+
*/
|
|
57
|
+
export declare const dockerVolumeName: z.ZodString;
|
|
40
58
|
/** Cursor-style pagination params. */
|
|
41
59
|
export declare const pagination: z.ZodObject<{
|
|
42
60
|
limit: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
package/dist/common.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,yDAAyD;AACzD,eAAO,MAAM,IAAI,aAIqE,CAAC;AAEvF;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,aAMpB,CAAC;AAEJ,eAAO,MAAM,EAAE,aAA8B,CAAC;AAE9C;;;;;;;;GAQG;AACH,eAAO,MAAM,QAAQ,aAMlB,CAAC;AAEJ;;;;;;;;GAQG;AACH,eAAO,MAAM,UAAU,UAInB,CAAC;AAEL;;;;;GAKG;AACH,eAAO,MAAM,SAAS,aAKyE,CAAC;
|
|
1
|
+
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,yDAAyD;AACzD,eAAO,MAAM,IAAI,aAIqE,CAAC;AAEvF;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,aAMpB,CAAC;AAEJ,eAAO,MAAM,EAAE,aAA8B,CAAC;AAE9C;;;;;;;;GAQG;AACH,eAAO,MAAM,QAAQ,aAMlB,CAAC;AAEJ;;;;;;;;GAQG;AACH,eAAO,MAAM,UAAU,UAInB,CAAC;AAEL;;;;;GAKG;AACH,eAAO,MAAM,SAAS,aAKyE,CAAC;AAqBhG,eAAO,MAAM,gBAAgB,aAIuD,CAAC;AAErF,iFAAiF;AACjF,eAAO,MAAM,WAAW,aAAmB,CAAC;AAE5C;;;;;GAKG;AACH,eAAO,MAAM,aAAa,aAIuD,CAAC;AAElF;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,aAIoC,CAAC;AAElE,sCAAsC;AACtC,eAAO,MAAM,UAAU;;;iBAGrB,CAAC;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAEpD,mDAAmD;AACnD,eAAO,MAAM,aAAa;;;;;;iBAMxB,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAE1D,yBAAyB;AACzB,wBAAgB,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC;;;;kBAMnD"}
|
package/dist/common.js
CHANGED
|
@@ -56,6 +56,53 @@ export const gitBranch = z
|
|
|
56
56
|
.max(200)
|
|
57
57
|
.regex(/^[A-Za-z0-9._][A-Za-z0-9._/-]*$/, 'invalid branch name')
|
|
58
58
|
.refine((v) => !v.includes('..') && !v.endsWith('.lock'), { message: 'invalid branch name' });
|
|
59
|
+
/**
|
|
60
|
+
* A path interpreted relative to the checked-out repository.
|
|
61
|
+
*
|
|
62
|
+
* A LEADING SLASH IS ALLOWED and means "from the repo root" — that is the
|
|
63
|
+
* existing convention for `baseDir` (`/`, `/app`), so rejecting it here would
|
|
64
|
+
* break real configurations. What is rejected is anything that could climb out
|
|
65
|
+
* of the checkout once resolved: `..` segments, NUL, and Windows drive
|
|
66
|
+
* letters.
|
|
67
|
+
*
|
|
68
|
+
* This is a usability guard, not the security boundary. The sinks
|
|
69
|
+
* (`docker build -f` / its build context, `docker compose -f`) resolve these
|
|
70
|
+
* values against the work dir, so they re-anchor the path themselves — see
|
|
71
|
+
* `lib/repoPath.ts`.
|
|
72
|
+
*/
|
|
73
|
+
const insideRepo = (value) => !/^[A-Za-z]:/.test(value) &&
|
|
74
|
+
!value.includes('\0') &&
|
|
75
|
+
!value.split(/[\\/]/).includes('..');
|
|
76
|
+
export const repoRelativePath = z
|
|
77
|
+
.string()
|
|
78
|
+
.trim()
|
|
79
|
+
.max(400)
|
|
80
|
+
.refine(insideRepo, { message: 'must be a path inside the repository (no "..")' });
|
|
81
|
+
/** Same rules as {@link repoRelativePath}; named for the build-context field. */
|
|
82
|
+
export const repoBaseDir = repoRelativePath;
|
|
83
|
+
/**
|
|
84
|
+
* Absolute path inside a container (e.g. `/data`, `/var/lib/uploads`).
|
|
85
|
+
* Rejected: empty, relative, paths containing NUL, parent-relative segments,
|
|
86
|
+
* or a leading double slash (Docker treats `//` as the named-volume named
|
|
87
|
+
* bind-mount form which is not what we want here).
|
|
88
|
+
*/
|
|
89
|
+
export const containerPath = z
|
|
90
|
+
.string()
|
|
91
|
+
.min(1)
|
|
92
|
+
.max(1024)
|
|
93
|
+
.regex(/^\/[^/].*|^\/$/, 'must be an absolute path starting with a single "/"');
|
|
94
|
+
/**
|
|
95
|
+
* Docker named-volume name. Lowercase letters, digits, underscores, hyphens
|
|
96
|
+
* and dots; must start with alnum; max 64 chars (the volume driver limit
|
|
97
|
+
* on most filesystems). The managed prefixes `nd-svc-` / `nd-db-` are
|
|
98
|
+
* accepted; clients sending a non-managed name attach a pre-existing volume
|
|
99
|
+
* they have created out-of-band.
|
|
100
|
+
*/
|
|
101
|
+
export const dockerVolumeName = z
|
|
102
|
+
.string()
|
|
103
|
+
.min(1)
|
|
104
|
+
.max(64)
|
|
105
|
+
.regex(/^[a-z0-9][a-z0-9_.-]*$/i, 'invalid docker volume name');
|
|
59
106
|
/** Cursor-style pagination params. */
|
|
60
107
|
export const pagination = z.object({
|
|
61
108
|
limit: z.coerce.number().int().min(1).max(100).default(25),
|
package/dist/common.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.js","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,yDAAyD;AACzD,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC;KAClB,MAAM,EAAE;KACR,GAAG,CAAC,CAAC,CAAC;KACN,GAAG,CAAC,EAAE,CAAC;KACP,KAAK,CAAC,mCAAmC,EAAE,uCAAuC,CAAC,CAAC;AAEvF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC;KACxB,MAAM,EAAE;KACR,IAAI,EAAE;KACN,KAAK,CACJ,0BAA0B,EAC1B,oGAAoG,CACrG,CAAC;AAEJ,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;AAE9C;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC;KACtB,MAAM,EAAE;KACR,GAAG,CAAC,GAAG,CAAC;KACR,KAAK,CACJ,yCAAyC,EACzC,+DAA+D,CAChE,CAAC;AAEJ;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC;KACxB,GAAG,EAAE;KACL,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;IACtD,OAAO,EAAE,uCAAuC;CACjD,CAAC,CAAC;AAEL;;;;;GAKG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC;KACvB,MAAM,EAAE;KACR,GAAG,CAAC,CAAC,CAAC;KACN,GAAG,CAAC,GAAG,CAAC;KACR,KAAK,CAAC,iCAAiC,EAAE,qBAAqB,CAAC;KAC/D,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC,CAAC;AAEhG,sCAAsC;AACtC,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC1D,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CACtD,CAAC,CAAC;AAGH,mDAAmD;AACnD,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;QAChB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;QACnB,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;KAChC,CAAC;CACH,CAAC,CAAC;AAGH,yBAAyB;AACzB,MAAM,UAAU,IAAI,CAAyB,IAAO;IAClD,OAAO,CAAC,CAAC,MAAM,CAAC;QACd,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;QACpB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;QAClD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;KACjD,CAAC,CAAC;AACL,CAAC"}
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,14 @@
|
|
|
1
1
|
export * from './common.js';
|
|
2
2
|
export * from './auth.js';
|
|
3
3
|
export * from './management.js';
|
|
4
|
+
export * from './ninedeployManifest.js';
|
|
5
|
+
export type { AlertWhen } from './ninedeployManifest.js';
|
|
6
|
+
export type { RestartPolicy } from './ninedeployManifest.js';
|
|
4
7
|
export * from './project.js';
|
|
5
8
|
export * from './service.js';
|
|
9
|
+
export * from './insights.js';
|
|
6
10
|
export * from './kernel.js';
|
|
7
11
|
export * from './workspaces.js';
|
|
12
|
+
export * from './labels.js';
|
|
13
|
+
export * from './secretScan.js';
|
|
8
14
|
//# 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":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,YAAY,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,YAAY,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
export * from './common.js';
|
|
2
2
|
export * from './auth.js';
|
|
3
3
|
export * from './management.js';
|
|
4
|
+
export * from './ninedeployManifest.js';
|
|
4
5
|
export * from './project.js';
|
|
5
6
|
export * from './service.js';
|
|
7
|
+
export * from './insights.js';
|
|
6
8
|
export * from './kernel.js';
|
|
7
9
|
export * from './workspaces.js';
|
|
10
|
+
export * from './labels.js';
|
|
11
|
+
export * from './secretScan.js';
|
|
8
12
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AAGxC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const frameworkCategory: z.ZodEnum<{
|
|
3
|
+
backend: "backend";
|
|
4
|
+
container: "container";
|
|
5
|
+
spa: "spa";
|
|
6
|
+
ssr: "ssr";
|
|
7
|
+
static: "static";
|
|
8
|
+
unknown: "unknown";
|
|
9
|
+
}>;
|
|
10
|
+
export type FrameworkCategory = z.infer<typeof frameworkCategory>;
|
|
11
|
+
export declare const packageManagerId: z.ZodEnum<{
|
|
12
|
+
bun: "bun";
|
|
13
|
+
npm: "npm";
|
|
14
|
+
pnpm: "pnpm";
|
|
15
|
+
yarn: "yarn";
|
|
16
|
+
}>;
|
|
17
|
+
export type PackageManagerId = z.infer<typeof packageManagerId>;
|
|
18
|
+
/** One recommended environment variable (pre-filled, user-editable). */
|
|
19
|
+
export declare const envSuggestion: z.ZodObject<{
|
|
20
|
+
key: z.ZodString;
|
|
21
|
+
value: z.ZodString;
|
|
22
|
+
description: z.ZodOptional<z.ZodString>;
|
|
23
|
+
}, z.core.$strip>;
|
|
24
|
+
export type EnvSuggestion = z.infer<typeof envSuggestion>;
|
|
25
|
+
/** A detected framework plus its deploy preset (commands already adapted to
|
|
26
|
+
* the detected package manager). Null commands mean "no safe suggestion". */
|
|
27
|
+
export declare const frameworkPreset: z.ZodObject<{
|
|
28
|
+
id: z.ZodString;
|
|
29
|
+
name: z.ZodString;
|
|
30
|
+
emoji: z.ZodString;
|
|
31
|
+
category: z.ZodEnum<{
|
|
32
|
+
backend: "backend";
|
|
33
|
+
container: "container";
|
|
34
|
+
spa: "spa";
|
|
35
|
+
ssr: "ssr";
|
|
36
|
+
static: "static";
|
|
37
|
+
unknown: "unknown";
|
|
38
|
+
}>;
|
|
39
|
+
port: z.ZodNumber;
|
|
40
|
+
installCmd: z.ZodNullable<z.ZodString>;
|
|
41
|
+
buildCmd: z.ZodNullable<z.ZodString>;
|
|
42
|
+
startCmd: z.ZodNullable<z.ZodString>;
|
|
43
|
+
env: z.ZodArray<z.ZodObject<{
|
|
44
|
+
key: z.ZodString;
|
|
45
|
+
value: z.ZodString;
|
|
46
|
+
description: z.ZodOptional<z.ZodString>;
|
|
47
|
+
}, z.core.$strip>>;
|
|
48
|
+
notes: z.ZodArray<z.ZodString>;
|
|
49
|
+
}, z.core.$strip>;
|
|
50
|
+
export type FrameworkPreset = z.infer<typeof frameworkPreset>;
|
|
51
|
+
export declare const repoInsights: z.ZodObject<{
|
|
52
|
+
framework: z.ZodObject<{
|
|
53
|
+
id: z.ZodString;
|
|
54
|
+
name: z.ZodString;
|
|
55
|
+
emoji: z.ZodString;
|
|
56
|
+
category: z.ZodEnum<{
|
|
57
|
+
backend: "backend";
|
|
58
|
+
container: "container";
|
|
59
|
+
spa: "spa";
|
|
60
|
+
ssr: "ssr";
|
|
61
|
+
static: "static";
|
|
62
|
+
unknown: "unknown";
|
|
63
|
+
}>;
|
|
64
|
+
port: z.ZodNumber;
|
|
65
|
+
installCmd: z.ZodNullable<z.ZodString>;
|
|
66
|
+
buildCmd: z.ZodNullable<z.ZodString>;
|
|
67
|
+
startCmd: z.ZodNullable<z.ZodString>;
|
|
68
|
+
env: z.ZodArray<z.ZodObject<{
|
|
69
|
+
key: z.ZodString;
|
|
70
|
+
value: z.ZodString;
|
|
71
|
+
description: z.ZodOptional<z.ZodString>;
|
|
72
|
+
}, z.core.$strip>>;
|
|
73
|
+
notes: z.ZodArray<z.ZodString>;
|
|
74
|
+
}, z.core.$strip>;
|
|
75
|
+
language: z.ZodString;
|
|
76
|
+
packageManager: z.ZodNullable<z.ZodEnum<{
|
|
77
|
+
bun: "bun";
|
|
78
|
+
npm: "npm";
|
|
79
|
+
pnpm: "pnpm";
|
|
80
|
+
yarn: "yarn";
|
|
81
|
+
}>>;
|
|
82
|
+
nodeVersion: z.ZodNullable<z.ZodString>;
|
|
83
|
+
frameworkVersion: z.ZodNullable<z.ZodString>;
|
|
84
|
+
scripts: z.ZodRecord<z.ZodString, z.ZodString>;
|
|
85
|
+
dependencyCount: z.ZodNumber;
|
|
86
|
+
devDependencyCount: z.ZodNumber;
|
|
87
|
+
hasDockerfile: z.ZodBoolean;
|
|
88
|
+
hasComposeFile: z.ZodBoolean;
|
|
89
|
+
monorepo: z.ZodBoolean;
|
|
90
|
+
detectedFiles: z.ZodArray<z.ZodString>;
|
|
91
|
+
workspacePackages: z.ZodArray<z.ZodObject<{
|
|
92
|
+
dir: z.ZodString;
|
|
93
|
+
name: z.ZodNullable<z.ZodString>;
|
|
94
|
+
framework: z.ZodNullable<z.ZodString>;
|
|
95
|
+
frameworkVersion: z.ZodNullable<z.ZodString>;
|
|
96
|
+
}, z.core.$strip>>;
|
|
97
|
+
baseDir: z.ZodString;
|
|
98
|
+
commitSha: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
99
|
+
analyzedAt: z.ZodString;
|
|
100
|
+
}, z.core.$strip>;
|
|
101
|
+
export type RepoInsights = z.infer<typeof repoInsights>;
|
|
102
|
+
/** Pre-deploy inspection request (DeployWizard, before a service exists). */
|
|
103
|
+
export declare const analyzeRepoInput: z.ZodObject<{
|
|
104
|
+
repoUrl: z.ZodURL;
|
|
105
|
+
branch: z.ZodDefault<z.ZodString>;
|
|
106
|
+
sourceId: z.ZodOptional<z.ZodNumber>;
|
|
107
|
+
baseDir: z.ZodOptional<z.ZodString>;
|
|
108
|
+
}, z.core.$strip>;
|
|
109
|
+
export type AnalyzeRepoInput = z.input<typeof analyzeRepoInput>;
|
|
110
|
+
//# sourceMappingURL=insights.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"insights.d.ts","sourceRoot":"","sources":["../src/insights.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB,eAAO,MAAM,iBAAiB;;;;;;;EAAsE,CAAC;AACrG,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAElE,eAAO,MAAM,gBAAgB;;;;;EAAyC,CAAC;AACvE,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAEhE,wEAAwE;AACxE,eAAO,MAAM,aAAa;;;;iBAIxB,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAE1D;6EAC6E;AAC7E,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;iBAW1B,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAE9D,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA6BvB,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAExD,6EAA6E;AAC7E,eAAO,MAAM,gBAAgB;;;;;iBAK3B,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC"}
|
package/dist/insights.js
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { gitBranch, gitRepoUrl, repoBaseDir } from './common.js';
|
|
3
|
+
// ── Repository / framework insights ─────────────────────────────────────────
|
|
4
|
+
// The analysis engine (server lib/frameworks.ts) inspects a checked-out repo
|
|
5
|
+
// and reduces it to this shape; the wizard and the service-detail Framework
|
|
6
|
+
// tab render it to explain "what is in this repo and how should it deploy".
|
|
7
|
+
export const frameworkCategory = z.enum(['ssr', 'spa', 'static', 'backend', 'container', 'unknown']);
|
|
8
|
+
export const packageManagerId = z.enum(['npm', 'pnpm', 'yarn', 'bun']);
|
|
9
|
+
/** One recommended environment variable (pre-filled, user-editable). */
|
|
10
|
+
export const envSuggestion = z.object({
|
|
11
|
+
key: z.string(),
|
|
12
|
+
value: z.string(),
|
|
13
|
+
description: z.string().optional(),
|
|
14
|
+
});
|
|
15
|
+
/** A detected framework plus its deploy preset (commands already adapted to
|
|
16
|
+
* the detected package manager). Null commands mean "no safe suggestion". */
|
|
17
|
+
export const frameworkPreset = z.object({
|
|
18
|
+
id: z.string(),
|
|
19
|
+
name: z.string(),
|
|
20
|
+
emoji: z.string(),
|
|
21
|
+
category: frameworkCategory,
|
|
22
|
+
port: z.number().int().min(1).max(65535),
|
|
23
|
+
installCmd: z.string().nullable(),
|
|
24
|
+
buildCmd: z.string().nullable(),
|
|
25
|
+
startCmd: z.string().nullable(),
|
|
26
|
+
env: z.array(envSuggestion),
|
|
27
|
+
notes: z.array(z.string()),
|
|
28
|
+
});
|
|
29
|
+
export const repoInsights = z.object({
|
|
30
|
+
framework: frameworkPreset,
|
|
31
|
+
language: z.string(),
|
|
32
|
+
packageManager: packageManagerId.nullable(),
|
|
33
|
+
nodeVersion: z.string().nullable(),
|
|
34
|
+
frameworkVersion: z.string().nullable(),
|
|
35
|
+
scripts: z.record(z.string(), z.string()),
|
|
36
|
+
dependencyCount: z.number().int(),
|
|
37
|
+
devDependencyCount: z.number().int(),
|
|
38
|
+
hasDockerfile: z.boolean(),
|
|
39
|
+
hasComposeFile: z.boolean(),
|
|
40
|
+
monorepo: z.boolean(),
|
|
41
|
+
/** Marker files the detection was derived from (e.g. package.json, go.mod). */
|
|
42
|
+
detectedFiles: z.array(z.string()),
|
|
43
|
+
/** Workspace member packages of a monorepo root (empty for single-app repos
|
|
44
|
+
* and for analyses scoped to a base directory). Powers the wizard's
|
|
45
|
+
* "deploy each sub-app as its own service" picker. */
|
|
46
|
+
workspacePackages: z.array(z.object({
|
|
47
|
+
/** Repo-relative directory, e.g. "apps/web". */
|
|
48
|
+
dir: z.string(),
|
|
49
|
+
name: z.string().nullable(),
|
|
50
|
+
framework: z.string().nullable(),
|
|
51
|
+
frameworkVersion: z.string().nullable(),
|
|
52
|
+
})),
|
|
53
|
+
baseDir: z.string(),
|
|
54
|
+
commitSha: z.string().nullable().optional(),
|
|
55
|
+
analyzedAt: z.string().datetime(),
|
|
56
|
+
});
|
|
57
|
+
/** Pre-deploy inspection request (DeployWizard, before a service exists). */
|
|
58
|
+
export const analyzeRepoInput = z.object({
|
|
59
|
+
repoUrl: gitRepoUrl,
|
|
60
|
+
branch: gitBranch.default('main'),
|
|
61
|
+
sourceId: z.number().int().positive().optional(),
|
|
62
|
+
baseDir: repoBaseDir.optional(),
|
|
63
|
+
});
|
|
64
|
+
//# sourceMappingURL=insights.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"insights.js","sourceRoot":"","sources":["../src/insights.ts"],"names":[],"mappings":"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"}
|
package/dist/labels.d.ts
ADDED
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* Workspace-scoped free-form labels used to tag services without tying them
|
|
4
|
+
* to the project hierarchy (e.g. "production", "staging", "team-x"). Labels
|
|
5
|
+
* can be created on the fly; the color is a tailwind-style palette token
|
|
6
|
+
* consumed by the UI.
|
|
7
|
+
*/
|
|
8
|
+
export declare const labelColor: z.ZodEnum<{
|
|
9
|
+
amber: "amber";
|
|
10
|
+
emerald: "emerald";
|
|
11
|
+
indigo: "indigo";
|
|
12
|
+
lime: "lime";
|
|
13
|
+
rose: "rose";
|
|
14
|
+
sky: "sky";
|
|
15
|
+
slate: "slate";
|
|
16
|
+
violet: "violet";
|
|
17
|
+
}>;
|
|
18
|
+
export type LabelColor = z.infer<typeof labelColor>;
|
|
19
|
+
export declare const createLabel: z.ZodObject<{
|
|
20
|
+
workspaceId: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
21
|
+
name: z.ZodString;
|
|
22
|
+
color: z.ZodDefault<z.ZodEnum<{
|
|
23
|
+
amber: "amber";
|
|
24
|
+
emerald: "emerald";
|
|
25
|
+
indigo: "indigo";
|
|
26
|
+
lime: "lime";
|
|
27
|
+
rose: "rose";
|
|
28
|
+
sky: "sky";
|
|
29
|
+
slate: "slate";
|
|
30
|
+
violet: "violet";
|
|
31
|
+
}>>;
|
|
32
|
+
}, z.core.$strip>;
|
|
33
|
+
export type CreateLabel = z.infer<typeof createLabel>;
|
|
34
|
+
export type CreateLabelInput = CreateLabel;
|
|
35
|
+
export declare const labelPatch: z.ZodObject<{
|
|
36
|
+
name: z.ZodOptional<z.ZodString>;
|
|
37
|
+
color: z.ZodOptional<z.ZodEnum<{
|
|
38
|
+
amber: "amber";
|
|
39
|
+
emerald: "emerald";
|
|
40
|
+
indigo: "indigo";
|
|
41
|
+
lime: "lime";
|
|
42
|
+
rose: "rose";
|
|
43
|
+
sky: "sky";
|
|
44
|
+
slate: "slate";
|
|
45
|
+
violet: "violet";
|
|
46
|
+
}>>;
|
|
47
|
+
}, z.core.$strip>;
|
|
48
|
+
export type LabelPatch = z.infer<typeof labelPatch>;
|
|
49
|
+
export type LabelPatchInput = LabelPatch;
|
|
50
|
+
export declare const label: z.ZodObject<{
|
|
51
|
+
id: z.ZodNumber;
|
|
52
|
+
workspaceId: z.ZodNullable<z.ZodNumber>;
|
|
53
|
+
name: z.ZodString;
|
|
54
|
+
color: z.ZodString;
|
|
55
|
+
serviceCount: z.ZodNumber;
|
|
56
|
+
createdAt: z.ZodString;
|
|
57
|
+
updatedAt: z.ZodString;
|
|
58
|
+
}, z.core.$strip>;
|
|
59
|
+
export type Label = z.infer<typeof label>;
|
|
60
|
+
/**
|
|
61
|
+
* PUT /v1/services/:id/tags body — replaces the service's project / workspace
|
|
62
|
+
* / label memberships wholesale. The caller must be a member of every
|
|
63
|
+
* workspace in `workspaceIds` (or an operator), and every project/label id
|
|
64
|
+
* must be valid. Empty arrays clear the corresponding dimension.
|
|
65
|
+
*/
|
|
66
|
+
export declare const setServiceTags: z.ZodObject<{
|
|
67
|
+
projectIds: z.ZodDefault<z.ZodArray<z.ZodNumber>>;
|
|
68
|
+
workspaceIds: z.ZodDefault<z.ZodArray<z.ZodNumber>>;
|
|
69
|
+
labelIds: z.ZodDefault<z.ZodArray<z.ZodNumber>>;
|
|
70
|
+
}, z.core.$strip>;
|
|
71
|
+
export type SetServiceTags = z.infer<typeof setServiceTags>;
|
|
72
|
+
export type SetServiceTagsInput = SetServiceTags;
|
|
73
|
+
export declare const serviceTags: z.ZodObject<{
|
|
74
|
+
serviceId: z.ZodNumber;
|
|
75
|
+
projects: z.ZodArray<z.ZodObject<{
|
|
76
|
+
id: z.ZodNumber;
|
|
77
|
+
name: z.ZodString;
|
|
78
|
+
slug: z.ZodString;
|
|
79
|
+
}, z.core.$strip>>;
|
|
80
|
+
workspaces: z.ZodArray<z.ZodObject<{
|
|
81
|
+
id: z.ZodNumber;
|
|
82
|
+
name: z.ZodString;
|
|
83
|
+
slug: z.ZodString;
|
|
84
|
+
}, z.core.$strip>>;
|
|
85
|
+
labels: z.ZodArray<z.ZodObject<{
|
|
86
|
+
id: z.ZodNumber;
|
|
87
|
+
name: z.ZodString;
|
|
88
|
+
color: z.ZodString;
|
|
89
|
+
}, z.core.$strip>>;
|
|
90
|
+
}, z.core.$strip>;
|
|
91
|
+
export type ServiceTags = z.infer<typeof serviceTags>;
|
|
92
|
+
/**
|
|
93
|
+
* /v1/services list filter — every present array is OR'd within its dimension
|
|
94
|
+
* and AND'd across dimensions. An empty array means "no filter on this
|
|
95
|
+
* dimension" (so omitting all three is equivalent to the unfiltered list).
|
|
96
|
+
*
|
|
97
|
+
* ?tagWorkspaceIds=1,2 → service is in ws 1 OR ws 2
|
|
98
|
+
* ?tagProjectIds=10 → service has project 10
|
|
99
|
+
* ?tagLabelIds=3,4 → service has label 3 OR 4
|
|
100
|
+
* combined: AND across dimensions
|
|
101
|
+
*/
|
|
102
|
+
export declare const serviceListFilter: z.ZodObject<{
|
|
103
|
+
tagWorkspaceIds: z.ZodDefault<z.ZodArray<z.ZodNumber>>;
|
|
104
|
+
tagProjectIds: z.ZodDefault<z.ZodArray<z.ZodNumber>>;
|
|
105
|
+
tagLabelIds: z.ZodDefault<z.ZodArray<z.ZodNumber>>;
|
|
106
|
+
}, z.core.$strip>;
|
|
107
|
+
export type ServiceListFilter = z.infer<typeof serviceListFilter>;
|
|
108
|
+
//# sourceMappingURL=labels.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"labels.d.ts","sourceRoot":"","sources":["../src/labels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;GAKG;AACH,eAAO,MAAM,UAAU;;;;;;;;;EASrB,CAAC;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAEpD,eAAO,MAAM,WAAW;;;;;;;;;;;;;iBAItB,CAAC;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AACtD,MAAM,MAAM,gBAAgB,GAAG,WAAW,CAAC;AAE3C,eAAO,MAAM,UAAU;;;;;;;;;;;;iBAKsD,CAAC;AAC9E,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AACpD,MAAM,MAAM,eAAe,GAAG,UAAU,CAAC;AAEzC,eAAO,MAAM,KAAK;;;;;;;;iBAQhB,CAAC;AACH,MAAM,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,KAAK,CAAC,CAAC;AAE1C;;;;;GAKG;AACH,eAAO,MAAM,cAAc;;;;iBAIzB,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAC5D,MAAM,MAAM,mBAAmB,GAAG,cAAc,CAAC;AAEjD,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;iBAKtB,CAAC;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAEtD;;;;;;;;;GASG;AACH,eAAO,MAAM,iBAAiB;;;;iBAI5B,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
|