opencode-antigravity-auth 1.0.7 → 1.1.0

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.
@@ -0,0 +1,47 @@
1
+ import { promises as fs } from "node:fs";
2
+ import { dirname, join } from "node:path";
3
+ import { homedir } from "node:os";
4
+ function getConfigDir() {
5
+ const platform = process.platform;
6
+ if (platform === "win32") {
7
+ return join(process.env.APPDATA || join(homedir(), "AppData", "Roaming"), "opencode");
8
+ }
9
+ const xdgConfig = process.env.XDG_CONFIG_HOME || join(homedir(), ".config");
10
+ return join(xdgConfig, "opencode");
11
+ }
12
+ export function getStoragePath() {
13
+ return join(getConfigDir(), "antigravity-accounts.json");
14
+ }
15
+ export async function loadAccounts() {
16
+ try {
17
+ const path = getStoragePath();
18
+ const content = await fs.readFile(path, "utf-8");
19
+ const parsed = JSON.parse(content);
20
+ if (parsed.version !== 1 || !Array.isArray(parsed.accounts)) {
21
+ console.warn("[opencode-antigravity-auth] Invalid account storage format, ignoring");
22
+ return null;
23
+ }
24
+ return {
25
+ version: 1,
26
+ accounts: parsed.accounts.filter((a) => {
27
+ return !!a && typeof a === "object" && typeof a.refreshToken === "string";
28
+ }),
29
+ activeIndex: typeof parsed.activeIndex === "number" && Number.isFinite(parsed.activeIndex) ? parsed.activeIndex : 0,
30
+ };
31
+ }
32
+ catch (error) {
33
+ const code = error.code;
34
+ if (code === "ENOENT") {
35
+ return null;
36
+ }
37
+ console.error("[opencode-antigravity-auth] Failed to load account storage:", error);
38
+ return null;
39
+ }
40
+ }
41
+ export async function saveAccounts(storage) {
42
+ const path = getStoragePath();
43
+ await fs.mkdir(dirname(path), { recursive: true });
44
+ const content = JSON.stringify(storage, null, 2);
45
+ await fs.writeFile(path, content, "utf-8");
46
+ }
47
+ //# sourceMappingURL=storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../../src/plugin/storage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAwBlC,SAAS,YAAY;IACnB,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAClC,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,UAAU,CAAC,CAAC;IACxF,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;IAC5E,OAAO,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,OAAO,IAAI,CAAC,YAAY,EAAE,EAAE,2BAA2B,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,cAAc,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAA4B,CAAC;QAE9D,IAAI,MAAM,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5D,OAAO,CAAC,IAAI,CAAC,sEAAsE,CAAC,CAAC;YACrF,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO;YACL,OAAO,EAAE,CAAC;YACV,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAwB,EAAE;gBAC3D,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAQ,CAAqB,CAAC,YAAY,KAAK,QAAQ,CAAC;YACjG,CAAC,CAAC;YACF,WAAW,EAAE,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;SACpH,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,GAAI,KAA+B,CAAC,IAAI,CAAC;QACnD,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,6DAA6D,EAAE,KAAK,CAAC,CAAC;QACpF,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,OAAuB;IACxD,MAAM,IAAI,GAAG,cAAc,EAAE,CAAC;IAC9B,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEnD,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACjD,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAC7C,CAAC"}
@@ -1,4 +1,17 @@
1
1
  import type { OAuthAuthDetails, PluginClient } from "./types";
2
+ export declare class AntigravityTokenRefreshError extends Error {
3
+ code?: string;
4
+ description?: string;
5
+ status: number;
6
+ statusText: string;
7
+ constructor(options: {
8
+ message: string;
9
+ code?: string;
10
+ description?: string;
11
+ status: number;
12
+ statusText: string;
13
+ });
14
+ }
2
15
  /**
3
16
  * Refreshes an Antigravity OAuth access token, updates persisted credentials, and handles revocation.
4
17
  */
