rusty-store-kv
Advanced tools
Comparing version 1.3.0 to 1.3.1
@@ -1,20 +0,21 @@ | ||
/* tslint:disable */ | ||
/* auto-generated by NAPI-RS */ | ||
/* eslint-disable */ | ||
export declare class Dirty { | ||
get(key: string): string | null | ||
set(key: string, val: string): void | ||
remove(key: string): void | ||
findKeys(key: string, notKey?: string | undefined | null): Array<string> | ||
close(): void | ||
} | ||
/* auto-generated by NAPI-RS */ | ||
export interface BulkObject { | ||
type: string | ||
key: string | ||
value?: string | ||
} | ||
export declare class SQLite { | ||
export declare class KeyValueDB { | ||
constructor(filename: string) | ||
findKeys(key: string, notKey?: string | undefined | null): Array<string> | ||
get(key: string): string | null | ||
set(key: string, value: string): number | null | ||
set(key: string, value: string): void | ||
remove(key: string): void | ||
doBulk(bulkObject: Array<BulkObject>): void | ||
findKeys(key: string, notKey?: string | undefined | null): Array<string> | ||
close(): void | ||
destroy(): void | ||
} | ||
export declare class MemoryDB { | ||
@@ -28,18 +29,18 @@ constructor() | ||
} | ||
export declare class Dirty { | ||
export declare class SQLite { | ||
constructor(filename: string) | ||
get(key: string): string | null | ||
set(key: string, val: string): void | ||
remove(key: string): void | ||
findKeys(key: string, notKey?: string | undefined | null): Array<string> | ||
close(): void | ||
} | ||
export declare class KeyValueDB { | ||
constructor(filename: string) | ||
get(key: string): string | null | ||
set(key: string, value: string): void | ||
set(key: string, value: string): number | null | ||
remove(key: string): void | ||
findKeys(key: string, notKey?: string | undefined | null): Array<string> | ||
doBulk(bulkObject: Array<BulkObject>): void | ||
close(): void | ||
destroy(): void | ||
} | ||
export interface BulkObject { | ||
type: string | ||
key: string | ||
value?: string | ||
} | ||
621
index.js
@@ -1,309 +0,360 @@ | ||
/* tslint:disable */ | ||
// prettier-ignore | ||
/* eslint-disable */ | ||
/* prettier-ignore */ | ||
/* auto-generated by NAPI-RS */ | ||
const { existsSync, readFileSync } = require('fs') | ||
const { join } = require('path') | ||
const { readFileSync } = require('fs') | ||
const { platform, arch } = process | ||
let nativeBinding = null | ||
let localFileExisted = false | ||
let loadError = null | ||
const loadErrors = [] | ||
function isMusl() { | ||
// For Node 10 | ||
if (!process.report || typeof process.report.getReport !== 'function') { | ||
try { | ||
const lddPath = require('child_process').execSync('which ldd').toString().trim() | ||
return readFileSync(lddPath, 'utf8').includes('musl') | ||
} catch (e) { | ||
const isMusl = () => { | ||
let musl = false | ||
if (process.platform === 'linux') { | ||
musl = isMuslFromFilesystem() | ||
if (musl === null) { | ||
musl = isMuslFromReport() | ||
} | ||
if (musl === null) { | ||
musl = isMuslFromChildProcess() | ||
} | ||
} | ||
return musl | ||
} | ||
const isFileMusl = (f) => f.includes('libc.musl-') || f.includes('ld-musl-') | ||
const isMuslFromFilesystem = () => { | ||
try { | ||
return readFileSync('/usr/bin/ldd', 'utf-8').includes('musl') | ||
} catch { | ||
return null | ||
} | ||
} | ||
const isMuslFromReport = () => { | ||
const report = typeof process.report.getReport === 'function' ? process.report.getReport() : null | ||
if (!report) { | ||
return null | ||
} | ||
if (report.header && report.header.glibcVersionRuntime) { | ||
return false | ||
} | ||
if (Array.isArray(report.sharedObjects)) { | ||
if (report.sharedObjects.some(isFileMusl)) { | ||
return true | ||
} | ||
} else { | ||
const { glibcVersionRuntime } = process.report.getReport().header | ||
return !glibcVersionRuntime | ||
} | ||
return false | ||
} | ||
switch (platform) { | ||
case 'android': | ||
switch (arch) { | ||
case 'arm64': | ||
localFileExisted = existsSync(join(__dirname, 'rusty-store-kv.android-arm64.node')) | ||
const isMuslFromChildProcess = () => { | ||
try { | ||
return require('child_process').execSync('ldd --version', { encoding: 'utf8' }).includes('musl') | ||
} catch (e) { | ||
// If we reach this case, we don't know if the system is musl or not, so is better to just fallback to false | ||
return false | ||
} | ||
} | ||
function requireNative() { | ||
if (process.platform === 'android') { | ||
if (process.arch === 'arm64') { | ||
try { | ||
return require('./rusty-store-kv.android-arm64.node') | ||
} catch (e) { | ||
loadErrors.push(e) | ||
} | ||
try { | ||
return require('rusty-store-kv-android-arm64') | ||
} catch (e) { | ||
loadErrors.push(e) | ||
} | ||
} else if (process.arch === 'arm') { | ||
try { | ||
return require('./rusty-store-kv.android-arm-eabi.node') | ||
} catch (e) { | ||
loadErrors.push(e) | ||
} | ||
try { | ||
return require('rusty-store-kv-android-arm-eabi') | ||
} catch (e) { | ||
loadErrors.push(e) | ||
} | ||
} else { | ||
loadErrors.push(new Error(`Unsupported architecture on Android ${process.arch}`)) | ||
} | ||
} else if (process.platform === 'win32') { | ||
if (process.arch === 'x64') { | ||
try { | ||
return require('./rusty-store-kv.win32-x64-msvc.node') | ||
} catch (e) { | ||
loadErrors.push(e) | ||
} | ||
try { | ||
return require('rusty-store-kv-win32-x64-msvc') | ||
} catch (e) { | ||
loadErrors.push(e) | ||
} | ||
} else if (process.arch === 'ia32') { | ||
try { | ||
return require('./rusty-store-kv.win32-ia32-msvc.node') | ||
} catch (e) { | ||
loadErrors.push(e) | ||
} | ||
try { | ||
return require('rusty-store-kv-win32-ia32-msvc') | ||
} catch (e) { | ||
loadErrors.push(e) | ||
} | ||
} else if (process.arch === 'arm64') { | ||
try { | ||
return require('./rusty-store-kv.win32-arm64-msvc.node') | ||
} catch (e) { | ||
loadErrors.push(e) | ||
} | ||
try { | ||
return require('rusty-store-kv-win32-arm64-msvc') | ||
} catch (e) { | ||
loadErrors.push(e) | ||
} | ||
} else { | ||
loadErrors.push(new Error(`Unsupported architecture on Windows: ${process.arch}`)) | ||
} | ||
} else if (process.platform === 'darwin') { | ||
try { | ||
return require('./rusty-store-kv.darwin-universal.node') | ||
} catch (e) { | ||
loadErrors.push(e) | ||
} | ||
try { | ||
return require('rusty-store-kv-darwin-universal') | ||
} catch (e) { | ||
loadErrors.push(e) | ||
} | ||
if (process.arch === 'x64') { | ||
try { | ||
return require('./rusty-store-kv.darwin-x64.node') | ||
} catch (e) { | ||
loadErrors.push(e) | ||
} | ||
try { | ||
return require('rusty-store-kv-darwin-x64') | ||
} catch (e) { | ||
loadErrors.push(e) | ||
} | ||
} else if (process.arch === 'arm64') { | ||
try { | ||
return require('./rusty-store-kv.darwin-arm64.node') | ||
} catch (e) { | ||
loadErrors.push(e) | ||
} | ||
try { | ||
return require('rusty-store-kv-darwin-arm64') | ||
} catch (e) { | ||
loadErrors.push(e) | ||
} | ||
} else { | ||
loadErrors.push(new Error(`Unsupported architecture on macOS: ${process.arch}`)) | ||
} | ||
} else if (process.platform === 'freebsd') { | ||
if (process.arch === 'x64') { | ||
try { | ||
return require('./rusty-store-kv.freebsd-x64.node') | ||
} catch (e) { | ||
loadErrors.push(e) | ||
} | ||
try { | ||
return require('rusty-store-kv-freebsd-x64') | ||
} catch (e) { | ||
loadErrors.push(e) | ||
} | ||
} else if (process.arch === 'arm64') { | ||
try { | ||
return require('./rusty-store-kv.freebsd-arm64.node') | ||
} catch (e) { | ||
loadErrors.push(e) | ||
} | ||
try { | ||
return require('rusty-store-kv-freebsd-arm64') | ||
} catch (e) { | ||
loadErrors.push(e) | ||
} | ||
} else { | ||
loadErrors.push(new Error(`Unsupported architecture on FreeBSD: ${process.arch}`)) | ||
} | ||
} else if (process.platform === 'linux') { | ||
if (process.arch === 'x64') { | ||
if (isMusl()) { | ||
try { | ||
if (localFileExisted) { | ||
nativeBinding = require('./rusty-store-kv.android-arm64.node') | ||
} else { | ||
nativeBinding = require('rusty-store-kv-android-arm64') | ||
} | ||
} catch (e) { | ||
loadError = e | ||
} | ||
break | ||
case 'arm': | ||
localFileExisted = existsSync(join(__dirname, 'rusty-store-kv.android-arm-eabi.node')) | ||
return require('./rusty-store-kv.linux-x64-musl.node') | ||
} catch (e) { | ||
loadErrors.push(e) | ||
} | ||
try { | ||
return require('rusty-store-kv-linux-x64-musl') | ||
} catch (e) { | ||
loadErrors.push(e) | ||
} | ||
} else { | ||
try { | ||
if (localFileExisted) { | ||
nativeBinding = require('./rusty-store-kv.android-arm-eabi.node') | ||
} else { | ||
nativeBinding = require('rusty-store-kv-android-arm-eabi') | ||
} | ||
} catch (e) { | ||
loadError = e | ||
} | ||
break | ||
default: | ||
throw new Error(`Unsupported architecture on Android ${arch}`) | ||
} | ||
break | ||
case 'win32': | ||
switch (arch) { | ||
case 'x64': | ||
localFileExisted = existsSync( | ||
join(__dirname, 'rusty-store-kv.win32-x64-msvc.node') | ||
) | ||
return require('./rusty-store-kv.linux-x64-gnu.node') | ||
} catch (e) { | ||
loadErrors.push(e) | ||
} | ||
try { | ||
return require('rusty-store-kv-linux-x64-gnu') | ||
} catch (e) { | ||
loadErrors.push(e) | ||
} | ||
} | ||
} else if (process.arch === 'arm64') { | ||
if (isMusl()) { | ||
try { | ||
if (localFileExisted) { | ||
nativeBinding = require('./rusty-store-kv.win32-x64-msvc.node') | ||
} else { | ||
nativeBinding = require('rusty-store-kv-win32-x64-msvc') | ||
} | ||
} catch (e) { | ||
loadError = e | ||
} | ||
break | ||
case 'ia32': | ||
localFileExisted = existsSync( | ||
join(__dirname, 'rusty-store-kv.win32-ia32-msvc.node') | ||
) | ||
return require('./rusty-store-kv.linux-arm64-musl.node') | ||
} catch (e) { | ||
loadErrors.push(e) | ||
} | ||
try { | ||
return require('rusty-store-kv-linux-arm64-musl') | ||
} catch (e) { | ||
loadErrors.push(e) | ||
} | ||
} else { | ||
try { | ||
if (localFileExisted) { | ||
nativeBinding = require('./rusty-store-kv.win32-ia32-msvc.node') | ||
} else { | ||
nativeBinding = require('rusty-store-kv-win32-ia32-msvc') | ||
} | ||
} catch (e) { | ||
loadError = e | ||
} | ||
break | ||
case 'arm64': | ||
localFileExisted = existsSync( | ||
join(__dirname, 'rusty-store-kv.win32-arm64-msvc.node') | ||
) | ||
return require('./rusty-store-kv.linux-arm64-gnu.node') | ||
} catch (e) { | ||
loadErrors.push(e) | ||
} | ||
try { | ||
return require('rusty-store-kv-linux-arm64-gnu') | ||
} catch (e) { | ||
loadErrors.push(e) | ||
} | ||
} | ||
} else if (process.arch === 'arm') { | ||
if (isMusl()) { | ||
try { | ||
if (localFileExisted) { | ||
nativeBinding = require('./rusty-store-kv.win32-arm64-msvc.node') | ||
} else { | ||
nativeBinding = require('rusty-store-kv-win32-arm64-msvc') | ||
} | ||
} catch (e) { | ||
loadError = e | ||
} | ||
break | ||
default: | ||
throw new Error(`Unsupported architecture on Windows: ${arch}`) | ||
} | ||
break | ||
case 'darwin': | ||
localFileExisted = existsSync(join(__dirname, 'rusty-store-kv.darwin-universal.node')) | ||
try { | ||
if (localFileExisted) { | ||
nativeBinding = require('./rusty-store-kv.darwin-universal.node') | ||
return require('./rusty-store-kv.linux-arm-musleabihf.node') | ||
} catch (e) { | ||
loadErrors.push(e) | ||
} | ||
try { | ||
return require('rusty-store-kv-linux-arm-musleabihf') | ||
} catch (e) { | ||
loadErrors.push(e) | ||
} | ||
} else { | ||
nativeBinding = require('rusty-store-kv-darwin-universal') | ||
try { | ||
return require('./rusty-store-kv.linux-arm-gnueabihf.node') | ||
} catch (e) { | ||
loadErrors.push(e) | ||
} | ||
break | ||
} catch {} | ||
switch (arch) { | ||
case 'x64': | ||
localFileExisted = existsSync(join(__dirname, 'rusty-store-kv.darwin-x64.node')) | ||
try { | ||
return require('rusty-store-kv-linux-arm-gnueabihf') | ||
} catch (e) { | ||
loadErrors.push(e) | ||
} | ||
} | ||
} else if (process.arch === 'riscv64') { | ||
if (isMusl()) { | ||
try { | ||
if (localFileExisted) { | ||
nativeBinding = require('./rusty-store-kv.darwin-x64.node') | ||
} else { | ||
nativeBinding = require('rusty-store-kv-darwin-x64') | ||
} | ||
} catch (e) { | ||
loadError = e | ||
} | ||
break | ||
case 'arm64': | ||
localFileExisted = existsSync( | ||
join(__dirname, 'rusty-store-kv.darwin-arm64.node') | ||
) | ||
return require('./rusty-store-kv.linux-riscv64-musl.node') | ||
} catch (e) { | ||
loadErrors.push(e) | ||
} | ||
try { | ||
return require('rusty-store-kv-linux-riscv64-musl') | ||
} catch (e) { | ||
loadErrors.push(e) | ||
} | ||
} else { | ||
try { | ||
if (localFileExisted) { | ||
nativeBinding = require('./rusty-store-kv.darwin-arm64.node') | ||
} else { | ||
nativeBinding = require('rusty-store-kv-darwin-arm64') | ||
} | ||
} catch (e) { | ||
loadError = e | ||
} | ||
break | ||
default: | ||
throw new Error(`Unsupported architecture on macOS: ${arch}`) | ||
return require('./rusty-store-kv.linux-riscv64-gnu.node') | ||
} catch (e) { | ||
loadErrors.push(e) | ||
} | ||
try { | ||
return require('rusty-store-kv-linux-riscv64-gnu') | ||
} catch (e) { | ||
loadErrors.push(e) | ||
} | ||
} | ||
} else if (process.arch === 'ppc64') { | ||
try { | ||
return require('./rusty-store-kv.linux-ppc64-gnu.node') | ||
} catch (e) { | ||
loadErrors.push(e) | ||
} | ||
try { | ||
return require('rusty-store-kv-linux-ppc64-gnu') | ||
} catch (e) { | ||
loadErrors.push(e) | ||
} | ||
} else if (process.arch === 's390x') { | ||
try { | ||
return require('./rusty-store-kv.linux-s390x-gnu.node') | ||
} catch (e) { | ||
loadErrors.push(e) | ||
} | ||
try { | ||
return require('rusty-store-kv-linux-s390x-gnu') | ||
} catch (e) { | ||
loadErrors.push(e) | ||
} | ||
} else { | ||
loadErrors.push(new Error(`Unsupported architecture on Linux: ${process.arch}`)) | ||
} | ||
break | ||
case 'freebsd': | ||
if (arch !== 'x64') { | ||
throw new Error(`Unsupported architecture on FreeBSD: ${arch}`) | ||
} else { | ||
loadErrors.push(new Error(`Unsupported OS: ${process.platform}, architecture: ${process.arch}`)) | ||
} | ||
} | ||
nativeBinding = requireNative() | ||
if (!nativeBinding || process.env.NAPI_RS_FORCE_WASI) { | ||
try { | ||
nativeBinding = require('./rusty-store-kv.wasi.cjs') | ||
} catch (err) { | ||
if (process.env.NAPI_RS_FORCE_WASI) { | ||
loadErrors.push(err) | ||
} | ||
localFileExisted = existsSync(join(__dirname, 'rusty-store-kv.freebsd-x64.node')) | ||
} | ||
if (!nativeBinding) { | ||
try { | ||
if (localFileExisted) { | ||
nativeBinding = require('./rusty-store-kv.freebsd-x64.node') | ||
} else { | ||
nativeBinding = require('rusty-store-kv-freebsd-x64') | ||
nativeBinding = require('rusty-store-kv-wasm32-wasi') | ||
} catch (err) { | ||
if (process.env.NAPI_RS_FORCE_WASI) { | ||
loadErrors.push(err) | ||
} | ||
} catch (e) { | ||
loadError = e | ||
} | ||
break | ||
case 'linux': | ||
switch (arch) { | ||
case 'x64': | ||
if (isMusl()) { | ||
localFileExisted = existsSync( | ||
join(__dirname, 'rusty-store-kv.linux-x64-musl.node') | ||
) | ||
try { | ||
if (localFileExisted) { | ||
nativeBinding = require('./rusty-store-kv.linux-x64-musl.node') | ||
} else { | ||
nativeBinding = require('rusty-store-kv-linux-x64-musl') | ||
} | ||
} catch (e) { | ||
loadError = e | ||
} | ||
} else { | ||
localFileExisted = existsSync( | ||
join(__dirname, 'rusty-store-kv.linux-x64-gnu.node') | ||
) | ||
try { | ||
if (localFileExisted) { | ||
nativeBinding = require('./rusty-store-kv.linux-x64-gnu.node') | ||
} else { | ||
nativeBinding = require('rusty-store-kv-linux-x64-gnu') | ||
} | ||
} catch (e) { | ||
loadError = e | ||
} | ||
} | ||
break | ||
case 'arm64': | ||
if (isMusl()) { | ||
localFileExisted = existsSync( | ||
join(__dirname, 'rusty-store-kv.linux-arm64-musl.node') | ||
) | ||
try { | ||
if (localFileExisted) { | ||
nativeBinding = require('./rusty-store-kv.linux-arm64-musl.node') | ||
} else { | ||
nativeBinding = require('rusty-store-kv-linux-arm64-musl') | ||
} | ||
} catch (e) { | ||
loadError = e | ||
} | ||
} else { | ||
localFileExisted = existsSync( | ||
join(__dirname, 'rusty-store-kv.linux-arm64-gnu.node') | ||
) | ||
try { | ||
if (localFileExisted) { | ||
nativeBinding = require('./rusty-store-kv.linux-arm64-gnu.node') | ||
} else { | ||
nativeBinding = require('rusty-store-kv-linux-arm64-gnu') | ||
} | ||
} catch (e) { | ||
loadError = e | ||
} | ||
} | ||
break | ||
case 'arm': | ||
if (isMusl()) { | ||
localFileExisted = existsSync( | ||
join(__dirname, 'rusty-store-kv.linux-arm-musleabihf.node') | ||
) | ||
try { | ||
if (localFileExisted) { | ||
nativeBinding = require('./rusty-store-kv.linux-arm-musleabihf.node') | ||
} else { | ||
nativeBinding = require('rusty-store-kv-linux-arm-musleabihf') | ||
} | ||
} catch (e) { | ||
loadError = e | ||
} | ||
} else { | ||
localFileExisted = existsSync( | ||
join(__dirname, 'rusty-store-kv.linux-arm-gnueabihf.node') | ||
) | ||
try { | ||
if (localFileExisted) { | ||
nativeBinding = require('./rusty-store-kv.linux-arm-gnueabihf.node') | ||
} else { | ||
nativeBinding = require('rusty-store-kv-linux-arm-gnueabihf') | ||
} | ||
} catch (e) { | ||
loadError = e | ||
} | ||
} | ||
break | ||
case 'riscv64': | ||
if (isMusl()) { | ||
localFileExisted = existsSync( | ||
join(__dirname, 'rusty-store-kv.linux-riscv64-musl.node') | ||
) | ||
try { | ||
if (localFileExisted) { | ||
nativeBinding = require('./rusty-store-kv.linux-riscv64-musl.node') | ||
} else { | ||
nativeBinding = require('rusty-store-kv-linux-riscv64-musl') | ||
} | ||
} catch (e) { | ||
loadError = e | ||
} | ||
} else { | ||
localFileExisted = existsSync( | ||
join(__dirname, 'rusty-store-kv.linux-riscv64-gnu.node') | ||
) | ||
try { | ||
if (localFileExisted) { | ||
nativeBinding = require('./rusty-store-kv.linux-riscv64-gnu.node') | ||
} else { | ||
nativeBinding = require('rusty-store-kv-linux-riscv64-gnu') | ||
} | ||
} catch (e) { | ||
loadError = e | ||
} | ||
} | ||
break | ||
case 's390x': | ||
localFileExisted = existsSync( | ||
join(__dirname, 'rusty-store-kv.linux-s390x-gnu.node') | ||
) | ||
try { | ||
if (localFileExisted) { | ||
nativeBinding = require('./rusty-store-kv.linux-s390x-gnu.node') | ||
} else { | ||
nativeBinding = require('rusty-store-kv-linux-s390x-gnu') | ||
} | ||
} catch (e) { | ||
loadError = e | ||
} | ||
break | ||
default: | ||
throw new Error(`Unsupported architecture on Linux: ${arch}`) | ||
} | ||
break | ||
default: | ||
throw new Error(`Unsupported OS: ${platform}, architecture: ${arch}`) | ||
} | ||
} | ||
if (!nativeBinding) { | ||
if (loadError) { | ||
throw loadError | ||
if (loadErrors.length > 0) { | ||
// TODO Link to documentation with potential fixes | ||
// - The package owner could build/publish bindings for this arch | ||
// - The user may need to bundle the correct files | ||
// - The user may need to re-install node_modules to get new packages | ||
throw new Error('Failed to load native binding', { cause: loadErrors }) | ||
} | ||
@@ -313,7 +364,5 @@ throw new Error(`Failed to load native binding`) | ||
const { SQLite, MemoryDB, Dirty, KeyValueDB } = nativeBinding | ||
module.exports.SQLite = SQLite | ||
module.exports.MemoryDB = MemoryDB | ||
module.exports.Dirty = Dirty | ||
module.exports.KeyValueDB = KeyValueDB | ||
module.exports.Dirty = nativeBinding.Dirty | ||
module.exports.KeyValueDB = nativeBinding.KeyValueDB | ||
module.exports.MemoryDB = nativeBinding.MemoryDB | ||
module.exports.SQLite = nativeBinding.SQLite |
{ | ||
"name": "rusty-store-kv", | ||
"version": "1.3.0", | ||
"version": "1.3.1", | ||
"description": "Template project for writing node package with napi-rs", | ||
@@ -101,13 +101,13 @@ "main": "index.js", | ||
"optionalDependencies": { | ||
"rusty-store-kv-darwin-x64": "1.3.0", | ||
"rusty-store-kv-darwin-arm64": "1.3.0", | ||
"rusty-store-kv-linux-x64-gnu": "1.3.0", | ||
"rusty-store-kv-win32-x64-msvc": "1.3.0", | ||
"rusty-store-kv-linux-x64-musl": "1.3.0", | ||
"rusty-store-kv-linux-arm64-gnu": "1.3.0", | ||
"rusty-store-kv-linux-arm-gnueabihf": "1.3.0", | ||
"rusty-store-kv-freebsd-x64": "1.3.0", | ||
"rusty-store-kv-linux-arm64-musl": "1.3.0", | ||
"rusty-store-kv-win32-arm64-msvc": "1.3.0" | ||
"rusty-store-kv-darwin-x64": "1.3.1", | ||
"rusty-store-kv-darwin-arm64": "1.3.1", | ||
"rusty-store-kv-linux-x64-gnu": "1.3.1", | ||
"rusty-store-kv-win32-x64-msvc": "1.3.1", | ||
"rusty-store-kv-linux-x64-musl": "1.3.1", | ||
"rusty-store-kv-linux-arm64-gnu": "1.3.1", | ||
"rusty-store-kv-linux-arm-gnueabihf": "1.3.1", | ||
"rusty-store-kv-freebsd-x64": "1.3.1", | ||
"rusty-store-kv-linux-arm64-musl": "1.3.1", | ||
"rusty-store-kv-win32-arm64-msvc": "1.3.1" | ||
} | ||
} |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
376
14733
4