@penskemediacorp/larva 1.76.0 → 1.77.1
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/bin/pre-push +56 -33
- package/package.json +12 -12
package/bin/pre-push
CHANGED
|
@@ -33,12 +33,13 @@ function log(message, color = 'reset') {
|
|
|
33
33
|
console.log(`${colors[color]}${message}${colors.reset}`);
|
|
34
34
|
}
|
|
35
35
|
|
|
36
|
+
function getGitRoot() {
|
|
37
|
+
return execSync('git rev-parse --show-toplevel', { encoding: 'utf8' }).trim();
|
|
38
|
+
}
|
|
39
|
+
|
|
36
40
|
function getCurrentLarvaVersion() {
|
|
37
41
|
try {
|
|
38
|
-
|
|
39
|
-
const gitRoot = execSync('git rev-parse --show-toplevel', {
|
|
40
|
-
encoding: 'utf8'
|
|
41
|
-
}).trim();
|
|
42
|
+
const gitRoot = getGitRoot();
|
|
42
43
|
|
|
43
44
|
// Look for package.json in assets folder
|
|
44
45
|
const packageJsonPath = path.join(gitRoot, 'assets', 'package.json');
|
|
@@ -63,6 +64,24 @@ function getCurrentLarvaVersion() {
|
|
|
63
64
|
}
|
|
64
65
|
}
|
|
65
66
|
|
|
67
|
+
function getLocalInstalledLarvaVersion() {
|
|
68
|
+
try {
|
|
69
|
+
const gitRoot = getGitRoot();
|
|
70
|
+
const installedPackageJsonPath = path.join(
|
|
71
|
+
gitRoot, 'assets', 'node_modules', '@penskemediacorp', 'larva', 'package.json'
|
|
72
|
+
);
|
|
73
|
+
|
|
74
|
+
if (!fs.existsSync(installedPackageJsonPath)) {
|
|
75
|
+
return null;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
const packageJson = JSON.parse(fs.readFileSync(installedPackageJsonPath, 'utf8'));
|
|
79
|
+
return packageJson.version || null;
|
|
80
|
+
} catch (error) {
|
|
81
|
+
return null;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
66
85
|
function getLatestLarvaVersion() {
|
|
67
86
|
|
|
68
87
|
// Check cache first
|
|
@@ -159,6 +178,23 @@ function checkForceFlag() {
|
|
|
159
178
|
return false;
|
|
160
179
|
}
|
|
161
180
|
|
|
181
|
+
function blockPush(reason) {
|
|
182
|
+
const forceFlag = checkForceFlag();
|
|
183
|
+
|
|
184
|
+
log('\n⚠️ ' + reason, 'yellow');
|
|
185
|
+
log('\nPlease update @penskemediacorp/larva before pushing:', 'yellow');
|
|
186
|
+
log(' npm run update-larva', 'cyan');
|
|
187
|
+
|
|
188
|
+
if (forceFlag) {
|
|
189
|
+
log('\n⚠️ Force flag detected - allowing push with outdated version', 'yellow');
|
|
190
|
+
log('Please update @penskemediacorp/larva as soon as possible!\n', 'yellow');
|
|
191
|
+
process.exit(0);
|
|
192
|
+
} else {
|
|
193
|
+
log('\n❌ Push blocked. Update @penskemediacorp/larva or use --force to override.\n', 'red');
|
|
194
|
+
process.exit(1);
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
|
|
162
198
|
function main() {
|
|
163
199
|
log('\n🔍 Checking @penskemediacorp/larva version...', 'cyan');
|
|
164
200
|
|
|
@@ -169,8 +205,6 @@ function main() {
|
|
|
169
205
|
process.exit(0);
|
|
170
206
|
}
|
|
171
207
|
|
|
172
|
-
log(`Current version: ${currentVersion}`, 'cyan');
|
|
173
|
-
|
|
174
208
|
const latestVersion = getLatestLarvaVersion();
|
|
175
209
|
|
|
176
210
|
if (!latestVersion) {
|
|
@@ -178,38 +212,27 @@ function main() {
|
|
|
178
212
|
process.exit(0);
|
|
179
213
|
}
|
|
180
214
|
|
|
181
|
-
log(`
|
|
215
|
+
log(`Declared version: ${currentVersion}`, 'cyan');
|
|
216
|
+
log(`Latest version: ${latestVersion}`, 'cyan');
|
|
182
217
|
|
|
183
|
-
|
|
218
|
+
if (compareVersions(currentVersion, latestVersion) > 0) {
|
|
219
|
+
blockPush('Declared @penskemediacorp/larva is outdated.');
|
|
220
|
+
return;
|
|
221
|
+
}
|
|
184
222
|
|
|
185
|
-
|
|
186
|
-
// Update available (latest is greater than current)
|
|
187
|
-
const forceFlag = checkForceFlag();
|
|
223
|
+
const localVersion = getLocalInstalledLarvaVersion();
|
|
188
224
|
|
|
189
|
-
|
|
190
|
-
log(
|
|
191
|
-
log('='.repeat(60), 'yellow');
|
|
192
|
-
log(`Current: ${currentVersion}`, 'red');
|
|
193
|
-
log(`Latest: ${latestVersion}`, 'green');
|
|
194
|
-
log('\nPlease update @penskemediacorp/larva before pushing:', 'yellow');
|
|
195
|
-
log(' npm install @penskemediacorp/larva@latest', 'cyan');
|
|
196
|
-
log('='.repeat(60) + '\n', 'yellow');
|
|
225
|
+
if (localVersion) {
|
|
226
|
+
log(`Local installed: ${localVersion}`, 'cyan');
|
|
197
227
|
|
|
198
|
-
if (
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
process.exit(0);
|
|
202
|
-
} else {
|
|
203
|
-
log('❌ Push blocked. Please update @penskemediacorp/larva before pushing.\n', 'red');
|
|
204
|
-
log('To override this check:', 'yellow');
|
|
205
|
-
log(' git push --force # Try force push', 'cyan');
|
|
206
|
-
log(' git push --no-verify # Skip hook entirely\n', 'cyan');
|
|
207
|
-
process.exit(1);
|
|
228
|
+
if (compareVersions(localVersion, latestVersion) > 0) {
|
|
229
|
+
blockPush('Local @penskemediacorp/larva is outdated.');
|
|
230
|
+
return;
|
|
208
231
|
}
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
log('✓ @penskemediacorp/larva is up to date!\n', 'green');
|
|
235
|
+
process.exit(0);
|
|
213
236
|
}
|
|
214
237
|
|
|
215
238
|
main();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@penskemediacorp/larva",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.77.1",
|
|
4
4
|
"description": "> TODO: description",
|
|
5
5
|
"author": "laras126 <laras126@gmail.com>",
|
|
6
6
|
"homepage": "https://github.com/Penske-Media-Corp/pmc-larva/tree/master/packages/larva#readme",
|
|
@@ -45,16 +45,16 @@
|
|
|
45
45
|
"dependencies": {
|
|
46
46
|
"@babel/core": "^7",
|
|
47
47
|
"@babel/preset-env": "^7",
|
|
48
|
-
"@penskemediacorp/backstopjs-config": "^1.
|
|
49
|
-
"@penskemediacorp/eslint-config": "^1.
|
|
50
|
-
"@penskemediacorp/larva-css": "^1.
|
|
51
|
-
"@penskemediacorp/larva-js": "^1.
|
|
52
|
-
"@penskemediacorp/larva-patterns": "^1.
|
|
53
|
-
"@penskemediacorp/larva-scss": "^1.
|
|
54
|
-
"@penskemediacorp/larva-svg": "^1.
|
|
55
|
-
"@penskemediacorp/larva-tokens": "^1.
|
|
56
|
-
"@penskemediacorp/stylelint-config": "^1.
|
|
57
|
-
"@penskemediacorp/twig-to-php-parser": "^1.
|
|
48
|
+
"@penskemediacorp/backstopjs-config": "^1.77.1",
|
|
49
|
+
"@penskemediacorp/eslint-config": "^1.77.1",
|
|
50
|
+
"@penskemediacorp/larva-css": "^1.77.1",
|
|
51
|
+
"@penskemediacorp/larva-js": "^1.77.1",
|
|
52
|
+
"@penskemediacorp/larva-patterns": "^1.77.1",
|
|
53
|
+
"@penskemediacorp/larva-scss": "^1.77.1",
|
|
54
|
+
"@penskemediacorp/larva-svg": "^1.77.1",
|
|
55
|
+
"@penskemediacorp/larva-tokens": "^1.77.1",
|
|
56
|
+
"@penskemediacorp/stylelint-config": "^1.77.1",
|
|
57
|
+
"@penskemediacorp/twig-to-php-parser": "^1.77.1",
|
|
58
58
|
"axios": "^1",
|
|
59
59
|
"babel-loader": "^9",
|
|
60
60
|
"chalk": "^4",
|
|
@@ -96,5 +96,5 @@
|
|
|
96
96
|
"overrides": {
|
|
97
97
|
"@wordpress/eslint-plugin": "^17"
|
|
98
98
|
},
|
|
99
|
-
"gitHead": "
|
|
99
|
+
"gitHead": "d93ba925282cc2e2c0ac78768b1c7cb5e457ed0b"
|
|
100
100
|
}
|