yarlo-cli 0.1.0 → 0.1.2
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/commands/install.js
CHANGED
|
@@ -15,7 +15,7 @@ export default function Install({ args: [pluginName] }) {
|
|
|
15
15
|
React.useEffect(() => {
|
|
16
16
|
(async () => {
|
|
17
17
|
try {
|
|
18
|
-
const { config, configDir } = await loadConfig();
|
|
18
|
+
const { config, configDir, projectDir } = await loadConfig();
|
|
19
19
|
const packageName = pluginName.startsWith("yarlo-plugin-")
|
|
20
20
|
? pluginName
|
|
21
21
|
: `yarlo-plugin-${pluginName}`;
|
|
@@ -27,7 +27,7 @@ export default function Install({ args: [pluginName] }) {
|
|
|
27
27
|
}
|
|
28
28
|
// Install the npm package
|
|
29
29
|
execSync(`pnpm add ${packageName}`, {
|
|
30
|
-
cwd:
|
|
30
|
+
cwd: projectDir,
|
|
31
31
|
stdio: "pipe",
|
|
32
32
|
});
|
|
33
33
|
// Add to config
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../source/commands/install.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,IAAI,EAAO,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE3D,MAAM,CAAC,MAAM,WAAW,GAAG,wBAAwB,CAAC;AAEpD,MAAM,CAAC,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC;IAC5B,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,2BAA2B,EAAE,CAAC,CAAC;CAC9F,CAAC,CAAC;AAMH,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,UAAU,CAAC,EAAS;IAC3D,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAkC,YAAY,CAAC,CAAC;IAC1F,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAE7C,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,CAAC,KAAK,IAAI,EAAE;YACV,IAAI,CAAC;gBACH,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,UAAU,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../source/commands/install.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,IAAI,EAAO,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE3D,MAAM,CAAC,MAAM,WAAW,GAAG,wBAAwB,CAAC;AAEpD,MAAM,CAAC,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC;IAC5B,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,2BAA2B,EAAE,CAAC,CAAC;CAC9F,CAAC,CAAC;AAMH,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,UAAU,CAAC,EAAS;IAC3D,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAkC,YAAY,CAAC,CAAC;IAC1F,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAE7C,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,CAAC,KAAK,IAAI,EAAE;YACV,IAAI,CAAC;gBACH,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,MAAM,UAAU,EAAE,CAAC;gBAC7D,MAAM,WAAW,GAAG,UAAU,CAAC,UAAU,CAAC,eAAe,CAAC;oBACxD,CAAC,CAAC,UAAU;oBACZ,CAAC,CAAC,gBAAgB,UAAU,EAAE,CAAC;gBAEjC,MAAM,SAAS,GAAG,WAAW,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;gBAE3D,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;oBACvC,QAAQ,CAAC,WAAW,SAAS,wBAAwB,CAAC,CAAC;oBACvD,SAAS,CAAC,OAAO,CAAC,CAAC;oBACnB,OAAO;gBACT,CAAC;gBAED,0BAA0B;gBAC1B,QAAQ,CAAC,YAAY,WAAW,EAAE,EAAE;oBAClC,GAAG,EAAE,UAAU;oBACf,KAAK,EAAE,MAAM;iBACd,CAAC,CAAC;gBAEH,gBAAgB;gBAChB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC/B,MAAM,UAAU,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;gBAEpC,SAAS,CAAC,MAAM,CAAC,CAAC;YACpB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,QAAQ,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC3D,SAAS,CAAC,OAAO,CAAC,CAAC;YACrB,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;IACP,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,IAAI,MAAM,KAAK,OAAO;QAAE,OAAO,KAAC,IAAI,IAAC,KAAK,EAAC,KAAK,YAAE,KAAK,GAAQ,CAAC;IAChE,IAAI,MAAM,KAAK,YAAY,EAAE,CAAC;QAC5B,OAAO,MAAC,IAAI,2CAA0B,UAAU,WAAW,CAAC;IAC9D,CAAC;IAED,OAAO,CACL,MAAC,IAAI,IAAC,KAAK,EAAC,OAAO,EAAC,IAAI,yCACH,UAAU,IACxB,CACR,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-loader.d.ts","sourceRoot":"","sources":["../../source/core/plugin-loader.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"plugin-loader.d.ts","sourceRoot":"","sources":["../../source/core/plugin-loader.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,WAAW,EACX,kBAAkB,EAClB,aAAa,EACb,WAAW,EACZ,MAAM,aAAa,CAAC;AAqErB,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACrC,KAAK,EAAE,GAAG,CAAC,MAAM,WAAW,EAAE,KAAK,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACnF,OAAO,EAAE,WAAW,EAAE,CAAC;CACxB;AAED,wBAAsB,WAAW,CAC/B,WAAW,EAAE,MAAM,EAAE,EACrB,GAAG,EAAE,kBAAkB,GACtB,OAAO,CAAC,aAAa,CAAC,CA8CxB;AAED,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,aAAa,EACtB,IAAI,EAAE,MAAM,EAAE,EACd,GAAG,EAAE,kBAAkB,GACtB,OAAO,CAAC,IAAI,CAAC,CAEf"}
|
|
@@ -1,11 +1,62 @@
|
|
|
1
|
+
import fs from "node:fs/promises";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { pathToFileURL } from "node:url";
|
|
4
|
+
/**
|
|
5
|
+
* Picks the ESM (or shared) entry from package.json "exports" for dynamic import().
|
|
6
|
+
* Avoids require.resolve(), which uses the "require" condition and fails when only "import" is set.
|
|
7
|
+
*/
|
|
8
|
+
function resolveExportsEntry(exportsField) {
|
|
9
|
+
if (!exportsField)
|
|
10
|
+
return undefined;
|
|
11
|
+
if (typeof exportsField === "string")
|
|
12
|
+
return exportsField;
|
|
13
|
+
const root = exportsField["."];
|
|
14
|
+
if (typeof root === "string")
|
|
15
|
+
return root;
|
|
16
|
+
if (root && typeof root === "object") {
|
|
17
|
+
const o = root;
|
|
18
|
+
return o.import ?? o.default ?? o.module ?? o.require;
|
|
19
|
+
}
|
|
20
|
+
return undefined;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Resolves the main module file path for a dependency in projectDir/node_modules.
|
|
24
|
+
*
|
|
25
|
+
* @param projectDir - Project root (parent of .yarlo)
|
|
26
|
+
* @param packageName - npm package name
|
|
27
|
+
* @returns Absolute path to the entry .js file
|
|
28
|
+
*/
|
|
29
|
+
async function resolveProjectPackageEntry(projectDir, packageName) {
|
|
30
|
+
const pkgJsonPath = path.join(projectDir, "node_modules", packageName, "package.json");
|
|
31
|
+
const raw = await fs.readFile(pkgJsonPath, "utf-8");
|
|
32
|
+
const pkg = JSON.parse(raw);
|
|
33
|
+
const fromExports = resolveExportsEntry(pkg.exports);
|
|
34
|
+
const rel = fromExports ?? pkg.module ?? pkg.main;
|
|
35
|
+
if (!rel) {
|
|
36
|
+
throw new Error(`No entry (exports/main) in ${packageName}/package.json`);
|
|
37
|
+
}
|
|
38
|
+
return path.resolve(path.dirname(pkgJsonPath), rel);
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Dynamically imports a plugin from the project's node_modules (not from yarlo-cli).
|
|
42
|
+
*
|
|
43
|
+
* @param packageName - Full npm package name (e.g. yarlo-plugin-board)
|
|
44
|
+
* @param projectDir - Absolute path to the project root
|
|
45
|
+
* @returns The module namespace object
|
|
46
|
+
*/
|
|
47
|
+
async function importPluginPackage(packageName, projectDir) {
|
|
48
|
+
const entry = await resolveProjectPackageEntry(projectDir, packageName);
|
|
49
|
+
return import(pathToFileURL(entry).href);
|
|
50
|
+
}
|
|
1
51
|
export async function loadPlugins(pluginNames, ctx) {
|
|
2
52
|
const commands = new Map();
|
|
3
53
|
const hooks = new Map();
|
|
4
54
|
const plugins = [];
|
|
55
|
+
const packageBase = "yarlo-plugin-";
|
|
5
56
|
for (const name of pluginNames) {
|
|
6
57
|
try {
|
|
7
|
-
const mod = await
|
|
8
|
-
const plugin = mod.default ?? mod;
|
|
58
|
+
const mod = await importPluginPackage(`${packageBase}${name}`, ctx.projectDir);
|
|
59
|
+
const plugin = (mod.default ?? mod);
|
|
9
60
|
if (plugin.activate) {
|
|
10
61
|
await plugin.activate(ctx);
|
|
11
62
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-loader.js","sourceRoot":"","sources":["../../source/core/plugin-loader.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"plugin-loader.js","sourceRoot":"","sources":["../../source/core/plugin-loader.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "yarlo-cli",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
4
4
|
"description": "Yet Another Repo Local Organizer — Local task management using markdown with YAML frontmatter",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "PolyForm-Noncommercial-1.0.0",
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
"slugify": "^1.6.6",
|
|
41
41
|
"yaml": "^2.7.0",
|
|
42
42
|
"zod": "^3.24.0",
|
|
43
|
-
"yarlo-types": "0.1.
|
|
43
|
+
"yarlo-types": "0.1.2"
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|
|
46
46
|
"@types/node": "^25.5.2",
|