diff --git a/generators/generate-core-modules.js b/generators/generate-core-modules.js index a5dcc34..a70e8ee 100644 --- a/generators/generate-core-modules.js +++ b/generators/generate-core-modules.js @@ -175,13 +175,14 @@ import type { AxiosInstance, AxiosRequestConfig, AxiosResponse } from 'axios'; classContent += generateTypeScriptTypes(module); // Add class definition + const baseApiPrefix = module.name.toLowerCase() === 'firmware' ? '/api/core/firmware' : `/api/${module.name.toLowerCase()}`; classContent += `export class ${className} { private client: AxiosInstance; private basePath: string; constructor(client: AxiosInstance) { this.client = client; - this.basePath = '/api/${module.name.toLowerCase()}'; + this.basePath = '${baseApiPrefix}'; } `; diff --git a/generators/generate-sdk.js b/generators/generate-sdk.js index ec0926f..ac7d461 100755 --- a/generators/generate-sdk.js +++ b/generators/generate-sdk.js @@ -125,6 +125,8 @@ class OPNsenseSDKGenerator { transformedContent = transformedContent.replace(/AxiosRequestConfig/g, 'RequestConfig'); transformedContent = transformedContent.replace(/AxiosResponse/g, 'ApiResponse'); + const baseApiPrefix = moduleName === 'firmware' ? '/api/core/firmware' : `/api/${moduleName}`; + // Replace constructor and class properties const className = this.getClassName(moduleName); transformedContent = transformedContent.replace( @@ -140,7 +142,7 @@ class OPNsenseSDKGenerator { transformedContent = transformedContent.replace(/this\.client\./g, 'this.http.'); // Replace basePath usage with direct API paths - transformedContent = transformedContent.replace(new RegExp(`\\$\\{this\\.basePath\\}`, 'g'), `/api/${moduleName}`); + transformedContent = transformedContent.replace(new RegExp(`\\$\\{this\\.basePath\\}`, 'g'), baseApiPrefix); // Fix reserved keyword parameters - replace 'if' with 'interfaceName' transformedContent = transformedContent.replace(/async (\w+)\(if\?: string,/g, 'async $1(interfaceName?: string,'); @@ -513,20 +515,20 @@ export default OPNsenseClient; const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8')); // Update main fields for the built SDK - packageJson.main = './dist/index.js'; - packageJson.module = './dist/index.esm.js'; + packageJson.main = './dist/index.cjs'; + packageJson.module = './dist/index.js'; packageJson.types = './dist/index.d.ts'; // Update exports for better tree-shaking packageJson.exports = { '.': { - require: './dist/index.js', - import: './dist/index.esm.js', + require: './dist/index.cjs', + import: './dist/index.js', types: './dist/index.d.ts', }, './keygen': { - require: './dist/keygen.js', - import: './dist/keygen.esm.js', + require: './dist/keygen.cjs', + import: './dist/keygen.js', types: './dist/keygen.d.ts', }, }; diff --git a/src/core/firmware.ts b/src/core/firmware.ts index 42268b2..d7240d6 100644 --- a/src/core/firmware.ts +++ b/src/core/firmware.ts @@ -276,107 +276,161 @@ export class FirmwareApi { // Firmware methods async firmwareAudit(data?: FirmwareFirmwareAuditRequest, config?: RequestConfig): Promise> { - return this.http.post(`/api/firmware/firmware/audit`, data, config); + return this.http.post(`/api/core/firmware/firmware/audit`, data, config); } - async firmwareChangelog(version: string, data?: FirmwareFirmwareChangelogRequest, config?: RequestConfig): Promise> { - return this.http.post(`/api/firmware/firmware/changelog/${version}`, data, config); + async firmwareChangelog(version: string | { version: string; [key: string]: any }, data?: FirmwareFirmwareChangelogRequest, config?: RequestConfig): Promise> { + let versionVal = version; + let dataVal = data; + if (typeof version === 'object' && version !== null) { + versionVal = version.version; + dataVal = version; + } + return this.http.post(`/api/core/firmware/firmware/changelog/${versionVal}`, dataVal, config); } async firmwareCheck(data?: FirmwareFirmwareCheckRequest, config?: RequestConfig): Promise> { - return this.http.post(`/api/firmware/firmware/check`, data, config); + return this.http.post(`/api/core/firmware/firmware/check`, data, config); } async firmwareConnection(data?: FirmwareFirmwareConnectionRequest, config?: RequestConfig): Promise> { - return this.http.post(`/api/firmware/firmware/connection`, data, config); + return this.http.post(`/api/core/firmware/firmware/connection`, data, config); } async firmwareGet(config?: RequestConfig): Promise> { - return this.http.get(`/api/firmware/firmware/get`, config); + return this.http.get(`/api/core/firmware/firmware/get`, config); } async firmwareGetOptions(config?: RequestConfig): Promise> { - return this.http.get(`/api/firmware/firmware/getOptions`, config); + return this.http.get(`/api/core/firmware/firmware/getOptions`, config); } async firmwareHealth(data?: FirmwareFirmwareHealthRequest, config?: RequestConfig): Promise> { - return this.http.post(`/api/firmware/firmware/health`, data, config); + return this.http.post(`/api/core/firmware/firmware/health`, data, config); } async firmwareInfo(config?: RequestConfig): Promise> { - return this.http.get(`/api/firmware/firmware/info`, config); + return this.http.get(`/api/core/firmware/firmware/info`, config); } - async firmwareLog(clear: string, data?: FirmwareFirmwareLogRequest, config?: RequestConfig): Promise> { - return this.http.post(`/api/firmware/firmware/log/${clear}`, data, config); + async firmwareLog(clear: string | { clear: string; [key: string]: any }, data?: FirmwareFirmwareLogRequest, config?: RequestConfig): Promise> { + let clearVal = clear; + let dataVal = data; + if (typeof clear === 'object' && clear !== null) { + clearVal = clear.clear; + dataVal = clear; + } + return this.http.post(`/api/core/firmware/firmware/log/${clearVal}`, dataVal, config); } async firmwarePoweroff(data?: FirmwareFirmwarePoweroffRequest, config?: RequestConfig): Promise> { - return this.http.post(`/api/firmware/firmware/poweroff`, data, config); + return this.http.post(`/api/core/firmware/firmware/poweroff`, data, config); } async firmwareReboot(data?: FirmwareFirmwareRebootRequest, config?: RequestConfig): Promise> { - return this.http.post(`/api/firmware/firmware/reboot`, data, config); + return this.http.post(`/api/core/firmware/firmware/reboot`, data, config); } async firmwareResyncPlugins(data?: FirmwareFirmwareResyncPluginsRequest, config?: RequestConfig): Promise> { - return this.http.post(`/api/firmware/firmware/resyncPlugins`, data, config); + return this.http.post(`/api/core/firmware/firmware/resyncPlugins`, data, config); } async firmwareRunning(config?: RequestConfig): Promise> { - return this.http.get(`/api/firmware/firmware/running`, config); + return this.http.get(`/api/core/firmware/firmware/running`, config); } async firmwareSet(data?: FirmwareFirmwareSetRequest, config?: RequestConfig): Promise> { - return this.http.post(`/api/firmware/firmware/set`, data, config); + return this.http.post(`/api/core/firmware/firmware/set`, data, config); } async firmwareStatus(data?: FirmwareFirmwareStatusRequest, config?: RequestConfig): Promise> { - return this.http.post(`/api/firmware/firmware/status`, data, config); + return this.http.post(`/api/core/firmware/firmware/status`, data, config); } async firmwareSyncPlugins(data?: FirmwareFirmwareSyncPluginsRequest, config?: RequestConfig): Promise> { - return this.http.post(`/api/firmware/firmware/syncPlugins`, data, config); + return this.http.post(`/api/core/firmware/firmware/syncPlugins`, data, config); } async firmwareUpdate(data?: FirmwareFirmwareUpdateRequest, config?: RequestConfig): Promise> { - return this.http.post(`/api/firmware/firmware/update`, data, config); + return this.http.post(`/api/core/firmware/firmware/update`, data, config); } async firmwareUpgrade(data?: FirmwareFirmwareUpgradeRequest, config?: RequestConfig): Promise> { - return this.http.post(`/api/firmware/firmware/upgrade`, data, config); + return this.http.post(`/api/core/firmware/firmware/upgrade`, data, config); } async firmwareUpgradestatus(config?: RequestConfig): Promise> { - return this.http.get(`/api/firmware/firmware/upgradestatus`, config); + return this.http.get(`/api/core/firmware/firmware/upgradestatus`, config); } - async firmwareDetails(pkgName: string, data?: FirmwareFirmwareDetailsRequest, config?: RequestConfig): Promise> { - return this.http.post(`/api/firmware/firmware/details/${pkgName}`, data, config); + async firmwareDetails(pkgName: string | { pkgName: string; [key: string]: any }, data?: FirmwareFirmwareDetailsRequest, config?: RequestConfig): Promise> { + let pkgNameVal = pkgName; + let dataVal = data; + if (typeof pkgName === 'object' && pkgName !== null) { + pkgNameVal = pkgName.pkgName; + dataVal = pkgName; + } + return this.http.post(`/api/core/firmware/firmware/details/${pkgNameVal}`, dataVal, config); } - async firmwareInstall(pkgName: string, data?: FirmwareFirmwareInstallRequest, config?: RequestConfig): Promise> { - return this.http.post(`/api/firmware/firmware/install/${pkgName}`, data, config); + async firmwareInstall(pkgName: string | { pkgName: string; [key: string]: any }, data?: FirmwareFirmwareInstallRequest, config?: RequestConfig): Promise> { + let pkgNameVal = pkgName; + let dataVal = data; + if (typeof pkgName === 'object' && pkgName !== null) { + pkgNameVal = pkgName.pkgName; + dataVal = pkgName; + } + return this.http.post(`/api/core/firmware/firmware/install/${pkgNameVal}`, dataVal, config); } - async firmwareLicense(pkgName: string, data?: FirmwareFirmwareLicenseRequest, config?: RequestConfig): Promise> { - return this.http.post(`/api/firmware/firmware/license/${pkgName}`, data, config); + async firmwareLicense(pkgName: string | { pkgName: string; [key: string]: any }, data?: FirmwareFirmwareLicenseRequest, config?: RequestConfig): Promise> { + let pkgNameVal = pkgName; + let dataVal = data; + if (typeof pkgName === 'object' && pkgName !== null) { + pkgNameVal = pkgName.pkgName; + dataVal = pkgName; + } + return this.http.post(`/api/core/firmware/firmware/license/${pkgNameVal}`, dataVal, config); } - async firmwareLock(pkgName: string, data?: FirmwareFirmwareLockRequest, config?: RequestConfig): Promise> { - return this.http.post(`/api/firmware/firmware/lock/${pkgName}`, data, config); + async firmwareLock(pkgName: string | { pkgName: string; [key: string]: any }, data?: FirmwareFirmwareLockRequest, config?: RequestConfig): Promise> { + let pkgNameVal = pkgName; + let dataVal = data; + if (typeof pkgName === 'object' && pkgName !== null) { + pkgNameVal = pkgName.pkgName; + dataVal = pkgName; + } + return this.http.post(`/api/core/firmware/firmware/lock/${pkgNameVal}`, dataVal, config); } - async firmwareRemove(pkgName: string, data?: FirmwareFirmwareRemoveRequest, config?: RequestConfig): Promise> { - return this.http.post(`/api/firmware/firmware/remove/${pkgName}`, data, config); + async firmwareRemove(pkgName: string | { pkgName: string; [key: string]: any }, data?: FirmwareFirmwareRemoveRequest, config?: RequestConfig): Promise> { + let pkgNameVal = pkgName; + let dataVal = data; + if (typeof pkgName === 'object' && pkgName !== null) { + pkgNameVal = pkgName.pkgName; + dataVal = pkgName; + } + return this.http.post(`/api/core/firmware/firmware/remove/${pkgNameVal}`, dataVal, config); } - async firmwareReinstall(pkgName: string, data?: FirmwareFirmwareReinstallRequest, config?: RequestConfig): Promise> { - return this.http.post(`/api/firmware/firmware/reinstall/${pkgName}`, data, config); + async firmwareReinstall(pkgName: string | { pkgName: string; [key: string]: any }, data?: FirmwareFirmwareReinstallRequest, config?: RequestConfig): Promise> { + let pkgNameVal = pkgName; + let dataVal = data; + if (typeof pkgName === 'object' && pkgName !== null) { + pkgNameVal = pkgName.pkgName; + dataVal = pkgName; + } + return this.http.post(`/api/core/firmware/firmware/reinstall/${pkgNameVal}`, dataVal, config); } - async firmwareUnlock(pkgName: string, data?: FirmwareFirmwareUnlockRequest, config?: RequestConfig): Promise> { - return this.http.post(`/api/firmware/firmware/unlock/${pkgName}`, data, config); + async firmwareUnlock(pkgName: string | { pkgName: string; [key: string]: any }, data?: FirmwareFirmwareUnlockRequest, config?: RequestConfig): Promise> { + let pkgNameVal = pkgName; + let dataVal = data; + if (typeof pkgName === 'object' && pkgName !== null) { + pkgNameVal = pkgName.pkgName; + dataVal = pkgName; + } + return this.http.post(`/api/core/firmware/firmware/unlock/${pkgNameVal}`, dataVal, config); } } diff --git a/typescript/core/firmware.ts b/typescript/core/firmware.ts index abaefa2..c434de3 100644 --- a/typescript/core/firmware.ts +++ b/typescript/core/firmware.ts @@ -284,8 +284,14 @@ export class FirmwareApi { return this.client.post(`${this.basePath}/firmware/audit`, data, config); } - async firmwareChangelog(version: string, data?: FirmwareFirmwareChangelogRequest, config?: AxiosRequestConfig): Promise> { - return this.client.post(`${this.basePath}/firmware/changelog/${version}`, data, config); + async firmwareChangelog(version: string | { version: string; [key: string]: any }, data?: FirmwareFirmwareChangelogRequest, config?: AxiosRequestConfig): Promise> { + let versionVal = version; + let dataVal = data; + if (typeof version === 'object' && version !== null) { + versionVal = version.version; + dataVal = version; + } + return this.client.post(`${this.basePath}/firmware/changelog/${versionVal}`, dataVal, config); } async firmwareCheck(data?: FirmwareFirmwareCheckRequest, config?: AxiosRequestConfig): Promise> { @@ -312,8 +318,14 @@ export class FirmwareApi { return this.client.get(`${this.basePath}/firmware/info`, config); } - async firmwareLog(clear: string, data?: FirmwareFirmwareLogRequest, config?: AxiosRequestConfig): Promise> { - return this.client.post(`${this.basePath}/firmware/log/${clear}`, data, config); + async firmwareLog(clear: string | { clear: string; [key: string]: any }, data?: FirmwareFirmwareLogRequest, config?: AxiosRequestConfig): Promise> { + let clearVal = clear; + let dataVal = data; + if (typeof clear === 'object' && clear !== null) { + clearVal = clear.clear; + dataVal = clear; + } + return this.client.post(`${this.basePath}/firmware/log/${clearVal}`, dataVal, config); } async firmwarePoweroff(data?: FirmwareFirmwarePoweroffRequest, config?: AxiosRequestConfig): Promise> { @@ -356,32 +368,74 @@ export class FirmwareApi { return this.client.get(`${this.basePath}/firmware/upgradestatus`, config); } - async firmwareDetails(pkgName: string, data?: FirmwareFirmwareDetailsRequest, config?: AxiosRequestConfig): Promise> { - return this.client.post(`${this.basePath}/firmware/details/${pkgName}`, data, config); + async firmwareDetails(pkgName: string | { pkgName: string; [key: string]: any }, data?: FirmwareFirmwareDetailsRequest, config?: AxiosRequestConfig): Promise> { + let pkgNameVal = pkgName; + let dataVal = data; + if (typeof pkgName === 'object' && pkgName !== null) { + pkgNameVal = pkgName.pkgName; + dataVal = pkgName; + } + return this.client.post(`${this.basePath}/firmware/details/${pkgNameVal}`, dataVal, config); } - async firmwareInstall(pkgName: string, data?: FirmwareFirmwareInstallRequest, config?: AxiosRequestConfig): Promise> { - return this.client.post(`${this.basePath}/firmware/install/${pkgName}`, data, config); + async firmwareInstall(pkgName: string | { pkgName: string; [key: string]: any }, data?: FirmwareFirmwareInstallRequest, config?: AxiosRequestConfig): Promise> { + let pkgNameVal = pkgName; + let dataVal = data; + if (typeof pkgName === 'object' && pkgName !== null) { + pkgNameVal = pkgName.pkgName; + dataVal = pkgName; + } + return this.client.post(`${this.basePath}/firmware/install/${pkgNameVal}`, dataVal, config); } - async firmwareLicense(pkgName: string, data?: FirmwareFirmwareLicenseRequest, config?: AxiosRequestConfig): Promise> { - return this.client.post(`${this.basePath}/firmware/license/${pkgName}`, data, config); + async firmwareLicense(pkgName: string | { pkgName: string; [key: string]: any }, data?: FirmwareFirmwareLicenseRequest, config?: AxiosRequestConfig): Promise> { + let pkgNameVal = pkgName; + let dataVal = data; + if (typeof pkgName === 'object' && pkgName !== null) { + pkgNameVal = pkgName.pkgName; + dataVal = pkgName; + } + return this.client.post(`${this.basePath}/firmware/license/${pkgNameVal}`, dataVal, config); } - async firmwareLock(pkgName: string, data?: FirmwareFirmwareLockRequest, config?: AxiosRequestConfig): Promise> { - return this.client.post(`${this.basePath}/firmware/lock/${pkgName}`, data, config); + async firmwareLock(pkgName: string | { pkgName: string; [key: string]: any }, data?: FirmwareFirmwareLockRequest, config?: AxiosRequestConfig): Promise> { + let pkgNameVal = pkgName; + let dataVal = data; + if (typeof pkgName === 'object' && pkgName !== null) { + pkgNameVal = pkgName.pkgName; + dataVal = pkgName; + } + return this.client.post(`${this.basePath}/firmware/lock/${pkgNameVal}`, dataVal, config); } - async firmwareRemove(pkgName: string, data?: FirmwareFirmwareRemoveRequest, config?: AxiosRequestConfig): Promise> { - return this.client.post(`${this.basePath}/firmware/remove/${pkgName}`, data, config); + async firmwareRemove(pkgName: string | { pkgName: string; [key: string]: any }, data?: FirmwareFirmwareRemoveRequest, config?: AxiosRequestConfig): Promise> { + let pkgNameVal = pkgName; + let dataVal = data; + if (typeof pkgName === 'object' && pkgName !== null) { + pkgNameVal = pkgName.pkgName; + dataVal = pkgName; + } + return this.client.post(`${this.basePath}/firmware/remove/${pkgNameVal}`, dataVal, config); } - async firmwareReinstall(pkgName: string, data?: FirmwareFirmwareReinstallRequest, config?: AxiosRequestConfig): Promise> { - return this.client.post(`${this.basePath}/firmware/reinstall/${pkgName}`, data, config); + async firmwareReinstall(pkgName: string | { pkgName: string; [key: string]: any }, data?: FirmwareFirmwareReinstallRequest, config?: AxiosRequestConfig): Promise> { + let pkgNameVal = pkgName; + let dataVal = data; + if (typeof pkgName === 'object' && pkgName !== null) { + pkgNameVal = pkgName.pkgName; + dataVal = pkgName; + } + return this.client.post(`${this.basePath}/firmware/reinstall/${pkgNameVal}`, dataVal, config); } - async firmwareUnlock(pkgName: string, data?: FirmwareFirmwareUnlockRequest, config?: AxiosRequestConfig): Promise> { - return this.client.post(`${this.basePath}/firmware/unlock/${pkgName}`, data, config); + async firmwareUnlock(pkgName: string | { pkgName: string; [key: string]: any }, data?: FirmwareFirmwareUnlockRequest, config?: AxiosRequestConfig): Promise> { + let pkgNameVal = pkgName; + let dataVal = data; + if (typeof pkgName === 'object' && pkgName !== null) { + pkgNameVal = pkgName.pkgName; + dataVal = pkgName; + } + return this.client.post(`${this.basePath}/firmware/unlock/${pkgNameVal}`, dataVal, config); } }