content-grade 1.0.31 → 1.0.33
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/bin/content-grade.js +20 -19
- package/package.json +1 -1
package/bin/content-grade.js
CHANGED
|
@@ -111,7 +111,7 @@ const TIER_NAMES = {
|
|
|
111
111
|
};
|
|
112
112
|
|
|
113
113
|
const TIER_LIMITS = {
|
|
114
|
-
free:
|
|
114
|
+
free: 5,
|
|
115
115
|
pro: Infinity,
|
|
116
116
|
business: 100,
|
|
117
117
|
team: 500,
|
|
@@ -128,7 +128,7 @@ function getUpgradeMessage() {
|
|
|
128
128
|
// Show usage-aware upgrade CTA after each free run.
|
|
129
129
|
// count = today's usage AFTER this run (1 = first run, 3 = last free run).
|
|
130
130
|
function showFreeTierCTA(count) {
|
|
131
|
-
const limit = TIER_LIMITS.free; //
|
|
131
|
+
const limit = TIER_LIMITS.free; // 5
|
|
132
132
|
const remaining = Math.max(0, limit - count);
|
|
133
133
|
|
|
134
134
|
blank();
|
|
@@ -136,7 +136,7 @@ function showFreeTierCTA(count) {
|
|
|
136
136
|
|
|
137
137
|
if (remaining === 0) {
|
|
138
138
|
// Last free run — strong CTA, no escape hatch
|
|
139
|
-
console.log(` ${RD}${B}${count}/${limit} free analyses used —
|
|
139
|
+
console.log(` ${RD}${B}${count}/${limit} free analyses used — limit reached.${R}`);
|
|
140
140
|
blank();
|
|
141
141
|
console.log(` ${WH}Pro removes the cap. Analyze your entire content backlog,${R}`);
|
|
142
142
|
console.log(` ${WH}run it in CI on every draft, batch-score a whole directory.${R}`);
|
|
@@ -144,8 +144,8 @@ function showFreeTierCTA(count) {
|
|
|
144
144
|
console.log(` ${D}Used by 1,100+ developers. $9/mo, cancel anytime.${R}`);
|
|
145
145
|
blank();
|
|
146
146
|
console.log(` ${MG}${B}→ Get Pro: ${CY}${UPGRADE_LINKS.free}${R}`);
|
|
147
|
-
console.log(` ${
|
|
148
|
-
console.log(` ${
|
|
147
|
+
console.log(` ${WH} After purchase → get your key: ${CY}https://content-grade.onrender.com/my-license${R}`);
|
|
148
|
+
console.log(` ${WH} Have a key? ${CY}content-grade activate <key>${R}`);
|
|
149
149
|
} else if (remaining === 1) {
|
|
150
150
|
// 1 run left — tease Pro features
|
|
151
151
|
console.log(` ${YL}${B}${count}/${limit} free analyses used — 1 left.${R}`);
|
|
@@ -233,18 +233,19 @@ function checkFreeTierLimit() {
|
|
|
233
233
|
|
|
234
234
|
blank();
|
|
235
235
|
hr();
|
|
236
|
-
console.log(` ${YL}${B}${
|
|
236
|
+
console.log(` ${YL}${B}You've used ${usage.count}/${limit} free analyses today.${R}`);
|
|
237
237
|
blank();
|
|
238
|
-
console.log(` ${
|
|
239
|
-
console.log(` ${D}├── Unlimited analyses — no cap, ever${R}`);
|
|
240
|
-
console.log(` ${D}├── Batch mode — score an entire /posts/ directory${R}`);
|
|
241
|
-
console.log(` ${D}├── CI mode — exit 1 on below-threshold content${R}`);
|
|
242
|
-
console.log(` ${D}└── JSON + HTML output — pipe into your pipeline${R}`);
|
|
238
|
+
console.log(` ${WH}${B}Upgrade to Pro — unlimited analyses, $9/mo${R}`);
|
|
243
239
|
blank();
|
|
244
|
-
console.log(` ${D}
|
|
240
|
+
console.log(` ${D}Pro removes the daily cap entirely:${R}`);
|
|
241
|
+
console.log(` ${D} · Unlimited analyses — run as many as you need, every day${R}`);
|
|
242
|
+
console.log(` ${D} · Batch mode — score an entire /posts/ directory at once${R}`);
|
|
243
|
+
console.log(` ${D} · CI mode — gate deploys on content quality${R}`);
|
|
244
|
+
console.log(` ${D} · JSON + HTML output — pipe results into your pipeline${R}`);
|
|
245
245
|
blank();
|
|
246
|
-
console.log(` ${MG}${B}→ ${CY}${UPGRADE_LINKS.free}${R}`);
|
|
247
|
-
|
|
246
|
+
console.log(` ${MG}${B}→ Get Pro ($9/mo): ${CY}${UPGRADE_LINKS.free}${R}`);
|
|
247
|
+
blank();
|
|
248
|
+
console.log(` ${D} After purchase → get your license key: ${CY}https://content-grade.onrender.com/my-license${R}`);
|
|
248
249
|
console.log(` ${D} Already have a key? ${CY}content-grade activate <key>${R}`);
|
|
249
250
|
hr();
|
|
250
251
|
blank();
|
|
@@ -516,7 +517,7 @@ async function cmdAnalyze(filePath) {
|
|
|
516
517
|
process.exit(1);
|
|
517
518
|
}
|
|
518
519
|
|
|
519
|
-
if (checkFreeTierLimit()) { process.exit(
|
|
520
|
+
if (checkFreeTierLimit()) { process.exit(0); }
|
|
520
521
|
|
|
521
522
|
if (!_jsonMode && !_quietMode) {
|
|
522
523
|
banner();
|
|
@@ -756,7 +757,7 @@ async function cmdHeadline(text) {
|
|
|
756
757
|
process.exit(1);
|
|
757
758
|
}
|
|
758
759
|
|
|
759
|
-
if (checkFreeTierLimit()) { process.exit(
|
|
760
|
+
if (checkFreeTierLimit()) { process.exit(0); }
|
|
760
761
|
|
|
761
762
|
if (!_jsonMode && !_quietMode) {
|
|
762
763
|
banner();
|
|
@@ -944,7 +945,7 @@ async function cmdActivate() {
|
|
|
944
945
|
blank();
|
|
945
946
|
console.log(` ${B}Pro features:${R}`);
|
|
946
947
|
console.log(` ${D} content-grade batch ./posts/ ${R}${D}# analyze all files in a directory${R}`);
|
|
947
|
-
console.log(` ${D} Unlimited analyses/day (vs
|
|
948
|
+
console.log(` ${D} Unlimited analyses/day (vs 5 free)${R}`);
|
|
948
949
|
blank();
|
|
949
950
|
return;
|
|
950
951
|
}
|
|
@@ -1297,7 +1298,7 @@ function cmdStart() {
|
|
|
1297
1298
|
info(` EmailForge — ${url}/email-forge`);
|
|
1298
1299
|
info(` AudienceDecoder — ${url}/audience`);
|
|
1299
1300
|
blank();
|
|
1300
|
-
info(`Free tier:
|
|
1301
|
+
info(`Free tier: 5 analyses/day. Unlimited with Pro ($9/mo) → ${UPGRADE_LINKS.free}`);
|
|
1301
1302
|
info(`Press Ctrl+C to stop`);
|
|
1302
1303
|
blank();
|
|
1303
1304
|
openBrowser(url);
|
|
@@ -1568,7 +1569,7 @@ function cmdHelp() {
|
|
|
1568
1569
|
|
|
1569
1570
|
console.log(` ${B}PRICING${R}`);
|
|
1570
1571
|
blank();
|
|
1571
|
-
console.log(` Free
|
|
1572
|
+
console.log(` Free 5/day $0`);
|
|
1572
1573
|
console.log(` Pro Unlimited $9/mo`);
|
|
1573
1574
|
console.log(` Business 100/day $29/mo`);
|
|
1574
1575
|
console.log(` Team 500/day $79/mo`);
|
package/package.json
CHANGED