pabal-resource-mcp 1.9.2 → 1.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/bin/mcp-server.js +18 -11
- package/dist/browser.d.ts +14 -5
- package/dist/browser.js +8 -2
- package/dist/chunk-I7DFQE66.js +18 -0
- package/dist/index.d.ts +2 -2
- package/dist/locale-converter-D0E1EPm1.d.ts +849 -0
- package/dist/locale-converter-D2Sp4L1k.d.ts +830 -0
- package/package.json +1 -1
package/dist/bin/mcp-server.js
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
|
-
DEFAULT_APP_SLUG
|
|
4
|
-
|
|
3
|
+
DEFAULT_APP_SLUG,
|
|
4
|
+
DEVELOPER_JOURNAL_APP_SLUG,
|
|
5
|
+
DEVELOPER_TECH_APP_SLUG,
|
|
6
|
+
isDeveloperBlogAppSlug
|
|
7
|
+
} from "../chunk-I7DFQE66.js";
|
|
5
8
|
import {
|
|
6
9
|
getGeminiApiKey,
|
|
7
10
|
getKeywordResearchDir,
|
|
@@ -6230,6 +6233,9 @@ function normalizeDate(date) {
|
|
|
6230
6233
|
var toPublicBlogBase = (appSlug, slug) => `/${BLOG_ROOT}/${appSlug}/${slug}`;
|
|
6231
6234
|
function resolveCoverImagePath(appSlug, slug, coverImage) {
|
|
6232
6235
|
if (!coverImage || !coverImage.trim()) {
|
|
6236
|
+
if (isDeveloperBlogAppSlug(appSlug)) {
|
|
6237
|
+
return "/og-image.png";
|
|
6238
|
+
}
|
|
6233
6239
|
return `/products/${appSlug}/og-image.png`;
|
|
6234
6240
|
}
|
|
6235
6241
|
const cleaned = coverImage.trim();
|
|
@@ -6316,7 +6322,7 @@ function parseBlogHtml(htmlContent) {
|
|
|
6316
6322
|
const meta = JSON.parse(metaJson);
|
|
6317
6323
|
const body = htmlContent.replace(metaBlockRegex, "").trim();
|
|
6318
6324
|
return { meta, body };
|
|
6319
|
-
} catch
|
|
6325
|
+
} catch {
|
|
6320
6326
|
return { meta: null, body: htmlContent.trim() };
|
|
6321
6327
|
}
|
|
6322
6328
|
}
|
|
@@ -6347,7 +6353,7 @@ function findExistingBlogPosts({
|
|
|
6347
6353
|
publishedAt: meta.publishedAt
|
|
6348
6354
|
});
|
|
6349
6355
|
}
|
|
6350
|
-
} catch
|
|
6356
|
+
} catch {
|
|
6351
6357
|
continue;
|
|
6352
6358
|
}
|
|
6353
6359
|
}
|
|
@@ -6390,7 +6396,7 @@ var createBlogHtmlInputSchema = z13.object({
|
|
|
6390
6396
|
"Optional tags for BLOG_META. Defaults to tags derived from topic."
|
|
6391
6397
|
),
|
|
6392
6398
|
coverImage: z13.string().trim().optional().describe(
|
|
6393
|
-
"Cover image path. Relative paths rewrite to /blogs/<app>/<slug>/..., default is /products/<appSlug>/og-image.png."
|
|
6399
|
+
"Cover image path. Relative paths rewrite to /blogs/<app>/<slug>/..., default is /products/<appSlug>/og-image.png (developer slugs default to /og-image.png)."
|
|
6394
6400
|
),
|
|
6395
6401
|
publishedAt: z13.string().trim().regex(DATE_REGEX2, "publishedAt must use YYYY-MM-DD").optional().describe("Publish date (YYYY-MM-DD). Defaults to today."),
|
|
6396
6402
|
modifiedAt: z13.string().trim().regex(DATE_REGEX2, "modifiedAt must use YYYY-MM-DD").optional().describe("Last modified date (YYYY-MM-DD). Defaults to publishedAt."),
|
|
@@ -6416,16 +6422,17 @@ IMPORTANT REQUIREMENTS:
|
|
|
6416
6422
|
1. The 'locale' parameter is REQUIRED. If the user does not provide a locale, you MUST ask them to specify which language/locale they want to write the blog in (e.g., 'en-US', 'ko-KR', 'ja-JP', etc.).
|
|
6417
6423
|
2. The 'content' parameter is REQUIRED. You (the LLM) must generate the HTML content based on the 'topic' and 'locale' provided by the user. The content should be written in the language corresponding to the locale AND match the writing style of existing blog posts for that locale.
|
|
6418
6424
|
3. The 'description' parameter is REQUIRED. You (the LLM) must generate this based on the topic, locale, AND the writing style of existing blog posts.
|
|
6419
|
-
4. The 'appSlug' parameter:
|
|
6420
|
-
- If the user
|
|
6425
|
+
4. The 'appSlug' parameter:
|
|
6426
|
+
- If the user requests personal/daily/journal developer content, set appSlug to "${DEVELOPER_JOURNAL_APP_SLUG}".
|
|
6427
|
+
- If the user requests technical/engineering/devlog content, set appSlug to "${DEVELOPER_TECH_APP_SLUG}".
|
|
6421
6428
|
- If the user mentions a specific app/product, use that app's slug.
|
|
6422
|
-
- If not specified, defaults to "
|
|
6429
|
+
- If not specified, defaults to "${DEFAULT_APP_SLUG}".
|
|
6423
6430
|
|
|
6424
6431
|
Slug rules:
|
|
6425
6432
|
- slug = slugify(English title, kebab-case ASCII)
|
|
6426
6433
|
- path: public/blogs/<appSlug>/<slug>/<locale>.html
|
|
6427
|
-
- appSlug: Use "
|
|
6428
|
-
- coverImage default: /products/<appSlug>/og-image.png (relative paths are rewritten under /blogs/<app>/<slug
|
|
6434
|
+
- appSlug: Use "${DEVELOPER_JOURNAL_APP_SLUG}" for personal/journal posts, "${DEVELOPER_TECH_APP_SLUG}" for technical posts. Defaults to "${DEFAULT_APP_SLUG}" if not specified.
|
|
6435
|
+
- coverImage default: /products/<appSlug>/og-image.png (relative paths are rewritten under /blogs/<app>/<slug>/, developer slugs default to /og-image.png)
|
|
6429
6436
|
- overwrite defaults to false (throws when file exists)
|
|
6430
6437
|
|
|
6431
6438
|
HTML Structure (follows public/en-US.html pattern):
|
|
@@ -6482,7 +6489,7 @@ async function handleCreateBlogHtml(input) {
|
|
|
6482
6489
|
slug,
|
|
6483
6490
|
baseDir: path20.join(publicDir, "blogs", appSlug, slug),
|
|
6484
6491
|
files: [],
|
|
6485
|
-
coverImage: coverImage && coverImage.trim().length > 0 ? coverImage.trim() : `/products/${appSlug}/og-image.png`,
|
|
6492
|
+
coverImage: coverImage && coverImage.trim().length > 0 ? coverImage.trim() : isDeveloperBlogAppSlug(appSlug) ? "/og-image.png" : `/products/${appSlug}/og-image.png`,
|
|
6486
6493
|
metaByLocale: {}
|
|
6487
6494
|
};
|
|
6488
6495
|
const plannedFiles = targetLocales.map(
|
package/dist/browser.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { A as APP_STORE_TO_UNIFIED, Y as AppIconConfig, X as AppIconStyleConfig, F as AppMetaLinks, H as AppPageData, t as AppStoreAsoData, p as AppStoreInfoLocalization, d as AppStoreLocale, v as AppStoreMultilingualAsoData, o as AppStoreReleaseNote, r as AppStoreScreenshotDisplayType, s as AppStoreScreenshots, q as AppStoreVersionLocalization, w as AsoData, a1 as AsoLocaleContent, a0 as AsoTemplate, C as BlogArticle, z as BlogMeta, B as BlogMetaBlock,
|
|
1
|
+
export { A as APP_STORE_TO_UNIFIED, Y as AppIconConfig, X as AppIconStyleConfig, F as AppMetaLinks, H as AppPageData, t as AppStoreAsoData, p as AppStoreInfoLocalization, d as AppStoreLocale, v as AppStoreMultilingualAsoData, o as AppStoreReleaseNote, r as AppStoreScreenshotDisplayType, s as AppStoreScreenshots, q as AppStoreVersionLocalization, w as AsoData, a1 as AsoLocaleContent, a0 as AsoTemplate, C as BlogArticle, z as BlogMeta, B as BlogMetaBlock, a9 as BlogMetaOutput, E as BlogSummary, aa as CreateBlogHtmlInput, ac as CreateBlogHtmlResult, D as DEFAULT_LOCALE, R as DeepPartial, M as FeatureItem, G as GOOGLE_PLAY_TO_UNIFIED, ab as GeneratedBlogFile, m as GooglePlayAsoData, j as GooglePlayImageType, h as GooglePlayListing, e as GooglePlayLocale, u as GooglePlayMultilingualAsoData, n as GooglePlayReleaseNote, k as GooglePlayScreenshotType, l as GooglePlayScreenshots, I as ImageAsset, P as LandingCta, N as LandingFeatures, J as LandingHero, Q as LandingPage, V as LandingPageLocale, O as LandingReviews, K as LandingScreenshots, L as LayoutColors, a4 as LocaleDisplayInfo, $ as ProductConfig, _ as ProductContent, a2 as ProductLocale, Z as ProductMetadata, W as ProductScreenshots, a8 as ResolvedWorkData, a3 as SiteConfig, a5 as SiteData, S as SupportedLocale, T as Testimonial, U as UNIFIED_LOCALES, a as UNIFIED_TO_APP_STORE, b as UNIFIED_TO_GOOGLE_PLAY, c as UnifiedLocale, a6 as WorkItem, a7 as WorkLocaleData, am as appStoreToGooglePlay, ag as appStoreToUnified, ak as appStoreToUnifiedBatch, aq as convertObjectFromAppStore, ar as convertObjectFromGooglePlay, ao as convertObjectToAppStore, ap as convertObjectToGooglePlay, an as googlePlayToAppStore, ah as googlePlayToUnified, al as googlePlayToUnifiedBatch, f as isAppStoreLocale, y as isAppStoreMultilingual, g as isGooglePlayLocale, x as isGooglePlayMultilingual, i as isSupportedLocale, ad as unifiedToAppStore, ai as unifiedToAppStoreBatch, af as unifiedToBothPlatforms, ae as unifiedToGooglePlay, aj as unifiedToGooglePlayBatch } from './locale-converter-D0E1EPm1.js';
|
|
2
2
|
import '@googleapis/androidpublisher';
|
|
3
3
|
import 'appstore-connect-sdk/openapi';
|
|
4
4
|
|
|
@@ -7,9 +7,18 @@ import 'appstore-connect-sdk/openapi';
|
|
|
7
7
|
* Used for blog-related default values and configurations
|
|
8
8
|
*/
|
|
9
9
|
/**
|
|
10
|
-
*
|
|
11
|
-
* Used when creating blog posts about the developer themselves
|
|
10
|
+
* App slug for personal/daily developer posts.
|
|
12
11
|
*/
|
|
13
|
-
declare const
|
|
12
|
+
declare const DEVELOPER_JOURNAL_APP_SLUG = "developer-journal";
|
|
13
|
+
/**
|
|
14
|
+
* App slug for technical developer posts.
|
|
15
|
+
*/
|
|
16
|
+
declare const DEVELOPER_TECH_APP_SLUG = "developer-tech";
|
|
17
|
+
/**
|
|
18
|
+
* Default app slug for developer-related blog posts.
|
|
19
|
+
* New posts default to journal.
|
|
20
|
+
*/
|
|
21
|
+
declare const DEFAULT_APP_SLUG = "developer-journal";
|
|
22
|
+
declare function isDeveloperBlogAppSlug(appSlug: string): boolean;
|
|
14
23
|
|
|
15
|
-
export { DEFAULT_APP_SLUG };
|
|
24
|
+
export { DEFAULT_APP_SLUG, DEVELOPER_JOURNAL_APP_SLUG, DEVELOPER_TECH_APP_SLUG, isDeveloperBlogAppSlug };
|
package/dist/browser.js
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
|
-
DEFAULT_APP_SLUG
|
|
3
|
-
|
|
2
|
+
DEFAULT_APP_SLUG,
|
|
3
|
+
DEVELOPER_JOURNAL_APP_SLUG,
|
|
4
|
+
DEVELOPER_TECH_APP_SLUG,
|
|
5
|
+
isDeveloperBlogAppSlug
|
|
6
|
+
} from "./chunk-I7DFQE66.js";
|
|
4
7
|
import {
|
|
5
8
|
APP_STORE_TO_UNIFIED,
|
|
6
9
|
DEFAULT_LOCALE,
|
|
@@ -33,6 +36,8 @@ export {
|
|
|
33
36
|
APP_STORE_TO_UNIFIED,
|
|
34
37
|
DEFAULT_APP_SLUG,
|
|
35
38
|
DEFAULT_LOCALE,
|
|
39
|
+
DEVELOPER_JOURNAL_APP_SLUG,
|
|
40
|
+
DEVELOPER_TECH_APP_SLUG,
|
|
36
41
|
GOOGLE_PLAY_TO_UNIFIED,
|
|
37
42
|
UNIFIED_LOCALES,
|
|
38
43
|
UNIFIED_TO_APP_STORE,
|
|
@@ -49,6 +54,7 @@ export {
|
|
|
49
54
|
googlePlayToUnifiedBatch,
|
|
50
55
|
isAppStoreLocale,
|
|
51
56
|
isAppStoreMultilingual,
|
|
57
|
+
isDeveloperBlogAppSlug,
|
|
52
58
|
isGooglePlayLocale,
|
|
53
59
|
isGooglePlayMultilingual,
|
|
54
60
|
isSupportedLocale,
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
// src/constants/blog.constants.ts
|
|
2
|
+
var DEVELOPER_JOURNAL_APP_SLUG = "developer-journal";
|
|
3
|
+
var DEVELOPER_TECH_APP_SLUG = "developer-tech";
|
|
4
|
+
var DEFAULT_APP_SLUG = DEVELOPER_JOURNAL_APP_SLUG;
|
|
5
|
+
var DEVELOPER_BLOG_APP_SLUGS = /* @__PURE__ */ new Set([
|
|
6
|
+
DEVELOPER_JOURNAL_APP_SLUG,
|
|
7
|
+
DEVELOPER_TECH_APP_SLUG
|
|
8
|
+
]);
|
|
9
|
+
function isDeveloperBlogAppSlug(appSlug) {
|
|
10
|
+
return DEVELOPER_BLOG_APP_SLUGS.has(appSlug);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export {
|
|
14
|
+
DEVELOPER_JOURNAL_APP_SLUG,
|
|
15
|
+
DEVELOPER_TECH_APP_SLUG,
|
|
16
|
+
DEFAULT_APP_SLUG,
|
|
17
|
+
isDeveloperBlogAppSlug
|
|
18
|
+
};
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { w as AsoData, $ as ProductConfig } from './locale-converter-
|
|
2
|
-
export { A as APP_STORE_TO_UNIFIED, Y as AppIconConfig, X as AppIconStyleConfig, F as AppMetaLinks, H as AppPageData, t as AppStoreAsoData, p as AppStoreInfoLocalization, d as AppStoreLocale, v as AppStoreMultilingualAsoData, o as AppStoreReleaseNote, r as AppStoreScreenshotDisplayType, s as AppStoreScreenshots, q as AppStoreVersionLocalization, a1 as AsoLocaleContent, a0 as AsoTemplate, C as BlogArticle, z as BlogMeta, B as BlogMetaBlock,
|
|
1
|
+
import { w as AsoData, $ as ProductConfig } from './locale-converter-D0E1EPm1.js';
|
|
2
|
+
export { A as APP_STORE_TO_UNIFIED, Y as AppIconConfig, X as AppIconStyleConfig, F as AppMetaLinks, H as AppPageData, t as AppStoreAsoData, p as AppStoreInfoLocalization, d as AppStoreLocale, v as AppStoreMultilingualAsoData, o as AppStoreReleaseNote, r as AppStoreScreenshotDisplayType, s as AppStoreScreenshots, q as AppStoreVersionLocalization, a1 as AsoLocaleContent, a0 as AsoTemplate, C as BlogArticle, z as BlogMeta, B as BlogMetaBlock, a9 as BlogMetaOutput, E as BlogSummary, aa as CreateBlogHtmlInput, ac as CreateBlogHtmlResult, D as DEFAULT_LOCALE, R as DeepPartial, M as FeatureItem, G as GOOGLE_PLAY_TO_UNIFIED, ab as GeneratedBlogFile, m as GooglePlayAsoData, j as GooglePlayImageType, h as GooglePlayListing, e as GooglePlayLocale, u as GooglePlayMultilingualAsoData, n as GooglePlayReleaseNote, k as GooglePlayScreenshotType, l as GooglePlayScreenshots, I as ImageAsset, P as LandingCta, N as LandingFeatures, J as LandingHero, Q as LandingPage, V as LandingPageLocale, O as LandingReviews, K as LandingScreenshots, L as LayoutColors, a4 as LocaleDisplayInfo, _ as ProductContent, a2 as ProductLocale, Z as ProductMetadata, W as ProductScreenshots, a8 as ResolvedWorkData, a3 as SiteConfig, a5 as SiteData, S as SupportedLocale, T as Testimonial, U as UNIFIED_LOCALES, a as UNIFIED_TO_APP_STORE, b as UNIFIED_TO_GOOGLE_PLAY, c as UnifiedLocale, a6 as WorkItem, a7 as WorkLocaleData, am as appStoreToGooglePlay, ag as appStoreToUnified, ak as appStoreToUnifiedBatch, aq as convertObjectFromAppStore, ar as convertObjectFromGooglePlay, ao as convertObjectToAppStore, ap as convertObjectToGooglePlay, an as googlePlayToAppStore, ah as googlePlayToUnified, al as googlePlayToUnifiedBatch, f as isAppStoreLocale, y as isAppStoreMultilingual, g as isGooglePlayLocale, x as isGooglePlayMultilingual, i as isSupportedLocale, ad as unifiedToAppStore, ai as unifiedToAppStoreBatch, af as unifiedToBothPlatforms, ae as unifiedToGooglePlay, aj as unifiedToGooglePlayBatch } from './locale-converter-D0E1EPm1.js';
|
|
3
3
|
import '@googleapis/androidpublisher';
|
|
4
4
|
import 'appstore-connect-sdk/openapi';
|
|
5
5
|
|