Skip to content

feat: version manifest plugin, Vite 8 upgrade, and sample-app refresh (PP-2859) - #93

Merged
sergak01 merged 5 commits into
developfrom
pp-2859
Mar 23, 2026
Merged

feat: version manifest plugin, Vite 8 upgrade, and sample-app refresh (PP-2859)#93
sergak01 merged 5 commits into
developfrom
pp-2859

Conversation

@sergak01

@sergak01 sergak01 commented Mar 23, 2026

Copy link
Copy Markdown
Contributor

Pull request: merge pp-2859develop

Title

feat: version manifest plugin, Vite 8 upgrade, and sample-app refresh (PP-2859)


Summary

This branch adds an optional version manifest build step that emits a JSON file with package version, build date, and SHA-256 checksums of output files. It also upgrades the toolchain to Vite 8 (Rolldown-backed types, dependency bumps), tightens TypeScript resolution for modern package.json exports, and refreshes the test sample apps (Tailwind entry, PostCSS, lockfiles, npm audit overrides).


What changed

Version manifest plugin

  • New Vite plugin (enabled by default via versionPlugin in pp-dev config) writes a VERSION-v{version}-{date}.json manifest under the build output directory.
  • Config surface: versionPlugin?: boolean | { versionFileTemplate?, enabled? } (see normalizeVitePPDevConfig).
  • MiAPI now exposes internalPageName from loaded page metadata (used in plugin-related flows).

Vite 8 and tooling

  • Bump Vite to 8.x and align related packages (e.g. vite-plugin-image-optimizer, Vitest 4, Next 16 in dev, etc.).
  • tsconfig.json: moduleResolution set to bundler so TypeScript resolves packages that only expose exports (fixes vite / Rolldown type resolution under Rollup build).
  • src/banner/header.ts: banner callback typed with RenderedChunk from rolldown so build.rollupOptions.output.banner matches Vite 8 / Rolldown.
  • getViteConfig: returns Promise<InlineConfig> without unsafe cast; removes obsolete css.scss / api: 'modern' block (Vite 8 CSSOptions + default Sass pipeline).

Repository hygiene

  • .gitignore: ignore coverage/.
  • Root package.json: dependency refreshes and overrides (e.g. file-type, undici) for security alignment.

Test sample apps (tests/test-commonjs, tests/test-nextjs, tests/test-nextjs-cjs)

  • Updated lockfiles and overrides (file-type, flatted, undici) so npm audit is clean.
  • Tailwind: dedicated tailwind.css entry and PostCSS / style tweaks aligned with the updated stack.

Commits (this branch)

  1. feat: version manifest plugin and upgrade to Vite 8
  2. test: refresh sample apps, Tailwind entry, and npm audit overrides

How to test

  • npm install at repo root
  • npm run build (or npm run build:node as in your CI)
  • npm run test:unit
  • Optional: run one of the sample apps under tests/test-nextjs / tests/test-nextjs-cjs (npm run dev / npm run build) after npm install in that folder

Risk / rollout notes

  • Vite 8 is a major bump; consumers embedding pp-dev should expect Vite 8–compatible configs and peer/runtime behavior.
  • Version manifest is on by default; teams that do not want the file can set versionPlugin: false in pp-dev config.

Checklist (edit before merge)

  • CI green
  • Changelog / release notes updated if you publish from develop
  • Ticket PP-2859 linked in your tracker

Summary by CodeRabbit

  • New Features

    • Added version plugin that generates manifest files with SHA-256 checksums of build outputs.
    • Introduced versionPlugin configuration option supporting customizable file templates and enable/disable control.
  • Improvements

    • Updated Tailwind CSS support to v4 with new @tailwindcss/postcss plugin.
    • Added SSL validation and HUD configuration options.
  • Chores

    • Updated runtime and development dependencies across all packages.
    • Updated TypeScript module resolution strategy.
  • Tests

    • Added comprehensive test coverage for version plugin functionality.

PP-2963 **Release: Security fixes and logic tests**
- Add optional version-plugin that writes a VERSION JSON with SHA256 file hashes
- Expose MiAPI.internalPageName from loaded page metadata
- Extend normalizeVitePPDevConfig with versionPlugin options (default on)
- Align getViteConfig with InlineConfig and Vite 8 / Rolldown (banner types, CSS options)
- Use bundler moduleResolution and refresh dependencies (cac, ejs, jsdom, vitest, Next 16, etc.)
- Ignore coverage/ in git
- Add tailwind.css entry and adjust PostCSS for Next sample projects
- Bump lockfiles and add overrides (file-type, flatted, undici) for zero audit issues
- Sync pp-dev config and styles with updated toolchain
@sergak01 sergak01 self-assigned this Mar 23, 2026
@coderabbitai

