
Security News
OWASP 2025 Top 10 Adds Software Supply Chain Failures, Ranked Top Community Concern
OWASP’s 2025 Top 10 introduces Software Supply Chain Failures as a new category, reflecting rising concern over dependency and build system risks.
diving-decompression
Advanced tools
Exposes methods for defining/calculating diving decompression schedules/protocols based on the US Navy dive manual revision 7
this module is under construction, it is NOT suitable for usage in real dive operations neither commercial nor recreational, as i need to make extensive test and audit the package reliability. it is not only a matter of applying unit testing as this calculations are crucial for divers safety; also regardless of the extensive tests and trials in humans performed by the US Navy along the years with regards of decompression sickness, it has been stated many times by relevant stakeholders that these trials do not necessarily entail 100% accuracy on the results of undertaking a dive operations within the constraints of these dive tables. there is many factors that are not taken into consideration (e.g: water temperature, diver physiological fitness, unaverted PFOs... to name a few).
the main source for this module is the US Navy Diving Manual, which is the most comprehensive resource for educational and operational reference in the diving industry. you can find a copy of the 7th revision of this manual in this repository
npm i diving-decompression
first you need your dive data to be in a configuration object; if you are diving a single dive, you must specify these parameters in the configuration object:
diving-decompression exposes 3 methods compatible with this configuration object
To find the no-decompression-limit for air dives use:
import { noDecompressionLimit } from 'diving-decompression'
...
const dive = { depth: 123, bottomTime: 15 };
const ndl = noDecompressionLimit(dive);
console.log(ndl)
To find the group letter use:
import { groupLetter } from 'diving-decompression'
...
const dive = { depth: 123, bottomTime: 15 };
const gl = groupLetter(dive);
console.log(gl)
To find the decoObject use:
import { diveDeco } from 'diving-decompression'
...
const dive = { depth: 100, bottomTime: 135 };
const decoObject = diveDeco(dive);
console.log(decoObject)
this method returns an object with the following structure.
{
minTime: 101,
maxTime: 110,
ttfs: '2:20', // Total time first stop (string)
airTAT: '520:00', // in water decompression with Air Total Ascent time (string)
o2TAT: '188:20', // in water decompression with Air/O2 Total Ascent time (string)
o2cp: 5, // SurDO2 chamber periods required (number)
repetLetter: 'N/A', // Repetitive Letter (string)
surDo2Recom: true, // inWater Decompression or SurDO2 recommended (boolean)
surDo2Req: true, // Exceptional Exposure, SurDO2 Required (boolean)
strictlySurDo2: true, // Exceptional Exposure, Strictly SurDO2 (boolean)
exceptionalExposure: true, // Exceptional Exposure, inWater Deco or SurDO2 Required (boolean)
airDecoStops: [ // in Water decompression with Air Schedule
{ depth: 20, time: 433 }, // all air stops depth and time
{ depth: 30, time: 38 },
{ depth: 40, time: 25 },
{ depth: 50, time: 21 },
],
o2decoStops: [ // in water decompression with Air/O2 Schedule (O2 for the 30' and 20')
{ depth: 20, time: 105 }, // O2 stop
{ depth: 30, time: 19 }, // O2 stop
{ depth: 40, time: 25 }, // air stop
{ depth: 50, time: 21 }, // air stop
],
},
the other possible configuration object; if you are diving a repetitive dive, you must specify these parameters in the configuration object:
diving-decompression exposes 2 methods compatible with this configuration object
To find the repetitive dive letter use:
import { repetLetter } from 'diving-decompression'
...
const divePlan = {
depth: 123,
bottomTime: 15,
sit: 123,
nextDepth: 321,
};
const rl = repetLetter(divePlan);
console.log(rl)
To find the residual nitrogen time use:
import { residualNitrogenTime } from 'diving-decompression'
...
const divePlan = {
depth: 123,
bottomTime: 123,
sit: 123,
nextDepth: 123,
};
const rnt = residualNitrogenTime(divePlan);
console.log(rnt)
finish dive tables for decompression diving.
to develop a series of return objects with the specific guidelines that are relevant to the specific dive profile introduced.
to develop a series of graphical charts to represent the decompression profiles.
to develop a series of specific errors and warning objects relevant to the profile introduced.
FAQs
Exposes methods for defining/calculating diving decompression schedules/protocols based on the US Navy dive manual revision 7
The npm package diving-decompression receives a total of 1 weekly downloads. As such, diving-decompression popularity was classified as not popular.
We found that diving-decompression demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
OWASP’s 2025 Top 10 introduces Software Supply Chain Failures as a new category, reflecting rising concern over dependency and build system risks.

Research
/Security News
Socket researchers discovered nine malicious NuGet packages that use time-delayed payloads to crash applications and corrupt industrial control systems.

Security News
Socket CTO Ahmad Nassri discusses why supply chain attacks now target developer machines and what AI means for the future of enterprise security.