@nshiab/setup-data-project 2.0.2 → 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 +80 -24
- 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/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 -176
- 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 -8
- package/esm/helpers/fetchPackageDocs.d.ts.map +0 -1
- package/esm/helpers/fetchPackageDocs.js +0 -75
- package/esm/helpers/getInstalledPackageVersions.d.ts +0 -2
- package/esm/helpers/getInstalledPackageVersions.d.ts.map +0 -1
- package/esm/helpers/getInstalledPackageVersions.js +0 -91
- 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 -59
- 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 -9
- package/esm/helpers/packageRegistry.d.ts.map +0 -1
- package/esm/helpers/packageRegistry.js +0 -84
- 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 -46
- package/esm/main.d.ts +0 -3
- package/esm/main.d.ts.map +0 -1
- package/esm/main.js +0 -94
- 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/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 -179
- 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 -8
- package/script/helpers/fetchPackageDocs.d.ts.map +0 -1
- package/script/helpers/fetchPackageDocs.js +0 -78
- package/script/helpers/getInstalledPackageVersions.d.ts +0 -2
- package/script/helpers/getInstalledPackageVersions.d.ts.map +0 -1
- package/script/helpers/getInstalledPackageVersions.js +0 -94
- 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 -96
- 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 -9
- package/script/helpers/packageRegistry.d.ts.map +0 -1
- package/script/helpers/packageRegistry.js +0 -88
- 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 -49
- package/script/main.d.ts +0 -3
- package/script/main.d.ts.map +0 -1
- package/script/main.js +0 -99
- package/script/package.json +0 -3
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fetchPackageDocs.d.ts","sourceRoot":"","sources":["../../src/helpers/fetchPackageDocs.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAiBD,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACf,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GACjC,OAAO,CAAC,WAAW,CAAC,CA4DtB"}
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.fetchPackageDocs = fetchPackageDocs;
|
|
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 PACKAGE_DOCUMENTS = [
|
|
8
|
-
{
|
|
9
|
-
remoteName: "README.md",
|
|
10
|
-
localName: "README.md",
|
|
11
|
-
key: "readme",
|
|
12
|
-
label: "README",
|
|
13
|
-
},
|
|
14
|
-
{
|
|
15
|
-
remoteName: "llm.md",
|
|
16
|
-
localName: "llm.md",
|
|
17
|
-
key: "llm",
|
|
18
|
-
label: "API documentation",
|
|
19
|
-
},
|
|
20
|
-
];
|
|
21
|
-
async function fetchPackageDocs(pkg, version, options = {}) {
|
|
22
|
-
const repoName = pkg.split("/")[1];
|
|
23
|
-
const docsDirectory = (0, node_path_1.join)("docs", repoName);
|
|
24
|
-
(0, node_fs_1.mkdirSync)(docsDirectory, { recursive: true });
|
|
25
|
-
const sFetch = (0, prompts_1.spinner)();
|
|
26
|
-
if (!options.silent) {
|
|
27
|
-
sFetch.start(`Fetching documentation for ${pkg}@${version}...`);
|
|
28
|
-
}
|
|
29
|
-
const fetchedDocuments = await Promise.all(PACKAGE_DOCUMENTS.map(async (document) => {
|
|
30
|
-
const localPath = (0, node_path_1.join)(docsDirectory, document.localName);
|
|
31
|
-
try {
|
|
32
|
-
const url = "https://raw.githubusercontent.com/nshiab/" + repoName +
|
|
33
|
-
`/refs/tags/v${version}/${document.remoteName}`;
|
|
34
|
-
const response = await fetch(url);
|
|
35
|
-
if (!response.ok) {
|
|
36
|
-
warnAboutFailedFetch(pkg, version, document.label, localPath);
|
|
37
|
-
return { key: document.key, content: undefined };
|
|
38
|
-
}
|
|
39
|
-
const content = await response.text();
|
|
40
|
-
(0, node_fs_1.writeFileSync)(localPath, content);
|
|
41
|
-
return { key: document.key, content };
|
|
42
|
-
}
|
|
43
|
-
catch (error) {
|
|
44
|
-
warnAboutFailedFetch(pkg, version, document.label, localPath);
|
|
45
|
-
console.error(error);
|
|
46
|
-
return { key: document.key, content: undefined };
|
|
47
|
-
}
|
|
48
|
-
}));
|
|
49
|
-
const docs = {};
|
|
50
|
-
for (const document of fetchedDocuments) {
|
|
51
|
-
if (document.content !== undefined) {
|
|
52
|
-
docs[document.key] = document.content;
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
const savedCount = fetchedDocuments.filter((document) => document.content !== undefined)
|
|
56
|
-
.length;
|
|
57
|
-
if (!options.silent) {
|
|
58
|
-
if (savedCount === PACKAGE_DOCUMENTS.length) {
|
|
59
|
-
sFetch.stop(`✅ Documentation for ${pkg}@${version} saved!`);
|
|
60
|
-
}
|
|
61
|
-
else if (savedCount > 0) {
|
|
62
|
-
sFetch.stop(`⚠️ Some documentation for ${pkg}@${version} could not be fetched.`);
|
|
63
|
-
}
|
|
64
|
-
else {
|
|
65
|
-
sFetch.stop(`❌ Failed to fetch documentation for ${pkg}@${version}.`);
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
return docs;
|
|
69
|
-
}
|
|
70
|
-
function warnAboutFailedFetch(pkg, version, label, localPath) {
|
|
71
|
-
const existingFileGuidance = (0, node_fs_1.existsSync)(localPath)
|
|
72
|
-
? ` The existing file at ${localPath} was preserved, but it may not ` +
|
|
73
|
-
"match the installed version. Double-check it before relying on it, or " +
|
|
74
|
-
"remove it."
|
|
75
|
-
: "";
|
|
76
|
-
prompts_1.log.warn(`Could not fetch ${label} for ${pkg}@${version} from its GitHub tag.` +
|
|
77
|
-
existingFileGuidance);
|
|
78
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getInstalledPackageVersions.d.ts","sourceRoot":"","sources":["../../src/helpers/getInstalledPackageVersions.ts"],"names":[],"mappings":"AAKA,wBAAgB,2BAA2B,CACzC,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACxC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAuBxB"}
|
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getInstalledPackageVersions = getInstalledPackageVersions;
|
|
4
|
-
const node_fs_1 = require("node:fs");
|
|
5
|
-
const node_path_1 = require("node:path");
|
|
6
|
-
function getInstalledPackageVersions(packageSpecifiers) {
|
|
7
|
-
const denoLock = readJsonFile("deno.lock");
|
|
8
|
-
const packageLock = readJsonFile("package-lock.json");
|
|
9
|
-
const bunLock = (0, node_fs_1.existsSync)("bun.lock")
|
|
10
|
-
? (0, node_fs_1.readFileSync)("bun.lock", "utf-8")
|
|
11
|
-
: undefined;
|
|
12
|
-
const versions = {};
|
|
13
|
-
for (const [pkg, specifier] of Object.entries(packageSpecifiers)) {
|
|
14
|
-
const version = specifier.startsWith("jsr:")
|
|
15
|
-
? getDenoLockVersion(pkg, specifier, denoLock) ??
|
|
16
|
-
getExactVersion(specifier)
|
|
17
|
-
: getNodeModulesVersion(pkg) ??
|
|
18
|
-
getPackageLockVersion(pkg, packageLock) ??
|
|
19
|
-
getBunLockVersion(pkg, bunLock) ??
|
|
20
|
-
getExactVersion(specifier);
|
|
21
|
-
if (version !== undefined) {
|
|
22
|
-
versions[pkg] = version;
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
return versions;
|
|
26
|
-
}
|
|
27
|
-
function getNodeModulesVersion(pkg) {
|
|
28
|
-
const packageJson = readJsonFile((0, node_path_1.join)("node_modules", ...pkg.split("/"), "package.json"));
|
|
29
|
-
return typeof packageJson?.version === "string"
|
|
30
|
-
? getExactVersion(packageJson.version)
|
|
31
|
-
: undefined;
|
|
32
|
-
}
|
|
33
|
-
function getDenoLockVersion(pkg, specifier, lock) {
|
|
34
|
-
if (!lock || !specifier.startsWith("jsr:"))
|
|
35
|
-
return undefined;
|
|
36
|
-
const specifiers = asObject(lock.specifiers);
|
|
37
|
-
if (!specifiers)
|
|
38
|
-
return undefined;
|
|
39
|
-
const directVersion = specifiers[specifier];
|
|
40
|
-
if (typeof directVersion === "string")
|
|
41
|
-
return getExactVersion(directVersion);
|
|
42
|
-
const prefix = `jsr:${pkg}@`;
|
|
43
|
-
const matchingVersions = Object.entries(specifiers)
|
|
44
|
-
.filter(([key, value]) => key.startsWith(prefix) && typeof value === "string")
|
|
45
|
-
.flatMap(([, value]) => {
|
|
46
|
-
const version = getExactVersion(value);
|
|
47
|
-
return version === undefined ? [] : [version];
|
|
48
|
-
});
|
|
49
|
-
const uniqueVersions = [...new Set(matchingVersions)];
|
|
50
|
-
return uniqueVersions.length === 1 ? uniqueVersions[0] : undefined;
|
|
51
|
-
}
|
|
52
|
-
function getPackageLockVersion(pkg, lock) {
|
|
53
|
-
if (!lock)
|
|
54
|
-
return undefined;
|
|
55
|
-
const packages = asObject(lock.packages);
|
|
56
|
-
const packageEntry = packages
|
|
57
|
-
? asObject(packages[`node_modules/${pkg}`])
|
|
58
|
-
: undefined;
|
|
59
|
-
if (typeof packageEntry?.version === "string") {
|
|
60
|
-
return getExactVersion(packageEntry.version);
|
|
61
|
-
}
|
|
62
|
-
const dependencies = asObject(lock.dependencies);
|
|
63
|
-
const dependencyEntry = dependencies
|
|
64
|
-
? asObject(dependencies[pkg])
|
|
65
|
-
: undefined;
|
|
66
|
-
return typeof dependencyEntry?.version === "string"
|
|
67
|
-
? getExactVersion(dependencyEntry.version)
|
|
68
|
-
: undefined;
|
|
69
|
-
}
|
|
70
|
-
function getBunLockVersion(pkg, lock) {
|
|
71
|
-
if (!lock)
|
|
72
|
-
return undefined;
|
|
73
|
-
const escapedPackage = pkg.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
74
|
-
const match = lock.match(new RegExp(`"${escapedPackage}"\\s*:\\s*\\[\\s*"${escapedPackage}@(\\d+\\.\\d+\\.\\d+(?:-[0-9A-Za-z.-]+)?(?:\\+[0-9A-Za-z.-]+)?)"`));
|
|
75
|
-
return match?.[1];
|
|
76
|
-
}
|
|
77
|
-
function getExactVersion(specifier) {
|
|
78
|
-
return specifier.match(/(?:^|@)(\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?)$/)?.[1];
|
|
79
|
-
}
|
|
80
|
-
function readJsonFile(path) {
|
|
81
|
-
if (!(0, node_fs_1.existsSync)(path))
|
|
82
|
-
return undefined;
|
|
83
|
-
try {
|
|
84
|
-
return asObject(JSON.parse((0, node_fs_1.readFileSync)(path, "utf-8")));
|
|
85
|
-
}
|
|
86
|
-
catch {
|
|
87
|
-
return undefined;
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
function asObject(value) {
|
|
91
|
-
return value !== null && typeof value === "object" && !Array.isArray(value)
|
|
92
|
-
? value
|
|
93
|
-
: undefined;
|
|
94
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getProjectTasks.d.ts","sourceRoot":"","sources":["../../src/helpers/getProjectTasks.ts"],"names":[],"mappings":"AAEA,wBAAgB,eAAe;;;;EAgB9B"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getProjectTasks = getProjectTasks;
|
|
4
|
-
const getRuntime_js_1 = require("./getRuntime.js");
|
|
5
|
-
function getProjectTasks() {
|
|
6
|
-
const runtime = (0, getRuntime_js_1.getRuntime)();
|
|
7
|
-
return {
|
|
8
|
-
sda: runtime === "deno"
|
|
9
|
-
? "deno run -A --env --watch --check sda/main.ts"
|
|
10
|
-
: runtime === "bun"
|
|
11
|
-
? "bun run --watch sda/main.ts"
|
|
12
|
-
: "node --env-file-if-exists=.env --watch --experimental-strip-types sda/main.ts",
|
|
13
|
-
"all-tests": runtime === "deno"
|
|
14
|
-
? "deno fmt --check sda && deno lint && deno check sda/main.ts && deno test -A --permit-no-files"
|
|
15
|
-
: runtime === "bun"
|
|
16
|
-
? "bun test --pass-with-no-tests"
|
|
17
|
-
: "node --env-file-if-exists=.env --experimental-strip-types --test",
|
|
18
|
-
clean: "rm -rf .sda-cache .journalism-cache .tmp",
|
|
19
|
-
};
|
|
20
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getRuntime.d.ts","sourceRoot":"","sources":["../../src/helpers/getRuntime.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,aAAa;;CAazB,CAAC;AAEF,wBAAgB,UAAU,4BAEzB"}
|
|
@@ -1,59 +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
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
-
};
|
|
38
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.runtimeConfig = void 0;
|
|
40
|
-
exports.getRuntime = getRuntime;
|
|
41
|
-
const dntShim = __importStar(require("../_dnt.shims.js"));
|
|
42
|
-
const node_process_1 = __importDefault(require("node:process"));
|
|
43
|
-
exports.runtimeConfig = {
|
|
44
|
-
getRuntime: () => {
|
|
45
|
-
if (typeof node_process_1.default !== "undefined" &&
|
|
46
|
-
node_process_1.default?.versions?.node &&
|
|
47
|
-
!node_process_1.default?.versions?.deno) {
|
|
48
|
-
return "node";
|
|
49
|
-
}
|
|
50
|
-
if ("Bun" in dntShim.dntGlobalThis)
|
|
51
|
-
return "bun";
|
|
52
|
-
if ("Deno" in dntShim.dntGlobalThis)
|
|
53
|
-
return "deno";
|
|
54
|
-
return "node";
|
|
55
|
-
},
|
|
56
|
-
};
|
|
57
|
-
function getRuntime() {
|
|
58
|
-
return exports.runtimeConfig.getRuntime();
|
|
59
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"gitignoreEntries.d.ts","sourceRoot":"","sources":["../../src/helpers/gitignoreEntries.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,UAS7B,CAAC"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.GITIGNORE_ENTRIES = void 0;
|
|
4
|
-
exports.GITIGNORE_ENTRIES = [
|
|
5
|
-
"node_modules",
|
|
6
|
-
".tmp",
|
|
7
|
-
".sda-cache",
|
|
8
|
-
".journalism-cache",
|
|
9
|
-
"sda/data",
|
|
10
|
-
"sda/output",
|
|
11
|
-
".env",
|
|
12
|
-
".DS_Store",
|
|
13
|
-
];
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"installPackages.d.ts","sourceRoot":"","sources":["../../src/helpers/installPackages.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,aAAa;;CAEzB,CAAC;AASF,wBAAsB,eAAe,CACnC,gBAAgB,EAAE,MAAM,EAAE,EAC1B,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GACjC,OAAO,CAAC,IAAI,CAAC,CAmDf"}
|
|
@@ -1,96 +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.installPackages = installPackages;
|
|
38
|
-
const prompts_1 = require("@clack/prompts");
|
|
39
|
-
const childProcess = __importStar(require("node:child_process"));
|
|
40
|
-
const getRuntime_js_1 = require("./getRuntime.js");
|
|
41
|
-
exports.commandRunner = {
|
|
42
|
-
exec: childProcess.exec,
|
|
43
|
-
};
|
|
44
|
-
// Temporary: remove this bypass after the 2.0 release window.
|
|
45
|
-
// https://github.com/nshiab/setup-data-project/issues/15
|
|
46
|
-
const PACKAGES_WITH_FRESH_DENO_RELEASES = new Set([
|
|
47
|
-
"@nshiab/simple-data-analysis-core",
|
|
48
|
-
"@nshiab/simple-data-analysis",
|
|
49
|
-
]);
|
|
50
|
-
async function installPackages(selectedPackages, options = {}) {
|
|
51
|
-
const runtime = (0, getRuntime_js_1.getRuntime)();
|
|
52
|
-
for (const selectedPackage of selectedPackages) {
|
|
53
|
-
const packagesToInstall = [selectedPackage];
|
|
54
|
-
if (selectedPackage === "@nshiab/simple-data-analysis" ||
|
|
55
|
-
selectedPackage === "@nshiab/journalism-dataviz") {
|
|
56
|
-
packagesToInstall.push("@observablehq/plot");
|
|
57
|
-
}
|
|
58
|
-
for (const pkg of packagesToInstall) {
|
|
59
|
-
const s = (0, prompts_1.spinner)();
|
|
60
|
-
const isObservablePlot = pkg === "@observablehq/plot";
|
|
61
|
-
const minimumDependencyAgeOption = PACKAGES_WITH_FRESH_DENO_RELEASES.has(pkg) ? " --min-dep-age=0" : "";
|
|
62
|
-
const installCmd = runtime === "deno"
|
|
63
|
-
? (isObservablePlot
|
|
64
|
-
? "deno add npm:" + pkg
|
|
65
|
-
: "deno add" + minimumDependencyAgeOption + " jsr:" +
|
|
66
|
-
pkg)
|
|
67
|
-
: runtime === "bun"
|
|
68
|
-
? "bun add " + pkg
|
|
69
|
-
: "npm install " + pkg;
|
|
70
|
-
if (!options.silent) {
|
|
71
|
-
s.start("Installing " + pkg + " via " + runtime + "...");
|
|
72
|
-
}
|
|
73
|
-
try {
|
|
74
|
-
await new Promise((resolve, reject) => {
|
|
75
|
-
exports.commandRunner.exec(installCmd, (error) => {
|
|
76
|
-
if (error) {
|
|
77
|
-
reject(error);
|
|
78
|
-
}
|
|
79
|
-
else {
|
|
80
|
-
resolve();
|
|
81
|
-
}
|
|
82
|
-
});
|
|
83
|
-
});
|
|
84
|
-
if (!options.silent) {
|
|
85
|
-
s.stop("✅ " + pkg + " installed!");
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
catch (error) {
|
|
89
|
-
if (!options.silent) {
|
|
90
|
-
s.stop("❌ Failed to install " + pkg + ".");
|
|
91
|
-
}
|
|
92
|
-
throw error;
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
}
|
|
@@ -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,9 +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 function getInstalledPackageConfigs(installedPackages: string[]): PackageConfig[];
|
|
9
|
-
//# 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;AAEF,wBAAgB,0BAA0B,CACxC,iBAAiB,EAAE,MAAM,EAAE,GAC1B,aAAa,EAAE,CAGjB"}
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
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
|
-
function getInstalledPackageConfigs(installedPackages) {
|
|
86
|
-
const installedSet = new Set(installedPackages);
|
|
87
|
-
return exports.SUPPORTED_PACKAGES.filter((pkg) => installedSet.has(pkg.value));
|
|
88
|
-
}
|
|
@@ -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;AAG3E,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,CA+CtC"}
|