@paroicms/script-lib 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -0
- package/dist/esm-helpers.d.ts +9 -0
- package/dist/esm-helpers.js +33 -0
- package/dist/esm-helpers.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -0
- package/dist/plugin-helpers.d.ts +2 -0
- package/dist/plugin-helpers.js +19 -0
- package/dist/plugin-helpers.js.map +1 -0
- package/package.json +34 -0
package/README.md
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare function esmDirName(moduleUrl: string): string;
|
|
2
|
+
export declare function extractDependencyVersionSync(dirName: string, packageName: string, options?: {
|
|
3
|
+
exact?: boolean;
|
|
4
|
+
type?: "dev" | "peer";
|
|
5
|
+
}): string;
|
|
6
|
+
export declare function extractPackageNameAndVersionSync(packageDir: string): {
|
|
7
|
+
name: string;
|
|
8
|
+
version: string;
|
|
9
|
+
};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { type } from "arktype";
|
|
2
|
+
import { readFileSync } from "node:fs";
|
|
3
|
+
import { dirname, join, resolve } from "node:path";
|
|
4
|
+
import { fileURLToPath } from "node:url";
|
|
5
|
+
export function esmDirName(moduleUrl) {
|
|
6
|
+
return resolve(dirname(fileURLToPath(moduleUrl)));
|
|
7
|
+
}
|
|
8
|
+
export function extractDependencyVersionSync(dirName, packageName, options = {}) {
|
|
9
|
+
const packageJsonPath = resolve(dirName, "package.json");
|
|
10
|
+
const packageJson = JSON.parse(readFileSync(packageJsonPath, "utf-8"));
|
|
11
|
+
const propName = options.type === "dev"
|
|
12
|
+
? "devDependencies"
|
|
13
|
+
: options.type === "peer"
|
|
14
|
+
? "peerDependencies"
|
|
15
|
+
: "dependencies";
|
|
16
|
+
const version = packageJson[propName]?.[packageName];
|
|
17
|
+
if (!version) {
|
|
18
|
+
throw new Error(`missing "${packageName}"${options.type ? ` ${options.type}` : ""} dependency`);
|
|
19
|
+
}
|
|
20
|
+
if (options.exact && !version.match(/^[0-9]+\.[0-9]+\.[0-9]+$/)) {
|
|
21
|
+
throw new Error(`invalid ${packageName} version: "${version}" (please use an exact x.x.x version)`);
|
|
22
|
+
}
|
|
23
|
+
return version;
|
|
24
|
+
}
|
|
25
|
+
export function extractPackageNameAndVersionSync(packageDir) {
|
|
26
|
+
const packageJson = JSON.parse(readFileSync(join(packageDir, "package.json"), "utf-8"));
|
|
27
|
+
return type({
|
|
28
|
+
name: "string",
|
|
29
|
+
version: "string",
|
|
30
|
+
"+": "ignore",
|
|
31
|
+
}).assert(packageJson);
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=esm-helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"esm-helpers.js","sourceRoot":"","sources":["../src/esm-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,UAAU,UAAU,CAAC,SAAiB;IAC1C,OAAO,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC1C,OAAe,EACf,WAAmB,EACnB,UAAsD,EAAE;IAExD,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IACzD,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC;IACvE,MAAM,QAAQ,GACZ,OAAO,CAAC,IAAI,KAAK,KAAK;QACpB,CAAC,CAAC,iBAAiB;QACnB,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM;YACvB,CAAC,CAAC,kBAAkB;YACpB,CAAC,CAAC,cAAc,CAAC;IACvB,MAAM,OAAO,GAAG,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,WAAW,CAAuB,CAAC;IAC3E,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,YAAY,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;IAClG,CAAC;IACD,IAAI,OAAO,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC,EAAE,CAAC;QAChE,MAAM,IAAI,KAAK,CACb,WAAW,WAAW,cAAc,OAAO,uCAAuC,CACnF,CAAC;IACJ,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,gCAAgC,CAAC,UAAkB;IAIjE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;IACxF,OAAO,IAAI,CAAC;QACV,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,QAAQ;QACjB,GAAG,EAAE,QAAQ;KACd,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AACzB,CAAC"}
|
package/dist/index.d.ts
ADDED
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { generateSlug } from "@paroicms/public-anywhere-lib";
|
|
2
|
+
export function getPluginApiUrl(packageName) {
|
|
3
|
+
return `/api/plugin/${getPluginSlug(packageName)}`;
|
|
4
|
+
}
|
|
5
|
+
export function getPluginSlug(packageName) {
|
|
6
|
+
let slug;
|
|
7
|
+
if (packageName.startsWith("@paroicms/")) {
|
|
8
|
+
slug = packageName.substring(10);
|
|
9
|
+
}
|
|
10
|
+
else if (packageName.startsWith("@")) {
|
|
11
|
+
// For other scoped packages, keep the scope but replace slash with dash
|
|
12
|
+
slug = packageName.substring(1).replace("/", "-");
|
|
13
|
+
}
|
|
14
|
+
else {
|
|
15
|
+
slug = packageName;
|
|
16
|
+
}
|
|
17
|
+
return generateSlug(slug);
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=plugin-helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin-helpers.js","sourceRoot":"","sources":["../src/plugin-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE7D,MAAM,UAAU,eAAe,CAAC,WAAmB;IACjD,OAAO,eAAe,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,WAAmB;IAC/C,IAAI,IAAY,CAAC;IAEjB,IAAI,WAAW,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QACzC,IAAI,GAAG,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IACnC,CAAC;SAAM,IAAI,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACvC,wEAAwE;QACxE,IAAI,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACpD,CAAC;SAAM,CAAC;QACN,IAAI,GAAG,WAAW,CAAC;IACrB,CAAC;IAED,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@paroicms/script-lib",
|
|
3
|
+
"version": "0.2.0",
|
|
4
|
+
"description": "Node.js utilitaries.",
|
|
5
|
+
"author": "Paroi Team",
|
|
6
|
+
"repository": {
|
|
7
|
+
"type": "git",
|
|
8
|
+
"url": "https://gitlab.com/paroi/opensource/paroicms.git",
|
|
9
|
+
"directory": "packages/script-lib"
|
|
10
|
+
},
|
|
11
|
+
"license": "MIT",
|
|
12
|
+
"type": "module",
|
|
13
|
+
"main": "dist/index.js",
|
|
14
|
+
"types": "dist/index.d.ts",
|
|
15
|
+
"scripts": {
|
|
16
|
+
"build": "tsc",
|
|
17
|
+
"test:watch": "vitest",
|
|
18
|
+
"test": "vitest run",
|
|
19
|
+
"clear": "rimraf dist/*",
|
|
20
|
+
"dev": "tsc --watch --preserveWatchOutput"
|
|
21
|
+
},
|
|
22
|
+
"dependencies": {
|
|
23
|
+
"@paroicms/internal-anywhere-lib": "1.33.0",
|
|
24
|
+
"arktype": "~2.1.20"
|
|
25
|
+
},
|
|
26
|
+
"devDependencies": {
|
|
27
|
+
"@types/node": "~24.0.1",
|
|
28
|
+
"rimraf": "~6.0.1",
|
|
29
|
+
"typescript": "~5.8.3"
|
|
30
|
+
},
|
|
31
|
+
"files": [
|
|
32
|
+
"dist"
|
|
33
|
+
]
|
|
34
|
+
}
|