@nshiab/setup-data-project 1.0.39 → 2.0.1
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/README.md +12 -5
- package/esm/helpers/createFolderStructure.d.ts.map +1 -1
- package/esm/helpers/createFolderStructure.js +4 -5
- package/esm/helpers/ensureAgents.d.ts +2 -1
- package/esm/helpers/ensureAgents.d.ts.map +1 -1
- package/esm/helpers/ensureAgents.js +40 -4
- package/esm/helpers/ensureManagedSection.d.ts.map +1 -1
- package/esm/helpers/ensureManagedSection.js +5 -2
- package/esm/helpers/ensureReadme.d.ts.map +1 -1
- package/esm/helpers/ensureReadme.js +7 -3
- package/esm/helpers/fetchPackageDocs.d.ts +8 -0
- package/esm/helpers/fetchPackageDocs.d.ts.map +1 -0
- package/esm/helpers/fetchPackageDocs.js +75 -0
- package/esm/helpers/getInstalledPackageVersions.d.ts +2 -0
- package/esm/helpers/getInstalledPackageVersions.d.ts.map +1 -0
- package/esm/helpers/getInstalledPackageVersions.js +91 -0
- package/esm/helpers/getProjectTasks.js +1 -1
- package/esm/helpers/installPackages.d.ts +7 -0
- package/esm/helpers/installPackages.d.ts.map +1 -0
- package/esm/helpers/installPackages.js +59 -0
- package/esm/helpers/projectManifest.d.ts +1 -0
- package/esm/helpers/projectManifest.d.ts.map +1 -1
- package/esm/helpers/projectManifest.js +10 -3
- package/esm/helpers/syncPackageDocs.d.ts +2 -1
- package/esm/helpers/syncPackageDocs.d.ts.map +1 -1
- package/esm/helpers/syncPackageDocs.js +31 -12
- package/esm/main.js +10 -5
- package/package.json +2 -2
- package/script/helpers/createFolderStructure.d.ts.map +1 -1
- package/script/helpers/createFolderStructure.js +4 -5
- package/script/helpers/ensureAgents.d.ts +2 -1
- package/script/helpers/ensureAgents.d.ts.map +1 -1
- package/script/helpers/ensureAgents.js +40 -4
- package/script/helpers/ensureManagedSection.d.ts.map +1 -1
- package/script/helpers/ensureManagedSection.js +5 -2
- package/script/helpers/ensureReadme.d.ts.map +1 -1
- package/script/helpers/ensureReadme.js +7 -3
- package/script/helpers/fetchPackageDocs.d.ts +8 -0
- package/script/helpers/fetchPackageDocs.d.ts.map +1 -0
- package/script/helpers/fetchPackageDocs.js +78 -0
- package/script/helpers/getInstalledPackageVersions.d.ts +2 -0
- package/script/helpers/getInstalledPackageVersions.d.ts.map +1 -0
- package/script/helpers/getInstalledPackageVersions.js +94 -0
- package/script/helpers/getProjectTasks.js +1 -1
- package/script/helpers/installPackages.d.ts +7 -0
- package/script/helpers/installPackages.d.ts.map +1 -0
- package/script/helpers/installPackages.js +96 -0
- package/script/helpers/projectManifest.d.ts +1 -0
- package/script/helpers/projectManifest.d.ts.map +1 -1
- package/script/helpers/projectManifest.js +10 -3
- package/script/helpers/syncPackageDocs.d.ts +2 -1
- package/script/helpers/syncPackageDocs.d.ts.map +1 -1
- package/script/helpers/syncPackageDocs.js +30 -11
- package/script/main.js +10 -5
- package/esm/helpers/installPackagesAndFetchDocs.d.ts +0 -10
- package/esm/helpers/installPackagesAndFetchDocs.d.ts.map +0 -1
- package/esm/helpers/installPackagesAndFetchDocs.js +0 -100
- package/script/helpers/installPackagesAndFetchDocs.d.ts +0 -10
- package/script/helpers/installPackagesAndFetchDocs.d.ts.map +0 -1
- package/script/helpers/installPackagesAndFetchDocs.js +0 -138
package/script/main.js
CHANGED
|
@@ -10,7 +10,7 @@ const getRuntime_js_1 = require("./helpers/getRuntime.js");
|
|
|
10
10
|
const packageOptions_js_1 = require("./helpers/packageOptions.js");
|
|
11
11
|
const ensureGitignore_js_1 = require("./helpers/ensureGitignore.js");
|
|
12
12
|
const ensureReadme_js_1 = require("./helpers/ensureReadme.js");
|
|
13
|
-
const
|
|
13
|
+
const installPackages_js_1 = require("./helpers/installPackages.js");
|
|
14
14
|
const getProjectTasks_js_1 = require("./helpers/getProjectTasks.js");
|
|
15
15
|
const createFolderStructure_js_1 = require("./helpers/createFolderStructure.js");
|
|
16
16
|
const ensureEnvFile_js_1 = require("./helpers/ensureEnvFile.js");
|
|
@@ -18,6 +18,7 @@ const ensureAgents_js_1 = require("./helpers/ensureAgents.js");
|
|
|
18
18
|
const packageRegistry_js_1 = require("./helpers/packageRegistry.js");
|
|
19
19
|
const projectManifest_js_1 = require("./helpers/projectManifest.js");
|
|
20
20
|
const syncPackageDocs_js_1 = require("./helpers/syncPackageDocs.js");
|
|
21
|
+
const getInstalledPackageVersions_js_1 = require("./helpers/getInstalledPackageVersions.js");
|
|
21
22
|
async function main() {
|
|
22
23
|
const runtime = (0, getRuntime_js_1.getRuntime)();
|
|
23
24
|
console.log();
|
|
@@ -64,10 +65,10 @@ async function main() {
|
|
|
64
65
|
}
|
|
65
66
|
}
|
|
66
67
|
const sInstall = (0, prompts_1.spinner)();
|
|
67
|
-
sInstall.start("Installing packages
|
|
68
|
+
sInstall.start("Installing packages...");
|
|
68
69
|
for (const pkg of packagesToInstall) {
|
|
69
70
|
try {
|
|
70
|
-
await (0,
|
|
71
|
+
await (0, installPackages_js_1.installPackages)([pkg], { silent: true });
|
|
71
72
|
}
|
|
72
73
|
catch (error) {
|
|
73
74
|
sInstall.stop(`❌ Failed to install ${pkg}.`);
|
|
@@ -75,11 +76,15 @@ async function main() {
|
|
|
75
76
|
node_process_1.default.exit(1);
|
|
76
77
|
}
|
|
77
78
|
}
|
|
78
|
-
sInstall.stop("✅
|
|
79
|
+
sInstall.stop("✅ Package installation complete.");
|
|
79
80
|
projectManifest.reload();
|
|
80
81
|
projectManifest.updateTasks((0, getProjectTasks_js_1.getProjectTasks)());
|
|
81
82
|
const finalInstalledPackages = (0, packageRegistry_js_1.getInstalledPackageConfigs)(projectManifest.getInstalledPackages()).map((pkg) => pkg.value);
|
|
82
|
-
const
|
|
83
|
+
const finalInstalledVersions = (0, getInstalledPackageVersions_js_1.getInstalledPackageVersions)(projectManifest.getInstalledPackageSpecifiers());
|
|
84
|
+
const sDocs = (0, prompts_1.spinner)();
|
|
85
|
+
sDocs.start("Fetching documentation for installed package versions...");
|
|
86
|
+
const docsMapping = await (0, syncPackageDocs_js_1.syncPackageDocs)(finalInstalledPackages, finalInstalledVersions);
|
|
87
|
+
sDocs.stop("✅ Documentation synchronization complete.");
|
|
83
88
|
(0, createFolderStructure_js_1.createFolderStructure)(finalInstalledPackages);
|
|
84
89
|
(0, ensureGitignore_js_1.ensureGitignore)();
|
|
85
90
|
(0, ensureEnvFile_js_1.ensureEnvFile)();
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export declare const commandRunner: {
|
|
2
|
-
exec: any;
|
|
3
|
-
};
|
|
4
|
-
export declare function fetchPackageDocs(pkg: string, options?: {
|
|
5
|
-
silent?: boolean;
|
|
6
|
-
}): Promise<string | undefined>;
|
|
7
|
-
export declare function installPackagesAndFetchDocs(selectedPackages: string[], options?: {
|
|
8
|
-
silent?: boolean;
|
|
9
|
-
}): Promise<string | void>;
|
|
10
|
-
//# sourceMappingURL=installPackagesAndFetchDocs.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"installPackagesAndFetchDocs.d.ts","sourceRoot":"","sources":["../../src/helpers/installPackagesAndFetchDocs.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,aAAa;;CAEzB,CAAC;AAEF,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,MAAM,EACX,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GACjC,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CA4C7B;AAED,wBAAsB,2BAA2B,CAC/C,gBAAgB,EAAE,MAAM,EAAE,EAC1B,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GACjC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA4DxB"}
|
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
import { log, spinner } from "@clack/prompts";
|
|
2
|
-
import * as childProcess from "node:child_process";
|
|
3
|
-
import { existsSync, mkdirSync, writeFileSync } from "node:fs";
|
|
4
|
-
import { join } from "node:path";
|
|
5
|
-
import { getRuntime } from "./getRuntime.js";
|
|
6
|
-
export const commandRunner = {
|
|
7
|
-
exec: childProcess.exec,
|
|
8
|
-
};
|
|
9
|
-
export async function fetchPackageDocs(pkg, options = {}) {
|
|
10
|
-
if (!existsSync("docs")) {
|
|
11
|
-
mkdirSync("docs");
|
|
12
|
-
}
|
|
13
|
-
const sFetch = spinner();
|
|
14
|
-
if (!options.silent) {
|
|
15
|
-
sFetch.start("Fetching documentation for " + pkg + "...");
|
|
16
|
-
}
|
|
17
|
-
try {
|
|
18
|
-
const repoName = pkg.split("/")[1];
|
|
19
|
-
const url = "https://raw.githubusercontent.com/nshiab/" + repoName +
|
|
20
|
-
"/refs/heads/main/llm.md";
|
|
21
|
-
const response = await fetch(url);
|
|
22
|
-
if (!response.ok) {
|
|
23
|
-
if (!options.silent) {
|
|
24
|
-
sFetch.stop("⚠️ No documentation (llm.md) found for " + pkg + ".");
|
|
25
|
-
}
|
|
26
|
-
log.warn(`Documentation for ${pkg} could not be refreshed. Rerun the script ` +
|
|
27
|
-
"later to try again.");
|
|
28
|
-
return undefined;
|
|
29
|
-
}
|
|
30
|
-
const docContent = await response.text();
|
|
31
|
-
writeFileSync(join("docs", repoName + ".md"), docContent);
|
|
32
|
-
if (!options.silent) {
|
|
33
|
-
sFetch.stop("✅ Documentation for " + pkg + " saved!");
|
|
34
|
-
}
|
|
35
|
-
return docContent;
|
|
36
|
-
}
|
|
37
|
-
catch (error) {
|
|
38
|
-
if (!options.silent) {
|
|
39
|
-
sFetch.stop("❌ Failed to fetch documentation for " + pkg + ".");
|
|
40
|
-
}
|
|
41
|
-
log.warn(`Documentation for ${pkg} could not be refreshed. Rerun the script ` +
|
|
42
|
-
"later to try again.");
|
|
43
|
-
console.error(error);
|
|
44
|
-
return undefined;
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
export async function installPackagesAndFetchDocs(selectedPackages, options = {}) {
|
|
48
|
-
const runtime = getRuntime();
|
|
49
|
-
if (Array.isArray(selectedPackages) && selectedPackages.length > 0) {
|
|
50
|
-
if (!existsSync("docs")) {
|
|
51
|
-
mkdirSync("docs");
|
|
52
|
-
}
|
|
53
|
-
let lastDoc = "";
|
|
54
|
-
for (const pkg of selectedPackages) {
|
|
55
|
-
const s = spinner();
|
|
56
|
-
const pkgsToInstall = [pkg];
|
|
57
|
-
if (pkg === "@nshiab/simple-data-analysis" ||
|
|
58
|
-
pkg === "@nshiab/journalism-dataviz") {
|
|
59
|
-
pkgsToInstall.push("@observablehq/plot");
|
|
60
|
-
}
|
|
61
|
-
for (const p of pkgsToInstall) {
|
|
62
|
-
const isObservablePlot = p === "@observablehq/plot";
|
|
63
|
-
const installCmd = runtime === "deno"
|
|
64
|
-
? (isObservablePlot ? "deno add npm:" + p : "deno add jsr:" + p)
|
|
65
|
-
: runtime === "bun"
|
|
66
|
-
? "bun add " + p
|
|
67
|
-
: "npm install " + p;
|
|
68
|
-
if (!options.silent) {
|
|
69
|
-
s.start("Installing " + p + " via " + runtime + "...");
|
|
70
|
-
}
|
|
71
|
-
try {
|
|
72
|
-
await new Promise((resolve, reject) => {
|
|
73
|
-
commandRunner.exec(installCmd, (error) => {
|
|
74
|
-
if (error) {
|
|
75
|
-
reject(error);
|
|
76
|
-
}
|
|
77
|
-
else {
|
|
78
|
-
resolve(void 0);
|
|
79
|
-
}
|
|
80
|
-
});
|
|
81
|
-
});
|
|
82
|
-
if (!options.silent) {
|
|
83
|
-
s.stop("✅ " + p + " installed!");
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
catch (error) {
|
|
87
|
-
if (!options.silent) {
|
|
88
|
-
s.stop("❌ Failed to install " + p + ".");
|
|
89
|
-
}
|
|
90
|
-
throw error;
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
const docContent = await fetchPackageDocs(pkg, options);
|
|
94
|
-
if (docContent !== undefined) {
|
|
95
|
-
lastDoc = docContent;
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
return lastDoc;
|
|
99
|
-
}
|
|
100
|
-
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export declare const commandRunner: {
|
|
2
|
-
exec: any;
|
|
3
|
-
};
|
|
4
|
-
export declare function fetchPackageDocs(pkg: string, options?: {
|
|
5
|
-
silent?: boolean;
|
|
6
|
-
}): Promise<string | undefined>;
|
|
7
|
-
export declare function installPackagesAndFetchDocs(selectedPackages: string[], options?: {
|
|
8
|
-
silent?: boolean;
|
|
9
|
-
}): Promise<string | void>;
|
|
10
|
-
//# sourceMappingURL=installPackagesAndFetchDocs.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"installPackagesAndFetchDocs.d.ts","sourceRoot":"","sources":["../../src/helpers/installPackagesAndFetchDocs.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,aAAa;;CAEzB,CAAC;AAEF,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,MAAM,EACX,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GACjC,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CA4C7B;AAED,wBAAsB,2BAA2B,CAC/C,gBAAgB,EAAE,MAAM,EAAE,EAC1B,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GACjC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA4DxB"}
|
|
@@ -1,138 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.commandRunner = void 0;
|
|
37
|
-
exports.fetchPackageDocs = fetchPackageDocs;
|
|
38
|
-
exports.installPackagesAndFetchDocs = installPackagesAndFetchDocs;
|
|
39
|
-
const prompts_1 = require("@clack/prompts");
|
|
40
|
-
const childProcess = __importStar(require("node:child_process"));
|
|
41
|
-
const node_fs_1 = require("node:fs");
|
|
42
|
-
const node_path_1 = require("node:path");
|
|
43
|
-
const getRuntime_js_1 = require("./getRuntime.js");
|
|
44
|
-
exports.commandRunner = {
|
|
45
|
-
exec: childProcess.exec,
|
|
46
|
-
};
|
|
47
|
-
async function fetchPackageDocs(pkg, options = {}) {
|
|
48
|
-
if (!(0, node_fs_1.existsSync)("docs")) {
|
|
49
|
-
(0, node_fs_1.mkdirSync)("docs");
|
|
50
|
-
}
|
|
51
|
-
const sFetch = (0, prompts_1.spinner)();
|
|
52
|
-
if (!options.silent) {
|
|
53
|
-
sFetch.start("Fetching documentation for " + pkg + "...");
|
|
54
|
-
}
|
|
55
|
-
try {
|
|
56
|
-
const repoName = pkg.split("/")[1];
|
|
57
|
-
const url = "https://raw.githubusercontent.com/nshiab/" + repoName +
|
|
58
|
-
"/refs/heads/main/llm.md";
|
|
59
|
-
const response = await fetch(url);
|
|
60
|
-
if (!response.ok) {
|
|
61
|
-
if (!options.silent) {
|
|
62
|
-
sFetch.stop("⚠️ No documentation (llm.md) found for " + pkg + ".");
|
|
63
|
-
}
|
|
64
|
-
prompts_1.log.warn(`Documentation for ${pkg} could not be refreshed. Rerun the script ` +
|
|
65
|
-
"later to try again.");
|
|
66
|
-
return undefined;
|
|
67
|
-
}
|
|
68
|
-
const docContent = await response.text();
|
|
69
|
-
(0, node_fs_1.writeFileSync)((0, node_path_1.join)("docs", repoName + ".md"), docContent);
|
|
70
|
-
if (!options.silent) {
|
|
71
|
-
sFetch.stop("✅ Documentation for " + pkg + " saved!");
|
|
72
|
-
}
|
|
73
|
-
return docContent;
|
|
74
|
-
}
|
|
75
|
-
catch (error) {
|
|
76
|
-
if (!options.silent) {
|
|
77
|
-
sFetch.stop("❌ Failed to fetch documentation for " + pkg + ".");
|
|
78
|
-
}
|
|
79
|
-
prompts_1.log.warn(`Documentation for ${pkg} could not be refreshed. Rerun the script ` +
|
|
80
|
-
"later to try again.");
|
|
81
|
-
console.error(error);
|
|
82
|
-
return undefined;
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
async function installPackagesAndFetchDocs(selectedPackages, options = {}) {
|
|
86
|
-
const runtime = (0, getRuntime_js_1.getRuntime)();
|
|
87
|
-
if (Array.isArray(selectedPackages) && selectedPackages.length > 0) {
|
|
88
|
-
if (!(0, node_fs_1.existsSync)("docs")) {
|
|
89
|
-
(0, node_fs_1.mkdirSync)("docs");
|
|
90
|
-
}
|
|
91
|
-
let lastDoc = "";
|
|
92
|
-
for (const pkg of selectedPackages) {
|
|
93
|
-
const s = (0, prompts_1.spinner)();
|
|
94
|
-
const pkgsToInstall = [pkg];
|
|
95
|
-
if (pkg === "@nshiab/simple-data-analysis" ||
|
|
96
|
-
pkg === "@nshiab/journalism-dataviz") {
|
|
97
|
-
pkgsToInstall.push("@observablehq/plot");
|
|
98
|
-
}
|
|
99
|
-
for (const p of pkgsToInstall) {
|
|
100
|
-
const isObservablePlot = p === "@observablehq/plot";
|
|
101
|
-
const installCmd = runtime === "deno"
|
|
102
|
-
? (isObservablePlot ? "deno add npm:" + p : "deno add jsr:" + p)
|
|
103
|
-
: runtime === "bun"
|
|
104
|
-
? "bun add " + p
|
|
105
|
-
: "npm install " + p;
|
|
106
|
-
if (!options.silent) {
|
|
107
|
-
s.start("Installing " + p + " via " + runtime + "...");
|
|
108
|
-
}
|
|
109
|
-
try {
|
|
110
|
-
await new Promise((resolve, reject) => {
|
|
111
|
-
exports.commandRunner.exec(installCmd, (error) => {
|
|
112
|
-
if (error) {
|
|
113
|
-
reject(error);
|
|
114
|
-
}
|
|
115
|
-
else {
|
|
116
|
-
resolve(void 0);
|
|
117
|
-
}
|
|
118
|
-
});
|
|
119
|
-
});
|
|
120
|
-
if (!options.silent) {
|
|
121
|
-
s.stop("✅ " + p + " installed!");
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
catch (error) {
|
|
125
|
-
if (!options.silent) {
|
|
126
|
-
s.stop("❌ Failed to install " + p + ".");
|
|
127
|
-
}
|
|
128
|
-
throw error;
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
const docContent = await fetchPackageDocs(pkg, options);
|
|
132
|
-
if (docContent !== undefined) {
|
|
133
|
-
lastDoc = docContent;
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
return lastDoc;
|
|
137
|
-
}
|
|
138
|
-
}
|