content-grade 1.0.42 → 1.0.44
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 +24 -17
- package/package.json +1 -1
package/bin/content-grade.js
CHANGED
|
@@ -141,10 +141,10 @@ function showFreeTierCTA(count) {
|
|
|
141
141
|
// Limit reached — that run just worked; now close the sale
|
|
142
142
|
console.log(` ${RD}${B}That was your last free analysis (${limit}/${limit} used).${R}`);
|
|
143
143
|
blank();
|
|
144
|
-
console.log(` ${WH}${B}Pro:
|
|
145
|
-
console.log(` ${WH} ·
|
|
146
|
-
console.log(` ${WH} ·
|
|
147
|
-
console.log(` ${WH} ·
|
|
144
|
+
console.log(` ${WH}${B}Pro: grade every piece you publish — no cap, no resets, ever.${R}`);
|
|
145
|
+
console.log(` ${WH} · No limit — run as many analyses as you need${R}`);
|
|
146
|
+
console.log(` ${WH} · Batch mode: grade your entire /posts/ directory in one shot${R}`);
|
|
147
|
+
console.log(` ${WH} · CI integration: exit codes + JSON/HTML output${R}`);
|
|
148
148
|
blank();
|
|
149
149
|
console.log(` ${MG}${B}→ Get Pro ($9/mo, cancel anytime): ${CY}${UPGRADE_LINKS.free}${R}`);
|
|
150
150
|
blank();
|
|
@@ -153,16 +153,22 @@ function showFreeTierCTA(count) {
|
|
|
153
153
|
console.log(` ${D} 2. Run: ${CY}content-grade activate <your-key>${R}`);
|
|
154
154
|
console.log(` ${D} Already have a key? Run step 2 now.${R}`);
|
|
155
155
|
} else if (remaining <= 2) {
|
|
156
|
-
// 1-2 runs left — loss aversion +
|
|
157
|
-
console.log(` ${YL}${B}${count}/${limit} runs used · ${remaining} free analysis${remaining === 1 ? '' : 'es'}
|
|
156
|
+
// 1-2 runs left — loss aversion + specific Pro value
|
|
157
|
+
console.log(` ${YL}${B}${count}/${limit} runs used · ${remaining} free analysis${remaining === 1 ? '' : 'es'} left${R}`);
|
|
158
158
|
blank();
|
|
159
|
-
console.log(` ${WH}${B}Pro:
|
|
160
|
-
console.log(` ${
|
|
159
|
+
console.log(` ${WH}${B}Pro: no cap, no resets — grade every piece you publish${R}`);
|
|
160
|
+
console.log(` ${WH} · Batch /posts/ directories · CI exit codes · JSON output${R}`);
|
|
161
|
+
console.log(` ${MG}${B}→ Get Pro before you run out ($9/mo): ${CY}${UPGRADE_LINKS.free}${R}`);
|
|
161
162
|
} else {
|
|
162
|
-
// Runs available —
|
|
163
|
+
// Runs available — rotate benefit angle each run to avoid banner blindness
|
|
164
|
+
const nudgeBenefits = [
|
|
165
|
+
`Pro: no cap — grade every piece you publish, no resets`,
|
|
166
|
+
`Pro: batch entire directories at once · no limits, ever`,
|
|
167
|
+
`Pro: CI integration · exit codes + JSON output · unlimited runs`,
|
|
168
|
+
];
|
|
163
169
|
console.log(` ${WH}${count}/${limit} runs used · ${remaining} remaining${R}`);
|
|
164
|
-
console.log(` ${WH}
|
|
165
|
-
console.log(` ${MG}→
|
|
170
|
+
console.log(` ${WH} ${nudgeBenefits[count % 3]}${R}`);
|
|
171
|
+
console.log(` ${MG}→ Get Pro ($9/mo): ${CY}${UPGRADE_LINKS.free}${R}`);
|
|
166
172
|
}
|
|
167
173
|
hr();
|
|
168
174
|
maybeShowFeedbackCTA(count);
|
|
@@ -279,10 +285,10 @@ function checkFreeTierLimit() {
|
|
|
279
285
|
hr();
|
|
280
286
|
console.log(` ${RD}${B}You've used all ${limit} free analyses.${R}`);
|
|
281
287
|
blank();
|
|
282
|
-
console.log(` ${WH}${B}Pro:
|
|
283
|
-
console.log(` ${WH} ·
|
|
284
|
-
console.log(` ${WH} ·
|
|
285
|
-
console.log(` ${WH} ·
|
|
288
|
+
console.log(` ${WH}${B}Pro: grade every piece you publish — no cap, no resets, ever.${R}`);
|
|
289
|
+
console.log(` ${WH} · No limit — run as many analyses as you need${R}`);
|
|
290
|
+
console.log(` ${WH} · Batch mode: grade your entire /posts/ directory in one shot${R}`);
|
|
291
|
+
console.log(` ${WH} · CI integration: exit codes + JSON/HTML output${R}`);
|
|
286
292
|
blank();
|
|
287
293
|
console.log(` ${MG}${B}→ Get Pro ($9/mo, cancel anytime): ${CY}${UPGRADE_LINKS.free}${R}`);
|
|
288
294
|
blank();
|
|
@@ -1074,6 +1080,7 @@ async function cmdActivate() {
|
|
|
1074
1080
|
const productKeyToTier = {
|
|
1075
1081
|
contentgrade_starter: 'starter',
|
|
1076
1082
|
contentgrade_pro: 'pro',
|
|
1083
|
+
contentgrade_business: 'business',
|
|
1077
1084
|
contentgrade_team: 'team',
|
|
1078
1085
|
};
|
|
1079
1086
|
activatedTier = productKeyToTier[data.productKey] || 'pro';
|
|
@@ -1090,6 +1097,7 @@ async function cmdActivate() {
|
|
|
1090
1097
|
blank();
|
|
1091
1098
|
process.exit(1);
|
|
1092
1099
|
}
|
|
1100
|
+
process.stdout.write(' done\n');
|
|
1093
1101
|
} catch {
|
|
1094
1102
|
// Server unreachable — allow offline activation with a warning
|
|
1095
1103
|
process.stdout.write('\n');
|
|
@@ -1098,8 +1106,6 @@ async function cmdActivate() {
|
|
|
1098
1106
|
validated = true;
|
|
1099
1107
|
}
|
|
1100
1108
|
|
|
1101
|
-
process.stdout.write(' done\n');
|
|
1102
|
-
|
|
1103
1109
|
const config = loadConfig();
|
|
1104
1110
|
config.licenseKey = key;
|
|
1105
1111
|
config.tier = activatedTier;
|
|
@@ -2199,6 +2205,7 @@ ping(cmd || 'none');
|
|
|
2199
2205
|
const productKeyToTier = {
|
|
2200
2206
|
contentgrade_starter: 'starter',
|
|
2201
2207
|
contentgrade_pro: 'pro',
|
|
2208
|
+
contentgrade_business: 'business',
|
|
2202
2209
|
contentgrade_team: 'team',
|
|
2203
2210
|
};
|
|
2204
2211
|
updated.tier = productKeyToTier[data.productKey] || 'pro';
|
package/package.json
CHANGED