@begryp/blog-automation-admin 0.1.1 → 0.1.4
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/automation/runner.d.ts +4 -2
- package/dist/automation/runner.d.ts.map +1 -1
- package/dist/automation/runner.js +72 -14
- package/dist/automation/runner.js.map +1 -1
- package/dist/automation/types.d.ts +3 -1
- package/dist/automation/types.d.ts.map +1 -1
- package/dist/automation/types.js +1 -0
- package/dist/automation/types.js.map +1 -1
- package/dist/components/AutoGenerateBlogModal.d.ts.map +1 -1
- package/dist/components/AutoGenerateBlogModal.js +8 -2
- package/dist/components/AutoGenerateBlogModal.js.map +1 -1
- package/dist/components/RichText.d.ts.map +1 -1
- package/dist/components/RichText.js +11 -1
- package/dist/components/RichText.js.map +1 -1
- package/dist/components/Shell.js +1 -1
- package/dist/components/Shell.js.map +1 -1
- package/package.json +3 -3
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { type TenantProfile } from "@begryp/blog-automation-core";
|
|
1
|
+
import { type MarketResearcher, type TenantProfile } from "@begryp/blog-automation-core";
|
|
2
2
|
import { SupabasePublisher } from "../adapters/supabase-publisher.js";
|
|
3
|
-
import type
|
|
3
|
+
import { type BlogAutomationSettings, type GeneratedBlogDraft, type RunBlogAutomationOptions, type RunBlogAutomationResult } from "./types.js";
|
|
4
4
|
/**
|
|
5
5
|
* Normalizes time string (e.g. "09:00 AM" or "14:30") into 24-hour hours and minutes.
|
|
6
6
|
*/
|
|
@@ -30,6 +30,7 @@ export declare function isScheduleDue(settings: BlogAutomationSettings, now?: Da
|
|
|
30
30
|
};
|
|
31
31
|
/**
|
|
32
32
|
* Instantly generates a complete blog draft from a given title and category.
|
|
33
|
+
* If DataForSEO credentials are provided, enriches generation with live SERP market data.
|
|
33
34
|
*/
|
|
34
35
|
export declare function generateInstantDraft(options: {
|
|
35
36
|
topicTitle: string;
|
|
@@ -37,6 +38,7 @@ export declare function generateInstantDraft(options: {
|
|
|
37
38
|
tenant: TenantProfile;
|
|
38
39
|
apiKey?: string;
|
|
39
40
|
publisher?: SupabasePublisher;
|
|
41
|
+
marketResearcher?: MarketResearcher;
|
|
40
42
|
}): Promise<GeneratedBlogDraft>;
|
|
41
43
|
/**
|
|
42
44
|
* Runs a full autonomous cycle with research, deduplication, drafting, and Supabase publishing.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/automation/runner.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/automation/runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,gBAAgB,EAErB,KAAK,aAAa,EAEnB,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAGtE,OAAO,EAEL,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,EACvB,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAC7B,MAAM,YAAY,CAAC;AAIpB;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAarF;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,OAAa;;;;;;;;;EAkClD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,sBAAsB,EAChC,GAAG,OAAa,GACf;IAAE,GAAG,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CA4ClC;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CAAC,OAAO,EAAE;IAClD,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,aAAa,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAC9B,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA6E9B;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,wBAAwB,GAChC,OAAO,CAAC,uBAAuB,CAAC,CA4FlC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { createEngineFromSettings, createLLMClientFromTenant, LLMDrafter } from "@begryp/blog-automation-core";
|
|
1
|
+
import { createEngineFromSettings, createLLMClientFromTenant, LLMDrafter, DataForSEOClient } from "@begryp/blog-automation-core";
|
|
2
2
|
import { DRAFT_PROMPT_VERSION } from "@begryp/blog-automation-prompts";
|
|
3
3
|
import { EnvKeyVault } from "../adapters/env-key-vault.js";
|
|
4
4
|
import { SupabasePublisher } from "../adapters/supabase-publisher.js";
|
|
@@ -77,23 +77,31 @@ export function isScheduleDue(settings, now = new Date()) {
|
|
|
77
77
|
const { hours: targetH, minutes: targetM } = parsePublishTime(settings.publishTime);
|
|
78
78
|
const nowMinutes = nairobi.hour * 60 + nairobi.minute;
|
|
79
79
|
const targetMinutes = targetH * 60 + targetM;
|
|
80
|
-
// Window: from target time up to 120 minutes past
|
|
81
80
|
if (nowMinutes < targetMinutes) {
|
|
82
81
|
return {
|
|
83
82
|
due: false,
|
|
84
83
|
reason: `Scheduled time is ${settings.publishTime} EAT. Current Nairobi time is ${String(nairobi.hour).padStart(2, "0")}:${String(nairobi.minute).padStart(2, "0")} EAT.`
|
|
85
84
|
};
|
|
86
85
|
}
|
|
87
|
-
if (
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
86
|
+
if (settings.lastRunAt) {
|
|
87
|
+
const lastRunDate = new Date(settings.lastRunAt);
|
|
88
|
+
if (!Number.isNaN(lastRunDate.getTime())) {
|
|
89
|
+
const lastRunNairobi = getNairobiDateTime(lastRunDate);
|
|
90
|
+
const lastRunMinutes = lastRunNairobi.hour * 60 + lastRunNairobi.minute;
|
|
91
|
+
if (lastRunNairobi.localIsoDate === nairobi.localIsoDate &&
|
|
92
|
+
lastRunMinutes >= targetMinutes) {
|
|
93
|
+
return {
|
|
94
|
+
due: false,
|
|
95
|
+
reason: `Today's scheduled cycle (${settings.publishTime} EAT) has already executed.`
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
}
|
|
92
99
|
}
|
|
93
100
|
return { due: true, reason: "Schedule matches active publishing window." };
|
|
94
101
|
}
|
|
95
102
|
/**
|
|
96
103
|
* Instantly generates a complete blog draft from a given title and category.
|
|
104
|
+
* If DataForSEO credentials are provided, enriches generation with live SERP market data.
|
|
97
105
|
*/
|
|
98
106
|
export async function generateInstantDraft(options) {
|
|
99
107
|
const { topicTitle, category, tenant } = options;
|
|
@@ -127,7 +135,10 @@ export async function generateInstantDraft(options) {
|
|
|
127
135
|
source: "provided",
|
|
128
136
|
status: "queued"
|
|
129
137
|
};
|
|
130
|
-
const
|
|
138
|
+
const researcher = options.marketResearcher || new DataForSEOClient();
|
|
139
|
+
const targetLocation = tenant.business?.locations?.[0] || "Kenya";
|
|
140
|
+
const marketResearch = (await researcher.research(title, { location: targetLocation })) || undefined;
|
|
141
|
+
const draft = await drafter.draft(topic, tenant, DRAFT_PROMPT_VERSION, catalog, marketResearch);
|
|
131
142
|
const fullHtml = buildFullHtml(draft);
|
|
132
143
|
const readingTime = calculateReadingTime(draft);
|
|
133
144
|
return {
|
|
@@ -149,7 +160,8 @@ export async function generateInstantDraft(options) {
|
|
|
149
160
|
imageBriefs: draft.imageBriefs,
|
|
150
161
|
metaTitle: draft.metaTitle,
|
|
151
162
|
metaDescription: draft.metaDescription,
|
|
152
|
-
lastReviewed: draft.lastReviewed
|
|
163
|
+
lastReviewed: draft.lastReviewed,
|
|
164
|
+
marketResearch: marketResearch || null
|
|
153
165
|
}
|
|
154
166
|
};
|
|
155
167
|
}
|
|
@@ -157,7 +169,7 @@ export async function generateInstantDraft(options) {
|
|
|
157
169
|
* Runs a full autonomous cycle with research, deduplication, drafting, and Supabase publishing.
|
|
158
170
|
*/
|
|
159
171
|
export async function runAutonomousCycle(options) {
|
|
160
|
-
const { supabaseClient, tenant, settings, force } = options;
|
|
172
|
+
const { supabaseClient, tenant, settings, force, marketResearcher } = options;
|
|
161
173
|
if (settings && !force) {
|
|
162
174
|
const check = isScheduleDue(settings);
|
|
163
175
|
if (!check.due) {
|
|
@@ -171,16 +183,62 @@ export async function runAutonomousCycle(options) {
|
|
|
171
183
|
const apiKey = (tenant.llm.keyRef
|
|
172
184
|
? await keyVault.resolveKey(tenant.llm.keyRef)
|
|
173
185
|
: await keyVault.resolveKeyForProvider(tenant.llm.provider)) || "";
|
|
186
|
+
const shouldAutoPublish = typeof settings?.autoPublish === "boolean"
|
|
187
|
+
? settings.autoPublish
|
|
188
|
+
: tenant.approval === "auto";
|
|
189
|
+
const effectiveTenant = {
|
|
190
|
+
...tenant,
|
|
191
|
+
approval: shouldAutoPublish ? "auto" : "review"
|
|
192
|
+
};
|
|
174
193
|
const engine = createEngineFromSettings({
|
|
175
|
-
tenant,
|
|
194
|
+
tenant: effectiveTenant,
|
|
176
195
|
apiKey,
|
|
177
196
|
publisher,
|
|
178
197
|
runStore,
|
|
179
|
-
keyVault
|
|
198
|
+
keyVault,
|
|
199
|
+
marketResearcher
|
|
180
200
|
});
|
|
181
|
-
const run = await engine.runPipeline(
|
|
201
|
+
const run = await engine.runPipeline(effectiveTenant);
|
|
202
|
+
if (run.status === "failed" || !run.postRef) {
|
|
203
|
+
return {
|
|
204
|
+
ok: false,
|
|
205
|
+
run,
|
|
206
|
+
error: run.error || "Pipeline failed to produce a blog post."
|
|
207
|
+
};
|
|
208
|
+
}
|
|
209
|
+
// Guarantee publishing mode matches user preference:
|
|
210
|
+
// If autoPublish is true, ensure the created post is marked published even if QA flagged a soft review notice.
|
|
211
|
+
if (shouldAutoPublish && run.status !== "completed") {
|
|
212
|
+
await publisher.publish(run.postRef);
|
|
213
|
+
}
|
|
214
|
+
// Record lastRunAt in blog_automation_config so scheduled runs do not duplicate on the same day
|
|
215
|
+
try {
|
|
216
|
+
const client = typeof supabaseClient === "function" ? supabaseClient() : supabaseClient;
|
|
217
|
+
const nowIso = new Date().toISOString();
|
|
218
|
+
const updatedSettings = {
|
|
219
|
+
...(settings || {
|
|
220
|
+
enabled: true,
|
|
221
|
+
autoPublish: shouldAutoPublish,
|
|
222
|
+
postsPerWeek: effectiveTenant.schedule?.postsPerWeek || 3,
|
|
223
|
+
publishDays: effectiveTenant.schedule?.publishDays || [1, 3, 5],
|
|
224
|
+
publishTime: "09:00 AM",
|
|
225
|
+
categories: [...(effectiveTenant.topics?.categories || ["General"])],
|
|
226
|
+
targetWordCount: 1200,
|
|
227
|
+
targetGeography: effectiveTenant.business?.locations?.[0] || "Global"
|
|
228
|
+
}),
|
|
229
|
+
lastRunAt: nowIso
|
|
230
|
+
};
|
|
231
|
+
await client.from("blog_automation_config").upsert({
|
|
232
|
+
id: "singleton",
|
|
233
|
+
settings: updatedSettings,
|
|
234
|
+
updated_at: nowIso
|
|
235
|
+
});
|
|
236
|
+
}
|
|
237
|
+
catch {
|
|
238
|
+
// Non-fatal if config table update fails
|
|
239
|
+
}
|
|
182
240
|
return {
|
|
183
|
-
ok:
|
|
241
|
+
ok: true,
|
|
184
242
|
run,
|
|
185
243
|
postId: run.postRef
|
|
186
244
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/automation/runner.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,yBAAyB,EACzB,UAAU,
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/automation/runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import type { Run, TenantProfile } from "@begryp/blog-automation-core";
|
|
1
|
+
import type { MarketResearcher, Run, TenantProfile } from "@begryp/blog-automation-core";
|
|
2
2
|
export interface BlogAutomationSettings {
|
|
3
3
|
enabled: boolean;
|
|
4
|
+
autoPublish?: boolean;
|
|
4
5
|
postsPerWeek: number;
|
|
5
6
|
publishDays: number[];
|
|
6
7
|
publishTime: string;
|
|
@@ -17,6 +18,7 @@ export interface RunBlogAutomationOptions {
|
|
|
17
18
|
tenant: TenantProfile;
|
|
18
19
|
settings?: BlogAutomationSettings;
|
|
19
20
|
force?: boolean;
|
|
21
|
+
marketResearcher?: MarketResearcher;
|
|
20
22
|
}
|
|
21
23
|
export interface RunBlogAutomationResult {
|
|
22
24
|
ok: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/automation/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/automation/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,GAAG,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAEzF,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,QAAQ,GAAG,WAAW,GAAG,QAAQ,CAAC;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,6BAA6B,EAAE,sBAW3C,CAAC;AAEF,MAAM,WAAW,wBAAwB;IACvC,cAAc,EAAE,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;IAClC,MAAM,EAAE,aAAa,CAAC;IACtB,QAAQ,CAAC,EAAE,sBAAsB,CAAC;IAClC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC;AAED,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,OAAO,CAAC;IACZ,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,GAAG,CAAC;IACV,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACxC"}
|
package/dist/automation/types.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/automation/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/automation/types.ts"],"names":[],"mappings":"AAgBA,MAAM,CAAC,MAAM,6BAA6B,GAA2B;IACnE,OAAO,EAAE,IAAI;IACb,WAAW,EAAE,KAAK;IAClB,YAAY,EAAE,CAAC;IACf,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,gBAAgB;IACxC,WAAW,EAAE,UAAU;IACvB,UAAU,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,UAAU,CAAC;IAC7C,eAAe,EAAE,IAAI;IACrB,eAAe,EAAE,oBAAoB;IACrC,QAAQ,EAAE,QAAQ;IAClB,KAAK,EAAE,aAAa;CACrB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AutoGenerateBlogModal.d.ts","sourceRoot":"","sources":["../../src/components/AutoGenerateBlogModal.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAarE,MAAM,WAAW,0BAA0B;IACzC,eAAe,CAAC,EAAE,sBAAsB,CAAC;IACzC,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,cAAc,EAAE,CAAC,QAAQ,EAAE,sBAAsB,KAAK,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/F,aAAa,EAAE,MAAM,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACpH;AAED,wBAAgB,qBAAqB,CAAC,EACpC,eAAe,EACf,mBAA0F,EAC1F,cAAc,EACd,aAAa,EACd,EAAE,0BAA0B,+
|
|
1
|
+
{"version":3,"file":"AutoGenerateBlogModal.d.ts","sourceRoot":"","sources":["../../src/components/AutoGenerateBlogModal.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAarE,MAAM,WAAW,0BAA0B;IACzC,eAAe,CAAC,EAAE,sBAAsB,CAAC;IACzC,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,cAAc,EAAE,CAAC,QAAQ,EAAE,sBAAsB,KAAK,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/F,aAAa,EAAE,MAAM,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACpH;AAED,wBAAgB,qBAAqB,CAAC,EACpC,eAAe,EACf,mBAA0F,EAC1F,cAAc,EACd,aAAa,EACd,EAAE,0BAA0B,+BA6V5B"}
|
|
@@ -73,7 +73,9 @@ export function AutoGenerateBlogModal({ initialSettings, availableCategories = [
|
|
|
73
73
|
setSuccess(`Cycle skipped: ${res.reason}`);
|
|
74
74
|
}
|
|
75
75
|
else {
|
|
76
|
-
setSuccess(
|
|
76
|
+
setSuccess(settings.autoPublish
|
|
77
|
+
? "Success! A new article has been generated and published live to your website."
|
|
78
|
+
: "Success! A new draft has been generated and saved to your review queue.");
|
|
77
79
|
}
|
|
78
80
|
}
|
|
79
81
|
catch (err) {
|
|
@@ -84,7 +86,11 @@ export function AutoGenerateBlogModal({ initialSettings, availableCategories = [
|
|
|
84
86
|
setStatusText("");
|
|
85
87
|
}
|
|
86
88
|
}
|
|
87
|
-
return (_jsxs(_Fragment, { children: [_jsxs("button", { type: "button", onClick: () => setOpen(true), className: "inline-flex items-center gap-2 rounded-lg bg-[var(--admin-primary,#2563eb)] px-3.5 py-2 text-sm font-medium text-white shadow-sm transition hover:opacity-95", children: [_jsx(Sparkles, { className: "size-4" }), _jsx("span", { children: "Automation Settings" })] }), open && (_jsx("div", { className: "fixed inset-0 z-50 flex items-center justify-center bg-slate-900/60 p-4 backdrop-blur-sm", role: "dialog", "aria-modal": "true", children: _jsxs("div", { className: "relative w-full max-w-2xl rounded-2xl bg-white p-6 shadow-2xl transition-all max-h-[90vh] overflow-y-auto", children: [_jsxs("div", { className: "flex items-center justify-between border-b border-slate-100 pb-4", children: [_jsxs("div", { className: "flex items-center gap-3", children: [_jsx("div", { className: "grid size-10 place-items-center rounded-xl bg-[var(--admin-primary,#2563eb)]/10 text-[var(--admin-primary,#2563eb)]", children: _jsx(Sparkles, { className: "size-5" }) }), _jsxs("div", { children: [_jsx("h3", { className: "text-lg font-semibold text-slate-900", children: "AI Blog Automation Engine" }), _jsx("p", { className: "text-xs text-slate-500", children: "Autonomous scheduling, drafting, and quality assurance" })] })] }), _jsx("button", { type: "button", onClick: () => setOpen(false), className: "grid size-8 place-items-center rounded-lg text-slate-400 hover:bg-slate-100 hover:text-slate-600", children: _jsx(X, { className: "size-5" }) })] }), error && (_jsxs("div", { className: "mt-4 flex items-center gap-2 rounded-xl bg-red-50 p-3 text-sm text-red-700", children: [_jsx(AlertCircle, { className: "size-4 shrink-0" }), _jsx("span", { children: error })] })), success && (_jsxs("div", { className: "mt-4 flex items-center gap-2 rounded-xl bg-emerald-50 p-3 text-sm text-emerald-700", children: [_jsx(CheckCircle2, { className: "size-4 shrink-0" }), _jsx("span", { children: success })] })), _jsxs("div", { className: "mt-5 space-y-6", children: [_jsxs("div", { className: "flex items-center justify-between rounded-xl border border-slate-200 bg-slate-50/50 p-4", children: [_jsxs("div", { children: [_jsx("h4", { className: "text-sm font-semibold text-slate-900", children: "Automation Engine" }), _jsx("p", { className: "text-xs text-slate-500", children: "When enabled, articles are drafted according to your weekly schedule." })] }), _jsx("button", { type: "button", onClick: () => setSettings({ ...settings, enabled: !settings.enabled }), className: `relative inline-flex h-6 w-11 shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors duration-200 ease-in-out focus:outline-none ${settings.enabled ? "bg-[var(--admin-primary,#2563eb)]" : "bg-slate-300"}`, children: _jsx("span", { className: `pointer-events-none inline-block size-5 transform rounded-full bg-white shadow ring-0 transition duration-200 ease-in-out ${settings.enabled ? "translate-x-5" : "translate-x-0"}` }) })] }), _jsxs("div", { children: [_jsxs("
|
|
89
|
+
return (_jsxs(_Fragment, { children: [_jsxs("button", { type: "button", onClick: () => setOpen(true), className: "inline-flex items-center gap-2 rounded-lg bg-[var(--admin-primary,#2563eb)] px-3.5 py-2 text-sm font-medium text-white shadow-sm transition hover:opacity-95", children: [_jsx(Sparkles, { className: "size-4" }), _jsx("span", { children: "Automation Settings" })] }), open && (_jsx("div", { className: "fixed inset-0 z-50 flex items-center justify-center bg-slate-900/60 p-4 backdrop-blur-sm", role: "dialog", "aria-modal": "true", children: _jsxs("div", { className: "relative w-full max-w-2xl rounded-2xl bg-white p-6 shadow-2xl transition-all max-h-[90vh] overflow-y-auto", children: [_jsxs("div", { className: "flex items-center justify-between border-b border-slate-100 pb-4", children: [_jsxs("div", { className: "flex items-center gap-3", children: [_jsx("div", { className: "grid size-10 place-items-center rounded-xl bg-[var(--admin-primary,#2563eb)]/10 text-[var(--admin-primary,#2563eb)]", children: _jsx(Sparkles, { className: "size-5" }) }), _jsxs("div", { children: [_jsx("h3", { className: "text-lg font-semibold text-slate-900", children: "AI Blog Automation Engine" }), _jsx("p", { className: "text-xs text-slate-500", children: "Autonomous scheduling, drafting, and quality assurance" })] })] }), _jsx("button", { type: "button", onClick: () => setOpen(false), className: "grid size-8 place-items-center rounded-lg text-slate-400 hover:bg-slate-100 hover:text-slate-600", children: _jsx(X, { className: "size-5" }) })] }), error && (_jsxs("div", { className: "mt-4 flex items-center gap-2 rounded-xl bg-red-50 p-3 text-sm text-red-700", children: [_jsx(AlertCircle, { className: "size-4 shrink-0" }), _jsx("span", { children: error })] })), success && (_jsxs("div", { className: "mt-4 flex items-center gap-2 rounded-xl bg-emerald-50 p-3 text-sm text-emerald-700", children: [_jsx(CheckCircle2, { className: "size-4 shrink-0" }), _jsx("span", { children: success })] })), _jsxs("div", { className: "mt-5 space-y-6", children: [_jsxs("div", { className: "flex items-center justify-between rounded-xl border border-slate-200 bg-slate-50/50 p-4", children: [_jsxs("div", { children: [_jsx("h4", { className: "text-sm font-semibold text-slate-900", children: "Automation Engine" }), _jsx("p", { className: "text-xs text-slate-500", children: "When enabled, articles are drafted according to your weekly schedule." })] }), _jsx("button", { type: "button", onClick: () => setSettings({ ...settings, enabled: !settings.enabled }), className: `relative inline-flex h-6 w-11 shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors duration-200 ease-in-out focus:outline-none ${settings.enabled ? "bg-[var(--admin-primary,#2563eb)]" : "bg-slate-300"}`, children: _jsx("span", { className: `pointer-events-none inline-block size-5 transform rounded-full bg-white shadow ring-0 transition duration-200 ease-in-out ${settings.enabled ? "translate-x-5" : "translate-x-0"}` }) })] }), _jsxs("div", { className: "flex items-center justify-between rounded-xl border border-slate-200 bg-slate-50/50 p-4", children: [_jsxs("div", { children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("h4", { className: "text-sm font-semibold text-slate-900", children: "Publishing Mode" }), _jsx("span", { className: `rounded-full px-2 py-0.5 text-[10px] font-bold uppercase tracking-wider ${settings.autoPublish
|
|
90
|
+
? "bg-emerald-100 text-emerald-800"
|
|
91
|
+
: "bg-amber-100 text-amber-800"}`, children: settings.autoPublish ? "Auto-Publish (Live)" : "Draft (Pending Review)" })] }), _jsx("p", { className: "text-xs text-slate-500 mt-0.5", children: settings.autoPublish
|
|
92
|
+
? "Generated articles are immediately published live to your website."
|
|
93
|
+
: "Generated articles are saved as drafts in your queue for human review." })] }), _jsx("button", { type: "button", onClick: () => setSettings({ ...settings, autoPublish: !settings.autoPublish }), className: `relative inline-flex h-6 w-11 shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors duration-200 ease-in-out focus:outline-none ${settings.autoPublish ? "bg-emerald-600" : "bg-slate-300"}`, "aria-label": "Toggle auto-publish mode", children: _jsx("span", { className: `pointer-events-none inline-block size-5 transform rounded-full bg-white shadow ring-0 transition duration-200 ease-in-out ${settings.autoPublish ? "translate-x-5" : "translate-x-0"}` }) })] }), _jsxs("div", { children: [_jsxs("label", { className: "mb-2 flex items-center gap-1.5 text-xs font-semibold uppercase tracking-wider text-slate-600", children: [_jsx(Calendar, { className: "size-4" }), "Publishing Schedule Days"] }), _jsx("div", { className: "grid grid-cols-7 gap-2", children: DAYS_OF_WEEK.map(({ day, label }) => {
|
|
88
94
|
const active = (settings.publishDays || []).includes(day);
|
|
89
95
|
return (_jsx("button", { type: "button", onClick: () => toggleDay(day), className: `flex h-11 flex-col items-center justify-center rounded-xl border text-xs font-semibold transition ${active
|
|
90
96
|
? "border-[var(--admin-primary,#2563eb)] bg-[var(--admin-primary,#2563eb)] text-white shadow-sm"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AutoGenerateBlogModal.js","sourceRoot":"","sources":["../../src/components/AutoGenerateBlogModal.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"AutoGenerateBlogModal.js","sourceRoot":"","sources":["../../src/components/AutoGenerateBlogModal.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RichText.d.ts","sourceRoot":"","sources":["../../src/components/RichText.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"RichText.d.ts","sourceRoot":"","sources":["../../src/components/RichText.tsx"],"names":[],"mappings":"AAiDA,MAAM,WAAW,aAAa;IAC5B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAgB,QAAQ,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,aAAa,+BAmJpF"}
|
|
@@ -4,6 +4,7 @@ import { useEditor, EditorContent } from "@tiptap/react";
|
|
|
4
4
|
import StarterKit from "@tiptap/starter-kit";
|
|
5
5
|
import Link from "@tiptap/extension-link";
|
|
6
6
|
import { Bold, Heading3, Heading4, Italic, Link2, List, ListOrdered, Quote, Undo2, Redo2 } from "lucide-react";
|
|
7
|
+
import { useEffect } from "react";
|
|
7
8
|
function ToolbarButton({ onClick, active, label, children }) {
|
|
8
9
|
return (_jsx("button", { type: "button", onClick: onClick, "aria-label": label, title: label, "aria-pressed": active, className: `grid size-8 place-items-center rounded transition-colors ${active
|
|
9
10
|
? "bg-[var(--admin-primary,#2563eb)] text-white shadow-sm"
|
|
@@ -16,7 +17,8 @@ export function RichText({ id, value, onChange, placeholder, invalid }) {
|
|
|
16
17
|
StarterKit.configure({
|
|
17
18
|
heading: { levels: [3, 4] },
|
|
18
19
|
codeBlock: false,
|
|
19
|
-
code: false
|
|
20
|
+
code: false,
|
|
21
|
+
link: false
|
|
20
22
|
}),
|
|
21
23
|
Link.configure({
|
|
22
24
|
openOnClick: false,
|
|
@@ -37,6 +39,14 @@ export function RichText({ id, value, onChange, placeholder, invalid }) {
|
|
|
37
39
|
onChange(ed.isEmpty ? "" : ed.getHTML());
|
|
38
40
|
}
|
|
39
41
|
});
|
|
42
|
+
useEffect(() => {
|
|
43
|
+
if (!editor)
|
|
44
|
+
return;
|
|
45
|
+
const current = editor.getHTML();
|
|
46
|
+
if (value !== current && (!editor.isFocused || value === "")) {
|
|
47
|
+
editor.commands.setContent(value || "");
|
|
48
|
+
}
|
|
49
|
+
}, [value, editor]);
|
|
40
50
|
const iconClass = "size-4";
|
|
41
51
|
return (_jsxs("div", { className: `overflow-hidden rounded-lg border bg-[var(--admin-surface-bg,#ffffff)] transition-all ${invalid
|
|
42
52
|
? "border-red-500 ring-2 ring-red-100"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RichText.js","sourceRoot":"","sources":["../../src/components/RichText.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,UAAU,MAAM,qBAAqB,CAAC;AAC7C,OAAO,IAAI,MAAM,wBAAwB,CAAC;AAC1C,OAAO,EACL,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,KAAK,EACL,IAAI,EACJ,WAAW,EACX,KAAK,EACL,KAAK,EACL,KAAK,EACN,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"RichText.js","sourceRoot":"","sources":["../../src/components/RichText.tsx"],"names":[],"mappings":"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"}
|
package/dist/components/Shell.js
CHANGED
|
@@ -25,7 +25,7 @@ export function Shell({ theme, currentPath = "/admin", navItems = DEFAULT_NAV_IT
|
|
|
25
25
|
const [mobileMenuOpen, setMobileMenuOpen] = useState(false);
|
|
26
26
|
const brand = { ...defaultTheme.brand, ...theme?.brand };
|
|
27
27
|
const showAgencySig = theme?.agencySignature !== false;
|
|
28
|
-
return (_jsxs("div", { className: "min-h-screen bg-slate-50 text-slate-900 flex flex-col md:flex-row", children: [_jsxs("header", { className: "flex md:hidden items-center justify-between px-4 py-3 bg-[var(--admin-sidebar-bg,#0f172a)] text-white border-b border-slate-800", children: [_jsx("div", { className: "flex items-center gap-2", children: brand.logoUrl ? (_jsx("img", { src: brand.logoUrl, alt: brand.siteName, className: "h-7 w-auto object-contain" })) : (_jsx("span", { className: "font-bold text-base tracking-tight", children: brand.siteName })) }), _jsx("button", { type: "button", onClick: () => setMobileMenuOpen(!mobileMenuOpen), className: "p-1.5 rounded-lg text-slate-300 hover:bg-slate-800", "aria-label": "Toggle menu", children: mobileMenuOpen ? _jsx(X, { className: "size-5" }) : _jsx(Menu, { className: "size-5" }) })] }), _jsxs("aside", { className: `${mobileMenuOpen ? "
|
|
28
|
+
return (_jsxs("div", { className: "min-h-screen bg-slate-50 text-slate-900 flex flex-col md:flex-row", children: [_jsxs("header", { className: "flex md:hidden items-center justify-between px-4 py-3 bg-[var(--admin-sidebar-bg,#0f172a)] text-white border-b border-slate-800", children: [_jsx("div", { className: "flex items-center gap-2", children: brand.logoUrl ? (_jsx("img", { src: brand.logoUrl, alt: brand.siteName, className: "h-7 w-auto object-contain" })) : (_jsx("span", { className: "font-bold text-base tracking-tight", children: brand.siteName })) }), _jsx("button", { type: "button", onClick: () => setMobileMenuOpen(!mobileMenuOpen), className: "p-1.5 rounded-lg text-slate-300 hover:bg-slate-800", "aria-label": "Toggle menu", children: mobileMenuOpen ? _jsx(X, { className: "size-5" }) : _jsx(Menu, { className: "size-5" }) })] }), _jsxs("aside", { className: `${mobileMenuOpen ? "flex" : "hidden"} md:flex md:w-64 shrink-0 bg-[var(--admin-sidebar-bg,#0f172a)] text-[var(--admin-sidebar-text,#f8fafc)] flex-col justify-between border-r border-slate-800/80 min-h-screen md:h-screen md:sticky md:top-0`, children: [_jsxs("div", { children: [_jsx("div", { className: "hidden md:flex items-center justify-between p-5 border-b border-slate-800/80", children: _jsxs("div", { className: "flex items-center gap-2.5", children: [brand.logoUrl ? (_jsx("img", { src: brand.logoUrl, alt: brand.siteName, className: "h-8 w-auto object-contain" })) : (_jsx("div", { className: "size-8 rounded-lg bg-[var(--admin-primary,#2563eb)] grid place-items-center text-white font-bold text-sm", children: brand.siteName.slice(0, 1) })), _jsx("span", { className: "font-semibold text-sm tracking-tight text-white", children: brand.siteName })] }) }), _jsxs("nav", { className: "p-3 space-y-1", children: [_jsx("div", { className: "px-3 py-2 text-[10px] font-semibold uppercase tracking-wider text-slate-400", children: "Content & Leads" }), navItems.map((item) => {
|
|
29
29
|
const active = currentPath === item.href || (item.href !== "/admin" && currentPath.startsWith(item.href));
|
|
30
30
|
return (_jsxs("a", { href: item.href, className: `flex items-center justify-between px-3.5 py-2.5 rounded-xl text-xs font-medium transition ${active
|
|
31
31
|
? "bg-[var(--admin-primary,#2563eb)] text-white shadow-sm"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Shell.js","sourceRoot":"","sources":["../../src/components/Shell.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,OAAO,EACL,QAAQ,EACR,KAAK,EACL,eAAe,EACf,YAAY,EACZ,IAAI,EACJ,CAAC,EAEF,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAkBxD,MAAM,iBAAiB,GAAc;IACnC,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE;IACzD,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,EAAE;IAC/D,EAAE,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,WAAW,EAAE;CACzE,CAAC;AAEF,SAAS,OAAO,CAAC,EAAE,IAAI,EAA8B;IACnD,MAAM,SAAS,GAAG,iBAAiB,CAAC;IACpC,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,OAAO;YACV,OAAO,KAAC,QAAQ,IAAC,SAAS,EAAE,SAAS,GAAI,CAAC;QAC5C,KAAK,WAAW;YACd,OAAO,KAAC,KAAK,IAAC,SAAS,EAAE,SAAS,GAAI,CAAC;QACzC,KAAK,WAAW;YACd,OAAO,KAAC,eAAe,IAAC,SAAS,EAAE,SAAS,GAAI,CAAC;QACnD;YACE,OAAO,KAAC,QAAQ,IAAC,SAAS,EAAE,SAAS,GAAI,CAAC;IAC9C,CAAC;AACH,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,EACpB,KAAK,EACL,WAAW,GAAG,QAAQ,EACtB,QAAQ,GAAG,iBAAiB,EAC5B,SAAS,EACT,SAAS,EACT,QAAQ,EACQ;IAChB,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5D,MAAM,KAAK,GAAG,EAAE,GAAG,YAAY,CAAC,KAAK,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,CAAC;IACzD,MAAM,aAAa,GAAG,KAAK,EAAE,eAAe,KAAK,KAAK,CAAC;IAEvD,OAAO,CACL,eAAK,SAAS,EAAC,mEAAmE,aAEhF,kBAAQ,SAAS,EAAC,iIAAiI,aACjJ,cAAK,SAAS,EAAC,yBAAyB,YACrC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CACf,cAAK,GAAG,EAAE,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,QAAQ,EAAE,SAAS,EAAC,2BAA2B,GAAG,CACvF,CAAC,CAAC,CAAC,CACF,eAAM,SAAS,EAAC,oCAAoC,YAAE,KAAK,CAAC,QAAQ,GAAQ,CAC7E,GACG,EACN,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,CAAC,cAAc,CAAC,EACjD,SAAS,EAAC,oDAAoD,gBACnD,aAAa,YAEvB,cAAc,CAAC,CAAC,CAAC,KAAC,CAAC,IAAC,SAAS,EAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,KAAC,IAAI,IAAC,SAAS,EAAC,QAAQ,GAAG,GACjE,IACF,EAGT,iBACE,SAAS,EAAE,GACT,cAAc,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"Shell.js","sourceRoot":"","sources":["../../src/components/Shell.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@begryp/blog-automation-admin",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.4",
|
|
4
4
|
"description": "White-label Next.js + Supabase admin system and blog automation dashboard for agency client sites.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -23,8 +23,8 @@
|
|
|
23
23
|
"node": ">=20.9.0"
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
|
-
"@begryp/blog-automation-core": "workspace
|
|
27
|
-
"@begryp/blog-automation-prompts": "workspace
|
|
26
|
+
"@begryp/blog-automation-core": "workspace:^",
|
|
27
|
+
"@begryp/blog-automation-prompts": "workspace:^",
|
|
28
28
|
"clsx": "^2.1.1",
|
|
29
29
|
"tailwind-merge": "^2.5.4"
|
|
30
30
|
},
|