dagger-env 0.2.0 → 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/dagger-env.d.ts +63 -0
- package/dist/dagger-env.d.ts.map +1 -0
- package/dist/dagger-env.js +145 -0
- package/dist/dagger-env.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -2
- package/dist/index.js.map +1 -1
- 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/package.json +9 -3
|
@@ -0,0 +1,63 @@
|
|
|
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> = z.infer<z.ZodObject<{
|
|
22
|
+
args: T['args'];
|
|
23
|
+
env: T['env'];
|
|
24
|
+
secrets: 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<keyof T['secretPresets']>, secretNames?: string[]): Promise<(con: Container) => Container>;
|
|
42
|
+
/**
|
|
43
|
+
* Get the options schema for this DaggerEnv instance
|
|
44
|
+
*/
|
|
45
|
+
getOptionsSchema(): z.ZodObject<{
|
|
46
|
+
args: T["args"];
|
|
47
|
+
env: T["env"];
|
|
48
|
+
secrets: T["secrets"];
|
|
49
|
+
}, z.core.$ZodObjectConfig>;
|
|
50
|
+
/**
|
|
51
|
+
* Get available secret presets
|
|
52
|
+
*/
|
|
53
|
+
getSecretPresets(): Array<keyof T['secretPresets']>;
|
|
54
|
+
/**
|
|
55
|
+
* Get secrets for a specific preset
|
|
56
|
+
*/
|
|
57
|
+
getPresetSecrets(preset: keyof T['secretPresets']): readonly string[];
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Helper function to create a DaggerEnv instance with proper typing
|
|
61
|
+
*/
|
|
62
|
+
export declare function createDaggerEnv<T extends DaggerEnvConfig>(config: T): DaggerEnv<T>;
|
|
63
|
+
//# 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,CAAC,CAAC,KAAK,CACvE,CAAC,CAAC,SAAS,CAAC;IACX,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAA;IACf,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAA;IACb,OAAO,EAAE,CAAC,CAAC,SAAS,CAAC,CAAA;CACrB,CAAC,CACF,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,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,EAC9C,WAAW,CAAC,EAAE,MAAM,EAAE,GACpB,OAAO,CAAC,CAAC,GAAG,EAAE,SAAS,KAAK,SAAS,CAAC;IA+DzC;;OAEG;IACH,gBAAgB;cAhGT,CAAC,CAAC,MAAM,CAAC;aACV,CAAC,CAAC,KAAK,CAAC;iBACJ,CAAC,CAAC,SAAS,CAAC;;IAkGtB;;OAEG;IACH,gBAAgB,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC;IAInD;;OAEG;IACH,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,eAAe,CAAC,GAAG,SAAS,MAAM,EAAE;CAOrE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS,eAAe,EAAE,MAAM,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAElF"}
|
|
@@ -0,0 +1,145 @@
|
|
|
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 && typeof obj === 'object' && 'id' in obj && 'plaintext' in obj;
|
|
29
|
+
const opts = isSecret(daggerOptions)
|
|
30
|
+
? await this.parseDaggerOptions(daggerOptions)
|
|
31
|
+
: daggerOptions;
|
|
32
|
+
return (con) => {
|
|
33
|
+
let c = con;
|
|
34
|
+
// Add individual secret names
|
|
35
|
+
for (const name of secretNames ?? []) {
|
|
36
|
+
if (typeof name === 'string' && name in opts.secrets) {
|
|
37
|
+
const secret = opts.secrets[name];
|
|
38
|
+
if (!secret) {
|
|
39
|
+
throw new Error(`Secret ${name} is undefined`);
|
|
40
|
+
}
|
|
41
|
+
c = c.withSecretVariable(name, dag.setSecret(name, secret));
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
const allSecretNames = [...(secretNames ?? [])];
|
|
45
|
+
// Add secret presets
|
|
46
|
+
for (const preset of secretPresets) {
|
|
47
|
+
const presetSecrets = this.config.secretPresets[preset];
|
|
48
|
+
if (!presetSecrets) {
|
|
49
|
+
throw new Error(`Unknown secret preset: ${String(preset)}`);
|
|
50
|
+
}
|
|
51
|
+
for (const secretName of presetSecrets) {
|
|
52
|
+
const secret = opts.secrets[secretName];
|
|
53
|
+
if (!secret) {
|
|
54
|
+
throw new Error(`Secret ${secretName} is undefined`);
|
|
55
|
+
}
|
|
56
|
+
allSecretNames.push(secretName);
|
|
57
|
+
c = c.withSecretVariable(secretName, dag.setSecret(secretName, secret));
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
// Add derived env vars based on secretNames
|
|
61
|
+
for (const name of allSecretNames) {
|
|
62
|
+
const derivedEnvVars = this.config.derivedEnvVars[name];
|
|
63
|
+
if (derivedEnvVars) {
|
|
64
|
+
for (const [key, value] of Object.entries(derivedEnvVars)) {
|
|
65
|
+
c = c.withEnvVariable(key, value);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
// Add environment variables from options
|
|
70
|
+
const envVars = opts.env;
|
|
71
|
+
for (const [key, value] of Object.entries(envVars)) {
|
|
72
|
+
if (value !== undefined && typeof value === 'string') {
|
|
73
|
+
c = c.withEnvVariable(key, value);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
return c;
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Get the options schema for this DaggerEnv instance
|
|
81
|
+
*/
|
|
82
|
+
getOptionsSchema() {
|
|
83
|
+
return this.optionsSchema;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Get available secret presets
|
|
87
|
+
*/
|
|
88
|
+
getSecretPresets() {
|
|
89
|
+
return Object.keys(this.config.secretPresets);
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Get secrets for a specific preset
|
|
93
|
+
*/
|
|
94
|
+
getPresetSecrets(preset) {
|
|
95
|
+
const secrets = this.config.secretPresets[preset];
|
|
96
|
+
if (!secrets) {
|
|
97
|
+
throw new Error(`Unknown secret preset: ${String(preset)}`);
|
|
98
|
+
}
|
|
99
|
+
return secrets;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Helper function to create a DaggerEnv instance with proper typing
|
|
104
|
+
*/
|
|
105
|
+
export function createDaggerEnv(config) {
|
|
106
|
+
return new DaggerEnv(config);
|
|
107
|
+
}
|
|
108
|
+
// Example usage:
|
|
109
|
+
//
|
|
110
|
+
// import { z } from 'zod/v4'
|
|
111
|
+
// import { createDaggerEnv } from './dagger-env'
|
|
112
|
+
//
|
|
113
|
+
// const daggerEnv = createDaggerEnv({
|
|
114
|
+
// args: z.object({
|
|
115
|
+
// push: z.string().optional().describe('Push docker images to registry'),
|
|
116
|
+
// environment: z.enum(['dev', 'staging', 'prod']).optional(),
|
|
117
|
+
// }),
|
|
118
|
+
// env: z.object({
|
|
119
|
+
// CI: z.string().optional(),
|
|
120
|
+
// NODE_ENV: z.string().optional(),
|
|
121
|
+
// }),
|
|
122
|
+
// secrets: z.object({
|
|
123
|
+
// API_TOKEN: z.string(),
|
|
124
|
+
// DATABASE_URL: z.string(),
|
|
125
|
+
// REDIS_URL: z.string(),
|
|
126
|
+
// }),
|
|
127
|
+
// secretPresets: {
|
|
128
|
+
// api: ['API_TOKEN', 'DATABASE_URL'],
|
|
129
|
+
// cache: ['REDIS_URL'],
|
|
130
|
+
// } as const,
|
|
131
|
+
// derivedEnvVars: {
|
|
132
|
+
// API_TOKEN: {
|
|
133
|
+
// API_BASE_URL: 'https://api.example.com',
|
|
134
|
+
// API_VERSION: 'v1',
|
|
135
|
+
// },
|
|
136
|
+
// DATABASE_URL: {
|
|
137
|
+
// DB_POOL_SIZE: '10',
|
|
138
|
+
// },
|
|
139
|
+
// } as const,
|
|
140
|
+
// })
|
|
141
|
+
//
|
|
142
|
+
// // Then use it like:
|
|
143
|
+
// // const opts = await daggerEnv.parseDaggerOptions(options)
|
|
144
|
+
// // const withEnv = await daggerEnv.getWithEnv(options, ['api'], ['REDIS_URL'])
|
|
145
|
+
//# 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
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export
|
|
1
|
+
export * from './dagger-env.js';
|
|
2
2
|
//# 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":""}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA"}
|
package/dist/index.js
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,
|
|
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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dagger-env",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "A type-safe, reusable environment configuration abstraction for Dagger modules.",
|
|
6
6
|
"keywords": [
|
|
@@ -26,6 +26,12 @@
|
|
|
26
26
|
"types": "./dist/index.d.ts",
|
|
27
27
|
"default": "./dist/index.js"
|
|
28
28
|
}
|
|
29
|
+
},
|
|
30
|
+
"./op": {
|
|
31
|
+
"import": {
|
|
32
|
+
"types": "./dist/op.d.ts",
|
|
33
|
+
"default": "./dist/op.js"
|
|
34
|
+
}
|
|
29
35
|
}
|
|
30
36
|
},
|
|
31
37
|
"main": "./dist/index.js",
|
|
@@ -39,11 +45,11 @@
|
|
|
39
45
|
"vitest": "3.1.4",
|
|
40
46
|
"zod": "3.25.57",
|
|
41
47
|
"zx": "8.5.4",
|
|
42
|
-
"@repo/tools": "0.
|
|
48
|
+
"@repo/tools": "0.3.0",
|
|
43
49
|
"@repo/typescript-config": "0.1.2"
|
|
44
50
|
},
|
|
45
51
|
"scripts": {
|
|
46
|
-
"build": "runx build tsc ./src/index.ts",
|
|
52
|
+
"build": "runx build tsc ./src/index.ts ./src/op.ts",
|
|
47
53
|
"check:exports": "runx check --exports",
|
|
48
54
|
"check:lint": "run-eslint",
|
|
49
55
|
"check:types": "run-tsc",
|