@grove-dev/core 0.6.1 → 0.8.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.
- package/README.md +100 -23
- package/dist/audit.d.ts +8 -3
- package/dist/audit.d.ts.map +1 -1
- package/dist/audit.js +29 -8
- package/dist/audit.js.map +1 -1
- package/dist/awesome-readme.d.ts.map +1 -1
- package/dist/awesome-readme.js +31 -31
- package/dist/awesome-readme.js.map +1 -1
- package/dist/build-data.d.ts +1 -1
- package/dist/build-data.d.ts.map +1 -1
- package/dist/build-data.js +132 -74
- package/dist/build-data.js.map +1 -1
- package/dist/collections-io.d.ts +1 -1
- package/dist/collections-io.js +8 -8
- package/dist/collections-io.js.map +1 -1
- package/dist/collections.d.ts +2 -2
- package/dist/collections.d.ts.map +1 -1
- package/dist/collections.js +8 -9
- package/dist/collections.js.map +1 -1
- package/dist/collector.d.ts +1 -1
- package/dist/collector.d.ts.map +1 -1
- package/dist/collector.js +2 -2
- package/dist/collector.js.map +1 -1
- package/dist/config.d.ts +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +4 -4
- package/dist/config.js.map +1 -1
- package/dist/content-body.d.ts.map +1 -1
- package/dist/content-body.js +22 -22
- package/dist/content-body.js.map +1 -1
- package/dist/contributors.d.ts.map +1 -1
- package/dist/contributors.js +22 -23
- package/dist/contributors.js.map +1 -1
- package/dist/decisions.d.ts +1 -1
- package/dist/decisions.d.ts.map +1 -1
- package/dist/decisions.js +18 -20
- package/dist/decisions.js.map +1 -1
- package/dist/directory-client.d.ts +6 -4
- package/dist/directory-client.d.ts.map +1 -1
- package/dist/directory-client.js +9 -4
- package/dist/directory-client.js.map +1 -1
- package/dist/directory-facets.d.ts +1 -1
- package/dist/directory-facets.d.ts.map +1 -1
- package/dist/directory-facets.js +35 -17
- package/dist/directory-facets.js.map +1 -1
- package/dist/directory-filter-keys.d.ts +53 -0
- package/dist/directory-filter-keys.d.ts.map +1 -0
- package/dist/directory-filter-keys.js +66 -0
- package/dist/directory-filter-keys.js.map +1 -0
- package/dist/directory-format.d.ts.map +1 -1
- package/dist/directory-format.js +15 -15
- package/dist/directory-format.js.map +1 -1
- package/dist/directory-lenses.d.ts +1 -1
- package/dist/directory-lenses.d.ts.map +1 -1
- package/dist/directory-lenses.js +66 -61
- package/dist/directory-lenses.js.map +1 -1
- package/dist/directory-repo.js +2 -2
- package/dist/directory-scores.d.ts.map +1 -1
- package/dist/directory-scores.js +25 -25
- package/dist/directory-scores.js.map +1 -1
- package/dist/directory-search.d.ts +4 -4
- package/dist/directory-search.d.ts.map +1 -1
- package/dist/directory-search.js +99 -107
- package/dist/directory-search.js.map +1 -1
- package/dist/directory-taxonomy.d.ts +1 -1
- package/dist/directory-taxonomy.d.ts.map +1 -1
- package/dist/directory-taxonomy.js +2 -2
- package/dist/directory-taxonomy.js.map +1 -1
- package/dist/enrich.d.ts.map +1 -1
- package/dist/enrich.js +15 -12
- package/dist/enrich.js.map +1 -1
- package/dist/github-client.js +6 -6
- package/dist/github.d.ts +9 -1
- package/dist/github.d.ts.map +1 -1
- package/dist/github.js +26 -14
- package/dist/github.js.map +1 -1
- package/dist/health.d.ts +1 -1
- package/dist/health.js +44 -44
- package/dist/host.js +2 -2
- package/dist/importer.d.ts +2 -2
- package/dist/importer.d.ts.map +1 -1
- package/dist/importer.js +1 -1
- package/dist/importer.js.map +1 -1
- package/dist/index.d.ts +66 -63
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +86 -75
- package/dist/index.js.map +1 -1
- package/dist/io.js +8 -8
- package/dist/llms.d.ts +1 -1
- package/dist/llms.d.ts.map +1 -1
- package/dist/llms.js +69 -65
- package/dist/llms.js.map +1 -1
- package/dist/markdown.d.ts.map +1 -1
- package/dist/markdown.js.map +1 -1
- package/dist/og-image.d.ts +8 -8
- package/dist/og-image.d.ts.map +1 -1
- package/dist/og-image.js +91 -84
- package/dist/og-image.js.map +1 -1
- package/dist/page-document.d.ts +8 -8
- package/dist/page-document.d.ts.map +1 -1
- package/dist/page-document.js +48 -54
- package/dist/page-document.js.map +1 -1
- package/dist/parseReadme.d.ts.map +1 -1
- package/dist/parseReadme.js +9 -11
- package/dist/parseReadme.js.map +1 -1
- package/dist/prepare.d.ts +5 -5
- package/dist/prepare.d.ts.map +1 -1
- package/dist/prepare.js +46 -35
- package/dist/prepare.js.map +1 -1
- package/dist/related.d.ts +1 -1
- package/dist/schema.d.ts +21 -21
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +134 -141
- package/dist/schema.js.map +1 -1
- package/dist/site-artifacts.js +1 -1
- package/dist/sitemap.d.ts +2 -2
- package/dist/sitemap.d.ts.map +1 -1
- package/dist/sitemap.js +39 -39
- package/dist/sitemap.js.map +1 -1
- package/dist/slug.js +4 -4
- package/dist/sync-icons.js +15 -15
- package/dist/taxonomy-inference.d.ts +27 -0
- package/dist/taxonomy-inference.d.ts.map +1 -0
- package/dist/taxonomy-inference.js +38 -0
- package/dist/taxonomy-inference.js.map +1 -0
- package/dist/validate.d.ts +3 -3
- package/dist/validate.d.ts.map +1 -1
- package/dist/validate.js +56 -58
- package/dist/validate.js.map +1 -1
- package/dist/yaml.d.ts +47 -0
- package/dist/yaml.d.ts.map +1 -0
- package/dist/yaml.js +56 -0
- package/dist/yaml.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,46 +1,109 @@
|
|
|
1
1
|
# `@grove-dev/core`
|
|
2
2
|
|
|
3
|
-
The framework-free engine
|
|
3
|
+
The framework-free engine for Grove. It owns configuration, schemas,
|
|
4
|
+
validation, the data build pipeline, and every maintenance routine
|
|
5
|
+
Grove uses to keep generated outputs in sync with file-backed sources.
|
|
4
6
|
|
|
5
|
-
|
|
7
|
+
Use it when you need to:
|
|
6
8
|
|
|
7
|
-
- `grove.config.ts`
|
|
8
|
-
-
|
|
9
|
-
-
|
|
10
|
-
- GitHub repository and
|
|
11
|
-
- cleanup
|
|
12
|
-
-
|
|
13
|
-
- the unified `prepareDirectory()` pipeline used by Astro and the CLI
|
|
9
|
+
- load and validate a `grove.config.ts`
|
|
10
|
+
- generate normalized JSON datasets, `sitemap.xml`, `robots.txt`,
|
|
11
|
+
`llms.txt`, `llms-full.txt`, and Open Graph images
|
|
12
|
+
- refresh GitHub repository and community metadata
|
|
13
|
+
- classify record health and write the human-review cleanup report
|
|
14
|
+
- build a custom integration on top of the same pipeline Astro uses
|
|
14
15
|
|
|
15
|
-
|
|
16
|
-
|
|
16
|
+
Application-facing code should normally use `@grove-dev/astro`. Direct
|
|
17
|
+
imports from Core are useful for config, tooling, and custom
|
|
18
|
+
integrations.
|
|
19
|
+
|
|
20
|
+
## Install
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
pnpm add @grove-dev/core
|
|
17
24
|
```
|
|
18
25
|
|
|
19
|
-
|
|
26
|
+
Requires Node.js `>=22.12.0`.
|
|
27
|
+
|
|
28
|
+
## Entry points
|
|
20
29
|
|
|
21
|
-
|
|
30
|
+
| Import | Purpose |
|
|
31
|
+
| --- | --- |
|
|
32
|
+
| `@grove-dev/core` | Full engine. Config, build pipeline, schemas, generators, maintenance routines. Server and Node only. |
|
|
33
|
+
| `@grove-dev/core/directory` | Browser-safe subpath. Filtering, sorting, facets, display labels, and lens URL helpers without config or filesystem dependencies. |
|
|
22
34
|
|
|
23
35
|
```ts
|
|
36
|
+
import { defineConfig, prepareDirectory } from "@grove-dev/core";
|
|
24
37
|
import { filterRecords, hrefForLens } from "@grove-dev/core/directory";
|
|
25
38
|
```
|
|
26
39
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
40
|
+
## What Core owns
|
|
41
|
+
|
|
42
|
+
- **Configuration.** `defineConfig`, `loadConfig`, and `GroveConfig` types.
|
|
43
|
+
- **Schemas.** Resource, entity, taxonomy, decision, override, and health
|
|
44
|
+
records validated with Zod.
|
|
45
|
+
- **Generation.** The unified `prepareDirectory()` pipeline plus
|
|
46
|
+
`buildSitemap`, `buildLlmsTxt` / `buildLlmsFullTxt`,
|
|
47
|
+
`buildSiteArtifacts`, and `buildOgImages`.
|
|
48
|
+
- **Validation.** `validateProject` runs against the loaded config and
|
|
49
|
+
reports issues with severity and code.
|
|
50
|
+
- **Maintenance.** `syncContributors`, GitHub metadata refresh
|
|
51
|
+
(`fetchGithubMetadata`, `buildGithubSyncPatch`), and
|
|
52
|
+
`cleanupStale` / `pickCleanupCandidates`.
|
|
53
|
+
- **Browser helpers.** Re-exports from `./directory-*` modules:
|
|
54
|
+
filtering, sorting, scoring, formatting, facets, lenses, taxonomy,
|
|
55
|
+
and lens-aware search.
|
|
56
|
+
|
|
57
|
+
## Typical usage
|
|
58
|
+
|
|
59
|
+
```ts
|
|
60
|
+
import {
|
|
61
|
+
defineConfig,
|
|
62
|
+
loadConfig,
|
|
63
|
+
prepareDirectory,
|
|
64
|
+
validateProject,
|
|
65
|
+
} from "@grove-dev/core";
|
|
66
|
+
|
|
67
|
+
// Define and load configuration
|
|
68
|
+
export default defineConfig({
|
|
69
|
+
site: { /* ... */ },
|
|
70
|
+
sources: { /* ... */ },
|
|
71
|
+
facets: { /* ... */ },
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
const config = await loadConfig();
|
|
75
|
+
|
|
76
|
+
// Validate sources before generating
|
|
77
|
+
const result = await validateProject(config);
|
|
78
|
+
if (!result.ok) {
|
|
79
|
+
for (const issue of result.issues) {
|
|
80
|
+
console.error(`[${issue.severity}] ${issue.code}: ${issue.message}`);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
// Run the unified generation pipeline
|
|
85
|
+
const prepared = await prepareDirectory();
|
|
30
86
|
```
|
|
31
87
|
|
|
88
|
+
`prepareDirectory()` is the same routine Astro runs before
|
|
89
|
+
`astro dev`, `astro check`, and `astro build`. Calling it directly is
|
|
90
|
+
the right choice for custom tooling, CI checks, or non-Astro hosts.
|
|
91
|
+
|
|
32
92
|
## Audit contract
|
|
33
93
|
|
|
34
|
-
|
|
94
|
+
Core defines the page-manifest contract that `grove audit` consumes.
|
|
95
|
+
An `audit` block in `grove.config.ts` lists the pages the CLI will run
|
|
96
|
+
Lighthouse against.
|
|
35
97
|
|
|
36
98
|
### Page types
|
|
37
99
|
|
|
38
|
-
Every entry in `audit.pages[]` must declare one of seven `PageType`
|
|
100
|
+
Every entry in `audit.pages[]` must declare one of seven `PageType`
|
|
101
|
+
values:
|
|
39
102
|
|
|
40
103
|
| Type | Meaning |
|
|
41
104
|
| --- | --- |
|
|
42
105
|
| `home` | The site's landing page. |
|
|
43
|
-
| `directory` | The searchable
|
|
106
|
+
| `directory` | The searchable, filterable index of records. |
|
|
44
107
|
| `collection` | A taxonomy or facet landing page. |
|
|
45
108
|
| `record` | An individual record detail page. |
|
|
46
109
|
| `content` | A long-form content page (about, blog post, etc.). |
|
|
@@ -60,14 +123,19 @@ interface PageManifestEntry {
|
|
|
60
123
|
|
|
61
124
|
### Default budget
|
|
62
125
|
|
|
63
|
-
The audit enforces Lighthouse "good" thresholds — Google's standard
|
|
126
|
+
The audit enforces Lighthouse "good" thresholds — Google's standard
|
|
127
|
+
quality gate — across every score category and metric:
|
|
64
128
|
|
|
65
|
-
- **Score categories** (`performance`, `accessibility`,
|
|
129
|
+
- **Score categories** (`performance`, `accessibility`,
|
|
130
|
+
`best-practices`, `seo`) ≥ 0.9
|
|
66
131
|
- **LCP** ≤ 2500 ms
|
|
67
132
|
- **CLS** ≤ 0.25
|
|
68
133
|
- **TBT** ≤ 200 ms
|
|
69
134
|
|
|
70
|
-
The default is 3 runs per page
|
|
135
|
+
The default is 3 runs per page and profile (mobile + desktop)
|
|
136
|
+
aggregated by median. `grove audit` returns a non-zero exit code on
|
|
137
|
+
any violation, making it a drop-in CI check. Run with `--runs N`
|
|
138
|
+
(clamped to `[1, 5]`) to tune the variance/noise trade-off.
|
|
71
139
|
|
|
72
140
|
### Minimal example
|
|
73
141
|
|
|
@@ -88,4 +156,13 @@ export default defineConfig({
|
|
|
88
156
|
});
|
|
89
157
|
```
|
|
90
158
|
|
|
91
|
-
|
|
159
|
+
## Develop Core
|
|
160
|
+
|
|
161
|
+
```bash
|
|
162
|
+
pnpm --filter @grove-dev/core check
|
|
163
|
+
pnpm --filter @grove-dev/core test
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
## License
|
|
167
|
+
|
|
168
|
+
[MIT](../../LICENSE) © Grove contributors.
|
package/dist/audit.d.ts
CHANGED
|
@@ -1,9 +1,14 @@
|
|
|
1
|
-
export type PageType =
|
|
2
|
-
export type Profile =
|
|
1
|
+
export type PageType = 'home' | 'directory' | 'collection' | 'record' | 'content' | 'empty' | '404';
|
|
2
|
+
export type Profile = 'mobile' | 'desktop';
|
|
3
3
|
export interface PageManifestEntry {
|
|
4
4
|
path: string;
|
|
5
5
|
type: PageType;
|
|
6
6
|
label: string;
|
|
7
|
+
/**
|
|
8
|
+
* @deprecated No-op. Declared since the audit manifest was added but
|
|
9
|
+
* never read by `runAudit` or `parseAuditBlock`. Kept so removing it
|
|
10
|
+
* is not a breaking type change; drop it in the next major.
|
|
11
|
+
*/
|
|
7
12
|
sample?: Record<string, string>;
|
|
8
13
|
}
|
|
9
14
|
export interface LighthouseScores {
|
|
@@ -33,7 +38,7 @@ export interface BudgetConfig {
|
|
|
33
38
|
export interface BudgetViolation {
|
|
34
39
|
page: PageManifestEntry;
|
|
35
40
|
profile: Profile;
|
|
36
|
-
category:
|
|
41
|
+
category: 'score' | 'metric';
|
|
37
42
|
name: keyof LighthouseScores | keyof LighthouseMetrics;
|
|
38
43
|
expected: number;
|
|
39
44
|
actual: number;
|
package/dist/audit.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../src/audit.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,WAAW,GAAG,YAAY,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,KAAK,CAAC;AACpG,MAAM,MAAM,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE3C,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,gBAAgB,CAAC;IACzB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,gBAAgB,CAAC;IACzB,OAAO,EAAE,iBAAiB,CAAC;CAC5B;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,iBAAiB,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC7B,IAAI,EAAE,MAAM,gBAAgB,GAAG,MAAM,iBAAiB,CAAC;IACvD,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;
|
|
1
|
+
{"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../src/audit.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,WAAW,GAAG,YAAY,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,KAAK,CAAC;AACpG,MAAM,MAAM,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE3C,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,gBAAgB,CAAC;IACzB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,gBAAgB,CAAC;IACzB,OAAO,EAAE,iBAAiB,CAAC;CAC5B;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,iBAAiB,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC7B,IAAI,EAAE,MAAM,gBAAgB,GAAG,MAAM,iBAAiB,CAAC;IACvD,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AA0BD,eAAO,MAAM,cAAc,EAAE,YAG5B,CAAC;AAUF,wBAAgB,cAAc,CAC5B,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,iBAAiB,EACvB,MAAM,GAAE,YAA6B,GACpC,eAAe,EAAE,CAqCnB"}
|
package/dist/audit.js
CHANGED
|
@@ -18,19 +18,26 @@
|
|
|
18
18
|
// is real but pre-existing — pinning the budget to the "good"
|
|
19
19
|
// 0.1 threshold made every CI run red without surfacing anything new.
|
|
20
20
|
//
|
|
21
|
-
//
|
|
22
|
-
//
|
|
21
|
+
// Not overridable per project: `auditSchema` accepts only `baseUrl` and
|
|
22
|
+
// `pages`, and `parseAuditBlock` reads nothing else off the config. A
|
|
23
|
+
// project that needs a different gate has to read the `--json` report
|
|
24
|
+
// and apply its own thresholds.
|
|
23
25
|
export const DEFAULT_BUDGET = {
|
|
24
26
|
scores: { performance: 0.9, accessibility: 0.9, bestPractices: 0.9, seo: 0.9 },
|
|
25
27
|
metrics: { lcp: 2500, cls: 0.25, tbt: 200 },
|
|
26
28
|
};
|
|
27
|
-
const SCORE_KEYS = [
|
|
28
|
-
|
|
29
|
+
const SCORE_KEYS = [
|
|
30
|
+
'performance',
|
|
31
|
+
'accessibility',
|
|
32
|
+
'bestPractices',
|
|
33
|
+
'seo',
|
|
34
|
+
];
|
|
35
|
+
const METRIC_KEYS = ['lcp', 'cls', 'tbt'];
|
|
29
36
|
export function evaluateBudget(result, page, budget = DEFAULT_BUDGET) {
|
|
30
37
|
// Lighthouse cannot meaningfully measure 404 responses — all scores come
|
|
31
38
|
// back as 0 and all metrics as Infinity. The audit still runs the page
|
|
32
39
|
// for completeness, but the 100×4 budget does not apply.
|
|
33
|
-
if (page.type ===
|
|
40
|
+
if (page.type === '404')
|
|
34
41
|
return [];
|
|
35
42
|
const violations = [];
|
|
36
43
|
for (const key of SCORE_KEYS) {
|
|
@@ -38,15 +45,29 @@ export function evaluateBudget(result, page, budget = DEFAULT_BUDGET) {
|
|
|
38
45
|
// Lighthouse's SEO category fails its is-crawlable audit on any
|
|
39
46
|
// noindex page — so the SEO score can never reach 1 there. The
|
|
40
47
|
// other three categories still apply in full.
|
|
41
|
-
if (key ===
|
|
48
|
+
if (key === 'seo' && page.type === 'empty')
|
|
42
49
|
continue;
|
|
43
50
|
if (result.scores[key] < budget.scores[key]) {
|
|
44
|
-
violations.push({
|
|
51
|
+
violations.push({
|
|
52
|
+
page,
|
|
53
|
+
profile: result.profile,
|
|
54
|
+
category: 'score',
|
|
55
|
+
name: key,
|
|
56
|
+
expected: budget.scores[key],
|
|
57
|
+
actual: result.scores[key],
|
|
58
|
+
});
|
|
45
59
|
}
|
|
46
60
|
}
|
|
47
61
|
for (const key of METRIC_KEYS) {
|
|
48
62
|
if (result.metrics[key] > budget.metrics[key]) {
|
|
49
|
-
violations.push({
|
|
63
|
+
violations.push({
|
|
64
|
+
page,
|
|
65
|
+
profile: result.profile,
|
|
66
|
+
category: 'metric',
|
|
67
|
+
name: key,
|
|
68
|
+
expected: budget.metrics[key],
|
|
69
|
+
actual: result.metrics[key],
|
|
70
|
+
});
|
|
50
71
|
}
|
|
51
72
|
}
|
|
52
73
|
return violations;
|
package/dist/audit.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audit.js","sourceRoot":"","sources":["../src/audit.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"audit.js","sourceRoot":"","sources":["../src/audit.ts"],"names":[],"mappings":"AAoDA,sEAAsE;AACtE,qEAAqE;AACrE,cAAc;AACd,EAAE;AACF,oEAAoE;AACpE,iEAAiE;AACjE,gEAAgE;AAChE,oEAAoE;AACpE,sEAAsE;AACtE,kEAAkE;AAClE,SAAS;AACT,EAAE;AACF,+CAA+C;AAC/C,oEAAoE;AACpE,oEAAoE;AACpE,oEAAoE;AACpE,qEAAqE;AACrE,8DAA8D;AAC9D,sEAAsE;AACtE,EAAE;AACF,wEAAwE;AACxE,sEAAsE;AACtE,sEAAsE;AACtE,gCAAgC;AAChC,MAAM,CAAC,MAAM,cAAc,GAAiB;IAC1C,MAAM,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;IAC9E,OAAO,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE;CAC5C,CAAC;AAEF,MAAM,UAAU,GAA+B;IAC7C,aAAa;IACb,eAAe;IACf,eAAe;IACf,KAAK;CACN,CAAC;AACF,MAAM,WAAW,GAAgC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAEvE,MAAM,UAAU,cAAc,CAC5B,MAAmB,EACnB,IAAuB,EACvB,SAAuB,cAAc;IAErC,yEAAyE;IACzE,uEAAuE;IACvE,yDAAyD;IACzD,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK;QAAE,OAAO,EAAE,CAAC;IAEnC,MAAM,UAAU,GAAsB,EAAE,CAAC;IACzC,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,2DAA2D;QAC3D,gEAAgE;QAChE,+DAA+D;QAC/D,8CAA8C;QAC9C,IAAI,GAAG,KAAK,KAAK,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO;YAAE,SAAS;QACrD,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5C,UAAU,CAAC,IAAI,CAAC;gBACd,IAAI;gBACJ,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,QAAQ,EAAE,OAAO;gBACjB,IAAI,EAAE,GAAG;gBACT,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC;gBAC5B,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC;aAC3B,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;QAC9B,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9C,UAAU,CAAC,IAAI,CAAC;gBACd,IAAI;gBACJ,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,QAAQ,EAAE,QAAQ;gBAClB,IAAI,EAAE,GAAG;gBACT,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;gBAC7B,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;aAC5B,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"awesome-readme.d.ts","sourceRoot":"","sources":["../src/awesome-readme.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACjC;AAED,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAChC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,cAAc,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACtC;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC7B,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QACjC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QACzB,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;KAC9B,CAAC;IACF,OAAO,EAAE,mBAAmB,EAAE,CAAC;IAC/B,UAAU,EAAE,qBAAqB,EAAE,CAAC;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,oBAAoB,GAAG,SAAS,CAAC;CAC3C;AAED,eAAO,MAAM,oBAAoB,gCAAgC,CAAC;AAClE,eAAO,MAAM,kBAAkB,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"awesome-readme.d.ts","sourceRoot":"","sources":["../src/awesome-readme.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACjC;AAED,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAChC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,cAAc,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACtC;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC7B,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QACjC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QACzB,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;KAC9B,CAAC;IACF,OAAO,EAAE,mBAAmB,EAAE,CAAC;IAC/B,UAAU,EAAE,qBAAqB,EAAE,CAAC;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,oBAAoB,GAAG,SAAS,CAAC;CAC3C;AAED,eAAO,MAAM,oBAAoB,gCAAgC,CAAC;AAClE,eAAO,MAAM,kBAAkB,8BAA8B,CAAC;AA0D9D,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,kBAAkB,GAAG,MAAM,CA8EpE;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,MAAM,GAAG,qBAAqB,CAchF;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAQ9E"}
|
package/dist/awesome-readme.js
CHANGED
|
@@ -11,25 +11,25 @@
|
|
|
11
11
|
* intro, contributing notes, and license section are preserved across
|
|
12
12
|
* regenerations. When the sentinels are absent, a new block is appended.
|
|
13
13
|
*/
|
|
14
|
-
export const AWESOME_README_START =
|
|
15
|
-
export const AWESOME_README_END =
|
|
14
|
+
export const AWESOME_README_START = '<!-- grove-readme:start -->';
|
|
15
|
+
export const AWESOME_README_END = '<!-- grove-readme:end -->';
|
|
16
16
|
const SENTINEL_PATTERN = /<!--\s*grove-readme:start\s*-->[\s\S]*?<!--\s*grove-readme:end\s*-->/;
|
|
17
17
|
function normalizeDescription(value) {
|
|
18
18
|
if (!value)
|
|
19
|
-
return
|
|
20
|
-
const collapsed = value.replace(/\s+/g,
|
|
21
|
-
const stripped = collapsed.replace(/[.!?…]+\s*$/u,
|
|
19
|
+
return '';
|
|
20
|
+
const collapsed = value.replace(/\s+/g, ' ').trim();
|
|
21
|
+
const stripped = collapsed.replace(/[.!?…]+\s*$/u, '');
|
|
22
22
|
return stripped;
|
|
23
23
|
}
|
|
24
24
|
function entryUrl(record) {
|
|
25
|
-
return record.homepageUrl ?? record.repoUrl ??
|
|
25
|
+
return record.homepageUrl ?? record.repoUrl ?? '';
|
|
26
26
|
}
|
|
27
27
|
function entryLabel(record) {
|
|
28
28
|
return record.name?.trim() || record.slug.trim();
|
|
29
29
|
}
|
|
30
30
|
function sortByName(a, b) {
|
|
31
31
|
return entryLabel(a).localeCompare(entryLabel(b), undefined, {
|
|
32
|
-
sensitivity:
|
|
32
|
+
sensitivity: 'base',
|
|
33
33
|
});
|
|
34
34
|
}
|
|
35
35
|
function categoryDisplayName(id, categories) {
|
|
@@ -37,16 +37,16 @@ function categoryDisplayName(id, categories) {
|
|
|
37
37
|
if (match)
|
|
38
38
|
return match.name;
|
|
39
39
|
return id
|
|
40
|
-
.split(
|
|
41
|
-
.map((part) => (part ? part[0].toUpperCase() + part.slice(1) :
|
|
42
|
-
.join(
|
|
40
|
+
.split('-')
|
|
41
|
+
.map((part) => (part ? part[0].toUpperCase() + part.slice(1) : ''))
|
|
42
|
+
.join(' ');
|
|
43
43
|
}
|
|
44
44
|
function categoryAnchor(name) {
|
|
45
45
|
return name
|
|
46
46
|
.toLowerCase()
|
|
47
|
-
.replace(/[^a-z0-9\s-]/g,
|
|
47
|
+
.replace(/[^a-z0-9\s-]/g, '')
|
|
48
48
|
.trim()
|
|
49
|
-
.replace(/\s+/g,
|
|
49
|
+
.replace(/\s+/g, '-');
|
|
50
50
|
}
|
|
51
51
|
function buildEntryLine(record) {
|
|
52
52
|
const label = entryLabel(record);
|
|
@@ -56,7 +56,7 @@ function buildEntryLine(record) {
|
|
|
56
56
|
return desc ? `- ${link} - ${desc}.` : `- ${link}`;
|
|
57
57
|
}
|
|
58
58
|
function isVisible(record) {
|
|
59
|
-
return record.visibility !==
|
|
59
|
+
return record.visibility !== 'hide' && record.visibility !== 'remove';
|
|
60
60
|
}
|
|
61
61
|
function hasLabel(record) {
|
|
62
62
|
return Boolean(record.name?.trim() || record.slug?.trim());
|
|
@@ -84,7 +84,7 @@ export function buildAwesomeReadme(input) {
|
|
|
84
84
|
orderedIds.push(id);
|
|
85
85
|
const grouped = new Map();
|
|
86
86
|
for (const record of visible) {
|
|
87
|
-
const id = record.category ??
|
|
87
|
+
const id = record.category ?? 'other';
|
|
88
88
|
if (!grouped.has(id))
|
|
89
89
|
grouped.set(id, []);
|
|
90
90
|
grouped.get(id).push(record);
|
|
@@ -94,35 +94,35 @@ export function buildAwesomeReadme(input) {
|
|
|
94
94
|
const title = opts.title ?? input.site.name;
|
|
95
95
|
const tagline = opts.tagline ?? opts.description ?? input.site.tagline ?? input.site.description;
|
|
96
96
|
const browseUrl = opts.url ?? input.site.url;
|
|
97
|
-
const browseLabel = opts.browseLabel ??
|
|
97
|
+
const browseLabel = opts.browseLabel ?? 'Browse the full directory →';
|
|
98
98
|
const lines = [];
|
|
99
99
|
lines.push(`# ${title}`);
|
|
100
|
-
lines.push(
|
|
100
|
+
lines.push('');
|
|
101
101
|
if (showBadge) {
|
|
102
|
-
lines.push(
|
|
103
|
-
lines.push(
|
|
102
|
+
lines.push('[](https://awesome.re)');
|
|
103
|
+
lines.push('');
|
|
104
104
|
}
|
|
105
105
|
if (tagline) {
|
|
106
106
|
lines.push(tagline);
|
|
107
|
-
lines.push(
|
|
107
|
+
lines.push('');
|
|
108
108
|
}
|
|
109
109
|
if (showBrowseLink && browseUrl) {
|
|
110
110
|
lines.push(`${browseLabel} ${browseUrl}`);
|
|
111
|
-
lines.push(
|
|
111
|
+
lines.push('');
|
|
112
112
|
}
|
|
113
113
|
if (opts.intro) {
|
|
114
|
-
const introLines = opts.intro.replace(/\n+$/,
|
|
114
|
+
const introLines = opts.intro.replace(/\n+$/, '').split('\n');
|
|
115
115
|
lines.push(...introLines);
|
|
116
|
-
lines.push(
|
|
116
|
+
lines.push('');
|
|
117
117
|
}
|
|
118
118
|
if (showToc) {
|
|
119
|
-
lines.push(
|
|
120
|
-
lines.push(
|
|
119
|
+
lines.push('## Contents');
|
|
120
|
+
lines.push('');
|
|
121
121
|
for (const id of orderedIds) {
|
|
122
122
|
const name = categoryDisplayName(id, input.categories);
|
|
123
123
|
lines.push(`- [${name}](#${categoryAnchor(name)})`);
|
|
124
124
|
}
|
|
125
|
-
lines.push(
|
|
125
|
+
lines.push('');
|
|
126
126
|
}
|
|
127
127
|
for (const id of orderedIds) {
|
|
128
128
|
const name = categoryDisplayName(id, input.categories);
|
|
@@ -130,17 +130,17 @@ export function buildAwesomeReadme(input) {
|
|
|
130
130
|
if (records.length === 0)
|
|
131
131
|
continue;
|
|
132
132
|
lines.push(`## ${name}`);
|
|
133
|
-
lines.push(
|
|
133
|
+
lines.push('');
|
|
134
134
|
for (const record of records)
|
|
135
135
|
lines.push(buildEntryLine(record));
|
|
136
|
-
lines.push(
|
|
136
|
+
lines.push('');
|
|
137
137
|
}
|
|
138
|
-
return lines.join(
|
|
138
|
+
return lines.join('\n').replace(/\n+$/, '\n');
|
|
139
139
|
}
|
|
140
140
|
export function parseAwesomeReadmeSections(readme) {
|
|
141
141
|
const match = readme.match(SENTINEL_PATTERN);
|
|
142
142
|
if (!match || match.index === undefined) {
|
|
143
|
-
return { before: readme, entries:
|
|
143
|
+
return { before: readme, entries: '', after: '' };
|
|
144
144
|
}
|
|
145
145
|
const start = match.index;
|
|
146
146
|
const end = match.index + match[0].length;
|
|
@@ -153,12 +153,12 @@ export function parseAwesomeReadmeSections(readme) {
|
|
|
153
153
|
return { before, entries, after };
|
|
154
154
|
}
|
|
155
155
|
export function injectAwesomeReadmeBlock(readme, block) {
|
|
156
|
-
const trimmed = block.replace(/\n+$/,
|
|
156
|
+
const trimmed = block.replace(/\n+$/, '\n');
|
|
157
157
|
const wrapped = `${AWESOME_README_START}\n${trimmed}${AWESOME_README_END}`;
|
|
158
158
|
if (SENTINEL_PATTERN.test(readme)) {
|
|
159
159
|
return readme.replace(SENTINEL_PATTERN, wrapped);
|
|
160
160
|
}
|
|
161
|
-
const trailing = readme.endsWith(
|
|
161
|
+
const trailing = readme.endsWith('\n') ? readme : `${readme}\n`;
|
|
162
162
|
return `${trailing}\n${wrapped}\n`;
|
|
163
163
|
}
|
|
164
164
|
//# sourceMappingURL=awesome-readme.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"awesome-readme.js","sourceRoot":"","sources":["../src/awesome-readme.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AA6CH,MAAM,CAAC,MAAM,oBAAoB,GAAG,6BAA6B,CAAC;AAClE,MAAM,CAAC,MAAM,kBAAkB,GAAG,2BAA2B,CAAC;AAE9D,MAAM,gBAAgB,GAAG,sEAAsE,CAAC;AAEhG,SAAS,oBAAoB,CAAC,KAAyB;IACrD,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IACtB,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACpD,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;IACvD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,QAAQ,CAAC,MAA2B;IAC3C,OAAO,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;AACpD,CAAC;AAED,SAAS,UAAU,CAAC,MAA2B;IAC7C,OAAO,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;AACnD,CAAC;AAED,SAAS,UAAU,CAAC,CAAsB,EAAE,CAAsB;IAChE,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE;QAC3D,WAAW,EAAE,MAAM;KACpB,CAAC,CAAC;AACL,CAAC;AAED,SAAS,mBAAmB,
|
|
1
|
+
{"version":3,"file":"awesome-readme.js","sourceRoot":"","sources":["../src/awesome-readme.ts"],"names":[],"mappings":"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"}
|
package/dist/build-data.d.ts
CHANGED
package/dist/build-data.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-data.d.ts","sourceRoot":"","sources":["../src/build-data.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"build-data.d.ts","sourceRoot":"","sources":["../src/build-data.ts"],"names":[],"mappings":"AAKA,OAAO,EAGL,KAAK,WAAW,EAUjB,MAAM,aAAa,CAAC;AA0GrB;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACzC;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACzC;AAiDD;;;;;;;;GAQG;AACH,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,wBAAsB,QAAQ,CAAC,GAAG,SAAgB,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC,CAiQjG"}
|