@anvil-works/anvil-cli 0.7.0-canary.2 → 0.7.0-canary.21
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/README.md +39 -3
- package/dist/SavePathRouter.d.ts +2 -5
- package/dist/SavePathRouter.d.ts.map +1 -1
- package/dist/WatchSession.d.ts +73 -3
- package/dist/WatchSession.d.ts.map +1 -1
- package/dist/api.d.ts +13 -2
- package/dist/api.d.ts.map +1 -1
- package/dist/cli.js +6316 -37254
- package/dist/commands/appDetection.d.ts +2 -0
- package/dist/commands/appDetection.d.ts.map +1 -0
- package/dist/commands/checkout.d.ts +11 -3
- package/dist/commands/checkout.d.ts.map +1 -1
- package/dist/commands/config.d.ts +1 -1
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/convertTemplate.d.ts +25 -0
- package/dist/commands/convertTemplate.d.ts.map +1 -0
- package/dist/commands/deps.d.ts +7 -0
- package/dist/commands/deps.d.ts.map +1 -0
- package/dist/commands/gitAuth.d.ts +89 -0
- package/dist/commands/gitAuth.d.ts.map +1 -0
- package/dist/commands/gitCredential.d.ts +7 -4
- package/dist/commands/gitCredential.d.ts.map +1 -1
- package/dist/commands/index.d.ts +4 -0
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/logout.d.ts +1 -1
- package/dist/commands/logout.d.ts.map +1 -1
- package/dist/commands/tables.d.ts +7 -0
- package/dist/commands/tables.d.ts.map +1 -0
- package/dist/commands/watch.d.ts +8 -2
- package/dist/commands/watch.d.ts.map +1 -1
- package/dist/componentBuiltinTypes.d.ts.map +1 -1
- package/dist/componentName.d.ts +5 -0
- package/dist/componentName.d.ts.map +1 -0
- package/dist/componentTypeSpec.d.ts +8 -0
- package/dist/componentTypeSpec.d.ts.map +1 -0
- package/dist/config.d.ts +0 -9
- package/dist/config.d.ts.map +1 -1
- package/dist/environment.d.ts +21 -0
- package/dist/environment.d.ts.map +1 -0
- package/dist/formSpecContext.d.ts +4 -0
- package/dist/formSpecContext.d.ts.map +1 -0
- package/dist/formTemplateValidation.d.ts +13 -0
- package/dist/formTemplateValidation.d.ts.map +1 -0
- package/dist/index.js +13015 -41523
- package/dist/program.d.ts.map +1 -1
- package/dist/services/auth.d.ts +17 -12
- package/dist/services/auth.d.ts.map +1 -1
- package/dist/services/deps.d.ts +106 -0
- package/dist/services/deps.d.ts.map +1 -0
- package/dist/services/git-auth.d.ts +15 -7
- package/dist/services/git-auth.d.ts.map +1 -1
- package/dist/services/git.d.ts +25 -1
- package/dist/services/git.d.ts.map +1 -1
- package/dist/services/gitignore.d.ts +2 -0
- package/dist/services/gitignore.d.ts.map +1 -0
- package/dist/services/oauth-login.d.ts.map +1 -1
- package/dist/services/tables.d.ts +27 -0
- package/dist/services/tables.d.ts.map +1 -0
- package/dist/services/token-store.d.ts +5 -0
- package/dist/services/token-store.d.ts.map +1 -1
- package/dist/validateFormTemplateHtml.d.ts +10 -0
- package/dist/validateFormTemplateHtml.d.ts.map +1 -0
- package/dist/validatePython.d.ts +22 -0
- package/dist/validatePython.d.ts.map +1 -0
- package/dist/validators.d.ts +8 -8
- package/dist/validators.d.ts.map +1 -1
- package/dist/watch/ConflictResolver.d.ts +8 -1
- package/dist/watch/ConflictResolver.d.ts.map +1 -1
- package/dist/watch/SaveProcessor.d.ts +17 -5
- package/dist/watch/SaveProcessor.d.ts.map +1 -1
- package/dist/watch/SyncManager.d.ts +7 -2
- package/dist/watch/SyncManager.d.ts.map +1 -1
- package/dist/watch/WebSocketClient.d.ts +30 -0
- package/dist/watch/WebSocketClient.d.ts.map +1 -1
- package/dist/watch/diagnostics.d.ts +30 -0
- package/dist/watch/diagnostics.d.ts.map +1 -0
- package/dist/watch/index.d.ts +1 -0
- package/dist/watch/index.d.ts.map +1 -1
- package/package.json +2 -1
- package/dist/cli.js.LICENSE.txt +0 -3
- package/dist/index.js.LICENSE.txt +0 -3
- package/dist/keyring.darwin-arm64.node +0 -0
package/dist/program.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"program.d.ts","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"program.d.ts","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA2LpC,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,GAAG,MAAM,EAAE,CAezE;AAED,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAwFzD;AAiBD,wBAAgB,YAAY,IAAI,OAAO,CAkGtC"}
|
package/dist/services/auth.d.ts
CHANGED
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Authentication service for anvil-cli.
|
|
3
|
+
* Handles token management, refresh, validation, and account management.
|
|
4
|
+
*/
|
|
5
|
+
import { AccountTokens } from "../config";
|
|
2
6
|
export declare const ANVIL_SYNC_CLIENT_ID = "anvil-sync";
|
|
3
7
|
/** Token data returned from OAuth token endpoint */
|
|
4
8
|
export interface TokenData {
|
|
@@ -8,8 +12,6 @@ export interface TokenData {
|
|
|
8
12
|
token_type: string;
|
|
9
13
|
scope: string;
|
|
10
14
|
}
|
|
11
|
-
/** Stored token data for an account (re-export for convenience) */
|
|
12
|
-
export type { AccountTokens as StoredTokens };
|
|
13
15
|
/** Result of login */
|
|
14
16
|
export interface LoginResult {
|
|
15
17
|
success: boolean;
|
|
@@ -20,6 +22,14 @@ export interface LogoutResult {
|
|
|
20
22
|
loggedOut: boolean;
|
|
21
23
|
message?: string;
|
|
22
24
|
}
|
|
25
|
+
export interface AuthData {
|
|
26
|
+
anvilUrl: string;
|
|
27
|
+
username: string;
|
|
28
|
+
tokens: AccountTokens;
|
|
29
|
+
}
|
|
30
|
+
export declare function setInMemoryTokens(anvilUrl: string, username: string, tokens: AccountTokens): void;
|
|
31
|
+
export declare function clearInMemoryTokens(): void;
|
|
32
|
+
export declare function setRepoContext(repoPath: string): void;
|
|
23
33
|
/**
|
|
24
34
|
* Verify an auth token is valid by calling the IDE API.
|
|
25
35
|
* Returns the user's email on success.
|
|
@@ -31,15 +41,10 @@ export declare function verifyAuth(authToken: string, anvilUrl?: string): Promis
|
|
|
31
41
|
* @throws {AuthError} if refresh fails
|
|
32
42
|
*/
|
|
33
43
|
export declare function refreshAccessToken(refreshToken: string, anvilUrl?: string, clientId?: string): Promise<TokenData>;
|
|
34
|
-
/**
|
|
35
|
-
* Get tokens for a specific Anvil URL and username.
|
|
36
|
-
* If no username is provided and only one account exists, returns that account's tokens.
|
|
37
|
-
*/
|
|
38
|
-
export declare function getTokensForUrl(anvilUrl: string, username?: string): AccountTokens;
|
|
39
44
|
/**
|
|
40
45
|
* Check if we have tokens for a specific URL and username.
|
|
41
46
|
*/
|
|
42
|
-
export declare function hasTokensForUrl(anvilUrl: string, username?: string): boolean
|
|
47
|
+
export declare function hasTokensForUrl(anvilUrl: string, username?: string): Promise<boolean>;
|
|
43
48
|
/**
|
|
44
49
|
* Get a valid access token, refreshing it if necessary.
|
|
45
50
|
* @throws {AuthError} if no valid token can be obtained
|
|
@@ -49,7 +54,7 @@ export declare function getValidAuthToken(anvilUrl?: string, username?: string):
|
|
|
49
54
|
* Log in with token data from OAuth flow.
|
|
50
55
|
* @throws {AuthError} if verification fails
|
|
51
56
|
*/
|
|
52
|
-
export declare function
|
|
57
|
+
export declare function verifyAndStoreTokens(anvilUrl: string, tokenData: {
|
|
53
58
|
access_token: string;
|
|
54
59
|
refresh_token: string;
|
|
55
60
|
expires_in: number;
|
|
@@ -62,9 +67,9 @@ export declare function logout(anvilUrl?: string, username?: string): Promise<Lo
|
|
|
62
67
|
/**
|
|
63
68
|
* Get all usernames (accounts) that have authentication tokens for a specific URL.
|
|
64
69
|
*/
|
|
65
|
-
export declare function getAccountsForUrl(url: string): string[]
|
|
70
|
+
export declare function getAccountsForUrl(url: string): Promise<string[]>;
|
|
66
71
|
/**
|
|
67
72
|
* Get all available Anvil URLs that have authentication tokens.
|
|
68
73
|
*/
|
|
69
|
-
export declare function getAvailableAnvilUrls(): string[]
|
|
74
|
+
export declare function getAvailableAnvilUrls(): Promise<string[]>;
|
|
70
75
|
//# sourceMappingURL=auth.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/services/auth.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/services/auth.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,aAAa,EAAsC,MAAM,WAAW,CAAC;AAS9E,eAAO,MAAM,oBAAoB,eAAe,CAAC;AAMjD,oDAAoD;AACpD,MAAM,WAAW,SAAS;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,sBAAsB;AACtB,MAAM,WAAW,WAAW;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,uBAAuB;AACvB,MAAM,WAAW,YAAY;IACzB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,QAAQ;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,aAAa,CAAC;CACzB;AAaD,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,IAAI,CAMjG;AAED,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C;AAYD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAErD;AAQD;;;;GAIG;AACH,wBAAsB,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,SAAuB,GAAG,OAAO,CAAC,MAAM,CAAC,CAqBpG;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CACpC,YAAY,EAAE,MAAM,EACpB,QAAQ,SAAuB,EAC/B,QAAQ,SAAuB,GAChC,OAAO,CAAC,SAAS,CAAC,CA2BpB;AAMD;;GAEG;AACH,wBAAsB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAY3F;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,QAAQ,SAAuB,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAkC3G;AA8HD;;;GAGG;AACH,wBAAsB,oBAAoB,CACtC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAC/F,OAAO,CAAC,WAAW,CAAC,CAetB;AAED;;GAEG;AACH,wBAAsB,MAAM,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CA0CxF;AAMD;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAYtE;AAED;;GAEG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAW/D"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
declare const DEPS_MANIFEST_VERSION = 1;
|
|
2
|
+
export interface DependencyDocFile {
|
|
3
|
+
path: string;
|
|
4
|
+
content: string;
|
|
5
|
+
}
|
|
6
|
+
export interface DependencyAssetFile {
|
|
7
|
+
name: string;
|
|
8
|
+
content: string;
|
|
9
|
+
}
|
|
10
|
+
export interface FetchAllDependenciesOptions {
|
|
11
|
+
commit?: string;
|
|
12
|
+
includeDocs?: boolean;
|
|
13
|
+
knownDependencies?: ResolvedDependencyManifestEntry[];
|
|
14
|
+
}
|
|
15
|
+
export interface RefreshDependencyCacheOptions {
|
|
16
|
+
commit?: string;
|
|
17
|
+
includeDocs?: boolean;
|
|
18
|
+
}
|
|
19
|
+
export interface RefreshDependencyCacheResult {
|
|
20
|
+
response: ResolvedDepsResponse;
|
|
21
|
+
addedGitignoreEntry: boolean;
|
|
22
|
+
}
|
|
23
|
+
export interface DependencyWatchSubscription {
|
|
24
|
+
appId: string;
|
|
25
|
+
branch: string;
|
|
26
|
+
packageName?: string;
|
|
27
|
+
}
|
|
28
|
+
/** Response from /resolved-dependencies endpoint */
|
|
29
|
+
export interface ResolvedDepsResponse {
|
|
30
|
+
dependencies: ResolvedDep[];
|
|
31
|
+
resolved_dependencies: ResolvedDependencyManifestEntry[];
|
|
32
|
+
}
|
|
33
|
+
export interface ResolvedDependencyManifestEntry {
|
|
34
|
+
app_id: string;
|
|
35
|
+
commit_id: string;
|
|
36
|
+
branch?: string;
|
|
37
|
+
}
|
|
38
|
+
/** A single resolved dependency */
|
|
39
|
+
export interface ResolvedDep {
|
|
40
|
+
app_id: string;
|
|
41
|
+
commit_id: string;
|
|
42
|
+
branch?: string;
|
|
43
|
+
package_name: string;
|
|
44
|
+
modules: Array<{
|
|
45
|
+
name: string;
|
|
46
|
+
code: string;
|
|
47
|
+
is_package?: boolean;
|
|
48
|
+
}>;
|
|
49
|
+
forms: Array<{
|
|
50
|
+
class_name: string;
|
|
51
|
+
code: string;
|
|
52
|
+
is_package?: boolean;
|
|
53
|
+
[key: string]: unknown;
|
|
54
|
+
}>;
|
|
55
|
+
server_modules: Array<{
|
|
56
|
+
name: string;
|
|
57
|
+
code: string;
|
|
58
|
+
is_package?: boolean;
|
|
59
|
+
}>;
|
|
60
|
+
assets?: DependencyAssetFile[];
|
|
61
|
+
docs?: DependencyDocFile[];
|
|
62
|
+
docs_truncated?: boolean;
|
|
63
|
+
docs_bytes_included?: number;
|
|
64
|
+
}
|
|
65
|
+
interface CachedDependencyManifestEntry extends ResolvedDependencyManifestEntry {
|
|
66
|
+
package_name: string;
|
|
67
|
+
}
|
|
68
|
+
export interface DepsCacheManifest {
|
|
69
|
+
version: typeof DEPS_MANIFEST_VERSION;
|
|
70
|
+
includeDocs: boolean;
|
|
71
|
+
resolved_dependencies: ResolvedDependencyManifestEntry[];
|
|
72
|
+
cached_dependencies: CachedDependencyManifestEntry[];
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Fetch all resolved dependencies from the Anvil server in one call.
|
|
76
|
+
* Uses the /resolved-dependencies endpoint which handles transitive deps.
|
|
77
|
+
*/
|
|
78
|
+
export declare function fetchAllDependencies(appId: string, anvilUrl?: string, options?: FetchAllDependenciesOptions): Promise<ResolvedDepsResponse>;
|
|
79
|
+
/**
|
|
80
|
+
* Fetch dependencies and update the local .anvil/deps cache.
|
|
81
|
+
* Shared by `anvil deps fetch` and watch startup/refresh.
|
|
82
|
+
*/
|
|
83
|
+
export declare function refreshDependencyCache(projectRoot: string, appId: string, anvilUrl?: string, options?: RefreshDependencyCacheOptions): Promise<RefreshDependencyCacheResult>;
|
|
84
|
+
export declare function readDepsCacheManifest(projectRoot: string): Promise<DepsCacheManifest | undefined>;
|
|
85
|
+
export declare function getKnownDependenciesForCache(projectRoot: string, includeDocs: boolean): Promise<ResolvedDependencyManifestEntry[]>;
|
|
86
|
+
export declare function getDependencyWatchSubscriptionsFromManifest(manifest: DepsCacheManifest | undefined): DependencyWatchSubscription[];
|
|
87
|
+
export declare function normalizeAnvilYamlDependenciesFromContent(content: string): unknown;
|
|
88
|
+
export declare function normalizeAnvilYamlDependenciesValue(value: unknown): unknown;
|
|
89
|
+
export declare function readAnvilYamlDependencies(projectRoot: string): Promise<unknown>;
|
|
90
|
+
export declare function anvilYamlDependenciesEqual(left: unknown, right: unknown): boolean;
|
|
91
|
+
/**
|
|
92
|
+
* Write all fetched dependencies to cache.
|
|
93
|
+
*/
|
|
94
|
+
export declare function writeAllDepsToCache(projectRoot: string, response: ResolvedDepsResponse, options?: {
|
|
95
|
+
includeDocs?: boolean;
|
|
96
|
+
}): Promise<void>;
|
|
97
|
+
/**
|
|
98
|
+
* Clear .anvil/deps/ directory.
|
|
99
|
+
*/
|
|
100
|
+
export declare function clearDepsCache(projectRoot: string): Promise<void>;
|
|
101
|
+
/**
|
|
102
|
+
* Get list of cached package names.
|
|
103
|
+
*/
|
|
104
|
+
export declare function getCachedPackages(projectRoot: string): Promise<string[]>;
|
|
105
|
+
export {};
|
|
106
|
+
//# sourceMappingURL=deps.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deps.d.ts","sourceRoot":"","sources":["../../src/services/deps.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,20 +1,26 @@
|
|
|
1
|
+
import type { AuthData } from "./auth";
|
|
1
2
|
export interface AppAuthBinding {
|
|
2
3
|
url?: string;
|
|
3
4
|
username?: string;
|
|
4
5
|
}
|
|
5
|
-
export declare function
|
|
6
|
-
servicesDir?: string;
|
|
7
|
-
pathExists?: (pathToCheck: string) => boolean;
|
|
8
|
-
}): string | undefined;
|
|
9
|
-
export declare function getGitCredentialHelperCommand(options?: {
|
|
6
|
+
export declare function getGitCredentialHelperCommand(options: {
|
|
10
7
|
execPath?: string;
|
|
11
|
-
|
|
8
|
+
helperPath: string;
|
|
12
9
|
platform?: NodeJS.Platform;
|
|
13
10
|
}): string;
|
|
14
11
|
export declare function getAppAuthBinding(repoPath: string, appId: string): Promise<AppAuthBinding>;
|
|
15
12
|
export declare function setAppAuthBinding(repoPath: string, appId: string, binding: AppAuthBinding): Promise<void>;
|
|
16
13
|
export declare function getCleanGitRemoteUrl(appId: string, anvilUrl: string): string;
|
|
17
|
-
export declare function
|
|
14
|
+
export declare function getCredentialHelperScript(modulePath: string): string;
|
|
15
|
+
export declare function getCredentialHelperModulePath(options?: {
|
|
16
|
+
currentModulePath?: string;
|
|
17
|
+
resolvePackageEntry?: () => string;
|
|
18
|
+
}): string;
|
|
19
|
+
export declare function configureCredentialHelperForUrl(repoPath: string, anvilUrl: string, options?: {
|
|
20
|
+
execPath?: string;
|
|
21
|
+
modulePath?: string;
|
|
22
|
+
platform?: NodeJS.Platform;
|
|
23
|
+
}): Promise<void>;
|
|
18
24
|
export declare function hardenCheckoutGitAuth(options: {
|
|
19
25
|
repoPath: string;
|
|
20
26
|
appId: string;
|
|
@@ -25,4 +31,6 @@ export declare function hardenCheckoutGitAuth(options: {
|
|
|
25
31
|
cleanRemoteUrl: string;
|
|
26
32
|
}>;
|
|
27
33
|
export declare function parseAppIdFromGitPath(pathValue?: string): string | undefined;
|
|
34
|
+
export declare function writeAuthToFile(repoPath: string, auth: AuthData, encryptionKey: string): Promise<string>;
|
|
35
|
+
export declare const readAuthFromRepo: (repoPath: string) => Promise<AuthData | undefined>;
|
|
28
36
|
//# sourceMappingURL=git-auth.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git-auth.d.ts","sourceRoot":"","sources":["../../src/services/git-auth.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"git-auth.d.ts","sourceRoot":"","sources":["../../src/services/git-auth.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,QAAQ,CAAC;AAIrC,MAAM,WAAW,cAAc;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAkBD,wBAAgB,6BAA6B,CAAC,OAAO,EAAE;IACnD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;CAC9B,GAAG,MAAM,CAcT;AAWD,wBAAsB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAUhG;AAED,wBAAsB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAQ/G;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAI5E;AAED,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CA2BpE;AAiCD,wBAAgB,6BAA6B,CAAC,OAAO,CAAC,EAAE;IACpD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,mBAAmB,CAAC,EAAE,MAAM,MAAM,CAAC;CACtC,GAAG,MAAM,CAYT;AA0BD,wBAAsB,+BAA+B,CACjD,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;IACN,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;CAC9B,GACF,OAAO,CAAC,IAAI,CAAC,CA2Cf;AAED,wBAAsB,qBAAqB,CAAC,OAAO,EAAE;IACjD,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB,GAAG,OAAO,CAAC;IAAE,cAAc,EAAE,MAAM,CAAA;CAAE,CAAC,CAiBtC;AAED,wBAAgB,qBAAqB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAK5E;AA+DD,wBAAsB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,mBAe5F;AAED,eAAO,MAAM,gBAAgB,GAAU,UAAU,MAAM,KAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAiBrF,CAAC"}
|
package/dist/services/git.d.ts
CHANGED
|
@@ -63,6 +63,20 @@ export declare class GitService {
|
|
|
63
63
|
* @throws {GitError} if git command fails
|
|
64
64
|
*/
|
|
65
65
|
getStatus(): Promise<GitStatus>;
|
|
66
|
+
/**
|
|
67
|
+
* Restore modified files whose working-tree content matches HEAD and only
|
|
68
|
+
* differ by Git's executable mode bit.
|
|
69
|
+
*/
|
|
70
|
+
discardModeOnlyChanges(paths: string[]): Promise<string[]>;
|
|
71
|
+
/**
|
|
72
|
+
* Unstage and restore staged files whose index content matches HEAD and only
|
|
73
|
+
* differ by Git's executable mode bit.
|
|
74
|
+
*/
|
|
75
|
+
discardStagedModeOnlyChanges(paths: string[]): Promise<string[]>;
|
|
76
|
+
private getHeadFileMode;
|
|
77
|
+
private hasSameContentAsHead;
|
|
78
|
+
private hasSameIndexContentAsHead;
|
|
79
|
+
private restoreExecutableBit;
|
|
66
80
|
/**
|
|
67
81
|
* Check for uncommitted changes.
|
|
68
82
|
* @throws {GitError} if git command fails
|
|
@@ -132,6 +146,16 @@ export declare class GitService {
|
|
|
132
146
|
* @throws {GitError} if abort fails
|
|
133
147
|
*/
|
|
134
148
|
rebaseAbort(): Promise<void>;
|
|
149
|
+
/**
|
|
150
|
+
* Check whether ancestorRef is an ancestor of descendantRef.
|
|
151
|
+
* Returns false when Git cannot prove the ancestor relationship.
|
|
152
|
+
*/
|
|
153
|
+
isAncestor(ancestorRef: string, descendantRef: string): Promise<boolean>;
|
|
154
|
+
/**
|
|
155
|
+
* Fast-forward the current branch to a ref.
|
|
156
|
+
* @throws {GitError} if the merge cannot be completed as a fast-forward
|
|
157
|
+
*/
|
|
158
|
+
mergeFastForward(ref: string): Promise<void>;
|
|
135
159
|
/**
|
|
136
160
|
* Delete a local ref.
|
|
137
161
|
* Does not throw if ref doesn't exist.
|
|
@@ -166,7 +190,7 @@ export interface StagedFileChange {
|
|
|
166
190
|
* Get detailed staged changes with type info.
|
|
167
191
|
* @throws {GitError} if git command fails
|
|
168
192
|
*/
|
|
169
|
-
export declare function getStagedFileChanges(git: SimpleGit): Promise<StagedFileChange[]>;
|
|
193
|
+
export declare function getStagedFileChanges(git: SimpleGit, gitService?: GitService): Promise<StagedFileChange[]>;
|
|
170
194
|
/**
|
|
171
195
|
* Create a GitService instance for a repository path.
|
|
172
196
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../src/services/git.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../src/services/git.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gitignore.d.ts","sourceRoot":"","sources":["../../src/services/gitignore.ts"],"names":[],"mappings":"AAKA,wBAAsB,qCAAqC,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAoBjG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth-login.d.ts","sourceRoot":"","sources":["../../src/services/oauth-login.ts"],"names":[],"mappings":"AAOA,OAAO,
|
|
1
|
+
{"version":3,"file":"oauth-login.d.ts","sourceRoot":"","sources":["../../src/services/oauth-login.ts"],"names":[],"mappings":"AAOA,OAAO,EAA8C,WAAW,EAAE,MAAM,QAAQ,CAAC;AAKjF;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,MAAM,WAAW,2BAA2B;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AA4GD;;;GAGG;AACH,wBAAsB,0BAA0B,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAiBvG;AAED;;;GAGG;AACH,wBAAsB,uBAAuB,CACzC,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,2BAA2B,EACvC,OAAO,CAAC,EAAE;IAAE,WAAW,CAAC,EAAE,MAAM,OAAO,CAAA;CAAE,GAC1C,OAAO,CAAC,kBAAkB,CAAC,CA8C7B;AA2HD;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CA+CpF"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export interface TableMapping {
|
|
2
|
+
table_id: number;
|
|
3
|
+
python_name: string;
|
|
4
|
+
name: string;
|
|
5
|
+
}
|
|
6
|
+
export interface TableMappingsResponse {
|
|
7
|
+
tables: TableMapping[];
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Fetch table mappings from the Anvil server.
|
|
11
|
+
* Extracts table_id -> python_name mappings from all databases.
|
|
12
|
+
*/
|
|
13
|
+
export declare function fetchTableMappings(appId: string, anvilUrl?: string): Promise<TableMappingsResponse>;
|
|
14
|
+
/**
|
|
15
|
+
* Write table mappings to .anvil/table-mappings.json
|
|
16
|
+
*/
|
|
17
|
+
export declare function writeTableMappings(projectRoot: string, mappings: TableMappingsResponse): Promise<void>;
|
|
18
|
+
/**
|
|
19
|
+
* Read table mappings from .anvil/table-mappings.json
|
|
20
|
+
* Returns null if file does not exist.
|
|
21
|
+
*/
|
|
22
|
+
export declare function readTableMappings(projectRoot: string): Promise<TableMappingsResponse | null>;
|
|
23
|
+
/**
|
|
24
|
+
* Clear table mappings file.
|
|
25
|
+
*/
|
|
26
|
+
export declare function clearTableMappings(projectRoot: string): Promise<void>;
|
|
27
|
+
//# sourceMappingURL=tables.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tables.d.ts","sourceRoot":"","sources":["../../src/services/tables.ts"],"names":[],"mappings":"AAgCA,MAAM,WAAW,YAAY;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,qBAAqB;IAClC,MAAM,EAAE,YAAY,EAAE,CAAC;CAC1B;AAkBD;;;GAGG;AACH,wBAAsB,kBAAkB,CACpC,KAAK,EAAE,MAAM,EACb,QAAQ,SAAoB,GAC7B,OAAO,CAAC,qBAAqB,CAAC,CAwBhC;AAMD;;GAEG;AACH,wBAAsB,kBAAkB,CACpC,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,qBAAqB,GAChC,OAAO,CAAC,IAAI,CAAC,CAIf;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CACnC,WAAW,EAAE,MAAM,GACpB,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC,CAQvC;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAG3E"}
|
|
@@ -18,6 +18,11 @@ export declare function setTokenStore(store: TokenStore): void;
|
|
|
18
18
|
export declare function getUrlTokens(url: string): UrlTokens | undefined;
|
|
19
19
|
/** Get tokens for a specific account */
|
|
20
20
|
export declare function getAccountTokens(url: string, username: string): AccountTokens;
|
|
21
|
+
/**
|
|
22
|
+
* Get authentication tokens for a specific URL and username.
|
|
23
|
+
* Returns null if not found (for backward compatibility).
|
|
24
|
+
*/
|
|
25
|
+
export declare function getAuthTokensForAccount(url: string, username: string): AccountTokens | null;
|
|
21
26
|
/** Get tokens for a URL, auto-selecting if only one account exists */
|
|
22
27
|
export declare function getTokensAutoSelect(url: string, username?: string): AccountTokens;
|
|
23
28
|
/** Set tokens for a specific account */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token-store.d.ts","sourceRoot":"","sources":["../../src/services/token-store.ts"],"names":[],"mappings":"AAWA,yCAAyC;AACzC,MAAM,WAAW,aAAa;IAC1B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,iFAAiF;IACjF,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,uDAAuD;AACvD,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;AAEtD,0DAA0D;AAC1D,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AAgDnD,sDAAsD;AACtD,wBAAgB,aAAa,IAAI,UAAU,CAM1C;AAED,kCAAkC;AAClC,wBAAgB,aAAa,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CAErD;AAED,mDAAmD;AACnD,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAI/D;AAED,wCAAwC;AACxC,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,aAAa,CAe7E;AAED,sEAAsE;AACtE,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,aAAa,CAmBjF;AAED,wCAAwC;AACxC,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,IAAI,CA2B3F;AAED,2CAA2C;AAC3C,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAmB1E;AAED,kCAAkC;AAClC,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAgBpD;AAED,oCAAoC;AACpC,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAqB/F;AAED,yDAAyD;AACzD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAgBvD;AAED,0CAA0C;AAC1C,wBAAgB,gBAAgB,IAAI,MAAM,EAAE,CAa3C;AAED,8CAA8C;AAC9C,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAsBjE;AAED,uBAAuB;AACvB,wBAAgB,cAAc,IAAI,IAAI,CASrC"}
|
|
1
|
+
{"version":3,"file":"token-store.d.ts","sourceRoot":"","sources":["../../src/services/token-store.ts"],"names":[],"mappings":"AAWA,yCAAyC;AACzC,MAAM,WAAW,aAAa;IAC1B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,iFAAiF;IACjF,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,uDAAuD;AACvD,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;AAEtD,0DAA0D;AAC1D,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AAgDnD,sDAAsD;AACtD,wBAAgB,aAAa,IAAI,UAAU,CAM1C;AAED,kCAAkC;AAClC,wBAAgB,aAAa,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CAErD;AAED,mDAAmD;AACnD,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAI/D;AAED,wCAAwC;AACxC,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,aAAa,CAe7E;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAK3F;AAED,sEAAsE;AACtE,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,aAAa,CAmBjF;AAED,wCAAwC;AACxC,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,IAAI,CA2B3F;AAED,2CAA2C;AAC3C,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAmB1E;AAED,kCAAkC;AAClC,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAgBpD;AAED,oCAAoC;AACpC,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAqB/F;AAED,yDAAyD;AACzD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAgBvD;AAED,0CAA0C;AAC1C,wBAAgB,gBAAgB,IAAI,MAAM,EAAE,CAa3C;AAED,8CAA8C;AAC9C,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAsBjE;AAED,uBAAuB;AACvB,wBAAgB,cAAc,IAAI,IAAI,CASrC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type ParsedHtmlTemplate } from "@anvil-works/form-template-parser";
|
|
2
|
+
import type { FormTemplateValidationResult, ValidationIssue } from "./validators";
|
|
3
|
+
export declare function splitHtmlFormTemplateFrontmatter(htmlContent: string): {
|
|
4
|
+
frontmatter: string | null;
|
|
5
|
+
body: string;
|
|
6
|
+
};
|
|
7
|
+
export declare function validateHtmlFrontmatter(frontmatterYaml: string): ValidationIssue[];
|
|
8
|
+
export declare function validateParsedHtmlTemplate(parsed: ParsedHtmlTemplate): ValidationIssue[];
|
|
9
|
+
export declare function validateFormTemplateHtml(htmlContent: string): FormTemplateValidationResult;
|
|
10
|
+
//# sourceMappingURL=validateFormTemplateHtml.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validateFormTemplateHtml.d.ts","sourceRoot":"","sources":["../src/validateFormTemplateHtml.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,KAAK,kBAAkB,EAC1B,MAAM,mCAAmC,CAAC;AAM3C,OAAO,KAAK,EAAE,4BAA4B,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAmClF,wBAAgB,gCAAgC,CAAC,WAAW,EAAE,MAAM,GAAG;IACnE,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;CAChB,CASA;AAED,wBAAgB,uBAAuB,CAAC,eAAe,EAAE,MAAM,GAAG,eAAe,EAAE,CAyClF;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,kBAAkB,GAAG,eAAe,EAAE,CAExF;AAED,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,MAAM,GAAG,4BAA4B,CAyC1F"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { ValidationIssue } from "./validators";
|
|
2
|
+
export type PythonValidationResult = {
|
|
3
|
+
ok: true;
|
|
4
|
+
} | {
|
|
5
|
+
ok: false;
|
|
6
|
+
message: string;
|
|
7
|
+
issues: ValidationIssue[];
|
|
8
|
+
};
|
|
9
|
+
export type PythonInterpreterCommand = {
|
|
10
|
+
command: string;
|
|
11
|
+
args: string[];
|
|
12
|
+
};
|
|
13
|
+
type PythonProbe = (command: string, args: string[], options: {
|
|
14
|
+
encoding: BufferEncoding;
|
|
15
|
+
}) => {
|
|
16
|
+
error?: Error;
|
|
17
|
+
status: number | null;
|
|
18
|
+
};
|
|
19
|
+
export declare function findPythonInterpreter(env?: NodeJS.ProcessEnv, probe?: PythonProbe): PythonInterpreterCommand | null;
|
|
20
|
+
export declare function validatePython(filePath: string, fileContent: string, appRoot: string | null): PythonValidationResult;
|
|
21
|
+
export {};
|
|
22
|
+
//# sourceMappingURL=validatePython.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validatePython.d.ts","sourceRoot":"","sources":["../src/validatePython.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD,MAAM,MAAM,sBAAsB,GAC5B;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GACZ;IACI,EAAE,EAAE,KAAK,CAAC;IACV,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,eAAe,EAAE,CAAC;CAC7B,CAAC;AAER,MAAM,MAAM,wBAAwB,GAAG;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;CAClB,CAAC;AAEF,KAAK,WAAW,GAAG,CACf,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,EAAE;IAAE,QAAQ,EAAE,cAAc,CAAA;CAAE,KACpC;IAAE,KAAK,CAAC,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC;AAuE9C,wBAAgB,qBAAqB,CACjC,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,KAAK,GAAE,WAAuB,GAC/B,wBAAwB,GAAG,IAAI,CAkBjC;AAiCD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,sBAAsB,CAsEpH"}
|
package/dist/validators.d.ts
CHANGED
|
@@ -16,7 +16,7 @@ export type AnvilYamlValidationResult = {
|
|
|
16
16
|
message: string;
|
|
17
17
|
issues: ValidationIssue[];
|
|
18
18
|
};
|
|
19
|
-
export type ValidationTarget = "anvil.yaml" | "form_template.yaml";
|
|
19
|
+
export type ValidationTarget = "anvil.yaml" | "form_template.yaml" | "form_template.html" | "python";
|
|
20
20
|
export type ValidatePathResult = {
|
|
21
21
|
ok: true;
|
|
22
22
|
target: ValidationTarget;
|
|
@@ -35,15 +35,15 @@ export declare function validateFormTemplate(yamlContent: string): FormTemplateV
|
|
|
35
35
|
* Validates anvil.yaml structure. Returns structured issues for tooling and CLI output.
|
|
36
36
|
*/
|
|
37
37
|
export declare function validateAnvilYaml(yamlContent: string): AnvilYamlValidationResult;
|
|
38
|
+
declare function inferValidationTarget(filePath: string): ValidationTarget | null;
|
|
39
|
+
export { inferValidationTarget };
|
|
40
|
+
export declare function findAnvilAppRoot(filePath: string): string | null;
|
|
38
41
|
/**
|
|
39
|
-
* Validate
|
|
42
|
+
* Validate file content by path convention:
|
|
40
43
|
* - `anvil.yaml`
|
|
41
44
|
* - any form YAML under `client_code/` with a `.yaml` suffix
|
|
42
|
-
*
|
|
43
|
-
*
|
|
44
|
-
* `client_code/Foo/form_template.yaml` and module-form YAML such as
|
|
45
|
-
* `client_code/Foo.yaml`, which is the same distinction used elsewhere when
|
|
46
|
-
* inferring whether a client-code YAML file represents a form.
|
|
45
|
+
* - any form HTML under `client_code/` with a `.html` suffix
|
|
46
|
+
* - any Python file under `client_code/` or `server_code/`
|
|
47
47
|
*/
|
|
48
|
-
export declare function validatePath(filePath: string,
|
|
48
|
+
export declare function validatePath(filePath: string, fileContent: string): ValidatePathResult;
|
|
49
49
|
//# sourceMappingURL=validators.d.ts.map
|
package/dist/validators.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["../src/validators.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["../src/validators.ts"],"names":[],"mappings":"AAYA,MAAM,MAAM,eAAe,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAClC;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GACZ;IACI,EAAE,EAAE,KAAK,CAAC;IACV,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,eAAe,EAAE,CAAC;CAC7B,CAAC;AAER,MAAM,MAAM,yBAAyB,GAC/B;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GACZ;IACI,EAAE,EAAE,KAAK,CAAC;IACV,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,eAAe,EAAE,CAAC;CAC7B,CAAC;AAER,MAAM,MAAM,gBAAgB,GAAG,YAAY,GAAG,oBAAoB,GAAG,oBAAoB,GAAG,QAAQ,CAAC;AAErG,MAAM,MAAM,kBAAkB,GACxB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,gBAAgB,CAAA;CAAE,GACtC;IACI,EAAE,EAAE,KAAK,CAAC;IACV,MAAM,EAAE,gBAAgB,GAAG,SAAS,CAAC;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,eAAe,EAAE,CAAC;CAC7B,CAAC;AAoER,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,UAEhD;AAgBD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,4BAA4B,CA0BtF;AAuZD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,yBAAyB,CAkFhF;AAED,iBAAS,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CA4BxE;AAED,OAAO,EAAE,qBAAqB,EAAE,CAAC;AAOjC,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAkBhE;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,kBAAkB,CAoItF"}
|
|
@@ -29,6 +29,10 @@ export declare function buildLocalChangesSet(status: {
|
|
|
29
29
|
notAdded: string[];
|
|
30
30
|
created: string[];
|
|
31
31
|
deleted: string[];
|
|
32
|
+
renamed?: Array<{
|
|
33
|
+
from: string;
|
|
34
|
+
to: string;
|
|
35
|
+
}>;
|
|
32
36
|
}): Set<string>;
|
|
33
37
|
/**
|
|
34
38
|
* Extract changes from git status.
|
|
@@ -50,5 +54,8 @@ export declare function logConflictResolution(result: ConflictResolutionResult):
|
|
|
50
54
|
/**
|
|
51
55
|
* Delete files that were removed on Anvil but exist locally as untracked.
|
|
52
56
|
*/
|
|
53
|
-
export declare function deleteFilesRemovedOnAnvil(gitService: GitService, unstagedFiles: string[], remotelyChangedFiles: Set<string
|
|
57
|
+
export declare function deleteFilesRemovedOnAnvil(gitService: GitService, unstagedFiles: string[], remotelyChangedFiles: Set<string>, options?: {
|
|
58
|
+
oldCommitId?: string;
|
|
59
|
+
localChangesToPreserve?: Set<string>;
|
|
60
|
+
}): Promise<string[]>;
|
|
54
61
|
//# sourceMappingURL=ConflictResolver.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConflictResolver.d.ts","sourceRoot":"","sources":["../../src/watch/ConflictResolver.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,MAAM,WAAW,UAAU;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,GAAG,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC7C,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,wBAAwB;IACrC,gBAAgB,EAAE,UAAU,EAAE,CAAC;IAC/B,SAAS,EAAE,UAAU,EAAE,CAAC;IACxB,iBAAiB,EAAE,MAAM,EAAE,CAAC;CAC/B;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACrC,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,GACpB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAQtB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC7B,UAAU,EAAE,UAAU,EAAE,EACxB,mBAAmB,EAAE,GAAG,CAAC,MAAM,CAAC,EAChC,kBAAkB,EAAE,GAAG,CAAC,MAAM,CAAC,GAChC,wBAAwB,CAyB1B;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,UAAU,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAiB5G;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE;IACzC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"ConflictResolver.d.ts","sourceRoot":"","sources":["../../src/watch/ConflictResolver.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,MAAM,WAAW,UAAU;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,GAAG,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC7C,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,wBAAwB;IACrC,gBAAgB,EAAE,UAAU,EAAE,CAAC;IAC/B,SAAS,EAAE,UAAU,EAAE,CAAC;IACxB,iBAAiB,EAAE,MAAM,EAAE,CAAC;CAC/B;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACrC,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,GACpB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAQtB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC7B,UAAU,EAAE,UAAU,EAAE,EACxB,mBAAmB,EAAE,GAAG,CAAC,MAAM,CAAC,EAChC,kBAAkB,EAAE,GAAG,CAAC,MAAM,CAAC,GAChC,wBAAwB,CAyB1B;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,UAAU,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAiB5G;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE;IACzC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACjD,GAAG,GAAG,CAAC,MAAM,CAAC,CAQd;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE;IAC7C,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAChD,GAAG,UAAU,EAAE,CAkBf;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,wBAAwB,GAAG,IAAI,CAc5E;AAED;;GAEG;AACH,wBAAsB,yBAAyB,CAC3C,UAAU,EAAE,UAAU,EACtB,aAAa,EAAE,MAAM,EAAE,EACvB,oBAAoB,EAAE,GAAG,CAAC,MAAM,CAAC,EACjC,OAAO,GAAE;IACL,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sBAAsB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACnC,GACP,OAAO,CAAC,MAAM,EAAE,CAAC,CA6CnB"}
|
|
@@ -2,6 +2,7 @@ import type { EditorYamlManager } from "../EditorYaml";
|
|
|
2
2
|
import { Emitter } from "../Emitter";
|
|
3
3
|
import { GitService } from "../services/git";
|
|
4
4
|
import type { FileChange } from "./ConflictResolver";
|
|
5
|
+
import { type WatchDiagnostic } from "./diagnostics";
|
|
5
6
|
export interface SaveProcessorEvents {
|
|
6
7
|
"save-started": {
|
|
7
8
|
fileCount: number;
|
|
@@ -13,23 +14,30 @@ export interface SaveProcessorEvents {
|
|
|
13
14
|
"save-failed": {
|
|
14
15
|
error: string;
|
|
15
16
|
fileCount: number;
|
|
16
|
-
};
|
|
17
|
+
} & WatchDiagnostic;
|
|
17
18
|
"save-complete": {
|
|
18
19
|
newCommitId: string;
|
|
19
20
|
fileCount: number;
|
|
20
21
|
};
|
|
22
|
+
"saved": {
|
|
23
|
+
oldCommitId: string | null;
|
|
24
|
+
newCommitId: string;
|
|
25
|
+
branch: string;
|
|
26
|
+
};
|
|
27
|
+
"anvil-yaml-dependencies-changed": void;
|
|
21
28
|
"validation-failed": {
|
|
22
29
|
reason: string;
|
|
23
30
|
currentBranch: string;
|
|
24
|
-
};
|
|
31
|
+
} & WatchDiagnostic;
|
|
25
32
|
"sync-conflict": {
|
|
26
33
|
retryAttempt: number;
|
|
27
34
|
maxRetries: number;
|
|
28
35
|
reason: string;
|
|
29
|
-
};
|
|
36
|
+
} & WatchDiagnostic;
|
|
30
37
|
"max-retries-exceeded": {
|
|
31
38
|
retries: number;
|
|
32
|
-
|
|
39
|
+
reason: string;
|
|
40
|
+
} & WatchDiagnostic;
|
|
33
41
|
}
|
|
34
42
|
export interface SaveProcessorConfig {
|
|
35
43
|
repoPath: string;
|
|
@@ -54,10 +62,11 @@ type SyncCallback = (filePaths: Set<string>) => Promise<{
|
|
|
54
62
|
localOnlyChanges: FileChange[];
|
|
55
63
|
conflicts: FileChange[];
|
|
56
64
|
}>;
|
|
57
|
-
type PostSaveCallback =
|
|
65
|
+
type PostSaveCallback = SyncCallback;
|
|
58
66
|
export declare class SaveProcessor extends Emitter<SaveProcessorEvents> {
|
|
59
67
|
private hasPendingChanges;
|
|
60
68
|
private debounceTimer;
|
|
69
|
+
private saveLoopPromise;
|
|
61
70
|
private saveSequence;
|
|
62
71
|
private readonly SAVE_DEBOUNCE_MS;
|
|
63
72
|
private readonly MAX_RETRIES;
|
|
@@ -75,6 +84,8 @@ export declare class SaveProcessor extends Emitter<SaveProcessorEvents> {
|
|
|
75
84
|
forceSave(): Promise<void>;
|
|
76
85
|
cleanup(): void;
|
|
77
86
|
private processSaveBatchWithEvents;
|
|
87
|
+
private drainSaveQueue;
|
|
88
|
+
private processOneSaveBatchWithEvents;
|
|
78
89
|
private getSuccessMessage;
|
|
79
90
|
private processSaveBatch;
|
|
80
91
|
private getStagedChanges;
|
|
@@ -87,6 +98,7 @@ export declare class SaveProcessor extends Emitter<SaveProcessorEvents> {
|
|
|
87
98
|
private sanitizePayload;
|
|
88
99
|
private handleAuthError;
|
|
89
100
|
private handleConflict;
|
|
101
|
+
private getConflictDiagnosticInfo;
|
|
90
102
|
private handleSuccess;
|
|
91
103
|
rerouteChanges(changes: FileChange[]): Promise<{
|
|
92
104
|
newSaveArray: Array<[any[], any]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SaveProcessor.d.ts","sourceRoot":"","sources":["../../src/watch/SaveProcessor.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"SaveProcessor.d.ts","sourceRoot":"","sources":["../../src/watch/SaveProcessor.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,7 +25,7 @@ export interface SyncManagerConfig {
|
|
|
25
25
|
export declare function stripNonSemanticYamlFields(yamlFile: string, parsed: Record<string, unknown> | undefined): Record<string, unknown>;
|
|
26
26
|
export declare class SyncManager extends Emitter<SyncManagerEvents> {
|
|
27
27
|
private config;
|
|
28
|
-
private
|
|
28
|
+
private syncQueue;
|
|
29
29
|
constructor(config: SyncManagerConfig);
|
|
30
30
|
/**
|
|
31
31
|
* Syncs remote changes while preserving local modifications.
|
|
@@ -39,11 +39,16 @@ export declare class SyncManager extends Emitter<SyncManagerEvents> {
|
|
|
39
39
|
localOnlyChanges: FileChange[];
|
|
40
40
|
conflicts: FileChange[];
|
|
41
41
|
}>;
|
|
42
|
+
private performSyncRemoteChanges;
|
|
42
43
|
/**
|
|
43
44
|
* Fetch latest from Anvil and reset the working directory.
|
|
44
45
|
* @throws {AuthError | GitError} on failure
|
|
45
46
|
*/
|
|
46
|
-
fetchAndResetFromAnvil(): Promise<void>;
|
|
47
|
+
fetchAndResetFromAnvil(localChangesToPreserve?: Set<string>): Promise<void>;
|
|
48
|
+
private fetchAndMoveCleanTreeToAnvilHead;
|
|
49
|
+
private withFetchedAnvilRef;
|
|
50
|
+
private resetToFetchedAnvilRef;
|
|
51
|
+
private isCleanForFastForward;
|
|
47
52
|
private deleteFilesRemovedOnAnvilLocally;
|
|
48
53
|
private discardFormattingOnlyYamlChanges;
|
|
49
54
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SyncManager.d.ts","sourceRoot":"","sources":["../../src/watch/SyncManager.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAKrC,OAAO,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"SyncManager.d.ts","sourceRoot":"","sources":["../../src/watch/SyncManager.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAKrC,OAAO,EAAE,UAAU,EAAkB,MAAM,iBAAiB,CAAC;AAE7D,OAAO,EAQH,KAAK,UAAU,EAClB,MAAM,oBAAoB,CAAC;AAE5B,MAAM,WAAW,iBAAiB;IAC9B,cAAc,EAAE,EAAE,CAAC;IACnB,gBAAgB,EAAE;QAAE,gBAAgB,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;CACrE;AAED,MAAM,WAAW,iBAAiB;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,UAAU,CAAC;IACvB,UAAU,EAAE,iBAAiB,CAAC;IAC9B,YAAY,EAAE,MAAM,MAAM,CAAC;IAC3B,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,gBAAgB,EAAE,MAAM,MAAM,CAAC;IAC/B,WAAW,EAAE,MAAM,MAAM,CAAC;IAC1B,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CAC3C;AAED,wBAAgB,0BAA0B,CACtC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAC5C,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAgBzB;AAED,qBAAa,WAAY,SAAQ,OAAO,CAAC,iBAAiB,CAAC;IACvD,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,SAAS,CAAuC;gBAE5C,MAAM,EAAE,iBAAiB;IAKrC;;;;;;;OAOG;IACG,iBAAiB,CACnB,iBAAiB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAChC,OAAO,CAAC;QAAE,gBAAgB,EAAE,UAAU,EAAE,CAAC;QAAC,SAAS,EAAE,UAAU,EAAE,CAAA;KAAE,CAAC;YAOzD,wBAAwB;IA8CtC;;;OAGG;IACG,sBAAsB,CAAC,sBAAsB,GAAE,GAAG,CAAC,MAAM,CAAa,GAAG,OAAO,CAAC,IAAI,CAAC;YAO9E,gCAAgC;YA2BhC,mBAAmB;YAgBnB,sBAAsB;IAapC,OAAO,CAAC,qBAAqB;YAYf,gCAAgC;YAiBhC,gCAAgC;CAkGjD"}
|