coderabbitai Bot commented Mar 23, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 52565819-5cfe-4d95-a0ec-4de11f1602f3

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the three main changes: a new version manifest plugin, Vite 8 upgrade, and sample app refresh, directly corresponding to the key work in the changeset.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch pp-2859

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 4

🧹 Nitpick comments (1)
tests/unit/plugin/version-plugin.spec.ts (1)

65-69: Unused variable and inconsistent import usage.

  1. Line 65 declares versionFile but it's never used - this appears to be leftover from development.
  2. Line 66 uses require('fs').readdirSync(outDir) instead of importing readdirSync at the top alongside other fs functions (lines 3-9).
♻️ Proposed cleanup

First, add readdirSync to imports at the top:

 import {
   existsSync,
   mkdtempSync,
   mkdirSync,
   readFileSync,
+  readdirSync,
   rmSync,
   writeFileSync,
 } from 'fs';

Then update the test:

-      const versionFile = join(outDir, 'VERSION-v1.2.3-');
-      const files = require('fs').readdirSync(outDir);
+      const files = readdirSync(outDir);

Apply the same require('fs').readdirSyncreaddirSync change throughout the file (lines 103, 125, 136, 161, 187, 211, 234).

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@tests/unit/plugin/version-plugin.spec.ts` around lines 65 - 69, Remove the
unused local variable versionFile (it's dead code) and replace all inline
require('fs').readdirSync(...) calls with the imported readdirSync function: add
readdirSync to the existing fs imports at the top of the file alongside other fs
functions, then change every occurrence of require('fs').readdirSync(outDir)
(and similar patterns elsewhere in the spec) to readdirSync(outDir); ensure no
other require('fs') usages remain in this test file.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@package.json`:
- Around line 109-110: The dependency "vite-plugin-image-optimizer" may be
incompatible with Vite 8; before merging, either run a local compatibility test
with the current Vite version (vite ^8.0.1) or pin/replace the plugin: reproduce
a dev build and production build (vite dev and vite build) with the plugin
enabled, check for build errors or warnings referencing the plugin, and if
failures occur, revert to a Vite-verified plugin version or remove/replace
"vite-plugin-image-optimizer" in package.json (or lock to a Vite-6/7-compatible
Vite version) until official Vite 8 support is confirmed.

In `@src/plugins/version-plugin.ts`:
- Around line 43-48: The computeChecksum function is incorrectly passing 'hex'
to createHash().update which decodes the concatenated hex strings; change the
call in computeChecksum so update() is invoked without the 'hex' encoding (hash
the literal hashesConcatenated string as UTF‑8) so the final
createHash(...).update(hashesConcatenated).digest('hex') computes the intended
checksum from the concatenated sha256OfContent values.

In `@tests/test-nextjs-cjs/package.json`:
- Around line 31-38: Update the Vite override in the package.json "overrides"
block to either match the root and test-commonjs version or document the reason
for downgrading: either change the "vite": "^6.4.1" entry to "vite": "8.0.1" to
align versions, or add an inline JSON comment (or a surrounding README note)
explaining why this test app requires Vite ^6.4.1 (e.g., Next.js 16 CJS
compatibility), and ensure the change targets the "overrides" object in
tests/test-nextjs-cjs/package.json so the intent is clear to future maintainers.

In `@tests/unit/plugin/plugin.normalize.spec.ts`:
- Around line 230-262: Remove the duplicated "describe('versionPlugin
Normalization')" test block by deleting the redundant block that repeats
assertions for normalizeVitePPDevConfig (the one using versionPluginOpts/opts);
keep the original block (which asserts versionPlugin false/true/object) and
ensure only a single describe for versionPlugin Normalization remains that
continues to reference normalizeVitePPDevConfig and the versionPlugin test
cases.

---

Nitpick comments:
In `@tests/unit/plugin/version-plugin.spec.ts`:
- Around line 65-69: Remove the unused local variable versionFile (it's dead
code) and replace all inline require('fs').readdirSync(...) calls with the
imported readdirSync function: add readdirSync to the existing fs imports at the
top of the file alongside other fs functions, then change every occurrence of
require('fs').readdirSync(outDir) (and similar patterns elsewhere in the spec)
to readdirSync(outDir); ensure no other require('fs') usages remain in this test
file.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: b7f61c30-25c9-4079-9c8f-b00eb92383d5

