@researchdatabox/redbox-dev-tools 0.0.1-beta.9018 → 0.0.1-beta.9022
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.
|
@@ -86,15 +86,58 @@ function toOutputRelativePath(templateRoot, filePath) {
|
|
|
86
86
|
function shouldMarkExecutable(relativePath) {
|
|
87
87
|
return relativePath.endsWith('.sh');
|
|
88
88
|
}
|
|
89
|
-
function
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
89
|
+
function readPackageJson(packageJsonPath) {
|
|
90
|
+
return JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'));
|
|
91
|
+
}
|
|
92
|
+
function tryReadPackageJson(packageJsonPath) {
|
|
93
|
+
return fs.existsSync(packageJsonPath)
|
|
94
|
+
? readPackageJson(packageJsonPath)
|
|
95
|
+
: undefined;
|
|
96
|
+
}
|
|
97
|
+
function getScopedPackageName(packageName) {
|
|
98
|
+
return `@researchdatabox/${packageName}`;
|
|
99
|
+
}
|
|
100
|
+
function readOwnPackageVersion(packageRoot) {
|
|
101
|
+
const packageJson = tryReadPackageJson(path.join(packageRoot, 'package.json'));
|
|
102
|
+
if (!packageJson?.version) {
|
|
103
|
+
throw new Error('Could not determine version for @researchdatabox/redbox-dev-tools');
|
|
94
104
|
}
|
|
95
105
|
return packageJson.version;
|
|
96
106
|
}
|
|
107
|
+
function tryReadInstalledPackageVersion(packageRoot, packageName) {
|
|
108
|
+
const packageJsonPath = path.join(packageRoot, 'node_modules', ...getScopedPackageName(packageName).split('/'), 'package.json');
|
|
109
|
+
return tryReadPackageJson(packageJsonPath)?.version;
|
|
110
|
+
}
|
|
111
|
+
function isReusableDependencySpecifier(versionSpecifier) {
|
|
112
|
+
return !/^(file:|workspace:|link:|portal:)/.test(versionSpecifier);
|
|
113
|
+
}
|
|
114
|
+
function readDeclaredDependencyVersion(packageRoot, packageName) {
|
|
115
|
+
const packageJson = tryReadPackageJson(path.join(packageRoot, 'package.json'));
|
|
116
|
+
const dependencyName = getScopedPackageName(packageName);
|
|
117
|
+
const versionSpecifier = packageJson?.dependencies?.[dependencyName]
|
|
118
|
+
?? packageJson?.peerDependencies?.[dependencyName]
|
|
119
|
+
?? packageJson?.devDependencies?.[dependencyName];
|
|
120
|
+
return versionSpecifier && isReusableDependencySpecifier(versionSpecifier)
|
|
121
|
+
? versionSpecifier
|
|
122
|
+
: undefined;
|
|
123
|
+
}
|
|
124
|
+
function readDependencyPackageVersion(packageRoot, packageName) {
|
|
125
|
+
const installedVersion = tryReadInstalledPackageVersion(packageRoot, packageName);
|
|
126
|
+
if (installedVersion) {
|
|
127
|
+
return installedVersion;
|
|
128
|
+
}
|
|
129
|
+
const siblingPackageJson = tryReadPackageJson(path.join(packageRoot, '..', packageName, 'package.json'));
|
|
130
|
+
if (siblingPackageJson?.version) {
|
|
131
|
+
return siblingPackageJson.version;
|
|
132
|
+
}
|
|
133
|
+
const declaredVersion = readDeclaredDependencyVersion(packageRoot, packageName);
|
|
134
|
+
if (declaredVersion) {
|
|
135
|
+
return declaredVersion;
|
|
136
|
+
}
|
|
137
|
+
throw new Error(`Could not determine version for ${getScopedPackageName(packageName)}`);
|
|
138
|
+
}
|
|
97
139
|
function buildTemplateContext(options) {
|
|
140
|
+
const packageRoot = getPackageRoot();
|
|
98
141
|
const packageName = normalizePackageName(options.packageName);
|
|
99
142
|
const hookShortName = packageName.replace(/^redbox-hook-/, '');
|
|
100
143
|
const hookPascalName = toPascalCase(hookShortName);
|
|
@@ -104,8 +147,8 @@ function buildTemplateContext(options) {
|
|
|
104
147
|
hookPascalName,
|
|
105
148
|
description: options.description ?? `ReDBox hook for ${hookPascalName}`,
|
|
106
149
|
integrationDirName: hookShortName,
|
|
107
|
-
redboxCoreVersion:
|
|
108
|
-
redboxDevToolsVersion:
|
|
150
|
+
redboxCoreVersion: readDependencyPackageVersion(packageRoot, 'redbox-core'),
|
|
151
|
+
redboxDevToolsVersion: readOwnPackageVersion(packageRoot),
|
|
109
152
|
};
|
|
110
153
|
}
|
|
111
154
|
function generateHookArchetype(options) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@researchdatabox/redbox-dev-tools",
|
|
3
|
-
"version": "0.0.1-beta.
|
|
3
|
+
"version": "0.0.1-beta.9022",
|
|
4
4
|
"description": "ReDBox customisation dev tools - shared configuration, generators, and migration tooling",
|
|
5
5
|
"type": "commonjs",
|
|
6
6
|
"main": "index.js",
|
|
@@ -44,8 +44,8 @@
|
|
|
44
44
|
},
|
|
45
45
|
"homepage": "https://github.com/redbox-mint/redbox-portal/tree/v4.5.1#readme",
|
|
46
46
|
"dependencies": {
|
|
47
|
-
"@researchdatabox/redbox-core": "0.0.1-beta.
|
|
48
|
-
"@researchdatabox/sails-ng-common": "0.0.1-beta.
|
|
47
|
+
"@researchdatabox/redbox-core": "0.0.1-beta.9022",
|
|
48
|
+
"@researchdatabox/sails-ng-common": "0.0.1-beta.9022",
|
|
49
49
|
"@tsconfig/node24": "24.0.1",
|
|
50
50
|
"@types/chai": "5.2.3",
|
|
51
51
|
"@types/lodash": "4.17.24",
|
|
@@ -64,8 +64,8 @@
|
|
|
64
64
|
"zod": "3.25.28"
|
|
65
65
|
},
|
|
66
66
|
"devDependencies": {
|
|
67
|
-
"@types/sinon": "
|
|
68
|
-
"sinon": "
|
|
67
|
+
"@types/sinon": "21.0.1",
|
|
68
|
+
"sinon": "21.1.2"
|
|
69
69
|
},
|
|
70
70
|
"peerDependenciesMeta": {
|
|
71
71
|
"@researchdatabox/redbox-core": {
|