scrt-link-core

Core for scrt.link - a tool to securely share sensitive information online.

Usage no npm install needed!

<script type="module">
  import scrtLinkCore from 'https://cdn.skypack.dev/scrt-link-core';
</script>

README

scrt-link-core

scrt.link lets you share sensitive information online. End-to-end encrypted. One time.

This package allows you to use the service programmatically. Use it whenever you need to share a secret.

Installation

yarn add scrt-link-core

Usage

The examples are based on the assumption that you use scrt.link as your backend - however, you may use this package with your own backend. Check the scrt-link repository for a reference implementation.

Basic example

import { createSecret } from 'scrt-link-core'

const { secretLink } = await createSecret('Some confidential information…')
// https://scrt.link/l/CWmbcLtxzFRad8JJ#ReCMTkJkAtUqFF9ydBAWdYaz

With options

import { createSecret } from "scrt-link-core";

const { secretLink, alias, encryptionKey } = await createSecret("Some confidential information…", {
  password: "some-passphrase",
  secretType: "neogram", // "text" | "url" | "neogram"
  neogramDestructionMessage: "This messages self-destructs in…"
  neogramDestructionTimeout: 10;
}
});
/*
alias:  CWmbcLtxzFRad8JJ
encryptionKey: ReCMTkJkAtUqFF9ydBAWdYaz
secretLink:  https://scrt.link/l/CWmbcLtxzFRad8JJ#ReCMTkJkAtUqFF9ydBAWdYaz
/*

Find out about the various secret types and options on scrt.link - the website's code is open source and available here.

Retrieve secret

It's recommended to just use generated link. However, there is a helper function if you need a custom solution. The function expects the alias and the encryption key.

import { retrieveSecret } from "scrt-link-core";

const { message } = await retrieveSecret("CWmbcLtxzFRad8JJ", "ReCMTkJkAtUqFF9ydBAWdYaz")
});
// message: Some confidential information…

Instant usage 💥

There are pre-built packages to use right away. I recommend Skypack, but you can find it on other CDNs like jsDelivr, cdnjs, unpkg.com.

Via ES Module import

<script type="module">
  import { createSecret } from 'https://cdn.skypack.dev/scrt-link-core'

  // Use as described above…
  createSecret('Some confidential information…').then(({ secretLink }) => {})
</script>

Full demo

Via script tag

<html>
  <head>
    <!-- Load script via CDN -->
    <script src="https://unpkg.com/scrt-link-core@latest/dist/esbuild/browser.js"></script>
  </head>

  <body>
    <script>
      // Functions are available on the window object
      window.createSecret('Some confidential information…').then(({ secretLink }) => {
        console.log(`Success! Your secret link is: ${secretLink}`)
      })
    </script>
  </body>
</html>

Full demo

Documentation

Documentation

Credits

Boilerplate: https://github.com/metachris/typescript-boilerplate by Chris Hager