Assert expression support that protects sensitive data

Usage no npm install needed!

<script type="module">
  import agoricAssert from 'https://cdn.skypack.dev/@agoric/assert';



An assertion library that keeps sensitive data outside of the Error.

Throw (using provided error message) if expression is false. Assert that expr is truthy, with an optional details to describe the assertion. It is a tagged template literal like

assert(expr, details`....`);

If expr is falsy, then the template contents are reported to the console and also in a thrown error.

The literal portions of the template are assumed non-sensitive, as are the typeof types of the substitution values. These are assembled into the thrown error message. The actual contents of the substitution values are assumed sensitive, to be revealed to the console only. We assume only the virtual platform's owner can read what is written to the console, where the owner is in a privileged position over computation running on that platform.

The optional details can be a string for backwards compatibility with the nodejs assertion library.