typeflake 0.0.1-alpha.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/LICENSE +21 -0
- package/README.md +167 -0
- package/bin/typeflake.js +3 -0
- package/dist/cli.d.mts +1 -0
- package/dist/cli.mjs +123 -0
- package/dist/cli.mjs.map +1 -0
- package/dist/index.d.mts +341 -0
- package/dist/index.d.mts.map +1 -0
- package/dist/index.mjs +43 -0
- package/dist/index.mjs.map +1 -0
- package/dist/options-CE3YO7EL.mjs +760 -0
- package/dist/options-CE3YO7EL.mjs.map +1 -0
- package/package.json +79 -0
package/dist/index.d.mts
ADDED
|
@@ -0,0 +1,341 @@
|
|
|
1
|
+
import * as Effect from "effect/Effect";
|
|
2
|
+
import * as FileSystem from "effect/FileSystem";
|
|
3
|
+
import * as Path from "effect/Path";
|
|
4
|
+
|
|
5
|
+
//#region src/sync.d.ts
|
|
6
|
+
interface SyncOptions {
|
|
7
|
+
readonly input: string;
|
|
8
|
+
readonly output: string;
|
|
9
|
+
}
|
|
10
|
+
declare const sync: (options: SyncOptions) => Effect.Effect<void, unknown, unknown>;
|
|
11
|
+
//#endregion
|
|
12
|
+
//#region src/check.d.ts
|
|
13
|
+
interface CheckOptions extends SyncOptions {
|
|
14
|
+
readonly noBuild?: boolean;
|
|
15
|
+
}
|
|
16
|
+
declare const check: (options: CheckOptions) => Effect.Effect<void, unknown, unknown>;
|
|
17
|
+
//#endregion
|
|
18
|
+
//#region src/doctor.d.ts
|
|
19
|
+
interface DoctorOptions {
|
|
20
|
+
readonly project?: string;
|
|
21
|
+
}
|
|
22
|
+
interface DoctorCheck {
|
|
23
|
+
readonly name: string;
|
|
24
|
+
readonly ok: boolean;
|
|
25
|
+
readonly detail: string;
|
|
26
|
+
}
|
|
27
|
+
interface DoctorReport {
|
|
28
|
+
readonly checks: readonly DoctorCheck[];
|
|
29
|
+
readonly ok: boolean;
|
|
30
|
+
}
|
|
31
|
+
declare const doctor: (options?: DoctorOptions) => Effect.Effect<{
|
|
32
|
+
checks: [DoctorCheck, DoctorCheck, DoctorCheck, DoctorCheck, DoctorCheck];
|
|
33
|
+
ok: boolean;
|
|
34
|
+
}, never, import("effect/unstable/process/ChildProcessSpawner").ChildProcessSpawner>;
|
|
35
|
+
declare const renderDoctorReport: (report: DoctorReport) => string;
|
|
36
|
+
//#endregion
|
|
37
|
+
//#region src/nix/expr.d.ts
|
|
38
|
+
declare const nixValueSymbol: unique symbol;
|
|
39
|
+
interface NixExpr<Kind extends string = string> {
|
|
40
|
+
readonly [nixValueSymbol]: true;
|
|
41
|
+
readonly tag: "raw";
|
|
42
|
+
readonly kind: Kind;
|
|
43
|
+
readonly code: string;
|
|
44
|
+
}
|
|
45
|
+
interface NixString {
|
|
46
|
+
readonly [nixValueSymbol]: true;
|
|
47
|
+
readonly tag: "string";
|
|
48
|
+
readonly value: string;
|
|
49
|
+
}
|
|
50
|
+
interface NixNumber {
|
|
51
|
+
readonly [nixValueSymbol]: true;
|
|
52
|
+
readonly tag: "number";
|
|
53
|
+
readonly value: number;
|
|
54
|
+
}
|
|
55
|
+
interface NixBoolean {
|
|
56
|
+
readonly [nixValueSymbol]: true;
|
|
57
|
+
readonly tag: "boolean";
|
|
58
|
+
readonly value: boolean;
|
|
59
|
+
}
|
|
60
|
+
interface NixNull {
|
|
61
|
+
readonly [nixValueSymbol]: true;
|
|
62
|
+
readonly tag: "null";
|
|
63
|
+
}
|
|
64
|
+
interface NixList {
|
|
65
|
+
readonly [nixValueSymbol]: true;
|
|
66
|
+
readonly tag: "list";
|
|
67
|
+
readonly items: readonly NixValue[];
|
|
68
|
+
}
|
|
69
|
+
interface NixAttrSet {
|
|
70
|
+
readonly [nixValueSymbol]: true;
|
|
71
|
+
readonly tag: "attrset";
|
|
72
|
+
readonly attrs: Readonly<Record<string, NixValue | undefined>>;
|
|
73
|
+
}
|
|
74
|
+
type NixValue = NixExpr | NixString | NixNumber | NixBoolean | NixNull | NixList | NixAttrSet;
|
|
75
|
+
type NixInput = NixValue | string | number | boolean | null | readonly NixInput[] | {
|
|
76
|
+
readonly [key: string]: NixInput | undefined;
|
|
77
|
+
};
|
|
78
|
+
declare const rawNix: (code: string) => NixExpr<"raw">;
|
|
79
|
+
//#endregion
|
|
80
|
+
//#region src/flake.d.ts
|
|
81
|
+
interface FlakeInput<Name extends string = string> extends NixExpr<"input"> {
|
|
82
|
+
readonly name: Name;
|
|
83
|
+
readonly url: string;
|
|
84
|
+
}
|
|
85
|
+
type FlakeInputs = Readonly<Record<string, FlakeInput>>;
|
|
86
|
+
type NamedFlakeInputs<Inputs extends FlakeInputs> = { readonly [Name in keyof Inputs & string]: FlakeInput<Name> };
|
|
87
|
+
type CheckedFlakeInputs<Inputs extends FlakeInputs> = Inputs & NamedFlakeInputs<Inputs>;
|
|
88
|
+
interface DevShell {
|
|
89
|
+
readonly packages?: readonly NixInput[];
|
|
90
|
+
}
|
|
91
|
+
interface FlakeOutputs {
|
|
92
|
+
readonly nixosConfigurations?: Record<string, NixInput>;
|
|
93
|
+
readonly devShells?: Record<string, Record<string, DevShell>>;
|
|
94
|
+
}
|
|
95
|
+
interface FlakeSpec<Inputs extends FlakeInputs = FlakeInputs> {
|
|
96
|
+
readonly description?: string;
|
|
97
|
+
readonly inputs: CheckedFlakeInputs<Inputs>;
|
|
98
|
+
readonly outputs: (inputs: CheckedFlakeInputs<Inputs>) => FlakeOutputs;
|
|
99
|
+
}
|
|
100
|
+
type FlakeTaint = "effect" | "impure" | "pure";
|
|
101
|
+
interface TypeflakeFlake<Inputs extends FlakeInputs = FlakeInputs, Taint extends FlakeTaint = "pure", E = never, R = never> {
|
|
102
|
+
readonly taint: Taint;
|
|
103
|
+
readonly spec: Effect.Effect<FlakeSpec<Inputs>, E, R>;
|
|
104
|
+
}
|
|
105
|
+
declare const Flake: {
|
|
106
|
+
input<const Name extends string>(name: Name, url: string): FlakeInput<Name>;
|
|
107
|
+
inputs<const Inputs extends FlakeInputs>(inputs: CheckedFlakeInputs<Inputs>): CheckedFlakeInputs<Inputs>;
|
|
108
|
+
make<const Inputs extends FlakeInputs>(spec: FlakeSpec<Inputs>): TypeflakeFlake<Inputs>;
|
|
109
|
+
effect<const Inputs extends FlakeInputs, E, R>(spec: Effect.Effect<FlakeSpec<Inputs>, E, R>): TypeflakeFlake<Inputs, "effect", E, R>;
|
|
110
|
+
impure<const Inputs extends FlakeInputs, E, R>(spec: Effect.Effect<FlakeSpec<Inputs>, E, R>): TypeflakeFlake<Inputs, "impure", E, R>;
|
|
111
|
+
};
|
|
112
|
+
declare const resolveFlakeSpec: <Inputs extends FlakeInputs, Taint extends FlakeTaint, E, R>(flake: TypeflakeFlake<Inputs, Taint, E, R>) => Effect.Effect<FlakeSpec<Inputs>, E, R>;
|
|
113
|
+
declare const renderFlake: (spec: FlakeSpec) => string;
|
|
114
|
+
//#endregion
|
|
115
|
+
//#region src/module.d.ts
|
|
116
|
+
type Module = NixExpr<"module">;
|
|
117
|
+
declare const moduleFromConfig: (config: object) => Module;
|
|
118
|
+
declare const rawModule: (code: string) => Module;
|
|
119
|
+
//#endregion
|
|
120
|
+
//#region src/generated/options.d.ts
|
|
121
|
+
type NixOptionValue<T> = T | NixExpr;
|
|
122
|
+
type UnsupportedNixOption<Description extends string> = NixExpr<"unsupported"> & {
|
|
123
|
+
readonly __unsupportedNixOption: Description;
|
|
124
|
+
};
|
|
125
|
+
interface NixOSGeneratedConfig {
|
|
126
|
+
readonly boot?: {
|
|
127
|
+
readonly loader?: {
|
|
128
|
+
readonly grub?: {
|
|
129
|
+
readonly devices?: NixOptionValue<readonly string[]>;
|
|
130
|
+
};
|
|
131
|
+
};
|
|
132
|
+
};
|
|
133
|
+
readonly environment?: {
|
|
134
|
+
readonly systemPackages?: NixOptionValue<readonly NixInput[]>;
|
|
135
|
+
};
|
|
136
|
+
readonly fileSystems?: NixOptionValue<Readonly<Record<string, NixInput>>>;
|
|
137
|
+
readonly networking?: {
|
|
138
|
+
readonly firewall?: {
|
|
139
|
+
readonly allowedTCPPorts?: NixOptionValue<readonly number[]>;
|
|
140
|
+
};
|
|
141
|
+
readonly hostName?: NixOptionValue<string>;
|
|
142
|
+
};
|
|
143
|
+
readonly services?: {
|
|
144
|
+
readonly nginx?: {
|
|
145
|
+
readonly enable?: NixOptionValue<boolean>;
|
|
146
|
+
};
|
|
147
|
+
readonly openssh?: {
|
|
148
|
+
readonly enable?: NixOptionValue<boolean>;
|
|
149
|
+
readonly ports?: NixOptionValue<readonly number[]>;
|
|
150
|
+
};
|
|
151
|
+
};
|
|
152
|
+
readonly system?: {
|
|
153
|
+
readonly stateVersion?: NixOptionValue<string>;
|
|
154
|
+
};
|
|
155
|
+
readonly users?: {
|
|
156
|
+
readonly users?: NixOptionValue<Readonly<Record<string, NixInput>>>;
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
interface HomeManagerGeneratedConfig {
|
|
160
|
+
readonly home?: {
|
|
161
|
+
readonly packages?: NixOptionValue<readonly NixInput[]>;
|
|
162
|
+
readonly stateVersion?: NixOptionValue<string>;
|
|
163
|
+
};
|
|
164
|
+
readonly programs?: {
|
|
165
|
+
readonly git?: {
|
|
166
|
+
readonly enable?: NixOptionValue<boolean>;
|
|
167
|
+
};
|
|
168
|
+
};
|
|
169
|
+
}
|
|
170
|
+
//#endregion
|
|
171
|
+
//#region src/home.d.ts
|
|
172
|
+
interface HomeNixOSModuleOptions {
|
|
173
|
+
readonly users: {
|
|
174
|
+
readonly [username: string]: Home.Config;
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
declare const Home: {
|
|
178
|
+
nixosModule(homeManager: NixExpr, options: HomeNixOSModuleOptions): Module;
|
|
179
|
+
};
|
|
180
|
+
declare namespace Home {
|
|
181
|
+
type Config = HomeManagerGeneratedConfig;
|
|
182
|
+
}
|
|
183
|
+
//#endregion
|
|
184
|
+
//#region src/nix/render.d.ts
|
|
185
|
+
interface RenderOptions {
|
|
186
|
+
readonly indent?: number;
|
|
187
|
+
}
|
|
188
|
+
declare const renderNixValue: (value: unknown, options?: RenderOptions) => string;
|
|
189
|
+
//#endregion
|
|
190
|
+
//#region src/options/ir.d.ts
|
|
191
|
+
type OptionScope = "home-manager" | "nixos";
|
|
192
|
+
type OptionPath = readonly [string, ...string[]];
|
|
193
|
+
interface OptionTypeIR {
|
|
194
|
+
readonly description: string | null;
|
|
195
|
+
readonly name: string;
|
|
196
|
+
readonly nestedTypes: Readonly<Record<string, OptionTypeIR>>;
|
|
197
|
+
}
|
|
198
|
+
interface OptionIR {
|
|
199
|
+
readonly declarations: readonly string[];
|
|
200
|
+
readonly defaultText: string | null;
|
|
201
|
+
readonly description: string | null;
|
|
202
|
+
readonly exampleText: string | null;
|
|
203
|
+
readonly internal: boolean;
|
|
204
|
+
readonly path: OptionPath;
|
|
205
|
+
readonly readOnly: boolean;
|
|
206
|
+
readonly scope: OptionScope;
|
|
207
|
+
readonly type: OptionTypeIR;
|
|
208
|
+
readonly visible: boolean | "shallow";
|
|
209
|
+
}
|
|
210
|
+
//#endregion
|
|
211
|
+
//#region src/errors.d.ts
|
|
212
|
+
declare const OptionMetadataParseError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P] }>) => import("effect/Cause").YieldableError & {
|
|
213
|
+
readonly _tag: "OptionMetadataParseError";
|
|
214
|
+
} & Readonly<A>;
|
|
215
|
+
declare class OptionMetadataParseError extends OptionMetadataParseError_base<{
|
|
216
|
+
readonly cause: unknown;
|
|
217
|
+
readonly path?: string;
|
|
218
|
+
}> {}
|
|
219
|
+
declare const UnsupportedOptionsFound_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P] }>) => import("effect/Cause").YieldableError & {
|
|
220
|
+
readonly _tag: "UnsupportedOptionsFound";
|
|
221
|
+
} & Readonly<A>;
|
|
222
|
+
declare class UnsupportedOptionsFound extends UnsupportedOptionsFound_base<{
|
|
223
|
+
readonly options: readonly string[];
|
|
224
|
+
}> {}
|
|
225
|
+
//#endregion
|
|
226
|
+
//#region src/options/document.d.ts
|
|
227
|
+
interface OptionMetadataDocument {
|
|
228
|
+
readonly options: readonly OptionIR[];
|
|
229
|
+
readonly source: OptionMetadataSource;
|
|
230
|
+
readonly version: 1;
|
|
231
|
+
}
|
|
232
|
+
interface OptionMetadataSource {
|
|
233
|
+
readonly flake: string;
|
|
234
|
+
readonly homeManagerInput: string | null;
|
|
235
|
+
readonly nixpkgsInput: string;
|
|
236
|
+
readonly scopes: readonly OptionScope[];
|
|
237
|
+
readonly system: string;
|
|
238
|
+
}
|
|
239
|
+
interface OptionProbePayload {
|
|
240
|
+
readonly homeManager: readonly OptionIR[];
|
|
241
|
+
readonly nixos: readonly OptionIR[];
|
|
242
|
+
}
|
|
243
|
+
declare const makeOptionMetadataDocument: (source: OptionMetadataSource, payload: OptionProbePayload) => OptionMetadataDocument;
|
|
244
|
+
declare const optionMetadataDocumentToJson: (document: OptionMetadataDocument) => string;
|
|
245
|
+
declare const parseOptionMetadataDocument: (value: unknown) => OptionMetadataDocument;
|
|
246
|
+
declare const parseOptionProbePayload: (value: unknown) => OptionProbePayload;
|
|
247
|
+
//#endregion
|
|
248
|
+
//#region src/options/commands.d.ts
|
|
249
|
+
interface ProbeProjectOptions {
|
|
250
|
+
readonly flake: string;
|
|
251
|
+
readonly homeManagerInput: string;
|
|
252
|
+
readonly homeManagerOptionPaths?: readonly OptionPath[];
|
|
253
|
+
readonly nixosOptionPaths?: readonly OptionPath[];
|
|
254
|
+
readonly nixpkgsInput: string;
|
|
255
|
+
readonly output: string;
|
|
256
|
+
readonly scopes: readonly OptionScope[];
|
|
257
|
+
readonly system: string;
|
|
258
|
+
}
|
|
259
|
+
interface GenerateProjectOptions {
|
|
260
|
+
readonly input: string;
|
|
261
|
+
readonly output: string;
|
|
262
|
+
readonly strict?: boolean;
|
|
263
|
+
}
|
|
264
|
+
declare const defaultOptionScopes: readonly ["nixos", "home-manager"];
|
|
265
|
+
declare const probeProjectOptions: (options: ProbeProjectOptions) => Effect.Effect<OptionMetadataDocument, import("effect/PlatformError").PlatformError | OptionMetadataParseError, import("effect/unstable/process/ChildProcessSpawner").ChildProcessSpawner | FileSystem.FileSystem | Path.Path>;
|
|
266
|
+
declare const generateProjectOptionTypes: (options: GenerateProjectOptions) => Effect.Effect<{
|
|
267
|
+
document: OptionMetadataDocument;
|
|
268
|
+
unsupported: readonly OptionIR[];
|
|
269
|
+
}, import("effect/PlatformError").PlatformError | OptionMetadataParseError | UnsupportedOptionsFound, FileSystem.FileSystem | Path.Path>;
|
|
270
|
+
declare const readOptionMetadataDocument: (inputPath: string) => Effect.Effect<OptionMetadataDocument, import("effect/PlatformError").PlatformError | OptionMetadataParseError, FileSystem.FileSystem>;
|
|
271
|
+
declare const renderGeneratedOptions: (document: OptionMetadataDocument) => string;
|
|
272
|
+
declare const resolveFlakeReference: (flakeRoot: string) => Effect.Effect<string, import("effect/PlatformError").PlatformError, FileSystem.FileSystem | Path.Path>;
|
|
273
|
+
//#endregion
|
|
274
|
+
//#region src/options/generate.d.ts
|
|
275
|
+
interface GenerateOptionTypesOptions {
|
|
276
|
+
readonly importPath: string;
|
|
277
|
+
readonly options: readonly OptionIR[];
|
|
278
|
+
readonly rootTypeName: string;
|
|
279
|
+
readonly scope: OptionScope;
|
|
280
|
+
}
|
|
281
|
+
interface GenerateOptionTypeFileOptions {
|
|
282
|
+
readonly fixtureScope?: string;
|
|
283
|
+
readonly importPath: string;
|
|
284
|
+
readonly roots: readonly OptionTypeRoot[];
|
|
285
|
+
readonly options: readonly OptionIR[];
|
|
286
|
+
}
|
|
287
|
+
interface OptionTypeRoot {
|
|
288
|
+
readonly rootTypeName: string;
|
|
289
|
+
readonly scope: OptionScope;
|
|
290
|
+
}
|
|
291
|
+
declare const generateOptionTypes: (options: GenerateOptionTypesOptions) => string;
|
|
292
|
+
declare const generateOptionTypeFile: (options: GenerateOptionTypeFileOptions) => string;
|
|
293
|
+
declare const toTypeScriptType: (nixType: OptionTypeIR, path?: readonly string[]) => string;
|
|
294
|
+
declare const collectUnsupportedOptions: (options: readonly OptionIR[]) => readonly OptionIR[];
|
|
295
|
+
//#endregion
|
|
296
|
+
//#region src/options/probe.d.ts
|
|
297
|
+
interface OptionProbeScope {
|
|
298
|
+
readonly optionPaths: readonly OptionPath[];
|
|
299
|
+
}
|
|
300
|
+
interface OptionProbeOptions {
|
|
301
|
+
readonly homeManager?: NixExpr;
|
|
302
|
+
readonly homeManagerOptions?: OptionProbeScope;
|
|
303
|
+
readonly nixosOptions?: OptionProbeScope;
|
|
304
|
+
readonly nixpkgs: NixExpr;
|
|
305
|
+
readonly system: string;
|
|
306
|
+
}
|
|
307
|
+
declare const defaultNixOSOptionPaths: readonly [readonly ["boot", "loader", "grub", "devices"], readonly ["environment", "systemPackages"], readonly ["fileSystems"], readonly ["networking", "firewall", "allowedTCPPorts"], readonly ["networking", "hostName"], readonly ["services", "nginx", "enable"], readonly ["services", "openssh", "enable"], readonly ["services", "openssh", "ports"], readonly ["system", "stateVersion"], readonly ["users", "users"]];
|
|
308
|
+
declare const defaultHomeManagerOptionPaths: readonly [readonly ["home", "stateVersion"], readonly ["home", "packages"], readonly ["programs", "git", "enable"]];
|
|
309
|
+
declare const renderOptionProbeExpression: (options: OptionProbeOptions) => string;
|
|
310
|
+
declare const flakeInput: (name: string) => NixExpr<"flakeInput">;
|
|
311
|
+
declare const projectFlakeInput: (flakeReference: string, name: string) => NixExpr<"flakeInput">;
|
|
312
|
+
//#endregion
|
|
313
|
+
//#region src/nixos.d.ts
|
|
314
|
+
type System = "aarch64-darwin" | "aarch64-linux" | "x86_64-darwin" | "x86_64-linux" | (string & {});
|
|
315
|
+
interface NixOSConfigurationOptions {
|
|
316
|
+
readonly system: System;
|
|
317
|
+
readonly modules: readonly Module[];
|
|
318
|
+
}
|
|
319
|
+
type NixOSConfiguration = NixExpr<"nixosConfiguration">;
|
|
320
|
+
declare const NixOS: {
|
|
321
|
+
config(config: NixOS.Config): NixOS.Config;
|
|
322
|
+
module: (config: object) => Module;
|
|
323
|
+
configuration(options: NixOSConfigurationOptions): NixOSConfiguration;
|
|
324
|
+
};
|
|
325
|
+
declare namespace NixOS {
|
|
326
|
+
type Config = NixOSGeneratedConfig;
|
|
327
|
+
}
|
|
328
|
+
//#endregion
|
|
329
|
+
//#region src/packages.d.ts
|
|
330
|
+
type PackageRef<AttrPath extends string = string> = NixExpr<"package"> & {
|
|
331
|
+
readonly attrPath: AttrPath;
|
|
332
|
+
};
|
|
333
|
+
interface KnownTopLevelPackages {
|
|
334
|
+
readonly git: PackageRef<"git">;
|
|
335
|
+
readonly neovim: PackageRef<"neovim">;
|
|
336
|
+
readonly nodejs: PackageRef<"nodejs">;
|
|
337
|
+
}
|
|
338
|
+
declare const pkgs: KnownTopLevelPackages;
|
|
339
|
+
//#endregion
|
|
340
|
+
export { type CheckOptions, type DevShell, type DoctorCheck, type DoctorReport, Flake, type FlakeSpec, type GenerateOptionTypeFileOptions, type GenerateProjectOptions, Home, type HomeManagerGeneratedConfig, type HomeNixOSModuleOptions, type Module, type NixExpr, type NixInput, NixOS, type NixOSConfiguration, type NixOSConfigurationOptions, type NixOSGeneratedConfig, type NixOptionValue, type NixValue, type OptionIR, type OptionMetadataDocument, type OptionMetadataSource, type OptionPath, type OptionProbePayload, type OptionScope, type OptionTypeIR, type OptionTypeRoot, type PackageRef, type ProbeProjectOptions, type SyncOptions, type System, type TypeflakeFlake, type UnsupportedNixOption, check, collectUnsupportedOptions, defaultHomeManagerOptionPaths, defaultNixOSOptionPaths, defaultOptionScopes, doctor, flakeInput, generateOptionTypeFile, generateOptionTypes, generateProjectOptionTypes, makeOptionMetadataDocument, moduleFromConfig, optionMetadataDocumentToJson, parseOptionMetadataDocument, parseOptionProbePayload, pkgs, probeProjectOptions, projectFlakeInput, rawModule, rawNix, readOptionMetadataDocument, renderDoctorReport, renderFlake, renderGeneratedOptions, renderNixValue, renderOptionProbeExpression, resolveFlakeReference, resolveFlakeSpec, sync, toTypeScriptType };
|
|
341
|
+
//# sourceMappingURL=index.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/sync.ts","../src/check.ts","../src/doctor.ts","../src/nix/expr.ts","../src/flake.ts","../src/module.ts","../src/generated/options.ts","../src/home.ts","../src/nix/render.ts","../src/options/ir.ts","../src/errors.ts","../src/options/document.ts","../src/options/commands.ts","../src/options/generate.ts","../src/options/probe.ts","../src/nixos.ts","../src/packages.ts"],"mappings":"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"}
|
package/dist/index.mjs
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { A as nixExpr, C as sync, D as renderList, E as resolveFlakeSpec, O as renderNixValue, S as check, T as renderFlake, _ as generateOptionTypeFile, a as renderGeneratedOptions, b as doctor, c as optionMetadataDocumentToJson, d as defaultHomeManagerOptionPaths, f as defaultNixOSOptionPaths, g as collectUnsupportedOptions, h as renderOptionProbeExpression, i as readOptionMetadataDocument, j as rawNix, k as nixAttrPath, l as parseOptionMetadataDocument, m as projectFlakeInput, n as generateProjectOptionTypes, o as resolveFlakeReference, p as flakeInput, r as probeProjectOptions, s as makeOptionMetadataDocument, t as defaultOptionScopes, u as parseOptionProbePayload, v as generateOptionTypes, w as Flake, x as renderDoctorReport, y as toTypeScriptType } from "./options-CE3YO7EL.mjs";
|
|
2
|
+
//#region src/module.ts
|
|
3
|
+
const moduleFromConfig = (config) => nixExpr("module", `({ pkgs, ... }: ${renderNixValue(config)})`);
|
|
4
|
+
const rawModule = (code) => nixExpr("module", code);
|
|
5
|
+
//#endregion
|
|
6
|
+
//#region src/home.ts
|
|
7
|
+
const Home = { nixosModule(homeManager, options) {
|
|
8
|
+
return nixExpr("module", `({ pkgs, ... }: ${renderNixValue({
|
|
9
|
+
imports: [rawNix(`${homeManager.code}.nixosModules.home-manager`)],
|
|
10
|
+
"home-manager": { users: options.users }
|
|
11
|
+
})})`);
|
|
12
|
+
} };
|
|
13
|
+
//#endregion
|
|
14
|
+
//#region src/nixos.ts
|
|
15
|
+
const NixOS = {
|
|
16
|
+
config(config) {
|
|
17
|
+
return config;
|
|
18
|
+
},
|
|
19
|
+
module: moduleFromConfig,
|
|
20
|
+
configuration(options) {
|
|
21
|
+
return nixExpr("nixosConfiguration", `nixpkgs.lib.nixosSystem ${renderNixValue({
|
|
22
|
+
modules: rawNix(renderList(options.modules, 1)),
|
|
23
|
+
system: options.system
|
|
24
|
+
})}`);
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
//#endregion
|
|
28
|
+
//#region src/packages.ts
|
|
29
|
+
const pkg = (attrPath) => {
|
|
30
|
+
return {
|
|
31
|
+
...nixAttrPath("package", ["pkgs", ...attrPath.split(".")]),
|
|
32
|
+
attrPath
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
const pkgs = {
|
|
36
|
+
git: pkg("git"),
|
|
37
|
+
neovim: pkg("neovim"),
|
|
38
|
+
nodejs: pkg("nodejs")
|
|
39
|
+
};
|
|
40
|
+
//#endregion
|
|
41
|
+
export { Flake, Home, NixOS, check, collectUnsupportedOptions, defaultHomeManagerOptionPaths, defaultNixOSOptionPaths, defaultOptionScopes, doctor, flakeInput, generateOptionTypeFile, generateOptionTypes, generateProjectOptionTypes, makeOptionMetadataDocument, moduleFromConfig, optionMetadataDocumentToJson, parseOptionMetadataDocument, parseOptionProbePayload, pkgs, probeProjectOptions, projectFlakeInput, rawModule, rawNix, readOptionMetadataDocument, renderDoctorReport, renderFlake, renderGeneratedOptions, renderNixValue, renderOptionProbeExpression, resolveFlakeReference, resolveFlakeSpec, sync, toTypeScriptType };
|
|
42
|
+
|
|
43
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","names":[],"sources":["../src/module.ts","../src/home.ts","../src/nixos.ts","../src/packages.ts"],"sourcesContent":["import { nixExpr, type NixExpr } from \"./nix/expr.ts\";\nimport { renderNixValue } from \"./nix/render.ts\";\n\nexport type Module = NixExpr<\"module\">;\n\nexport const moduleFromConfig = (config: object): Module =>\n nixExpr(\"module\", `({ pkgs, ... }: ${renderNixValue(config)})`);\n\nexport const rawModule = (code: string): Module => nixExpr(\"module\", code);\n","import { type Module } from \"./module.ts\";\nimport type { HomeManagerGeneratedConfig } from \"./generated/options.ts\";\nimport { type NixExpr, nixExpr, rawNix } from \"./nix/expr.ts\";\nimport { renderNixValue } from \"./nix/render.ts\";\n\nexport interface HomeNixOSModuleOptions {\n readonly users: { readonly [username: string]: Home.Config };\n}\n\nexport const Home = {\n nixosModule(homeManager: NixExpr, options: HomeNixOSModuleOptions): Module {\n return nixExpr(\n \"module\",\n `({ pkgs, ... }: ${renderNixValue({\n imports: [rawNix(`${homeManager.code}.nixosModules.home-manager`)],\n \"home-manager\": {\n users: options.users,\n },\n })})`,\n );\n },\n};\n\nexport namespace Home {\n export type Config = HomeManagerGeneratedConfig;\n}\n","import { moduleFromConfig, type Module } from \"./module.ts\";\nimport type { NixOSGeneratedConfig } from \"./generated/options.ts\";\nimport { nixExpr, rawNix, type NixExpr, type NixInput } from \"./nix/expr.ts\";\nimport { renderList, renderNixValue } from \"./nix/render.ts\";\n\nexport type System =\n | \"aarch64-darwin\"\n | \"aarch64-linux\"\n | \"x86_64-darwin\"\n | \"x86_64-linux\"\n | (string & {});\n\nexport interface NixOSConfigurationOptions {\n readonly system: System;\n readonly modules: readonly Module[];\n}\n\nexport type NixOSConfiguration = NixExpr<\"nixosConfiguration\">;\n\nexport const NixOS = {\n config(config: NixOS.Config): NixOS.Config {\n return config;\n },\n\n module: moduleFromConfig,\n\n configuration(options: NixOSConfigurationOptions): NixOSConfiguration {\n const rendered = renderNixValue({\n modules: rawNix(renderList(options.modules, 1)),\n system: options.system,\n });\n\n return nixExpr(\"nixosConfiguration\", `nixpkgs.lib.nixosSystem ${rendered}`);\n },\n};\n\nexport type NixOSModuleConfig = { readonly [key: string]: NixInput | undefined };\n\nexport namespace NixOS {\n export type Config = NixOSGeneratedConfig;\n}\n","import { nixAttrPath, type NixExpr } from \"./nix/expr.ts\";\n\nexport type PackageRef<AttrPath extends string = string> = NixExpr<\"package\"> & {\n readonly attrPath: AttrPath;\n};\n\ninterface KnownTopLevelPackages {\n readonly git: PackageRef<\"git\">;\n readonly neovim: PackageRef<\"neovim\">;\n readonly nodejs: PackageRef<\"nodejs\">;\n}\n\nexport const pkg = <const AttrPath extends string>(attrPath: AttrPath): PackageRef<AttrPath> => {\n const parts = attrPath.split(\".\");\n return {\n ...nixAttrPath(\"package\", [\"pkgs\", ...parts]),\n attrPath,\n };\n};\n\nexport const pkgs: KnownTopLevelPackages = {\n git: pkg(\"git\"),\n neovim: pkg(\"neovim\"),\n nodejs: pkg(\"nodejs\"),\n};\n"],"mappings":";;AAKA,MAAa,oBAAoB,WAC/B,QAAQ,UAAU,mBAAmB,eAAe,MAAM,EAAE,EAAE;AAEhE,MAAa,aAAa,SAAyB,QAAQ,UAAU,IAAI;;;ACCzE,MAAa,OAAO,EAClB,YAAY,aAAsB,SAAyC;CACzE,OAAO,QACL,UACA,mBAAmB,eAAe;EAChC,SAAS,CAAC,OAAO,GAAG,YAAY,KAAK,2BAA2B,CAAC;EACjE,gBAAgB,EACd,OAAO,QAAQ,MACjB;CACF,CAAC,EAAE,EACL;AACF,EACF;;;ACFA,MAAa,QAAQ;CACnB,OAAO,QAAoC;EACzC,OAAO;CACT;CAEA,QAAQ;CAER,cAAc,SAAwD;EAMpE,OAAO,QAAQ,sBAAsB,2BALpB,eAAe;GAC9B,SAAS,OAAO,WAAW,QAAQ,SAAS,CAAC,CAAC;GAC9C,QAAQ,QAAQ;EAClB,CAEuE,GAAG;CAC5E;AACF;;;ACtBA,MAAa,OAAsC,aAA6C;CAE9F,OAAO;EACL,GAAG,YAAY,WAAW,CAAC,QAAQ,GAFvB,SAAS,MAAM,GAEe,CAAC,CAAC;EAC5C;CACF;AACF;AAEA,MAAa,OAA8B;CACzC,KAAK,IAAI,KAAK;CACd,QAAQ,IAAI,QAAQ;CACpB,QAAQ,IAAI,QAAQ;AACtB"}
|