fix package issue jwt jwta with node version

This commit is contained in:
2026-02-24 12:19:59 +01:00
parent 914ea854e3
commit cc29d7c5f9
2 changed files with 47 additions and 31 deletions

View File

@@ -1,16 +1,27 @@
// CRITICAL FIX: Ensure Buffer is available globally before ANY modules load
// CRITICAL FIX: Ensure Buffer and SlowBuffer are available globally before ANY modules load
// This fixes the "Cannot read properties of undefined (reading 'prototype')" error
if (typeof global !== 'undefined') {
// Force load buffer module and make it globally available
// SlowBuffer was deprecated in Node 18+ and removed in Node 22+, but some packages still use it
(function() {
const Module = require('module');
const originalRequire = Module.prototype.require;
// Patch require to ensure buffer module always has SlowBuffer
Module.prototype.require = function(id) {
if (id === 'buffer') {
const buf = originalRequire.apply(this, arguments);
if (!buf.SlowBuffer) buf.SlowBuffer = buf.Buffer;
return buf;
}
return originalRequire.apply(this, arguments);
};
// Also ensure global Buffer/SlowBuffer are available
const buffer = require('buffer');
if (!global.Buffer) {
global.Buffer = buffer.Buffer;
}
// Also ensure it's available in this scope
if (typeof Buffer === 'undefined') {
global.Buffer = buffer.Buffer;
}
}
if (!global.Buffer) global.Buffer = buffer.Buffer;
if (!global.SlowBuffer) global.SlowBuffer = buffer.Buffer;
if (globalThis && !globalThis.Buffer) globalThis.Buffer = buffer.Buffer;
if (globalThis && !globalThis.SlowBuffer) globalThis.SlowBuffer = buffer.Buffer;
})();
// Double-check Buffer is available
if (typeof Buffer === 'undefined') {

View File

@@ -10,7 +10,9 @@ const Odmdb = require("./Odmdb.js");
const conf = require(`../../../adminapi/objects/tribes/itm/adminapi.json`);
const currentmod = "Pagans";
const log = process.env.ACTIVELOG ? process.env.ACTIVELOG.split(',').includes(currentmod) : false;
const log = process.env.ACTIVELOG
? process.env.ACTIVELOG.split(",").includes(currentmod)
: false;
/**
* Pagan Management numeric Identity and Person (Person = Pagan Id + tribe)
*
@@ -56,22 +58,22 @@ Pagans.keyrecovery = (emailalias, tribe, search, lg) => {
emailalias,
tribe,
search,
lg
lg,
);
if (!search || search.length<3) {
if (!search || search.length < 3) {
console.log(
currentmod,
"issue with search : emailalias, tribe, search, lg:",
emailalias,
tribe,
search,
lg
lg,
);
return {
status: 406,
ref: "Pagans",
msg: "nosearchstring",
data: {emailalias,tribe,search,lg},
data: { emailalias, tribe, search, lg },
};
}
if (!["email", "alias"].includes(emailalias)) {
@@ -79,7 +81,7 @@ Pagans.keyrecovery = (emailalias, tribe, search, lg) => {
status: 406,
ref: "Pagans",
msg: "emailaliasnotemailoralias",
data: {emailalias,tribe,search,lg},
data: { emailalias, tribe, search, lg },
};
}
let emaillist = [];
@@ -107,9 +109,9 @@ Pagans.keyrecovery = (emailalias, tribe, search, lg) => {
const ret = Pagans.sendmailkey(e);
});*/
for (let i = 0; i < emaillist.length && i < 3; i++) {
const e = emaillist[i];
const ret = Pagans.sendmailkey(e);
}
const e = emaillist[i];
const ret = Pagans.sendmailkey(e);
}
if (emaillist.length > 0) {
return {
status: 200,
@@ -143,14 +145,16 @@ Pagans.getalias = (alias) => {
data: fs.readJSONSync(`../adminapi/objects/pagans/itm/${alias}.json`),
};
} else {
try{
const lst_alias=fs.readJSONSync(`../adminapi/objects/pagans/idx/lst_alias.json`)
let suggestedalias=[]
try {
const lst_alias = fs.readJSONSync(
`../adminapi/objects/pagans/idx/lst_alias.json`,
);
let suggestedalias = [];
let counter = 1;
while (suggestedalias.length < 3){
while (suggestedalias.length < 3) {
const candidate = `${alias}${counter}`;
if (!lst_alias.includes(candidate)){
suggestedalias.push(candidate)
if (!lst_alias.includes(candidate)) {
suggestedalias.push(candidate);
}
counter++;
}
@@ -160,8 +164,9 @@ Pagans.getalias = (alias) => {
msg: "aliasdoesnotexist",
data: { alias, suggestedalias },
};
} catch(err){
return {status:500,msg:"lst_aliaserror",ref:"Pagans",data:{}}
} catch (err) {
return { status: 500, msg: "lst_aliaserror", ref: "Pagans", data: {} };
}
}
};
@@ -195,7 +200,7 @@ Pagans.sendmailkey = (data) => {
"-",
data.email,
"-",
data.lg
data.lg,
);
const person = {
alias: data.alias,
@@ -275,7 +280,7 @@ Pagans.authenticatedetachedSignature = async (
alias,
pubK,
detachedSignature,
message
message,
) => {
/**
* Check that a message was signed with a privateKey from a publicKey