@builder.io/dev-tools 1.22.2-dev.202602021932.a1fb74ebb → 1.22.2-dev.202602022342.768d3c452
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/cli/index.cjs +1186 -745
- package/cli/index.cjs.map +4 -4
- package/core/index.cjs +1 -1
- package/core/index.mjs +1 -1
- package/node/index.cjs +1 -1
- package/node/index.mjs +1 -1
- package/package.json +1 -1
- package/server/index.cjs +2 -5
- package/server/index.mjs +2 -5
- package/types/_tests_/utils.d.ts +35 -48
- package/types/cli/abort-signal-any.d.ts +1 -3
- package/types/cli/auth/auth-utils.d.ts +1 -3
- package/types/cli/auth/auth.d.ts +1 -5
- package/types/cli/backup.d.ts +60 -114
- package/types/cli/builder-add/interface.d.ts +4 -21
- package/types/cli/code-file-utils.d.ts +8 -11
- package/types/cli/code.d.ts +3 -13
- package/types/cli/constants.d.ts +1 -1
- package/types/cli/credentials.d.ts +45 -61
- package/types/cli/detectors/nextjs.d.ts +1 -4
- package/types/cli/detectors/svelte.d.ts +1 -4
- package/types/cli/detectors/vue.d.ts +1 -4
- package/types/cli/download.d.ts +4 -9
- package/types/cli/dsi-mcp.d.ts +1 -4
- package/types/cli/fetch.d.ts +2 -7
- package/types/cli/figma-publish.d.ts +17 -34
- package/types/cli/figma-utils.d.ts +21 -51
- package/types/cli/figma.d.ts +2 -9
- package/types/cli/generate.d.ts +11 -14
- package/types/cli/incremental-tsc.d.ts +7 -19
- package/types/cli/index.d.ts +154 -154
- package/types/cli/launch/InitStateMachine.d.ts +89 -156
- package/types/cli/launch/config.d.ts +3 -13
- package/types/cli/launch/dev-server-orchestrator.d.ts +99 -131
- package/types/cli/launch/dry-run-backup.d.ts +7 -14
- package/types/cli/launch/errors.d.ts +2 -7
- package/types/cli/launch/grafana.d.ts +1 -5
- package/types/cli/launch/helpers.d.ts +10 -19
- package/types/cli/launch/machine-health.d.ts +3 -8
- package/types/cli/launch/proxy.d.ts +4 -11
- package/types/cli/launch/server.d.ts +12 -19
- package/types/cli/launch/vscode-tunnel-manager.d.ts +68 -77
- package/types/cli/launch.d.ts +106 -109
- package/types/cli/prettier.d.ts +2 -9
- package/types/cli/repo-connect/env-collector.d.ts +11 -16
- package/types/cli/repo-connect/file-collector.d.ts +15 -22
- package/types/cli/repo-connect/git-detector.d.ts +11 -13
- package/types/cli/repo-connect/install-runner.d.ts +5 -8
- package/types/cli/repo-connect/package-detector.d.ts +8 -12
- package/types/cli/repo-connect/repo-connect.d.ts +1 -4
- package/types/cli/repo-indexing/component-discovery.d.ts +17 -30
- package/types/cli/repo-indexing/component-indexing.d.ts +20 -39
- package/types/cli/repo-indexing/icons.d.ts +24 -36
- package/types/cli/repo-indexing/installation.d.ts +14 -22
- package/types/cli/repo-indexing/repo-indexing-utils.d.ts +79 -138
- package/types/cli/repo-indexing/repo-indexing.d.ts +17 -37
- package/types/cli/repo-indexing/repo-indexing.mock.d.ts +3 -3
- package/types/cli/repo-indexing/tokens.d.ts +25 -44
- package/types/cli/repo-indexing/types.d.ts +29 -29
- package/types/cli/repo-metrics-utils.d.ts +5 -13
- package/types/cli/repo-metrics.d.ts +1 -4
- package/types/cli/report/figma-report.d.ts +36 -63
- package/types/cli/server-ws.d.ts +32 -40
- package/types/cli/spinner.d.ts +4 -4
- package/types/cli/sync-utils.d.ts +18 -45
- package/types/cli/track.d.ts +1 -4
- package/types/cli/utils/agent-discovery.d.ts +5 -10
- package/types/cli/utils/agent-parser.d.ts +14 -18
- package/types/cli/utils/component-group-mdx-prompt.d.ts +1 -2
- package/types/cli/utils/discovery-test-utils.d.ts +1 -3
- package/types/cli/utils/env-capture.d.ts +15 -21
- package/types/cli/utils/env-substitution.d.ts +1 -4
- package/types/cli/utils/feature-flags.d.ts +1 -3
- package/types/cli/utils/file-overrides-manager.d.ts +23 -39
- package/types/cli/utils/git.d.ts +16 -28
- package/types/cli/utils/hosts-file-manager.d.ts +4 -7
- package/types/cli/utils/lock-file.d.ts +7 -10
- package/types/cli/utils/parseGitDiff.d.ts +1 -4
- package/types/cli/utils/process-tracker.d.ts +51 -85
- package/types/cli/utils/project-configuration-agent.d.ts +2 -0
- package/types/cli/utils/repo-indexing-agent-prompt.d.ts +1 -2
- package/types/cli/utils/rules-discovery.d.ts +5 -10
- package/types/cli/utils/rules-parser.d.ts +1 -5
- package/types/cli/utils/terminal-buffer.d.ts +23 -23
- package/types/cli/utils/workspace-path-resolver.d.ts +16 -23
- package/types/cli/utils/yaml-frontmatter.d.ts +6 -10
- package/types/client/client-api.d.ts +10 -42
- package/types/client/edit-button/document-listeners.d.ts +1 -3
- package/types/client/edit-button/index.d.ts +6 -6
- package/types/client/menu/index.d.ts +3 -3
- package/types/client/menu/pages/component-detail.d.ts +2 -8
- package/types/client/menu/pages/component-input.d.ts +1 -5
- package/types/client/menu/pages/component-list.d.ts +1 -4
- package/types/client/menu/toggle/menu-toggle.d.ts +1 -4
- package/types/client/setup-ui/overview.d.ts +2 -2
- package/types/client/tracking.d.ts +11 -11
- package/types/client/utils.d.ts +3 -5
- package/types/common/ast/app-dependencies.d.ts +2 -8
- package/types/common/ast/component-info.d.ts +6 -26
- package/types/common/ast/component-input-types.d.ts +9 -28
- package/types/common/ast/component-registry.d.ts +8 -23
- package/types/common/ast/convert-values.d.ts +8 -40
- package/types/common/ast/ensure-array-statement.d.ts +3 -7
- package/types/common/ast/ensure-comments.d.ts +1 -5
- package/types/common/ast/ensure-imports.d.ts +5 -10
- package/types/common/ast/exported-statements.d.ts +4 -8
- package/types/common/ast/imported-statements.d.ts +1 -5
- package/types/common/ast/normalize-statements.d.ts +3 -12
- package/types/common/ast/remove-unused-imports.d.ts +1 -4
- package/types/common/ast/transform.d.ts +3 -13
- package/types/common/ast/utils.d.ts +19 -42
- package/types/common/builder/builder-api.d.ts +23 -32
- package/types/common/builder/builder-sdks.d.ts +8 -10
- package/types/common/builder/content-generation.d.ts +7 -10
- package/types/common/builder/content-ids.d.ts +1 -2
- package/types/common/cache.d.ts +1 -4
- package/types/common/constants.d.ts +1 -2
- package/types/common/dotenv.d.ts +5 -24
- package/types/common/errors.d.ts +22 -50
- package/types/common/fs.d.ts +4 -17
- package/types/common/interactive-select-files.d.ts +2 -16
- package/types/common/mem-sys.d.ts +5 -7
- package/types/common/node-request.d.ts +4 -4
- package/types/common/path.d.ts +3 -1
- package/types/common/test-utils.d.ts +7 -21
- package/types/common/typescript.d.ts +7 -26
- package/types/common/utils.d.ts +8 -36
- package/types/core/adapters/angular/angular-api-key.d.ts +6 -29
- package/types/core/adapters/angular/angular-app-module-imports.d.ts +2 -12
- package/types/core/adapters/angular/angular-app-routes-update.d.ts +1 -6
- package/types/core/adapters/angular/angular-components.d.ts +12 -40
- package/types/core/adapters/angular/angular-ensure-builder-setup.d.ts +3 -9
- package/types/core/adapters/angular/angular-ensure-config-plugin.d.ts +4 -16
- package/types/core/adapters/angular/angular-fix-tsconfig.d.ts +1 -3
- package/types/core/adapters/angular/angular-registry-parse.d.ts +10 -22
- package/types/core/adapters/angular/angular-registry.d.ts +2 -15
- package/types/core/adapters/angular/angular-test-utils.d.ts +4 -8
- package/types/core/adapters/angular/index.d.ts +12 -20
- package/types/core/adapters/angular/types.d.ts +5 -5
- package/types/core/adapters/next/index.d.ts +18 -26
- package/types/core/adapters/next/next-api-key.d.ts +1 -4
- package/types/core/adapters/next/next-component-info.d.ts +2 -9
- package/types/core/adapters/next/next-components.d.ts +1 -4
- package/types/core/adapters/next/next-ensure-builder-setup.d.ts +2 -6
- package/types/core/adapters/next/next-ensure-config-plugin.d.ts +1 -5
- package/types/core/adapters/next/next-registry-parse.d.ts +8 -21
- package/types/core/adapters/next/next-registry.d.ts +2 -15
- package/types/core/adapters/next/next-test-utils.d.ts +11 -21
- package/types/core/adapters/qwik-city/index.d.ts +6 -14
- package/types/core/adapters/qwik-city/qwik-api-key.d.ts +1 -4
- package/types/core/adapters/qwik-city/qwik-component-source-inputs.d.ts +1 -4
- package/types/core/adapters/qwik-city/qwik-components.d.ts +8 -23
- package/types/core/adapters/qwik-city/qwik-ensure-builder-setup.d.ts +2 -6
- package/types/core/adapters/qwik-city/qwik-ensure-config-plugin.d.ts +1 -5
- package/types/core/adapters/qwik-city/qwik-registry-parse.d.ts +10 -22
- package/types/core/adapters/qwik-city/qwik-registry.d.ts +2 -15
- package/types/core/adapters/qwik-city/qwik-test-utils.d.ts +4 -8
- package/types/core/adapters/qwik-city/qwik-ts-program.d.ts +1 -3
- package/types/core/adapters/react/index.d.ts +11 -19
- package/types/core/adapters/react/react-api-key.d.ts +1 -4
- package/types/core/adapters/react/react-builder-sdk-setup.d.ts +1 -3
- package/types/core/adapters/react/react-component-info.d.ts +2 -9
- package/types/core/adapters/react/react-components.d.ts +11 -37
- package/types/core/adapters/react/react-ensure-builder-setup.d.ts +2 -6
- package/types/core/adapters/react/react-registry-parse.d.ts +8 -21
- package/types/core/adapters/react/react-registry.d.ts +2 -15
- package/types/core/adapters/react/react-test-utils.d.ts +5 -11
- package/types/core/adapters/react/react-ts-program.d.ts +1 -3
- package/types/core/adapters/remix/index.d.ts +11 -19
- package/types/core/adapters/remix/remix-api-key.d.ts +1 -4
- package/types/core/adapters/remix/remix-components.d.ts +1 -4
- package/types/core/adapters/remix/remix-ensure-builder-setup.d.ts +3 -9
- package/types/core/adapters/remix/remix-ensure-config-plugin.d.ts +1 -5
- package/types/core/adapters/remix/remix-registry-parse.d.ts +10 -22
- package/types/core/adapters/remix/remix-registry.d.ts +2 -15
- package/types/core/adapters/remix/remix-test-utils.d.ts +5 -11
- package/types/core/adapters/vite/vite-ensure-config-plugin.d.ts +2 -12
- package/types/core/adapters/vue/index.d.ts +12 -20
- package/types/core/adapters/vue/vue-api-key.d.ts +1 -4
- package/types/core/adapters/vue/vue-components.d.ts +2 -10
- package/types/core/adapters/vue/vue-ensure-builder-setup.d.ts +3 -7
- package/types/core/adapters/vue/vue-registry-parse.d.ts +9 -19
- package/types/core/adapters/vue/vue-registry.d.ts +3 -6
- package/types/core/adapters/webpack/webpack-config-helpers.d.ts +3 -8
- package/types/core/adapters/webpack/webpack-ensure-config-plugin.d.ts +1 -5
- package/types/core/create-dev-tools.d.ts +1 -4
- package/types/core/detect-frameworks.d.ts +2 -7
- package/types/core/ensure-config-plugin.d.ts +2 -6
- package/types/core/find-dependencies.d.ts +3 -6
- package/types/core/import-export-registry.d.ts +2 -9
- package/types/core/index.d.ts +3 -18
- package/types/figma/index.d.ts +64 -95
- package/types/node/node-sys.d.ts +6 -13
- package/types/remix/index.d.ts +3 -5
- package/types/server/auth.d.ts +1 -4
- package/types/server/builder-connect.d.ts +6 -21
- package/types/server/client-script.d.ts +2 -6
- package/types/server/create-dev-tools-server.d.ts +1 -3
- package/types/server/dev-tools-api.d.ts +1 -4
- package/types/server/dev-tools-http-server.d.ts +1 -3
- package/types/server/index.d.ts +1 -28
- package/types/server/request-handler.d.ts +1 -6
- package/types/tsconfig.tsbuildinfo +1 -1
- package/types/types/codegen-server.d.ts +1 -1
- package/types/types/connection-tracker.d.ts +34 -34
- package/types/types/proxy-middleware.d.ts +15 -25
- package/types/types/websocket-types.d.ts +7 -9
- package/types/types.d.ts +358 -387
- package/types/vite/main.d.ts +1 -1
- package/types/webpack/main.d.ts +5 -5
|
@@ -1,44 +1,44 @@
|
|
|
1
1
|
import type { IndexDocumentV1 } from "$/ai-utils";
|
|
2
2
|
interface BaseTask {
|
|
3
|
-
|
|
3
|
+
name: string;
|
|
4
4
|
}
|
|
5
5
|
export interface ComponentTask extends BaseTask {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
6
|
+
type: "component";
|
|
7
|
+
description: string;
|
|
8
|
+
relevantFiles: string[];
|
|
9
|
+
relatedComponents: string[];
|
|
10
|
+
designSystemPackage?: string;
|
|
11
|
+
designSystemVersion?: string;
|
|
12
|
+
hash: string;
|
|
13
13
|
}
|
|
14
14
|
export interface TokenTask extends BaseTask {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
15
|
+
type: "token";
|
|
16
|
+
relevantFiles: string[];
|
|
17
|
+
tokens: string[];
|
|
18
|
+
hash: string;
|
|
19
19
|
}
|
|
20
20
|
export interface IconTask extends BaseTask {
|
|
21
|
-
|
|
21
|
+
type: "icon";
|
|
22
22
|
}
|
|
23
23
|
export interface InstallationTask extends BaseTask {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
24
|
+
type: "installation";
|
|
25
|
+
relevantFiles: string[];
|
|
26
|
+
hash: string;
|
|
27
27
|
}
|
|
28
28
|
export type Task = ComponentTask | TokenTask | IconTask | InstallationTask;
|
|
29
29
|
export interface IndexingResults {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
30
|
+
componentsToCheck: Task[];
|
|
31
|
+
storedComponentDocs: IndexDocumentV1[];
|
|
32
|
+
source: "custom" | "auto";
|
|
33
|
+
specificComponentNames?: string[];
|
|
34
|
+
summaryData?: {
|
|
35
|
+
indexedComponents: ComponentTask[];
|
|
36
|
+
discoveredComponents: ComponentTask[];
|
|
37
|
+
failedComponents: string[];
|
|
38
|
+
failedTokens: string[];
|
|
39
|
+
numIconsIndexed: number;
|
|
40
|
+
discoveredTokenGroups: TokenTask[];
|
|
41
|
+
tokenGroupsToIndex: TokenTask[];
|
|
42
|
+
};
|
|
43
43
|
}
|
|
44
44
|
export {};
|
|
@@ -10,16 +10,14 @@ export declare function safeReadFile(filePath: string): string | null;
|
|
|
10
10
|
* Package manager information
|
|
11
11
|
*/
|
|
12
12
|
export interface PackageManagerInfo {
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
manager: "npm" | "yarn" | "pnpm" | "bun";
|
|
14
|
+
setupCommand: string;
|
|
15
15
|
}
|
|
16
16
|
/**
|
|
17
17
|
* Detect the package manager at the root level based on lock files
|
|
18
18
|
* Returns the specific package manager command for setup
|
|
19
19
|
*/
|
|
20
|
-
export declare function detectRootPackageManager(
|
|
21
|
-
files: string[],
|
|
22
|
-
): PackageManagerInfo | null;
|
|
20
|
+
export declare function detectRootPackageManager(files: string[]): PackageManagerInfo | null;
|
|
23
21
|
/**
|
|
24
22
|
* Check if a file exists at the root level
|
|
25
23
|
*/
|
|
@@ -27,14 +25,8 @@ export declare function hasRootFile(files: string[], fileName: string): boolean;
|
|
|
27
25
|
/**
|
|
28
26
|
* Check if any file matches a pattern at the root level
|
|
29
27
|
*/
|
|
30
|
-
export declare function hasRootFileMatching(
|
|
31
|
-
files: string[],
|
|
32
|
-
predicate: (fileName: string) => boolean,
|
|
33
|
-
): boolean;
|
|
28
|
+
export declare function hasRootFileMatching(files: string[], predicate: (fileName: string) => boolean): boolean;
|
|
34
29
|
/**
|
|
35
30
|
* Check if a directory exists at the root level
|
|
36
31
|
*/
|
|
37
|
-
export declare function hasRootDirectory(
|
|
38
|
-
files: string[],
|
|
39
|
-
directoryName: string,
|
|
40
|
-
): boolean;
|
|
32
|
+
export declare function hasRootDirectory(files: string[], directoryName: string): boolean;
|
|
@@ -15,7 +15,4 @@ export declare function isExactVersion(version: string | undefined): boolean;
|
|
|
15
15
|
* @param basePath - Absolute path to the repository root
|
|
16
16
|
* @param rootPath - Relative path within the repository to analyze (default: "/" for entire repo)
|
|
17
17
|
*/
|
|
18
|
-
export declare function collectRepoMetrics(
|
|
19
|
-
sys: DevToolsSys,
|
|
20
|
-
basePath: string,
|
|
21
|
-
): Promise<RepoMetrics>;
|
|
18
|
+
export declare function collectRepoMetrics(sys: DevToolsSys, basePath: string): Promise<RepoMetrics>;
|
|
@@ -1,81 +1,54 @@
|
|
|
1
1
|
import type { FigmaComponentInfo } from "$/ai-utils";
|
|
2
2
|
import type { CLIArgs } from "..";
|
|
3
3
|
import type { DevToolsSys } from "../../core";
|
|
4
|
-
import type {
|
|
5
|
-
PublishedComponent,
|
|
6
|
-
PublishedComponentSet,
|
|
7
|
-
} from "@figma/rest-api-spec";
|
|
4
|
+
import type { PublishedComponent, PublishedComponentSet } from "@figma/rest-api-spec";
|
|
8
5
|
type Context = {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
6
|
+
sys: DevToolsSys;
|
|
7
|
+
args: CLIArgs;
|
|
8
|
+
debug: (msg: unknown) => void;
|
|
9
|
+
figmaAuth: {
|
|
10
|
+
access_token: string;
|
|
11
|
+
oauth: boolean;
|
|
12
|
+
};
|
|
16
13
|
};
|
|
17
14
|
/**
|
|
18
15
|
* A component or component set
|
|
19
16
|
*/
|
|
20
17
|
type FigmaTeamComponent = {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
18
|
+
/** The unique identifier for the component. */
|
|
19
|
+
key: string;
|
|
20
|
+
/** The unique identifier of the Figma file that contains the component. */
|
|
21
|
+
file_key: string;
|
|
22
|
+
/** The unique identifier of the component node within the Figma file. */
|
|
23
|
+
node_id: string;
|
|
24
|
+
/** A URL to a thumbnail image of the component. */
|
|
25
|
+
thumbnail_url?: string;
|
|
26
|
+
/** The name of the component. */
|
|
27
|
+
name: string;
|
|
28
|
+
/** The description of the component as entered by the publisher. */
|
|
29
|
+
description: string;
|
|
30
|
+
/** The component data. */
|
|
31
|
+
componentData?: FigmaComponentInfo;
|
|
32
|
+
/** Whether the component is published. */
|
|
33
|
+
isPublished?: boolean;
|
|
37
34
|
};
|
|
38
35
|
export declare function extractFigmaIds(url: string): {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
36
|
+
teamId?: string;
|
|
37
|
+
fileKey?: string;
|
|
38
|
+
nodeId?: string;
|
|
42
39
|
};
|
|
43
|
-
export declare function fetchTeamComponents(
|
|
44
|
-
|
|
45
|
-
teamId: string,
|
|
46
|
-
onProgress: () => void,
|
|
47
|
-
): Promise<PublishedComponent[]>;
|
|
48
|
-
export declare function fetchTeamComponentSets(
|
|
49
|
-
context: Context,
|
|
50
|
-
teamId: string,
|
|
51
|
-
onProgress: () => void,
|
|
52
|
-
): Promise<PublishedComponentSet[]>;
|
|
40
|
+
export declare function fetchTeamComponents(context: Context, teamId: string, onProgress: () => void): Promise<PublishedComponent[]>;
|
|
41
|
+
export declare function fetchTeamComponentSets(context: Context, teamId: string, onProgress: () => void): Promise<PublishedComponentSet[]>;
|
|
53
42
|
/**
|
|
54
43
|
* Returns a list of components and component sets that are present in the file or selection as
|
|
55
44
|
* well as a set of remote keys for components that are referenced but not present.
|
|
56
45
|
*/
|
|
57
|
-
export declare function processFileOrSelection(
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
nodeId?: string,
|
|
61
|
-
): Promise<{
|
|
62
|
-
fileComponents: FigmaTeamComponent[];
|
|
63
|
-
remoteKeys: Set<string>;
|
|
46
|
+
export declare function processFileOrSelection(context: Context, fileKey: string, nodeId?: string): Promise<{
|
|
47
|
+
fileComponents: FigmaTeamComponent[];
|
|
48
|
+
remoteKeys: Set<string>;
|
|
64
49
|
}>;
|
|
65
|
-
export declare function fetchRemoteComponentData(
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
export declare function resolveComponentData(
|
|
70
|
-
context: Context,
|
|
71
|
-
components: FigmaTeamComponent[],
|
|
72
|
-
): Promise<FigmaTeamComponent[]>;
|
|
73
|
-
export declare function generateComponentReport(
|
|
74
|
-
component: FigmaTeamComponent,
|
|
75
|
-
baseDir: string,
|
|
76
|
-
): Promise<void>;
|
|
77
|
-
export declare const runFigmaReport: (
|
|
78
|
-
sys: DevToolsSys,
|
|
79
|
-
args: CLIArgs,
|
|
80
|
-
) => Promise<void>;
|
|
50
|
+
export declare function fetchRemoteComponentData(context: Context, remoteKeys: Set<string>): Promise<(FigmaTeamComponent | undefined)[]>;
|
|
51
|
+
export declare function resolveComponentData(context: Context, components: FigmaTeamComponent[]): Promise<FigmaTeamComponent[]>;
|
|
52
|
+
export declare function generateComponentReport(component: FigmaTeamComponent, baseDir: string): Promise<void>;
|
|
53
|
+
export declare const runFigmaReport: (sys: DevToolsSys, args: CLIArgs) => Promise<void>;
|
|
81
54
|
export {};
|
package/types/cli/server-ws.d.ts
CHANGED
|
@@ -3,56 +3,48 @@ import type { IncomingMessage } from "node:http";
|
|
|
3
3
|
import type { ServerOptions } from "ws";
|
|
4
4
|
import type { WebSocket } from "ws";
|
|
5
5
|
export interface SocketRequest {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
id: number;
|
|
7
|
+
jsonrpc: string;
|
|
8
|
+
method: string;
|
|
9
|
+
params: any;
|
|
10
10
|
}
|
|
11
11
|
export interface SocketResponse<T = any> {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
12
|
+
id?: number | null;
|
|
13
|
+
jsonrpc: string;
|
|
14
|
+
result?: T;
|
|
15
|
+
notification?: string;
|
|
16
|
+
params?: any;
|
|
17
|
+
error?: {
|
|
18
|
+
code: number;
|
|
19
|
+
message: string;
|
|
20
|
+
data?: any;
|
|
21
|
+
};
|
|
22
22
|
}
|
|
23
23
|
export interface SocketSendOptions {
|
|
24
|
-
|
|
24
|
+
timeout?: number;
|
|
25
25
|
}
|
|
26
26
|
export interface SocketQueue {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
27
|
+
type: "request" | "notification";
|
|
28
|
+
result?: SocketResponse["result"];
|
|
29
|
+
error?: SocketResponse["error"];
|
|
30
30
|
}
|
|
31
31
|
type RegisterFn<T = any> = (params: T, socketId: string) => Promise<any> | any;
|
|
32
32
|
interface SocketEvents {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
33
|
+
listening: () => Promise<void> | void;
|
|
34
|
+
connection: (socket: WebSocket, socketId: string) => Promise<void> | void;
|
|
35
|
+
disconnection: (socketId: string) => Promise<void> | void;
|
|
36
|
+
error: (error: Error) => Promise<void> | void;
|
|
37
|
+
"socket-error": (socketId: string, error: Error) => Promise<void> | void;
|
|
38
|
+
close: () => Promise<void> | void;
|
|
39
39
|
}
|
|
40
40
|
export declare function RPCWebSocketServer(opts: ServerOptions): {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
upgradeHead: Buffer,
|
|
50
|
-
callback?: (client: WebSocket, request: IncomingMessage) => void,
|
|
51
|
-
) => Promise<void>;
|
|
52
|
-
clients: () => Map<string, WebSocket>;
|
|
53
|
-
register: <T = any>(method: string, fn: RegisterFn<T>) => void;
|
|
54
|
-
emit: (name: string, ...params: any[]) => void;
|
|
55
|
-
notify: (name: string, socketId: string, ...params: any[]) => void;
|
|
56
|
-
close: () => Promise<unknown>;
|
|
41
|
+
on: <EventKey extends keyof SocketEvents>(event: EventKey, cb: SocketEvents[EventKey]) => void;
|
|
42
|
+
event: (e: string) => void;
|
|
43
|
+
handleUpgrade: (req: IncomingMessage, socket: Duplex, upgradeHead: Buffer, callback?: (client: WebSocket, request: IncomingMessage) => void) => Promise<void>;
|
|
44
|
+
clients: () => Map<string, WebSocket>;
|
|
45
|
+
register: <T = any>(method: string, fn: RegisterFn<T>) => void;
|
|
46
|
+
emit: (name: string, ...params: any[]) => void;
|
|
47
|
+
notify: (name: string, socketId: string, ...params: any[]) => void;
|
|
48
|
+
close: () => Promise<unknown>;
|
|
57
49
|
};
|
|
58
50
|
export {};
|
package/types/cli/spinner.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export declare const spinner: () => {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
start: (msg?: string) => void;
|
|
3
|
+
stop: (msg?: string, code?: number) => void;
|
|
4
|
+
message: (msg?: string) => void;
|
|
5
|
+
extra: (msg?: string) => void;
|
|
6
6
|
};
|
|
@@ -1,55 +1,28 @@
|
|
|
1
1
|
import type { AddCliOptions, DevToolsSys, FileNode, SyncInfo } from "../types";
|
|
2
2
|
export declare function extractSignatureInfo(content: string): {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
contentId?: string;
|
|
4
|
+
sessionKey?: string;
|
|
5
|
+
snippetId?: string;
|
|
6
6
|
};
|
|
7
7
|
export interface GetAllProjectFilesOptions {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
8
|
+
sys?: DevToolsSys;
|
|
9
|
+
basePath: string;
|
|
10
|
+
globPattern?: string | string[];
|
|
11
|
+
extraIgnorePatterns?: string[];
|
|
12
|
+
dot?: boolean;
|
|
13
|
+
deep?: number;
|
|
14
|
+
gitignore?: boolean;
|
|
15
|
+
onlyFiles?: boolean;
|
|
16
16
|
}
|
|
17
|
-
export declare function getAllProjectFiles({
|
|
18
|
-
|
|
19
|
-
globPattern,
|
|
20
|
-
extraIgnorePatterns,
|
|
21
|
-
dot,
|
|
22
|
-
deep,
|
|
23
|
-
gitignore,
|
|
24
|
-
sys,
|
|
25
|
-
onlyFiles,
|
|
26
|
-
}: GetAllProjectFilesOptions): Promise<string[]>;
|
|
27
|
-
export declare function findBuilderFiles(
|
|
28
|
-
basePath: string,
|
|
29
|
-
targetContentId: string,
|
|
30
|
-
targetSessionKey: string,
|
|
31
|
-
): Promise<FileNode[]>;
|
|
17
|
+
export declare function getAllProjectFiles({ basePath, globPattern, extraIgnorePatterns, dot, deep, gitignore, sys, onlyFiles, }: GetAllProjectFilesOptions): Promise<string[]>;
|
|
18
|
+
export declare function findBuilderFiles(basePath: string, targetContentId: string, targetSessionKey: string): Promise<FileNode[]>;
|
|
32
19
|
export declare function filterNonImportantFiles(files: string[]): string[];
|
|
33
|
-
export declare function getIgnorePatterns(
|
|
34
|
-
basePath: string,
|
|
35
|
-
): (path: string) => boolean;
|
|
20
|
+
export declare function getIgnorePatterns(basePath: string): (path: string) => boolean;
|
|
36
21
|
/**
|
|
37
22
|
* Async version of getIgnorePatterns that works with DevToolsSys
|
|
38
23
|
* Used for testing and when sys is available
|
|
39
24
|
*/
|
|
40
|
-
export declare function getIgnorePatternsAsync(
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
): Promise<
|
|
44
|
-
export declare function watchDirectory(
|
|
45
|
-
basePath: string,
|
|
46
|
-
syncInfo: SyncInfo,
|
|
47
|
-
onChange: (updatedSyncInfo: SyncInfo) => void,
|
|
48
|
-
): () => Promise<void>;
|
|
49
|
-
export declare function setupSyncServer(
|
|
50
|
-
sys: DevToolsSys,
|
|
51
|
-
initialSyncInfo?: SyncInfo,
|
|
52
|
-
): Promise<void>;
|
|
53
|
-
export declare function syncCommand(
|
|
54
|
-
opts: AddCliOptions,
|
|
55
|
-
): Promise<SyncInfo | undefined>;
|
|
25
|
+
export declare function getIgnorePatternsAsync(basePath: string, sys: DevToolsSys): Promise<(path: string) => boolean>;
|
|
26
|
+
export declare function watchDirectory(basePath: string, syncInfo: SyncInfo, onChange: (updatedSyncInfo: SyncInfo) => void): () => Promise<void>;
|
|
27
|
+
export declare function setupSyncServer(sys: DevToolsSys, initialSyncInfo?: SyncInfo): Promise<void>;
|
|
28
|
+
export declare function syncCommand(opts: AddCliOptions): Promise<SyncInfo | undefined>;
|
package/types/cli/track.d.ts
CHANGED
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
import * as Amplitude from "@amplitude/analytics-node";
|
|
2
2
|
import * as Sentry from "@sentry/node";
|
|
3
3
|
export declare function initTracking(verbose: boolean): Promise<typeof Sentry>;
|
|
4
|
-
export declare function track(
|
|
5
|
-
eventName: string,
|
|
6
|
-
options: Record<string, any>,
|
|
7
|
-
): Promise<Amplitude.Types.Result>;
|
|
4
|
+
export declare function track(eventName: string, options: Record<string, any>): Promise<Amplitude.Types.Result>;
|
|
8
5
|
export declare function setUserId(id: string): Promise<void>;
|
|
@@ -14,14 +14,9 @@ export type { SubAgent };
|
|
|
14
14
|
* @param rootDir - Root directory to stop search
|
|
15
15
|
* @returns Array of discovered agents
|
|
16
16
|
*/
|
|
17
|
-
export declare function getCustomAgents({
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
}: {
|
|
23
|
-
sys: DevToolsSys;
|
|
24
|
-
projectDir: string;
|
|
25
|
-
currentDir: string;
|
|
26
|
-
rootDir: string;
|
|
17
|
+
export declare function getCustomAgents({ sys, projectDir, currentDir, rootDir, }: {
|
|
18
|
+
sys: DevToolsSys;
|
|
19
|
+
projectDir: string;
|
|
20
|
+
currentDir: string;
|
|
21
|
+
rootDir: string;
|
|
27
22
|
}): Promise<SubAgent[]>;
|
|
@@ -4,26 +4,25 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import type { CodeGenMode } from "$/ai-utils";
|
|
6
6
|
export interface SubAgent {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
7
|
+
name: string;
|
|
8
|
+
description?: string;
|
|
9
|
+
systemPrompt?: string;
|
|
10
|
+
tools?: string[];
|
|
11
|
+
model?: string;
|
|
12
|
+
mode?: CodeGenMode;
|
|
13
|
+
position?: string;
|
|
14
|
+
filePath?: string;
|
|
15
|
+
includeMemories?: boolean;
|
|
16
|
+
needDevServer?: boolean;
|
|
17
|
+
needValidation?: boolean;
|
|
18
|
+
resetAfterRun?: boolean;
|
|
18
19
|
}
|
|
19
20
|
/**
|
|
20
21
|
* Resolves model shortcut to full model name
|
|
21
22
|
* @param modelOrShortcut - Model name or shortcut (or "inherit" to use parent model)
|
|
22
23
|
* @returns Resolved model name or undefined (undefined means inherit from parent)
|
|
23
24
|
*/
|
|
24
|
-
export declare function resolveModelShortcut(
|
|
25
|
-
modelOrShortcut?: string,
|
|
26
|
-
): string | undefined;
|
|
25
|
+
export declare function resolveModelShortcut(modelOrShortcut?: string): string | undefined;
|
|
27
26
|
/**
|
|
28
27
|
* Parses an agent definition file (Markdown with YAML frontmatter)
|
|
29
28
|
* Expected format (following Claude Code sub-agents format):
|
|
@@ -44,7 +43,4 @@ export declare function resolveModelShortcut(
|
|
|
44
43
|
* @param filePath - The file path (used for fallback name)
|
|
45
44
|
* @returns Parsed SubAgent or null if parsing fails
|
|
46
45
|
*/
|
|
47
|
-
export declare function parseAgentFile(
|
|
48
|
-
fileContent: string,
|
|
49
|
-
filePath: string,
|
|
50
|
-
): SubAgent | null;
|
|
46
|
+
export declare function parseAgentFile(fileContent: string, filePath: string): SubAgent | null;
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
export declare const COMPONENT_GROUP_MDX_PROMPT =
|
|
2
|
-
"# Component Documentation Generation\n\n## Objective\nGenerate comprehensive MDX documentation for a specific component, analyzing their interfaces, relationships, and usage patterns using the relevant files provided in the input.\n\n## Instructions\n\n### 1. Component Analysis\nFor the given component, analyze each relevant file by:\n- **Interdependency mapping** - Document how components depend on each other\n- **Interface examination** - Extract and document all props, their types, and descriptions\n- **Context analysis** - Identify shared state, contexts, or communication patterns\n- **Compositional patterns** - Document required parent-child relationships\n- **Usage pattern analysis** - Identify how components work together\n- **Example extraction** - Find real usage examples from the codebase\n\n{{COMPONENT_NAME}} has the following related components: {{RELATED_COMPONENTS}}\nThe following files are associated with {{COMPONENT_NAME}}: {{FILE_LIST}}\n\n### 2. Documentation Structure\nCreate comprehensive documentation covering:\n- **Component rationale** - Why these components work together and when to use them\n- **Architectural overview** - How the components form a cohesive system\n- **Component interfaces** - Detailed prop documentation with interdependencies\n- **Composition patterns** - Required and optional usage combinations\n- **Integration examples** - Real-world scenarios showing the component in action\n- **Best practices** - Recommended usage patterns and guidelines\n\n## Required Output Format\n\nGenerate an MDX file with this structure:\n\n```mdx\n---\n# {{COMPONENT_NAME}}\n\n## Overview\n\n### Purpose\n{{COMPONENT_DESCRIPTION}}\n\n### When to Use\n[Expand on the use cases mentioned in the description - be specific about scenarios, user needs, and implementation contexts]\n\n### Architecture\n[Explain the architectural pattern based on coupling strength:]\n- **Critical/Strong Coupling**: Describe the required relationships, shared context, or compositional hierarchy\n- **Moderate Coupling**: Explain how components enhance each other\n- **No Coupling**: Note that this is a standalone component\n\n### Component Interdependencies\n[Map out component relationships - only for components with coupling:]\n- Required parent-child relationships\n- Shared context dependencies \n- Communication patterns between components\n- Related components\n\n## API\n**Types**: Interfaces related to the component including all props, methods, or children along with descriptions.\n**Dependencies:** Other components that must be used\n**Provides:** Context/state this component provides to children. Only required for coupled components.\n\n## Usage Examples\nInclude examples that show how to fully use the component. At a minimum, you must include the following examples:\n\n- Basic usage including how to import the component if applicable\n- Usage with any dependency components\n- Variations with conditional rendering, different prop combinations, etc\n\n## Component Relationships {Only for coupled components}\n\n### Data Flow\n[Explain how data flows between the component and related components}\n\n### Context Sharing\n[Document shared contexts, providers, or state management]\n\n### Event Handling\n[Describe how events bubble up or propagate between components]\n\n## Best Practices\n\n### Usage Guidelines\n- [Specific recommendation based on component purpose and use cases]\n- [Another recommendation focusing on accessibility or performance]\n- [Usage pattern guidance based on the component's architecture]\n\n### Accessibility {When relevant}\n- [ARIA relationships between components]\n- [Keyboard navigation patterns]\n- [Screen reader considerations]\n\n### Performance {When relevant}\n- [Optimization recommendations]\n- [State management best practices]\n- [Rendering performance considerations]\n\n## Common Patterns {Expand based on component functionality}\n\n### Pattern 1: [Specific Pattern Name]\n```tsx\n// Example showing a specific usage pattern\n// Include comments explaining why this pattern is recommended\n```\n\n### Pattern 2: [Another Pattern Name]\n```tsx\n// Another common pattern with explanation\n```\n\n```\n\n## File Generation Requirements\n\n**File Naming:**\n- Use kebab-case derived from component name: `{{COMPONENT_NAME_KEBAB}}.mdx`\n- Place in `repo-indexing/` folder\n- Example: `repo-indexing/{{COMPONENT_NAME_KEBAB}}.mdx`\n\n**Content Requirements:**\n1. **Use coupling strength context** - Adapt documentation structure based on couplingStrength value\n2. **Extract real interfaces** - Don't create placeholder interfaces, extract actual type interfaces from the codebase\n3. **Leverage component description** - Expand on the provided description with specific use cases and implementation guidance\n4. **Document interdependencies** - For coupled components, clearly explain component relationships and requirements\n5. **Include practical examples** - Use realistic, working code examples that demonstrate proper usage\n6. **Show integration patterns** - For coupled components, demonstrate required composition patterns\n**Coupling-Specific Requirements:**\n- **Critical/Strong Coupling**: Focus on required relationships, composition patterns, and shared context\n- **Moderate Coupling**: Show how components enhance each other and optional usage patterns \n- **No Coupling**: Document standalone usage, variants, and individual component capabilities\n\n## Output\nReturn only the complete MDX file content, ready to be saved as `repo-indexing/{{COMPONENT_NAME_KEBAB}}.mdx`. You must use the Write tool in your response.";
|
|
1
|
+
export declare const COMPONENT_GROUP_MDX_PROMPT = "# Component Documentation Generation\n\n## Objective\nGenerate comprehensive MDX documentation for a specific component, analyzing their interfaces, relationships, and usage patterns using the relevant files provided in the input.\n\n## Instructions\n\n### 1. Component Analysis\nFor the given component, analyze each relevant file by:\n- **Interdependency mapping** - Document how components depend on each other\n- **Interface examination** - Extract and document all props, their types, and descriptions\n- **Context analysis** - Identify shared state, contexts, or communication patterns\n- **Compositional patterns** - Document required parent-child relationships\n- **Usage pattern analysis** - Identify how components work together\n- **Example extraction** - Find real usage examples from the codebase\n\n{{COMPONENT_NAME}} has the following related components: {{RELATED_COMPONENTS}}\nThe following files are associated with {{COMPONENT_NAME}}: {{FILE_LIST}}\n\n### 2. Documentation Structure\nCreate comprehensive documentation covering:\n- **Component rationale** - Why these components work together and when to use them\n- **Architectural overview** - How the components form a cohesive system\n- **Component interfaces** - Detailed prop documentation with interdependencies\n- **Composition patterns** - Required and optional usage combinations\n- **Integration examples** - Real-world scenarios showing the component in action\n- **Best practices** - Recommended usage patterns and guidelines\n\n## Required Output Format\n\nGenerate an MDX file with this structure:\n\n```mdx\n---\n# {{COMPONENT_NAME}}\n\n## Overview\n\n### Purpose\n{{COMPONENT_DESCRIPTION}}\n\n### When to Use\n[Expand on the use cases mentioned in the description - be specific about scenarios, user needs, and implementation contexts]\n\n### Architecture\n[Explain the architectural pattern based on coupling strength:]\n- **Critical/Strong Coupling**: Describe the required relationships, shared context, or compositional hierarchy\n- **Moderate Coupling**: Explain how components enhance each other\n- **No Coupling**: Note that this is a standalone component\n\n### Component Interdependencies\n[Map out component relationships - only for components with coupling:]\n- Required parent-child relationships\n- Shared context dependencies \n- Communication patterns between components\n- Related components\n\n## API\n**Types**: Interfaces related to the component including all props, methods, or children along with descriptions.\n**Dependencies:** Other components that must be used\n**Provides:** Context/state this component provides to children. Only required for coupled components.\n\n## Usage Examples\nInclude examples that show how to fully use the component. At a minimum, you must include the following examples:\n\n- Basic usage including how to import the component if applicable\n- Usage with any dependency components\n- Variations with conditional rendering, different prop combinations, etc\n\n## Component Relationships {Only for coupled components}\n\n### Data Flow\n[Explain how data flows between the component and related components}\n\n### Context Sharing\n[Document shared contexts, providers, or state management]\n\n### Event Handling\n[Describe how events bubble up or propagate between components]\n\n## Best Practices\n\n### Usage Guidelines\n- [Specific recommendation based on component purpose and use cases]\n- [Another recommendation focusing on accessibility or performance]\n- [Usage pattern guidance based on the component's architecture]\n\n### Accessibility {When relevant}\n- [ARIA relationships between components]\n- [Keyboard navigation patterns]\n- [Screen reader considerations]\n\n### Performance {When relevant}\n- [Optimization recommendations]\n- [State management best practices]\n- [Rendering performance considerations]\n\n## Common Patterns {Expand based on component functionality}\n\n### Pattern 1: [Specific Pattern Name]\n```tsx\n// Example showing a specific usage pattern\n// Include comments explaining why this pattern is recommended\n```\n\n### Pattern 2: [Another Pattern Name]\n```tsx\n// Another common pattern with explanation\n```\n\n```\n\n## File Generation Requirements\n\n**File Naming:**\n- Use kebab-case derived from component name: `{{COMPONENT_NAME_KEBAB}}.mdx`\n- Place in `repo-indexing/` folder\n- Example: `repo-indexing/{{COMPONENT_NAME_KEBAB}}.mdx`\n\n**Content Requirements:**\n1. **Use coupling strength context** - Adapt documentation structure based on couplingStrength value\n2. **Extract real interfaces** - Don't create placeholder interfaces, extract actual type interfaces from the codebase\n3. **Leverage component description** - Expand on the provided description with specific use cases and implementation guidance\n4. **Document interdependencies** - For coupled components, clearly explain component relationships and requirements\n5. **Include practical examples** - Use realistic, working code examples that demonstrate proper usage\n6. **Show integration patterns** - For coupled components, demonstrate required composition patterns\n**Coupling-Specific Requirements:**\n- **Critical/Strong Coupling**: Focus on required relationships, composition patterns, and shared context\n- **Moderate Coupling**: Show how components enhance each other and optional usage patterns \n- **No Coupling**: Document standalone usage, variants, and individual component capabilities\n\n## Output\nReturn only the complete MDX file content, ready to be saved as `repo-indexing/{{COMPONENT_NAME_KEBAB}}.mdx`. You must use the Write tool in your response.";
|
|
@@ -4,6 +4,4 @@ import type { DevToolsSys } from "../../types";
|
|
|
4
4
|
* @param files - Object mapping file paths to file contents
|
|
5
5
|
* @returns Mock DevToolsSys instance
|
|
6
6
|
*/
|
|
7
|
-
export declare function createMockSys(
|
|
8
|
-
files: Record<string, string>,
|
|
9
|
-
): DevToolsSys;
|
|
7
|
+
export declare function createMockSys(files: Record<string, string>): DevToolsSys;
|
|
@@ -2,23 +2,23 @@
|
|
|
2
2
|
* Options for capturing environment variables from a setup command
|
|
3
3
|
*/
|
|
4
4
|
export interface EnvCaptureOptions {
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
/** The command to wrap with env capture */
|
|
6
|
+
command: string;
|
|
7
7
|
}
|
|
8
8
|
/**
|
|
9
9
|
* Result of environment capture
|
|
10
10
|
*/
|
|
11
11
|
export interface EnvCaptureResult {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
12
|
+
/** The modified command that includes env capture */
|
|
13
|
+
command: string;
|
|
14
|
+
/** Path to the temporary file where env will be captured */
|
|
15
|
+
envFilePath: string;
|
|
16
|
+
/**
|
|
17
|
+
* Function to get the captured environment variables.
|
|
18
|
+
* This will read, parse, and cleanup the env file in one call.
|
|
19
|
+
* Returns undefined if the env file couldn't be read.
|
|
20
|
+
*/
|
|
21
|
+
getCapturedEnv: () => Promise<Record<string, string> | undefined>;
|
|
22
22
|
}
|
|
23
23
|
/**
|
|
24
24
|
* Wraps a command with environment variable capture at the end.
|
|
@@ -38,9 +38,7 @@ export interface EnvCaptureResult {
|
|
|
38
38
|
* const env = await getCapturedEnv();
|
|
39
39
|
* ```
|
|
40
40
|
*/
|
|
41
|
-
export declare function wrapCommandWithEnvCapture(
|
|
42
|
-
options: EnvCaptureOptions,
|
|
43
|
-
): EnvCaptureResult;
|
|
41
|
+
export declare function wrapCommandWithEnvCapture(options: EnvCaptureOptions): EnvCaptureResult;
|
|
44
42
|
/**
|
|
45
43
|
* Parses an environment file into a key-value object.
|
|
46
44
|
* Handles multi-line values and empty lines.
|
|
@@ -54,9 +52,7 @@ export declare function wrapCommandWithEnvCapture(
|
|
|
54
52
|
* console.log(env.PATH); // "/usr/bin:/bin"
|
|
55
53
|
* ```
|
|
56
54
|
*/
|
|
57
|
-
export declare function parseEnvFile(
|
|
58
|
-
filePath: string,
|
|
59
|
-
): Promise<Record<string, string>>;
|
|
55
|
+
export declare function parseEnvFile(filePath: string): Promise<Record<string, string>>;
|
|
60
56
|
/**
|
|
61
57
|
* Parses environment variable content into a key-value object.
|
|
62
58
|
* This is the core parsing logic extracted for easier testing.
|
|
@@ -73,9 +69,7 @@ export declare function parseEnvFile(
|
|
|
73
69
|
* // { PATH: '/usr/bin', HOME: '/home/user' }
|
|
74
70
|
* ```
|
|
75
71
|
*/
|
|
76
|
-
export declare function parseEnvContent(
|
|
77
|
-
content: string,
|
|
78
|
-
): Record<string, string>;
|
|
72
|
+
export declare function parseEnvContent(content: string): Record<string, string>;
|
|
79
73
|
/**
|
|
80
74
|
* Cleans up the environment capture file.
|
|
81
75
|
* Call this after parsing to remove temporary files.
|
|
@@ -28,7 +28,4 @@
|
|
|
28
28
|
* substituteEnvVars("URL: ${API_URL:-https://api.example.com}", { API_URL: "https://custom.com" })
|
|
29
29
|
* // Returns: "URL: https://custom.com"
|
|
30
30
|
*/
|
|
31
|
-
export declare function substituteEnvVars(
|
|
32
|
-
str: string,
|
|
33
|
-
env: Record<string, string | undefined>,
|
|
34
|
-
): string;
|
|
31
|
+
export declare function substituteEnvVars(str: string, env: Record<string, string | undefined>): string;
|