📥 Commits

Reviewing files that changed from the base of the PR and between 197aac5 and 974b012.

⛔ Files ignored due to path filters (4)
  • package-lock.json is excluded by !**/package-lock.json
  • tests/test-commonjs/package-lock.json is excluded by !**/package-lock.json
  • tests/test-nextjs-cjs/package-lock.json is excluded by !**/package-lock.json
  • tests/test-nextjs/package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (26)
  • .gitignore
  • package.json
  • src/banner/header.ts
  • src/index.ts
  • src/lib/pp.middleware.ts
  • src/plugin.ts
  • src/plugins/index.ts
  • src/plugins/version-plugin.ts
  • tests/test-commonjs/package.json
  • tests/test-commonjs/pp-dev.config.ts
  • tests/test-nextjs-cjs/package.json
  • tests/test-nextjs-cjs/postcss.config.js
  • tests/test-nextjs-cjs/pp-dev.config.js
  • tests/test-nextjs-cjs/src/pages/_app.tsx
  • tests/test-nextjs-cjs/src/styles/global.scss
  • tests/test-nextjs-cjs/src/styles/tailwind.css
  • tests/test-nextjs/package.json
  • tests/test-nextjs/postcss.config.cjs
  • tests/test-nextjs/pp-dev.config.ts
  • tests/test-nextjs/src/pages/_app.tsx
  • tests/test-nextjs/src/styles/global.scss
  • tests/test-nextjs/src/styles/tailwind.css
  • tests/test-nextjs/tsconfig.json
  • tests/unit/plugin/plugin.normalize.spec.ts
  • tests/unit/plugin/version-plugin.spec.ts
  • tsconfig.json
💤 Files with no reviewable changes (2)
  • tests/test-nextjs/src/styles/global.scss
  • tests/test-nextjs-cjs/src/styles/global.scss

Comment thread package.json
Comment on lines +109 to +110
"vite": "^8.0.1",
"vite-plugin-image-optimizer": "^2.0.3",

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🌐 Web query:

vite-plugin-image-optimizer 2.0 Vite 8 compatibility

💡 Result:

vite-plugin-image-optimizer version 2.0 (including 2.0.3, latest as of Oct 2025) is not confirmed compatible with Vite 8. The plugin specifies peer dependency "vite >=5" and was last updated in Oct 2025 with dev dependency "vite ^6.4.1". Vite 8 (released March 2026) introduces breaking changes including Rolldown as the new bundler with full Rollup plugin API compatibility. No explicit Vite 8 support, changelog entries, or issues confirming compatibility were found. The repository shows activity as recent as March 2026 (last push), but no Vite 8-specific updates. It may work due to API compatibility, but lacks official confirmation. Test in your environment or monitor for updates.

Citations:


vite-plugin-image-optimizer@^2.0.3 has no confirmed Vite 8 support—test before merging.

