@penskemediacorp/larva 1.77.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.
Files changed (2) hide show
  1. package/bin/pre-push +56 -33
  2. 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
- // Get git root directory
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(`Latest version: ${latestVersion}`, 'cyan');
215
+ log(`Declared version: ${currentVersion}`, 'cyan');
216
+ log(`Latest version: ${latestVersion}`, 'cyan');
182
217
 
183
- const comparison = compareVersions(currentVersion, latestVersion);
218
+ if (compareVersions(currentVersion, latestVersion) > 0) {
219
+ blockPush('Declared @penskemediacorp/larva is outdated.');
220
+ return;
221
+ }
184
222
 
185
- if (comparison > 0) {
186
- // Update available (latest is greater than current)
187
- const forceFlag = checkForceFlag();
223
+ const localVersion = getLocalInstalledLarvaVersion();
188
224
 
189
- log('\n' + '='.repeat(60), 'yellow');
190
- log('⚠️ UPDATE AVAILABLE FOR @penskemediacorp/larva', 'yellow');
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 (forceFlag) {
199
- log('⚠️ Force flag detected - allowing push with outdated version', 'yellow');
200
- log('Please update @penskemediacorp/larva as soon as possible!\n', 'yellow');
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
- } else {
210
- log('✓ @penskemediacorp/larva is up to date!\n', 'green');
211
- process.exit(0);
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.77.0",
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.77.0",
49
- "@penskemediacorp/eslint-config": "^1.77.0",
50
- "@penskemediacorp/larva-css": "^1.77.0",
51
- "@penskemediacorp/larva-js": "^1.77.0",
52
- "@penskemediacorp/larva-patterns": "^1.77.0",
53
- "@penskemediacorp/larva-scss": "^1.77.0",
54
- "@penskemediacorp/larva-svg": "^1.77.0",
55
- "@penskemediacorp/larva-tokens": "^1.77.0",
56
- "@penskemediacorp/stylelint-config": "^1.77.0",
57
- "@penskemediacorp/twig-to-php-parser": "^1.77.0",
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": "4f246de4548be09e0eed5b4d071a02e6f4c11fba"
99
+ "gitHead": "d93ba925282cc2e2c0ac78768b1c7cb5e457ed0b"
100
100
  }