@hardlydifficult/repo-processor 1.0.140 → 1.0.142

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.
@@ -1,37 +1,4 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
36
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
37
4
  };
@@ -40,67 +7,72 @@ exports.GitYamlStore = void 0;
40
7
  const promises_1 = require("node:fs/promises");
41
8
  const node_path_1 = __importDefault(require("node:path"));
42
9
  const text_1 = require("@hardlydifficult/text");
10
+ const simple_git_1 = require("simple-git");
43
11
  const yaml_1 = require("yaml");
44
- /**
45
- * A ProcessorStore implementation that persists results as YAML files
46
- * in a git repository.
47
- *
48
- * File results are stored at `<resultDir>/<filePath>.yml`.
49
- * Directory results are stored at `<resultDir>/<dirPath>/dir.yml`.
50
- * Each YAML file includes a `sha` field for change detection.
51
- */
12
+ function normalizeResult(result, sha) {
13
+ if (result !== null && typeof result === "object" && !Array.isArray(result)) {
14
+ return { ...result, sha };
15
+ }
16
+ return { value: result, sha };
17
+ }
18
+ /** Persists file and directory processing results as YAML in a Git repo. */
52
19
  class GitYamlStore {
53
- localPath;
20
+ sourceRepo;
54
21
  cloneUrl;
22
+ localPath;
23
+ root;
55
24
  authToken;
56
- resultDir;
57
- gitUser;
25
+ requestedBranch;
26
+ configuredGitUser;
58
27
  initialized = false;
28
+ activeBranch;
29
+ gitUser;
59
30
  constructor(config) {
60
- this.cloneUrl = config.cloneUrl;
31
+ this.sourceRepo = config.sourceRepo;
32
+ this.cloneUrl = `https://github.com/${config.resultsRepo.fullName}.git`;
61
33
  this.localPath = config.localPath;
62
- this.resultDir = config.resultDir;
63
- this.authToken = config.authToken ?? process.env.GITHUB_TOKEN;
64
- this.gitUser = config.gitUser;
34
+ this.root = config.root;
35
+ this.authToken = config.authToken;
36
+ this.requestedBranch = config.branch;
37
+ this.configuredGitUser = config.gitUser;
65
38
  }
66
- // ---------------------------------------------------------------------------
67
- // ProcessorStore implementation
68
- // ---------------------------------------------------------------------------
69
39
  async ensureReady() {
70
40
  if (this.initialized) {
71
41
  return;
72
42
  }
73
- const { simpleGit } = await Promise.resolve().then(() => __importStar(require("simple-git")));
74
- const exists = await (0, promises_1.stat)(node_path_1.default.join(this.localPath, ".git")).catch(() => null);
75
- if (exists) {
76
- const git = simpleGit(this.localPath);
77
- try {
78
- await git.pull("origin", "main");
79
- }
80
- catch {
81
- // Pull failed (e.g. offline), continue with local state
82
- }
83
- }
84
- else {
43
+ const gitDir = node_path_1.default.join(this.localPath, ".git");
44
+ const hasClone = await (0, promises_1.stat)(gitDir)
45
+ .then(() => true)
46
+ .catch(() => false);
47
+ if (!hasClone) {
85
48
  await (0, promises_1.mkdir)(node_path_1.default.dirname(this.localPath), { recursive: true });
86
- const git = simpleGit();
87
- await git.clone(this.getAuthenticatedUrl(), this.localPath);
49
+ await (0, simple_git_1.simpleGit)().clone(this.getAuthenticatedUrl(), this.localPath);
88
50
  }
51
+ const git = (0, simple_git_1.simpleGit)(this.localPath);
52
+ this.activeBranch = await this.resolveBranch(git);
53
+ await this.checkoutBranch(git, this.activeBranch);
54
+ try {
55
+ await git.pull("origin", this.activeBranch);
56
+ }
57
+ catch {
58
+ // Pull can fail offline or when the branch has no remote tracking yet.
59
+ }
60
+ this.gitUser = await this.resolveGitUser(git);
89
61
  this.initialized = true;
90
62
  }
91
- async getFileManifest(owner, repo) {
92
- const dir = this.getResultDir(owner, repo);
63
+ async getFileManifest() {
64
+ const dir = this.getResultDir();
93
65
  const manifest = {};
94
66
  try {
95
67
  await this.walkDir(dir, dir, manifest);
96
68
  }
97
69
  catch {
98
- // Directory doesn't exist yet, return empty manifest
70
+ // First run: no results yet.
99
71
  }
100
72
  return manifest;
101
73
  }
102
- async getDirSha(owner, repo, dirPath) {
103
- const filePath = node_path_1.default.join(this.getResultDir(owner, repo), dirPath, "dir.yml");
74
+ async getDirSha(dirPath) {
75
+ const filePath = node_path_1.default.join(this.getResultDir(), dirPath, "dir.yml");
104
76
  try {
105
77
  const content = await (0, promises_1.readFile)(filePath, "utf-8");
106
78
  const parsed = (0, yaml_1.parse)(content);
@@ -110,70 +82,64 @@ class GitYamlStore {
110
82
  return null;
111
83
  }
112
84
  }
113
- async writeFileResult(owner, repo, filePath, sha, result) {
114
- const data = { ...result, sha };
115
- const yamlContent = (0, text_1.formatYaml)(data);
116
- const fullPath = node_path_1.default.join(this.getResultDir(owner, repo), `${filePath}.yml`);
85
+ async writeFileResult(filePath, sha, result) {
86
+ const fullPath = node_path_1.default.join(this.getResultDir(), `${filePath}.yml`);
117
87
  await (0, promises_1.mkdir)(node_path_1.default.dirname(fullPath), { recursive: true });
118
- await (0, promises_1.writeFile)(fullPath, yamlContent, "utf-8");
88
+ await (0, promises_1.writeFile)(fullPath, (0, text_1.formatYaml)(normalizeResult(result, sha)), "utf-8");
119
89
  }
120
- async writeDirResult(owner, repo, dirPath, sha, result) {
121
- const data = { ...result, sha };
122
- const yamlContent = (0, text_1.formatYaml)(data);
123
- const fullPath = node_path_1.default.join(this.getResultDir(owner, repo), dirPath, "dir.yml");
90
+ async writeDirResult(dirPath, sha, result) {
91
+ const fullPath = node_path_1.default.join(this.getResultDir(), dirPath, "dir.yml");
124
92
  await (0, promises_1.mkdir)(node_path_1.default.dirname(fullPath), { recursive: true });
125
- await (0, promises_1.writeFile)(fullPath, yamlContent, "utf-8");
93
+ await (0, promises_1.writeFile)(fullPath, (0, text_1.formatYaml)(normalizeResult(result, sha)), "utf-8");
126
94
  }
127
- async deleteFileResult(owner, repo, filePath) {
128
- const fullPath = node_path_1.default.join(this.getResultDir(owner, repo), `${filePath}.yml`);
95
+ async deleteFileResult(filePath) {
96
+ const fullPath = node_path_1.default.join(this.getResultDir(), `${filePath}.yml`);
129
97
  await (0, promises_1.rm)(fullPath, { force: true });
130
98
  }
131
- async commitBatch(owner, repo, filesChanged) {
132
- const { simpleGit } = await Promise.resolve().then(() => __importStar(require("simple-git")));
133
- const git = simpleGit(this.localPath);
134
- await git.addConfig("user.email", this.gitUser.email);
135
- await git.addConfig("user.name", this.gitUser.name);
99
+ async commitBatch(sourceRepo, count) {
100
+ await this.ensureReady();
101
+ const git = (0, simple_git_1.simpleGit)(this.localPath);
136
102
  const status = await git.status();
137
103
  if (status.files.length === 0) {
138
104
  return;
139
105
  }
106
+ const { gitUser } = this;
107
+ const branch = this.activeBranch;
108
+ if (gitUser === undefined || branch === undefined) {
109
+ throw new Error("Git results store was not initialized correctly");
110
+ }
111
+ await git.addConfig("user.email", gitUser.email);
112
+ await git.addConfig("user.name", gitUser.name);
140
113
  await git.add("-A");
141
- const message = `Update results for ${owner}/${repo} (${String(filesChanged)} files)`;
114
+ const message = `Update results for ${sourceRepo} (${String(count)} files)`;
142
115
  await git.commit(message);
143
116
  for (let attempt = 0; attempt < 3; attempt++) {
144
117
  try {
145
- await git.push("origin", "main");
118
+ await git.push("origin", branch);
146
119
  return;
147
120
  }
148
121
  catch (pushError) {
149
- const errorMsg = pushError instanceof Error ? pushError.message : String(pushError);
150
- if (errorMsg.includes("rejected") || errorMsg.includes("conflict")) {
151
- try {
152
- await git.pull("origin", "main", { "--rebase": null });
153
- }
154
- catch {
155
- await git.rebase({ "--abort": null }).catch(() => undefined);
156
- await git.pull("origin", "main");
157
- await git.add("-A");
158
- await git.commit(message);
159
- }
160
- }
161
- else {
122
+ const errorMessage = pushError instanceof Error ? pushError.message : String(pushError);
123
+ if (!errorMessage.includes("rejected") &&
124
+ !errorMessage.includes("conflict")) {
162
125
  throw pushError;
163
126
  }
127
+ try {
128
+ await git.pull("origin", branch, { "--rebase": null });
129
+ }
130
+ catch {
131
+ await git.rebase({ "--abort": null }).catch(() => undefined);
132
+ await git.pull("origin", branch);
133
+ await git.add("-A");
134
+ await git.commit(message);
135
+ }
164
136
  }
165
137
  }
166
138
  throw new Error("Failed to push after 3 attempts");
167
139
  }
168
- // ---------------------------------------------------------------------------
169
- // Generic typed readers (for callers that need to load results back)
170
- // ---------------------------------------------------------------------------
171
- /**
172
- * Load a file result, parsed and validated with the given Zod schema.
173
- * Returns null if the file doesn't exist or fails validation.
174
- */
175
- async loadFileResult(owner, repo, filePath, schema) {
176
- const fullPath = node_path_1.default.join(this.getResultDir(owner, repo), `${filePath}.yml`);
140
+ async readFileResult(filePath, schema) {
141
+ await this.ensureReady();
142
+ const fullPath = node_path_1.default.join(this.getResultDir(), `${filePath}.yml`);
177
143
  try {
178
144
  const content = await (0, promises_1.readFile)(fullPath, "utf-8");
179
145
  return schema.parse((0, yaml_1.parse)(content));
@@ -182,12 +148,9 @@ class GitYamlStore {
182
148
  return null;
183
149
  }
184
150
  }
185
- /**
186
- * Load a directory result, parsed and validated with the given Zod schema.
187
- * Returns null if the file doesn't exist or fails validation.
188
- */
189
- async loadDirResult(owner, repo, dirPath, schema) {
190
- const fullPath = node_path_1.default.join(this.getResultDir(owner, repo), dirPath, "dir.yml");
151
+ async readDirectoryResult(dirPath, schema) {
152
+ await this.ensureReady();
153
+ const fullPath = node_path_1.default.join(this.getResultDir(), dirPath, "dir.yml");
191
154
  try {
192
155
  const content = await (0, promises_1.readFile)(fullPath, "utf-8");
193
156
  return schema.parse((0, yaml_1.parse)(content));
@@ -196,47 +159,97 @@ class GitYamlStore {
196
159
  return null;
197
160
  }
198
161
  }
199
- // ---------------------------------------------------------------------------
200
- // Private helpers
201
- // ---------------------------------------------------------------------------
202
- getResultDir(owner, repo) {
203
- return node_path_1.default.join(this.localPath, this.resultDir(owner, repo));
162
+ getResultDir() {
163
+ return node_path_1.default.join(this.localPath, this.root, this.sourceRepo.owner, this.sourceRepo.name);
204
164
  }
205
165
  getAuthenticatedUrl() {
206
- if (this.authToken !== undefined && this.authToken !== "") {
207
- return this.cloneUrl.replace("https://github.com/", `https://${this.authToken}@github.com/`);
166
+ if (this.authToken === undefined || this.authToken === "") {
167
+ return this.cloneUrl;
208
168
  }
209
- return this.cloneUrl;
169
+ return this.cloneUrl.replace("https://github.com/", `https://${this.authToken}@github.com/`);
210
170
  }
211
- async walkDir(baseDir, currentDir, manifest) {
212
- let entries;
171
+ async resolveBranch(git) {
172
+ if (this.requestedBranch !== undefined && this.requestedBranch !== "") {
173
+ return this.requestedBranch;
174
+ }
175
+ const localBranches = await git.branchLocal();
176
+ if (localBranches.current !== "") {
177
+ return localBranches.current;
178
+ }
213
179
  try {
214
- entries = await (0, promises_1.readdir)(currentDir, { withFileTypes: true });
180
+ const remoteHead = await git.raw([
181
+ "symbolic-ref",
182
+ "--quiet",
183
+ "refs/remotes/origin/HEAD",
184
+ ]);
185
+ const branch = remoteHead.trim().replace(/^refs\/remotes\/origin\//u, "");
186
+ if (branch !== "") {
187
+ return branch;
188
+ }
215
189
  }
216
190
  catch {
191
+ // Fall back to any available branch.
192
+ }
193
+ if (localBranches.all.length > 0) {
194
+ return localBranches.all[0];
195
+ }
196
+ throw new Error("Unable to determine which branch to use for results");
197
+ }
198
+ async checkoutBranch(git, branch) {
199
+ const localBranches = await git.branchLocal();
200
+ if (localBranches.current === branch) {
201
+ return;
202
+ }
203
+ if (localBranches.all.includes(branch)) {
204
+ await git.checkout(branch);
217
205
  return;
218
206
  }
207
+ try {
208
+ await git.checkoutBranch(branch, `origin/${branch}`);
209
+ }
210
+ catch {
211
+ await git.checkoutLocalBranch(branch);
212
+ }
213
+ }
214
+ async resolveGitUser(git) {
215
+ if (this.configuredGitUser !== undefined) {
216
+ return this.configuredGitUser;
217
+ }
218
+ const [nameResult, emailResult] = await Promise.all([
219
+ git.getConfig("user.name"),
220
+ git.getConfig("user.email"),
221
+ ]);
222
+ const name = nameResult.value?.trim() ?? "";
223
+ const email = emailResult.value?.trim() ?? "";
224
+ if (name !== "" && email !== "") {
225
+ return { name, email };
226
+ }
227
+ throw new Error("Git user is required. Set results.gitUser or configure git user.name and user.email.");
228
+ }
229
+ async walkDir(baseDir, currentDir, manifest) {
230
+ const entries = await (0, promises_1.readdir)(currentDir, { withFileTypes: true });
219
231
  for (const entry of entries) {
220
232
  const fullPath = node_path_1.default.join(currentDir, entry.name);
221
233
  if (entry.isDirectory()) {
222
234
  await this.walkDir(baseDir, fullPath, manifest);
235
+ continue;
223
236
  }
224
- else if (entry.isFile() &&
225
- entry.name.endsWith(".yml") &&
226
- entry.name !== "dir.yml") {
227
- try {
228
- const yamlContent = await (0, promises_1.readFile)(fullPath, "utf-8");
229
- const parsed = (0, yaml_1.parse)(yamlContent);
230
- if (typeof parsed.sha === "string") {
231
- const relativePath = node_path_1.default.relative(baseDir, fullPath);
232
- const repoPath = relativePath.slice(0, -4); // Remove .yml
233
- manifest[repoPath] = parsed.sha;
234
- }
235
- }
236
- catch {
237
- // Invalid file, skip
237
+ if (!entry.isFile() ||
238
+ !entry.name.endsWith(".yml") ||
239
+ entry.name === "dir.yml") {
240
+ continue;
241
+ }
242
+ try {
243
+ const yamlContent = await (0, promises_1.readFile)(fullPath, "utf-8");
244
+ const parsed = (0, yaml_1.parse)(yamlContent);
245
+ if (typeof parsed.sha === "string") {
246
+ const relativePath = node_path_1.default.relative(baseDir, fullPath);
247
+ manifest[relativePath.slice(0, -4)] = parsed.sha;
238
248
  }
239
249
  }
250
+ catch {
251
+ // Skip invalid YAML files while building the manifest.
252
+ }
240
253
  }
241
254
  }
242
255
  }
@@ -1 +1 @@
1
- {"version":3,"file":"GitYamlStore.js","sourceRoot":"","sources":["../src/GitYamlStore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GitYamlStore.js","sourceRoot":"","sources":["../src/GitYamlStore.ts"],"names":[],"mappings":"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"}
@@ -1,26 +1,26 @@
1
- import { type GitHubClient } from "@hardlydifficult/github";
2
- import type { ProcessingResult, ProcessorCallbacks, ProcessorStore, ProgressCallback } from "./types.js";
3
- export interface RepoProcessorConfig {
4
- githubClient: GitHubClient;
5
- store: ProcessorStore;
6
- callbacks: ProcessorCallbacks;
7
- concurrency?: number;
8
- branch?: string;
9
- }
10
- /**
11
- * Generic pipeline for incrementally processing a GitHub repo's file tree.
12
- *
13
- * Pipeline: init → fetch tree → filter → diff → process changed files →
14
- * remove deleted files → resolve stale dirs → process dirs bottom-up → commit.
15
- */
16
- export declare class RepoProcessor {
17
- private readonly github;
1
+ import type { z } from "zod";
2
+ import type { RepoProcessorInternals } from "./internalTypes.js";
3
+ import { RepoWatcher } from "./RepoWatcher.js";
4
+ import type { RepoProcessorOptions, RepoProcessorRunOptions, RepoProcessorRunResult, RepoWatcherOptions } from "./types.js";
5
+ /** Incrementally processes repository files/directories and stores derived results. */
6
+ export declare class RepoProcessor<TFileResult = unknown, TDirResult = never> {
7
+ static open<TFileResult, TDirResult = never>(options: RepoProcessorOptions<TFileResult, TDirResult>): Promise<RepoProcessor<TFileResult, TDirResult>>;
8
+ private readonly repoRef;
9
+ private readonly repoClient;
18
10
  private readonly store;
19
- private readonly callbacks;
11
+ private readonly ref;
20
12
  private readonly concurrency;
21
- private readonly branch;
22
- constructor(config: RepoProcessorConfig);
23
- run(owner: string, repo: string, onProgress?: ProgressCallback): Promise<ProcessingResult>;
24
- private buildDirectoryContext;
13
+ private readonly include;
14
+ private readonly processFileHandler;
15
+ private readonly processDirectoryHandler;
16
+ private constructor();
17
+ get repo(): string;
18
+ run(options?: RepoProcessorRunOptions): Promise<RepoProcessorRunResult>;
19
+ readFileResult<T>(filePath: string, schema: z.ZodType<T>): Promise<T | null>;
20
+ readDirectoryResult<T>(dirPath: string, schema: z.ZodType<T>): Promise<T | null>;
21
+ watch(options?: RepoWatcherOptions): Promise<RepoWatcher<TFileResult, TDirResult>>;
22
+ private buildDirectoryInput;
25
23
  }
24
+ /** Creates a RepoProcessor instance using test doubles for internal dependencies. */
25
+ export declare function createRepoProcessorForTests<TFileResult = unknown, TDirResult = never>(internals: RepoProcessorInternals<TFileResult, TDirResult>): RepoProcessor<TFileResult, TDirResult>;
26
26
  //# sourceMappingURL=RepoProcessor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RepoProcessor.d.ts","sourceRoot":"","sources":["../src/RepoProcessor.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,YAAY,EAElB,MAAM,yBAAyB,CAAC;AAIjC,OAAO,KAAK,EAIV,gBAAgB,EAChB,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,YAAY,CAAC;IAC3B,KAAK,EAAE,cAAc,CAAC;IACtB,SAAS,EAAE,kBAAkB,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;GAKG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IACtC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAiB;IACvC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqB;IAC/C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;gBAEpB,MAAM,EAAE,mBAAmB;IAQjC,GAAG,CACP,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,UAAU,CAAC,EAAE,gBAAgB,GAC5B,OAAO,CAAC,gBAAgB,CAAC;IA6N5B,OAAO,CAAC,qBAAqB;CAqC9B"}
1
+ {"version":3,"file":"RepoProcessor.d.ts","sourceRoot":"","sources":["../src/RepoProcessor.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAG7B,OAAO,KAAK,EAGV,sBAAsB,EACvB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,KAAK,EAGV,oBAAoB,EAEpB,uBAAuB,EACvB,sBAAsB,EACtB,kBAAkB,EACnB,MAAM,YAAY,CAAC;AA6BpB,uFAAuF;AACvF,qBAAa,aAAa,CAAC,WAAW,GAAG,OAAO,EAAE,UAAU,GAAG,KAAK;IAClE,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,GAAG,KAAK,EACzC,OAAO,EAAE,oBAAoB,CAAC,WAAW,EAAE,UAAU,CAAC,GACrD,OAAO,CAAC,aAAa,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IA6ClD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IACvC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAGX;IAChB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAGX;IACX,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAqB;IACzC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAGX;IACb,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAGlB;IACjB,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAE1B;IAEd,OAAO;IAiBP,IAAI,IAAI,IAAI,MAAM,CAEjB;IAEK,GAAG,CACP,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,sBAAsB,CAAC;IA8M5B,cAAc,CAAC,CAAC,EACpB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GACnB,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAId,mBAAmB,CAAC,CAAC,EACzB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GACnB,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAId,KAAK,CACT,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IAIhD,OAAO,CAAC,mBAAmB;CA2C5B;AAMD,qFAAqF;AACrF,wBAAgB,2BAA2B,CACzC,WAAW,GAAG,OAAO,EACrB,UAAU,GAAG,KAAK,EAElB,SAAS,EAAE,sBAAsB,CAAC,WAAW,EAAE,UAAU,CAAC,GACzD,aAAa,CAAC,WAAW,EAAE,UAAU,CAAC,CAMxC"}