dagger-env 0.6.2 → 0.6.4
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/dagger-env.d.ts +72 -0
- package/dist/dagger-env.d.ts.map +1 -0
- package/dist/dagger-env.js +159 -0
- package/dist/dagger-env.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/op.d.ts +90 -0
- package/dist/op.d.ts.map +1 -0
- package/dist/op.js +34 -0
- package/dist/op.js.map +1 -0
- package/dist/run-dagger-cmd.d.ts +39 -0
- package/dist/run-dagger-cmd.d.ts.map +1 -0
- package/dist/run-dagger-cmd.js +82 -0
- package/dist/run-dagger-cmd.js.map +1 -0
- package/package.json +4 -4
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { z } from 'zod/v4';
|
|
2
|
+
import type { Container, Secret } from '@dagger.io/dagger';
|
|
3
|
+
/**
|
|
4
|
+
* Generic configuration for DaggerEnv
|
|
5
|
+
*/
|
|
6
|
+
export type DaggerEnvConfig = {
|
|
7
|
+
/** Arguments schema */
|
|
8
|
+
args: z.ZodObject<any>;
|
|
9
|
+
/** Environment variables schema */
|
|
10
|
+
env: z.ZodObject<any>;
|
|
11
|
+
/** Secrets schema */
|
|
12
|
+
secrets: z.ZodObject<any>;
|
|
13
|
+
/** Secret presets mapping preset names to arrays of secret names */
|
|
14
|
+
secretPresets: Record<string, readonly string[]>;
|
|
15
|
+
/** Derived environment variables based on secret names */
|
|
16
|
+
derivedEnvVars: Record<string, Record<string, string>>;
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Inferred options type from config
|
|
20
|
+
*/
|
|
21
|
+
export type DaggerOptionsFromConfig<T extends DaggerEnvConfig> = {
|
|
22
|
+
args: z.output<T['args']>;
|
|
23
|
+
env: z.output<T['env']>;
|
|
24
|
+
secrets: z.output<T['secrets']>;
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Reusable Dagger environment abstraction
|
|
28
|
+
*/
|
|
29
|
+
export declare class DaggerEnv<T extends DaggerEnvConfig> {
|
|
30
|
+
private readonly config;
|
|
31
|
+
private readonly optionsSchema;
|
|
32
|
+
constructor(config: T);
|
|
33
|
+
/**
|
|
34
|
+
* Parse dagger options from a Secret
|
|
35
|
+
*/
|
|
36
|
+
parseDaggerOptions(options: Secret): Promise<DaggerOptionsFromConfig<T>>;
|
|
37
|
+
/**
|
|
38
|
+
* Create a function that applies environment variables and secrets to a container
|
|
39
|
+
* based on the provided Dagger options, secret presets, and additional secret names.
|
|
40
|
+
*/
|
|
41
|
+
getWithEnv(daggerOptions: Secret | DaggerOptionsFromConfig<T>, secretPresets: Array<Extract<keyof T['secretPresets'], string>>, secretNames?: Array<Extract<keyof z.output<T['secrets']>, string>>): Promise<{
|
|
42
|
+
/**
|
|
43
|
+
* Apply environment variables and secrets to a container
|
|
44
|
+
*/
|
|
45
|
+
withEnv: (con: Container) => Container;
|
|
46
|
+
/**
|
|
47
|
+
* Remove environment variables and secrets from a container
|
|
48
|
+
*/
|
|
49
|
+
withoutEnv: (con: Container) => Container;
|
|
50
|
+
}>;
|
|
51
|
+
/**
|
|
52
|
+
* Get the options schema for this DaggerEnv instance
|
|
53
|
+
*/
|
|
54
|
+
getOptionsSchema(): z.ZodObject<{
|
|
55
|
+
args: T["args"];
|
|
56
|
+
env: T["env"];
|
|
57
|
+
secrets: T["secrets"];
|
|
58
|
+
}, z.core.$strip>;
|
|
59
|
+
/**
|
|
60
|
+
* Get available secret presets
|
|
61
|
+
*/
|
|
62
|
+
getSecretPresets(): Array<keyof T['secretPresets']>;
|
|
63
|
+
/**
|
|
64
|
+
* Get secrets for a specific preset
|
|
65
|
+
*/
|
|
66
|
+
getPresetSecrets(preset: Extract<keyof T['secretPresets'], string>): readonly string[];
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Helper function to create a DaggerEnv instance with proper typing
|
|
70
|
+
*/
|
|
71
|
+
export declare function createDaggerEnv<T extends DaggerEnvConfig>(config: T): DaggerEnv<T>;
|
|
72
|
+
//# sourceMappingURL=dagger-env.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dagger-env.d.ts","sourceRoot":"","sources":["../src/dagger-env.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAE1B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAE1D;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG;IAC7B,uBAAuB;IACvB,IAAI,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;IACtB,mCAAmC;IACnC,GAAG,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;IACrB,qBAAqB;IACrB,OAAO,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;IACzB,oEAAoE;IACpE,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAA;IAChD,0DAA0D;IAC1D,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;CACtD,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,uBAAuB,CAAC,CAAC,SAAS,eAAe,IAAI;IAChE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;IACzB,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAA;IACvB,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAA;CAC/B,CAAA;AAED;;GAEG;AACH,qBAAa,SAAS,CAAC,CAAC,SAAS,eAAe;IAOnC,OAAO,CAAC,QAAQ,CAAC,MAAM;IANnC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAI5B;gBAE2B,MAAM,EAAE,CAAC;IAQtC;;OAEG;IACG,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC;IAM9E;;;OAGG;IACG,UAAU,CACf,aAAa,EAAE,MAAM,GAAG,uBAAuB,CAAC,CAAC,CAAC,EAClD,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC,CAAC,EAC/D,WAAW,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAChE,OAAO,CAAC;QACV;;WAEG;QACH,OAAO,EAAE,CAAC,GAAG,EAAE,SAAS,KAAK,SAAS,CAAA;QACtC;;WAEG;QACH,UAAU,EAAE,CAAC,GAAG,EAAE,SAAS,KAAK,SAAS,CAAA;KACzC,CAAC;IAyHF;;OAEG;IACH,gBAAgB;cAnKT,CAAC,CAAC,MAAM,CAAC;aACV,CAAC,CAAC,KAAK,CAAC;iBACJ,CAAC,CAAC,SAAS,CAAC;;IAqKtB;;OAEG;IACH,gBAAgB,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC;IAInD;;OAEG;IACH,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC,GAAG,SAAS,MAAM,EAAE;CAOtF;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS,eAAe,EAAE,MAAM,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAElF"}
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
import { dag } from '@dagger.io/dagger';
|
|
2
|
+
import { z } from 'zod/v4';
|
|
3
|
+
/**
|
|
4
|
+
* Reusable Dagger environment abstraction
|
|
5
|
+
*/
|
|
6
|
+
export class DaggerEnv {
|
|
7
|
+
config;
|
|
8
|
+
optionsSchema;
|
|
9
|
+
constructor(config) {
|
|
10
|
+
this.config = config;
|
|
11
|
+
this.optionsSchema = z.object({
|
|
12
|
+
args: config.args,
|
|
13
|
+
env: config.env,
|
|
14
|
+
secrets: config.secrets,
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Parse dagger options from a Secret
|
|
19
|
+
*/
|
|
20
|
+
async parseDaggerOptions(options) {
|
|
21
|
+
return this.optionsSchema.parse(JSON.parse(await options.plaintext()));
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Create a function that applies environment variables and secrets to a container
|
|
25
|
+
* based on the provided Dagger options, secret presets, and additional secret names.
|
|
26
|
+
*/
|
|
27
|
+
async getWithEnv(daggerOptions, secretPresets, secretNames) {
|
|
28
|
+
const isSecret = (obj) => obj &&
|
|
29
|
+
typeof obj === 'object' &&
|
|
30
|
+
'id' in obj &&
|
|
31
|
+
'plaintext' in obj &&
|
|
32
|
+
typeof obj.id === 'function' &&
|
|
33
|
+
typeof obj.plaintext === 'function';
|
|
34
|
+
const opts = isSecret(daggerOptions)
|
|
35
|
+
? await this.parseDaggerOptions(daggerOptions)
|
|
36
|
+
: daggerOptions;
|
|
37
|
+
return {
|
|
38
|
+
withEnv: (con) => {
|
|
39
|
+
let c = con;
|
|
40
|
+
// Add individual secret names
|
|
41
|
+
for (const name of secretNames ?? []) {
|
|
42
|
+
if (typeof name === 'string' && name in opts.secrets) {
|
|
43
|
+
const secret = opts.secrets[name];
|
|
44
|
+
if (!secret) {
|
|
45
|
+
throw new Error(`Secret ${name} is undefined`);
|
|
46
|
+
}
|
|
47
|
+
c = c.withSecretVariable(name, dag.setSecret(name, secret));
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
const allSecretNames = [...(secretNames ?? [])];
|
|
51
|
+
// Add secret presets
|
|
52
|
+
for (const preset of secretPresets) {
|
|
53
|
+
const presetSecrets = this.config.secretPresets[preset];
|
|
54
|
+
if (!presetSecrets) {
|
|
55
|
+
throw new Error(`Unknown secret preset: ${String(preset)}`);
|
|
56
|
+
}
|
|
57
|
+
for (const secretName of presetSecrets) {
|
|
58
|
+
const secret = opts.secrets[secretName];
|
|
59
|
+
if (!secret) {
|
|
60
|
+
throw new Error(`Secret ${secretName} is undefined`);
|
|
61
|
+
}
|
|
62
|
+
allSecretNames.push(secretName);
|
|
63
|
+
c = c.withSecretVariable(secretName, dag.setSecret(secretName, secret));
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
// Add derived env vars based on secretNames
|
|
67
|
+
for (const name of allSecretNames) {
|
|
68
|
+
const derivedEnvVars = this.config.derivedEnvVars[name];
|
|
69
|
+
if (derivedEnvVars) {
|
|
70
|
+
for (const [key, value] of Object.entries(derivedEnvVars)) {
|
|
71
|
+
c = c.withEnvVariable(key, value);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
// Add environment variables from options
|
|
76
|
+
const envVars = opts.env;
|
|
77
|
+
for (const [key, value] of Object.entries(envVars)) {
|
|
78
|
+
if (value !== undefined && typeof value === 'string') {
|
|
79
|
+
c = c.withEnvVariable(key, value);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
return c;
|
|
83
|
+
},
|
|
84
|
+
withoutEnv: (con) => {
|
|
85
|
+
let c = con;
|
|
86
|
+
// Add individual secret names
|
|
87
|
+
for (const name of secretNames ?? []) {
|
|
88
|
+
if (typeof name === 'string' && name in opts.secrets) {
|
|
89
|
+
const secret = opts.secrets[name];
|
|
90
|
+
if (!secret) {
|
|
91
|
+
throw new Error(`Secret ${name} is undefined`);
|
|
92
|
+
}
|
|
93
|
+
c = c.withoutSecretVariable(name);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
const allSecretNames = [...(secretNames ?? [])];
|
|
97
|
+
// remove secret presets
|
|
98
|
+
for (const preset of secretPresets) {
|
|
99
|
+
const presetSecrets = this.config.secretPresets[preset];
|
|
100
|
+
if (!presetSecrets) {
|
|
101
|
+
throw new Error(`Unknown secret preset: ${String(preset)}`);
|
|
102
|
+
}
|
|
103
|
+
for (const secretName of presetSecrets) {
|
|
104
|
+
const secret = opts.secrets[secretName];
|
|
105
|
+
if (!secret) {
|
|
106
|
+
throw new Error(`Secret ${secretName} is undefined`);
|
|
107
|
+
}
|
|
108
|
+
allSecretNames.push(secretName);
|
|
109
|
+
c = c.withoutSecretVariable(secretName);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
// remove derived env vars based on secretNames
|
|
113
|
+
for (const name of allSecretNames) {
|
|
114
|
+
const derivedEnvVars = this.config.derivedEnvVars[name];
|
|
115
|
+
if (derivedEnvVars) {
|
|
116
|
+
for (const key of Object.keys(derivedEnvVars)) {
|
|
117
|
+
c = c.withoutEnvVariable(key);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
// remove environment variables from options
|
|
122
|
+
const envVars = opts.env;
|
|
123
|
+
for (const key of Object.keys(envVars)) {
|
|
124
|
+
c = c.withoutEnvVariable(key);
|
|
125
|
+
}
|
|
126
|
+
return c;
|
|
127
|
+
},
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Get the options schema for this DaggerEnv instance
|
|
132
|
+
*/
|
|
133
|
+
getOptionsSchema() {
|
|
134
|
+
return this.optionsSchema;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Get available secret presets
|
|
138
|
+
*/
|
|
139
|
+
getSecretPresets() {
|
|
140
|
+
return Object.keys(this.config.secretPresets);
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Get secrets for a specific preset
|
|
144
|
+
*/
|
|
145
|
+
getPresetSecrets(preset) {
|
|
146
|
+
const secrets = this.config.secretPresets[preset];
|
|
147
|
+
if (!secrets) {
|
|
148
|
+
throw new Error(`Unknown secret preset: ${String(preset)}`);
|
|
149
|
+
}
|
|
150
|
+
return secrets;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Helper function to create a DaggerEnv instance with proper typing
|
|
155
|
+
*/
|
|
156
|
+
export function createDaggerEnv(config) {
|
|
157
|
+
return new DaggerEnv(config);
|
|
158
|
+
}
|
|
159
|
+
//# sourceMappingURL=dagger-env.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dagger-env.js","sourceRoot":"","sources":["../src/dagger-env.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA"}
|
package/dist/op.d.ts
ADDED
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { z } from 'zod/v4';
|
|
2
|
+
/**
|
|
3
|
+
* 1Password vault information
|
|
4
|
+
*/
|
|
5
|
+
export type OPVault = z.infer<typeof OPVault>;
|
|
6
|
+
export declare const OPVault: z.ZodObject<{
|
|
7
|
+
id: z.ZodString;
|
|
8
|
+
name: z.ZodString;
|
|
9
|
+
}, z.core.$strip>;
|
|
10
|
+
/**
|
|
11
|
+
* 1Password item section information
|
|
12
|
+
*/
|
|
13
|
+
export type OPSection = z.infer<typeof OPSection>;
|
|
14
|
+
export declare const OPSection: z.ZodObject<{
|
|
15
|
+
id: z.ZodString;
|
|
16
|
+
label: z.ZodOptional<z.ZodString>;
|
|
17
|
+
}, z.core.$strip>;
|
|
18
|
+
/**
|
|
19
|
+
* 1Password item field
|
|
20
|
+
*/
|
|
21
|
+
export type OPField = z.infer<typeof OPField>;
|
|
22
|
+
export declare const OPField: z.ZodObject<{
|
|
23
|
+
id: z.ZodString;
|
|
24
|
+
section: z.ZodOptional<z.ZodObject<{
|
|
25
|
+
id: z.ZodString;
|
|
26
|
+
label: z.ZodOptional<z.ZodString>;
|
|
27
|
+
}, z.core.$strip>>;
|
|
28
|
+
type: z.ZodEnum<{
|
|
29
|
+
STRING: "STRING";
|
|
30
|
+
CONCEALED: "CONCEALED";
|
|
31
|
+
MONTH_YEAR: "MONTH_YEAR";
|
|
32
|
+
}>;
|
|
33
|
+
purpose: z.ZodOptional<z.ZodEnum<{
|
|
34
|
+
NOTES: "NOTES";
|
|
35
|
+
}>>;
|
|
36
|
+
label: z.ZodString;
|
|
37
|
+
value: z.ZodString;
|
|
38
|
+
reference: z.ZodString;
|
|
39
|
+
}, z.core.$strip>;
|
|
40
|
+
/**
|
|
41
|
+
* 1Password item category
|
|
42
|
+
*/
|
|
43
|
+
export type OPCategory = z.infer<typeof OPCategory>;
|
|
44
|
+
export declare const OPCategory: z.ZodEnum<{
|
|
45
|
+
SECURE_NOTE: "SECURE_NOTE";
|
|
46
|
+
}>;
|
|
47
|
+
/**
|
|
48
|
+
* Complete 1Password item structure
|
|
49
|
+
*/
|
|
50
|
+
export type OPItem = z.infer<typeof OPItem>;
|
|
51
|
+
export declare const OPItem: z.ZodObject<{
|
|
52
|
+
id: z.ZodString;
|
|
53
|
+
title: z.ZodString;
|
|
54
|
+
favorite: z.ZodBoolean;
|
|
55
|
+
version: z.ZodInt;
|
|
56
|
+
vault: z.ZodObject<{
|
|
57
|
+
id: z.ZodString;
|
|
58
|
+
name: z.ZodString;
|
|
59
|
+
}, z.core.$strip>;
|
|
60
|
+
category: z.ZodEnum<{
|
|
61
|
+
SECURE_NOTE: "SECURE_NOTE";
|
|
62
|
+
}>;
|
|
63
|
+
last_edited_by: z.ZodString;
|
|
64
|
+
created_at: z.ZodISODateTime;
|
|
65
|
+
updated_at: z.ZodISODateTime;
|
|
66
|
+
additional_information: z.ZodString;
|
|
67
|
+
sections: z.ZodArray<z.ZodObject<{
|
|
68
|
+
id: z.ZodString;
|
|
69
|
+
label: z.ZodOptional<z.ZodString>;
|
|
70
|
+
}, z.core.$strip>>;
|
|
71
|
+
fields: z.ZodArray<z.ZodObject<{
|
|
72
|
+
id: z.ZodString;
|
|
73
|
+
section: z.ZodOptional<z.ZodObject<{
|
|
74
|
+
id: z.ZodString;
|
|
75
|
+
label: z.ZodOptional<z.ZodString>;
|
|
76
|
+
}, z.core.$strip>>;
|
|
77
|
+
type: z.ZodEnum<{
|
|
78
|
+
STRING: "STRING";
|
|
79
|
+
CONCEALED: "CONCEALED";
|
|
80
|
+
MONTH_YEAR: "MONTH_YEAR";
|
|
81
|
+
}>;
|
|
82
|
+
purpose: z.ZodOptional<z.ZodEnum<{
|
|
83
|
+
NOTES: "NOTES";
|
|
84
|
+
}>>;
|
|
85
|
+
label: z.ZodString;
|
|
86
|
+
value: z.ZodString;
|
|
87
|
+
reference: z.ZodString;
|
|
88
|
+
}, z.core.$strip>>;
|
|
89
|
+
}, z.core.$strip>;
|
|
90
|
+
//# sourceMappingURL=op.d.ts.map
|
package/dist/op.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"op.d.ts","sourceRoot":"","sources":["../src/op.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAE1B;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAA;AAC7C,eAAO,MAAM,OAAO;;;iBAGlB,CAAA;AAEF;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,CAAA;AACjD,eAAO,MAAM,SAAS;;;iBAGpB,CAAA;AAEF;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAA;AAC7C,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;iBAQlB,CAAA;AAEF;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAA;AACnD,eAAO,MAAM,UAAU;;EAA0B,CAAA;AAEjD;;GAEG;AACH,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,MAAM,CAAC,CAAA;AAC3C,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAajB,CAAA"}
|
package/dist/op.js
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { z } from 'zod/v4';
|
|
2
|
+
export const OPVault = z.object({
|
|
3
|
+
id: z.string(),
|
|
4
|
+
name: z.string(),
|
|
5
|
+
});
|
|
6
|
+
export const OPSection = z.object({
|
|
7
|
+
id: z.string(),
|
|
8
|
+
label: z.string().optional(),
|
|
9
|
+
});
|
|
10
|
+
export const OPField = z.object({
|
|
11
|
+
id: z.string(),
|
|
12
|
+
section: OPSection.optional(),
|
|
13
|
+
type: z.enum(['STRING', 'CONCEALED', 'MONTH_YEAR']),
|
|
14
|
+
purpose: z.enum(['NOTES']).optional(),
|
|
15
|
+
label: z.string(),
|
|
16
|
+
value: z.string(),
|
|
17
|
+
reference: z.string(),
|
|
18
|
+
});
|
|
19
|
+
export const OPCategory = z.enum(['SECURE_NOTE']);
|
|
20
|
+
export const OPItem = z.object({
|
|
21
|
+
id: z.string(),
|
|
22
|
+
title: z.string(),
|
|
23
|
+
favorite: z.boolean(),
|
|
24
|
+
version: z.int(),
|
|
25
|
+
vault: OPVault,
|
|
26
|
+
category: OPCategory,
|
|
27
|
+
last_edited_by: z.string(),
|
|
28
|
+
created_at: z.iso.datetime(),
|
|
29
|
+
updated_at: z.iso.datetime(),
|
|
30
|
+
additional_information: z.string(),
|
|
31
|
+
sections: z.array(OPSection),
|
|
32
|
+
fields: z.array(OPField),
|
|
33
|
+
});
|
|
34
|
+
//# sourceMappingURL=op.js.map
|
package/dist/op.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"op.js","sourceRoot":"","sources":["../src/op.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAM1B,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;CAChB,CAAC,CAAA;AAMF,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC5B,CAAC,CAAA;AAMF,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,OAAO,EAAE,SAAS,CAAC,QAAQ,EAAE;IAC7B,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;IACnD,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE;IACrC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;CACrB,CAAC,CAAA;AAMF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,CAAC,CAAA;AAMjD,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9B,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE;IACrB,OAAO,EAAE,CAAC,CAAC,GAAG,EAAE;IAChB,KAAK,EAAE,OAAO;IACd,QAAQ,EAAE,UAAU;IACpB,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;IAC1B,UAAU,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE;IAC5B,UAAU,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE;IAC5B,sBAAsB,EAAE,CAAC,CAAC,MAAM,EAAE;IAClC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC;IAC5B,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;CACxB,CAAC,CAAA"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { DaggerEnv, DaggerEnvConfig } from './dagger-env.js';
|
|
2
|
+
/**
|
|
3
|
+
* Configuration for running Dagger commands with 1Password integration
|
|
4
|
+
*/
|
|
5
|
+
export interface RunDaggerCommandConfig<T extends DaggerEnvConfig = DaggerEnvConfig> {
|
|
6
|
+
/** 1Password vault ID */
|
|
7
|
+
opVault: string;
|
|
8
|
+
/** 1Password item ID */
|
|
9
|
+
opItem: string;
|
|
10
|
+
/** 1Password sections to include for secrets */
|
|
11
|
+
opSections: Array<{
|
|
12
|
+
label: string;
|
|
13
|
+
id: string;
|
|
14
|
+
}>;
|
|
15
|
+
/** Commands that should include Docker socket if available */
|
|
16
|
+
dockerCommands?: string[];
|
|
17
|
+
/** Hook to run before executing the command (e.g., vendor file setup) */
|
|
18
|
+
beforeCommand?: () => Promise<void>;
|
|
19
|
+
/** DaggerEnv instance for schema validation and type safety */
|
|
20
|
+
daggerEnv: DaggerEnv<T>;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Options for individual command execution
|
|
24
|
+
*/
|
|
25
|
+
export interface RunDaggerCommandOptions {
|
|
26
|
+
/** Arguments to pass to the Dagger command */
|
|
27
|
+
args?: Record<string, any>;
|
|
28
|
+
/** Additional environment variables */
|
|
29
|
+
env?: Record<string, string>;
|
|
30
|
+
/** Additional command-line arguments */
|
|
31
|
+
extraArgs?: string[];
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Creates a function to run Dagger commands with 1Password integration
|
|
35
|
+
* @param config Configuration for the command runner
|
|
36
|
+
* @returns Function to execute Dagger commands
|
|
37
|
+
*/
|
|
38
|
+
export declare function createDaggerCommandRunner<T extends DaggerEnvConfig>(config: RunDaggerCommandConfig<T>): (commandName: string, options?: RunDaggerCommandOptions) => Promise<void>;
|
|
39
|
+
//# sourceMappingURL=run-dagger-cmd.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-dagger-cmd.d.ts","sourceRoot":"","sources":["../src/run-dagger-cmd.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAEjE;;GAEG;AACH,MAAM,WAAW,sBAAsB,CAAC,CAAC,SAAS,eAAe,GAAG,eAAe;IAClF,yBAAyB;IACzB,OAAO,EAAE,MAAM,CAAA;IACf,wBAAwB;IACxB,MAAM,EAAE,MAAM,CAAA;IACd,gDAAgD;IAChD,UAAU,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAChD,8DAA8D;IAC9D,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;IACzB,yEAAyE;IACzE,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IACnC,+DAA+D;IAC/D,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAA;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACvC,8CAA8C;IAC9C,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC1B,uCAAuC;IACvC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC5B,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;CACpB;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,CAAC,SAAS,eAAe,EAClE,MAAM,EAAE,sBAAsB,CAAC,CAAC,CAAC,IAKhC,aAAa,MAAM,EACnB,UAAU,uBAAuB,KAC/B,OAAO,CAAC,IAAI,CAAC,CAuFhB"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { $, fs } from 'zx';
|
|
2
|
+
import { OPItem, OPSection } from './op.js';
|
|
3
|
+
/**
|
|
4
|
+
* Creates a function to run Dagger commands with 1Password integration
|
|
5
|
+
* @param config Configuration for the command runner
|
|
6
|
+
* @returns Function to execute Dagger commands
|
|
7
|
+
*/
|
|
8
|
+
export function createDaggerCommandRunner(config) {
|
|
9
|
+
const opItemUri = `op://${config.opVault}/${config.opItem}`;
|
|
10
|
+
return async function runDaggerCommand(commandName, options) {
|
|
11
|
+
const { args = {}, env = {}, extraArgs = [] } = options ?? {};
|
|
12
|
+
// Run any pre-command setup
|
|
13
|
+
if (config.beforeCommand) {
|
|
14
|
+
await config.beforeCommand();
|
|
15
|
+
}
|
|
16
|
+
// Environment variables to pass to the `op run` command
|
|
17
|
+
const envVars = {};
|
|
18
|
+
// Pass dagger cloud token in CI because we don't have user auth
|
|
19
|
+
if (process.env.CI !== undefined) {
|
|
20
|
+
envVars.DAGGER_CLOUD_TOKEN = `${opItemUri}/DAGGER_CLOUD_TOKEN`;
|
|
21
|
+
}
|
|
22
|
+
const commandArgs = [...extraArgs];
|
|
23
|
+
// Add Docker socket for specific commands if available
|
|
24
|
+
if (config.dockerCommands?.includes(commandName)) {
|
|
25
|
+
try {
|
|
26
|
+
if (await fs.exists('/var/run/docker.sock')) {
|
|
27
|
+
commandArgs.push('--docker-socket=/var/run/docker.sock');
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
catch {
|
|
31
|
+
// Ignore if fs is not available or docker socket doesn't exist
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
// Fetch 1Password item
|
|
35
|
+
const opItem = OPItem.parse(await $ `op item get ${config.opItem} --vault ${config.opVault} --format json`.json());
|
|
36
|
+
// Parse sections to include
|
|
37
|
+
const sectionsToInclude = OPSection.array().parse(config.opSections);
|
|
38
|
+
// Extract secrets from specified sections
|
|
39
|
+
const secrets = opItem.fields
|
|
40
|
+
.filter((f) => sectionsToInclude.some((s) => s.id === f.section?.id))
|
|
41
|
+
.reduce((acc, f) => {
|
|
42
|
+
acc[f.label] = f.value;
|
|
43
|
+
return acc;
|
|
44
|
+
}, {});
|
|
45
|
+
// Build environment variables for Dagger
|
|
46
|
+
const daggerEnv = { ...env };
|
|
47
|
+
if (process.env.CI !== undefined) {
|
|
48
|
+
daggerEnv.CI = process.env.CI;
|
|
49
|
+
}
|
|
50
|
+
if (process.env.GITHUB_ACTIONS !== undefined) {
|
|
51
|
+
daggerEnv.GITHUB_ACTIONS = process.env.GITHUB_ACTIONS;
|
|
52
|
+
}
|
|
53
|
+
// Validate and serialize dagger options
|
|
54
|
+
const daggerOptions = config.daggerEnv.getOptionsSchema().parse({
|
|
55
|
+
args,
|
|
56
|
+
env: daggerEnv,
|
|
57
|
+
secrets,
|
|
58
|
+
});
|
|
59
|
+
envVars.DAGGER_OPTIONS = JSON.stringify(daggerOptions);
|
|
60
|
+
// Construct the command
|
|
61
|
+
const cmd = [
|
|
62
|
+
'op',
|
|
63
|
+
'run',
|
|
64
|
+
'--no-masking',
|
|
65
|
+
'--',
|
|
66
|
+
'dagger',
|
|
67
|
+
'call',
|
|
68
|
+
commandName,
|
|
69
|
+
...commandArgs,
|
|
70
|
+
'--options=env://DAGGER_OPTIONS',
|
|
71
|
+
];
|
|
72
|
+
// Execute the command
|
|
73
|
+
await $({
|
|
74
|
+
env: {
|
|
75
|
+
...process.env,
|
|
76
|
+
...envVars,
|
|
77
|
+
},
|
|
78
|
+
stdio: 'inherit',
|
|
79
|
+
}) `${cmd}`;
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=run-dagger-cmd.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-dagger-cmd.js","sourceRoot":"","sources":["../src/run-dagger-cmd.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dagger-env",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.4",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "A type-safe, reusable environment configuration abstraction for Dagger modules.",
|
|
6
6
|
"keywords": [
|
|
@@ -54,11 +54,11 @@
|
|
|
54
54
|
"typescript": "5.8.2",
|
|
55
55
|
"vitest": "3.2.4",
|
|
56
56
|
"zod": "4.1.12",
|
|
57
|
-
"@repo/
|
|
58
|
-
"@repo/
|
|
57
|
+
"@repo/tools": "0.12.1",
|
|
58
|
+
"@repo/typescript-config": "0.3.8"
|
|
59
59
|
},
|
|
60
60
|
"peerDependencies": {
|
|
61
|
-
"zod": "^3.25.76 || ^4.1.
|
|
61
|
+
"zod": "^3.25.76 || ^4.1.12"
|
|
62
62
|
},
|
|
63
63
|
"publishConfig": {
|
|
64
64
|
"access": "public"
|