@r8s/recipes 0.1.0 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/app.d.ts +11 -2
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +16 -13
- package/dist/app.js.map +1 -1
- package/dist/auth.d.ts.map +1 -1
- package/dist/auth.js +48 -84
- package/dist/auth.js.map +1 -1
- package/dist/database.d.ts +97 -5
- package/dist/database.d.ts.map +1 -1
- package/dist/database.js +196 -86
- package/dist/database.js.map +1 -1
- package/dist/dns-provider.js +1 -1
- package/dist/dns-provider.js.map +1 -1
- package/dist/endpoint-provider.d.ts.map +1 -1
- package/dist/endpoint-provider.js +22 -2
- package/dist/endpoint-provider.js.map +1 -1
- package/dist/endpoint.d.ts +18 -1
- package/dist/endpoint.d.ts.map +1 -1
- package/dist/endpoint.js +92 -37
- package/dist/endpoint.js.map +1 -1
- package/dist/errors.d.ts +16 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +19 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.d.ts +5 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13 -1
- package/dist/index.js.map +1 -1
- package/dist/operators.d.ts +16 -2
- package/dist/operators.d.ts.map +1 -1
- package/dist/operators.js +26 -0
- package/dist/operators.js.map +1 -1
- package/dist/platform.d.ts +9 -0
- package/dist/platform.d.ts.map +1 -1
- package/dist/platform.js.map +1 -1
- package/dist/r8s-cluster.d.ts +105 -0
- package/dist/r8s-cluster.d.ts.map +1 -0
- package/dist/r8s-cluster.js +187 -0
- package/dist/r8s-cluster.js.map +1 -0
- package/dist/secret-provider.d.ts +15 -2
- package/dist/secret-provider.d.ts.map +1 -1
- package/dist/secret-provider.js +77 -1
- package/dist/secret-provider.js.map +1 -1
- package/dist/static-secret.d.ts +107 -0
- package/dist/static-secret.d.ts.map +1 -0
- package/dist/static-secret.js +87 -0
- package/dist/static-secret.js.map +1 -0
- package/dist/web-service.d.ts +97 -0
- package/dist/web-service.d.ts.map +1 -1
- package/dist/web-service.js +117 -17
- package/dist/web-service.js.map +1 -1
- package/package.json +4 -4
package/dist/web-service.d.ts
CHANGED
|
@@ -14,6 +14,34 @@ export interface VaultSecretRef {
|
|
|
14
14
|
key?: string;
|
|
15
15
|
/** VaultAuth reference name (defaults to 'default') */
|
|
16
16
|
vaultAuthRef?: string;
|
|
17
|
+
/** Re-sync interval (e.g. '3600s'). Defaults to the Platform secrets refreshAfter. */
|
|
18
|
+
refreshAfter?: string;
|
|
19
|
+
/** Workloads restarted on rotation (rendered as rolloutRestartTargets) */
|
|
20
|
+
rolloutRestartTargets?: {
|
|
21
|
+
kind?: string;
|
|
22
|
+
name: string;
|
|
23
|
+
apiVersion?: string;
|
|
24
|
+
}[];
|
|
25
|
+
/**
|
|
26
|
+
* Destination key → template text, rendered under
|
|
27
|
+
* `destination.transformation.templates`. Use to remap vault key names
|
|
28
|
+
* (e.g. snake_case `encryption_key` → `N8N_ENCRYPTION_KEY`).
|
|
29
|
+
*/
|
|
30
|
+
templates?: Record<string, string>;
|
|
31
|
+
}
|
|
32
|
+
export interface ProbeSpec {
|
|
33
|
+
/** HTTP path for httpGet probes */
|
|
34
|
+
path?: string;
|
|
35
|
+
/** TCP probe when path is omitted */
|
|
36
|
+
tcp?: boolean;
|
|
37
|
+
/** Port for the probe (defaults to the container port) */
|
|
38
|
+
port?: number;
|
|
39
|
+
/** Seconds after container start before probing (default: 10) */
|
|
40
|
+
initialDelaySeconds?: number;
|
|
41
|
+
/** Seconds between probes (default: 10) */
|
|
42
|
+
periodSeconds?: number;
|
|
43
|
+
/** Consecutive failures before giving up (default: 3) */
|
|
44
|
+
failureThreshold?: number;
|
|
17
45
|
}
|
|
18
46
|
export interface WebServiceProps {
|
|
19
47
|
/** Resource name */
|
|
@@ -26,12 +54,28 @@ export interface WebServiceProps {
|
|
|
26
54
|
port?: number;
|
|
27
55
|
/** Number of pod replicas (defaults to 2) */
|
|
28
56
|
replicas?: number;
|
|
57
|
+
/**
|
|
58
|
+
* Probe overrides. Default probes are httpGet /health (liveness) and
|
|
59
|
+
* /ready (readiness) on the container port. Override when the app
|
|
60
|
+
* exposes different endpoints (e.g. { liveness: { path: '/healthz' },
|
|
61
|
+
* readiness: { tcp: true } }). Set both to null to disable.
|
|
62
|
+
*/
|
|
63
|
+
probes?: {
|
|
64
|
+
liveness?: ProbeSpec | null;
|
|
65
|
+
readiness?: ProbeSpec | null;
|
|
66
|
+
/** Startup probe — for slow-booting apps (e.g. migrations, document servers) */
|
|
67
|
+
startup?: ProbeSpec | null;
|
|
68
|
+
};
|
|
29
69
|
/** Plain environment variables (non-sensitive) */
|
|
30
70
|
env?: Record<string, string>;
|
|
31
71
|
/** Secrets from Kubernetes Secrets — safe by default */
|
|
32
72
|
secrets?: Record<string, SecretRef | string>;
|
|
33
73
|
/** Secrets from Vault — creates VaultStaticSecret objects */
|
|
34
74
|
vault?: Record<string, VaultSecretRef>;
|
|
75
|
+
/** Container command override (e.g. a worker entrypoint). Defaults to the image's entrypoint */
|
|
76
|
+
command?: string[];
|
|
77
|
+
/** Container args appended to the command */
|
|
78
|
+
args?: string[];
|
|
35
79
|
/** Raw env vars for advanced use cases */
|
|
36
80
|
rawEnv?: EnvVar[];
|
|
37
81
|
/** CPU and memory requests/limits for the app container */
|
|
@@ -45,6 +89,59 @@ export interface WebServiceProps {
|
|
|
45
89
|
memory?: string;
|
|
46
90
|
};
|
|
47
91
|
};
|
|
92
|
+
/** Container securityContext (runAsNonRoot, capabilities, …) */
|
|
93
|
+
securityContext?: Record<string, unknown>;
|
|
94
|
+
/** Pod-level securityContext */
|
|
95
|
+
podSecurityContext?: Record<string, unknown>;
|
|
96
|
+
/**
|
|
97
|
+
* Pod tolerations (e.g. faster eviction on node failure:
|
|
98
|
+
* { key: 'node.kubernetes.io/unreachable', effect: 'NoExecute', tolerationSeconds: 60 })
|
|
99
|
+
*/
|
|
100
|
+
tolerations?: Record<string, unknown>[];
|
|
101
|
+
/** Pod topologySpreadConstraints (spread replicas across nodes) */
|
|
102
|
+
topologySpreadConstraints?: Record<string, unknown>[];
|
|
103
|
+
/**
|
|
104
|
+
* Deployment update strategy ('Recreate' for RWO-volume/migration apps).
|
|
105
|
+
* Default: 'Recreate' when the pod mounts a PVC volume and replicas=1
|
|
106
|
+
* (RollingUpdate would deadlock on the single-attach volume).
|
|
107
|
+
*/
|
|
108
|
+
strategy?: 'Recreate' | 'RollingUpdate' | {
|
|
109
|
+
type: string;
|
|
110
|
+
rollingUpdate?: {
|
|
111
|
+
maxUnavailable?: string | number;
|
|
112
|
+
maxSurge?: string | number;
|
|
113
|
+
};
|
|
114
|
+
};
|
|
115
|
+
/** Pod volumes — combine with volumeMounts (e.g. PVCs, emptyDirs, ConfigMaps) */
|
|
116
|
+
volumes?: ({
|
|
117
|
+
name: string;
|
|
118
|
+
} & Record<string, unknown>)[];
|
|
119
|
+
/** Volume mounts for the app container */
|
|
120
|
+
volumeMounts?: {
|
|
121
|
+
name: string;
|
|
122
|
+
mountPath: string;
|
|
123
|
+
readOnly?: boolean;
|
|
124
|
+
subPath?: string;
|
|
125
|
+
}[];
|
|
126
|
+
/**
|
|
127
|
+
* Init containers run before the app starts (chown, schema setup, font
|
|
128
|
+
* installation, …). Pass-through shape: name/image required, the rest
|
|
129
|
+
* follows the Kubernetes container spec.
|
|
130
|
+
*/
|
|
131
|
+
initContainers?: ({
|
|
132
|
+
name: string;
|
|
133
|
+
image: string;
|
|
134
|
+
} & Record<string, unknown>)[];
|
|
135
|
+
/** Container lifecycle hooks (e.g. { preStop: { exec: { command: [...] } } }) */
|
|
136
|
+
lifecycle?: Record<string, unknown>;
|
|
137
|
+
/**
|
|
138
|
+
* Image pull policy. Default depends on the tag: floating tags
|
|
139
|
+
* (latest/main/master/dev/edge/head/nightly/canary) get 'Always', pinned
|
|
140
|
+
* tags and digests get 'IfNotPresent' (immutable — pointless to re-pull).
|
|
141
|
+
*/
|
|
142
|
+
imagePullPolicy?: 'Always' | 'IfNotPresent' | 'Never';
|
|
143
|
+
/** Names of Secrets used to pull private registry images */
|
|
144
|
+
imagePullSecrets?: string[];
|
|
48
145
|
}
|
|
49
146
|
/**
|
|
50
147
|
* Simple web service (backend or frontend).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web-service.d.ts","sourceRoot":"","sources":["../src/web-service.tsx"],"names":[],"mappings":"AACA,OAAO,EAAuB,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAI5D,MAAM,WAAW,SAAS;IACxB,0DAA0D;IAC1D,MAAM,EAAE,MAAM,CAAA;IACd,uDAAuD;IACvD,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,cAAc;IAC7B,0BAA0B;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,2BAA2B;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,6DAA6D;IAC7D,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,uDAAuD;IACvD,YAAY,CAAC,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"web-service.d.ts","sourceRoot":"","sources":["../src/web-service.tsx"],"names":[],"mappings":"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"}
|
package/dist/web-service.js
CHANGED
|
@@ -42,14 +42,71 @@ const operators_1 = require("./operators");
|
|
|
42
42
|
* )
|
|
43
43
|
*/
|
|
44
44
|
function WebService(props) {
|
|
45
|
-
const { name, namespace
|
|
45
|
+
const { name, namespace: namespaceProp, image, port = 3000, replicas = 2, probes, env = {}, secrets = {}, vault = {}, command, args, rawEnv = [], resources, securityContext, podSecurityContext, tolerations, topologySpreadConstraints, strategy, volumes, volumeMounts, initContainers, lifecycle, imagePullPolicy, imagePullSecrets, } = props;
|
|
46
|
+
const buildProbe = (spec, fallbackPath) => {
|
|
47
|
+
if (spec === null)
|
|
48
|
+
return undefined;
|
|
49
|
+
if (!spec)
|
|
50
|
+
return { httpGet: { path: fallbackPath, port }, initialDelaySeconds: 10, periodSeconds: 10 };
|
|
51
|
+
const initialDelaySeconds = spec.initialDelaySeconds ?? 10;
|
|
52
|
+
const periodSeconds = spec.periodSeconds ?? 10;
|
|
53
|
+
if (spec.tcp) {
|
|
54
|
+
return {
|
|
55
|
+
tcpSocket: { port: spec.port ?? port },
|
|
56
|
+
initialDelaySeconds,
|
|
57
|
+
periodSeconds,
|
|
58
|
+
// !== undefined (not truthy): an explicit 0 must surface as-is so
|
|
59
|
+
// Kubernetes validation fails loudly instead of silently reverting
|
|
60
|
+
// to the default
|
|
61
|
+
...(spec.failureThreshold !== undefined && { failureThreshold: spec.failureThreshold }),
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
return {
|
|
65
|
+
httpGet: { path: spec.path ?? fallbackPath, port: spec.port ?? port },
|
|
66
|
+
initialDelaySeconds,
|
|
67
|
+
periodSeconds,
|
|
68
|
+
...(spec.failureThreshold !== undefined && { failureThreshold: spec.failureThreshold }),
|
|
69
|
+
};
|
|
70
|
+
};
|
|
71
|
+
const livenessProbe = buildProbe(probes?.liveness, '/health');
|
|
72
|
+
const readinessProbe = buildProbe(probes?.readiness, '/ready');
|
|
73
|
+
const startupProbe = buildProbe(probes?.startup ?? null, '/health');
|
|
74
|
+
// --- Safe defaults derived from the image and storage shape -------------
|
|
75
|
+
// imagePullPolicy: a floating tag must be re-pulled (Always); a pinned tag
|
|
76
|
+
// (or digest) is immutable, so IfNotPresent avoids pointless pulls and
|
|
77
|
+
// makes deploys robust when a registry is slow/unreachable. Explicit prop
|
|
78
|
+
// always wins. Floating set covers the conventional mutables.
|
|
79
|
+
const imageLeaf = image.slice(image.lastIndexOf('/') + 1);
|
|
80
|
+
const imageTag = imageLeaf.includes('@')
|
|
81
|
+
? imageLeaf.slice(imageLeaf.indexOf('@') + 1)
|
|
82
|
+
: imageLeaf.includes(':')
|
|
83
|
+
? imageLeaf.slice(imageLeaf.indexOf(':') + 1)
|
|
84
|
+
: 'latest';
|
|
85
|
+
const FLOATING_TAGS = new Set([
|
|
86
|
+
'latest',
|
|
87
|
+
'main',
|
|
88
|
+
'master',
|
|
89
|
+
'dev',
|
|
90
|
+
'edge',
|
|
91
|
+
'head',
|
|
92
|
+
'nightly',
|
|
93
|
+
'canary',
|
|
94
|
+
]);
|
|
95
|
+
const pullPolicy = imagePullPolicy ??
|
|
96
|
+
(!imageLeaf.includes('@') && FLOATING_TAGS.has(imageTag.toLowerCase())
|
|
97
|
+
? 'Always'
|
|
98
|
+
: 'IfNotPresent');
|
|
99
|
+
// strategy: RollingUpdate + a ReadWriteOnce PVC + replicas=1 deadlocks
|
|
100
|
+
// (the new pod cannot attach the volume until the old releases it), and
|
|
101
|
+
// in-place DB-migration apps (n8n, outline) must not run two versions at
|
|
102
|
+
// once. Recreate is always safe at replicas=1 — there is already no HA.
|
|
103
|
+
const hasPvcVolume = (volumes ?? []).some((v) => 'persistentVolumeClaim' in v);
|
|
104
|
+
const derivedStrategy = strategy ?? (hasPvcVolume && replicas === 1 ? 'Recreate' : undefined);
|
|
46
105
|
const envVars = [];
|
|
47
106
|
const vaultResources = [];
|
|
48
|
-
//
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
}
|
|
52
|
-
// Secrets from Kubernetes Secrets
|
|
107
|
+
// Secrets from Kubernetes Secrets — pushed before plain env vars so
|
|
108
|
+
// Kubernetes dependent-variable expansion lets env values reference
|
|
109
|
+
// secret-backed vars via $(VAR).
|
|
53
110
|
for (const [envName, ref] of Object.entries(secrets)) {
|
|
54
111
|
if (typeof ref === 'string') {
|
|
55
112
|
// Simple string: secret name, key = env name
|
|
@@ -66,9 +123,21 @@ function WebService(props) {
|
|
|
66
123
|
});
|
|
67
124
|
}
|
|
68
125
|
}
|
|
126
|
+
// Plain env vars
|
|
127
|
+
for (const [key, value] of Object.entries(env)) {
|
|
128
|
+
envVars.push({ name: key, value });
|
|
129
|
+
}
|
|
69
130
|
// Vault secrets — create VaultStaticSecret objects
|
|
131
|
+
const namespace = (0, defaults_1.useNamespace)(namespaceProp);
|
|
132
|
+
const platformSecrets = (0, core_1.useContext)(defaults_1.SecretContext);
|
|
70
133
|
for (const [envName, ref] of Object.entries(vault)) {
|
|
71
134
|
const secretName = `${name}-${envName.toLowerCase().replace(/_/g, '-')}-vault`;
|
|
135
|
+
const refreshAfter = ref.refreshAfter ?? platformSecrets?.refreshAfter;
|
|
136
|
+
const targets = ref.rolloutRestartTargets?.map((t) => ({
|
|
137
|
+
apiVersion: t.apiVersion ?? 'apps/v1',
|
|
138
|
+
kind: t.kind ?? 'Deployment',
|
|
139
|
+
name: t.name,
|
|
140
|
+
}));
|
|
72
141
|
// Create VaultStaticSecret
|
|
73
142
|
vaultResources.push((0, core_1.jsx)('VaultStaticSecret', {
|
|
74
143
|
apiVersion: 'secrets.hashicorp.com/v1beta1',
|
|
@@ -79,9 +148,17 @@ function WebService(props) {
|
|
|
79
148
|
mount: ref.mount,
|
|
80
149
|
type: 'kv-v2',
|
|
81
150
|
path: ref.path,
|
|
151
|
+
...(refreshAfter && { refreshAfter }),
|
|
152
|
+
...(targets && targets.length > 0 && { rolloutRestartTargets: targets }),
|
|
82
153
|
destination: {
|
|
83
154
|
create: true,
|
|
84
155
|
name: secretName,
|
|
156
|
+
...(ref.templates &&
|
|
157
|
+
Object.keys(ref.templates).length > 0 && {
|
|
158
|
+
transformation: {
|
|
159
|
+
templates: Object.fromEntries(Object.entries(ref.templates).map(([k, text]) => [k, { text }])),
|
|
160
|
+
},
|
|
161
|
+
}),
|
|
85
162
|
},
|
|
86
163
|
},
|
|
87
164
|
}));
|
|
@@ -129,27 +206,39 @@ function WebService(props) {
|
|
|
129
206
|
metadata: { name, namespace, labels: { app: name } },
|
|
130
207
|
spec: {
|
|
131
208
|
replicas,
|
|
209
|
+
...(derivedStrategy && {
|
|
210
|
+
strategy: typeof derivedStrategy === 'string' ? { type: derivedStrategy } : derivedStrategy,
|
|
211
|
+
}),
|
|
132
212
|
selector: { matchLabels: { app: name } },
|
|
133
213
|
template: {
|
|
134
214
|
metadata: { labels: { app: name } },
|
|
135
215
|
spec: {
|
|
216
|
+
...(podSecurityContext && { securityContext: podSecurityContext }),
|
|
217
|
+
...(tolerations && { tolerations }),
|
|
218
|
+
...(topologySpreadConstraints && { topologySpreadConstraints }),
|
|
219
|
+
...(imagePullSecrets &&
|
|
220
|
+
imagePullSecrets.length > 0 && {
|
|
221
|
+
imagePullSecrets: imagePullSecrets.map((name) => ({ name })),
|
|
222
|
+
}),
|
|
223
|
+
...(initContainers &&
|
|
224
|
+
initContainers.length > 0 && { initContainers: initContainers }),
|
|
225
|
+
...(volumes && volumes.length > 0 && { volumes: volumes }),
|
|
136
226
|
containers: [
|
|
137
227
|
{
|
|
138
228
|
name: 'app',
|
|
139
229
|
image,
|
|
230
|
+
imagePullPolicy: pullPolicy,
|
|
231
|
+
...(command && { command }),
|
|
232
|
+
...(args && { args }),
|
|
140
233
|
ports: [{ containerPort: port }],
|
|
141
234
|
env: envVars,
|
|
142
235
|
...(resources && { resources }),
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
},
|
|
148
|
-
readinessProbe
|
|
149
|
-
httpGet: { path: '/ready', port },
|
|
150
|
-
initialDelaySeconds: 5,
|
|
151
|
-
periodSeconds: 5,
|
|
152
|
-
},
|
|
236
|
+
...(securityContext && { securityContext }),
|
|
237
|
+
...(lifecycle && { lifecycle: lifecycle }),
|
|
238
|
+
...(volumeMounts && volumeMounts.length > 0 && { volumeMounts }),
|
|
239
|
+
...(startupProbe && { startupProbe }),
|
|
240
|
+
...(livenessProbe && { livenessProbe }),
|
|
241
|
+
...(readinessProbe && { readinessProbe }),
|
|
153
242
|
},
|
|
154
243
|
],
|
|
155
244
|
},
|
|
@@ -163,7 +252,18 @@ function WebService(props) {
|
|
|
163
252
|
spec: {
|
|
164
253
|
type: 'ClusterIP',
|
|
165
254
|
selector: { app: name },
|
|
166
|
-
|
|
255
|
+
// Expose the app port directly (so consumers can reference it) while
|
|
256
|
+
// keeping 80 as a stable backward-compatible alias: existing
|
|
257
|
+
// Endpoints/default servicePort=80 users keep routing during
|
|
258
|
+
// migration to explicit servicePort.
|
|
259
|
+
// Port names are REQUIRED whenever a Service has more than one port —
|
|
260
|
+
// without them the API server rejects the resource (caught by Flux
|
|
261
|
+
// dry-run as "spec.ports[i].name: Required value").
|
|
262
|
+
ports: [
|
|
263
|
+
{ name: 'http', port, targetPort: port },
|
|
264
|
+
// eslint-disable-next-line -- 80 alias for legacy servicePort=80 consumers
|
|
265
|
+
...(port !== 80 ? [{ name: 'http-80', port: 80, targetPort: port }] : []),
|
|
266
|
+
],
|
|
167
267
|
},
|
|
168
268
|
};
|
|
169
269
|
return [...vaultResources, (0, core_1.jsx)('Deployment', deployment), (0, core_1.jsx)('Service', service)];
|
package/dist/web-service.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web-service.js","sourceRoot":"","sources":["../src/web-service.tsx"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"web-service.js","sourceRoot":"","sources":["../src/web-service.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@r8s/recipes",
|
|
3
|
-
"version": "0.1
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"description": "Pre-built Kubernetes component recipes for r8s",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Berget AI AB",
|
|
@@ -37,9 +37,9 @@
|
|
|
37
37
|
"clean": "rm -rf dist tsconfig.tsbuildinfo"
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
|
-
"@r8s/core": "^0.
|
|
41
|
-
"@r8s/k8s-types": "^0.
|
|
42
|
-
"@r8s/crds": "^0.
|
|
40
|
+
"@r8s/core": "^0.2.0",
|
|
41
|
+
"@r8s/k8s-types": "^0.2.0",
|
|
42
|
+
"@r8s/crds": "^0.2.0"
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
45
45
|
"typescript": "^5.3.0",
|