@homeflare/config 0.9.0 → 0.10.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/dist/repo-shape/automerge.d.ts +17 -0
- package/dist/repo-shape/automerge.d.ts.map +1 -0
- package/dist/repo-shape/ci.d.ts.map +1 -1
- package/dist/repo-shape/companions.d.ts +2 -6
- package/dist/repo-shape/companions.d.ts.map +1 -1
- package/dist/repo-shape/dependabot.d.ts +35 -0
- package/dist/repo-shape/dependabot.d.ts.map +1 -0
- package/dist/repo-shape/guards.d.ts +25 -0
- package/dist/repo-shape/guards.d.ts.map +1 -0
- package/dist/repo-shape/render.d.ts.map +1 -1
- package/dist/repo-shape/shape.d.ts +40 -2
- package/dist/repo-shape/shape.d.ts.map +1 -1
- package/dist/repo-shape.d.ts +5 -2
- package/dist/repo-shape.d.ts.map +1 -1
- package/dist/repo-shape.js +269 -105
- package/dist/repo-shape.js.map +10 -7
- package/dist/versions.js +68 -31
- package/dist/versions.js.map +6 -5
- package/docs/repo-shape-dependabot.md +126 -0
- package/docs/repo-shape-inputs.md +83 -0
- package/docs/repo-shape.md +5 -23
- package/package.json +1 -1
- package/src/repo-shape/automerge.ts +144 -0
- package/src/repo-shape/ci.ts +35 -16
- package/src/repo-shape/companions.ts +2 -77
- package/src/repo-shape/dependabot.ts +136 -0
- package/src/repo-shape/guards.ts +68 -0
- package/src/repo-shape/render.ts +5 -1
- package/src/repo-shape/shape.ts +51 -35
- package/src/repo-shape.ts +8 -4
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { RepoShape } from './shape.ts';
|
|
2
|
+
/**
|
|
3
|
+
* The branch prefix a job-level `if:` can test with `startsWith`. GitHub's expression
|
|
4
|
+
* language has no regex, so this is the cheap filter that keeps every other pull request
|
|
5
|
+
* from taking a runner slot; `GROUP_BRANCH` is the exact test inside the step.
|
|
6
|
+
*/
|
|
7
|
+
export declare const GROUP_BRANCH_PREFIX: string;
|
|
8
|
+
/**
|
|
9
|
+
* ⛔ EXACT, AND FAILS CLOSED. A solo update of `@homeflare/config` is
|
|
10
|
+
* `dependabot/bun/homeflare/config-0.9.0` and a package named `homeflare-x` would be
|
|
11
|
+
* `dependabot/bun/homeflare-x-1.2.3`; neither matches. If Dependabot ever changes its
|
|
12
|
+
* format, the symptom is a bump that waits for a person — never one merged by mistake.
|
|
13
|
+
*/
|
|
14
|
+
export declare const GROUP_BRANCH: string;
|
|
15
|
+
/** The whole `dependabot-automerge.yml` for a shape. */
|
|
16
|
+
export declare function renderAutomerge(shape: RepoShape): string;
|
|
17
|
+
//# sourceMappingURL=automerge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"automerge.d.ts","sourceRoot":"","sources":["../../src/repo-shape/automerge.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAI5C;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,EAAE,MAA6C,CAAC;AAEhF;;;;;GAKG;AACH,eAAO,MAAM,YAAY,EAAE,MAA+C,CAAC;AA0D3E,wDAAwD;AACxD,wBAAgB,eAAe,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAyCxD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ci.d.ts","sourceRoot":"","sources":["../../src/repo-shape/ci.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"ci.d.ts","sourceRoot":"","sources":["../../src/repo-shape/ci.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,EAAqB,SAAS,EAAE,MAAM,YAAY,CAAC;AAI/D,8DAA8D;AAC9D,eAAO,MAAM,WAAW,UAAU,CAAC;AACnC,kFAAkF;AAClF,eAAO,MAAM,kBAAkB,WAAW,CAAC;AAmL3C,sCAAsC;AACtC,wBAAgB,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAkCjD"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The
|
|
3
|
-
* Dependabot.
|
|
2
|
+
* The two smaller rendered files: actionlint's config and the changeset config.
|
|
3
|
+
* (Dependabot was the third; it grew a group and a schedule rule, so it is `dependabot.ts`.)
|
|
4
4
|
*
|
|
5
5
|
* ★ EACH ONE WAS MEASURED BEFORE IT WAS RENDERED (2026-09-22, across 13 repositories):
|
|
6
6
|
* · `.changeset/config.json` — byte-identical apart from the repository name in 11 of
|
|
@@ -10,8 +10,6 @@
|
|
|
10
10
|
* · `.github/actionlint.yaml` — 12 of 13 had it, with three wordings of one comment.
|
|
11
11
|
* The one without it is the one repository still on `ubuntu-latest`, which is the
|
|
12
12
|
* only case where it is genuinely not needed. That is an input, not an exception.
|
|
13
|
-
* · `.github/dependabot.yml` — 1 of 14. Twelve repositories take no dependency or
|
|
14
|
-
* Action updates at all, and nothing said so. Rendering it is the fix.
|
|
15
13
|
*/
|
|
16
14
|
import type { RepoShape } from './shape.ts';
|
|
17
15
|
/**
|
|
@@ -34,6 +32,4 @@ export declare function renderChangesetConfig(shape: RepoShape): string;
|
|
|
34
32
|
* twelve repositories are green rather than a nicety.
|
|
35
33
|
*/
|
|
36
34
|
export declare function renderActionlintConfig(shape: RepoShape): string | undefined;
|
|
37
|
-
/** `.github/dependabot.yml`. */
|
|
38
|
-
export declare function renderDependabot(shape: RepoShape): string;
|
|
39
35
|
//# sourceMappingURL=companions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"companions.d.ts","sourceRoot":"","sources":["../../src/repo-shape/companions.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"companions.d.ts","sourceRoot":"","sources":["../../src/repo-shape/companions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAS5C;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAiB9D;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,CAgB3E"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `.github/dependabot.yml`, rendered — and the one group that carries kit releases.
|
|
3
|
+
*
|
|
4
|
+
* ★ MEASURED BEFORE IT WAS RENDERED (2026-09-22): 1 of 14 repositories had a Dependabot
|
|
5
|
+
* config. Twelve took no dependency or Action updates at all, and nothing said so.
|
|
6
|
+
*
|
|
7
|
+
* ★ THE `homeflare` GROUP IS HOW A KIT RELEASE REACHES A CONSUMER (Tim, 2026-09-23:
|
|
8
|
+
* "Dependabot, grouped", checked daily, merged on green). Measured the same day, the
|
|
9
|
+
* leg nobody automated had drifted: proxmox and mini pinned `@homeflare/alchemy` 0.13.0
|
|
10
|
+
* while the kit had published 0.19.1. `automerge.ts` renders the workflow that arms
|
|
11
|
+
* auto-merge on this group's pull request and on nothing else.
|
|
12
|
+
*
|
|
13
|
+
* Every Dependabot claim below was read from GitHub's docs or dependabot-core's source on
|
|
14
|
+
* 2026-09-22 (dependabot-core v0.397.0); `docs/repo-shape-dependabot.md` has the citations.
|
|
15
|
+
*/
|
|
16
|
+
import type { RepoShape } from './shape.ts';
|
|
17
|
+
/**
|
|
18
|
+
* The group's identifier. ⛔ IT IS ALSO HALF OF A BRANCH NAME the auto-merge workflow
|
|
19
|
+
* matches — dependabot-core names a group's branch `dependabot/bun/<group>-<10 hex>`
|
|
20
|
+
* (branch_namer/dependency_group_strategy.rb) — so it is exported, not retyped there.
|
|
21
|
+
* Dependabot requires an identifier that starts and ends with a letter.
|
|
22
|
+
*/
|
|
23
|
+
export declare const HOMEFLARE_GROUP = "homeflare";
|
|
24
|
+
/** The first-party scope. Every package the kit publishes is under it. */
|
|
25
|
+
export declare const HOMEFLARE_PATTERN = "@homeflare/*";
|
|
26
|
+
/**
|
|
27
|
+
* ★ SEVEN DAYS FOR THIRD-PARTY VERSIONS. The bun block has to run daily for the kit's sake
|
|
28
|
+
* (see below), so the weekly pace the estate had for everything else is kept by age
|
|
29
|
+
* instead of by calendar: a third-party release is proposed once it is a week old. That
|
|
30
|
+
* is also the supply-chain half — a compromised release is usually yanked within days.
|
|
31
|
+
*/
|
|
32
|
+
export declare const THIRD_PARTY_COOLDOWN_DAYS = 7;
|
|
33
|
+
/** `.github/dependabot.yml`. */
|
|
34
|
+
export declare function renderDependabot(shape: RepoShape): string;
|
|
35
|
+
//# sourceMappingURL=dependabot.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dependabot.d.ts","sourceRoot":"","sources":["../../src/repo-shape/dependabot.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C;;;;;GAKG;AACH,eAAO,MAAM,eAAe,cAAc,CAAC;AAE3C,0EAA0E;AAC1E,eAAO,MAAM,iBAAiB,iBAAiB,CAAC;AAEhD;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAE3C,gCAAgC;AAChC,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAkGzD"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The runtime guards `repo-shape` needs and its types cannot express.
|
|
3
|
+
*
|
|
4
|
+
* ★ EXTRACTED FROM `shape.ts`, NOT INVENTED HERE. The types carry one half of the
|
|
5
|
+
* contract — `Stated<R>` refuses an empty or computed reason at compile time — and
|
|
6
|
+
* these carry the other half: the cases a literal type still lets through. Keeping
|
|
7
|
+
* them in one file is what lets `shape.ts` stay the declaration and nothing else.
|
|
8
|
+
*
|
|
9
|
+
* ⚠️ EVERY MESSAGE STARTS `repo-shape:` AND NAMES THE FIELD. These throw at render or at
|
|
10
|
+
* declaration, far from the workflow file they would otherwise break at job time, so
|
|
11
|
+
* the message is the only thing pointing back at the call that caused it.
|
|
12
|
+
*/
|
|
13
|
+
export declare function requireNonEmpty(field: string, value: string): string;
|
|
14
|
+
export declare function requireSentence(field: string, value: string): string;
|
|
15
|
+
export declare function requireIsoDate(value: string): string;
|
|
16
|
+
/**
|
|
17
|
+
* ⛔ A MAJOR, NOT A RANGE, AND NOT A FLOAT. `actions/setup-node` takes `node-version: 24`
|
|
18
|
+
* and resolves the newest 24.x; a fractional or negative value renders YAML the action
|
|
19
|
+
* accepts and then fails to resolve, mid-job, on the runner.
|
|
20
|
+
*/
|
|
21
|
+
export declare function requireMajor(value: number): number;
|
|
22
|
+
/** `timeout-minutes` must be a positive whole number of minutes. */
|
|
23
|
+
export declare function requireMinutes(value: number): number;
|
|
24
|
+
export declare function requireJobId(value: string): string;
|
|
25
|
+
//# sourceMappingURL=guards.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guards.d.ts","sourceRoot":"","sources":["../../src/repo-shape/guards.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAIpE;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAQpE;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKpD;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKlD;AAED,oEAAoE;AACpE,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKpD;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CASlD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/repo-shape/render.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/repo-shape/render.ts"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE1D,+DAA+D;AAC/D,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B;;;;;OAKG;IACH,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;CACpC;AAED,MAAM,WAAW,YAAY;IAC3B,wEAAwE;IACxE,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACjD;;;;OAIG;IACH,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;CAClC;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,SAAS,GAAG,YAAY,CAgB9D;AAED,0EAA0E;AAC1E,eAAO,MAAM,cAAc,EAAE,SAAS,YAAY,EAOjD,CAAC"}
|
|
@@ -69,7 +69,7 @@ export type JobStep = {
|
|
|
69
69
|
*/
|
|
70
70
|
export type Stated<R extends string> = '' extends R ? never : R;
|
|
71
71
|
/** Paths this package renders. A deviation names one of these, not an arbitrary file. */
|
|
72
|
-
export type RenderedPath = '.changeset/config.json' | '.github/actionlint.yaml' | '.github/dependabot.yml' | '.github/workflows/ci.yml' | '.github/workflows/security.yml';
|
|
72
|
+
export type RenderedPath = '.changeset/config.json' | '.github/actionlint.yaml' | '.github/dependabot.yml' | '.github/workflows/ci.yml' | '.github/workflows/dependabot-automerge.yml' | '.github/workflows/security.yml';
|
|
73
73
|
export interface RepoShapeException {
|
|
74
74
|
/** The rendered file this repository does not take from the renderer. */
|
|
75
75
|
readonly file: RenderedPath;
|
|
@@ -115,10 +115,22 @@ export interface ExtraJob {
|
|
|
115
115
|
readonly needs?: readonly string[];
|
|
116
116
|
/** `false` skips the rendered bun prologue — for a job that needs another toolchain. */
|
|
117
117
|
readonly bun?: boolean;
|
|
118
|
+
/**
|
|
119
|
+
* `timeout-minutes:` for this job. Omitted takes GitHub's 360-minute default.
|
|
120
|
+
*
|
|
121
|
+
* ⚠️ AN INPUT BECAUSE A HUNG JOB IS NOT A FAILED JOB. Measured 2026-09-22:
|
|
122
|
+
* homeflare-blog's `runtime` job drives Playwright against a local workerd, and a
|
|
123
|
+
* browser that never reaches its first paint holds a self-hosted slot for six hours
|
|
124
|
+
* rather than reporting red. On a 3-slot pool that is the whole pool. Only a job
|
|
125
|
+
* that starts something with its own wait — a browser, a server, a container — needs
|
|
126
|
+
* this; `check` does not, because `bun run check` exits.
|
|
127
|
+
*/
|
|
128
|
+
readonly timeout?: number;
|
|
118
129
|
}
|
|
119
|
-
interface ExtraJobInput extends Omit<ExtraJob, 'needs' | 'bun'> {
|
|
130
|
+
interface ExtraJobInput extends Omit<ExtraJob, 'needs' | 'bun' | 'timeout'> {
|
|
120
131
|
readonly needs?: readonly string[];
|
|
121
132
|
readonly bun?: boolean;
|
|
133
|
+
readonly timeout?: number;
|
|
122
134
|
}
|
|
123
135
|
/**
|
|
124
136
|
* Declare a job this repository needs and the standard does not have.
|
|
@@ -140,11 +152,37 @@ export interface RepoShape {
|
|
|
140
152
|
* that differ between `homeflare-kit` and every other repository.
|
|
141
153
|
*/
|
|
142
154
|
readonly publishes: boolean;
|
|
155
|
+
/**
|
|
156
|
+
* Node major to install before Bun, for a repository whose own gate needs a real
|
|
157
|
+
* `node` on `PATH`. Omit it — twelve of fourteen repositories are Bun-only.
|
|
158
|
+
*
|
|
159
|
+
* ⛔ AN INPUT, NOT AN EXCEPTION, AND THE MEASUREMENT SAYS WHY. The mini's job image
|
|
160
|
+
* carries no node at all (ubuntu-latest always did), so a Bun-only prologue is right
|
|
161
|
+
* for most of the estate and *silently wrong* for two repositories:
|
|
162
|
+
* · homeflare-alerts — tests/alchemy-import.test.ts spawns `node` to prove the
|
|
163
|
+
* modules load the way the Alchemy CLI (`node …/cli.js`) loads them. Without it,
|
|
164
|
+
* three tests fail with `Executable not found in $PATH: "node"` (measured on the
|
|
165
|
+
* runner, 2026-09-22).
|
|
166
|
+
* · homeflare-blog — Payload requires Node >= 24.15, so every lane needs it.
|
|
167
|
+
* Both repositories carried the same hand-written `actions/setup-node@v6` block
|
|
168
|
+
* before this existed. Excepting `ci.yml` instead would hand the estate's two most
|
|
169
|
+
* complicated CI files back to hand-editing, which is the opposite of the point.
|
|
170
|
+
*
|
|
171
|
+
* ⚠️ `package-manager-cache: false` IS RENDERED WITH IT. Bun does the installing here;
|
|
172
|
+
* letting setup-node prime an npm cache costs time and caches nothing anyone reads.
|
|
173
|
+
*/
|
|
174
|
+
readonly node?: number;
|
|
143
175
|
/** Jobs beyond `check` and `workflows`. Each carries its own stated reason. */
|
|
144
176
|
readonly extraJobs?: readonly ExtraJob[];
|
|
145
177
|
/** Rendered files this repository keeps its own copy of, each with a reason. */
|
|
146
178
|
readonly exceptions?: readonly RepoShapeException[];
|
|
147
179
|
}
|
|
180
|
+
/**
|
|
181
|
+
* The validated Node major this shape asks for, or `undefined` for a Bun-only prologue.
|
|
182
|
+
* ★ `RepoShape` is a plain object, so this is where `node:` is checked — at render, not
|
|
183
|
+
* at declaration. A bad value fails the refresh rather than the job.
|
|
184
|
+
*/
|
|
185
|
+
export declare function nodeMajor(shape: RepoShape): number | undefined;
|
|
148
186
|
/** `runs-on:` for a runner. */
|
|
149
187
|
export declare function runsOn(runner: RepoRunner): string;
|
|
150
188
|
/** Whether a rendered path is excepted by this shape. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shape.d.ts","sourceRoot":"","sources":["../../src/repo-shape/shape.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;
|
|
1
|
+
{"version":3,"file":"shape.d.ts","sourceRoot":"","sources":["../../src/repo-shape/shape.ts"],"names":[],"mappings":"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"}
|
package/dist/repo-shape.d.ts
CHANGED
|
@@ -17,7 +17,8 @@
|
|
|
17
17
|
* That one file gives the repository:
|
|
18
18
|
*
|
|
19
19
|
* · its FILES — `bun run repo-shape:refresh` writes ci.yml, security.yml,
|
|
20
|
-
* actionlint.yaml, dependabot.yml and
|
|
20
|
+
* dependabot-automerge.yml, actionlint.yaml, dependabot.yml and
|
|
21
|
+
* the changeset config;
|
|
21
22
|
* · its DRIFT GATE — a `bun:test` calling `driftInRepoShape` fails on a hand edit;
|
|
22
23
|
* · its SETTINGS — `renderRepoShape(shape).policy` is the options object
|
|
23
24
|
* `@homeflare/alchemy`'s `declareRepoPolicy` takes, so the ruleset
|
|
@@ -33,8 +34,10 @@
|
|
|
33
34
|
* including the ones with no Alchemy stack, so it belongs to the package they all
|
|
34
35
|
* already have — and it takes no dependency on Alchemy or Effect to get there.
|
|
35
36
|
*/
|
|
37
|
+
export { GROUP_BRANCH, GROUP_BRANCH_PREFIX, renderAutomerge } from './repo-shape/automerge.ts';
|
|
36
38
|
export { renderCi, ACTIONLINT_VERSION, BUN_VERSION } from './repo-shape/ci.ts';
|
|
37
|
-
export { renderActionlintConfig, renderChangesetConfig
|
|
39
|
+
export { renderActionlintConfig, renderChangesetConfig } from './repo-shape/companions.ts';
|
|
40
|
+
export { HOMEFLARE_GROUP, HOMEFLARE_PATTERN, renderDependabot, THIRD_PARTY_COOLDOWN_DAYS, } from './repo-shape/dependabot.ts';
|
|
38
41
|
export { type DriftReport, type Problem, driftInRepoShape, exceptionSummary, REFRESH_COMMAND, } from './repo-shape/drift.ts';
|
|
39
42
|
export { type RefreshResult, refreshRepoShape, repoShapeCli } from './repo-shape/refresh.ts';
|
|
40
43
|
export { type RenderedRepo, type RepoShapePolicy, RENDERED_PATHS, renderRepoShape, } from './repo-shape/render.ts';
|
package/dist/repo-shape.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repo-shape.d.ts","sourceRoot":"","sources":["../src/repo-shape.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"repo-shape.d.ts","sourceRoot":"","sources":["../src/repo-shape.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC/F,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAC3F,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,yBAAyB,GAC1B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,OAAO,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,GAChB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,KAAK,aAAa,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC7F,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,cAAc,EACd,eAAe,GAChB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EACL,KAAK,QAAQ,EACb,KAAK,OAAO,EACZ,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,kBAAkB,EACvB,KAAK,MAAM,EACX,MAAM,EACN,QAAQ,EACR,UAAU,EACV,MAAM,GACP,MAAM,uBAAuB,CAAC"}
|