@caretcms/caretize 0.1.0 → 0.1.2
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 +41 -5
- package/dist/bind-collection.js +1 -1
- package/dist/bind-collection.js.map +1 -1
- package/dist/bind-route.d.ts.map +1 -1
- package/dist/bind-route.js +9 -4
- package/dist/bind-route.js.map +1 -1
- package/dist/cli-args.d.ts +16 -1
- package/dist/cli-args.d.ts.map +1 -1
- package/dist/cli-args.js +39 -3
- package/dist/cli-args.js.map +1 -1
- package/dist/cli.js +390 -27
- package/dist/cli.js.map +1 -1
- package/dist/detect.d.ts +17 -1
- package/dist/detect.d.ts.map +1 -1
- package/dist/detect.js +61 -22
- package/dist/detect.js.map +1 -1
- package/dist/diff.d.ts +20 -0
- package/dist/diff.d.ts.map +1 -0
- package/dist/diff.js +75 -0
- package/dist/diff.js.map +1 -0
- package/dist/discover.d.ts.map +1 -1
- package/dist/discover.js +8 -2
- package/dist/discover.js.map +1 -1
- package/dist/escalation.d.ts +47 -0
- package/dist/escalation.d.ts.map +1 -0
- package/dist/escalation.js +112 -0
- package/dist/escalation.js.map +1 -0
- package/dist/frontmatter.d.ts +41 -4
- package/dist/frontmatter.d.ts.map +1 -1
- package/dist/frontmatter.js +122 -12
- package/dist/frontmatter.js.map +1 -1
- package/dist/import-wrap.d.ts +30 -0
- package/dist/import-wrap.d.ts.map +1 -1
- package/dist/import-wrap.js +101 -7
- package/dist/import-wrap.js.map +1 -1
- package/dist/init.d.ts +70 -0
- package/dist/init.d.ts.map +1 -0
- package/dist/init.js +198 -0
- package/dist/init.js.map +1 -0
- package/dist/keys.d.ts +55 -0
- package/dist/keys.d.ts.map +1 -0
- package/dist/keys.js +84 -0
- package/dist/keys.js.map +1 -0
- package/dist/output.d.ts +63 -10
- package/dist/output.d.ts.map +1 -1
- package/dist/output.js +190 -22
- package/dist/output.js.map +1 -1
- package/dist/plan.d.ts +7 -0
- package/dist/plan.d.ts.map +1 -1
- package/dist/plan.js +17 -4
- package/dist/plan.js.map +1 -1
- package/dist/preflight.d.ts +2 -0
- package/dist/preflight.d.ts.map +1 -1
- package/dist/preflight.js +18 -3
- package/dist/preflight.js.map +1 -1
- package/dist/run.js +6 -4
- package/dist/run.js.map +1 -1
- package/dist/select-policy.d.ts +38 -0
- package/dist/select-policy.d.ts.map +1 -0
- package/dist/select-policy.js +44 -0
- package/dist/select-policy.js.map +1 -0
- package/dist/tiers.d.ts +42 -0
- package/dist/tiers.d.ts.map +1 -0
- package/dist/tiers.js +67 -0
- package/dist/tiers.js.map +1 -0
- package/dist/wrap.d.ts +9 -4
- package/dist/wrap.d.ts.map +1 -1
- package/dist/wrap.js +3 -2
- package/dist/wrap.js.map +1 -1
- package/package.json +2 -2
package/dist/output.js
CHANGED
|
@@ -3,6 +3,9 @@
|
|
|
3
3
|
* run result into the exact strings the CLI prints. Kept out of cli.ts (and free
|
|
4
4
|
* of process.stdout) so the formatting is unit-testable in isolation.
|
|
5
5
|
*/
|
|
6
|
+
import { lineDiff, formatHunks } from "./diff.js";
|
|
7
|
+
import { TIERS } from "./tiers.js";
|
|
8
|
+
import { isTagNode } from "./parse.js";
|
|
6
9
|
/** One-line description of a tag candidate, e.g. `<h1> "Hello"` or `<img> src="…"`. */
|
|
7
10
|
export function tagLine(t) {
|
|
8
11
|
const text = t.candidate.text.replace(/\s+/g, " ").slice(0, 50);
|
|
@@ -10,14 +13,19 @@ export function tagLine(t) {
|
|
|
10
13
|
const rich = t.candidate.rich ? " [rich]" : "";
|
|
11
14
|
return `<${t.candidate.tag}>${rich} ${what}`;
|
|
12
15
|
}
|
|
13
|
-
/** The post-scan tally line.
|
|
14
|
-
|
|
16
|
+
/** The post-scan tally line. When the project is already partly tagged
|
|
17
|
+
* (`priorTagged` > 0) this is a RE-RUN: frame candidates as "new" and note how
|
|
18
|
+
* many spots are already editable, so re-running reads as incremental progress
|
|
19
|
+
* rather than a cold scan. */
|
|
20
|
+
export function formatScanSummary(fileCount, plans, wrapsByFile, hoistsByFile, bindsByFile = new Map(), priorTagged = 0) {
|
|
15
21
|
const candidateTotal = plans.reduce((n, p) => n + p.tags.length, 0);
|
|
16
22
|
const wrapTotal = [...wrapsByFile.values()].reduce((n, t) => n + t.length, 0);
|
|
17
23
|
const hoistTotal = [...hoistsByFile.values()].reduce((n, ts) => n + ts.reduce((m, t) => m + t.props.length, 0), 0);
|
|
18
24
|
const bindTotal = [...bindsByFile.values()].reduce((n, b) => n + b.length, 0);
|
|
19
25
|
const bindPart = bindTotal ? ` · ${bindTotal} collection binding(s)` : "";
|
|
20
|
-
|
|
26
|
+
const candidateLabel = priorTagged > 0 ? "new tag candidate(s)" : "tag candidate(s)";
|
|
27
|
+
const priorPart = priorTagged > 0 ? ` · ${priorTagged} already editable` : "";
|
|
28
|
+
return `✓ ${fileCount} .astro files · ${candidateTotal} ${candidateLabel} · ${wrapTotal} wrap target(s) · ${hoistTotal} prop(s)${bindPart}${priorPart}\n`;
|
|
21
29
|
}
|
|
22
30
|
/** The full `--dry-run` plan dump, ending with the "nothing written" footer. */
|
|
23
31
|
export function formatPlan(plans, wrapsByFile, hoistsByFile, bindsByFile = new Map()) {
|
|
@@ -66,44 +74,204 @@ export function formatSummary(files, changes, wrapped, hoisted, flagged, hadBack
|
|
|
66
74
|
out += `⚠ ${flagged} loop(s) flagged → consider dynamic collections\n`;
|
|
67
75
|
if (hadBackups)
|
|
68
76
|
out += `⤺ backups in .caret/.caretize-bak/ (caretize --restore to undo)\n`;
|
|
69
|
-
out += `───────────────────────────────\
|
|
77
|
+
out += `───────────────────────────────\n`;
|
|
70
78
|
return out;
|
|
71
79
|
}
|
|
72
80
|
/**
|
|
73
|
-
* The
|
|
74
|
-
*
|
|
75
|
-
*
|
|
76
|
-
*
|
|
81
|
+
* The single most-important "what now?" line, tailored to where the project
|
|
82
|
+
* actually is in CaretCMS setup. Tagging succeeds even when nothing is editable
|
|
83
|
+
* yet (core not installed / not wired / wrong output mode), so a generic
|
|
84
|
+
* "click to edit" footer is misleading — point at the ONE next step instead.
|
|
77
85
|
*/
|
|
78
|
-
export function
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
86
|
+
export function formatNextStep(pf) {
|
|
87
|
+
if (!pf.hasCaretCore) {
|
|
88
|
+
return (`Next: make these editable — install + wire CaretCMS:\n` +
|
|
89
|
+
` npx caretize init\n` +
|
|
90
|
+
` Static Astro projects use caret({ delivery: "static" }) by default.\n`);
|
|
91
|
+
}
|
|
92
|
+
if (!pf.caretWired) {
|
|
93
|
+
return (`Next: wire CaretCMS — add caret() to the integrations array in your astro.config,\n` +
|
|
94
|
+
` then npm run dev → click to edit.\n`);
|
|
95
|
+
}
|
|
96
|
+
if (pf.outputMode === "static") {
|
|
97
|
+
if (pf.staticDeliveryConfigured) {
|
|
98
|
+
return `Next: npm run dev → sign in at /admin → edit locally; Publish + rebuild bakes static HTML.\n`;
|
|
99
|
+
}
|
|
100
|
+
return (`Next: enable static delivery with caret({ delivery: "static" })\n` +
|
|
101
|
+
` or run: npx caretize init\n`);
|
|
102
|
+
}
|
|
103
|
+
return `Next: npm run dev → open your page → click to edit\n`;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* The grouped "I can also make these editable" offer shown after the default
|
|
107
|
+
* review (interactive mode). Lists only tiers with a non-zero count, in TIERS
|
|
108
|
+
* order, each tagged with its risk note (so the identity-guessing binders are
|
|
109
|
+
* labeled before consent). Returns "" when there's nothing to offer.
|
|
110
|
+
*
|
|
111
|
+
* The prompt question itself (`[Y/n/customize]`) is asked by cli.ts via readline;
|
|
112
|
+
* this renders only the menu body so it stays pure + testable.
|
|
113
|
+
*/
|
|
114
|
+
export function formatEscalationOffer(counts) {
|
|
115
|
+
const lines = [];
|
|
116
|
+
for (const t of TIERS) {
|
|
117
|
+
const n = counts[t.id] ?? 0;
|
|
118
|
+
if (n <= 0)
|
|
119
|
+
continue;
|
|
120
|
+
const flag = t.risk === "guess" ? " ⚠" : "";
|
|
121
|
+
lines.push(` •${flag} ${String(n).padStart(3)} ${t.label} — ${t.note}`);
|
|
122
|
+
}
|
|
123
|
+
if (lines.length === 0)
|
|
124
|
+
return "";
|
|
125
|
+
return `\n I can also make these editable:\n${lines.join("\n")}\n`;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* The `--diff` preview: the actual before→after for every file that would change,
|
|
129
|
+
* as hunks (changed lines + context). Makes the codemod tangible — "show me
|
|
130
|
+
* exactly what you'd insert" — and pairs with the backup/--restore safety net.
|
|
131
|
+
* Files that failed verification are surfaced via `formatFailures` separately.
|
|
132
|
+
*/
|
|
133
|
+
export function formatDiff(prepared) {
|
|
134
|
+
let out = "";
|
|
135
|
+
for (const p of prepared) {
|
|
136
|
+
if (!p.ok || p.tagCount === 0 || p.output === p.source)
|
|
137
|
+
continue;
|
|
138
|
+
const body = formatHunks(lineDiff(p.source, p.output));
|
|
139
|
+
if (body)
|
|
140
|
+
out += `\n${p.relPath}\n${body}`;
|
|
141
|
+
}
|
|
142
|
+
return out || "\n(no changes to preview)\n";
|
|
143
|
+
}
|
|
144
|
+
/** Files whose prepared output failed verification — shown in --dry-run too,
|
|
145
|
+
* so the user learns BEFORE the real run aborts on them. */
|
|
146
|
+
export function formatFailures(prepared) {
|
|
147
|
+
const failing = prepared.filter((p) => !p.ok);
|
|
148
|
+
if (failing.length === 0)
|
|
149
|
+
return "";
|
|
150
|
+
return (failing
|
|
151
|
+
.map((p) => `✗ ${p.relPath} would fail verification: ${p.reason ?? "unknown reason"}`)
|
|
152
|
+
.join("\n") + "\n");
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Collect, from a skipped rich block, the inline descendants carrying a `class`
|
|
156
|
+
* the sanitizer would strip — `tag → class tokens`. A `rich-unsafe-attrs` skip
|
|
157
|
+
* only happens when every descendant is an inline tag, so walking them all is
|
|
158
|
+
* safe. Dynamic class values (`class={x}`) are ignored — only literal tokens are
|
|
159
|
+
* actionable in an `allowedClasses` config.
|
|
160
|
+
*/
|
|
161
|
+
function collectStyledClasses(node, into) {
|
|
162
|
+
if (!node)
|
|
163
|
+
return;
|
|
164
|
+
for (const child of node.children ?? []) {
|
|
165
|
+
if (!isTagNode(child))
|
|
166
|
+
continue;
|
|
167
|
+
const cls = child.attributes.find((a) => a.name === "class")?.value;
|
|
168
|
+
if (cls) {
|
|
169
|
+
for (const token of cls.split(/\s+/)) {
|
|
170
|
+
if (!/^[\w-]+$/.test(token))
|
|
171
|
+
continue; // skip dynamic/garbage tokens
|
|
172
|
+
const tag = child.name.toLowerCase();
|
|
173
|
+
(into.get(tag) ?? into.set(tag, new Set()).get(tag)).add(token);
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
collectStyledClasses(child, into);
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
/** Render `tag → classes` as a copy-pasteable `allowedClasses` object literal. */
|
|
180
|
+
function renderAllowedClasses(byTag) {
|
|
181
|
+
const entries = [...byTag.entries()]
|
|
182
|
+
.sort(([a], [b]) => a.localeCompare(b))
|
|
183
|
+
.map(([tag, classes]) => {
|
|
184
|
+
const list = [...classes].sort().map((c) => `"${c}"`).join(", ");
|
|
185
|
+
return `${tag}: [${list}]`;
|
|
186
|
+
});
|
|
187
|
+
return `{ ${entries.join(", ")} }`;
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* The "what's left + how to get it" summary — so skipped coverage reads as one
|
|
191
|
+
* unmissable checklist line, not four scattered re-run incantations. Every
|
|
192
|
+
* remaining opt-in tier that's still OFF is rolled into a single line that
|
|
193
|
+
* points at `--all` (the one flag), with the individual flags noted once.
|
|
194
|
+
*
|
|
195
|
+
* The styled-class case is kept separate: it isn't unlocked by a tier flag (the
|
|
196
|
+
* sanitizer strips the class regardless) — it needs a CSS move or
|
|
197
|
+
* caret({ allowedClasses }), so it carries its own guidance.
|
|
198
|
+
*
|
|
199
|
+
* Returns "" when there's nothing to say.
|
|
200
|
+
*/
|
|
201
|
+
export function formatHints(plans, opts = {}) {
|
|
202
|
+
let eligible = 0; // rich-eligible (would tag with --rich)
|
|
203
|
+
let styled = 0; // rich-unsafe-attrs (sanitizer strips the class)
|
|
204
|
+
let richClassPromotable = 0; // rich-class-promotable (would tag with --rich-class)
|
|
205
|
+
let inIterator = 0; // inside-iterator (would bind with --bind-collections)
|
|
206
|
+
let belowConfidence = 0; // dropped by the --min-confidence floor
|
|
207
|
+
const styledClasses = new Map(); // tag → classes to bless
|
|
208
|
+
const richClassToBless = new Map(); // classes on rich-class blocks
|
|
82
209
|
for (const p of plans) {
|
|
210
|
+
belowConfidence += p.belowConfidence ?? 0;
|
|
83
211
|
for (const s of p.skipped) {
|
|
84
212
|
if (s.reason === "rich-eligible")
|
|
85
213
|
eligible++;
|
|
86
|
-
else if (s.reason === "rich-unsafe-attrs")
|
|
214
|
+
else if (s.reason === "rich-unsafe-attrs") {
|
|
87
215
|
styled++;
|
|
216
|
+
collectStyledClasses(s.node, styledClasses);
|
|
217
|
+
}
|
|
218
|
+
else if (s.reason === "rich-class-promotable") {
|
|
219
|
+
richClassPromotable++;
|
|
220
|
+
collectStyledClasses(s.node, richClassToBless);
|
|
221
|
+
}
|
|
88
222
|
else if (s.reason === "inside-iterator")
|
|
89
223
|
inIterator++;
|
|
90
224
|
}
|
|
225
|
+
// Once --rich-class is on, the styled-span blocks are TAGGED (not skipped),
|
|
226
|
+
// so harvest their classes from the promoted rich candidates for the
|
|
227
|
+
// post-apply "now bless these" reminder.
|
|
228
|
+
if (opts.richClass) {
|
|
229
|
+
for (const t of p.tags ?? []) {
|
|
230
|
+
if (t.candidate?.rich)
|
|
231
|
+
collectStyledClasses(t.candidate.node, richClassToBless);
|
|
232
|
+
}
|
|
233
|
+
}
|
|
91
234
|
}
|
|
92
235
|
const dynamicRoutes = plans.filter((p) => p.scopeSkip === "dynamic-route").length;
|
|
236
|
+
// The remaining opt-in coverage, each listed only while its tier is off.
|
|
237
|
+
const parts = [];
|
|
238
|
+
if (inIterator && !opts.collections)
|
|
239
|
+
parts.push(`${inIterator} item(s) in dynamic lists`);
|
|
240
|
+
if (dynamicRoutes && !opts.routes)
|
|
241
|
+
parts.push(`${dynamicRoutes} dynamic detail route(s)`);
|
|
242
|
+
if (eligible && !opts.rich)
|
|
243
|
+
parts.push(`${eligible} rich heading(s)`);
|
|
244
|
+
if (belowConfidence && !opts.lowconf)
|
|
245
|
+
parts.push(`${belowConfidence} lower-confidence spot(s)`);
|
|
93
246
|
let out = "";
|
|
94
|
-
if (
|
|
95
|
-
out += `\n↪
|
|
247
|
+
if (parts.length) {
|
|
248
|
+
out += `\n↪ More can be made editable: ${parts.join(", ")}.\n` +
|
|
249
|
+
` Re-run with --all to include them (or the individual flags: ` +
|
|
250
|
+
`--bind-collections --bind-routes --rich --min-confidence low).\n`;
|
|
96
251
|
}
|
|
97
252
|
if (styled) {
|
|
253
|
+
const snippet = styledClasses.size
|
|
254
|
+
? renderAllowedClasses(styledClasses)
|
|
255
|
+
: `{ tag: ["your-class"] }`;
|
|
98
256
|
out += `↪ ${styled} block(s) hold inline styling classes the rich-text sanitizer strips on save.\n` +
|
|
99
|
-
` Move the styling to CSS (style the semantic tag), or bless the
|
|
100
|
-
` caret({ allowedClasses: {
|
|
101
|
-
}
|
|
102
|
-
if (inIterator && !opts.bindCollections) {
|
|
103
|
-
out += `↪ ${inIterator} element(s) render inside collection loops — re-run with --bind-collections to bind them per row.\n`;
|
|
257
|
+
` Move the styling to CSS (style the semantic tag), or bless the classes via\n` +
|
|
258
|
+
` caret({ allowedClasses: ${snippet} }) — then they're safe to tag.\n`;
|
|
104
259
|
}
|
|
105
|
-
|
|
106
|
-
|
|
260
|
+
// Styled-span headings: pre-tag it's a "--rich-class + bless" nudge; once
|
|
261
|
+
// --rich-class is on (richClassToBless populated from the tagged blocks) it's
|
|
262
|
+
// a "you tagged these — now bless them or the class is lost" reminder.
|
|
263
|
+
if (richClassToBless.size) {
|
|
264
|
+
const snippet = renderAllowedClasses(richClassToBless);
|
|
265
|
+
if (opts.richClass) {
|
|
266
|
+
out += `↪ Tagged styled-span heading(s) as rich. Keep their classes — add to caret():\n` +
|
|
267
|
+
` allowedClasses: ${snippet}\n` +
|
|
268
|
+
` Without it, those classes are stripped when an editor saves.\n`;
|
|
269
|
+
}
|
|
270
|
+
else {
|
|
271
|
+
out += `↪ ${richClassPromotable} styled-span heading(s) can be tagged with --rich-class (in --all).\n` +
|
|
272
|
+
` They keep their class only once blessed — add to caret():\n` +
|
|
273
|
+
` allowedClasses: ${snippet}\n`;
|
|
274
|
+
}
|
|
107
275
|
}
|
|
108
276
|
return out;
|
|
109
277
|
}
|
package/dist/output.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"output.js","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"output.js","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"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"}
|
package/dist/plan.d.ts
CHANGED
|
@@ -31,6 +31,10 @@ export interface FilePlan {
|
|
|
31
31
|
tags: PlannedTag[];
|
|
32
32
|
skipped: Skipped[];
|
|
33
33
|
flags: IteratorFlag[];
|
|
34
|
+
/** Count of candidates dropped SOLELY by the confidence floor (would tag at a
|
|
35
|
+
* lower --min-confidence). Drives the "more can be made editable" summary —
|
|
36
|
+
* these are otherwise silently filtered and invisible to the user. */
|
|
37
|
+
belowConfidence: number;
|
|
34
38
|
}
|
|
35
39
|
export interface PlanOptions {
|
|
36
40
|
/** Minimum confidence to include as a proposed tag (default "high"). */
|
|
@@ -41,6 +45,9 @@ export interface PlanOptions {
|
|
|
41
45
|
scope?: Scope;
|
|
42
46
|
/** Promote sanitizer-safe mixed-content blocks to data-caret-rich (--rich). */
|
|
43
47
|
rich?: boolean;
|
|
48
|
+
/** Also promote rich blocks whose inline children carry a class the sanitizer
|
|
49
|
+
* strips unless blessed via allowedClasses (--rich-class). Implies rich. */
|
|
50
|
+
richClass?: boolean;
|
|
44
51
|
}
|
|
45
52
|
export declare function planFile(source: string, relPath: string, options?: PlanOptions, root?: AstroNode): Promise<FilePlan>;
|
|
46
53
|
//# sourceMappingURL=plan.d.ts.map
|
package/dist/plan.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../src/plan.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAwB,KAAK,SAAS,EAAgB,MAAM,YAAY,CAAC;AAChF,OAAO,EAEL,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,OAAO,EACb,MAAM,aAAa,CAAC;AACrB,OAAO,EAA6B,KAAK,KAAK,EAAE,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../src/plan.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAwB,KAAK,SAAS,EAAgB,MAAM,YAAY,CAAC;AAChF,OAAO,EAEL,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,OAAO,EACb,MAAM,aAAa,CAAC;AACrB,OAAO,EAA6B,KAAK,KAAK,EAAE,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AAGpF,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,SAAS,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,mDAAmD;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB,yEAAyE;IACzE,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,UAAU,CAAC;CACxB;AAED,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,iFAAiF;IACjF,SAAS,CAAC,EAAE,WAAW,CAAC;IACxB,IAAI,EAAE,UAAU,EAAE,CAAC;IACnB,OAAO,EAAE,OAAO,EAAE,CAAC;IACnB,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB;;2EAEuE;IACvE,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,WAAW;IAC1B,wEAAwE;IACxE,aAAa,CAAC,EAAE,UAAU,CAAC;IAC3B,oDAAoD;IACpD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,6EAA6E;IAC7E,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,+EAA+E;IAC/E,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;iFAC6E;IAC7E,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAoBD,wBAAsB,QAAQ,CAC5B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,WAAgB,EACzB,IAAI,CAAC,EAAE,SAAS,GACf,OAAO,CAAC,QAAQ,CAAC,CA0DnB"}
|
package/dist/plan.js
CHANGED
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
import { parseAstro, walkTags } from "./parse.js";
|
|
12
12
|
import { detect, } from "./detect.js";
|
|
13
13
|
import { assignFields, deriveScope } from "./name.js";
|
|
14
|
+
import { frontmatterRange, imageComponentNames } from "./frontmatter.js";
|
|
14
15
|
const RANK = { high: 3, medium: 2, low: 1 };
|
|
15
16
|
/** Field name carried by an existing data-caret value (full-triple or field-only). */
|
|
16
17
|
function fieldOf(value) {
|
|
@@ -30,7 +31,15 @@ function existingFields(root) {
|
|
|
30
31
|
export async function planFile(source, relPath, options = {}, root) {
|
|
31
32
|
const minRank = RANK[options.minConfidence ?? "high"];
|
|
32
33
|
const ast = root ?? (await parseAstro(source));
|
|
33
|
-
|
|
34
|
+
// Resolve astro:assets <Image>/<Picture> local names so detect can recognize
|
|
35
|
+
// them as image candidates (forwarded data-caret → rendered <img> src).
|
|
36
|
+
const fm = frontmatterRange(source);
|
|
37
|
+
const imageComponents = imageComponentNames(fm ? source.slice(fm.start, fm.end) : "");
|
|
38
|
+
const { candidates, skipped, flags } = detect(ast, walkTags, {
|
|
39
|
+
rich: options.rich,
|
|
40
|
+
richClass: options.richClass,
|
|
41
|
+
imageComponents,
|
|
42
|
+
});
|
|
34
43
|
// Resolve scope (explicit override wins; otherwise derive from path).
|
|
35
44
|
let scope;
|
|
36
45
|
if (options.scope) {
|
|
@@ -39,19 +48,23 @@ export async function planFile(source, relPath, options = {}, root) {
|
|
|
39
48
|
else {
|
|
40
49
|
const derived = deriveScope(relPath);
|
|
41
50
|
if ("skip" in derived) {
|
|
42
|
-
return { relPath, scopeSkip: derived.skip, tags: [], skipped, flags };
|
|
51
|
+
return { relPath, scopeSkip: derived.skip, tags: [], skipped, flags, belowConfidence: 0 };
|
|
43
52
|
}
|
|
44
53
|
scope = derived.scope;
|
|
45
54
|
}
|
|
46
55
|
// Filter candidates by confidence + image policy, preserving document order.
|
|
47
56
|
// Rich candidates only exist when --rich was requested, so they're always
|
|
48
57
|
// accepted (the confidence floor doesn't gate the explicit opt-in).
|
|
58
|
+
let belowConfidence = 0;
|
|
49
59
|
const accepted = candidates.filter((c) => {
|
|
50
60
|
if (options.noImages && c.kind === "image")
|
|
51
61
|
return false;
|
|
52
62
|
if (c.rich)
|
|
53
63
|
return true;
|
|
54
|
-
|
|
64
|
+
if (RANK[c.confidence] >= minRank)
|
|
65
|
+
return true;
|
|
66
|
+
belowConfidence++; // dropped only by the floor — surface it as remaining coverage
|
|
67
|
+
return false;
|
|
55
68
|
});
|
|
56
69
|
const fields = assignFields(accepted, existingFields(ast));
|
|
57
70
|
const tags = accepted.map((candidate) => {
|
|
@@ -71,6 +84,6 @@ export async function planFile(source, relPath, options = {}, root) {
|
|
|
71
84
|
confidence: candidate.confidence,
|
|
72
85
|
};
|
|
73
86
|
});
|
|
74
|
-
return { relPath, scope, tags, skipped, flags };
|
|
87
|
+
return { relPath, scope, tags, skipped, flags, belowConfidence };
|
|
75
88
|
}
|
|
76
89
|
//# sourceMappingURL=plan.js.map
|
package/dist/plan.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan.js","sourceRoot":"","sources":["../src/plan.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAgC,MAAM,YAAY,CAAC;AAChF,OAAO,EACL,MAAM,GAKP,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,YAAY,EAAE,WAAW,EAAgC,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"plan.js","sourceRoot":"","sources":["../src/plan.ts"],"names":[],"mappings":"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"}
|
package/dist/preflight.d.ts
CHANGED
|
@@ -10,6 +10,8 @@ export interface Preflight {
|
|
|
10
10
|
caretWired: boolean;
|
|
11
11
|
/** Output mode parsed from astro.config: "server" | "hybrid" | "static". */
|
|
12
12
|
outputMode: string;
|
|
13
|
+
/** caret({ delivery: "static" }) appears to be configured. */
|
|
14
|
+
staticDeliveryConfigured: boolean;
|
|
13
15
|
gitRepo: boolean;
|
|
14
16
|
gitClean: boolean | null;
|
|
15
17
|
errors: string[];
|
package/dist/preflight.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preflight.d.ts","sourceRoot":"","sources":["../src/preflight.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,MAAM,WAAW,SAAS;IACxB,cAAc,EAAE,OAAO,CAAC;IACxB,YAAY,EAAE,OAAO,CAAC;IACtB,wEAAwE;IACxE,UAAU,EAAE,OAAO,CAAC;IACpB,4EAA4E;IAC5E,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAC;IACzB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAuCD,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"preflight.d.ts","sourceRoot":"","sources":["../src/preflight.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,MAAM,WAAW,SAAS;IACxB,cAAc,EAAE,OAAO,CAAC;IACxB,YAAY,EAAE,OAAO,CAAC;IACtB,wEAAwE;IACxE,UAAU,EAAE,OAAO,CAAC;IACpB,4EAA4E;IAC5E,UAAU,EAAE,MAAM,CAAC;IACnB,8DAA8D;IAC9D,wBAAwB,EAAE,OAAO,CAAC;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAC;IACzB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAuCD,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CA0EpD"}
|
package/dist/preflight.js
CHANGED
|
@@ -59,6 +59,8 @@ export function preflight(rootDir) {
|
|
|
59
59
|
// the warning below points the user at a mode that exists.
|
|
60
60
|
const outputMatch = config?.match(/output\s*:\s*["'](server|static)["']/);
|
|
61
61
|
const outputMode = outputMatch ? outputMatch[1] : "static";
|
|
62
|
+
const staticDeliveryConfigured = config !== null &&
|
|
63
|
+
/delivery\s*:\s*(?:(["'])static\1|\{[^}]*mode\s*:\s*(["'])static\2)/s.test(config);
|
|
62
64
|
let gitRepo = false;
|
|
63
65
|
let gitClean = null;
|
|
64
66
|
try {
|
|
@@ -84,12 +86,25 @@ export function preflight(rootDir) {
|
|
|
84
86
|
else if (!caretWired) {
|
|
85
87
|
warnings.push("@caretcms/core is installed but caret() is not in astro.config — tags will be inert until you add it to integrations.");
|
|
86
88
|
}
|
|
87
|
-
if (hasCaretCore && outputMode === "static") {
|
|
88
|
-
warnings.push(`output is "static" —
|
|
89
|
+
if (hasCaretCore && outputMode === "static" && staticDeliveryConfigured) {
|
|
90
|
+
warnings.push(`output is "static" with static delivery enabled — caretize can add bindings, and public changes become live after Publish triggers a rebuild and HTML is baked.`);
|
|
91
|
+
}
|
|
92
|
+
else if (hasCaretCore && outputMode === "static") {
|
|
93
|
+
warnings.push(`output is "static" — run caretize init to enable static delivery with caret({ delivery: "static" }), or use output: "server" plus an SSR adapter.`);
|
|
89
94
|
}
|
|
90
95
|
if (gitRepo && gitClean === false) {
|
|
91
96
|
warnings.push("Working tree has uncommitted changes — commit first so you can `git checkout` to undo.");
|
|
92
97
|
}
|
|
93
|
-
return {
|
|
98
|
+
return {
|
|
99
|
+
isAstroProject,
|
|
100
|
+
hasCaretCore,
|
|
101
|
+
caretWired,
|
|
102
|
+
outputMode,
|
|
103
|
+
staticDeliveryConfigured,
|
|
104
|
+
gitRepo,
|
|
105
|
+
gitClean,
|
|
106
|
+
errors,
|
|
107
|
+
warnings,
|
|
108
|
+
};
|
|
94
109
|
}
|
|
95
110
|
//# sourceMappingURL=preflight.js.map
|
package/dist/preflight.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preflight.js","sourceRoot":"","sources":["../src/preflight.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"preflight.js","sourceRoot":"","sources":["../src/preflight.ts"],"names":[],"mappings":"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"}
|
package/dist/run.js
CHANGED
|
@@ -11,14 +11,16 @@ import { resolve } from "node:path";
|
|
|
11
11
|
import { parseAstro } from "./parse.js";
|
|
12
12
|
import { applyTags } from "./write.js";
|
|
13
13
|
import { wrapConst } from "./wrap.js";
|
|
14
|
-
import { wrapImport } from "./import-wrap.js";
|
|
14
|
+
import { wrapImport, wrapNamedImport } from "./import-wrap.js";
|
|
15
15
|
import { hoistPropLiterals, verifyHoistResult } from "./prop-hoist.js";
|
|
16
16
|
import { writeBackup, restoreBackups } from "./backup.js";
|
|
17
17
|
/** Apply the right editable() wrap for a target's origin. */
|
|
18
18
|
function applyWrap(source, t) {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
19
|
+
if (t.origin === "import")
|
|
20
|
+
return wrapImport(source, t.varName, t.key);
|
|
21
|
+
if (t.origin === "named-import")
|
|
22
|
+
return wrapNamedImport(source, t.varName, t.key);
|
|
23
|
+
return wrapConst(source, t.varName, t.key);
|
|
22
24
|
}
|
|
23
25
|
/** Compute and verify a single file's tagged output. No disk access. */
|
|
24
26
|
export async function prepareFile(relPath, source, items) {
|
package/dist/run.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,SAAS,EAAqB,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAmB,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tier selection policy — the ONE pure function that decides which escalation
|
|
3
|
+
* tiers apply, given the user's intent. Every entry point (individual flags,
|
|
4
|
+
* `--all`, and later the in-flow prompt answer / a config file) converges here,
|
|
5
|
+
* so the readline/CLI code only ever RENDERS what this returns — it never
|
|
6
|
+
* decides *what* to apply. That separation is what lets later UX surfaces
|
|
7
|
+
* (config, IDE, watch) be new Intent sources rather than policy rewrites.
|
|
8
|
+
*
|
|
9
|
+
* No I/O. Returns a Set of tier ids; the caller maps those onto the (deliberately
|
|
10
|
+
* heterogeneous) mechanisms — a bind detector, a plan option, a confidence floor.
|
|
11
|
+
*/
|
|
12
|
+
import { type TierId } from "./tiers.js";
|
|
13
|
+
/** The in-flow prompt's answer: accept the recommended bundle, decline, or a
|
|
14
|
+
* customized subset of tier ids. */
|
|
15
|
+
export type PromptAnswer = "yes" | "no" | TierId[];
|
|
16
|
+
export interface Intent {
|
|
17
|
+
/** `--all`: turn on EVERY tier, including the un-recommended ones (lowconf).
|
|
18
|
+
* Named honestly — "all" means all. The curated bundle is `recommendedTiers`. */
|
|
19
|
+
all?: boolean;
|
|
20
|
+
/** The interactive escalation prompt's answer (interactive mode only). */
|
|
21
|
+
promptAnswer?: PromptAnswer;
|
|
22
|
+
/** Per-tier explicit opt-in from the individual flags (and, later, config). */
|
|
23
|
+
flags?: Partial<Record<TierId, boolean>>;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Resolve an intent to the set of enabled escalation tiers. Precedence:
|
|
27
|
+
* - `all` → every tier (incl. lowconf).
|
|
28
|
+
* - `promptAnswer` "yes" → the recommended bundle (collections+routes+rich).
|
|
29
|
+
* - `promptAnswer` "no" → nothing.
|
|
30
|
+
* - `promptAnswer` ids[] → exactly those tiers (customize).
|
|
31
|
+
* - `flags` → exactly the tiers flagged true.
|
|
32
|
+
* - nothing → empty set (today's conservative default).
|
|
33
|
+
*/
|
|
34
|
+
export declare function selectTiers(intent: Intent): Set<TierId>;
|
|
35
|
+
/** The curated bundle the interactive [Y] applies — recommended tiers only
|
|
36
|
+
* (collections + routes + rich; lowconf is left to explicit opt-in / --all). */
|
|
37
|
+
export declare function recommendedTiers(): Set<TierId>;
|
|
38
|
+
//# sourceMappingURL=select-policy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"select-policy.d.ts","sourceRoot":"","sources":["../src/select-policy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAS,KAAK,MAAM,EAAE,MAAM,YAAY,CAAC;AAEhD;qCACqC;AACrC,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,IAAI,GAAG,MAAM,EAAE,CAAC;AAEnD,MAAM,WAAW,MAAM;IACrB;sFACkF;IAClF,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,0EAA0E;IAC1E,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,+EAA+E;IAC/E,KAAK,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CAC1C;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAYvD;AAED;iFACiF;AACjF,wBAAgB,gBAAgB,IAAI,GAAG,CAAC,MAAM,CAAC,CAE9C"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tier selection policy — the ONE pure function that decides which escalation
|
|
3
|
+
* tiers apply, given the user's intent. Every entry point (individual flags,
|
|
4
|
+
* `--all`, and later the in-flow prompt answer / a config file) converges here,
|
|
5
|
+
* so the readline/CLI code only ever RENDERS what this returns — it never
|
|
6
|
+
* decides *what* to apply. That separation is what lets later UX surfaces
|
|
7
|
+
* (config, IDE, watch) be new Intent sources rather than policy rewrites.
|
|
8
|
+
*
|
|
9
|
+
* No I/O. Returns a Set of tier ids; the caller maps those onto the (deliberately
|
|
10
|
+
* heterogeneous) mechanisms — a bind detector, a plan option, a confidence floor.
|
|
11
|
+
*/
|
|
12
|
+
import { TIERS } from "./tiers.js";
|
|
13
|
+
/**
|
|
14
|
+
* Resolve an intent to the set of enabled escalation tiers. Precedence:
|
|
15
|
+
* - `all` → every tier (incl. lowconf).
|
|
16
|
+
* - `promptAnswer` "yes" → the recommended bundle (collections+routes+rich).
|
|
17
|
+
* - `promptAnswer` "no" → nothing.
|
|
18
|
+
* - `promptAnswer` ids[] → exactly those tiers (customize).
|
|
19
|
+
* - `flags` → exactly the tiers flagged true.
|
|
20
|
+
* - nothing → empty set (today's conservative default).
|
|
21
|
+
*/
|
|
22
|
+
export function selectTiers(intent) {
|
|
23
|
+
if (intent.all)
|
|
24
|
+
return new Set(TIERS.map((t) => t.id));
|
|
25
|
+
if (intent.promptAnswer !== undefined) {
|
|
26
|
+
if (intent.promptAnswer === "yes")
|
|
27
|
+
return recommendedTiers();
|
|
28
|
+
if (intent.promptAnswer === "no")
|
|
29
|
+
return new Set();
|
|
30
|
+
return new Set(intent.promptAnswer);
|
|
31
|
+
}
|
|
32
|
+
const set = new Set();
|
|
33
|
+
for (const t of TIERS) {
|
|
34
|
+
if (intent.flags?.[t.id])
|
|
35
|
+
set.add(t.id);
|
|
36
|
+
}
|
|
37
|
+
return set;
|
|
38
|
+
}
|
|
39
|
+
/** The curated bundle the interactive [Y] applies — recommended tiers only
|
|
40
|
+
* (collections + routes + rich; lowconf is left to explicit opt-in / --all). */
|
|
41
|
+
export function recommendedTiers() {
|
|
42
|
+
return new Set(TIERS.filter((t) => t.recommended).map((t) => t.id));
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=select-policy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"select-policy.js","sourceRoot":"","sources":["../src/select-policy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,KAAK,EAAe,MAAM,YAAY,CAAC;AAgBhD;;;;;;;;GAQG;AACH,MAAM,UAAU,WAAW,CAAC,MAAc;IACxC,IAAI,MAAM,CAAC,GAAG;QAAE,OAAO,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACvD,IAAI,MAAM,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QACtC,IAAI,MAAM,CAAC,YAAY,KAAK,KAAK;YAAE,OAAO,gBAAgB,EAAE,CAAC;QAC7D,IAAI,MAAM,CAAC,YAAY,KAAK,IAAI;YAAE,OAAO,IAAI,GAAG,EAAE,CAAC;QACnD,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IACtC,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;iFACiF;AACjF,MAAM,UAAU,gBAAgB;IAC9B,OAAO,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACtE,CAAC"}
|