Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion generators/generate-core-modules.js
Original file line number Diff line number Diff line change
Expand Up @@ -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}';
}
`;

Expand Down
16 changes: 9 additions & 7 deletions generators/generate-sdk.js
Original file line number Diff line number Diff line change
Expand Up @@ -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(
Expand All @@ -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,');
Expand Down Expand Up @@ -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',
},
};
Expand Down
124 changes: 89 additions & 35 deletions src/core/firmware.ts
Original file line number Diff line number Diff line change
Expand Up @@ -276,107 +276,161 @@ export class FirmwareApi {

// Firmware methods
async firmwareAudit(data?: FirmwareFirmwareAuditRequest, config?: RequestConfig): Promise<ApiResponse<FirmwareFirmwareAuditResponse>> {
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<ApiResponse<FirmwareFirmwareChangelogResponse>> {
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<ApiResponse<FirmwareFirmwareChangelogResponse>> {
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<ApiResponse<FirmwareFirmwareCheckResponse>> {
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<ApiResponse<FirmwareFirmwareConnectionResponse>> {
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<ApiResponse<FirmwareFirmwareGetResponse>> {
return this.http.get(`/api/firmware/firmware/get`, config);
return this.http.get(`/api/core/firmware/firmware/get`, config);
}

async firmwareGetOptions(config?: RequestConfig): Promise<ApiResponse<FirmwareFirmwareGetOptionsResponse>> {
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<ApiResponse<FirmwareFirmwareHealthResponse>> {
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<ApiResponse<FirmwareFirmwareInfoResponse>> {
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<ApiResponse<FirmwareFirmwareLogResponse>> {
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<ApiResponse<FirmwareFirmwareLogResponse>> {
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<ApiResponse<FirmwareFirmwarePoweroffResponse>> {
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<ApiResponse<FirmwareFirmwareRebootResponse>> {
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<ApiResponse<FirmwareFirmwareResyncPluginsResponse>> {
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<ApiResponse<FirmwareFirmwareRunningResponse>> {
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<ApiResponse<FirmwareFirmwareSetResponse>> {
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<ApiResponse<FirmwareFirmwareStatusResponse>> {
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<ApiResponse<FirmwareFirmwareSyncPluginsResponse>> {
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<ApiResponse<FirmwareFirmwareUpdateResponse>> {
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<ApiResponse<FirmwareFirmwareUpgradeResponse>> {
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<ApiResponse<FirmwareFirmwareUpgradestatusResponse>> {
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<ApiResponse<FirmwareFirmwareDetailsResponse>> {
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<ApiResponse<FirmwareFirmwareDetailsResponse>> {
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<ApiResponse<FirmwareFirmwareInstallResponse>> {
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<ApiResponse<FirmwareFirmwareInstallResponse>> {
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<ApiResponse<FirmwareFirmwareLicenseResponse>> {
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<ApiResponse<FirmwareFirmwareLicenseResponse>> {
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<ApiResponse<FirmwareFirmwareLockResponse>> {
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<ApiResponse<FirmwareFirmwareLockResponse>> {
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<ApiResponse<FirmwareFirmwareRemoveResponse>> {
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<ApiResponse<FirmwareFirmwareRemoveResponse>> {
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<ApiResponse<FirmwareFirmwareReinstallResponse>> {
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<ApiResponse<FirmwareFirmwareReinstallResponse>> {
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<ApiResponse<FirmwareFirmwareUnlockResponse>> {
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<ApiResponse<FirmwareFirmwareUnlockResponse>> {
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);
}

}
Loading