@@ -13,11 +13,9 @@ import { basename, join, relative, resolve, sep } from "path";
1313
1414import { getAllFilesWithCount , readMcpbIgnorePatterns } from "../node/files.js" ;
1515import { validateManifest } from "../node/validate.js" ;
16- import {
17- LATEST_MANIFEST_SCHEMA ,
18- LATEST_MANIFEST_VERSION ,
19- } from "../shared/constants.js" ;
16+ import { MANIFEST_SCHEMAS } from "../shared/constants.js" ;
2017import { getLogger } from "../shared/log.js" ;
18+ import { getManifestVersionFromRawData } from "../shared/manifestVersionResolve.js" ;
2119import { initExtension } from "./init.js" ;
2220
2321interface PackOptions {
@@ -95,7 +93,18 @@ export async function packExtension({
9593 try {
9694 const manifestContent = readFileSync ( manifestPath , "utf-8" ) ;
9795 const manifestData = JSON . parse ( manifestContent ) ;
98- manifest = LATEST_MANIFEST_SCHEMA . parse ( manifestData ) ;
96+ const manifestVersion = getManifestVersionFromRawData ( manifestData ) ;
97+ if ( ! manifestVersion ) {
98+ logger . error (
99+ `ERROR: Manifest version mismatch. Expected "${ Object . keys ( MANIFEST_SCHEMAS ) . join ( " or " ) } ", found "${ manifestVersion } "` ,
100+ ) ;
101+ logger . error (
102+ ` Please update the manifest_version in your manifest.json to a supported version` ,
103+ ) ;
104+ return false ;
105+ }
106+
107+ manifest = MANIFEST_SCHEMAS [ manifestVersion ] . parse ( manifestData ) ;
99108 } catch ( error ) {
100109 logger . error ( "ERROR: Failed to parse manifest.json" ) ;
101110 if ( error instanceof Error ) {
@@ -104,17 +113,6 @@ export async function packExtension({
104113 return false ;
105114 }
106115
107- const manifestVersion = manifest . manifest_version || manifest . dxt_version ;
108- if ( manifestVersion !== LATEST_MANIFEST_VERSION ) {
109- logger . error (
110- `ERROR: Manifest version mismatch. Expected "${ LATEST_MANIFEST_VERSION } ", found "${ manifestVersion } "` ,
111- ) ;
112- logger . error (
113- ` Please update the manifest_version in your manifest.json to "${ LATEST_MANIFEST_VERSION } "` ,
114- ) ;
115- return false ;
116- }
117-
118116 // Determine output path
119117 const extensionName = basename ( resolvedPath ) ;
120118 const finalOutputPath = outputPath
0 commit comments