@cesarandreslopez/occ 0.3.1 → 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +130 -4
- package/dist/src/cli-validation.d.ts +14 -0
- package/dist/src/cli-validation.js +58 -0
- package/dist/src/cli-validation.js.map +1 -0
- package/dist/src/cli.js +26 -8
- package/dist/src/cli.js.map +1 -1
- package/dist/src/code/build.d.ts +7 -5
- package/dist/src/code/build.js +68 -11
- package/dist/src/code/build.js.map +1 -1
- package/dist/src/code/command.js +26 -19
- package/dist/src/code/command.js.map +1 -1
- package/dist/src/code/discover.d.ts +6 -4
- package/dist/src/code/discover.js +5 -0
- package/dist/src/code/discover.js.map +1 -1
- package/dist/src/code/languages.d.ts +28 -7
- package/dist/src/code/languages.js +9 -0
- package/dist/src/code/languages.js.map +1 -1
- package/dist/src/code/output.js +12 -3
- package/dist/src/code/output.js.map +1 -1
- package/dist/src/code/parsers.js +75 -10
- package/dist/src/code/parsers.js.map +1 -1
- package/dist/src/code/query.js +82 -22
- package/dist/src/code/query.js.map +1 -1
- package/dist/src/code/types.d.ts +1201 -145
- package/dist/src/code/types.js +150 -1
- package/dist/src/code/types.js.map +1 -1
- package/dist/src/doc/command.d.ts +2 -0
- package/dist/src/doc/command.js +54 -0
- package/dist/src/doc/command.js.map +1 -0
- package/dist/src/doc/inspect-docx.d.ts +14 -0
- package/dist/src/doc/inspect-docx.js +188 -0
- package/dist/src/doc/inspect-docx.js.map +1 -0
- package/dist/src/doc/inspect-odt.d.ts +8 -0
- package/dist/src/doc/inspect-odt.js +92 -0
- package/dist/src/doc/inspect-odt.js.map +1 -0
- package/dist/src/doc/inspect-pdf.d.ts +8 -0
- package/dist/src/doc/inspect-pdf.js +88 -0
- package/dist/src/doc/inspect-pdf.js.map +1 -0
- package/dist/src/doc/inspect.d.ts +2 -0
- package/dist/src/doc/inspect.js +70 -0
- package/dist/src/doc/inspect.js.map +1 -0
- package/dist/src/doc/output.d.ts +3 -0
- package/dist/src/doc/output.js +82 -0
- package/dist/src/doc/output.js.map +1 -0
- package/dist/src/doc/types.d.ts +172 -0
- package/dist/src/doc/types.js +62 -0
- package/dist/src/doc/types.js.map +1 -0
- package/dist/src/inspect/shared.d.ts +20 -0
- package/dist/src/inspect/shared.js +29 -0
- package/dist/src/inspect/shared.js.map +1 -0
- package/dist/src/inspect/xlsx-cells.d.ts +4 -0
- package/dist/src/inspect/xlsx-cells.js +31 -0
- package/dist/src/inspect/xlsx-cells.js.map +1 -0
- package/dist/src/markdown/convert.js +6 -4
- package/dist/src/markdown/convert.js.map +1 -1
- package/dist/src/output/tabular.d.ts +6 -4
- package/dist/src/output/tabular.js +5 -0
- package/dist/src/output/tabular.js.map +1 -1
- package/dist/src/output/tree.d.ts +21 -9
- package/dist/src/output/tree.js +10 -0
- package/dist/src/output/tree.js.map +1 -1
- package/dist/src/parsers/docx.js +5 -1
- package/dist/src/parsers/docx.js.map +1 -1
- package/dist/src/parsers/odf.js +4 -3
- package/dist/src/parsers/odf.js.map +1 -1
- package/dist/src/parsers/pdf.js +6 -1
- package/dist/src/parsers/pdf.js.map +1 -1
- package/dist/src/parsers/pptx.js +2 -1
- package/dist/src/parsers/pptx.js.map +1 -1
- package/dist/src/parsers/xlsx.js +11 -4
- package/dist/src/parsers/xlsx.js.map +1 -1
- package/dist/src/progress.d.ts +7 -5
- package/dist/src/progress.js +6 -0
- package/dist/src/progress.js.map +1 -1
- package/dist/src/scc.d.ts +35 -26
- package/dist/src/scc.js +26 -1
- package/dist/src/scc.js.map +1 -1
- package/dist/src/sheet/command.d.ts +2 -0
- package/dist/src/sheet/command.js +61 -0
- package/dist/src/sheet/command.js.map +1 -0
- package/dist/src/sheet/inspect.d.ts +3 -0
- package/dist/src/sheet/inspect.js +426 -0
- package/dist/src/sheet/inspect.js.map +1 -0
- package/dist/src/sheet/output.d.ts +3 -0
- package/dist/src/sheet/output.js +158 -0
- package/dist/src/sheet/output.js.map +1 -0
- package/dist/src/sheet/types.d.ts +472 -0
- package/dist/src/sheet/types.js +119 -0
- package/dist/src/sheet/types.js.map +1 -0
- package/dist/src/slide/command.d.ts +2 -0
- package/dist/src/slide/command.js +54 -0
- package/dist/src/slide/command.js.map +1 -0
- package/dist/src/slide/inspect-odp.d.ts +7 -0
- package/dist/src/slide/inspect-odp.js +105 -0
- package/dist/src/slide/inspect-odp.js.map +1 -0
- package/dist/src/slide/inspect-pptx.d.ts +11 -0
- package/dist/src/slide/inspect-pptx.js +157 -0
- package/dist/src/slide/inspect-pptx.js.map +1 -0
- package/dist/src/slide/inspect.d.ts +2 -0
- package/dist/src/slide/inspect.js +76 -0
- package/dist/src/slide/inspect.js.map +1 -0
- package/dist/src/slide/output.d.ts +3 -0
- package/dist/src/slide/output.js +92 -0
- package/dist/src/slide/output.js.map +1 -0
- package/dist/src/slide/types.d.ts +167 -0
- package/dist/src/slide/types.js +61 -0
- package/dist/src/slide/types.js.map +1 -0
- package/dist/src/stats.d.ts +6 -4
- package/dist/src/stats.js +5 -0
- package/dist/src/stats.js.map +1 -1
- package/dist/src/structure/types.d.ts +19 -11
- package/dist/src/structure/types.js +26 -21
- package/dist/src/structure/types.js.map +1 -1
- package/dist/src/table/command.d.ts +2 -0
- package/dist/src/table/command.js +58 -0
- package/dist/src/table/command.js.map +1 -0
- package/dist/src/table/inspect-docx.d.ts +2 -0
- package/dist/src/table/inspect-docx.js +108 -0
- package/dist/src/table/inspect-docx.js.map +1 -0
- package/dist/src/table/inspect-odp.d.ts +2 -0
- package/dist/src/table/inspect-odp.js +106 -0
- package/dist/src/table/inspect-odp.js.map +1 -0
- package/dist/src/table/inspect-odt.d.ts +2 -0
- package/dist/src/table/inspect-odt.js +100 -0
- package/dist/src/table/inspect-odt.js.map +1 -0
- package/dist/src/table/inspect-pptx.d.ts +2 -0
- package/dist/src/table/inspect-pptx.js +112 -0
- package/dist/src/table/inspect-pptx.js.map +1 -0
- package/dist/src/table/inspect-xlsx.d.ts +2 -0
- package/dist/src/table/inspect-xlsx.js +161 -0
- package/dist/src/table/inspect-xlsx.js.map +1 -0
- package/dist/src/table/inspect.d.ts +2 -0
- package/dist/src/table/inspect.js +65 -0
- package/dist/src/table/inspect.js.map +1 -0
- package/dist/src/table/output.d.ts +3 -0
- package/dist/src/table/output.js +93 -0
- package/dist/src/table/output.js.map +1 -0
- package/dist/src/table/types.d.ts +104 -0
- package/dist/src/table/types.js +40 -0
- package/dist/src/table/types.js.map +1 -0
- package/dist/src/types.d.ts +25 -20
- package/dist/src/types.js +21 -1
- package/dist/src/types.js.map +1 -1
- package/dist/src/utils.d.ts +11 -1
- package/dist/src/utils.js +2 -0
- package/dist/src/utils.js.map +1 -1
- package/dist/src/walker.d.ts +21 -12
- package/dist/src/walker.js +13 -0
- package/dist/src/walker.js.map +1 -1
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -9,23 +9,31 @@
|
|
|
9
9
|
</p>
|
|
10
10
|
|
|
11
11
|
<p align="center">
|
|
12
|
-
<strong>Office Cloc and Count</strong> — document metrics, structure extraction, and code exploration for real repositories.
|
|
12
|
+
<strong>Office Cloc and Count</strong> — document metrics, structure extraction, content inspection, and code exploration for real repositories.
|
|
13
13
|
</p>
|
|
14
14
|
|
|
15
|
+
> **Experimental:** All features in OCC are currently experimental. This project cannot be considered stable software yet. APIs, output formats, and command interfaces may change between minor versions.
|
|
16
|
+
|
|
15
17
|
## What is this?
|
|
16
18
|
|
|
17
|
-
OCC started as a way to make office documents visible in the same workflows that already work well for code metrics tools like `scc` and `cloc`.
|
|
19
|
+
OCC started as a way to make office documents visible in the same workflows that already work well for code metrics tools like `scc` and `cloc`. It has since grown into a multi-purpose CLI that can:
|
|
18
20
|
|
|
19
21
|
- scan office documents for word/page/sheet/slide metrics
|
|
20
22
|
- extract document heading structure for navigation and RAG-style use cases
|
|
23
|
+
- inspect documents (`occ doc inspect`), spreadsheets (`occ sheet inspect`), and presentations (`occ slide inspect`) for metadata, risk flags, and content previews
|
|
24
|
+
- extract structured table content from documents (`occ table inspect`)
|
|
21
25
|
- summarize code metrics through `scc`
|
|
22
|
-
- explore JavaScript, TypeScript, and Python repositories with symbol search, call analysis, dependency inspection, and inheritance queries
|
|
26
|
+
- explore JavaScript, TypeScript, and Python repositories with symbol search, call analysis, dependency inspection, and inheritance queries (`occ code`)
|
|
23
27
|
|
|
24
28
|
## Features
|
|
25
29
|
|
|
26
30
|
- **Office document metrics** — words, pages, paragraphs, slides, sheets, rows, cells
|
|
27
31
|
- **Seven formats supported** — DOCX, XLSX, PPTX, PDF, ODT, ODS, ODP
|
|
28
32
|
- **Document structure extraction** — `--structure` parses heading hierarchy into a navigable tree with dotted section codes (1, 1.1, 1.2, ...)
|
|
33
|
+
- **Document inspection via `occ doc inspect`** — metadata, risk flags, content stats, heading structure, and content preview for DOCX and ODT
|
|
34
|
+
- **Spreadsheet inspection via `occ sheet inspect`** — workbook properties, hidden sheets, names, formulas, links, comments, schema preview, and token estimates for XLSX
|
|
35
|
+
- **Presentation inspection via `occ slide inspect`** — metadata, risk flags, per-slide inventory, and content preview for PPTX and ODP
|
|
36
|
+
- **Table extraction via `occ table inspect`** — structured table content from DOCX, XLSX, PPTX, ODT, and ODP with auto-detected headers, sample row limits, and merged cell support
|
|
29
37
|
- **Code metrics via scc** — auto-detects code files and integrates scc output
|
|
30
38
|
- **Code exploration via `occ code`** — JS/TS and Python-first symbol lookup, content search, callers/callees, dependency categories, inheritance, and ambiguity-aware chains
|
|
31
39
|
- **Multiple output modes** — grouped by type, per-file breakdown, or JSON
|
|
@@ -80,6 +88,22 @@ occ --structure docs/
|
|
|
80
88
|
# Structure as JSON
|
|
81
89
|
occ --structure --format json docs/
|
|
82
90
|
|
|
91
|
+
# Inspect a document for metadata, risk flags, and content preview
|
|
92
|
+
occ doc inspect report.docx
|
|
93
|
+
occ doc inspect report.docx --format json
|
|
94
|
+
|
|
95
|
+
# Inspect an XLSX workbook before reading its contents deeply
|
|
96
|
+
occ sheet inspect finance.xlsx
|
|
97
|
+
occ sheet inspect finance.xlsx --format json --sample-rows 3 --max-columns 12
|
|
98
|
+
|
|
99
|
+
# Inspect a presentation for slide inventory and content preview
|
|
100
|
+
occ slide inspect deck.pptx
|
|
101
|
+
occ slide inspect deck.pptx --format json --slide 3
|
|
102
|
+
|
|
103
|
+
# Extract structured table data from documents
|
|
104
|
+
occ table inspect report.docx --format json
|
|
105
|
+
occ table inspect finance.xlsx --table 1 --sample-rows 10
|
|
106
|
+
|
|
83
107
|
# Explore JS/TS and Python code
|
|
84
108
|
occ code find name UserService --path .
|
|
85
109
|
occ code analyze callers createUser --path .
|
|
@@ -172,7 +196,7 @@ Scanned 23 documents (56,750 words, 201 pages) in 120ms
|
|
|
172
196
|
|
|
173
197
|
`occ code` adds on-demand code exploration without changing the existing document-scan workflow. It builds an in-memory repository graph for each command and does not require a database, daemon, or background indexer.
|
|
174
198
|
|
|
175
|
-
The first-class support path
|
|
199
|
+
The first-class support path is **JavaScript, TypeScript, and Python**. Other languages may be discovered and partially parsed, but the current resolver, fixtures, and output contracts are intentionally optimized around JS/TS and Python behavior.
|
|
176
200
|
|
|
177
201
|
```bash
|
|
178
202
|
# Exact symbol lookup
|
|
@@ -207,6 +231,104 @@ Highlights of the current code exploration behavior:
|
|
|
207
231
|
|
|
208
232
|
All `occ code` commands support `--format tabular|json`. Most symbol-targeted commands also support `--file` for disambiguation, and JSON output includes repository metadata, query metadata, results, repository stats, and per-language capability flags.
|
|
209
233
|
|
|
234
|
+
## Document Inspection
|
|
235
|
+
|
|
236
|
+
`occ doc inspect` extracts metadata, risk flags, content stats, heading structure, and a content preview from DOCX and ODT documents.
|
|
237
|
+
|
|
238
|
+
```bash
|
|
239
|
+
# Document overview with content preview
|
|
240
|
+
occ doc inspect report.docx
|
|
241
|
+
|
|
242
|
+
# Machine-readable payload
|
|
243
|
+
occ doc inspect report.docx --format json
|
|
244
|
+
|
|
245
|
+
# More paragraphs in the preview
|
|
246
|
+
occ doc inspect report.docx --sample-paragraphs 10
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
Current document inspection surfaces:
|
|
250
|
+
|
|
251
|
+
- **Document properties** — title, author, dates, keywords
|
|
252
|
+
- **Risk flags** — comments, tracked changes, hyperlinks, embedded objects, macros, tables, encryption
|
|
253
|
+
- **Content stats** — words, pages, paragraphs, characters, tables, images
|
|
254
|
+
- **Heading structure** — tree with section codes and depth
|
|
255
|
+
- **Content preview** — first N paragraphs with heading detection
|
|
256
|
+
- **Token estimates** — preview and full-document token estimates
|
|
257
|
+
|
|
258
|
+
## Spreadsheet Inspection
|
|
259
|
+
|
|
260
|
+
`occ sheet inspect` is a lightweight XLSX preflight command aimed at both humans and agents. It helps answer "is this workbook worth reading in depth?" before spending tokens serializing cells or opening the file in Excel.
|
|
261
|
+
|
|
262
|
+
```bash
|
|
263
|
+
# Workbook-level summary + per-sheet schema/sample preview
|
|
264
|
+
occ sheet inspect finance.xlsx
|
|
265
|
+
|
|
266
|
+
# Machine-readable inspection payload
|
|
267
|
+
occ sheet inspect finance.xlsx --format json
|
|
268
|
+
|
|
269
|
+
# Narrow to one sheet and reduce preview width
|
|
270
|
+
occ sheet inspect finance.xlsx --sheet Revenue --sample-rows 3 --max-columns 8
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
Current XLSX inspection highlights:
|
|
274
|
+
|
|
275
|
+
- **Workbook metadata** — file size, workbook properties, custom properties, workbook-scoped names
|
|
276
|
+
- **Sheet inventory** — visible / hidden / very hidden sheets, used ranges, cell counts, formula/comment/link counts
|
|
277
|
+
- **Schema preview** — detected header row, inferred column types, coverage ratios, example values
|
|
278
|
+
- **Lightweight sampling** — small row previews designed for preflight rather than full extraction
|
|
279
|
+
- **Token estimates** — sample and full-sheet token estimates to guide downstream agent reads
|
|
280
|
+
|
|
281
|
+
## Presentation Inspection
|
|
282
|
+
|
|
283
|
+
`occ slide inspect` provides presentation metadata, risk flags, per-slide inventory, and content previews for PPTX and ODP files.
|
|
284
|
+
|
|
285
|
+
```bash
|
|
286
|
+
# Presentation overview with slide preview
|
|
287
|
+
occ slide inspect deck.pptx
|
|
288
|
+
|
|
289
|
+
# Machine-readable payload
|
|
290
|
+
occ slide inspect deck.pptx --format json
|
|
291
|
+
|
|
292
|
+
# Inspect a specific slide
|
|
293
|
+
occ slide inspect deck.pptx --slide 3
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
Current presentation inspection surfaces:
|
|
297
|
+
|
|
298
|
+
- **Presentation properties** — title, author, dates
|
|
299
|
+
- **Risk flags** — comments, speaker notes, hyperlinks, embedded media, animations, macros, charts, tables
|
|
300
|
+
- **Slide inventory** — per-slide title, word count, notes, images, tables, charts
|
|
301
|
+
- **Content preview** — text preview for sample slides
|
|
302
|
+
- **Token estimates** — preview and full-presentation token estimates
|
|
303
|
+
|
|
304
|
+
## Table Extraction
|
|
305
|
+
|
|
306
|
+
`occ table inspect` extracts structured table content from DOCX, XLSX, PPTX, ODT, and ODP documents. For AI agents, this is the primary way to read financial summaries, comparison matrices, and data tables without parsing raw XML.
|
|
307
|
+
|
|
308
|
+
```bash
|
|
309
|
+
# Extract all tables as JSON
|
|
310
|
+
occ table inspect report.docx --format json
|
|
311
|
+
|
|
312
|
+
# Tabular preview of table content
|
|
313
|
+
occ table inspect finance.xlsx
|
|
314
|
+
|
|
315
|
+
# Extract a specific table
|
|
316
|
+
occ table inspect finance.xlsx --table 1
|
|
317
|
+
|
|
318
|
+
# Limit sample rows
|
|
319
|
+
occ table inspect report.docx --sample-rows 5
|
|
320
|
+
```
|
|
321
|
+
|
|
322
|
+
Current table extraction highlights:
|
|
323
|
+
|
|
324
|
+
- **Multi-format support** — DOCX (via mammoth HTML), XLSX (via SheetJS), PPTX (from slide XML), ODT and ODP (from content.xml)
|
|
325
|
+
- **Auto-detected headers** — first row is treated as headers when values are unique strings
|
|
326
|
+
- **Merged cell support** — colspan and rowspan are preserved in the output
|
|
327
|
+
- **Sample row limits** — configurable maximum rows per table (default: 20)
|
|
328
|
+
- **Table filtering** — extract a specific table by index with `--table N`
|
|
329
|
+
- **Token estimates** — per-table and total token estimates
|
|
330
|
+
- **PDF graceful degradation** — returns empty tables with an informative note instead of unreliable heuristic output
|
|
331
|
+
|
|
210
332
|
## Documentation
|
|
211
333
|
|
|
212
334
|
Full documentation is available at [cesarandreslopez.github.io/occ](https://cesarandreslopez.github.io/occ/), including:
|
|
@@ -234,6 +356,10 @@ Tools like `scc`, `cloc`, and `tokei` give you instant visibility into codebases
|
|
|
234
356
|
- **Context budgeting** — LLMs have finite context windows. OCC's word and page counts let agents estimate how much of a document set they can ingest before hitting token limits
|
|
235
357
|
- **Prioritization** — an agent deciding which documents to read can use OCC's JSON output to rank files by size, word count, or type, focusing on the most relevant content first
|
|
236
358
|
- **RAG chunk mapping** — `--structure --format json` outputs heading trees with character offsets, enabling chunk-to-section mapping, scoped retrieval, and citation paths in RAG pipelines
|
|
359
|
+
- **Document triage** — `occ doc inspect --format json` surfaces risk flags, content stats, structure, and token estimates before an agent reads the full document
|
|
360
|
+
- **Spreadsheet triage** — `occ sheet inspect --format json` exposes sheet visibility, formulas, links, comments, schema hints, and token estimates before an agent expands workbook contents
|
|
361
|
+
- **Presentation triage** — `occ slide inspect --format json` provides slide inventory, risk flags, and content previews for quick assessment
|
|
362
|
+
- **Table extraction** — `occ table inspect --format json` extracts structured table data (headers, rows, cells) from documents, giving agents direct access to tabular content without parsing raw XML
|
|
237
363
|
- **Repository mapping** — agents exploring an unfamiliar codebase can combine `occ --format json` for document inventory with `occ code ... --format json` for symbol and relationship data
|
|
238
364
|
- **Pipeline integration** — JSON output pipes directly into agent toolchains for automated document analysis, summarization, or compliance checking
|
|
239
365
|
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/** Schema that coerces a string to a positive integer. */
|
|
3
|
+
export declare const PositiveIntSchema: z.ZodPipe<z.ZodString, z.ZodTransform<number, string>>;
|
|
4
|
+
/** Schema for header-row option: "auto", "none", or a positive integer string. */
|
|
5
|
+
export declare const HeaderRowSchema: z.ZodUnion<readonly [z.ZodLiteral<"auto">, z.ZodLiteral<"none">, z.ZodPipe<z.ZodString, z.ZodTransform<number, string>>]>;
|
|
6
|
+
export type HeaderRowValue = z.infer<typeof HeaderRowSchema>;
|
|
7
|
+
/** Schema that coerces a string to a positive number (float). */
|
|
8
|
+
export declare const PositiveNumberSchema: z.ZodPipe<z.ZodString, z.ZodTransform<number, string>>;
|
|
9
|
+
/** Parse a CLI string option as a positive integer, returning fallback if undefined. */
|
|
10
|
+
export declare function parsePositiveInt(value: string | undefined, fallback: number, label: string): number;
|
|
11
|
+
/** Parse a header-row CLI option: "auto", "none", or a positive integer. */
|
|
12
|
+
export declare function parseHeaderRow(value: string | undefined): HeaderRowValue;
|
|
13
|
+
/** Validate the --large-file-limit value. */
|
|
14
|
+
export declare function validateLargeFileLimit(value: string): number;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/** Schema that coerces a string to a positive integer. */
|
|
3
|
+
export const PositiveIntSchema = z
|
|
4
|
+
.string()
|
|
5
|
+
.transform((val, ctx) => {
|
|
6
|
+
const parsed = Number.parseInt(val, 10);
|
|
7
|
+
if (!Number.isFinite(parsed) || parsed <= 0) {
|
|
8
|
+
ctx.addIssue({ code: z.ZodIssueCode.custom, message: `must be a positive integer` });
|
|
9
|
+
return z.NEVER;
|
|
10
|
+
}
|
|
11
|
+
return parsed;
|
|
12
|
+
});
|
|
13
|
+
/** Schema for header-row option: "auto", "none", or a positive integer string. */
|
|
14
|
+
export const HeaderRowSchema = z.union([
|
|
15
|
+
z.literal('auto'),
|
|
16
|
+
z.literal('none'),
|
|
17
|
+
PositiveIntSchema,
|
|
18
|
+
]);
|
|
19
|
+
/** Schema that coerces a string to a positive number (float). */
|
|
20
|
+
export const PositiveNumberSchema = z
|
|
21
|
+
.string()
|
|
22
|
+
.transform((val, ctx) => {
|
|
23
|
+
const n = parseFloat(val);
|
|
24
|
+
if (Number.isNaN(n) || n <= 0) {
|
|
25
|
+
ctx.addIssue({ code: z.ZodIssueCode.custom, message: `must be a positive number` });
|
|
26
|
+
return z.NEVER;
|
|
27
|
+
}
|
|
28
|
+
return n;
|
|
29
|
+
});
|
|
30
|
+
/** Parse a CLI string option as a positive integer, returning fallback if undefined. */
|
|
31
|
+
export function parsePositiveInt(value, fallback, label) {
|
|
32
|
+
if (!value)
|
|
33
|
+
return fallback;
|
|
34
|
+
const result = PositiveIntSchema.safeParse(value);
|
|
35
|
+
if (!result.success) {
|
|
36
|
+
throw new Error(`Invalid ${label}: "${value}"`);
|
|
37
|
+
}
|
|
38
|
+
return result.data;
|
|
39
|
+
}
|
|
40
|
+
/** Parse a header-row CLI option: "auto", "none", or a positive integer. */
|
|
41
|
+
export function parseHeaderRow(value) {
|
|
42
|
+
if (!value)
|
|
43
|
+
return 'auto';
|
|
44
|
+
const result = HeaderRowSchema.safeParse(value);
|
|
45
|
+
if (!result.success) {
|
|
46
|
+
throw new Error(`Invalid header-row: "${value}" (use "auto", "none", or a positive number)`);
|
|
47
|
+
}
|
|
48
|
+
return result.data;
|
|
49
|
+
}
|
|
50
|
+
/** Validate the --large-file-limit value. */
|
|
51
|
+
export function validateLargeFileLimit(value) {
|
|
52
|
+
const result = PositiveNumberSchema.safeParse(value);
|
|
53
|
+
if (!result.success) {
|
|
54
|
+
throw new Error(`Invalid --large-file-limit value: "${value}" (must be a positive number)`);
|
|
55
|
+
}
|
|
56
|
+
return result.data;
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=cli-validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-validation.js","sourceRoot":"","sources":["../../src/cli-validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,0DAA0D;AAC1D,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC;KAC/B,MAAM,EAAE;KACR,SAAS,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;IACtB,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACxC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;QAC5C,GAAG,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,4BAA4B,EAAE,CAAC,CAAC;QACrF,OAAO,CAAC,CAAC,KAAK,CAAC;IACjB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC,CAAC;AAEL,kFAAkF;AAClF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC;IACrC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IACjB,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IACjB,iBAAiB;CAClB,CAAC,CAAC;AAGH,iEAAiE;AACjE,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC;KAClC,MAAM,EAAE;KACR,SAAS,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;IACtB,MAAM,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IAC1B,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9B,GAAG,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,2BAA2B,EAAE,CAAC,CAAC;QACpF,OAAO,CAAC,CAAC,KAAK,CAAC;IACjB,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC,CAAC,CAAC;AAEL,wFAAwF;AACxF,MAAM,UAAU,gBAAgB,CAAC,KAAyB,EAAE,QAAgB,EAAE,KAAa;IACzF,IAAI,CAAC,KAAK;QAAE,OAAO,QAAQ,CAAC;IAC5B,MAAM,MAAM,GAAG,iBAAiB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAClD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,WAAW,KAAK,MAAM,KAAK,GAAG,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,cAAc,CAAC,KAAyB;IACtD,IAAI,CAAC,KAAK;QAAE,OAAO,MAAM,CAAC;IAC1B,MAAM,MAAM,GAAG,eAAe,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAChD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,wBAAwB,KAAK,8CAA8C,CAAC,CAAC;IAC/F,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC;AAED,6CAA6C;AAC7C,MAAM,UAAU,sBAAsB,CAAC,KAAa;IAClD,MAAM,MAAM,GAAG,oBAAoB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACrD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,sCAAsC,KAAK,+BAA+B,CAAC,CAAC;IAC9F,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC"}
|
package/dist/src/cli.js
CHANGED
|
@@ -2,6 +2,7 @@ import { Command, Option } from 'commander';
|
|
|
2
2
|
import { readFile, writeFile } from 'node:fs/promises';
|
|
3
3
|
import { fileURLToPath } from 'node:url';
|
|
4
4
|
import path from 'node:path';
|
|
5
|
+
import { z } from 'zod';
|
|
5
6
|
import { findFiles } from './walker.js';
|
|
6
7
|
import { parseFiles } from './parsers/index.js';
|
|
7
8
|
import { aggregate } from './stats.js';
|
|
@@ -13,13 +14,33 @@ import { documentToMarkdown } from './markdown/convert.js';
|
|
|
13
14
|
import { extractFromMarkdown } from './structure/index.js';
|
|
14
15
|
import { formatStructureTree } from './output/tree.js';
|
|
15
16
|
import { registerCodeCommands } from './code/command.js';
|
|
17
|
+
import { registerSheetCommands } from './sheet/command.js';
|
|
18
|
+
import { registerDocCommands } from './doc/command.js';
|
|
19
|
+
import { registerSlideCommands } from './slide/command.js';
|
|
20
|
+
import { registerTableCommands } from './table/command.js';
|
|
16
21
|
import { getExtension, writeStream } from './utils.js';
|
|
22
|
+
import { validateLargeFileLimit } from './cli-validation.js';
|
|
23
|
+
const CliOptionsSchema = z.object({
|
|
24
|
+
byFile: z.boolean().optional(),
|
|
25
|
+
format: z.string(),
|
|
26
|
+
includeExt: z.string().optional(),
|
|
27
|
+
excludeExt: z.string().optional(),
|
|
28
|
+
excludeDir: z.string().optional(),
|
|
29
|
+
gitignore: z.boolean(),
|
|
30
|
+
sort: z.string(),
|
|
31
|
+
output: z.string().optional(),
|
|
32
|
+
ci: z.boolean().optional(),
|
|
33
|
+
largeFileLimit: z.string(),
|
|
34
|
+
code: z.boolean(),
|
|
35
|
+
structure: z.boolean().optional(),
|
|
36
|
+
}).passthrough();
|
|
37
|
+
const PackageJsonSchema = z.object({ version: z.string() }).passthrough();
|
|
17
38
|
// Find package.json — works from both src/ (dev) and dist/src/ (built)
|
|
18
39
|
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
19
40
|
async function loadPkg() {
|
|
20
41
|
for (const rel of ['..', '../..']) {
|
|
21
42
|
try {
|
|
22
|
-
return JSON.parse(await readFile(path.resolve(__dirname, rel, 'package.json'), 'utf8'));
|
|
43
|
+
return PackageJsonSchema.parse(JSON.parse(await readFile(path.resolve(__dirname, rel, 'package.json'), 'utf8')));
|
|
23
44
|
}
|
|
24
45
|
catch { /* try next */ }
|
|
25
46
|
}
|
|
@@ -56,15 +77,12 @@ export async function run(argv) {
|
|
|
56
77
|
}
|
|
57
78
|
});
|
|
58
79
|
registerCodeCommands(program);
|
|
80
|
+
registerSheetCommands(program);
|
|
81
|
+
registerDocCommands(program);
|
|
82
|
+
registerSlideCommands(program);
|
|
83
|
+
registerTableCommands(program);
|
|
59
84
|
await program.parseAsync(argv);
|
|
60
85
|
}
|
|
61
|
-
function validateLargeFileLimit(value) {
|
|
62
|
-
const n = parseFloat(value);
|
|
63
|
-
if (Number.isNaN(n) || n <= 0) {
|
|
64
|
-
throw new Error(`Invalid --large-file-limit value: "${value}" (must be a positive number)`);
|
|
65
|
-
}
|
|
66
|
-
return n;
|
|
67
|
-
}
|
|
68
86
|
const STRUCTURABLE_EXTS = new Set(['docx', 'pdf', 'pptx', 'odt', 'odp']);
|
|
69
87
|
async function extractStructures(files, concurrency, onProgress) {
|
|
70
88
|
const results = [];
|
package/dist/src/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7F,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAuB,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/src/code/build.d.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
1
2
|
import type { CodebaseIndex } from './types.js';
|
|
2
|
-
export
|
|
3
|
-
repoRoot:
|
|
4
|
-
excludeDir
|
|
5
|
-
noGitignore
|
|
6
|
-
}
|
|
3
|
+
export declare const BuildCodebaseOptionsSchema: z.ZodObject<{
|
|
4
|
+
repoRoot: z.ZodString;
|
|
5
|
+
excludeDir: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
6
|
+
noGitignore: z.ZodOptional<z.ZodBoolean>;
|
|
7
|
+
}, z.core.$strip>;
|
|
8
|
+
export type BuildCodebaseOptions = z.infer<typeof BuildCodebaseOptionsSchema>;
|
|
7
9
|
export declare function buildCodebaseIndex(options: BuildCodebaseOptions): Promise<CodebaseIndex>;
|
package/dist/src/code/build.js
CHANGED
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
import path from 'node:path';
|
|
2
|
+
import { z } from 'zod';
|
|
2
3
|
import { discoverCodeFiles } from './discover.js';
|
|
3
4
|
import { getLanguageSpec, getModuleName, normalizePath } from './languages.js';
|
|
4
5
|
import { parseCodeFile } from './parsers.js';
|
|
6
|
+
export const BuildCodebaseOptionsSchema = z.object({
|
|
7
|
+
repoRoot: z.string(),
|
|
8
|
+
excludeDir: z.array(z.string()).optional(),
|
|
9
|
+
noGitignore: z.boolean().optional(),
|
|
10
|
+
});
|
|
5
11
|
function makeId(prefix, ...parts) {
|
|
6
12
|
return [prefix, ...parts.filter((part) => part != null)].join(':');
|
|
7
13
|
}
|
|
@@ -39,7 +45,8 @@ export async function buildCodebaseIndex(options) {
|
|
|
39
45
|
const nodes = [];
|
|
40
46
|
const edges = [];
|
|
41
47
|
const functionsByName = new Map();
|
|
42
|
-
const
|
|
48
|
+
const classNodesByName = new Map();
|
|
49
|
+
const interfaceNodesByName = new Map();
|
|
43
50
|
const filesByPath = new Map();
|
|
44
51
|
const modulesByName = new Map();
|
|
45
52
|
const topLevelSymbolsByFile = new Map();
|
|
@@ -128,12 +135,40 @@ export async function buildCodebaseIndex(options) {
|
|
|
128
135
|
}
|
|
129
136
|
}
|
|
130
137
|
else if (node.type === 'class') {
|
|
131
|
-
|
|
138
|
+
classNodesByName.set(node.name, [...(classNodesByName.get(node.name) ?? []), node]);
|
|
132
139
|
classByFileAndName.set(classKey(file.path, node.name), node);
|
|
133
140
|
}
|
|
141
|
+
else if (node.type === 'interface') {
|
|
142
|
+
interfaceNodesByName.set(node.name, [...(interfaceNodesByName.get(node.name) ?? []), node]);
|
|
143
|
+
}
|
|
134
144
|
}
|
|
135
145
|
topLevelSymbolsByFile.set(file.path, symbolIndex);
|
|
136
146
|
}
|
|
147
|
+
const reExportsByFile = new Map();
|
|
148
|
+
for (const file of parsedFiles) {
|
|
149
|
+
for (const fileImport of file.imports) {
|
|
150
|
+
if (!fileImport.isReExport || !fileImport.resolvedPath || !allPaths.has(fileImport.resolvedPath))
|
|
151
|
+
continue;
|
|
152
|
+
let fileMap = reExportsByFile.get(file.path);
|
|
153
|
+
if (!fileMap) {
|
|
154
|
+
fileMap = new Map();
|
|
155
|
+
reExportsByFile.set(file.path, fileMap);
|
|
156
|
+
}
|
|
157
|
+
for (const binding of fileImport.bindings) {
|
|
158
|
+
if (binding.isNamespace) {
|
|
159
|
+
const sourceSymbols = topLevelSymbolsByFile.get(fileImport.resolvedPath);
|
|
160
|
+
if (sourceSymbols) {
|
|
161
|
+
for (const name of sourceSymbols.keys()) {
|
|
162
|
+
fileMap.set(name, fileImport.resolvedPath);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
else {
|
|
167
|
+
fileMap.set(binding.localName, fileImport.resolvedPath);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
}
|
|
137
172
|
for (const file of parsedFiles) {
|
|
138
173
|
const fileNode = filesByPath.get(file.path);
|
|
139
174
|
if (!fileNode)
|
|
@@ -190,18 +225,27 @@ export async function buildCodebaseIndex(options) {
|
|
|
190
225
|
}
|
|
191
226
|
}
|
|
192
227
|
for (const inheritance of file.inheritances) {
|
|
193
|
-
const
|
|
228
|
+
const classNodeType = file.symbols.find(s => s.name === inheritance.className && s.line === inheritance.classLine)?.type ?? 'class';
|
|
229
|
+
const classNodeId = makeId(classNodeType, file.path, inheritance.className, inheritance.classLine);
|
|
194
230
|
const classNode = symbolByIdentity.get(classNodeId);
|
|
195
231
|
if (!classNode)
|
|
196
232
|
continue;
|
|
197
|
-
|
|
198
|
-
|
|
233
|
+
const edgeType = inheritance.kind === 'implements' ? 'implements' : 'inherits';
|
|
234
|
+
if (edgeType === 'inherits') {
|
|
235
|
+
parentNamesByClassId.set(classNode.id, [...(parentNamesByClassId.get(classNode.id) ?? []), inheritance.baseName]);
|
|
236
|
+
}
|
|
237
|
+
const candidatePool = edgeType === 'implements'
|
|
238
|
+
? interfaceNodesByName
|
|
239
|
+
: classNode.type === 'interface'
|
|
240
|
+
? interfaceNodesByName
|
|
241
|
+
: classNodesByName;
|
|
242
|
+
const localCandidates = candidatePool.get(inheritance.baseName) ?? [];
|
|
199
243
|
const exactLocal = localCandidates.filter(candidate => candidate.path === file.path);
|
|
200
244
|
const candidates = exactLocal.length > 0 ? exactLocal : localCandidates;
|
|
201
245
|
const resolved = candidates.length === 1 ? candidates[0] : undefined;
|
|
202
246
|
edges.push({
|
|
203
|
-
id: makeId(
|
|
204
|
-
type:
|
|
247
|
+
id: makeId(edgeType, classNode.id, inheritance.baseName, inheritance.line),
|
|
248
|
+
type: edgeType,
|
|
205
249
|
from: classNode.id,
|
|
206
250
|
to: resolved?.id,
|
|
207
251
|
fromPath: file.path,
|
|
@@ -228,7 +272,7 @@ export async function buildCodebaseIndex(options) {
|
|
|
228
272
|
const inherited = [];
|
|
229
273
|
for (const parentName of parents) {
|
|
230
274
|
const directParent = classByFileAndName.get(classKey(classNode.path, parentName));
|
|
231
|
-
const parentCandidates = directParent ? [directParent] : (
|
|
275
|
+
const parentCandidates = directParent ? [directParent] : (classNodesByName.get(parentName) ?? []);
|
|
232
276
|
for (const parentNode of parentCandidates) {
|
|
233
277
|
inherited.push(...resolveClassMethods(parentNode, methodName, true));
|
|
234
278
|
}
|
|
@@ -257,7 +301,7 @@ export async function buildCodebaseIndex(options) {
|
|
|
257
301
|
const parentCandidates = [];
|
|
258
302
|
for (const parentName of parents) {
|
|
259
303
|
const directParent = callerClassNode ? classByFileAndName.get(classKey(callerClassNode.path, parentName)) : undefined;
|
|
260
|
-
const baseCandidates = directParent ? [directParent] : (
|
|
304
|
+
const baseCandidates = directParent ? [directParent] : (classNodesByName.get(parentName) ?? []);
|
|
261
305
|
for (const parentNode of baseCandidates) {
|
|
262
306
|
parentCandidates.push(...resolveClassMethods(parentNode, call.calleeName, true));
|
|
263
307
|
}
|
|
@@ -266,12 +310,25 @@ export async function buildCodebaseIndex(options) {
|
|
|
266
310
|
candidates = parentCandidates;
|
|
267
311
|
}
|
|
268
312
|
else if (namespaceBinding?.modulePath) {
|
|
269
|
-
|
|
313
|
+
let importedFileSymbols = topLevelSymbolsByFile.get(namespaceBinding.modulePath)?.get(call.calleeName) ?? [];
|
|
314
|
+
if (importedFileSymbols.length === 0) {
|
|
315
|
+
const reExportSource = reExportsByFile.get(namespaceBinding.modulePath)?.get(call.calleeName);
|
|
316
|
+
if (reExportSource) {
|
|
317
|
+
importedFileSymbols = topLevelSymbolsByFile.get(reExportSource)?.get(call.calleeName) ?? [];
|
|
318
|
+
}
|
|
319
|
+
}
|
|
270
320
|
if (importedFileSymbols.length > 0)
|
|
271
321
|
candidates = importedFileSymbols;
|
|
272
322
|
}
|
|
273
323
|
else if (directBinding?.modulePath) {
|
|
274
|
-
const
|
|
324
|
+
const symbolName = directBinding.importedName ?? call.calleeName;
|
|
325
|
+
let importedFileSymbols = topLevelSymbolsByFile.get(directBinding.modulePath)?.get(symbolName) ?? [];
|
|
326
|
+
if (importedFileSymbols.length === 0) {
|
|
327
|
+
const reExportSource = reExportsByFile.get(directBinding.modulePath)?.get(symbolName);
|
|
328
|
+
if (reExportSource) {
|
|
329
|
+
importedFileSymbols = topLevelSymbolsByFile.get(reExportSource)?.get(symbolName) ?? [];
|
|
330
|
+
}
|
|
331
|
+
}
|
|
275
332
|
if (importedFileSymbols.length > 0)
|
|
276
333
|
candidates = importedFileSymbols;
|
|
277
334
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../../src/code/build.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAS7C,SAAS,MAAM,CAAC,MAAc,EAAE,GAAG,KAAyC;IAC1E,OAAO,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAA2B,EAAE,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC9F,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAmB;IAC5C,MAAM,YAAY,GAAqC,EAAE,CAAC;IAC1D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI;YAAE,SAAS;QACpB,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC;IAC9C,CAAC;IACD,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,SAAS,YAAY,CAAC,KAA6B;IACjD,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACnD,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACxB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,IAAI,EAAE,IAAI,CAAC,IAAI;KAChB,CAAC,CAAC,CAAC;AACN,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,OAA6B;IACpE,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAChD,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,QAAQ,EAAE;QACnD,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,WAAW,EAAE,OAAO,CAAC,WAAW;KACjC,CAAC,CAAC;IAEH,MAAM,WAAW,GAAiB,EAAE,CAAC;IACrC,KAAK,MAAM,QAAQ,IAAI,UAAU,EAAE,CAAC;QAClC,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC3D,IAAI,MAAM;YAAE,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,KAAK,GAAe,EAAE,CAAC;IAC7B,MAAM,KAAK,GAAe,EAAE,CAAC;IAC7B,MAAM,eAAe,GAAG,IAAI,GAAG,EAAsB,CAAC;IACtD,MAAM,aAAa,GAAG,IAAI,GAAG,EAAsB,CAAC;IACpD,MAAM,WAAW,GAAG,IAAI,GAAG,EAAoB,CAAC;IAChD,MAAM,aAAa,GAAG,IAAI,GAAG,EAAsB,CAAC;IACpD,MAAM,qBAAqB,GAAG,IAAI,GAAG,EAAmC,CAAC;IACzE,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7D,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAoB,CAAC;IACrD,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAoB,CAAC;IACrD,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAoB,CAAC;IACvD,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAAsB,CAAC;IAC3D,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAAoB,CAAC;IAEzD,MAAM,QAAQ,GAAG,CAAC,QAAgB,EAAE,SAAiB,EAAE,EAAE,CAAC,GAAG,QAAQ,KAAK,SAAS,EAAE,CAAC;IAEtF,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC/B,MAAM,QAAQ,GAAa;YACzB,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC;YAC7B,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;YAC9B,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,IAAI,EAAE,CAAC;YACP,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,UAAU,EAAE,IAAI,CAAC,UAAU;SAC5B,CAAC;QACF,MAAM,UAAU,GAAa;YAC3B,EAAE,EAAE,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC;YAC/B,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,IAAI,CAAC,UAAU;YACrB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,IAAI,EAAE,CAAC;YACP,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,UAAU,EAAE,IAAI,CAAC,UAAU;SAC5B,CAAC;QAEF,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QACjC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACrC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAC5C,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;QAChG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;QAC9H,KAAK,CAAC,IAAI,CAAC;YACT,EAAE,EAAE,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC,EAAE,CAAC;YAClD,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,QAAQ,CAAC,EAAE;YACjB,EAAE,EAAE,UAAU,CAAC,EAAE;YACjB,QAAQ,EAAE,IAAI,CAAC,IAAI;YACnB,MAAM,EAAE,IAAI,CAAC,IAAI;YACjB,MAAM,EAAE,UAAU;YAClB,UAAU,EAAE,UAAU,CAAC,IAAI;SAC5B,CAAC,CAAC;QAEH,MAAM,WAAW,GAAG,IAAI,GAAG,EAAsB,CAAC;QAElD,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClC,MAAM,WAAW,GAAG,MAAM,CAAC,aAAa;gBACtC,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,OAAO,IAAI,SAAS,CAAC,IAAI,KAAK,MAAM,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC;gBAC/J,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC;YAClB,MAAM,IAAI,GAAa;gBACrB,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,aAAa,CAAC;gBAClF,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,WAAW;gBACX,aAAa,EAAE,MAAM,CAAC,aAAa;gBACnC,SAAS,EAAE,MAAM,CAAC,SAAS;aAC5B,CAAC;YACF,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjB,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC,CAAC;YAC3G,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;YAC9E,KAAK,CAAC,IAAI,CAAC;gBACT,EAAE,EAAE,MAAM,CAAC,UAAU,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC;gBAC5C,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,WAAW;gBACjB,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,QAAQ,EAAE,IAAI,CAAC,IAAI;gBACnB,MAAM,EAAE,IAAI,CAAC,IAAI;gBACjB,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,MAAM,EAAE,UAAU;gBAClB,UAAU,EAAE,IAAI,CAAC,IAAI;aACtB,CAAC,CAAC;YAEH,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBAC7B,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;gBAClF,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;oBACvB,MAAM,eAAe,GAAG,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;oBACxF,IAAI,eAAe,EAAE,CAAC;wBACpB,oBAAoB,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,oBAAoB,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;oBAChH,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBACjC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;gBAC9E,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;YAC/D,CAAC;QACH,CAAC;QAED,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC/B,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,QAAQ;YAAE,SAAS;QAExB,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkG,CAAC;QAE3H,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACtC,MAAM,YAAY,GAAG,UAAU,CAAC,YAAY,IAAI,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC;YAC5H,MAAM,UAAU,GAAG,YAAY;gBAC7B,CAAC,CAAC,OAAO;gBACT,CAAC,CAAC,UAAU,CAAC,IAAI,KAAK,UAAU;oBAC9B,CAAC,CAAC,UAAU;oBACZ,CAAC,CAAC,YAAY,CAAC;YACnB,IAAI,UAAU,GAAG,YAAY,CAAC,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAE/E,IAAI,CAAC,UAAU,IAAI,UAAU,KAAK,UAAU,EAAE,CAAC;gBAC7C,UAAU,GAAG;oBACX,EAAE,EAAE,MAAM,CAAC,iBAAiB,EAAE,UAAU,CAAC,SAAS,CAAC;oBACnD,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,UAAU,CAAC,SAAS;oBAC1B,IAAI,EAAE,UAAU,CAAC,SAAS;oBAC1B,YAAY,EAAE,UAAU,CAAC,SAAS;oBAClC,IAAI,EAAE,UAAU,CAAC,IAAI;oBACrB,QAAQ,EAAE,UAAU;oBACpB,UAAU,EAAE,UAAU,CAAC,SAAS;oBAChC,QAAQ,EAAE,IAAI;iBACf,CAAC;gBACF,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC;oBACpD,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;oBACvB,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;gBAClG,CAAC;qBAAM,CAAC;oBACN,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,UAAU,EAAE,EAAE,CAAC,CAAC;gBAC9D,CAAC;YACH,CAAC;YAED,KAAK,CAAC,IAAI,CAAC;gBACT,EAAE,EAAE,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,SAAS,CAAC;gBACzF,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,QAAQ,CAAC,EAAE;gBACjB,EAAE,EAAE,UAAU,EAAE,EAAE;gBAClB,QAAQ,EAAE,IAAI,CAAC,IAAI;gBACnB,MAAM,EAAE,YAAY,IAAI,UAAU,EAAE,IAAI;gBACxC,IAAI,EAAE,UAAU,CAAC,IAAI;gBACrB,MAAM,EAAE,UAAU,KAAK,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU;gBAC/D,UAAU,EAAE,UAAU,EAAE,IAAI,IAAI,UAAU,CAAC,SAAS;gBACpD,SAAS,EAAE,UAAU,CAAC,SAAS;gBAC/B,UAAU;aACX,CAAC,CAAC;YAEH,KAAK,MAAM,OAAO,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;gBAC1C,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE;oBAC9B,YAAY,EAAE,OAAO,CAAC,YAAY;oBAClC,UAAU,EAAE,YAAY;oBACxB,SAAS,EAAE,OAAO,CAAC,WAAW;oBAC9B,SAAS,EAAE,UAAU,CAAC,SAAS;iBAChC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,KAAK,MAAM,WAAW,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YAC5C,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,SAAS,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;YAC7F,MAAM,SAAS,GAAG,gBAAgB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YACpD,IAAI,CAAC,SAAS;gBAAE,SAAS;YACzB,oBAAoB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,oBAAoB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;YAClH,MAAM,eAAe,GAAG,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACtE,MAAM,UAAU,GAAG,eAAe,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC;YACrF,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC;YACxE,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACrE,KAAK,CAAC,IAAI,CAAC;gBACT,EAAE,EAAE,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE,EAAE,WAAW,CAAC,QAAQ,EAAE,WAAW,CAAC,IAAI,CAAC;gBAC5E,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,SAAS,CAAC,EAAE;gBAClB,EAAE,EAAE,QAAQ,EAAE,EAAE;gBAChB,QAAQ,EAAE,IAAI,CAAC,IAAI;gBACnB,MAAM,EAAE,QAAQ,EAAE,IAAI;gBACtB,IAAI,EAAE,WAAW,CAAC,IAAI;gBACtB,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY;gBAClF,UAAU,EAAE,WAAW,CAAC,QAAQ;aACjC,CAAC,CAAC;QACL,CAAC;QAED,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAsB,CAAC;QAC1D,MAAM,mBAAmB,GAAG,CAAC,SAA+B,EAAE,UAAkB,EAAE,cAAuB,EAAc,EAAE;YACvH,IAAI,CAAC,SAAS;gBAAE,OAAO,EAAE,CAAC;YAC1B,MAAM,QAAQ,GAAG,GAAG,SAAS,CAAC,EAAE,IAAI,UAAU,IAAI,cAAc,EAAE,CAAC;YACnE,MAAM,MAAM,GAAG,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACjD,IAAI,MAAM;gBAAE,OAAO,MAAM,CAAC;YAE1B,MAAM,UAAU,GAAG,CAAC,oBAAoB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;YAC3G,IAAI,CAAC,cAAc,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7C,mBAAmB,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;gBAC9C,OAAO,UAAU,CAAC;YACpB,CAAC;YAED,MAAM,OAAO,GAAG,oBAAoB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;YAC7D,MAAM,SAAS,GAAe,EAAE,CAAC;YACjC,KAAK,MAAM,UAAU,IAAI,OAAO,EAAE,CAAC;gBACjC,MAAM,YAAY,GAAG,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;gBAClF,MAAM,gBAAgB,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC/F,KAAK,MAAM,UAAU,IAAI,gBAAgB,EAAE,CAAC;oBAC1C,SAAS,CAAC,IAAI,CAAC,GAAG,mBAAmB,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;gBACvE,CAAC;YACH,CAAC;YAED,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,KAAK,KAAK,CAAC,CAAC;YAC1H,mBAAmB,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAC1C,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC;QAEF,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;YAC3G,MAAM,UAAU,GAAG,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAClD,IAAI,CAAC,UAAU;gBAAE,SAAS;YAE1B,MAAM,YAAY,GAAG,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;YACtF,MAAM,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACnF,MAAM,aAAa,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACpD,MAAM,eAAe,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACrI,IAAI,UAAU,GAAG,YAAY,CAAC;YAE9B,IAAI,IAAI,CAAC,SAAS,KAAK,MAAM,IAAI,IAAI,CAAC,SAAS,KAAK,MAAM,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK,EAAE,CAAC;gBACvF,MAAM,eAAe,GAAG,mBAAmB,CAAC,eAAe,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;gBACpF,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC;oBAAE,UAAU,GAAG,eAAe,CAAC;YAC/D,CAAC;iBAAM,IAAI,IAAI,CAAC,SAAS,KAAK,OAAO,EAAE,CAAC;gBACtC,MAAM,OAAO,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC5F,MAAM,gBAAgB,GAAe,EAAE,CAAC;gBACxC,KAAK,MAAM,UAAU,IAAI,OAAO,EAAE,CAAC;oBACjC,MAAM,YAAY,GAAG,eAAe,CAAC,CAAC,CAAC,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;oBACtH,MAAM,cAAc,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;oBAC7F,KAAK,MAAM,UAAU,IAAI,cAAc,EAAE,CAAC;wBACxC,gBAAgB,CAAC,IAAI,CAAC,GAAG,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;oBACnF,CAAC;gBACH,CAAC;gBACD,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC;oBAAE,UAAU,GAAG,gBAAgB,CAAC;YACjE,CAAC;iBAAM,IAAI,gBAAgB,EAAE,UAAU,EAAE,CAAC;gBACxC,MAAM,mBAAmB,GAAG,qBAAqB,CAAC,GAAG,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;gBAC/G,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC;oBAAE,UAAU,GAAG,mBAAmB,CAAC;YACvE,CAAC;iBAAM,IAAI,aAAa,EAAE,UAAU,EAAE,CAAC;gBACrC,MAAM,mBAAmB,GAAG,qBAAqB,CAAC,GAAG,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,GAAG,CAAC,aAAa,CAAC,YAAY,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;gBAC1I,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC;oBAAE,UAAU,GAAG,mBAAmB,CAAC;YACvE,CAAC;iBAAM,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACnC,UAAU,GAAG,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;YAC1D,CAAC;YAED,MAAM,eAAe,GAAG,aAAa,EAAE,UAAU;gBAC/C,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,aAAa,CAAC,UAAU,CAAC;gBAC7E,CAAC,CAAC,gBAAgB,EAAE,UAAU;oBAC5B,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,gBAAgB,CAAC,UAAU,CAAC;oBAChF,CAAC,CAAC,UAAU,CAAC;YACjB,MAAM,kBAAkB,GAAG,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,UAAU,CAAC;YACrF,MAAM,QAAQ,GAAG,kBAAkB,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAErF,KAAK,CAAC,IAAI,CAAC;gBACT,EAAE,EAAE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC;gBAC9D,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,UAAU,CAAC,EAAE;gBACnB,EAAE,EAAE,QAAQ,EAAE,EAAE;gBAChB,QAAQ,EAAE,IAAI,CAAC,IAAI;gBACnB,MAAM,EAAE,QAAQ,EAAE,IAAI;gBACtB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY;gBAC1F,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,MAAM,EAAE,IAAI,CAAC,SAAS;gBACtB,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,SAAS;aAChH,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO;QACL,QAAQ;QACR,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC9B,GAAG,IAAI;YACP,YAAY,EAAE,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/D,UAAU,EAAE,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC;SAC/C,CAAC,CAAC;QACH,KAAK;QACL,KAAK;QACL,YAAY,EAAE,iBAAiB,CAAC,WAAW,CAAC;KAC7C,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../../src/code/build.ts"],"names":[],"mappings":"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"}
|