The plugin's last verified version is Vite 6.4.1 (from Oct 2025 dev dependencies). While the peer dependency allows Vite >=5, no explicit Vite 8 support, changelog updates, or compatibility confirmation exist. Given Vite 8's breaking changes (Rolldown bundler replacement), test this plugin in your environment or delay merging until official Vite 8 support is confirmed.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@package.json` around lines 109 - 110, The dependency
"vite-plugin-image-optimizer" may be incompatible with Vite 8; before merging,
either run a local compatibility test with the current Vite version (vite
^8.0.1) or pin/replace the plugin: reproduce a dev build and production build
(vite dev and vite build) with the plugin enabled, check for build errors or
warnings referencing the plugin, and if failures occur, revert to a
Vite-verified plugin version or remove/replace "vite-plugin-image-optimizer" in
package.json (or lock to a Vite-6/7-compatible Vite version) until official Vite
8 support is confirmed.

Comment on lines +43 to +48
function computeChecksum(files: Record<string, string>): string {
const sortedPaths = Object.keys(files).sort();
const hashesConcatenated = sortedPaths.map((p) => files[p]).join('');

return createHash('sha256').update(hashesConcatenated, 'hex').digest('hex');
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🌐 Web query:

Node.js crypto createHash update encoding parameter behavior

💡 Result:

The Node.js crypto.createHash(algorithm) returns a Hash object. The hash.update(data[, inputEncoding]) method updates the hash content with the given data. Key behavior of the inputEncoding parameter (optional second argument): - If data is a Buffer, TypedArray, or DataView, inputEncoding is ignored, and the raw bytes are used directly. - If data is a string: - If inputEncoding is provided (e.g., 'utf8', 'hex', 'base64', 'latin1'), the string is decoded from that encoding to bytes. - If inputEncoding is omitted, 'utf8' is used as the default. This has been the behavior since around Node.js v6 (changed from legacy 'binary' default in older versions like v0.x). Examples from official docs show hash.update('string') implicitly using UTF-8. Code example: const crypto = require('node:crypto'); const hash = crypto.createHash('sha256'); hash.update('hello', 'utf8'); // Explicit UTF-8 hash.update('world'); // Implicit UTF-8 console.log(hash.digest('hex')); For binary data, pass a Buffer: hash.update(Buffer.from(binaryData)); Historical note: Pre-v6 versions defaulted to 'binary' (latin1-like), causing issues with Unicode (e.g., "Kiełbasa" mangled). Modern Node.js (v25+) uses UTF-8 default for strings.

Citations:


🏁 Script executed:

# First, check the full file to understand the context
cat -n src/plugins/version-plugin.ts | head -60

Repository: mi-examples/pp-dev

Length of output: 2222


🏁 Script executed:

# Look for tests or usage of computeChecksum function
rg -n "computeChecksum" --type typescript

Repository: mi-examples/pp-dev

Length of output: 96


🏁 Script executed:

# Check the sha256OfContent function to confirm it returns hex strings
rg -n "sha256OfContent" --type typescript -A 5

Repository: mi-examples/pp-dev

Length of output: 96


🏁 Script executed:

# Search for computeChecksum usage
rg -n "computeChecksum" .

Repository: mi-examples/pp-dev

Length of output: 244


🏁 Script executed:

# Search for version manifest tests
rg -n "VersionManifest\|checksum" . --type-list | head -5

Repository: mi-examples/pp-dev

Length of output: 451


🏁 Script executed:

# Look for any comments or tests around the plugin
rg -n "version-plugin\|versionPlugin" . | head -20

Repository: mi-examples/pp-dev

Length of output: 44


🏁 Script executed:

# Check if there are test files for this plugin
find . -name "*.test.*" -o -name "*.spec.*" | grep -i version

Repository: mi-examples/pp-dev

Length of output: 104


🏁 Script executed:

cat -n tests/unit/plugin/version-plugin.spec.ts

Repository: mi-examples/pp-dev

Length of output: 10554


Remove the 'hex' encoding from update()—this decodes hex strings to binary, which is incorrect.

Line 47 passes 'hex' as the encoding parameter to update(). Since hashesConcatenated contains literal hex string characters (from the concatenated sha256OfContent results), the 'hex' encoding causes Node.js to interpret each pair of hex digits as a byte value, decoding the string to binary before hashing.

This produces incorrect checksums. The correct approach is to hash the concatenated hex string directly:

return createHash('sha256').update(hashesConcatenated).digest('hex');

This will use the default UTF-8 encoding and hash the string as-is, which is the intended behavior for a checksum computed from hex-encoded file hashes.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/plugins/version-plugin.ts` around lines 43 - 48, The computeChecksum
function is incorrectly passing 'hex' to createHash().update which decodes the
concatenated hex strings; change the call in computeChecksum so update() is
invoked without the 'hex' encoding (hash the literal hashesConcatenated string
as UTF‑8) so the final createHash(...).update(hashesConcatenated).digest('hex')
computes the intended checksum from the concatenated sha256OfContent values.

