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.
@@ -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
@@ -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
@@ -1,3 +1,2 @@
1
- console.log('Hello, world!');
2
- export {};
1
+ export * from './dagger-env.js';
3
2
  //# 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,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA"}
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
@@ -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.2.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.2.3",
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",