@nshiab/setup-data-project 2.0.3 → 3.0.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/README.md +76 -28
- package/dist/main.mjs +849 -0
- package/dist/main.mjs.map +1 -0
- package/package.json +29 -18
- package/esm/_dnt.shims.d.ts +0 -2
- package/esm/_dnt.shims.d.ts.map +0 -1
- package/esm/_dnt.shims.js +0 -57
- package/esm/helpers/combinePlotDocs.d.ts +0 -2
- package/esm/helpers/combinePlotDocs.d.ts.map +0 -1
- package/esm/helpers/combinePlotDocs.js +0 -111
- package/esm/helpers/createFolderStructure.d.ts +0 -2
- package/esm/helpers/createFolderStructure.d.ts.map +0 -1
- package/esm/helpers/createFolderStructure.js +0 -40
- package/esm/helpers/ensureAgents.d.ts +0 -3
- package/esm/helpers/ensureAgents.d.ts.map +0 -1
- package/esm/helpers/ensureAgents.js +0 -186
- package/esm/helpers/ensureEnvFile.d.ts +0 -2
- package/esm/helpers/ensureEnvFile.d.ts.map +0 -1
- package/esm/helpers/ensureEnvFile.js +0 -8
- package/esm/helpers/ensureGitignore.d.ts +0 -3
- package/esm/helpers/ensureGitignore.d.ts.map +0 -1
- package/esm/helpers/ensureGitignore.js +0 -24
- package/esm/helpers/ensureManagedSection.d.ts +0 -9
- package/esm/helpers/ensureManagedSection.d.ts.map +0 -1
- package/esm/helpers/ensureManagedSection.js +0 -33
- package/esm/helpers/ensureReadme.d.ts +0 -2
- package/esm/helpers/ensureReadme.d.ts.map +0 -1
- package/esm/helpers/ensureReadme.js +0 -61
- package/esm/helpers/fetchPackageDocs.d.ts +0 -12
- package/esm/helpers/fetchPackageDocs.d.ts.map +0 -1
- package/esm/helpers/fetchPackageDocs.js +0 -75
- package/esm/helpers/fetchPlotDocs.d.ts +0 -5
- package/esm/helpers/fetchPlotDocs.d.ts.map +0 -1
- package/esm/helpers/fetchPlotDocs.js +0 -103
- package/esm/helpers/getInstalledPackageVersions.d.ts +0 -2
- package/esm/helpers/getInstalledPackageVersions.d.ts.map +0 -1
- package/esm/helpers/getInstalledPackageVersions.js +0 -94
- package/esm/helpers/getProjectTasks.d.ts +0 -6
- package/esm/helpers/getProjectTasks.d.ts.map +0 -1
- package/esm/helpers/getProjectTasks.js +0 -17
- package/esm/helpers/getRuntime.d.ts +0 -5
- package/esm/helpers/getRuntime.d.ts.map +0 -1
- package/esm/helpers/getRuntime.js +0 -19
- package/esm/helpers/gitignoreEntries.d.ts +0 -2
- package/esm/helpers/gitignoreEntries.d.ts.map +0 -1
- package/esm/helpers/gitignoreEntries.js +0 -10
- package/esm/helpers/installPackages.d.ts +0 -7
- package/esm/helpers/installPackages.d.ts.map +0 -1
- package/esm/helpers/installPackages.js +0 -49
- package/esm/helpers/packageOptions.d.ts +0 -6
- package/esm/helpers/packageOptions.d.ts.map +0 -1
- package/esm/helpers/packageOptions.js +0 -6
- package/esm/helpers/packageRegistry.d.ts +0 -10
- package/esm/helpers/packageRegistry.d.ts.map +0 -1
- package/esm/helpers/packageRegistry.js +0 -89
- package/esm/helpers/parseArguments.d.ts +0 -7
- package/esm/helpers/parseArguments.d.ts.map +0 -1
- package/esm/helpers/parseArguments.js +0 -30
- package/esm/helpers/plotDocPages.d.ts +0 -2
- package/esm/helpers/plotDocPages.d.ts.map +0 -1
- package/esm/helpers/plotDocPages.js +0 -46
- package/esm/helpers/projectManifest.d.ts +0 -12
- package/esm/helpers/projectManifest.d.ts.map +0 -1
- package/esm/helpers/projectManifest.js +0 -80
- package/esm/helpers/syncPackageDocs.d.ts +0 -3
- package/esm/helpers/syncPackageDocs.d.ts.map +0 -1
- package/esm/helpers/syncPackageDocs.js +0 -50
- package/esm/main.d.ts +0 -3
- package/esm/main.d.ts.map +0 -1
- package/esm/main.js +0 -104
- package/esm/package.json +0 -3
- package/script/_dnt.shims.d.ts +0 -2
- package/script/_dnt.shims.d.ts.map +0 -1
- package/script/_dnt.shims.js +0 -60
- package/script/helpers/combinePlotDocs.d.ts +0 -2
- package/script/helpers/combinePlotDocs.d.ts.map +0 -1
- package/script/helpers/combinePlotDocs.js +0 -114
- package/script/helpers/createFolderStructure.d.ts +0 -2
- package/script/helpers/createFolderStructure.d.ts.map +0 -1
- package/script/helpers/createFolderStructure.js +0 -43
- package/script/helpers/ensureAgents.d.ts +0 -3
- package/script/helpers/ensureAgents.d.ts.map +0 -1
- package/script/helpers/ensureAgents.js +0 -189
- package/script/helpers/ensureEnvFile.d.ts +0 -2
- package/script/helpers/ensureEnvFile.d.ts.map +0 -1
- package/script/helpers/ensureEnvFile.js +0 -11
- package/script/helpers/ensureGitignore.d.ts +0 -3
- package/script/helpers/ensureGitignore.d.ts.map +0 -1
- package/script/helpers/ensureGitignore.js +0 -28
- package/script/helpers/ensureManagedSection.d.ts +0 -9
- package/script/helpers/ensureManagedSection.d.ts.map +0 -1
- package/script/helpers/ensureManagedSection.js +0 -36
- package/script/helpers/ensureReadme.d.ts +0 -2
- package/script/helpers/ensureReadme.d.ts.map +0 -1
- package/script/helpers/ensureReadme.js +0 -64
- package/script/helpers/fetchPackageDocs.d.ts +0 -12
- package/script/helpers/fetchPackageDocs.d.ts.map +0 -1
- package/script/helpers/fetchPackageDocs.js +0 -78
- package/script/helpers/fetchPlotDocs.d.ts +0 -5
- package/script/helpers/fetchPlotDocs.d.ts.map +0 -1
- package/script/helpers/fetchPlotDocs.js +0 -106
- package/script/helpers/getInstalledPackageVersions.d.ts +0 -2
- package/script/helpers/getInstalledPackageVersions.d.ts.map +0 -1
- package/script/helpers/getInstalledPackageVersions.js +0 -97
- package/script/helpers/getProjectTasks.d.ts +0 -6
- package/script/helpers/getProjectTasks.d.ts.map +0 -1
- package/script/helpers/getProjectTasks.js +0 -20
- package/script/helpers/getRuntime.d.ts +0 -5
- package/script/helpers/getRuntime.d.ts.map +0 -1
- package/script/helpers/getRuntime.js +0 -59
- package/script/helpers/gitignoreEntries.d.ts +0 -2
- package/script/helpers/gitignoreEntries.d.ts.map +0 -1
- package/script/helpers/gitignoreEntries.js +0 -13
- package/script/helpers/installPackages.d.ts +0 -7
- package/script/helpers/installPackages.d.ts.map +0 -1
- package/script/helpers/installPackages.js +0 -86
- package/script/helpers/packageOptions.d.ts +0 -6
- package/script/helpers/packageOptions.d.ts.map +0 -1
- package/script/helpers/packageOptions.js +0 -9
- package/script/helpers/packageRegistry.d.ts +0 -10
- package/script/helpers/packageRegistry.d.ts.map +0 -1
- package/script/helpers/packageRegistry.js +0 -93
- package/script/helpers/parseArguments.d.ts +0 -7
- package/script/helpers/parseArguments.d.ts.map +0 -1
- package/script/helpers/parseArguments.js +0 -34
- package/script/helpers/plotDocPages.d.ts +0 -2
- package/script/helpers/plotDocPages.d.ts.map +0 -1
- package/script/helpers/plotDocPages.js +0 -49
- package/script/helpers/projectManifest.d.ts +0 -12
- package/script/helpers/projectManifest.d.ts.map +0 -1
- package/script/helpers/projectManifest.js +0 -84
- package/script/helpers/syncPackageDocs.d.ts +0 -3
- package/script/helpers/syncPackageDocs.d.ts.map +0 -1
- package/script/helpers/syncPackageDocs.js +0 -53
- package/script/main.d.ts +0 -3
- package/script/main.d.ts.map +0 -1
- package/script/main.js +0 -109
- package/script/package.json +0 -3
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"packageOptions.d.ts","sourceRoot":"","sources":["../../src/helpers/packageOptions.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,eAAe;;;;GAIzB,CAAC"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PACKAGE_OPTIONS = void 0;
|
|
4
|
-
const packageRegistry_js_1 = require("./packageRegistry.js");
|
|
5
|
-
exports.PACKAGE_OPTIONS = packageRegistry_js_1.SUPPORTED_PACKAGES.map((pkg) => ({
|
|
6
|
-
value: pkg.value,
|
|
7
|
-
label: pkg.label,
|
|
8
|
-
hint: pkg.hint,
|
|
9
|
-
}));
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export interface PackageConfig {
|
|
2
|
-
value: string;
|
|
3
|
-
label: string;
|
|
4
|
-
type: "sda" | "journalism" | "other";
|
|
5
|
-
hint?: string;
|
|
6
|
-
}
|
|
7
|
-
export declare const SUPPORTED_PACKAGES: PackageConfig[];
|
|
8
|
-
export declare const DOCUMENTED_PACKAGES: PackageConfig[];
|
|
9
|
-
export declare function getInstalledPackageConfigs(installedPackages: string[]): PackageConfig[];
|
|
10
|
-
//# sourceMappingURL=packageRegistry.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"packageRegistry.d.ts","sourceRoot":"","sources":["../../src/helpers/packageRegistry.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,KAAK,GAAG,YAAY,GAAG,OAAO,CAAC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,kBAAkB,EAAE,aAAa,EAwF7C,CAAC;AAGF,eAAO,MAAM,mBAAmB,EAAE,aAAa,EAG9C,CAAC;AAEF,wBAAgB,0BAA0B,CACxC,iBAAiB,EAAE,MAAM,EAAE,GAC1B,aAAa,EAAE,CAGjB"}
|
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DOCUMENTED_PACKAGES = exports.SUPPORTED_PACKAGES = void 0;
|
|
4
|
-
exports.getInstalledPackageConfigs = getInstalledPackageConfigs;
|
|
5
|
-
exports.SUPPORTED_PACKAGES = [
|
|
6
|
-
{
|
|
7
|
-
value: "@nshiab/simple-data-analysis",
|
|
8
|
-
label: "simple-data-analysis",
|
|
9
|
-
type: "sda",
|
|
10
|
-
hint: "All the core functionality, plus methods for dataviz, AI, Google sheets, etc.",
|
|
11
|
-
},
|
|
12
|
-
{
|
|
13
|
-
value: "@nshiab/simple-data-analysis-core",
|
|
14
|
-
label: "simple-data-analysis-core",
|
|
15
|
-
type: "sda",
|
|
16
|
-
hint: "No fluff. Great for constrained environments, like a cheap server.",
|
|
17
|
-
},
|
|
18
|
-
{
|
|
19
|
-
value: "@nshiab/journalism-ai",
|
|
20
|
-
label: "journalism-ai",
|
|
21
|
-
type: "journalism",
|
|
22
|
-
hint: "Easily use AI local models with Ollama or remote models with Gemini/Vertex.",
|
|
23
|
-
},
|
|
24
|
-
{
|
|
25
|
-
value: "@nshiab/journalism-google",
|
|
26
|
-
label: "journalism-google",
|
|
27
|
-
type: "journalism",
|
|
28
|
-
hint: "Push and retrieve data from Google Sheets, Google Bucket, and more.",
|
|
29
|
-
},
|
|
30
|
-
{
|
|
31
|
-
value: "@nshiab/journalism-web-scraping",
|
|
32
|
-
label: "journalism-web-scraping",
|
|
33
|
-
type: "journalism",
|
|
34
|
-
hint: "Retrieve data from Statistics Canada tables, HTML table, download files...",
|
|
35
|
-
},
|
|
36
|
-
{
|
|
37
|
-
value: "@nshiab/journalism-finance",
|
|
38
|
-
label: "journalism-finance",
|
|
39
|
-
type: "journalism",
|
|
40
|
-
hint: "Retrieve financial data, calculate Canadian mortgage payments and taxes...",
|
|
41
|
-
},
|
|
42
|
-
{
|
|
43
|
-
value: "@nshiab/journalism-format",
|
|
44
|
-
label: "journalism-format",
|
|
45
|
-
type: "journalism",
|
|
46
|
-
hint: "Easily format dates, numbers, currencies...",
|
|
47
|
-
},
|
|
48
|
-
{
|
|
49
|
-
value: "@nshiab/journalism-climate",
|
|
50
|
-
label: "journalism-climate",
|
|
51
|
-
type: "journalism",
|
|
52
|
-
hint: "Retrieve data from Environment Canada APIs and more.",
|
|
53
|
-
},
|
|
54
|
-
{
|
|
55
|
-
value: "@nshiab/journalism-dataviz",
|
|
56
|
-
label: "journalism-dataviz",
|
|
57
|
-
type: "journalism",
|
|
58
|
-
hint: "Render charts/maps with Observable Plot or directly in the terminal.",
|
|
59
|
-
},
|
|
60
|
-
{
|
|
61
|
-
value: "@nshiab/journalism-geo",
|
|
62
|
-
label: "journalism-geo",
|
|
63
|
-
type: "journalism",
|
|
64
|
-
hint: "Calculate distances, transform 2D coordinates to 3D, wrangle GeoTIFF files...",
|
|
65
|
-
},
|
|
66
|
-
{
|
|
67
|
-
value: "@nshiab/journalism-statistics",
|
|
68
|
-
label: "journalism-statistics",
|
|
69
|
-
type: "journalism",
|
|
70
|
-
hint: "Functions for statistical tests, clustering, random path generation...",
|
|
71
|
-
},
|
|
72
|
-
{
|
|
73
|
-
value: "@nshiab/journalism-web",
|
|
74
|
-
label: "journalism-web",
|
|
75
|
-
type: "journalism",
|
|
76
|
-
hint: "Web related functions, including downloading data as CSV, extracting ZIP files to URLs...",
|
|
77
|
-
},
|
|
78
|
-
{
|
|
79
|
-
value: "@nshiab/journalism-extras",
|
|
80
|
-
label: "journalism-extras",
|
|
81
|
-
type: "journalism",
|
|
82
|
-
hint: "Functions to zip/unzip, sleep, reencode files, create nested directories...",
|
|
83
|
-
},
|
|
84
|
-
];
|
|
85
|
-
// Plot is installed alongside charting libraries, but is not a setup menu option.
|
|
86
|
-
exports.DOCUMENTED_PACKAGES = [
|
|
87
|
-
...exports.SUPPORTED_PACKAGES,
|
|
88
|
-
{ value: "@observablehq/plot", label: "Observable Plot", type: "other" },
|
|
89
|
-
];
|
|
90
|
-
function getInstalledPackageConfigs(installedPackages) {
|
|
91
|
-
const installedSet = new Set(installedPackages);
|
|
92
|
-
return exports.DOCUMENTED_PACKAGES.filter((pkg) => installedSet.has(pkg.value));
|
|
93
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export interface CliOptions {
|
|
2
|
-
help: boolean;
|
|
3
|
-
package?: string;
|
|
4
|
-
}
|
|
5
|
-
export declare const CLI_HELP = "Usage: setup-data-project [--sda | --sda-core] [--help]\n\n --sda Select simple-data-analysis without prompting.\n --sda-core Select simple-data-analysis-core without prompting.\n -h, --help Show this help and exit.\n\nWithout a package flag, choose packages interactively.\nPackage flags keep existing versions and still set up project files and docs.\n--sda and --sda-core cannot be combined.";
|
|
6
|
-
export declare function parseArguments(args: string[]): CliOptions;
|
|
7
|
-
//# sourceMappingURL=parseArguments.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parseArguments.d.ts","sourceRoot":"","sources":["../../src/helpers/parseArguments.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,QAAQ,0ZAQoB,CAAC;AAE1C,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU,CAoBzD"}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.CLI_HELP = void 0;
|
|
4
|
-
exports.parseArguments = parseArguments;
|
|
5
|
-
exports.CLI_HELP = `Usage: setup-data-project [--sda | --sda-core] [--help]
|
|
6
|
-
|
|
7
|
-
--sda Select simple-data-analysis without prompting.
|
|
8
|
-
--sda-core Select simple-data-analysis-core without prompting.
|
|
9
|
-
-h, --help Show this help and exit.
|
|
10
|
-
|
|
11
|
-
Without a package flag, choose packages interactively.
|
|
12
|
-
Package flags keep existing versions and still set up project files and docs.
|
|
13
|
-
--sda and --sda-core cannot be combined.`;
|
|
14
|
-
function parseArguments(args) {
|
|
15
|
-
const options = { help: false };
|
|
16
|
-
for (const arg of args) {
|
|
17
|
-
if (arg === "--help" || arg === "-h") {
|
|
18
|
-
options.help = true;
|
|
19
|
-
}
|
|
20
|
-
else if (arg === "--sda" || arg === "--sda-core") {
|
|
21
|
-
const pkg = arg === "--sda"
|
|
22
|
-
? "@nshiab/simple-data-analysis"
|
|
23
|
-
: "@nshiab/simple-data-analysis-core";
|
|
24
|
-
if (options.package && options.package !== pkg) {
|
|
25
|
-
throw new Error("--sda and --sda-core cannot be combined.");
|
|
26
|
-
}
|
|
27
|
-
options.package = pkg;
|
|
28
|
-
}
|
|
29
|
-
else {
|
|
30
|
-
throw new Error(`Unknown argument: ${arg}. Use --help for usage.`);
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
return options;
|
|
34
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"plotDocPages.d.ts","sourceRoot":"","sources":["../../src/helpers/plotDocPages.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,cAAc,EAAE,MAAM,EA2C3B,CAAC"}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PLOT_DOC_PAGES = void 0;
|
|
4
|
-
// Static chart creation references. Keep this explicit so new upstream pages do
|
|
5
|
-
// not silently expand the installed agent reference.
|
|
6
|
-
exports.PLOT_DOC_PAGES = [
|
|
7
|
-
"features/plots.md",
|
|
8
|
-
"features/marks.md",
|
|
9
|
-
"features/scales.md",
|
|
10
|
-
"features/projections.md",
|
|
11
|
-
"features/legends.md",
|
|
12
|
-
"features/facets.md",
|
|
13
|
-
"features/formats.md",
|
|
14
|
-
"features/curves.md",
|
|
15
|
-
"transforms/bin.md",
|
|
16
|
-
"transforms/group.md",
|
|
17
|
-
"transforms/stack.md",
|
|
18
|
-
"transforms/normalize.md",
|
|
19
|
-
"transforms/centroid.md",
|
|
20
|
-
"transforms/sort.md",
|
|
21
|
-
"marks/area.md",
|
|
22
|
-
"marks/arrow.md",
|
|
23
|
-
"marks/axis.md",
|
|
24
|
-
"marks/bar.md",
|
|
25
|
-
"marks/bollinger.md",
|
|
26
|
-
"marks/box.md",
|
|
27
|
-
"marks/cell.md",
|
|
28
|
-
"marks/contour.md",
|
|
29
|
-
"marks/delaunay.md",
|
|
30
|
-
"marks/density.md",
|
|
31
|
-
"marks/difference.md",
|
|
32
|
-
"marks/dot.md",
|
|
33
|
-
"marks/frame.md",
|
|
34
|
-
"marks/geo.md",
|
|
35
|
-
"marks/grid.md",
|
|
36
|
-
"marks/hexgrid.md",
|
|
37
|
-
"marks/image.md",
|
|
38
|
-
"marks/line.md",
|
|
39
|
-
"marks/linear-regression.md",
|
|
40
|
-
"marks/link.md",
|
|
41
|
-
"marks/raster.md",
|
|
42
|
-
"marks/rect.md",
|
|
43
|
-
"marks/rule.md",
|
|
44
|
-
"marks/text.md",
|
|
45
|
-
"marks/tick.md",
|
|
46
|
-
"marks/tree.md",
|
|
47
|
-
"marks/vector.md",
|
|
48
|
-
"marks/waffle.md",
|
|
49
|
-
].sort();
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
type Runtime = "deno" | "node" | "bun";
|
|
2
|
-
export declare class ProjectManifest {
|
|
3
|
-
#private;
|
|
4
|
-
private constructor();
|
|
5
|
-
static open(runtime: Runtime): ProjectManifest;
|
|
6
|
-
reload(): void;
|
|
7
|
-
getInstalledPackages(): string[];
|
|
8
|
-
getInstalledPackageSpecifiers(): Record<string, string>;
|
|
9
|
-
updateTasks(tasks: Record<string, string>): void;
|
|
10
|
-
}
|
|
11
|
-
export {};
|
|
12
|
-
//# sourceMappingURL=projectManifest.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"projectManifest.d.ts","sourceRoot":"","sources":["../../src/helpers/projectManifest.ts"],"names":[],"mappings":"AAEA,KAAK,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC;AAGvC,qBAAa,eAAe;;IAM1B,OAAO;IAYP,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,eAAe;IA6B9C,MAAM,IAAI,IAAI;IAId,oBAAoB,IAAI,MAAM,EAAE;IAIhC,6BAA6B,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAoBvD,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;CAcjD"}
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
3
|
-
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
4
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
5
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
6
|
-
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
7
|
-
};
|
|
8
|
-
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
9
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
10
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
11
|
-
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
12
|
-
};
|
|
13
|
-
var _ProjectManifest_path, _ProjectManifest_taskKey, _ProjectManifest_dependencyKeys, _ProjectManifest_config;
|
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.ProjectManifest = void 0;
|
|
16
|
-
const node_fs_1 = require("node:fs");
|
|
17
|
-
class ProjectManifest {
|
|
18
|
-
constructor(path, taskKey, dependencyKeys, config) {
|
|
19
|
-
_ProjectManifest_path.set(this, void 0);
|
|
20
|
-
_ProjectManifest_taskKey.set(this, void 0);
|
|
21
|
-
_ProjectManifest_dependencyKeys.set(this, void 0);
|
|
22
|
-
_ProjectManifest_config.set(this, void 0);
|
|
23
|
-
__classPrivateFieldSet(this, _ProjectManifest_path, path, "f");
|
|
24
|
-
__classPrivateFieldSet(this, _ProjectManifest_taskKey, taskKey, "f");
|
|
25
|
-
__classPrivateFieldSet(this, _ProjectManifest_dependencyKeys, dependencyKeys, "f");
|
|
26
|
-
__classPrivateFieldSet(this, _ProjectManifest_config, config, "f");
|
|
27
|
-
}
|
|
28
|
-
static open(runtime) {
|
|
29
|
-
if ((0, node_fs_1.existsSync)("deno.json")) {
|
|
30
|
-
return new ProjectManifest("deno.json", "tasks", ["imports"], readManifest("deno.json"));
|
|
31
|
-
}
|
|
32
|
-
if ((0, node_fs_1.existsSync)("package.json")) {
|
|
33
|
-
return new ProjectManifest("package.json", "scripts", ["dependencies", "devDependencies"], readManifest("package.json"));
|
|
34
|
-
}
|
|
35
|
-
return runtime === "deno"
|
|
36
|
-
? new ProjectManifest("deno.json", "tasks", ["imports"], { tasks: {} })
|
|
37
|
-
: new ProjectManifest("package.json", "scripts", ["dependencies", "devDependencies"], { name: "data-project", type: "module", scripts: {} });
|
|
38
|
-
}
|
|
39
|
-
reload() {
|
|
40
|
-
__classPrivateFieldSet(this, _ProjectManifest_config, readManifest(__classPrivateFieldGet(this, _ProjectManifest_path, "f")), "f");
|
|
41
|
-
}
|
|
42
|
-
getInstalledPackages() {
|
|
43
|
-
return Object.keys(this.getInstalledPackageSpecifiers());
|
|
44
|
-
}
|
|
45
|
-
getInstalledPackageSpecifiers() {
|
|
46
|
-
const installed = {};
|
|
47
|
-
for (const key of __classPrivateFieldGet(this, _ProjectManifest_dependencyKeys, "f")) {
|
|
48
|
-
const dependencies = __classPrivateFieldGet(this, _ProjectManifest_config, "f")[key];
|
|
49
|
-
if (dependencies && typeof dependencies === "object" &&
|
|
50
|
-
!Array.isArray(dependencies)) {
|
|
51
|
-
for (const [name, specifier] of Object.entries(dependencies)) {
|
|
52
|
-
if (typeof specifier === "string") {
|
|
53
|
-
installed[name] = specifier;
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
return installed;
|
|
59
|
-
}
|
|
60
|
-
updateTasks(tasks) {
|
|
61
|
-
const currentTasks = __classPrivateFieldGet(this, _ProjectManifest_config, "f")[__classPrivateFieldGet(this, _ProjectManifest_taskKey, "f")];
|
|
62
|
-
const existingTasks = currentTasks && typeof currentTasks === "object" &&
|
|
63
|
-
!Array.isArray(currentTasks)
|
|
64
|
-
? currentTasks
|
|
65
|
-
: {};
|
|
66
|
-
__classPrivateFieldGet(this, _ProjectManifest_config, "f")[__classPrivateFieldGet(this, _ProjectManifest_taskKey, "f")] = { ...existingTasks, ...tasks };
|
|
67
|
-
(0, node_fs_1.writeFileSync)(__classPrivateFieldGet(this, _ProjectManifest_path, "f"), JSON.stringify(__classPrivateFieldGet(this, _ProjectManifest_config, "f"), null, 2) + "\n", "utf-8");
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
exports.ProjectManifest = ProjectManifest;
|
|
71
|
-
_ProjectManifest_path = new WeakMap(), _ProjectManifest_taskKey = new WeakMap(), _ProjectManifest_dependencyKeys = new WeakMap(), _ProjectManifest_config = new WeakMap();
|
|
72
|
-
function readManifest(path) {
|
|
73
|
-
try {
|
|
74
|
-
const parsed = JSON.parse((0, node_fs_1.readFileSync)(path, "utf-8"));
|
|
75
|
-
if (parsed === null || typeof parsed !== "object" || Array.isArray(parsed)) {
|
|
76
|
-
throw new SyntaxError("the root value must be a JSON object");
|
|
77
|
-
}
|
|
78
|
-
return parsed;
|
|
79
|
-
}
|
|
80
|
-
catch (error) {
|
|
81
|
-
const detail = error instanceof Error ? ` ${error.message}` : "";
|
|
82
|
-
throw new Error(`Failed to parse ${path}.${detail}`, { cause: error });
|
|
83
|
-
}
|
|
84
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"syncPackageDocs.d.ts","sourceRoot":"","sources":["../../src/helpers/syncPackageDocs.ts"],"names":[],"mappings":"AAGA,OAAO,EAAoB,KAAK,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAI3E,wBAAsB,eAAe,CACnC,iBAAiB,EAAE,MAAM,EAAE,EAC3B,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACxC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAkDtC"}
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.syncPackageDocs = syncPackageDocs;
|
|
4
|
-
const prompts_1 = require("@clack/prompts");
|
|
5
|
-
const node_fs_1 = require("node:fs");
|
|
6
|
-
const node_path_1 = require("node:path");
|
|
7
|
-
const fetchPackageDocs_js_1 = require("./fetchPackageDocs.js");
|
|
8
|
-
const fetchPlotDocs_js_1 = require("./fetchPlotDocs.js");
|
|
9
|
-
const packageRegistry_js_1 = require("./packageRegistry.js");
|
|
10
|
-
async function syncPackageDocs(installedPackages, installedVersions) {
|
|
11
|
-
const installedSet = new Set(installedPackages);
|
|
12
|
-
const docsMapping = {};
|
|
13
|
-
for (const pkg of packageRegistry_js_1.DOCUMENTED_PACKAGES) {
|
|
14
|
-
const isPlot = pkg.value === "@observablehq/plot";
|
|
15
|
-
const repoName = isPlot ? "observable-plot" : pkg.value.split("/")[1];
|
|
16
|
-
const docsDirectory = (0, node_path_1.join)("docs", repoName);
|
|
17
|
-
const llmDocsPath = (0, node_path_1.join)(docsDirectory, "llm.md");
|
|
18
|
-
const legacyDocsPath = (0, node_path_1.join)("docs", repoName + ".md");
|
|
19
|
-
if (!installedSet.has(pkg.value)) {
|
|
20
|
-
for (const path of [docsDirectory, legacyDocsPath]) {
|
|
21
|
-
if ((0, node_fs_1.existsSync)(path)) {
|
|
22
|
-
(0, node_fs_1.rmSync)(path, { recursive: true });
|
|
23
|
-
prompts_1.log.info(`Removed stale documentation at ${path}.`);
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
continue;
|
|
27
|
-
}
|
|
28
|
-
if ((0, node_fs_1.existsSync)(legacyDocsPath)) {
|
|
29
|
-
if (!(0, node_fs_1.existsSync)(llmDocsPath)) {
|
|
30
|
-
(0, node_fs_1.mkdirSync)(docsDirectory, { recursive: true });
|
|
31
|
-
(0, node_fs_1.renameSync)(legacyDocsPath, llmDocsPath);
|
|
32
|
-
prompts_1.log.info(`Moved documentation to ${llmDocsPath}.`);
|
|
33
|
-
}
|
|
34
|
-
else {
|
|
35
|
-
(0, node_fs_1.rmSync)(legacyDocsPath);
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
const version = installedVersions[pkg.value];
|
|
39
|
-
if (version === undefined) {
|
|
40
|
-
prompts_1.log.warn(`Could not determine the exact installed version of ${pkg.value}. ` +
|
|
41
|
-
"Existing local documentation was preserved but will not be " +
|
|
42
|
-
"included in AGENTS.md.");
|
|
43
|
-
continue;
|
|
44
|
-
}
|
|
45
|
-
const docs = isPlot
|
|
46
|
-
? await (0, fetchPlotDocs_js_1.fetchPlotDocs)(version)
|
|
47
|
-
: await (0, fetchPackageDocs_js_1.fetchPackageDocs)(pkg.value, version, { silent: true });
|
|
48
|
-
if (docs.readme !== undefined || docs.llm !== undefined || docs.plot) {
|
|
49
|
-
docsMapping[pkg.value] = docs;
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
return docsMapping;
|
|
53
|
-
}
|
package/script/main.d.ts
DELETED
package/script/main.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":""}
|
package/script/main.js
DELETED
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
"use strict";
|
|
3
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
4
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
5
|
-
};
|
|
6
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
const prompts_1 = require("@clack/prompts");
|
|
8
|
-
const node_process_1 = __importDefault(require("node:process"));
|
|
9
|
-
const getRuntime_js_1 = require("./helpers/getRuntime.js");
|
|
10
|
-
const packageOptions_js_1 = require("./helpers/packageOptions.js");
|
|
11
|
-
const ensureGitignore_js_1 = require("./helpers/ensureGitignore.js");
|
|
12
|
-
const ensureReadme_js_1 = require("./helpers/ensureReadme.js");
|
|
13
|
-
const installPackages_js_1 = require("./helpers/installPackages.js");
|
|
14
|
-
const getProjectTasks_js_1 = require("./helpers/getProjectTasks.js");
|
|
15
|
-
const createFolderStructure_js_1 = require("./helpers/createFolderStructure.js");
|
|
16
|
-
const ensureEnvFile_js_1 = require("./helpers/ensureEnvFile.js");
|
|
17
|
-
const ensureAgents_js_1 = require("./helpers/ensureAgents.js");
|
|
18
|
-
const packageRegistry_js_1 = require("./helpers/packageRegistry.js");
|
|
19
|
-
const projectManifest_js_1 = require("./helpers/projectManifest.js");
|
|
20
|
-
const syncPackageDocs_js_1 = require("./helpers/syncPackageDocs.js");
|
|
21
|
-
const getInstalledPackageVersions_js_1 = require("./helpers/getInstalledPackageVersions.js");
|
|
22
|
-
const parseArguments_js_1 = require("./helpers/parseArguments.js");
|
|
23
|
-
async function main() {
|
|
24
|
-
const cliOptions = (0, parseArguments_js_1.parseArguments)(node_process_1.default.argv.slice(2));
|
|
25
|
-
if (cliOptions.help) {
|
|
26
|
-
console.log(parseArguments_js_1.CLI_HELP);
|
|
27
|
-
return;
|
|
28
|
-
}
|
|
29
|
-
const runtime = (0, getRuntime_js_1.getRuntime)();
|
|
30
|
-
console.log();
|
|
31
|
-
(0, prompts_1.intro)(`Hi! 👋 (Running on ${runtime})`);
|
|
32
|
-
const projectManifest = projectManifest_js_1.ProjectManifest.open(runtime);
|
|
33
|
-
projectManifest.updateTasks((0, getProjectTasks_js_1.getProjectTasks)());
|
|
34
|
-
const installedPackages = projectManifest.getInstalledPackages();
|
|
35
|
-
const options = packageOptions_js_1.PACKAGE_OPTIONS.map((opt) => ({
|
|
36
|
-
...opt,
|
|
37
|
-
label: installedPackages.includes(opt.value)
|
|
38
|
-
? `${opt.label} \x1b[2m(installed)\x1b[22m`
|
|
39
|
-
: opt.label,
|
|
40
|
-
}));
|
|
41
|
-
const selectedPackages = cliOptions.package
|
|
42
|
-
? [cliOptions.package]
|
|
43
|
-
: (await (0, prompts_1.multiselect)({
|
|
44
|
-
message: "Which libraries would you like to install?\n\x1b[2m(space to select, arrows to navigate, enter to confirm)\x1b[22m\n",
|
|
45
|
-
options,
|
|
46
|
-
required: false,
|
|
47
|
-
}));
|
|
48
|
-
if ((0, prompts_1.isCancel)(selectedPackages)) {
|
|
49
|
-
(0, prompts_1.cancel)("Installation cancelled.");
|
|
50
|
-
node_process_1.default.exit(0);
|
|
51
|
-
}
|
|
52
|
-
const alreadyInstalled = selectedPackages.filter((pkg) => installedPackages.includes(pkg));
|
|
53
|
-
const packagesToInstall = [];
|
|
54
|
-
for (const pkg of selectedPackages) {
|
|
55
|
-
if (alreadyInstalled.includes(pkg)) {
|
|
56
|
-
if (cliOptions.package)
|
|
57
|
-
continue;
|
|
58
|
-
const action = await (0, prompts_1.select)({
|
|
59
|
-
message: `${pkg} is already installed. What would you like to do?`,
|
|
60
|
-
options: [
|
|
61
|
-
{ value: "skip", label: "Keep existing version" },
|
|
62
|
-
{ value: "update", label: "Update to latest" },
|
|
63
|
-
],
|
|
64
|
-
});
|
|
65
|
-
if ((0, prompts_1.isCancel)(action)) {
|
|
66
|
-
(0, prompts_1.cancel)("Installation cancelled.");
|
|
67
|
-
node_process_1.default.exit(0);
|
|
68
|
-
}
|
|
69
|
-
if (action === "update") {
|
|
70
|
-
packagesToInstall.push(pkg);
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
else {
|
|
74
|
-
packagesToInstall.push(pkg);
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
const sInstall = (0, prompts_1.spinner)();
|
|
78
|
-
sInstall.start("Installing packages...");
|
|
79
|
-
for (const pkg of packagesToInstall) {
|
|
80
|
-
try {
|
|
81
|
-
await (0, installPackages_js_1.installPackages)([pkg], { silent: true });
|
|
82
|
-
}
|
|
83
|
-
catch (error) {
|
|
84
|
-
sInstall.stop(`❌ Failed to install ${pkg}.`);
|
|
85
|
-
console.error(error);
|
|
86
|
-
node_process_1.default.exit(1);
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
sInstall.stop("✅ Package installation complete.");
|
|
90
|
-
projectManifest.reload();
|
|
91
|
-
projectManifest.updateTasks((0, getProjectTasks_js_1.getProjectTasks)());
|
|
92
|
-
const finalInstalledPackages = (0, packageRegistry_js_1.getInstalledPackageConfigs)(projectManifest.getInstalledPackages()).map((pkg) => pkg.value);
|
|
93
|
-
const finalInstalledVersions = (0, getInstalledPackageVersions_js_1.getInstalledPackageVersions)(projectManifest.getInstalledPackageSpecifiers());
|
|
94
|
-
const sDocs = (0, prompts_1.spinner)();
|
|
95
|
-
sDocs.start("Fetching documentation for installed package versions...");
|
|
96
|
-
const docsMapping = await (0, syncPackageDocs_js_1.syncPackageDocs)(finalInstalledPackages, finalInstalledVersions);
|
|
97
|
-
sDocs.stop("✅ Documentation synchronization complete.");
|
|
98
|
-
(0, createFolderStructure_js_1.createFolderStructure)(finalInstalledPackages);
|
|
99
|
-
(0, ensureGitignore_js_1.ensureGitignore)();
|
|
100
|
-
(0, ensureEnvFile_js_1.ensureEnvFile)();
|
|
101
|
-
await (0, ensureReadme_js_1.ensureReadme)(runtime, finalInstalledPackages);
|
|
102
|
-
await (0, ensureAgents_js_1.ensureAgents)(docsMapping, runtime, finalInstalledPackages);
|
|
103
|
-
(0, prompts_1.outro)("You are all set! 🙌");
|
|
104
|
-
}
|
|
105
|
-
main().catch((error) => {
|
|
106
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
107
|
-
console.error(`❌ Error: ${message}`);
|
|
108
|
-
node_process_1.default.exitCode = 1;
|
|
109
|
-
});
|
package/script/package.json
DELETED