veryfront 0.1.129 → 0.1.131

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 (112) hide show
  1. package/esm/cli/auth/login.d.ts.map +1 -1
  2. package/esm/cli/auth/login.js +11 -0
  3. package/esm/cli/auth/provider-store.d.ts +20 -0
  4. package/esm/cli/auth/provider-store.d.ts.map +1 -0
  5. package/esm/cli/auth/provider-store.js +62 -0
  6. package/esm/cli/auth/providers/anthropic.d.ts +2 -0
  7. package/esm/cli/auth/providers/anthropic.d.ts.map +1 -0
  8. package/esm/cli/auth/providers/anthropic.js +37 -0
  9. package/esm/cli/auth/providers/openai.d.ts +2 -0
  10. package/esm/cli/auth/providers/openai.d.ts.map +1 -0
  11. package/esm/cli/auth/providers/openai.js +35 -0
  12. package/esm/cli/auth/utils.d.ts +5 -0
  13. package/esm/cli/auth/utils.d.ts.map +1 -1
  14. package/esm/cli/auth/utils.js +9 -0
  15. package/esm/cli/commands/config/command-help.d.ts +3 -0
  16. package/esm/cli/commands/config/command-help.d.ts.map +1 -0
  17. package/esm/cli/commands/config/command-help.js +13 -0
  18. package/esm/cli/commands/config/handler.d.ts +5 -0
  19. package/esm/cli/commands/config/handler.d.ts.map +1 -0
  20. package/esm/cli/commands/config/handler.js +70 -0
  21. package/esm/cli/commands/open/command-help.d.ts +3 -0
  22. package/esm/cli/commands/open/command-help.d.ts.map +1 -0
  23. package/esm/cli/commands/open/command-help.js +17 -0
  24. package/esm/cli/commands/open/command.d.ts +14 -0
  25. package/esm/cli/commands/open/command.d.ts.map +1 -0
  26. package/esm/cli/commands/open/command.js +22 -0
  27. package/esm/cli/commands/open/handler.d.ts +3 -0
  28. package/esm/cli/commands/open/handler.d.ts.map +1 -0
  29. package/esm/cli/commands/open/handler.js +29 -0
  30. package/esm/cli/help/command-definitions.d.ts.map +1 -1
  31. package/esm/cli/help/command-definitions.js +4 -0
  32. package/esm/cli/router.d.ts.map +1 -1
  33. package/esm/cli/router.js +26 -1
  34. package/esm/deno.js +1 -1
  35. package/esm/src/channels/control-plane.js +6 -6
  36. package/esm/src/discovery/handlers/agent-handler.d.ts.map +1 -1
  37. package/esm/src/discovery/handlers/agent-handler.js +10 -1
  38. package/esm/src/platform/compat/framework-source-resolver.d.ts +8 -0
  39. package/esm/src/platform/compat/framework-source-resolver.d.ts.map +1 -1
  40. package/esm/src/platform/compat/framework-source-resolver.js +77 -1
  41. package/esm/src/rendering/rsc/client-boot.ts +18 -1
  42. package/esm/src/server/handlers/preview/markdown-html-generator.d.ts +2 -0
  43. package/esm/src/server/handlers/preview/markdown-html-generator.d.ts.map +1 -1
  44. package/esm/src/server/handlers/preview/markdown-html-generator.js +10 -7
  45. package/esm/src/server/handlers/preview/markdown-preview.handler.d.ts.map +1 -1
  46. package/esm/src/server/handlers/preview/markdown-preview.handler.js +6 -3
  47. package/esm/src/server/handlers/request/api/project-discovery.d.ts.map +1 -1
  48. package/esm/src/server/handlers/request/api/project-discovery.js +16 -5
  49. package/esm/src/server/handlers/request/api/security-headers.d.ts +1 -0
  50. package/esm/src/server/handlers/request/api/security-headers.d.ts.map +1 -1
  51. package/esm/src/server/handlers/request/api/security-headers.js +4 -1
  52. package/esm/src/server/handlers/request/openapi-docs.handler.d.ts.map +1 -1
  53. package/esm/src/server/handlers/request/openapi-docs.handler.js +10 -6
  54. package/esm/src/server/handlers/request/rsc/index.d.ts.map +1 -1
  55. package/esm/src/server/handlers/request/rsc/index.js +5 -2
  56. package/esm/src/server/handlers/request/ssr/ssr-response-builder.d.ts.map +1 -1
  57. package/esm/src/server/handlers/request/ssr/ssr-response-builder.js +12 -2
  58. package/esm/src/server/handlers/response/not-found.d.ts.map +1 -1
  59. package/esm/src/server/handlers/response/not-found.js +14 -15
  60. package/esm/src/server/services/rsc/endpoints/endpoint-router.d.ts +1 -1
  61. package/esm/src/server/services/rsc/endpoints/endpoint-router.d.ts.map +1 -1
  62. package/esm/src/server/services/rsc/endpoints/endpoint-router.js +3 -3
  63. package/esm/src/server/services/rsc/endpoints/rsc-bundles.generated.d.ts.map +1 -1
  64. package/esm/src/server/services/rsc/endpoints/rsc-bundles.generated.js +1 -1
  65. package/esm/src/server/services/rsc/endpoints/types.d.ts +1 -0
  66. package/esm/src/server/services/rsc/endpoints/types.d.ts.map +1 -1
  67. package/esm/src/server/services/rsc/orchestrators/handler.d.ts +1 -1
  68. package/esm/src/server/services/rsc/orchestrators/handler.d.ts.map +1 -1
  69. package/esm/src/server/services/rsc/orchestrators/handler.js +2 -2
  70. package/esm/src/server/services/rsc/orchestrators/page-handler.d.ts +1 -1
  71. package/esm/src/server/services/rsc/orchestrators/page-handler.d.ts.map +1 -1
  72. package/esm/src/server/services/rsc/orchestrators/page-handler.js +7 -5
  73. package/esm/src/transforms/esm/import-parser.d.ts.map +1 -1
  74. package/esm/src/transforms/esm/import-parser.js +6 -0
  75. package/esm/src/transforms/pipeline/stages/ssr-vf-modules/path-resolver.d.ts +1 -1
  76. package/esm/src/transforms/pipeline/stages/ssr-vf-modules/path-resolver.d.ts.map +1 -1
  77. package/esm/src/transforms/pipeline/stages/ssr-vf-modules/path-resolver.js +10 -66
  78. package/esm/src/utils/version-constant.d.ts +1 -1
  79. package/esm/src/utils/version-constant.js +1 -1
  80. package/package.json +1 -1
  81. package/src/cli/auth/login.ts +12 -0
  82. package/src/cli/auth/provider-store.ts +82 -0
  83. package/src/cli/auth/providers/anthropic.ts +46 -0
  84. package/src/cli/auth/providers/openai.ts +45 -0
  85. package/src/cli/auth/utils.ts +10 -0
  86. package/src/cli/commands/config/command-help.ts +15 -0
  87. package/src/cli/commands/config/handler.ts +90 -0
  88. package/src/cli/commands/open/command-help.ts +19 -0
  89. package/src/cli/commands/open/command.ts +28 -0
  90. package/src/cli/commands/open/handler.ts +38 -0
  91. package/src/cli/help/command-definitions.ts +4 -0
  92. package/src/cli/router.ts +28 -1
  93. package/src/deno.js +1 -1
  94. package/src/src/channels/control-plane.ts +6 -6
  95. package/src/src/discovery/handlers/agent-handler.ts +10 -1
  96. package/src/src/platform/compat/framework-source-resolver.ts +101 -1
  97. package/src/src/server/handlers/preview/markdown-html-generator.ts +12 -6
  98. package/src/src/server/handlers/preview/markdown-preview.handler.ts +6 -3
  99. package/src/src/server/handlers/request/api/project-discovery.ts +18 -5
  100. package/src/src/server/handlers/request/api/security-headers.ts +10 -1
  101. package/src/src/server/handlers/request/openapi-docs.handler.ts +10 -6
  102. package/src/src/server/handlers/request/rsc/index.ts +5 -2
  103. package/src/src/server/handlers/request/ssr/ssr-response-builder.ts +16 -2
  104. package/src/src/server/handlers/response/not-found.ts +14 -15
  105. package/src/src/server/services/rsc/endpoints/endpoint-router.ts +3 -3
  106. package/src/src/server/services/rsc/endpoints/rsc-bundles.generated.ts +1 -1
  107. package/src/src/server/services/rsc/endpoints/types.ts +1 -0
  108. package/src/src/server/services/rsc/orchestrators/handler.ts +2 -2
  109. package/src/src/server/services/rsc/orchestrators/page-handler.ts +8 -5
  110. package/src/src/transforms/esm/import-parser.ts +12 -0
  111. package/src/src/transforms/pipeline/stages/ssr-vf-modules/path-resolver.ts +10 -69
  112. package/src/src/utils/version-constant.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../../src/cli/auth/login.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,iBAAiB,EAAwB,MAAM,2BAA2B,CAAC;AACzF,OAAO,EAAE,WAAW,EAAoB,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAQjG,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,WAAW,GAAG,OAAO,CAAC;AAErE,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AASD,wBAAsB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAgB3E;AA8ID,wBAAsB,KAAK,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CA8BzE;AAED,wBAAsB,mBAAmB,CACvC,GAAG,GAAE,iBAA0C,GAC9C,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAqB1B;AAED,wBAAsB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAI5C;AAED,wBAAsB,MAAM,CAC1B,GAAG,GAAE,iBAA0C,GAC9C,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAuC1B;AAED,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC"}
