poe-code 3.0.5 → 3.0.6

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.
@@ -1 +1 @@
1
- {"version":3,"file":"configure.js","sourceRoot":"","sources":["../../../src/cli/commands/configure.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"configure.js","sourceRoot":"","sources":["../../../src/cli/commands/configure.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import type { CliContainer } from "../container.js";
3
3
  import type { ProviderService, ProviderContext, ProviderIsolatedEnv } from "../service-registry.js";
4
4
  import { type CommandContext } from "../context.js";
5
5
  import type { ScopedLogger } from "../logger.js";
6
- import type { ServiceMutationObservers } from "../../services/service-manifest.js";
6
+ import type { MutationObservers } from "@poe-code/config-mutations";
7
7
  export interface CommandFlags {
8
8
  dryRun: boolean;
9
9
  assumeYes: boolean;
@@ -25,5 +25,5 @@ export declare function applyIsolatedConfiguration(input: {
25
25
  payload: unknown;
26
26
  isolated: ProviderIsolatedEnv;
27
27
  providerName: string;
28
- observers?: ServiceMutationObservers;
28
+ observers?: MutationObservers;
29
29
  }): Promise<void>;
@@ -4,7 +4,16 @@ import type { ScopedLogger } from "./logger.js";
4
4
  import type { FileSystem } from "../utils/file-system.js";
5
5
  import type { CommandCheck } from "../utils/command-checks.js";
6
6
  import type { ModelPromptInput, ReasoningPromptInput } from "./prompts.js";
7
- import type { ServiceRunOptions, ServiceManifestPathMapper } from "../services/service-manifest.js";
7
+ import type { MutationObservers } from "@poe-code/config-mutations";
8
+ export interface ServiceManifestPathMapper {
9
+ mapTargetDirectory: (input: {
10
+ targetDirectory: string;
11
+ env: CliEnvironment;
12
+ }) => string;
13
+ }
14
+ export interface ServiceRunOptions {
15
+ observers?: MutationObservers;
16
+ }
8
17
  export interface ProviderColorSet {
9
18
  light?: string;
10
19
  dark?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"service-registry.js","sourceRoot":"","sources":["../../src/cli/service-registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service-registry.js","sourceRoot":"","sources":["../../src/cli/service-registry.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  import type { ScopedLogger } from "../cli/logger.js";
2
- import type { ServiceMutationObservers } from "./service-manifest.js";
3
- export declare function createMutationReporter(logger: ScopedLogger): ServiceMutationObservers;
4
- export declare function combineMutationObservers(...observers: Array<ServiceMutationObservers | undefined>): ServiceMutationObservers | undefined;
2
+ import type { MutationObservers } from "@poe-code/config-mutations";
3
+ export declare function createMutationReporter(logger: ScopedLogger): MutationObservers;
4
+ export declare function combineMutationObservers(...observers: Array<MutationObservers | undefined>): MutationObservers | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"mutation-events.js","sourceRoot":"","sources":["../../src/services/mutation-events.ts"],"names":[],"mappings":"AAOA,MAAM,UAAU,sBAAsB,CACpC,MAAoB;IAEpB,OAAO;QACL,UAAU,CAAC,OAAO,EAAE,OAAO;YACzB,MAAM,CAAC,OAAO,CAAC,qBAAqB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;QAC1D,CAAC;QACD,OAAO,CAAC,OAAO,EAAE,KAAK;YACpB,MAAM,CAAC,KAAK,CACV,GAAG,OAAO,CAAC,KAAK,YAAY,aAAa,CAAC,KAAK,CAAC,EAAE,CACnD,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,GAAG,SAAsD;IAEzD,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAC7B,CAAC,QAAQ,EAAwC,EAAE,CAAC,QAAQ,IAAI,IAAI,CACrE,CAAC;IACF,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO;QACL,OAAO,CAAC,OAAO;YACb,KAAK,MAAM,QAAQ,IAAI,MAAM,EAAE,CAAC;gBAC9B,QAAQ,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;QACD,UAAU,CAAC,OAAO,EAAE,OAAO;YACzB,KAAK,MAAM,QAAQ,IAAI,MAAM,EAAE,CAAC;gBAC9B,QAAQ,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;QACD,OAAO,CAAC,OAAO,EAAE,KAAK;YACpB,KAAK,MAAM,QAAQ,IAAI,MAAM,EAAE,CAAC;gBAC9B,QAAQ,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAC5B,OAA2B,EAC3B,OAA+B;IAE/B,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IACxC,OAAO,GAAG,OAAO,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;AACvC,CAAC;AAED,SAAS,eAAe,CAAC,OAA+B;IACtD,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;IAC1C,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;QAChD,OAAO,OAAO,CAAC,MAAM,CAAC;IACxB,CAAC;IACD,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC,OAAO,CAAC;IACvB,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,IAAI,eAAe,CAAC,CAAC;AAC1C,CAAC"}
1
+ {"version":3,"file":"mutation-events.js","sourceRoot":"","sources":["../../src/services/mutation-events.ts"],"names":[],"mappings":"AAOA,MAAM,UAAU,sBAAsB,CACpC,MAAoB;IAEpB,OAAO;QACL,UAAU,CAAC,OAAO,EAAE,OAAO;YACzB,MAAM,CAAC,OAAO,CAAC,qBAAqB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;QAC1D,CAAC;QACD,OAAO,CAAC,OAAO,EAAE,KAAK;YACpB,MAAM,CAAC,KAAK,CACV,GAAG,OAAO,CAAC,KAAK,YAAY,aAAa,CAAC,KAAK,CAAC,EAAE,CACnD,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,GAAG,SAA+C;IAElD,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAC7B,CAAC,QAAQ,EAAiC,EAAE,CAAC,QAAQ,IAAI,IAAI,CAC9D,CAAC;IACF,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO;QACL,OAAO,CAAC,OAAO;YACb,KAAK,MAAM,QAAQ,IAAI,MAAM,EAAE,CAAC;gBAC9B,QAAQ,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;QACD,UAAU,CAAC,OAAO,EAAE,OAAO;YACzB,KAAK,MAAM,QAAQ,IAAI,MAAM,EAAE,CAAC;gBAC9B,QAAQ,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;QACD,OAAO,CAAC,OAAO,EAAE,KAAK;YACpB,KAAK,MAAM,QAAQ,IAAI,MAAM,EAAE,CAAC;gBAC9B,QAAQ,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAC5B,OAAwB,EACxB,OAAwB;IAExB,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IACxC,OAAO,GAAG,OAAO,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;AACvC,CAAC;AAED,SAAS,eAAe,CAAC,OAAwB;IAC/C,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;IAC1C,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;QAChD,OAAO,OAAO,CAAC,MAAM,CAAC;IACxB,CAAC;IACD,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC,OAAO,CAAC;IACvB,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,IAAI,eAAe,CAAC,CAAC;AAC1C,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "poe-code",
3
- "version": "3.0.5",
3
+ "version": "3.0.6",
4
4
  "description": "CLI tool to configure Poe API for developer workflows.",
5
5
  "type": "module",
6
6
  "workspaces": [
@@ -1,10 +0,0 @@
1
- import type { ServiceMutation } from "../services/service-manifest.js";
2
- type TargetResolver<Options> = string | ((context: {
3
- options: Options;
4
- }) => string);
5
- export declare function makeExecutableMutation<Options>(config: {
6
- target: TargetResolver<Options>;
7
- mode?: number;
8
- }): ServiceMutation<Options>;
9
- export declare function quoteSinglePath(targetPath: string): string;
10
- export {};
@@ -1,73 +0,0 @@
1
- import path from "node:path";
2
- export function makeExecutableMutation(config) {
3
- const mode = config.mode ?? 0o700;
4
- const resolver = toResolver(config.target);
5
- const target = toManifestTarget(config.target);
6
- return {
7
- kind: "transformFile",
8
- target,
9
- label: (context) => `Make file executable ${resolveTargetPath(resolver, context)}`,
10
- async transform({ content, context }) {
11
- if (typeof context.fs.chmod === "function" && content != null) {
12
- const targetPath = resolveTargetPath(resolver, context);
13
- await context.fs.chmod(targetPath, mode);
14
- }
15
- return { content, changed: false };
16
- }
17
- };
18
- }
19
- export function quoteSinglePath(targetPath) {
20
- const escaped = targetPath.replace(/'/g, `'\\''`);
21
- return `'${escaped}'`;
22
- }
23
- function toResolver(input) {
24
- if (typeof input === "function") {
25
- return input;
26
- }
27
- return () => input;
28
- }
29
- function toManifestTarget(input) {
30
- if (typeof input === "function") {
31
- return {
32
- target: (context) => input({ options: context.options })
33
- };
34
- }
35
- return {
36
- target: input
37
- };
38
- }
39
- function resolveTargetPath(resolver, context) {
40
- const raw = resolver(context);
41
- if (!raw.startsWith("~")) {
42
- return raw;
43
- }
44
- let targetPath = raw;
45
- if (targetPath.startsWith("~./")) {
46
- targetPath = `~/.${targetPath.slice(3)}`;
47
- }
48
- const homeDir = context.env?.homeDir ??
49
- context.options.env?.homeDir ??
50
- process.env.HOME ??
51
- process.env.USERPROFILE;
52
- if (!homeDir) {
53
- return targetPath;
54
- }
55
- let remainder = targetPath.slice(1);
56
- if (remainder.startsWith("/")) {
57
- remainder = remainder.slice(1);
58
- }
59
- else if (remainder.startsWith("\\")) {
60
- remainder = remainder.slice(1);
61
- }
62
- else if (remainder.startsWith(".")) {
63
- remainder = remainder.slice(1);
64
- if (remainder.startsWith("/")) {
65
- remainder = remainder.slice(1);
66
- }
67
- else if (remainder.startsWith("\\")) {
68
- remainder = remainder.slice(1);
69
- }
70
- }
71
- return remainder.length === 0 ? homeDir : path.join(homeDir, remainder);
72
- }
73
- //# sourceMappingURL=provider-helpers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"provider-helpers.js","sourceRoot":"","sources":["../../src/providers/provider-helpers.ts"],"names":[],"mappings":"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"}
@@ -1,200 +0,0 @@
1
- import type { CliEnvironment } from "../cli/environment.js";
2
- import type { CommandContext } from "../cli/context.js";
3
- import type { FileSystem } from "../utils/file-system.js";
4
- import { type JsonObject } from "../utils/json.js";
5
- import { type TomlTable, type TomlMergeOptions } from "../utils/toml.js";
6
- type ValueResolver<Options, Value> = Value | ((context: MutationContext<Options>) => Value);
7
- type TargetPathResolver<Options> = ValueResolver<Options, string>;
8
- type TargetDirectoryResolver<Options> = ValueResolver<Options, string>;
9
- type TargetFileResolver<Options> = ValueResolver<Options, string>;
10
- export type TargetLocation<Options> = {
11
- target: TargetPathResolver<Options>;
12
- targetDirectory?: never;
13
- targetFile?: never;
14
- } | {
15
- target?: never;
16
- targetDirectory: TargetDirectoryResolver<Options>;
17
- targetFile?: TargetFileResolver<Options>;
18
- };
19
- interface MutationContext<Options> {
20
- options: Options;
21
- fs: FileSystem;
22
- env: CliEnvironment;
23
- }
24
- export interface ServiceManifestPathMapper {
25
- mapTargetDirectory: (input: {
26
- targetDirectory: string;
27
- env: CliEnvironment;
28
- }) => string;
29
- }
30
- interface TransformResult {
31
- content: string | null;
32
- changed: boolean;
33
- }
34
- interface TransformFileMutation<Options> {
35
- kind: "transformFile";
36
- label?: ValueResolver<Options, string | undefined>;
37
- target: TargetLocation<Options>;
38
- transform(input: {
39
- content: string | null;
40
- context: MutationContext<Options>;
41
- }): Promise<TransformResult> | TransformResult;
42
- }
43
- interface EnsureDirectoryMutation<Options> {
44
- kind: "ensureDirectory";
45
- label?: ValueResolver<Options, string | undefined>;
46
- targetDirectory: TargetDirectoryResolver<Options>;
47
- }
48
- interface CreateBackupMutation<Options> {
49
- kind: "createBackup";
50
- label?: ValueResolver<Options, string | undefined>;
51
- target: TargetLocation<Options>;
52
- timestamp?: ValueResolver<Options, (() => string) | undefined>;
53
- }
54
- interface WriteTemplateMutation<Options> {
55
- kind: "writeTemplate";
56
- label?: ValueResolver<Options, string | undefined>;
57
- target: TargetLocation<Options>;
58
- templateId: string;
59
- context?: ValueResolver<Options, JsonObject | undefined>;
60
- }
61
- interface RemoveFileMutation<Options> {
62
- kind: "removeFile";
63
- label?: ValueResolver<Options, string | undefined>;
64
- target: TargetLocation<Options>;
65
- whenEmpty?: boolean;
66
- whenContentMatches?: RegExp;
67
- }
68
- interface ChmodMutation<Options> {
69
- kind: "chmod";
70
- label?: ValueResolver<Options, string | undefined>;
71
- target: TargetLocation<Options>;
72
- mode: number;
73
- }
74
- export type ServiceMutation<Options> = TransformFileMutation<Options> | EnsureDirectoryMutation<Options> | CreateBackupMutation<Options> | WriteTemplateMutation<Options> | RemoveFileMutation<Options> | ChmodMutation<Options>;
75
- export interface ServiceManifestDefinition<ConfigureOptions, UnconfigureOptions = ConfigureOptions> {
76
- id: string;
77
- summary: string;
78
- configure: ServiceMutation<ConfigureOptions>[];
79
- unconfigure?: ServiceMutation<UnconfigureOptions>[];
80
- }
81
- export interface ServiceManifest<ConfigureOptions, UnconfigureOptions = ConfigureOptions> {
82
- id: string;
83
- summary: string;
84
- configureMutations: ServiceMutation<ConfigureOptions>[];
85
- unconfigureMutations?: ServiceMutation<UnconfigureOptions>[];
86
- configure(context: ServiceExecutionContext<ConfigureOptions>, runOptions?: ServiceRunOptions): Promise<void>;
87
- unconfigure: (context: ServiceExecutionContext<UnconfigureOptions>, runOptions?: ServiceRunOptions) => Promise<boolean>;
88
- }
89
- export interface ServiceExecutionContext<Options> {
90
- fs: FileSystem;
91
- env: CliEnvironment;
92
- command: CommandContext;
93
- options: Options;
94
- pathMapper?: ServiceManifestPathMapper;
95
- }
96
- export interface MutationLogDetails {
97
- manifestId: string;
98
- kind: ServiceMutationKind;
99
- label: string;
100
- targetPath?: string;
101
- }
102
- export type MutationDetail = "create" | "update" | "delete" | "noop" | "backup";
103
- export interface ServiceMutationOutcome {
104
- changed: boolean;
105
- effect: MutationEffect;
106
- detail?: MutationDetail;
107
- }
108
- export type MutationEffect = "none" | "mkdir" | "copy" | "write" | "delete" | "chmod";
109
- export interface ServiceMutationObservers {
110
- onStart?(details: MutationLogDetails): void;
111
- onComplete?(details: MutationLogDetails, outcome: ServiceMutationOutcome): void;
112
- onError?(details: MutationLogDetails, error: unknown): void;
113
- }
114
- export declare function ensureDirectory<Options>(config: {
115
- path?: ValueResolver<Options, string>;
116
- targetDirectory?: ValueResolver<Options, string>;
117
- label?: ValueResolver<Options, string | undefined>;
118
- }): ServiceMutation<Options>;
119
- export declare function createBackupMutation<Options>(config: {
120
- target?: ValueResolver<Options, string>;
121
- targetDirectory?: ValueResolver<Options, string>;
122
- targetFile?: ValueResolver<Options, string>;
123
- timestamp?: ValueResolver<Options, (() => string) | undefined>;
124
- label?: ValueResolver<Options, string | undefined>;
125
- }): ServiceMutation<Options>;
126
- export declare function writeTemplateMutation<Options>(config: {
127
- target?: ValueResolver<Options, string>;
128
- targetDirectory?: ValueResolver<Options, string>;
129
- targetFile?: ValueResolver<Options, string>;
130
- templateId: string;
131
- context?: ValueResolver<Options, JsonObject | undefined>;
132
- label?: ValueResolver<Options, string | undefined>;
133
- }): ServiceMutation<Options>;
134
- export declare function chmodMutation<Options>(config: {
135
- target?: ValueResolver<Options, string>;
136
- targetDirectory?: ValueResolver<Options, string>;
137
- targetFile?: ValueResolver<Options, string>;
138
- mode: number;
139
- label?: ValueResolver<Options, string | undefined>;
140
- }): ServiceMutation<Options>;
141
- export declare function jsonMergeMutation<Options>(config: {
142
- target?: ValueResolver<Options, string>;
143
- targetDirectory?: ValueResolver<Options, string>;
144
- targetFile?: ValueResolver<Options, string>;
145
- value: ValueResolver<Options, JsonObject>;
146
- label?: ValueResolver<Options, string | undefined>;
147
- }): ServiceMutation<Options>;
148
- export declare function jsonPruneMutation<Options>(config: {
149
- target?: ValueResolver<Options, string>;
150
- targetDirectory?: ValueResolver<Options, string>;
151
- targetFile?: ValueResolver<Options, string>;
152
- shape: ValueResolver<Options, JsonObject>;
153
- label?: ValueResolver<Options, string | undefined>;
154
- }): ServiceMutation<Options>;
155
- export declare function tomlMergeMutation<Options>(config: {
156
- target?: ValueResolver<Options, string>;
157
- targetDirectory?: ValueResolver<Options, string>;
158
- targetFile?: ValueResolver<Options, string>;
159
- value: ValueResolver<Options, TomlTable>;
160
- pruneByPrefix?: TomlMergeOptions["pruneByPrefix"];
161
- label?: ValueResolver<Options, string | undefined>;
162
- }): ServiceMutation<Options>;
163
- export declare function tomlPruneMutation<Options>(config: {
164
- target?: ValueResolver<Options, string>;
165
- targetDirectory?: ValueResolver<Options, string>;
166
- targetFile?: ValueResolver<Options, string>;
167
- prune: (document: TomlTable, context: MutationContext<Options>) => {
168
- changed: boolean;
169
- result: TomlTable | null;
170
- };
171
- label?: ValueResolver<Options, string | undefined>;
172
- }): ServiceMutation<Options>;
173
- export declare function tomlTemplateMergeMutation<Options>(config: {
174
- target?: ValueResolver<Options, string>;
175
- targetDirectory?: ValueResolver<Options, string>;
176
- targetFile?: ValueResolver<Options, string>;
177
- templateId: string;
178
- context?: ValueResolver<Options, JsonObject | undefined>;
179
- label?: ValueResolver<Options, string | undefined>;
180
- }): ServiceMutation<Options>;
181
- export declare function removePatternMutation<Options>(config: {
182
- target: ValueResolver<Options, string>;
183
- pattern: RegExp;
184
- replacement?: string | ((match: string, context: MutationContext<Options>) => string);
185
- label?: ValueResolver<Options, string | undefined>;
186
- }): ServiceMutation<Options>;
187
- export declare function removeFileMutation<Options>(config: {
188
- target?: ValueResolver<Options, string>;
189
- targetDirectory?: ValueResolver<Options, string>;
190
- targetFile?: ValueResolver<Options, string>;
191
- whenEmpty?: boolean;
192
- whenContentMatches?: RegExp;
193
- label?: ValueResolver<Options, string | undefined>;
194
- }): ServiceMutation<Options>;
195
- export declare function createServiceManifest<ConfigureOptions, UnconfigureOptions = ConfigureOptions>(definition: ServiceManifestDefinition<ConfigureOptions, UnconfigureOptions>): ServiceManifest<ConfigureOptions, UnconfigureOptions>;
196
- export interface ServiceRunOptions {
197
- observers?: ServiceMutationObservers;
198
- }
199
- export type ServiceMutationKind = ServiceMutation<unknown>["kind"];
200
- export {};
@@ -1,717 +0,0 @@
1
- import path from "node:path";
2
- import { createBackup } from "../utils/backup.js";
3
- import { renderTemplate } from "../utils/templates.js";
4
- import { deepMergeJson, isJsonObject, pruneJsonByShape } from "../utils/json.js";
5
- import { parseTomlDocument, serializeTomlDocument, mergeTomlTables } from "../utils/toml.js";
6
- export function ensureDirectory(config) {
7
- const targetDirectory = config.targetDirectory ?? config.path;
8
- if (!targetDirectory) {
9
- throw new Error("ensureDirectory requires a path or targetDirectory.");
10
- }
11
- return {
12
- kind: "ensureDirectory",
13
- targetDirectory,
14
- label: config.label
15
- };
16
- }
17
- export function createBackupMutation(config) {
18
- return {
19
- kind: "createBackup",
20
- target: normalizeTargetLocation(config),
21
- timestamp: config.timestamp,
22
- label: config.label
23
- };
24
- }
25
- export function writeTemplateMutation(config) {
26
- return {
27
- kind: "writeTemplate",
28
- target: normalizeTargetLocation(config),
29
- templateId: config.templateId,
30
- context: config.context,
31
- label: config.label
32
- };
33
- }
34
- export function chmodMutation(config) {
35
- return {
36
- kind: "chmod",
37
- target: normalizeTargetLocation(config),
38
- mode: config.mode,
39
- label: config.label
40
- };
41
- }
42
- export function jsonMergeMutation(config) {
43
- return {
44
- kind: "transformFile",
45
- target: normalizeTargetLocation(config),
46
- label: config.label,
47
- async transform({ content, context }) {
48
- const targetPath = resolveTargetPath(config, context);
49
- const current = await parseJsonWithRecovery({
50
- content,
51
- fs: context.fs,
52
- targetPath
53
- });
54
- const desired = resolveValue(config.value, context);
55
- const merged = deepMergeJson(current, desired);
56
- const serialized = serializeJson(merged);
57
- return {
58
- content: serialized,
59
- changed: serialized !== content
60
- };
61
- }
62
- };
63
- }
64
- export function jsonPruneMutation(config) {
65
- return {
66
- kind: "transformFile",
67
- target: normalizeTargetLocation(config),
68
- label: config.label,
69
- async transform({ content, context }) {
70
- if (content == null) {
71
- return { content: null, changed: false };
72
- }
73
- const targetPath = resolveTargetPath(config, context);
74
- const current = await parseJsonWithRecovery({
75
- content,
76
- fs: context.fs,
77
- targetPath
78
- });
79
- const shape = resolveValue(config.shape, context);
80
- const { changed, result } = pruneJsonByShape(current, shape);
81
- if (!changed) {
82
- return { content, changed: false };
83
- }
84
- if (Object.keys(result).length === 0) {
85
- return { content: null, changed: true };
86
- }
87
- const serialized = serializeJson(result);
88
- return {
89
- content: serialized,
90
- changed: serialized !== content
91
- };
92
- }
93
- };
94
- }
95
- export function tomlMergeMutation(config) {
96
- return {
97
- kind: "transformFile",
98
- target: normalizeTargetLocation(config),
99
- label: config.label,
100
- async transform({ content, context }) {
101
- const targetPath = resolveTargetPath(config, context);
102
- const current = await parseTomlWithRecovery({
103
- content,
104
- fs: context.fs,
105
- targetPath
106
- });
107
- const desired = resolveValue(config.value, context);
108
- const mergeOptions = config.pruneByPrefix
109
- ? { pruneByPrefix: config.pruneByPrefix }
110
- : {};
111
- const merged = mergeTomlTables(current, desired, mergeOptions);
112
- const serialized = serializeTomlDocument(merged);
113
- const previous = content ?? "";
114
- return {
115
- content: serialized,
116
- changed: serialized !== previous
117
- };
118
- }
119
- };
120
- }
121
- export function tomlPruneMutation(config) {
122
- return {
123
- kind: "transformFile",
124
- target: normalizeTargetLocation(config),
125
- label: config.label,
126
- async transform({ content, context }) {
127
- if (content == null) {
128
- return { content: null, changed: false };
129
- }
130
- let document;
131
- try {
132
- document = parseTomlDocument(content);
133
- }
134
- catch {
135
- return { content, changed: false };
136
- }
137
- const outcome = config.prune(document, context);
138
- if (!outcome.changed) {
139
- return { content, changed: false };
140
- }
141
- if (!outcome.result || Object.keys(outcome.result).length === 0) {
142
- return { content: null, changed: true };
143
- }
144
- const serialized = serializeTomlDocument(outcome.result);
145
- return {
146
- content: serialized,
147
- changed: serialized !== content
148
- };
149
- }
150
- };
151
- }
152
- export function tomlTemplateMergeMutation(config) {
153
- return {
154
- kind: "transformFile",
155
- target: normalizeTargetLocation(config),
156
- label: config.label,
157
- async transform({ content, context }) {
158
- const targetPath = resolveTargetPath(config, context);
159
- const current = await parseTomlWithRecovery({
160
- content,
161
- fs: context.fs,
162
- targetPath
163
- });
164
- const templateContext = config.context
165
- ? resolveValue(config.context, context)
166
- : undefined;
167
- const rendered = await renderTemplate(config.templateId, templateContext ?? {});
168
- const templateDocument = parseTomlDocument(rendered);
169
- const merged = mergeTomlTables(current, templateDocument);
170
- const serialized = serializeTomlDocument(merged);
171
- const previous = content ?? "";
172
- return {
173
- content: serialized,
174
- changed: serialized !== previous
175
- };
176
- }
177
- };
178
- }
179
- export function removePatternMutation(config) {
180
- return {
181
- kind: "transformFile",
182
- target: { target: config.target },
183
- label: config.label,
184
- transform({ content, context }) {
185
- if (content == null) {
186
- return { content: null, changed: false };
187
- }
188
- let next;
189
- if (typeof config.replacement === "function") {
190
- const replacementFn = config.replacement;
191
- const replacer = (match, ..._args) => replacementFn(match, context);
192
- next = content.replace(config.pattern, replacer);
193
- }
194
- else {
195
- next = content.replace(config.pattern, config.replacement ?? "");
196
- }
197
- return {
198
- content: next,
199
- changed: next !== content
200
- };
201
- }
202
- };
203
- }
204
- export function removeFileMutation(config) {
205
- return {
206
- kind: "removeFile",
207
- target: normalizeTargetLocation(config),
208
- whenEmpty: config.whenEmpty,
209
- whenContentMatches: config.whenContentMatches,
210
- label: config.label
211
- };
212
- }
213
- export function createServiceManifest(definition) {
214
- const configureMutations = definition.configure;
215
- const unconfigureMutations = definition.unconfigure;
216
- return {
217
- id: definition.id,
218
- summary: definition.summary,
219
- configureMutations,
220
- unconfigureMutations,
221
- async configure(context, runOptions) {
222
- await runMutations(configureMutations, context, {
223
- trackChanges: false,
224
- observers: runOptions?.observers,
225
- manifestId: definition.id
226
- });
227
- },
228
- async unconfigure(context, runOptions) {
229
- if (!unconfigureMutations) {
230
- return false;
231
- }
232
- return runMutations(unconfigureMutations, context, {
233
- trackChanges: true,
234
- observers: runOptions?.observers,
235
- manifestId: definition.id
236
- });
237
- }
238
- };
239
- }
240
- async function runMutations(mutations, context, options) {
241
- let touched = false;
242
- for (const mutation of mutations) {
243
- const changed = await applyMutation(mutation, context, options.manifestId, options.observers);
244
- if (options.trackChanges && changed) {
245
- touched = true;
246
- }
247
- }
248
- return touched;
249
- }
250
- async function applyMutation(mutation, context, manifestId, observers) {
251
- switch (mutation.kind) {
252
- case "ensureDirectory": {
253
- validateHomeRelativePath(mutation.targetDirectory, context);
254
- const targetPath = resolvePath({ targetDirectory: mutation.targetDirectory }, context);
255
- const details = createMutationDetails(mutation, manifestId, targetPath, context);
256
- observers?.onStart?.(details);
257
- try {
258
- const existed = await pathExists(context.fs, targetPath);
259
- await context.fs.mkdir(targetPath, { recursive: true });
260
- observers?.onComplete?.(details, {
261
- changed: !existed,
262
- effect: "mkdir",
263
- detail: existed ? "noop" : "create"
264
- });
265
- flushCommandDryRun(context);
266
- return !existed;
267
- }
268
- catch (error) {
269
- observers?.onError?.(details, error);
270
- throw error;
271
- }
272
- }
273
- case "createBackup": {
274
- validateHomeRelativePath(mutation.target, context);
275
- const targetPath = resolvePath(mutation.target, context);
276
- const timestamp = mutation.timestamp
277
- ? resolveValue(mutation.timestamp, mutationContext(context))
278
- : undefined;
279
- const details = createMutationDetails(mutation, manifestId, targetPath, context);
280
- observers?.onStart?.(details);
281
- try {
282
- const backupPath = await createBackup(context.fs, targetPath, timestamp);
283
- observers?.onComplete?.(details, {
284
- changed: backupPath != null,
285
- effect: backupPath ? "copy" : "none",
286
- detail: backupPath ? "backup" : "noop"
287
- });
288
- flushCommandDryRun(context);
289
- }
290
- catch (error) {
291
- observers?.onError?.(details, error);
292
- throw error;
293
- }
294
- return false;
295
- }
296
- case "writeTemplate": {
297
- validateHomeRelativePath(mutation.target, context);
298
- const targetPath = resolvePath(mutation.target, context);
299
- const renderContext = mutation.context
300
- ? resolveValue(mutation.context, mutationContext(context))
301
- : undefined;
302
- const rendered = await renderTemplate(mutation.templateId, renderContext ?? {});
303
- const details = createMutationDetails(mutation, manifestId, targetPath, context);
304
- observers?.onStart?.(details);
305
- try {
306
- const existed = await pathExists(context.fs, targetPath);
307
- await context.fs.writeFile(targetPath, rendered, { encoding: "utf8" });
308
- observers?.onComplete?.(details, {
309
- changed: true,
310
- effect: "write",
311
- detail: existed ? "update" : "create"
312
- });
313
- flushCommandDryRun(context);
314
- }
315
- catch (error) {
316
- observers?.onError?.(details, error);
317
- throw error;
318
- }
319
- return true;
320
- }
321
- case "chmod": {
322
- validateHomeRelativePath(mutation.target, context);
323
- const targetPath = resolvePath(mutation.target, context);
324
- const details = createMutationDetails(mutation, manifestId, targetPath, context);
325
- observers?.onStart?.(details);
326
- try {
327
- if (typeof context.fs.chmod !== "function") {
328
- observers?.onComplete?.(details, {
329
- changed: false,
330
- effect: "none",
331
- detail: "noop"
332
- });
333
- flushCommandDryRun(context);
334
- return false;
335
- }
336
- const stat = await context.fs.stat(targetPath);
337
- const currentMode = typeof stat.mode === "number" ? stat.mode & 0o777 : null;
338
- if (currentMode === mutation.mode) {
339
- observers?.onComplete?.(details, {
340
- changed: false,
341
- effect: "none",
342
- detail: "noop"
343
- });
344
- flushCommandDryRun(context);
345
- return false;
346
- }
347
- await context.fs.chmod(targetPath, mutation.mode);
348
- observers?.onComplete?.(details, {
349
- changed: true,
350
- effect: "chmod",
351
- detail: "update"
352
- });
353
- flushCommandDryRun(context);
354
- return true;
355
- }
356
- catch (error) {
357
- if (isNotFound(error)) {
358
- observers?.onComplete?.(details, {
359
- changed: false,
360
- effect: "none",
361
- detail: "noop"
362
- });
363
- flushCommandDryRun(context);
364
- return false;
365
- }
366
- observers?.onError?.(details, error);
367
- throw error;
368
- }
369
- }
370
- case "removeFile": {
371
- validateHomeRelativePath(mutation.target, context);
372
- const targetPath = resolvePath(mutation.target, context);
373
- const details = createMutationDetails(mutation, manifestId, targetPath, context);
374
- observers?.onStart?.(details);
375
- try {
376
- const raw = await context.fs.readFile(targetPath, "utf8");
377
- const trimmed = raw.trim();
378
- if (mutation.whenContentMatches &&
379
- !mutation.whenContentMatches.test(trimmed)) {
380
- observers?.onComplete?.(details, {
381
- changed: false,
382
- effect: "none",
383
- detail: "noop"
384
- });
385
- flushCommandDryRun(context);
386
- return false;
387
- }
388
- if (mutation.whenEmpty && trimmed.length > 0) {
389
- observers?.onComplete?.(details, {
390
- changed: false,
391
- effect: "none",
392
- detail: "noop"
393
- });
394
- flushCommandDryRun(context);
395
- return false;
396
- }
397
- await context.fs.unlink(targetPath);
398
- observers?.onComplete?.(details, {
399
- changed: true,
400
- effect: "delete",
401
- detail: "delete"
402
- });
403
- flushCommandDryRun(context);
404
- return true;
405
- }
406
- catch (error) {
407
- if (isNotFound(error)) {
408
- observers?.onComplete?.(details, {
409
- changed: false,
410
- effect: "none",
411
- detail: "noop"
412
- });
413
- flushCommandDryRun(context);
414
- return false;
415
- }
416
- observers?.onError?.(details, error);
417
- throw error;
418
- }
419
- }
420
- case "transformFile": {
421
- validateHomeRelativePath(mutation.target, context);
422
- const targetPath = resolvePath(mutation.target, context);
423
- const current = await readFileIfExists(context.fs, targetPath);
424
- const details = createMutationDetails(mutation, manifestId, targetPath, context);
425
- observers?.onStart?.(details);
426
- try {
427
- const result = await mutation.transform({
428
- content: current,
429
- context: mutationContext(context)
430
- });
431
- const transformOutcome = await persistTransformResult({
432
- fs: context.fs,
433
- targetPath,
434
- previousContent: current,
435
- result
436
- });
437
- observers?.onComplete?.(details, transformOutcome);
438
- flushCommandDryRun(context);
439
- return transformOutcome.changed;
440
- }
441
- catch (error) {
442
- observers?.onError?.(details, error);
443
- throw error;
444
- }
445
- }
446
- default: {
447
- const neverMutation = mutation;
448
- throw new Error(`Unsupported mutation kind: ${neverMutation.kind}`);
449
- }
450
- }
451
- }
452
- function validateHomeRelativePath(resolver, context) {
453
- const raw = resolveRawPathResolver(resolver, context);
454
- if (typeof raw !== "string" || raw.length === 0) {
455
- return;
456
- }
457
- if (raw.startsWith("~")) {
458
- return;
459
- }
460
- throw new Error(`Service manifest targets must live under home (~): received "${raw}".`);
461
- }
462
- function resolveRawPathResolver(resolver, context) {
463
- const location = normalizeResolverToLocation(resolver);
464
- if ("target" in location && location.target !== undefined) {
465
- return resolveValue(location.target, mutationContext(context));
466
- }
467
- return resolveValue(location.targetDirectory, mutationContext(context));
468
- }
469
- function mutationContext(context) {
470
- return {
471
- fs: context.fs,
472
- options: context.options,
473
- env: context.env
474
- };
475
- }
476
- function createMutationDetails(mutation, manifestId, targetPath, context) {
477
- const customLabel = mutation.label != null
478
- ? resolveValue(mutation.label, mutationContext(context))
479
- : undefined;
480
- const label = customLabel ?? describeMutationOperation(mutation.kind, targetPath);
481
- return {
482
- manifestId,
483
- kind: mutation.kind,
484
- label,
485
- targetPath
486
- };
487
- }
488
- function describeMutationOperation(kind, targetPath) {
489
- const displayPath = targetPath ?? "target";
490
- switch (kind) {
491
- case "ensureDirectory":
492
- return `Create ${displayPath}`;
493
- case "createBackup":
494
- return `Backup ${displayPath}`;
495
- case "writeTemplate":
496
- return `Write ${displayPath}`;
497
- case "chmod":
498
- return `Set permissions on ${displayPath}`;
499
- case "removeFile":
500
- return `Remove ${displayPath}`;
501
- case "transformFile":
502
- return `Update ${displayPath}`;
503
- default:
504
- return "Operation";
505
- }
506
- }
507
- function resolveValue(resolver, context) {
508
- if (typeof resolver === "function") {
509
- return resolver(context);
510
- }
511
- return resolver;
512
- }
513
- function resolvePath(resolver, context) {
514
- const location = normalizeResolverToLocation(resolver);
515
- if ("target" in location && location.target !== undefined) {
516
- const raw = resolveValue(location.target, mutationContext(context));
517
- const expanded = expandHomeShortcut(raw, context.env);
518
- if (!context.pathMapper) {
519
- return expanded;
520
- }
521
- const rawDirectory = path.dirname(expanded);
522
- const mappedDirectory = context.pathMapper.mapTargetDirectory({
523
- targetDirectory: rawDirectory,
524
- env: context.env
525
- });
526
- const rawFile = path.basename(expanded);
527
- return rawFile.length === 0 ? mappedDirectory : path.join(mappedDirectory, rawFile);
528
- }
529
- const rawDirectory = resolveValue(location.targetDirectory, mutationContext(context));
530
- const expandedDirectory = expandHomeShortcut(rawDirectory, context.env);
531
- const mappedDirectory = context.pathMapper
532
- ? context.pathMapper.mapTargetDirectory({
533
- targetDirectory: expandedDirectory,
534
- env: context.env
535
- })
536
- : expandedDirectory;
537
- if (location.targetFile === undefined) {
538
- return mappedDirectory;
539
- }
540
- const rawFile = resolveValue(location.targetFile, mutationContext(context));
541
- return rawFile.length === 0 ? mappedDirectory : path.join(mappedDirectory, rawFile);
542
- }
543
- function normalizeResolverToLocation(resolver) {
544
- if (typeof resolver === "object" && resolver != null) {
545
- if ("target" in resolver || "targetDirectory" in resolver) {
546
- return resolver;
547
- }
548
- }
549
- return {
550
- target: resolver
551
- };
552
- }
553
- function normalizeTargetLocation(config) {
554
- if (config.target) {
555
- return { target: config.target };
556
- }
557
- if (config.targetDirectory) {
558
- return {
559
- targetDirectory: config.targetDirectory,
560
- targetFile: config.targetFile
561
- };
562
- }
563
- throw new Error("Missing target for service manifest mutation.");
564
- }
565
- function resolveTargetPath(config, context) {
566
- if (config.target) {
567
- return expandHomeShortcut(resolveValue(config.target, context), context.env);
568
- }
569
- if (!config.targetDirectory) {
570
- throw new Error("Missing targetDirectory.");
571
- }
572
- const directory = expandHomeShortcut(resolveValue(config.targetDirectory, context), context.env);
573
- if (!config.targetFile) {
574
- return directory;
575
- }
576
- const file = resolveValue(config.targetFile, context);
577
- return file.length === 0 ? directory : path.join(directory, file);
578
- }
579
- function flushCommandDryRun(context) {
580
- context.command.flushDryRun({ emitIfEmpty: false });
581
- }
582
- function expandHomeShortcut(targetPath, env) {
583
- if (!targetPath?.startsWith("~")) {
584
- return targetPath;
585
- }
586
- if (targetPath.startsWith("~./")) {
587
- targetPath = `~/.${targetPath.slice(3)}`;
588
- }
589
- const homeDir = env?.homeDir ?? process.env.HOME ?? process.env.USERPROFILE;
590
- if (!homeDir) {
591
- return targetPath;
592
- }
593
- let remainder = targetPath.slice(1);
594
- if (remainder.startsWith("/")) {
595
- remainder = remainder.slice(1);
596
- }
597
- else if (remainder.startsWith("\\")) {
598
- remainder = remainder.slice(1);
599
- }
600
- else if (remainder.startsWith(".")) {
601
- remainder = remainder.slice(1);
602
- if (remainder.startsWith("/")) {
603
- remainder = remainder.slice(1);
604
- }
605
- else if (remainder.startsWith("\\")) {
606
- remainder = remainder.slice(1);
607
- }
608
- }
609
- return remainder.length === 0 ? homeDir : path.join(homeDir, remainder);
610
- }
611
- function parseJson(content) {
612
- if (content == null) {
613
- return {};
614
- }
615
- const parsed = JSON.parse(content);
616
- if (!isJsonObject(parsed)) {
617
- throw new Error("Expected JSON object for manifest-managed file.");
618
- }
619
- return parsed;
620
- }
621
- async function parseJsonWithRecovery(input) {
622
- try {
623
- return parseJson(input.content);
624
- }
625
- catch {
626
- await backupInvalidJsonDocument(input);
627
- return {};
628
- }
629
- }
630
- async function parseTomlWithRecovery(input) {
631
- if (input.content == null) {
632
- return {};
633
- }
634
- try {
635
- return parseTomlDocument(input.content);
636
- }
637
- catch {
638
- await backupInvalidTomlDocument(input);
639
- return {};
640
- }
641
- }
642
- async function backupInvalidJsonDocument(input) {
643
- if (input.content == null) {
644
- return;
645
- }
646
- const backupPath = createInvalidDocumentBackupPath(input.targetPath);
647
- await input.fs.writeFile(backupPath, input.content, { encoding: "utf8" });
648
- }
649
- async function backupInvalidTomlDocument(input) {
650
- if (input.content == null) {
651
- return;
652
- }
653
- const backupPath = createInvalidDocumentBackupPath(input.targetPath);
654
- await input.fs.writeFile(backupPath, input.content, { encoding: "utf8" });
655
- }
656
- function createInvalidDocumentBackupPath(targetPath) {
657
- return `${targetPath}.invalid-${createTimestamp()}.json`;
658
- }
659
- function createTimestamp() {
660
- return new Date()
661
- .toISOString()
662
- .replaceAll(":", "-")
663
- .replaceAll(".", "-");
664
- }
665
- function serializeJson(value) {
666
- return `${JSON.stringify(value, null, 2)}\n`;
667
- }
668
- async function persistTransformResult(input) {
669
- if (!input.result.changed) {
670
- return { changed: false, effect: "none", detail: "noop" };
671
- }
672
- if (input.result.content == null) {
673
- if (input.previousContent == null) {
674
- return { changed: false, effect: "none", detail: "noop" };
675
- }
676
- await input.fs.unlink(input.targetPath);
677
- return { changed: true, effect: "delete", detail: "delete" };
678
- }
679
- await input.fs.writeFile(input.targetPath, input.result.content, {
680
- encoding: "utf8"
681
- });
682
- return {
683
- changed: true,
684
- effect: "write",
685
- detail: input.previousContent == null ? "create" : "update"
686
- };
687
- }
688
- async function readFileIfExists(fs, target) {
689
- try {
690
- return await fs.readFile(target, "utf8");
691
- }
692
- catch (error) {
693
- if (isNotFound(error)) {
694
- return null;
695
- }
696
- throw error;
697
- }
698
- }
699
- async function pathExists(fs, target) {
700
- try {
701
- await fs.stat(target);
702
- return true;
703
- }
704
- catch (error) {
705
- if (isNotFound(error)) {
706
- return false;
707
- }
708
- throw error;
709
- }
710
- }
711
- function isNotFound(error) {
712
- return (typeof error === "object" &&
713
- error !== null &&
714
- "code" in error &&
715
- error.code === "ENOENT");
716
- }
717
- //# sourceMappingURL=service-manifest.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"service-manifest.js","sourceRoot":"","sources":["../../src/services/service-manifest.ts"],"names":[],"mappings":"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"}