@uptrademedia/site-kit 1.1.7 → 1.2.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/{chunk-LHMD7CAR.mjs → chunk-2STSAGNT.mjs} +28 -6
- package/dist/chunk-2STSAGNT.mjs.map +1 -0
- package/dist/{chunk-CTKXFLIF.js → chunk-C5TQLU5U.js} +20 -4
- package/dist/chunk-C5TQLU5U.js.map +1 -0
- package/dist/{chunk-IRNMIFOE.js → chunk-ICHCPLRB.js} +28 -6
- package/dist/chunk-ICHCPLRB.js.map +1 -0
- package/dist/{chunk-TOUIKTXU.mjs → chunk-RLO3QJ65.mjs} +20 -4
- package/dist/chunk-RLO3QJ65.mjs.map +1 -0
- package/dist/cli/index.js +125 -34
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/index.mjs +125 -34
- package/dist/cli/index.mjs.map +1 -1
- package/dist/engage/index.js +4 -4
- package/dist/engage/index.mjs +1 -1
- package/dist/index.js +2 -2
- package/dist/index.mjs +1 -1
- package/dist/llms/index.d.mts +23 -274
- package/dist/llms/index.d.ts +23 -274
- package/dist/llms/index.js +14 -14
- package/dist/llms/index.js.map +1 -1
- package/dist/llms/index.mjs +4 -4
- package/dist/llms/index.mjs.map +1 -1
- package/dist/robots/index.d.mts +46 -0
- package/dist/robots/index.d.ts +46 -0
- package/dist/robots/index.js +34 -0
- package/dist/robots/index.js.map +1 -0
- package/dist/robots/index.mjs +32 -0
- package/dist/robots/index.mjs.map +1 -0
- package/dist/sitemap/index.d.mts +5 -1
- package/dist/sitemap/index.d.ts +5 -1
- package/dist/sitemap/index.js +5 -4
- package/dist/sitemap/index.js.map +1 -1
- package/dist/sitemap/index.mjs +4 -3
- package/dist/sitemap/index.mjs.map +1 -1
- package/dist/types-Cl2SOKHd.d.mts +259 -0
- package/dist/types-Cl2SOKHd.d.ts +259 -0
- package/package.json +6 -1
- package/dist/chunk-CTKXFLIF.js.map +0 -1
- package/dist/chunk-IRNMIFOE.js.map +0 -1
- package/dist/chunk-LHMD7CAR.mjs.map +0 -1
- package/dist/chunk-TOUIKTXU.mjs.map +0 -1
package/dist/cli/index.js
CHANGED
|
@@ -950,8 +950,8 @@ var require_command = chunkZSMWDLMK_js.__commonJS({
|
|
|
950
950
|
"node_modules/commander/lib/command.js"(exports$1) {
|
|
951
951
|
var EventEmitter = chunkZSMWDLMK_js.__require("events").EventEmitter;
|
|
952
952
|
var childProcess = chunkZSMWDLMK_js.__require("child_process");
|
|
953
|
-
var
|
|
954
|
-
var
|
|
953
|
+
var path15 = chunkZSMWDLMK_js.__require("path");
|
|
954
|
+
var fs10 = chunkZSMWDLMK_js.__require("fs");
|
|
955
955
|
var process11 = chunkZSMWDLMK_js.__require("process");
|
|
956
956
|
var { Argument: Argument2, humanReadableArgName } = require_argument();
|
|
957
957
|
var { CommanderError: CommanderError2 } = require_error();
|
|
@@ -1773,10 +1773,10 @@ Expecting one of '${allowedValues.join("', '")}'`);
|
|
|
1773
1773
|
let launchWithNode = false;
|
|
1774
1774
|
const sourceExt = [".js", ".ts", ".tsx", ".mjs", ".cjs"];
|
|
1775
1775
|
function findFile(baseDir, baseName) {
|
|
1776
|
-
const localBin =
|
|
1777
|
-
if (
|
|
1778
|
-
if (sourceExt.includes(
|
|
1779
|
-
const foundExt = sourceExt.find((ext) =>
|
|
1776
|
+
const localBin = path15.resolve(baseDir, baseName);
|
|
1777
|
+
if (fs10.existsSync(localBin)) return localBin;
|
|
1778
|
+
if (sourceExt.includes(path15.extname(baseName))) return void 0;
|
|
1779
|
+
const foundExt = sourceExt.find((ext) => fs10.existsSync(`${localBin}${ext}`));
|
|
1780
1780
|
if (foundExt) return `${localBin}${foundExt}`;
|
|
1781
1781
|
return void 0;
|
|
1782
1782
|
}
|
|
@@ -1787,23 +1787,23 @@ Expecting one of '${allowedValues.join("', '")}'`);
|
|
|
1787
1787
|
if (this._scriptPath) {
|
|
1788
1788
|
let resolvedScriptPath;
|
|
1789
1789
|
try {
|
|
1790
|
-
resolvedScriptPath =
|
|
1790
|
+
resolvedScriptPath = fs10.realpathSync(this._scriptPath);
|
|
1791
1791
|
} catch (err) {
|
|
1792
1792
|
resolvedScriptPath = this._scriptPath;
|
|
1793
1793
|
}
|
|
1794
|
-
executableDir =
|
|
1794
|
+
executableDir = path15.resolve(path15.dirname(resolvedScriptPath), executableDir);
|
|
1795
1795
|
}
|
|
1796
1796
|
if (executableDir) {
|
|
1797
1797
|
let localFile = findFile(executableDir, executableFile);
|
|
1798
1798
|
if (!localFile && !subcommand._executableFile && this._scriptPath) {
|
|
1799
|
-
const legacyName =
|
|
1799
|
+
const legacyName = path15.basename(this._scriptPath, path15.extname(this._scriptPath));
|
|
1800
1800
|
if (legacyName !== this._name) {
|
|
1801
1801
|
localFile = findFile(executableDir, `${legacyName}-${subcommand._name}`);
|
|
1802
1802
|
}
|
|
1803
1803
|
}
|
|
1804
1804
|
executableFile = localFile || executableFile;
|
|
1805
1805
|
}
|
|
1806
|
-
launchWithNode = sourceExt.includes(
|
|
1806
|
+
launchWithNode = sourceExt.includes(path15.extname(executableFile));
|
|
1807
1807
|
let proc;
|
|
1808
1808
|
if (process11.platform !== "win32") {
|
|
1809
1809
|
if (launchWithNode) {
|
|
@@ -2586,7 +2586,7 @@ Expecting one of '${allowedValues.join("', '")}'`);
|
|
|
2586
2586
|
* @return {Command}
|
|
2587
2587
|
*/
|
|
2588
2588
|
nameFromFilename(filename) {
|
|
2589
|
-
this._name =
|
|
2589
|
+
this._name = path15.basename(filename, path15.extname(filename));
|
|
2590
2590
|
return this;
|
|
2591
2591
|
}
|
|
2592
2592
|
/**
|
|
@@ -2600,9 +2600,9 @@ Expecting one of '${allowedValues.join("', '")}'`);
|
|
|
2600
2600
|
* @param {string} [path]
|
|
2601
2601
|
* @return {string|null|Command}
|
|
2602
2602
|
*/
|
|
2603
|
-
executableDir(
|
|
2604
|
-
if (
|
|
2605
|
-
this._executableDir =
|
|
2603
|
+
executableDir(path16) {
|
|
2604
|
+
if (path16 === void 0) return this._executableDir;
|
|
2605
|
+
this._executableDir = path16;
|
|
2606
2606
|
return this;
|
|
2607
2607
|
}
|
|
2608
2608
|
/**
|
|
@@ -14912,15 +14912,15 @@ var require_route = chunkZSMWDLMK_js.__commonJS({
|
|
|
14912
14912
|
};
|
|
14913
14913
|
}
|
|
14914
14914
|
function wrapConversion(toModel, graph) {
|
|
14915
|
-
const
|
|
14915
|
+
const path15 = [graph[toModel].parent, toModel];
|
|
14916
14916
|
let fn = conversions[graph[toModel].parent][toModel];
|
|
14917
14917
|
let cur = graph[toModel].parent;
|
|
14918
14918
|
while (graph[cur].parent) {
|
|
14919
|
-
|
|
14919
|
+
path15.unshift(graph[cur].parent);
|
|
14920
14920
|
fn = link(conversions[graph[cur].parent][cur], fn);
|
|
14921
14921
|
cur = graph[cur].parent;
|
|
14922
14922
|
}
|
|
14923
|
-
fn.conversion =
|
|
14923
|
+
fn.conversion = path15;
|
|
14924
14924
|
return fn;
|
|
14925
14925
|
}
|
|
14926
14926
|
module.exports = function(fromModel) {
|
|
@@ -25365,10 +25365,10 @@ var require_lib2 = chunkZSMWDLMK_js.__commonJS({
|
|
|
25365
25365
|
exports$1.analyse = analyse;
|
|
25366
25366
|
var detectFile = (filepath, opts = {}) => new Promise((resolve, reject) => {
|
|
25367
25367
|
let fd;
|
|
25368
|
-
const
|
|
25368
|
+
const fs10 = (0, node_1.default)();
|
|
25369
25369
|
const handler = (err, buffer) => {
|
|
25370
25370
|
if (fd) {
|
|
25371
|
-
|
|
25371
|
+
fs10.closeSync(fd);
|
|
25372
25372
|
}
|
|
25373
25373
|
if (err) {
|
|
25374
25374
|
reject(err);
|
|
@@ -25380,9 +25380,9 @@ var require_lib2 = chunkZSMWDLMK_js.__commonJS({
|
|
|
25380
25380
|
};
|
|
25381
25381
|
const sampleSize = (opts === null || opts === void 0 ? void 0 : opts.sampleSize) || 0;
|
|
25382
25382
|
if (sampleSize > 0) {
|
|
25383
|
-
fd =
|
|
25383
|
+
fd = fs10.openSync(filepath, "r");
|
|
25384
25384
|
let sample = Buffer.allocUnsafe(sampleSize);
|
|
25385
|
-
|
|
25385
|
+
fs10.read(fd, sample, 0, sampleSize, opts.offset, (err, bytesRead) => {
|
|
25386
25386
|
if (err) {
|
|
25387
25387
|
handler(err, null);
|
|
25388
25388
|
} else {
|
|
@@ -25394,22 +25394,22 @@ var require_lib2 = chunkZSMWDLMK_js.__commonJS({
|
|
|
25394
25394
|
});
|
|
25395
25395
|
return;
|
|
25396
25396
|
}
|
|
25397
|
-
|
|
25397
|
+
fs10.readFile(filepath, handler);
|
|
25398
25398
|
});
|
|
25399
25399
|
exports$1.detectFile = detectFile;
|
|
25400
25400
|
var detectFileSync = (filepath, opts = {}) => {
|
|
25401
|
-
const
|
|
25401
|
+
const fs10 = (0, node_1.default)();
|
|
25402
25402
|
if (opts && opts.sampleSize) {
|
|
25403
|
-
const fd =
|
|
25403
|
+
const fd = fs10.openSync(filepath, "r");
|
|
25404
25404
|
let sample = Buffer.allocUnsafe(opts.sampleSize);
|
|
25405
|
-
const bytesRead =
|
|
25405
|
+
const bytesRead = fs10.readSync(fd, sample, 0, opts.sampleSize, opts.offset);
|
|
25406
25406
|
if (bytesRead < opts.sampleSize) {
|
|
25407
25407
|
sample = sample.subarray(0, bytesRead);
|
|
25408
25408
|
}
|
|
25409
|
-
|
|
25409
|
+
fs10.closeSync(fd);
|
|
25410
25410
|
return (0, exports$1.detect)(sample);
|
|
25411
25411
|
}
|
|
25412
|
-
return (0, exports$1.detect)(
|
|
25412
|
+
return (0, exports$1.detect)(fs10.readFileSync(filepath));
|
|
25413
25413
|
};
|
|
25414
25414
|
exports$1.detectFileSync = detectFileSync;
|
|
25415
25415
|
exports$1.default = {
|
|
@@ -32801,9 +32801,9 @@ var fetchAsyncQuestionProperty = function(question, prop, answers) {
|
|
|
32801
32801
|
|
|
32802
32802
|
// node_modules/inquirer/lib/ui/prompt.js
|
|
32803
32803
|
var _ = {
|
|
32804
|
-
set: (obj,
|
|
32804
|
+
set: (obj, path15 = "", value) => {
|
|
32805
32805
|
let pointer = obj;
|
|
32806
|
-
|
|
32806
|
+
path15.split(".").forEach((key, index, arr) => {
|
|
32807
32807
|
if (key === "__proto__" || key === "constructor") return;
|
|
32808
32808
|
if (index === arr.length - 1) {
|
|
32809
32809
|
pointer[key] = value;
|
|
@@ -32813,8 +32813,8 @@ var _ = {
|
|
|
32813
32813
|
pointer = pointer[key];
|
|
32814
32814
|
});
|
|
32815
32815
|
},
|
|
32816
|
-
get: (obj,
|
|
32817
|
-
const travel = (regexp) => String.prototype.split.call(
|
|
32816
|
+
get: (obj, path15 = "", defaultValue) => {
|
|
32817
|
+
const travel = (regexp) => String.prototype.split.call(path15, regexp).filter(Boolean).reduce(
|
|
32818
32818
|
// @ts-expect-error implicit any on res[key]
|
|
32819
32819
|
(res, key) => res !== null && res !== void 0 ? res[key] : res,
|
|
32820
32820
|
obj
|
|
@@ -34917,8 +34917,8 @@ async function templateCommand(sourcePath, options, config2) {
|
|
|
34917
34917
|
const slots = [];
|
|
34918
34918
|
const componentNames = [];
|
|
34919
34919
|
traverse__default.default(ast, {
|
|
34920
|
-
JSXElement(
|
|
34921
|
-
const openingElement =
|
|
34920
|
+
JSXElement(path15) {
|
|
34921
|
+
const openingElement = path15.node.openingElement;
|
|
34922
34922
|
if (t.isJSXIdentifier(openingElement.name)) {
|
|
34923
34923
|
const componentName = openingElement.name.name;
|
|
34924
34924
|
if (componentName[0] === componentName[0].toUpperCase()) {
|
|
@@ -36702,7 +36702,8 @@ async function installCommand(options) {
|
|
|
36702
36702
|
console.log("");
|
|
36703
36703
|
console.log(source_default.green(" Next steps:"));
|
|
36704
36704
|
console.log(source_default.gray(" 1. Run: npx uptrade-setup init"));
|
|
36705
|
-
console.log(source_default.gray(" 2.
|
|
36705
|
+
console.log(source_default.gray(" 2. Run: npx uptrade-setup scaffold (sitemap, robots, llms routes)"));
|
|
36706
|
+
console.log(source_default.gray(" 3. Follow the setup wizard"));
|
|
36706
36707
|
console.log("");
|
|
36707
36708
|
} catch (error) {
|
|
36708
36709
|
spinner.fail("Installation failed");
|
|
@@ -36776,6 +36777,95 @@ function detectPackageManager2() {
|
|
|
36776
36777
|
}
|
|
36777
36778
|
return "npm";
|
|
36778
36779
|
}
|
|
36780
|
+
async function scaffoldCommand(options) {
|
|
36781
|
+
console.log("");
|
|
36782
|
+
console.log(source_default.bold(" Scaffold Site-Kit default stack"));
|
|
36783
|
+
console.log(source_default.gray(" sitemap, robots.txt, llms.txt, llms-full.txt"));
|
|
36784
|
+
console.log("");
|
|
36785
|
+
const appDir = await findAppDir3();
|
|
36786
|
+
if (!appDir) {
|
|
36787
|
+
console.log(source_default.red(" \u2717 No app directory found (app/ or src/app/)"));
|
|
36788
|
+
process.exit(1);
|
|
36789
|
+
}
|
|
36790
|
+
const baseUrl = process.env.NEXT_PUBLIC_SITE_URL || "https://example.com";
|
|
36791
|
+
const files = [
|
|
36792
|
+
{
|
|
36793
|
+
path: path4__default.default.join(appDir, "sitemap.ts"),
|
|
36794
|
+
content: `import { createSitemap } from '@uptrademedia/site-kit/sitemap'
|
|
36795
|
+
|
|
36796
|
+
export default createSitemap({
|
|
36797
|
+
baseUrl: process.env.NEXT_PUBLIC_SITE_URL || '${baseUrl}',
|
|
36798
|
+
// additionalPaths: async () => [...],
|
|
36799
|
+
})
|
|
36800
|
+
`
|
|
36801
|
+
},
|
|
36802
|
+
{
|
|
36803
|
+
path: path4__default.default.join(appDir, "robots.txt", "route.ts"),
|
|
36804
|
+
content: `import { createRobots } from '@uptrademedia/site-kit/robots'
|
|
36805
|
+
|
|
36806
|
+
const handler = createRobots({
|
|
36807
|
+
baseUrl: process.env.NEXT_PUBLIC_SITE_URL || '${baseUrl}',
|
|
36808
|
+
})
|
|
36809
|
+
|
|
36810
|
+
export const GET = handler
|
|
36811
|
+
`
|
|
36812
|
+
},
|
|
36813
|
+
{
|
|
36814
|
+
path: path4__default.default.join(appDir, "llms.txt", "route.ts"),
|
|
36815
|
+
content: `import { createLLMsTxtHandler } from '@uptrademedia/site-kit/llms'
|
|
36816
|
+
|
|
36817
|
+
export const GET = createLLMsTxtHandler({ preferStatic: true })
|
|
36818
|
+
`
|
|
36819
|
+
},
|
|
36820
|
+
{
|
|
36821
|
+
path: path4__default.default.join(appDir, "llms-full.txt", "route.ts"),
|
|
36822
|
+
content: `import { createLLMsFullTxtHandler } from '@uptrademedia/site-kit/llms'
|
|
36823
|
+
|
|
36824
|
+
export const GET = createLLMsFullTxtHandler({ preferStatic: true })
|
|
36825
|
+
`
|
|
36826
|
+
}
|
|
36827
|
+
];
|
|
36828
|
+
if (options.dryRun) {
|
|
36829
|
+
console.log(source_default.yellow(" [DRY RUN] Would create:"));
|
|
36830
|
+
for (const f of files) {
|
|
36831
|
+
console.log(source_default.gray(` ${f.path}`));
|
|
36832
|
+
}
|
|
36833
|
+
console.log("");
|
|
36834
|
+
return;
|
|
36835
|
+
}
|
|
36836
|
+
const spinner = ora("Scaffolding...").start();
|
|
36837
|
+
for (const f of files) {
|
|
36838
|
+
try {
|
|
36839
|
+
if (fs.existsSync(f.path) && !options.force) {
|
|
36840
|
+
spinner.warn(`Skipped (exists): ${path4__default.default.relative(process.cwd(), f.path)}`);
|
|
36841
|
+
continue;
|
|
36842
|
+
}
|
|
36843
|
+
await fs2__default.default.mkdir(path4__default.default.dirname(f.path), { recursive: true });
|
|
36844
|
+
await fs2__default.default.writeFile(f.path, f.content, "utf-8");
|
|
36845
|
+
spinner.succeed(`Created ${path4__default.default.relative(process.cwd(), f.path)}`);
|
|
36846
|
+
} catch (err) {
|
|
36847
|
+
spinner.fail(`Failed: ${f.path}`);
|
|
36848
|
+
console.log(source_default.red(` ${err.message}`));
|
|
36849
|
+
}
|
|
36850
|
+
}
|
|
36851
|
+
console.log("");
|
|
36852
|
+
console.log(source_default.green(" Next steps:"));
|
|
36853
|
+
console.log(source_default.gray(" - Set NEXT_PUBLIC_SITE_URL in .env.local"));
|
|
36854
|
+
console.log(source_default.gray(" - Set NEXT_PUBLIC_UPTRADE_API_KEY for llms.txt"));
|
|
36855
|
+
console.log(source_default.gray(" - Add getLocalData to llms route if using local data"));
|
|
36856
|
+
console.log("");
|
|
36857
|
+
}
|
|
36858
|
+
async function findAppDir3() {
|
|
36859
|
+
const cwd = process.cwd();
|
|
36860
|
+
const candidates = [
|
|
36861
|
+
path4__default.default.join(cwd, "app"),
|
|
36862
|
+
path4__default.default.join(cwd, "src", "app")
|
|
36863
|
+
];
|
|
36864
|
+
for (const dir of candidates) {
|
|
36865
|
+
if (fs.existsSync(dir)) return dir;
|
|
36866
|
+
}
|
|
36867
|
+
return null;
|
|
36868
|
+
}
|
|
36779
36869
|
|
|
36780
36870
|
// src/cli/index.ts
|
|
36781
36871
|
dotenv.config({ path: ".env.local" });
|
|
@@ -36794,6 +36884,7 @@ program2.command("sync").description("Sync local content to Portal (pages, blog,
|
|
|
36794
36884
|
program2.command("api-routes").description("Generate _uptrade API proxy routes").option("--dry-run", "Show changes without applying").option("--force", "Overwrite existing routes").action(apiRoutesCommand);
|
|
36795
36885
|
program2.command("install").description("Install @uptrade/site-kit in current project").option("-D, --dev", "Install as dev dependency").option("--dry-run", "Show command without running").action(installCommand);
|
|
36796
36886
|
program2.command("upgrade").description("Upgrade @uptrade/site-kit to latest version").option("-v, --version <version>", "Target version (default: latest)").option("--dry-run", "Show command without running").action(upgradeCommand);
|
|
36887
|
+
program2.command("scaffold").description("Scaffold sitemap, robots, llms routes (default stack)").option("--dry-run", "Show what would be created").option("-f, --force", "Overwrite existing files").action(scaffoldCommand);
|
|
36797
36888
|
if (process.argv.length === 2) {
|
|
36798
36889
|
process.argv.push("init");
|
|
36799
36890
|
}
|