1
+ {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../../src/cli/auth/login.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,iBAAiB,EAAwB,MAAM,2BAA2B,CAAC;AACzF,OAAO,EAAE,WAAW,EAAoB,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAQjG,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,WAAW,GAAG,OAAO,CAAC;AAErE,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AASD,wBAAsB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAgB3E;AA8ID,wBAAsB,KAAK,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CA8BzE;AAED,wBAAsB,mBAAmB,CACvC,GAAG,GAAE,iBAA0C,GAC9C,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAqB1B;AAED,wBAAsB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAI5C;AAED,wBAAsB,MAAM,CAC1B,GAAG,GAAE,iBAA0C,GAC9C,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAmD1B;AAED,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC"}
@@ -238,6 +238,17 @@ export async function whoami(env = getEnvironmentConfig()) {
238
238
  console.log();
239
239
  console.log(" " + warning("✗") + " Not logged in");
240
240
  console.log(" " + dim("Run 'veryfront login' to authenticate"));
241
+ // Show provider tokens
242
+ try {
243
+ const { listProviderTokens } = await import("./provider-store.js");
244
+ const providers = await listProviderTokens();
245
+ for (const p of providers) {
246
+ console.log(" " + success("✓") + ` ${p} API key configured`);
247
+ }
248
+ }
249
+ catch {
250
+ // Provider store not available
251
+ }
241
252
  return null;
242
253
  }
243
254
  export { deleteToken, hasToken, readToken, saveToken };
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Provider-namespaced token storage for AI provider API keys.
3
+ *
4
+ * Stores API keys as plaintext with 0600 permissions in
5
+ * ~/.config/veryfront/tokens/<provider>. Same security model
6
+ * as the existing platform token in ~/.config/veryfront/token.
7
+ *
8
+ * @module cli/auth/provider-store
9
+ */
10
+ export type ProviderName = "anthropic" | "openai";
11
+ export interface ProviderCredential {
12
+ apiKey: string;
13
+ validatedAt: string;
14
+ provider: ProviderName;
15
+ }
16
+ export declare function saveProviderToken(provider: ProviderName, credential: ProviderCredential): Promise<void>;
17
+ export declare function readProviderToken(provider: ProviderName): Promise<ProviderCredential | null>;
18
+ export declare function deleteProviderToken(provider: ProviderName): Promise<void>;
19
+ export declare function listProviderTokens(): Promise<ProviderName[]>;
20
+ //# sourceMappingURL=provider-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-store.d.ts","sourceRoot":"","sources":["../../../src/cli/auth/provider-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG,QAAQ,CAAC;AAElD,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,YAAY,CAAC;CACxB;AAUD,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,YAAY,EACtB,UAAU,EAAE,kBAAkB,GAC7B,OAAO,CAAC,IAAI,CAAC,CAOf;AAED,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,YAAY,GACrB,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAQpC;AAED,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,YAAY,GACrB,OAAO,CAAC,IAAI,CAAC,CAOf;AAED,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,CAgBlE"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Provider-namespaced token storage for AI provider API keys.
3
+ *
4
+ * Stores API keys as plaintext with 0600 permissions in
5
+ * ~/.config/veryfront/tokens/<provider>. Same security model
6
+ * as the existing platform token in ~/.config/veryfront/token.
7
+ *
8
+ * @module cli/auth/provider-store
9
+ */
10
+ import { getEnvironmentConfig } from "../../src/config/index.js";
11
+ import { join } from "../../src/platform/compat/path/index.js";
12
+ import { createFileSystem } from "../../src/platform/index.js";
13
+ function getTokenDir() {
14
+ const env = getEnvironmentConfig();
15
+ const configDir = env.xdgConfigHome
16
+ ? join(env.xdgConfigHome, "veryfront")
17
+ : join(env.homeDir, ".config", "veryfront");
18
+ return join(configDir, "tokens");
19
+ }
20
+ export async function saveProviderToken(provider, credential) {
21
+ const fs = createFileSystem();
22
+ const dir = getTokenDir();
23
+ await fs.mkdir(dir, { recursive: true });
24
+ const path = join(dir, provider);
25
+ await fs.writeTextFile(path, JSON.stringify(credential));
26
+ await fs.chmod(path, 0o600);
27
+ }
28
+ export async function readProviderToken(provider) {
29
+ const fs = createFileSystem();
30
+ try {
31
+ const raw = await fs.readTextFile(join(getTokenDir(), provider));
32
+ return JSON.parse(raw);
33
+ }
34
+ catch {
35
+ return null;
36
+ }
37
+ }
38
+ export async function deleteProviderToken(provider) {
39
+ const fs = createFileSystem();
40
+ try {
41
+ await fs.remove(join(getTokenDir(), provider));
42
+ }
43
+ catch {
44
+ // Token doesn't exist — fine
45
+ }
46
+ }
47
+ export async function listProviderTokens() {
48
+ const fs = createFileSystem();
49
+ const providers = [];
50
+ try {
51
+ for await (const entry of fs.readDir(getTokenDir())) {
52
+ if (entry.isFile &&
53
+ (entry.name === "anthropic" || entry.name === "openai")) {
54
+ providers.push(entry.name);
55
+ }
56
+ }
57
+ }
58
+ catch {
59
+ // Directory doesn't exist
60
+ }
61
+ return providers;
62
+ }
@@ -0,0 +1,2 @@
1
+ export declare function loginAnthropic(): Promise<boolean>;
2
+ //# sourceMappingURL=anthropic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../../../src/cli/auth/providers/anthropic.ts"],"names":[],"mappings":"AAKA,wBAAsB,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC,CAwCvD"}
@@ -0,0 +1,37 @@
1
+ import * as dntShim from "../../../_dnt.shims.js";
2
+ import { logError, logSuccess, promptPassword } from "../../utils/index.js";
3
+ import { saveProviderToken } from "../provider-store.js";
4
+ import { dim } from "../../ui/colors.js";
5
+ export async function loginAnthropic() {
6
+ console.log(`\n Enter your Anthropic API key.`);
7
+ console.log(` ${dim("Get one at: https://console.anthropic.com/settings/keys")}\n`);
8
+ const apiKey = promptPassword(" API key: ");
9
+ if (!apiKey) {
10
+ logError("No API key provided.");
11
+ return false;
12
+ }
13
+ try {
14
+ const resp = await dntShim.fetch("https://api.anthropic.com/v1/models", {
15
+ headers: {
16
+ "x-api-key": apiKey,
17
+ "anthropic-version": "2023-06-01",
18
+ },
19
+ });
20
+ if (!resp.ok) {
21
+ logError(`Invalid API key (HTTP ${resp.status}). Check your key at console.anthropic.com`);
22
+ return false;
23
+ }
24
+ }
25
+ catch (e) {
26
+ logError(`Failed to validate key: ${e instanceof Error ? e.message : String(e)}`);
27
+ return false;
28
+ }
29
+ const credential = {
30
+ apiKey,
31
+ validatedAt: new Date().toISOString(),
32
+ provider: "anthropic",
33
+ };
34
+ await saveProviderToken("anthropic", credential);
35
+ logSuccess("Anthropic API key configured");
36
+ return true;
37
+ }
@@ -0,0 +1,2 @@
1
+ export declare function loginOpenAI(baseUrl?: string): Promise<boolean>;
2
+ //# sourceMappingURL=openai.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../../../src/cli/auth/providers/openai.ts"],"names":[],"mappings":"AAKA,wBAAsB,WAAW,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAuCpE"}
@@ -0,0 +1,35 @@
1
+ import * as dntShim from "../../../_dnt.shims.js";
2
+ import { logError, logSuccess, promptPassword } from "../../utils/index.js";
3
+ import { saveProviderToken } from "../provider-store.js";
4
+ import { dim } from "../../ui/colors.js";
5
+ export async function loginOpenAI(baseUrl) {
6
+ console.log(`\n Enter your OpenAI API key.`);
7
+ console.log(` ${dim("Get one at: https://platform.openai.com/api-keys")}\n`);
8
+ const apiKey = promptPassword(" API key: ");
9
+ if (!apiKey) {
10
+ logError("No API key provided.");
11
+ return false;
12
+ }
13
+ const endpoint = baseUrl ?? "https://api.openai.com";
14
+ try {
15
+ const resp = await dntShim.fetch(`${endpoint}/v1/models`, {
16
+ headers: { Authorization: `Bearer ${apiKey}` },
17
+ });
18
+ if (!resp.ok) {
19
+ logError(`Invalid API key (HTTP ${resp.status}). Check your key at platform.openai.com`);
20
+ return false;
21
+ }
22
+ }
23
+ catch (e) {
24
+ logError(`Failed to validate key: ${e instanceof Error ? e.message : String(e)}`);
25
+ return false;
26
+ }
27
+ const credential = {
28
+ apiKey,
29
+ validatedAt: new Date().toISOString(),
30
+ provider: "openai",
31
+ };
32
+ await saveProviderToken("openai", credential);
33
+ logSuccess("OpenAI API key configured");
34
+ return true;
35
+ }
@@ -5,8 +5,13 @@
5
5
  */
6
6
  import type { AuthMethod } from "./login.js";
7
7
  import type { ParsedArgs } from "../shared/types.js";
8
+ import type { ProviderName } from "./provider-store.js";
8
9
  /**
9
10
  * Parse login method from CLI arguments
10
11
  */
11
12
  export declare function parseLoginMethod(args: ParsedArgs): AuthMethod | undefined;
13
+ /**
14
+ * Parse --provider flag from CLI arguments
15
+ */
16
+ export declare function parseProvider(args: ParsedArgs): ProviderName | undefined;
12
17
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/cli/auth/utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,UAAU,GACf,UAAU,GAAG,SAAS,CAMxB"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/cli/auth/utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,UAAU,GACf,UAAU,GAAG,SAAS,CAMxB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,YAAY,GAAG,SAAS,CAIxE"}
@@ -17,3 +17,12 @@ export function parseLoginMethod(args) {
17
17
  return "token";
18
18
  return undefined;
19
19
  }
20
+ /**
21
+ * Parse --provider flag from CLI arguments
22
+ */
23
+ export function parseProvider(args) {
24
+ const provider = args.provider;
25
+ if (provider === "anthropic" || provider === "openai")
26
+ return provider;
27
+ return undefined;
28
+ }
@@ -0,0 +1,3 @@
1
+ import type { CommandHelp } from "../../help/types.js";
2
+ export declare const configHelp: CommandHelp;
3
+ //# sourceMappingURL=command-help.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-help.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/config/command-help.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,eAAO,MAAM,UAAU,EAAE,WAYxB,CAAC"}
@@ -0,0 +1,13 @@
1
+ export const configHelp = {
2
+ name: "config",
3
+ category: "project",
4
+ description: "Show effective project configuration",
5
+ usage: "veryfront config [options]",
6
+ options: [
7
+ { flag: "--json", description: "Output as JSON" },
8
+ ],
9
+ examples: [
10
+ "veryfront config",
11
+ "veryfront config --json",
12
+ ],
13
+ };
@@ -0,0 +1,5 @@
1
+ import type { ParsedArgs } from "../../shared/types.js";
2
+ export declare function detectConfigSource(projectDir: string): Promise<string | null>;
3
+ export declare function getEnvOverrides(): string[];
4
+ export declare function handleConfigCommand(_args: ParsedArgs): Promise<void>;
5
+ //# sourceMappingURL=handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/config/handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAexD,wBAAsB,kBAAkB,CACtC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAexB;AAED,wBAAgB,eAAe,IAAI,MAAM,EAAE,CAM1C;AAED,wBAAsB,mBAAmB,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CA+C1E"}
@@ -0,0 +1,70 @@
1
+ import { cliLogger } from "../../utils/index.js";
2
+ import { getEnv } from "../../../src/platform/index.js";
3
+ import { createSuccessEnvelope, isJsonMode, outputJson } from "../../shared/json-output.js";
4
+ import { bold, dim } from "../../ui/colors.js";
5
+ const ENV_OVERRIDES = {
6
+ projectSlug: "VERYFRONT_PROJECT_SLUG",
7
+ apiBaseUrl: "VERYFRONT_API_BASE_URL",
8
+ apiToken: "VERYFRONT_API_TOKEN",
9
+ nodeEnv: "NODE_ENV",
10
+ veryfrontEnv: "VERYFRONT_ENV",
11
+ debug: "VERYFRONT_DEBUG",
12
+ };
13
+ export async function detectConfigSource(projectDir) {
14
+ const { createFileSystem } = await import("../../../src/platform/index.js");
15
+ const { join } = await import("../../../src/platform/compat/path/index.js");
16
+ const fs = createFileSystem();
17
+ for (const name of [
18
+ "veryfront.config.ts",
19
+ "veryfront.config.js",
20
+ "veryfront.json",
21
+ ]) {
22
+ if (await fs.exists(join(projectDir, name)))
23
+ return name;
24
+ }
25
+ return null;
26
+ }
27
+ export function getEnvOverrides() {
28
+ const overrides = [];
29
+ for (const [field, envVar] of Object.entries(ENV_OVERRIDES)) {
30
+ if (getEnv(envVar))
31
+ overrides.push(`${field} (${envVar})`);
32
+ }
33
+ return overrides;
34
+ }
35
+ export async function handleConfigCommand(_args) {
36
+ const { getEnvironmentConfig } = await import("../../../src/config/index.js");
37
+ const { cwd } = await import("../../../src/platform/index.js");
38
+ const config = getEnvironmentConfig();
39
+ const projectDir = cwd();
40
+ const configSource = await detectConfigSource(projectDir);
41
+ const envOverrides = getEnvOverrides();
42
+ const configData = {
43
+ projectSlug: config.projectSlug ?? null,
44
+ nodeEnv: config.nodeEnv,
45
+ veryfrontEnv: config.veryfrontEnv || null,
46
+ apiBaseUrl: config.apiBaseUrl,
47
+ debug: config.debug,
48
+ ci: config.ci,
49
+ hasApiToken: !!config.apiToken,
50
+ configSource,
51
+ envOverrides,
52
+ };
53
+ if (isJsonMode()) {
54
+ await outputJson(createSuccessEnvelope("config", configData));
55
+ return;
56
+ }
57
+ cliLogger.info(`\n ${bold("Project Configuration")}\n`);
58
+ cliLogger.info(` ${dim("Project slug:")} ${configData.projectSlug ?? "(not set)"}`);
59
+ cliLogger.info(` ${dim("Environment:")} ${configData.nodeEnv}`);
60
+ cliLogger.info(` ${dim("VF Environment:")} ${configData.veryfrontEnv ?? "(not set)"}`);
61
+ cliLogger.info(` ${dim("API endpoint:")} ${configData.apiBaseUrl}`);
62
+ cliLogger.info(` ${dim("Debug:")} ${configData.debug}`);
63
+ cliLogger.info(` ${dim("CI:")} ${configData.ci}`);
64
+ cliLogger.info(` ${dim("Authenticated:")} ${configData.hasApiToken ? "yes" : "no"}`);
65
+ cliLogger.info(` ${dim("Config file:")} ${configData.configSource ?? "(none)"}`);
66
+ if (envOverrides.length > 0) {
67
+ cliLogger.info(` ${dim("Env overrides:")} ${envOverrides.join(", ")}`);
68
+ }
69
+ cliLogger.info("");
70
+ }
@@ -0,0 +1,3 @@
1
+ import type { CommandHelp } from "../../help/types.js";
2
+ export declare const openHelp: CommandHelp;
3
+ //# sourceMappingURL=command-help.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-help.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/open/command-help.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,eAAO,MAAM,QAAQ,EAAE,WAgBtB,CAAC"}
@@ -0,0 +1,17 @@
1
+ export const openHelp = {
2
+ name: "open",
3
+ category: "project",
4
+ description: "Open project URLs in the browser",
5
+ usage: "veryfront open [options]",
6
+ options: [
7
+ { flag: "--env <name>", description: "Open a specific environment URL" },
8
+ { flag: "--studio", description: "Open Veryfront Studio" },
9
+ { flag: "--json", description: "Output URL as JSON instead of opening" },
10
+ ],
11
+ examples: [
12
+ "veryfront open",
13
+ "veryfront open --env staging",
14
+ "veryfront open --studio",
15
+ "veryfront open --json",
16
+ ],
17
+ };
@@ -0,0 +1,14 @@
1
+ import { z } from "zod";
2
+ export declare const OpenArgsSchema: z.ZodObject<{
3
+ env: z.ZodOptional<z.ZodString>;
4
+ studio: z.ZodDefault<z.ZodBoolean>;
5
+ projectSlug: z.ZodOptional<z.ZodString>;
6
+ }, z.core.$strip>;
7
+ export type OpenOptions = z.infer<typeof OpenArgsSchema>;
8
+ export declare const parseOpenArgs: (args: import("../../shared/types.js").ParsedArgs) => import("../../shared/args.js").SafeParseResult<{
9
+ studio: boolean;
10
+ env?: string | undefined;
11
+ projectSlug?: string | undefined;
12
+ }>;
13
+ export declare function buildUrl(projectSlug: string, options: OpenOptions): string;
14
+ //# sourceMappingURL=command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/open/command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,cAAc;;;;iBAIzB,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAEzD,eAAO,MAAM,aAAa;;;;EAIxB,CAAC;AAIH,wBAAgB,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,MAAM,CAQ1E"}
@@ -0,0 +1,22 @@
1
+ import { z } from "zod";
2
+ import { createArgParser } from "../../shared/args.js";
3
+ export const OpenArgsSchema = z.object({
4
+ env: z.string().optional(),
5
+ studio: z.boolean().default(false),
6
+ projectSlug: z.string().optional(),
7
+ });
8
+ export const parseOpenArgs = createArgParser(OpenArgsSchema, {
9
+ env: { keys: ["env"], type: "string" },
10
+ studio: { keys: ["studio"], type: "boolean" },
11
+ projectSlug: { keys: ["project-slug", "project", "p"], type: "string" },
12
+ });
13
+ const DASHBOARD_BASE = "https://veryfront.com";
14
+ export function buildUrl(projectSlug, options) {
15
+ if (options.studio) {
16
+ return `${DASHBOARD_BASE}/studio/${projectSlug}`;
17
+ }
18
+ if (options.env) {
19
+ return `${DASHBOARD_BASE}/projects/${projectSlug}/environments/${options.env}`;
20
+ }
21
+ return `${DASHBOARD_BASE}/projects/${projectSlug}`;
22
+ }
@@ -0,0 +1,3 @@
1
+ import type { ParsedArgs } from "../../shared/types.js";
2
+ export declare function handleOpenCommand(args: ParsedArgs): Promise<void>;
3
+ //# sourceMappingURL=handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/open/handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAMxD,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CA+BvE"}
@@ -0,0 +1,29 @@
1
+ import { parseArgsOrThrow } from "../../shared/args.js";
2
+ import { cliLogger, exitProcess } from "../../utils/index.js";
3
+ import { createSuccessEnvelope, isJsonMode, outputJson } from "../../shared/json-output.js";
4
+ import { buildUrl, parseOpenArgs } from "./command.js";
5
+ export async function handleOpenCommand(args) {
6
+ const opts = parseArgsOrThrow(parseOpenArgs, "open", args);
7
+ let projectSlug = opts.projectSlug;
8
+ if (!projectSlug) {
9
+ const { cwd } = await import("../../../src/platform/index.js");
10
+ const { getEnvironmentConfig } = await import("../../../src/config/index.js");
11
+ const { readConfigFile } = await import("../../shared/config.js");
12
+ projectSlug = getEnvironmentConfig().projectSlug ??
13
+ (await readConfigFile(cwd()))?.projectSlug ??
14
+ undefined;
15
+ }
16
+ if (!projectSlug) {
17
+ cliLogger.error("No project found. Run from a project directory or use --project-slug");
18
+ exitProcess(1);
19
+ return;
20
+ }
21
+ const url = buildUrl(projectSlug, opts);
22
+ if (isJsonMode()) {
23
+ await outputJson(createSuccessEnvelope("open", { url }));
24
+ return;
25
+ }
26
+ const { openBrowser } = await import("../../auth/browser.js");
27
+ await openBrowser(url);
28
+ console.log(` Opening ${url}`);
29
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"command-definitions.d.ts","sourceRoot":"","sources":["../../../src/cli/help/command-definitions.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAuClD;;;GAGG;AACH,eAAO,MAAM,QAAQ,EAAE,eAqCtB,CAAC"}
1
+ {"version":3,"file":"command-definitions.d.ts","sourceRoot":"","sources":["../../../src/cli/help/command-definitions.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAyClD;;;GAGG;AACH,eAAO,MAAM,QAAQ,EAAE,eAuCtB,CAAC"}
@@ -39,6 +39,8 @@ import { schemaHelp } from "../commands/schema/command-help.js";
39
39
  import { testHelp } from "../commands/test/command-help.js";
40
40
  import { lintHelp } from "../commands/lint/command-help.js";
41
41
  import { skillsHelp } from "../commands/skills/command-help.js";
42
+ import { configHelp } from "../commands/config/command-help.js";
43
+ import { openHelp } from "../commands/open/command-help.js";
42
44
  import { completionsHelp } from "../commands/completions/command-help.js";
43
45
  /**
44
46
  * Central registry of all command help definitions.
@@ -80,5 +82,7 @@ export const COMMANDS = {
80
82
  test: testHelp,
81
83
  lint: lintHelp,
82
84
  skills: skillsHelp,
85
+ config: configHelp,
86
+ open: openHelp,
83
87
  completions: completionsHelp,
84
88
  };
@@ -1 +1 @@
1
- {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/cli/router.ts"],"names":[],"mappings":"AAwDA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAiEpD;;;;GAIG;AACH,wBAAsB,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CA0FlE"}
1
+ {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/cli/router.ts"],"names":[],"mappings":"AA0DA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AA0FpD;;;;GAIG;AACH,wBAAsB,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CA0FlE"}
package/esm/cli/router.js CHANGED
@@ -38,6 +38,8 @@ import { handleSchemaCommand } from "./commands/schema/handler.js";
38
38
  import { handleTestCommand } from "./commands/test/handler.js";
39
39
  import { handleLintCommand } from "./commands/lint/handler.js";
40
40
  import { handleSkillsCommand } from "./commands/skills/handler.js";
41
+ import { handleConfigCommand } from "./commands/config/handler.js";
42
+ import { handleOpenCommand } from "./commands/open/handler.js";
41
43
  import { handleCompletionsCommand } from "./commands/completions/handler.js";
42
44
  import { login, logout, whoami } from "./auth/index.js";
43
45
  import { parseLoginMethod } from "./auth/utils.js";
@@ -74,9 +76,30 @@ const commands = {
74
76
  "deploy": handleDeployCommand,
75
77
  "up": handleUpCommand,
76
78
  "login": async (args) => {
79
+ const { parseProvider } = await import("./auth/utils.js");
80
+ const provider = parseProvider(args);
81
+ if (provider === "anthropic") {
82
+ const { loginAnthropic } = await import("./auth/providers/anthropic.js");
83
+ await loginAnthropic();
84
+ return;
85
+ }
86
+ if (provider === "openai") {
87
+ const { loginOpenAI } = await import("./auth/providers/openai.js");
88
+ await loginOpenAI(args["base-url"]);
89
+ return;
90
+ }
77
91
  await login(parseLoginMethod(args));
78
92
  },
79
- "logout": async () => {
93
+ "logout": async (args) => {
94
+ const { parseProvider } = await import("./auth/utils.js");
95
+ const provider = parseProvider(args);
96
+ if (provider) {
97
+ const { deleteProviderToken } = await import("./auth/provider-store.js");
98
+ await deleteProviderToken(provider);
99
+ const { logSuccess } = await import("./utils/index.js");
100
+ logSuccess(`${provider} API key removed`);
101
+ return;
102
+ }
80
103
  await logout();
81
104
  },
82
105
  "whoami": async () => {
@@ -95,6 +118,8 @@ const commands = {
95
118
  "test": handleTestCommand,
96
119
  "lint": handleLintCommand,
97
120
  "skills": handleSkillsCommand,
121
+ "config": handleConfigCommand,
122
+ "open": handleOpenCommand,
98
123
  "completions": handleCompletionsCommand,
99
124
  };
100
125
  /**
package/esm/deno.js CHANGED
@@ -1,6 +1,6 @@
1
1
  export default {
2
2
  "name": "veryfront",
3
- "version": "0.1.129",
3
+ "version": "0.1.131",
4
4
  "license": "Apache-2.0",
5
5
  "nodeModulesDir": "auto",
6
6
  "exclude": [
@@ -148,13 +148,13 @@ function resolveAgentSkills(agent) {
148
148
  }))
149
149
  .sort((left, right) => left.name.localeCompare(right.name));
150
150
  }
151
- function getRuntimeAgentMetadata(agent) {
151
+ function getRuntimeAgentMetadata(id, agent) {
152
152
  const rawConfig = agent.config;
153
153
  return RuntimeAgentSchema.parse({
154
- id: agent.id,
154
+ id,
155
155
  name: typeof rawConfig.name === "string" && rawConfig.name.trim().length > 0
156
156
  ? rawConfig.name
157
- : agent.id,
157
+ : id,
158
158
  description: typeof rawConfig.description === "string" ? rawConfig.description : null,
159
159
  model: agent.config.model ?? null,
160
160
  version: typeof rawConfig.version === "string" ? rawConfig.version : null,
@@ -164,9 +164,9 @@ function getRuntimeAgentMetadata(agent) {
164
164
  export async function listRuntimeAgents(ctx, deps) {
165
165
  await deps.ensureProjectDiscovery(ctx);
166
166
  const agents = deps.getAllAgentIds()
167
- .map((id) => deps.getAgent(id))
168
- .filter((agent) => Boolean(agent))
169
- .map(getRuntimeAgentMetadata)
167
+ .map((id) => ({ id, agent: deps.getAgent(id) }))
168
+ .filter((entry) => Boolean(entry.agent))
169
+ .map(({ id, agent }) => getRuntimeAgentMetadata(id, agent))
170
170
  .sort((left, right) => left.name.localeCompare(right.name));
171
171
  return RuntimeAgentListResponseSchema.parse({ agents });
172
172
  }
@@ -1 +1 @@
1
- {"version":3,"file":"agent-handler.d.ts","sourceRoot":"","sources":["../../../../src/src/discovery/handlers/agent-handler.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAGpD,eAAO,MAAM,YAAY,EAAE,gBAAgB,CAAC,KAAK,CAWhD,CAAC"}
1
+ {"version":3,"file":"agent-handler.d.ts","sourceRoot":"","sources":["../../../../src/src/discovery/handlers/agent-handler.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAGlD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAGpD,eAAO,MAAM,YAAY,EAAE,gBAAgB,CAAC,KAAK,CAmBhD,CAAC"}
@@ -2,12 +2,21 @@
2
2
  * Agent Discovery Handler
3
3
  */
4
4
  import { registerAgent } from "../../agent/index.js";
5
+ import { agentRegistry } from "../../agent/composition/index.js";
5
6
  import { filenameToId, trackAgentPath } from "../discovery-utils.js";
6
7
  export const agentHandler = {
7
8
  typeName: "agent",
8
9
  validate: (item) => item !== null && typeof item === "object" && typeof item.generate === "function",
9
- getId: (agent, file) => agent.id || filenameToId(file),
10
+ getId: (agent, file) => {
11
+ const configuredId = agent.config.id;
12
+ return typeof configuredId === "string" && configuredId.trim().length > 0
13
+ ? configuredId
14
+ : filenameToId(file);
15
+ },
10
16
  register: (id, agent, file) => {
17
+ if (agent.id !== id) {
18
+ agentRegistry.delete(agent.id);
19
+ }
11
20
  registerAgent(id, agent);
12
21
  trackAgentPath(id, file);
13
22
  return agent;
@@ -1,5 +1,6 @@
1
1
  import type { FileInfo } from "../adapters/base.js";
2
2
  export declare const FRAMEWORK_ROOT: string;
3
+ export declare const FRAMEWORK_SRC_DIR: string;
3
4
  export declare const FRAMEWORK_EMBEDDED_SRC_DIR: string;
4
5
  export declare const DEFAULT_FRAMEWORK_SOURCE_EXTENSIONS: readonly [".tsx.src", ".ts.src", ".jsx.src", ".js.src", ".mdx.src", ".md.src", ".tsx", ".ts", ".jsx", ".js", ".mdx", ".md"];
5
6
  export interface FrameworkSourceFileSystem {
@@ -15,6 +16,13 @@ export interface ResolveFrameworkSourcePathOptions {
15
16
  extensions?: readonly string[];
16
17
  includeIndexFallback?: boolean;
17
18
  }
19
+ export interface ResolveRelativeFrameworkSourceImportOptions {
20
+ fileSystem?: FrameworkSourceFileSystem;
21
+ exists?: (path: string) => Promise<boolean>;
22
+ extensions?: readonly string[];
23
+ }
18
24
  export declare function getFrameworkSourceLookupDirs(extraLookupDirs?: string[]): string[];
25
+ export declare function isFrameworkSourcePath(path: string): boolean;
19
26
  export declare function resolveFrameworkSourcePath(relativePathWithoutExt: string, options?: ResolveFrameworkSourcePathOptions): Promise<FrameworkSourceLookupResult | null>;
27
+ export declare function resolveRelativeFrameworkSourceImport(specifier: string, fromSourcePath: string, options?: ResolveRelativeFrameworkSourceImportOptions): Promise<string | null>;
20
28
  //# sourceMappingURL=framework-source-resolver.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"framework-source-resolver.d.ts","sourceRoot":"","sources":["../../../../src/src/platform/compat/framework-source-resolver.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAIpD,eAAO,MAAM,cAAc,QAA4C,CAAC;AACxE,eAAO,MAAM,0BAA0B,QAAgD,CAAC;AAExF,eAAO,MAAM,mCAAmC,6HAatC,CAAC;AAEX,MAAM,WAAW,yBAAyB;IACxC,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;CACvC;AAED,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iCAAiC;IAChD,UAAU,CAAC,EAAE,yBAAyB,CAAC;IACvC,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,wBAAgB,4BAA4B,CAAC,eAAe,GAAE,MAAM,EAAO,GAAG,MAAM,EAAE,CAarF;AAED,wBAAsB,0BAA0B,CAC9C,sBAAsB,EAAE,MAAM,EAC9B,OAAO,GAAE,iCAAsC,GAC9C,OAAO,CAAC,2BAA2B,GAAG,IAAI,CAAC,CA+B7C"}
1
+ {"version":3,"file":"framework-source-resolver.d.ts","sourceRoot":"","sources":["../../../../src/src/platform/compat/framework-source-resolver.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAIpD,eAAO,MAAM,cAAc,QAA4C,CAAC;AACxE,eAAO,MAAM,iBAAiB,QAA8B,CAAC;AAC7D,eAAO,MAAM,0BAA0B,QAAgD,CAAC;AAExF,eAAO,MAAM,mCAAmC,6HAatC,CAAC;AAEX,MAAM,WAAW,yBAAyB;IACxC,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;CACvC;AAED,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iCAAiC;IAChD,UAAU,CAAC,EAAE,yBAAyB,CAAC;IACvC,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,MAAM,WAAW,2CAA2C;IAC1D,UAAU,CAAC,EAAE,yBAAyB,CAAC;IACvC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5C,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAChC;AAED,wBAAgB,4BAA4B,CAAC,eAAe,GAAE,MAAM,EAAO,GAAG,MAAM,EAAE,CAarF;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAG3D;AAuCD,wBAAsB,0BAA0B,CAC9C,sBAAsB,EAAE,MAAM,EAC9B,OAAO,GAAE,iCAAsC,GAC9C,OAAO,CAAC,2BAA2B,GAAG,IAAI,CAAC,CA+B7C;AAED,wBAAsB,oCAAoC,CACxD,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,MAAM,EACtB,OAAO,GAAE,2CAAgD,GACxD,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA6CxB"}