@@ -1 +1 @@
1
- {"version":3,"file":"token.d.ts","sourceRoot":"","sources":["../../../src/plugin/token.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAgB,MAAM,SAAS,CAAC;AAoD5E;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,gBAAgB,EACtB,MAAM,EAAE,YAAY,EACpB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CA+FvC"}
1
+ {"version":3,"file":"token.d.ts","sourceRoot":"","sources":["../../../src/plugin/token.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAgB,MAAM,SAAS,CAAC;AAoD5E,qBAAa,4BAA6B,SAAQ,KAAK;IACrD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;gBAEP,OAAO,EAAE;QACnB,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;KACpB;CAQF;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,gBAAgB,EACtB,MAAM,EAAE,YAAY,EACpB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAiFvC"}
@@ -1,4 +1,4 @@
1
- import { ANTIGRAVITY_CLIENT_ID, ANTIGRAVITY_CLIENT_SECRET, ANTIGRAVITY_PROVIDER_ID, } from "../constants";
1
+ import { ANTIGRAVITY_CLIENT_ID, ANTIGRAVITY_CLIENT_SECRET } from "../constants";
2
2
  import { formatRefreshParts, parseRefreshParts } from "./auth";
3
3
  import { clearCachedAuth, storeCachedAuth } from "./cache";
4
4
  import { invalidateProjectContextCache } from "./project";
@@ -37,6 +37,20 @@ function parseOAuthErrorPayload(text) {
37
37
  return { description: text };
38
38
  }
39
39
  }
40
+ export class AntigravityTokenRefreshError extends Error {
41
+ code;
42
+ description;
43
+ status;
44
+ statusText;
45
+ constructor(options) {
46
+ super(options.message);
47
+ this.name = "AntigravityTokenRefreshError";
48
+ this.code = options.code;
49
+ this.description = options.description;
50
+ this.status = options.status;
51
+ this.statusText = options.statusText;
52
+ }
53
+ }
40
54
  /**
41
55
  * Refreshes an Antigravity OAuth access token, updates persisted credentials, and handles revocation.
42
56
  */
@@ -69,29 +83,20 @@ export async function refreshAccessToken(auth, client, providerId) {
69
83
  const { code, description } = parseOAuthErrorPayload(errorText);
70
84
  const details = [code, description ?? errorText].filter(Boolean).join(": ");
71
85
  const baseMessage = `Antigravity token refresh failed (${response.status} ${response.statusText})`;
72
- console.warn(`[Antigravity OAuth] ${details ? `${baseMessage} - ${details}` : baseMessage}`);
86
+ const message = details ? `${baseMessage} - ${details}` : baseMessage;
87
+ console.warn(`[Antigravity OAuth] ${message}`);
73
88
  if (code === "invalid_grant") {
74
- console.warn("[Antigravity OAuth] Google revoked the stored refresh token. Run `opencode auth login` and reauthenticate the Google provider.");
89
+ console.warn("[Antigravity OAuth] Google revoked the stored refresh token for this account. Reauthenticate it via `opencode auth login`.");
75
90
  invalidateProjectContextCache(auth.refresh);
76
- try {
77
- const clearedAuth = {
78
- type: "oauth",
79
- refresh: formatRefreshParts({
80
- refreshToken: "",
81
- projectId: parts.projectId,
82
- managedProjectId: parts.managedProjectId,
83
- }),
84
- };
85
- await client.auth.set({
86
- path: { id: providerId },
87
- body: clearedAuth,
88
- });
89
- }
90
- catch (storeError) {
91
- console.error("Failed to clear stored Antigravity OAuth credentials:", storeError);
92
- }
91
+ clearCachedAuth(auth.refresh);
93
92
  }
94
- return undefined;
93
+ throw new AntigravityTokenRefreshError({
94
+ message,
95
+ code,
96
+ description: description ?? errorText,
97
+ status: response.status,
98
+ statusText: response.statusText,
99
+ });
95
100
  }
96
101
  const payload = (await response.json());
97
102
  const refreshedParts = {
@@ -107,18 +112,12 @@ export async function refreshAccessToken(auth, client, providerId) {
107
112
  };
108
113
  storeCachedAuth(updatedAuth);
109
114
  invalidateProjectContextCache(auth.refresh);
110
- try {
111
- await client.auth.set({
112
- path: { id: providerId },
113
- body: updatedAuth,
114
- });
115
- }
116
- catch (storeError) {
117
- console.error("Failed to persist refreshed Antigravity OAuth credentials:", storeError);
118
- }
119
115
  return updatedAuth;
120
116
  }
121
117
  catch (error) {
118
+ if (error instanceof AntigravityTokenRefreshError) {
119
+ throw error;
120
+ }
122
121
  console.error("Failed to refresh Antigravity access token due to an unexpected error:", error);
123
122
  return undefined;
124
123
  }
@@ -1 +1 @@
1
- {"version":3,"file":"token.js","sourceRoot":"","sources":["../../../src/plugin/token.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"token.js","sourceRoot":"","sources":["../../../src/plugin/token.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { beforeEach, describe, expect, it, vi } from "vitest";
2
2
  import { ANTIGRAVITY_PROVIDER_ID } from "../constants";
3
- import { refreshAccessToken } from "./token";
3
+ import { AntigravityTokenRefreshError, refreshAccessToken } from "./token";
4
4
  const baseAuth = {
5
5
  type: "oauth",
6
6
  refresh: "refresh-token|project-123",
@@ -18,7 +18,7 @@ describe("refreshAccessToken", () => {
18
18
  beforeEach(() => {
19
19
  vi.restoreAllMocks();
20
20
  });
21
- it("updates the caller and persists when refresh token is unchanged", async () => {
21
+ it("updates the caller when refresh token is unchanged", async () => {
22
22
  const client = createClient();
23
23
  const fetchMock = vi.fn(async () => {
24
24
  return new Response(JSON.stringify({
@@ -29,9 +29,9 @@ describe("refreshAccessToken", () => {
29
29
  global.fetch = fetchMock;
30
30
  const result = await refreshAccessToken(baseAuth, client, ANTIGRAVITY_PROVIDER_ID);
31
31
  expect(result?.access).toBe("new-access");
32
- expect(client.auth.set.mock.calls.length).toBe(1);
32
+ expect(client.auth.set.mock.calls.length).toBe(0);
33
33
  });
34
- it("persists when Google rotates the refresh token", async () => {
34
+ it("handles Google refresh token rotation", async () => {
35
35
  const client = createClient();
36
36
  const fetchMock = vi.fn(async () => {
37
37
  return new Response(JSON.stringify({
@@ -43,13 +43,21 @@ describe("refreshAccessToken", () => {
43
43
  global.fetch = fetchMock;
44
44
  const result = await refreshAccessToken(baseAuth, client, ANTIGRAVITY_PROVIDER_ID);
45
45
  expect(result?.access).toBe("next-access");
46
- expect(client.auth.set.mock.calls.length).toBe(1);
47
- expect(client.auth.set.mock.calls[0]?.[0]).toEqual({
48
- path: { id: ANTIGRAVITY_PROVIDER_ID },
49
- body: expect.objectContaining({
50
- type: "oauth",
51
- refresh: expect.stringContaining("rotated-token"),
52
- }),
46
+ expect(result?.refresh).toContain("rotated-token");
47
+ expect(client.auth.set.mock.calls.length).toBe(0);
48
+ });
49
+ it("throws a typed error on invalid_grant", async () => {
50
+ const client = createClient();
51
+ const fetchMock = vi.fn(async () => {
52
+ return new Response(JSON.stringify({
53
+ error: "invalid_grant",
54
+ error_description: "Refresh token revoked",
55
+ }), { status: 400, statusText: "Bad Request" });
56
+ });
57
+ global.fetch = fetchMock;
58
+ await expect(refreshAccessToken(baseAuth, client, ANTIGRAVITY_PROVIDER_ID)).rejects.toMatchObject({
59
+ name: "AntigravityTokenRefreshError",
60
+ code: "invalid_grant",
53
61
  });
54
62
  });
55
63
  });
@@ -1 +1 @@
1
- {"version":3,"file":"token.test.js","sourceRoot":"","sources":["../../../src/plugin/token.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"token.test.js","sourceRoot":"","sources":["../../../src/plugin/token.test.ts"],"names":[],"mappings":"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"}
@@ -25,16 +25,40 @@ export interface LoaderResult {
25
25
  apiKey: string;
26
26
  fetch(input: RequestInfo, init?: RequestInit): Promise<Response>;
27
27
  }
28
+ export type AuthPrompt = {
29
+ type: "text";
30
+ key: string;
31
+ message: string;
32
+ placeholder?: string;
33
+ validate?: (value: string) => string | undefined;
34
+ condition?: (inputs: Record<string, string>) => boolean;
35
+ } | {
36
+ type: "select";
37
+ key: string;
38
+ message: string;
39
+ options: Array<{
40
+ label: string;
41
+ value: string;
42
+ hint?: string;
43
+ }>;
44
+ condition?: (inputs: Record<string, string>) => boolean;
45
+ };
46
+ export type OAuthAuthorizationResult = {
47
+ url: string;
48
+ instructions: string;
49
+ } & ({
50
+ method: "auto";
51
+ callback: () => Promise<AntigravityTokenExchangeResult>;
52
+ } | {
53
+ method: "code";
54
+ callback: (code: string) => Promise<AntigravityTokenExchangeResult>;
55
+ });
28
56
  export interface AuthMethod {
29
57
  provider?: string;
30
58
  label: string;
31
59
  type: "oauth" | "api";
32
- authorize?: () => Promise<{
33
- url: string;
34
- instructions: string;
35
- method: string;
36
- callback: (callbackUrl: string) => Promise<AntigravityTokenExchangeResult>;
37
- }>;
60
+ prompts?: AuthPrompt[];
61
+ authorize?: (inputs?: Record<string, string>) => Promise<OAuthAuthorizationResult>;
38
62
  }
39
63
  export interface PluginClient {
40
64
  auth: {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/plugin/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,sBAAsB,CAAC;AAE3E,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,MAAM,WAAW,GAAG,gBAAgB,GAAG,mBAAmB,CAAC;AAEjE,MAAM,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,CAAC;AAEjD,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE;QACL,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,QAAQ;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;CACxC;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;CAClE;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,OAAO,GAAG,KAAK,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,OAAO,CAAC;QACxB,GAAG,EAAE,MAAM,CAAC;QACZ,YAAY,EAAE,MAAM,CAAC;QACrB,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,8BAA8B,CAAC,CAAC;KAC5E,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE;QACJ,GAAG,CAAC,KAAK,EAAE;YAAE,IAAI,EAAE;gBAAE,EAAE,EAAE,MAAM,CAAA;aAAE,CAAC;YAAC,IAAI,EAAE,gBAAgB,CAAA;SAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;KAC7E,CAAC;CACH;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,YAAY,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE;QACJ,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,KAAK,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;QAC/E,OAAO,EAAE,UAAU,EAAE,CAAC;KACvB,CAAC;CACH;AAED,MAAM,WAAW,YAAY;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,gBAAgB,CAAC;IACvB,kBAAkB,EAAE,MAAM,CAAC;CAC5B"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/plugin/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../src/plugin.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAGV,aAAa,EACb,YAAY,EAGb,MAAM,gBAAgB,CAAC;AAExB;;GAEG;AACH,eAAO,MAAM,uBAAuB,GAAI,YAAY,MAAM,MACxD,YAAY,aAAa,KACxB,OAAO,CAAC,YAAY,CA6SrB,CAAC;AAEH,eAAO,MAAM,yBAAyB,eAhTxB,aAAa,KACxB,OAAO,CAAC,YAAY,CA+SkE,CAAC;AAC1F,eAAO,MAAM,iBAAiB,eAjThB,aAAa,KACxB,OAAO,CAAC,YAAY,CAgTmC,CAAC"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../src/plugin.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAGV,aAAa,EACb,YAAY,EAGb,MAAM,gBAAgB,CAAC;AAiLxB;;GAEG;AACH,eAAO,MAAM,uBAAuB,GAAI,YAAY,MAAM,MACxD,YAAY,aAAa,KACxB,OAAO,CAAC,YAAY,CAofrB,CAAC;AAEH,eAAO,MAAM,yBAAyB,eAvfxB,aAAa,KACxB,OAAO,CAAC,YAAY,CAsfkE,CAAC;AAC1F,eAAO,MAAM,iBAAiB,eAxfhB,aAAa,KACxB,OAAO,CAAC,YAAY,CAufmC,CAAC"}