@lukoweb/apitogo 0.1.104 → 0.1.105
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/cli/cli.js +11 -4
- package/package.json +1 -1
- package/src/lib/components/SiteTitle.tsx +31 -7
package/dist/cli/cli.js
CHANGED
|
@@ -5801,7 +5801,7 @@ import {
|
|
|
5801
5801
|
// package.json
|
|
5802
5802
|
var package_default = {
|
|
5803
5803
|
name: "@lukoweb/apitogo",
|
|
5804
|
-
version: "0.1.
|
|
5804
|
+
version: "0.1.105",
|
|
5805
5805
|
type: "module",
|
|
5806
5806
|
sideEffects: [
|
|
5807
5807
|
"**/*.css",
|
|
@@ -11940,7 +11940,7 @@ function resolveManifestNextStep(manifest, secrets) {
|
|
|
11940
11940
|
return `Publish prerequisites incomplete: ${prerequisites.missingFields.join(", ")}.`;
|
|
11941
11941
|
}
|
|
11942
11942
|
function createScaffoldManifest(siteName) {
|
|
11943
|
-
const title = siteName?.trim() || "
|
|
11943
|
+
const title = siteName?.trim() || "Sample API";
|
|
11944
11944
|
return {
|
|
11945
11945
|
siteName: title,
|
|
11946
11946
|
branding: { title }
|
|
@@ -11950,7 +11950,7 @@ function resolveProjectDisplayName(manifest, config2) {
|
|
|
11950
11950
|
return manifest.siteName?.trim() || manifest.branding?.title?.trim() || (config2 ? readSiteTitle2(config2) : void 0) || "Developer Portal";
|
|
11951
11951
|
}
|
|
11952
11952
|
function applyScaffoldManifestPolicy(manifest, options) {
|
|
11953
|
-
const title = options.siteName?.trim() || manifest.siteName?.trim() || manifest.branding?.title?.trim() || "
|
|
11953
|
+
const title = options.siteName?.trim() || manifest.siteName?.trim() || manifest.branding?.title?.trim() || "Sample API";
|
|
11954
11954
|
const result = {
|
|
11955
11955
|
...manifest,
|
|
11956
11956
|
siteName: title,
|
|
@@ -14898,7 +14898,7 @@ function createDefaultApitogoJsonConfig(options) {
|
|
|
14898
14898
|
redirectToAfterSignUp: "/account/dashboard"
|
|
14899
14899
|
},
|
|
14900
14900
|
metadata: {
|
|
14901
|
-
favicon: "/
|
|
14901
|
+
favicon: "/Icon.png"
|
|
14902
14902
|
},
|
|
14903
14903
|
theme: {
|
|
14904
14904
|
fonts: {
|
|
@@ -15691,6 +15691,9 @@ var BRANDING_ASSETS = [
|
|
|
15691
15691
|
}
|
|
15692
15692
|
];
|
|
15693
15693
|
|
|
15694
|
+
// src/cli/make-config/favicon-png.ts
|
|
15695
|
+
var FAVICON_PNG_BASE64 = "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";
|
|
15696
|
+
|
|
15694
15697
|
// src/cli/make-config/scaffold-project.ts
|
|
15695
15698
|
var OPENAPI_GLOBS = [
|
|
15696
15699
|
"apis/openapi.json",
|
|
@@ -15870,6 +15873,10 @@ async function ensurePublicBrandingFiles(dir) {
|
|
|
15870
15873
|
}
|
|
15871
15874
|
await writeFile12(dest, content, "utf8");
|
|
15872
15875
|
}
|
|
15876
|
+
const faviconDest = path49.join(destDir, "Icon.png");
|
|
15877
|
+
if (!await fileExists2(faviconDest)) {
|
|
15878
|
+
await writeFile12(faviconDest, Buffer.from(FAVICON_PNG_BASE64, "base64"));
|
|
15879
|
+
}
|
|
15873
15880
|
}
|
|
15874
15881
|
async function ensureThinConfigTsx(dir) {
|
|
15875
15882
|
const tsxPath = path49.join(dir, "apitogo.config.tsx");
|
package/package.json
CHANGED
|
@@ -5,14 +5,37 @@ type SiteTitleProps = {
|
|
|
5
5
|
className?: string;
|
|
6
6
|
};
|
|
7
7
|
|
|
8
|
-
const API_SUFFIX = /^(.*?)(?:\s*)(API)$/i;
|
|
9
|
-
|
|
10
8
|
export const splitBrandWordmark = (title: string) => {
|
|
11
|
-
const
|
|
12
|
-
if (!
|
|
9
|
+
const trimmed = title.trim();
|
|
10
|
+
if (!trimmed) {
|
|
13
11
|
return { prefix: title, accent: null as string | null };
|
|
14
12
|
}
|
|
15
|
-
|
|
13
|
+
|
|
14
|
+
const words = trimmed.split(/\s+/).filter(Boolean);
|
|
15
|
+
if (words.length >= 2) {
|
|
16
|
+
return {
|
|
17
|
+
prefix: words.slice(0, -1).join(" "),
|
|
18
|
+
accent: words.at(-1) ?? null,
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
const word = words[0] ?? trimmed;
|
|
23
|
+
const apiMatch = word.match(/^(.*)(API)$/i);
|
|
24
|
+
if (apiMatch?.[1]) {
|
|
25
|
+
return { prefix: apiMatch[1], accent: apiMatch[2] ?? "API" };
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
const camelMatch = word.match(/^(.*[a-z])([A-Z][a-z]*)$/);
|
|
29
|
+
if (camelMatch?.[1]) {
|
|
30
|
+
return { prefix: camelMatch[1], accent: camelMatch[2] ?? null };
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
if (word.length < 2) {
|
|
34
|
+
return { prefix: word, accent: null };
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
const splitAt = Math.floor(word.length / 2);
|
|
38
|
+
return { prefix: word.slice(0, splitAt), accent: word.slice(splitAt) };
|
|
16
39
|
};
|
|
17
40
|
|
|
18
41
|
export const SiteTitle = ({ title, className }: SiteTitleProps) => {
|
|
@@ -21,12 +44,13 @@ export const SiteTitle = ({ title, className }: SiteTitleProps) => {
|
|
|
21
44
|
return (
|
|
22
45
|
<span
|
|
23
46
|
className={cn(
|
|
24
|
-
"font-sans text-[1.4rem] font-extrabold tracking-[-0.03em]
|
|
47
|
+
"font-sans text-[1.4rem] font-extrabold tracking-[-0.03em]",
|
|
25
48
|
className,
|
|
26
49
|
)}
|
|
50
|
+
style={{ color: "var(--foreground)" }}
|
|
27
51
|
>
|
|
28
52
|
{prefix}
|
|
29
|
-
{accent ? <span
|
|
53
|
+
{accent ? <span style={{ color: "var(--primary)" }}>{accent}</span> : null}
|
|
30
54
|
</span>
|
|
31
55
|
);
|
|
32
56
|
};
|