Comment on lines 31 to 38
"overrides": {
"file-type": "^21.3.1",
"file-type": "^21.3.3",
"flatted": ">=3.4.2",
"minimatch": "10.2.4",
"undici": ">=6.24.0",
"vite": "^6.4.1",
"esbuild": "^0.25.0",
"minimatch": "10.2.4"
"esbuild": "^0.25.0"
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Check if other test apps have similar Vite version overrides
rg '"vite"' tests/*/package.json -A1 -B1

Repository: mi-examples/pp-dev

Length of output: 395


🏁 Script executed:

#!/bin/bash
# Check root package.json for Vite version
rg '"vite"' package.json -A1 -B1

# Check if there are any comments around Vite in test-nextjs-cjs
cat tests/test-nextjs-cjs/package.json | head -50

Repository: mi-examples/pp-dev

Length of output: 1097


Add a comment explaining the Vite 6.4.1 override or align with Vite 8.0.1.

This test app deliberately overrides Vite to ^6.4.1 while the root package.json and test-commonjs both use Vite 8.0.1. Either document why the downgrade is required (e.g., Next.js 16 CJS compatibility issue) with an inline comment, or update to match Vite 8.0.1.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@tests/test-nextjs-cjs/package.json` around lines 31 - 38, Update the Vite
override in the package.json "overrides" block to either match the root and
test-commonjs version or document the reason for downgrading: either change the
"vite": "^6.4.1" entry to "vite": "8.0.1" to align versions, or add an inline
JSON comment (or a surrounding README note) explaining why this test app
requires Vite ^6.4.1 (e.g., Next.js 16 CJS compatibility), and ensure the change
targets the "overrides" object in tests/test-nextjs-cjs/package.json so the
intent is clear to future maintainers.

Comment on lines +230 to +262
describe('versionPlugin Normalization', () => {
it('should normalize versionPlugin: false to false', () => {
const config = normalizeVitePPDevConfig({
templateName: 'test',
versionPlugin: false,
});

expect(config.versionPlugin).toBe(false);
});

it('should preserve versionPlugin: true as passed (spread overwrites normalization)', () => {
const config = normalizeVitePPDevConfig({
templateName: 'test',
versionPlugin: true,
});

expect(config.versionPlugin).toBe(true);
});

it('should pass through versionPlugin object options', () => {
const versionPluginOpts = {
versionFileTemplate: 'CUSTOM-{packageversion}.json',
enabled: false,
};

const config = normalizeVitePPDevConfig({
templateName: 'test',
versionPlugin: versionPluginOpts,
});

expect(config.versionPlugin).toEqual(versionPluginOpts);
});
});

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Remove duplicate test block.

This describe('versionPlugin Normalization') block (lines 230-262) is a duplicate of the one at lines 146-191. The tests are nearly identical with minor naming differences (opts vs versionPluginOpts). This causes test redundancy and potential maintenance confusion.

🗑️ Proposed fix: Remove duplicate block
-  describe('versionPlugin Normalization', () => {
-    it('should normalize versionPlugin: false to false', () => {
-      const config = normalizeVitePPDevConfig({
-        templateName: 'test',
-        versionPlugin: false,
-      });
-
-      expect(config.versionPlugin).toBe(false);
-    });
-
-    it('should preserve versionPlugin: true as passed (spread overwrites normalization)', () => {
-      const config = normalizeVitePPDevConfig({
-        templateName: 'test',
-        versionPlugin: true,
-      });
-
-      expect(config.versionPlugin).toBe(true);
-    });
-
-    it('should pass through versionPlugin object options', () => {
-      const versionPluginOpts = {
-        versionFileTemplate: 'CUSTOM-{packageversion}.json',
-        enabled: false,
-      };
-
-      const config = normalizeVitePPDevConfig({
-        templateName: 'test',
-        versionPlugin: versionPluginOpts,
-      });
-
-      expect(config.versionPlugin).toEqual(versionPluginOpts);
-    });
-  });
-
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
describe('versionPlugin Normalization', () => {
it('should normalize versionPlugin: false to false', () => {
const config = normalizeVitePPDevConfig({
templateName: 'test',
versionPlugin: false,
});
expect(config.versionPlugin).toBe(false);
});
it('should preserve versionPlugin: true as passed (spread overwrites normalization)', () => {
const config = normalizeVitePPDevConfig({
templateName: 'test',
versionPlugin: true,
});
expect(config.versionPlugin).toBe(true);
});
it('should pass through versionPlugin object options', () => {
const versionPluginOpts = {
versionFileTemplate: 'CUSTOM-{packageversion}.json',
enabled: false,
};
const config = normalizeVitePPDevConfig({
templateName: 'test',
versionPlugin: versionPluginOpts,
});
expect(config.versionPlugin).toEqual(versionPluginOpts);
});
});
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@tests/unit/plugin/plugin.normalize.spec.ts` around lines 230 - 262, Remove
the duplicated "describe('versionPlugin Normalization')" test block by deleting
the redundant block that repeats assertions for normalizeVitePPDevConfig (the
one using versionPluginOpts/opts); keep the original block (which asserts
versionPlugin false/true/object) and ensure only a single describe for
versionPlugin Normalization remains that continues to reference
normalizeVitePPDevConfig and the versionPlugin test cases.

…ding

createHash().update() expects string encoding for the data; passing 'hex'
was incorrect for joined hex digest strings.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant