@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.
Files changed (82) hide show
  1. package/README.md +39 -3
  2. package/dist/SavePathRouter.d.ts +2 -5
  3. package/dist/SavePathRouter.d.ts.map +1 -1
  4. package/dist/WatchSession.d.ts +73 -3
  5. package/dist/WatchSession.d.ts.map +1 -1
  6. package/dist/api.d.ts +13 -2
  7. package/dist/api.d.ts.map +1 -1
  8. package/dist/cli.js +6316 -37254
  9. package/dist/commands/appDetection.d.ts +2 -0
  10. package/dist/commands/appDetection.d.ts.map +1 -0
  11. package/dist/commands/checkout.d.ts +11 -3
  12. package/dist/commands/checkout.d.ts.map +1 -1
  13. package/dist/commands/config.d.ts +1 -1
  14. package/dist/commands/config.d.ts.map +1 -1
  15. package/dist/commands/convertTemplate.d.ts +25 -0
  16. package/dist/commands/convertTemplate.d.ts.map +1 -0
  17. package/dist/commands/deps.d.ts +7 -0
  18. package/dist/commands/deps.d.ts.map +1 -0
  19. package/dist/commands/gitAuth.d.ts +89 -0
  20. package/dist/commands/gitAuth.d.ts.map +1 -0
  21. package/dist/commands/gitCredential.d.ts +7 -4
  22. package/dist/commands/gitCredential.d.ts.map +1 -1
  23. package/dist/commands/index.d.ts +4 -0
  24. package/dist/commands/index.d.ts.map +1 -1
  25. package/dist/commands/logout.d.ts +1 -1
  26. package/dist/commands/logout.d.ts.map +1 -1
  27. package/dist/commands/tables.d.ts +7 -0
  28. package/dist/commands/tables.d.ts.map +1 -0
  29. package/dist/commands/watch.d.ts +8 -2
  30. package/dist/commands/watch.d.ts.map +1 -1
  31. package/dist/componentBuiltinTypes.d.ts.map +1 -1
  32. package/dist/componentName.d.ts +5 -0
  33. package/dist/componentName.d.ts.map +1 -0
  34. package/dist/componentTypeSpec.d.ts +8 -0
  35. package/dist/componentTypeSpec.d.ts.map +1 -0
  36. package/dist/config.d.ts +0 -9
  37. package/dist/config.d.ts.map +1 -1
  38. package/dist/environment.d.ts +21 -0
  39. package/dist/environment.d.ts.map +1 -0
  40. package/dist/formSpecContext.d.ts +4 -0
  41. package/dist/formSpecContext.d.ts.map +1 -0
  42. package/dist/formTemplateValidation.d.ts +13 -0
  43. package/dist/formTemplateValidation.d.ts.map +1 -0
  44. package/dist/index.js +13015 -41523
  45. package/dist/program.d.ts.map +1 -1
  46. package/dist/services/auth.d.ts +17 -12
  47. package/dist/services/auth.d.ts.map +1 -1
  48. package/dist/services/deps.d.ts +106 -0
  49. package/dist/services/deps.d.ts.map +1 -0
  50. package/dist/services/git-auth.d.ts +15 -7
  51. package/dist/services/git-auth.d.ts.map +1 -1
  52. package/dist/services/git.d.ts +25 -1
  53. package/dist/services/git.d.ts.map +1 -1
  54. package/dist/services/gitignore.d.ts +2 -0
  55. package/dist/services/gitignore.d.ts.map +1 -0
  56. package/dist/services/oauth-login.d.ts.map +1 -1
  57. package/dist/services/tables.d.ts +27 -0
  58. package/dist/services/tables.d.ts.map +1 -0
  59. package/dist/services/token-store.d.ts +5 -0
  60. package/dist/services/token-store.d.ts.map +1 -1
  61. package/dist/validateFormTemplateHtml.d.ts +10 -0
  62. package/dist/validateFormTemplateHtml.d.ts.map +1 -0
  63. package/dist/validatePython.d.ts +22 -0
  64. package/dist/validatePython.d.ts.map +1 -0
  65. package/dist/validators.d.ts +8 -8
  66. package/dist/validators.d.ts.map +1 -1
  67. package/dist/watch/ConflictResolver.d.ts +8 -1
  68. package/dist/watch/ConflictResolver.d.ts.map +1 -1
  69. package/dist/watch/SaveProcessor.d.ts +17 -5
  70. package/dist/watch/SaveProcessor.d.ts.map +1 -1
  71. package/dist/watch/SyncManager.d.ts +7 -2
  72. package/dist/watch/SyncManager.d.ts.map +1 -1
  73. package/dist/watch/WebSocketClient.d.ts +30 -0
  74. package/dist/watch/WebSocketClient.d.ts.map +1 -1
  75. package/dist/watch/diagnostics.d.ts +30 -0
  76. package/dist/watch/diagnostics.d.ts.map +1 -0
  77. package/dist/watch/index.d.ts +1 -0
  78. package/dist/watch/index.d.ts.map +1 -1
  79. package/package.json +2 -1
  80. package/dist/cli.js.LICENSE.txt +0 -3
  81. package/dist/index.js.LICENSE.txt +0 -3
  82. package/dist/keyring.darwin-arm64.node +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"program.d.ts","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmDpC,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,CA6GtC"}
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"}
@@ -1,4 +1,8 @@
1
- import { AccountTokens } from "./token-store";
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 login(anvilUrl: string, tokenData: {
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":"AAMA,OAAO,EACH,aAAa,EAWhB,MAAM,eAAe,CAAC;AAMvB,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,mEAAmE;AACnE,YAAY,EAAE,aAAa,IAAI,YAAY,EAAE,CAAC;AAE9C,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;AAMD;;;;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;;;GAGG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,aAAa,CAElF;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAE5E;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,QAAQ,SAAuB,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA0D3G;AAsBD;;;GAGG;AACH,wBAAsB,KAAK,CACvB,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,CA4BxF;AAMD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAEvD;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,EAAE,CAEhD"}
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 getDefaultCliPath(options?: {
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
- cliPath?: string;
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 configureCredentialHelperForUrl(repoPath: string, anvilUrl: string): Promise<void>;
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":"AAKA,MAAM,WAAW,cAAc;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAkBD,wBAAgB,iBAAiB,CAAC,OAAO,CAAC,EAAE;IACxC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC;CACjD,GAAG,MAAM,GAAG,SAAS,CASrB;AAED,wBAAgB,6BAA6B,CAAC,OAAO,CAAC,EAAE;IACpD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;CAC9B,GAAG,MAAM,CAiBT;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,wBAAsB,+BAA+B,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAuBvG;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"}
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"}
@@ -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":"AAOA,OAAkB,EAAgB,SAAS,EAAE,MAAM,YAAY,CAAC;AAGhE,MAAM,WAAW,SAAS;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAChD;AAED,MAAM,WAAW,gBAAgB;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,UAAU;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,qBAAa,UAAU;IACnB,OAAO,CAAC,GAAG,CAAY;IACvB,OAAO,CAAC,QAAQ,CAAS;gBAEb,QAAQ,EAAE,MAAM;IAK5B;;OAEG;IACH,MAAM,IAAI,SAAS;IAInB;;OAEG;IACH,WAAW,IAAI,MAAM;IAIrB;;;OAGG;IACG,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;IAalC;;;OAGG;IACG,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC;IAezC;;;OAGG;IACG,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;IASpC;;;OAGG;IACG,aAAa,IAAI,OAAO,CAAC,UAAU,CAAC;IAc1C;;;OAGG;IACG,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC;IAwBrC;;;OAGG;IACG,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAyBhE;;;OAGG;IACG,4BAA4B,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;YA0BxD,eAAe;YAMf,oBAAoB;YAMpB,yBAAyB;YAMzB,oBAAoB;IASlC;;;OAGG;IACG,qBAAqB,IAAI,OAAO,CAAC,OAAO,CAAC;IAK/C;;;OAGG;IACG,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQxD;;;OAGG;IACG,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,GAAG,OAAO,GAAG,MAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAQlF;;;OAGG;IACG,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ9C;;;;OAIG;IACG,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAc/C;;;OAGG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ/B;;;OAGG;IACG,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ3C;;;OAGG;IACG,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAUxE;;;OAGG;IACG,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAUrG;;;OAGG;IACG,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAS5C;;;OAGG;IACG,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAStE;;;OAGG;IACG,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQzC;;;OAGG;IACG,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAQlC;;;OAGG;IACG,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAU9E;;;OAGG;IACG,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQlD;;;OAGG;IACG,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ3C;;;OAGG;IACG,UAAU,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAYvE;;OAEG;IACG,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC;IAK1C;;OAEG;IACG,sBAAsB,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CA+BtE;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,GAAG,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC7C,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CAAC,GAAG,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAoD/G;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,CAE7D"}
@@ -0,0 +1,2 @@
1
+ export declare function ensureProjectGitignoreIgnoresAnvilDir(projectRoot: string): Promise<boolean>;
2
+ //# sourceMappingURL=gitignore.d.ts.map
@@ -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,EAA+B,WAAW,EAAE,MAAM,QAAQ,CAAC;AAKlE;;;;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"}
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"}
@@ -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 YAML content by path convention:
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
- * This intentionally matches both package-form templates such as
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, yamlContent: string): ValidatePathResult;
48
+ export declare function validatePath(filePath: string, fileContent: string): ValidatePathResult;
49
49
  //# sourceMappingURL=validators.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["../src/validators.ts"],"names":[],"mappings":"AAUA,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,CAAC;AAEnE,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;AAqHR,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,UAEhD;AAsbD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,4BAA4B,CA0BtF;AAqZD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,yBAAyB,CAkFhF;AA2CD;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,kBAAkB,CA0EtF"}
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>): Promise<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;CACrB,GAAG,GAAG,CAAC,MAAM,CAAC,CAEd;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,GAClC,OAAO,CAAC,MAAM,EAAE,CAAC,CA8BnB"}
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 = () => Promise<void>;
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":"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"}
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 syncInProgress;
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,EAAE,MAAM,iBAAiB,CAAC;AAE7C,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,cAAc,CAAS;gBAEnB,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;IA2CvE;;;OAGG;IACG,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC;YAoB/B,gCAAgC;YAUhC,gCAAgC;CAkGjD"}
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"}