Safelinkify
Customized safelink url redirector. Transform and Anonymize all hyperlinks to outbound pages. Useful for SEO external links and ADS.
Demo
page | source | samples |
---|---|---|
/page/safelink.html | safelink-decode.js layout template compiler | /page/safelink.html?url=aHR0cHM6Ly… |
Installation
Bundles
registry | link | commands |
---|---|---|
npm | https://www.npmjs.com/package/safelinkify | npm i safelinkify -D |
github | https://github.com/dimaslanjaka/safelink | npm i https://github.com/dimaslanjaka/safelink -D |
tarball | https://github.com/dimaslanjaka/safelink/raw/master/release/safelinkify.tgz | npm i https://github.com/dimaslanjaka/safelink/raw/master/release/safelinkify.tgz -D |
npm
npm install safelinkify -D
yarn
yarn install safelinkify --dev
Development
git clone --single-branch --branch main https://github.com/dimaslanjaka/safelink foldername
cd foldername
yarn install # npm install
command | description |
---|---|
yarn start | serve generated docs |
yarn dev | watch and build docs |
npm run docs | build docs |
npm run build | build dist |
Usages
Setup options:
const options = {
// exclude patterns (dont anonymize these patterns)
exclude: ['domain.com', /another.domain.com/, /https?:\/\/?(?:([^*]+)\.)?webmanajemen\.com/, /([a-z0-9](?:[a-z0-9-]{1,61}[a-z0-9])?[.])*webmanajemen\.com/],
// url redirector
redirect: 'https://www.webmanajemen.com/page/safelink.html?url=',
// debug
verbose: false,
// encryption type = 'base64' | 'aes'
type: 'base64',
// password aes, default = root
password: 'unique-password'
}
Browser
script location: node_modules/safelinkify/dist/bundle.min.js
.
Call Core Script:
<script src="dist/bundle.min.js"></script>
<!--or using rawgit-->
<script src="https://raw.githack.com/dimaslanjaka/safelink/main/dist/bundle.min.js"></script>
<!--or using statically-->
<script src="https://cdn.statically.io/gh/dimaslanjaka/safelink/main/dist/bundle.min.js"></script>
Execute functions:
<script>
const sf = new safelink(options);
// automated safelinkify all hyperlinks in body
sf.parse(document.querySelector('body')).then((result)=>{
console.log(result);
// in page redirector
sf.resolveQueryUrl(window.location.href);
});
</script>
NodeJS
Reference Examples:
Import list
const { safelink } = require('safelinkify');
const { default: safelink } = require('safelinkify/dist/safelink');
Usages Example
import safelinkify from 'safelinkify';
// const safelinkify = require('safelinkify')
const sf = new safelinkify.safelink(options);
const processedExternalLinks = sf.parse(`
<a href="www.example.com/page.php?id=xxxx&name=yyyy" ....>external</a>
<a href="http://www.example.com/page.php?id=xxxx&name=yyyy" ....>external</a>
<a href="https://www.example.com/page.php?id=xxxx&name=yyyy" ....>external</a>
<a href="www.example.com/page.php/404" ....></a>
<a href="http://external.domain.com">internal</a>
<a href="http://www.webmanajemen.com">internal</a>
<a href="http://webmanajemen.com">internal</a>
<a href="#http://webmanajemen.com">#internal</a>
<a href="?http://webmanajemen.com">?internal</a>
<a href="">internal</a>
`);
processedExternalLinks.then(console.log);
/*
<a href="www.example.com/page.php?id=xxxx&name=yyyy" ....>external</a>
<a href="https://www.webmanajemen.com/page/safelink.html?url=aHR0cDovL3d3dy5leGFtcGxlLmNvbS9wYWdlLnBocD9pZD14eHh4Jm5hbWU9eXl5eQ==" ....>external</a>
<a href="https://www.webmanajemen.com/page/safelink.html?url=aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vcGFnZS5waHA/aWQ9eHh4eCZuYW1lPXl5eXk=" ....>external</a>
<a href="www.example.com/page.php/404" ....></a>
<a href="http://external.domain.com">internal</a>
<a href="http://www.webmanajemen.com">internal</a>
<a href="http://webmanajemen.com">internal</a>
<a href="#http://webmanajemen.com">#internal</a>
<a href="?http://webmanajemen.com">?internal</a>
<a href="">internal</a>
*/
Using gulp
Reference Examples:
Usages:
import gulp from 'gulp'
import sf from 'safelinkify'
import { toUnix, join } from 'upath'
import through2 from 'through2'
// folder to scan
const destDir = join(__dirname, 'build')
// scan external link to safelink from dest dir
gulp.task('safelink', () => {
const safelink = new sf.safelink({
// exclude patterns (dont anonymize these patterns)
exclude: [
/https?:\/\/?(?:([^*]+)\.)?webmanajemen\.com/,
/([a-z0-9](?:[a-z0-9-]{1,61}[a-z0-9])?[.])*webmanajemen\.com/
],
// url redirector
redirect: 'https://www.webmanajemen.com/page/safelink.html?url=',
// debug
verbose: false,
// encryption type = 'base64' | 'aes'
type: 'base64',
// password aes, default = root
password: 'unique-password'
})
return gulp
.src(['**/*.html'], {
cwd: destDir,
ignore: [
// exclude non-website and react production files
'**/tmp/**',
'**/node_modules/**',
'**/monsters/**/*',
'**/attendants/**/*',
'**/materials/**/*',
'**/scenic-spots/**/*',
'**/static/**/*'
]
})
.pipe(
through2.obj(async (file, _enc, next) => {
// drop null
if (file.isNull()) return next()
// do safelinkify
const content = String(file.contents)
const parsed = await safelink.parse(content)
if (parsed) {
file.contents = Buffer.from(parsed)
next(null, file)
} else {
console.log(
'cannot parse',
toUnix(file.path).replace(toUnix(process.cwd()), '')
)
next()
}
})
)
.pipe(gulp.dest(destDir))
})
Safelink Playground
Using QueryResolver only for redirect page
global parseQuery | typeof window.parseQuery | |
global resolveQueryUrl | typeof window.resolveQueryUrl |
Current Page Script
<script src="dist/bundle.min.js"></script>
<script>/* eslint-disable @typescript-eslint/triple-slash-reference */
/// <reference path="../../dist/index.d.ts" />
document.addEventListener('DOMContentLoaded', function () {
const table = document.querySelector('table#table');
table.querySelector('#resolveQueryUrl').innerHTML = typeof window.resolveQueryUrl;
table.querySelector('#parseQuery').innerHTML = typeof window.parseQuery;
/**
* Check if variable is ES5 class
* @param {any} f
* @returns {boolean}
*/
function isClass(f) {
return (
typeof f === 'function' &&
(() => {
try {
f();
return false;
} catch {
return true;
}
})()
);
}
const isSafelinkClass = isClass(window.safelink);
table.innerHTML += `<tr><td>global safelink</td> <td><code class="language-javascript">isClass(window.safelink)</code></td><td>is ES5 Class: ${isSafelinkClass}</td></tr>`;
table.innerHTML += `<tr><td>global safelink</td> <td><code class="language-javascript">typeof window.safelink</code></td><td>${typeof window.safelink}</td></tr>`;
if (isSafelinkClass) {
const instance = new window.safelink({
// exclude patterns (dont anonymize these patterns)
exclude: [/([a-z0-9](?:[a-z0-9-]{1,61}[a-z0-9])?[.])*webmanajemen\.com/],
// url redirector
redirect: 'https://www.webmanajemen.com/page/safelink.html?url=',
// debug
verbose: false,
// encryption type = 'base64' | 'aes'
type: 'base64',
// password aes, default = root
password: 'unique-password'
});
instance.parse(document.querySelector('div#external'));
instance.parse(document.querySelector('div#internal'));
const currentQuery = JSON.stringify(instance.resolveQueryUrl(location.href), null, 2);
table.innerHTML += `<tr id="current-queries"><td>Redirector Resolver <a href="#query-url" class="btn btn-sm btn-warning">Change</a></td> <td><code>window.safelink.resolveQueryUrl(location.href)</code></td><td><pre><code class="language-json">${currentQuery}</code></pre></td></tr>`;
const param = new URLSearchParams(window.location.search);
if (param.has('o') || param.has('url') || location.href.match(/#(o|url)=/)) {
document.getElementById('current-queries').scrollIntoView();
}
}
Array.from(document.links).forEach((el) => {
if (!el.innerHTML.length) {
el.textContent = el.getAttribute('href');
el.addEventListener('click', (e) => {
e.preventDefault();
window.location.href = el.href;
if (el.href.match(/#(o|url)=/)) location.reload();
});
}
});
});
</script>
CHANGELOG of safelinkify
1.0.0
- initial commit
1.0.1
- fix aes
1.0.2
- fix object encyrption result
1.0.3
- add password aes option
1.0.5 - 1.0.6
- remove useless dependencies
- detach private script
- add object redirect url to result query parser
1.0.7
- fix query string resolver
1.0.8 - 1.0.9
- fix process on nodejs
1.1.0
- fix main file js
1.1.1
- fix process on nodejs read from file
1.1.2
- fix same link when included as other element (non-hyperlink)
1.1.3
- Compile to ES5
1.1.4
parse
now asyncparse
always return string- add more docs for easy development
- add
tsconfig.build.json
excluding test files - [ 2022-10-17 01:49:39 ] 3cafc9d Update README.md
- [ 2022-10-17 01:55:33 ] 5298e34 Update CHANGELOG.md
- [ 2022-10-17 01:58:21 ] 2974c3a update docs
- [ 2022-10-26 09:03:33 ] d50f681 update dependencies
1.1.5
- [ 2022-11-09 16:30:14 ] b5b6896 add OR
- [ 2022-11-09 16:31:28 ] ae6fca5 add null validation
- [ 2022-11-09 16:32:08 ] 6011523 Update safelink.yml
- [ 2022-11-09 16:33:27 ] 61c0d03 Using npm
- [ 2022-11-09 16:37:43 ] ecc409f add commits
- [ 2022-11-09 16:38:18 ] abd46eb update build
- [ 2022-11-09 16:53:11 ] d63681d Update safelink.yml
- [ 2022-11-09 16:53:44 ] 5acfae9 Update safelink.yml
- [ 2022-11-09 16:54:14 ] 96ba98c Update safelink.yml
- [ 2022-11-09 16:59:58 ] 600ae45 Update safelink.yml
- [ 2022-11-09 17:06:39 ] 4c865fe update build
1.1.6
- [ 2022-11-20 11:38:32 ] 7bc960f Update README.md
- [ 2022-11-20 11:41:15 ] 8d3c848 Update README.md
- [ 2022-12-21 10:12:29 ] 694c87c update deps and scripts
- [ 2022-12-21 10:13:04 ] 377a912 move and export all types from/to globals
- [ 2022-12-21 10:13:30 ] 7405a4b Update
- [ 2022-12-21 10:14:48 ] 9051509 Update README.md
- [ 2022-12-21 10:16:11 ] 3faabe5 Update README.md
- [ 2022-12-21 10:16:56 ] 98d00d5 push release too
1.1.7
- [ 2022-12-21 10:18:48 ] 9d5848d Update docs
- [ 2022-12-21 03:21:46 ] bbf14f7 Build Wed Dec 21 03:21:46 UTC 2022
- [ 2022-12-21 10:23:57 ] 13adeeb move types to globals
- [ 2022-12-21 10:26:37 ] 71d007e Merge branch ‘master’ of https://github.com/dimaslanjaka/safelink
1.1.8
- [ 2022-12-21 03:29:08 ] efe5f39 Build Wed Dec 21 03:29:08 UTC 2022
- [ 2022-12-21 11:48:28 ] 7fcb525 add changelog builder
- [ 2022-12-21 11:49:39 ] f77bf91 Merge branch ‘master’ of https://github.com/dimaslanjaka/safelink
- [ 2022-12-21 04:50:57 ] c6f6d10 Build Wed Dec 21 04:50:57 UTC 2022
- [ 2022-12-21 11:53:31 ] 62ab8f2 Update changelog
- [ 2022-12-21 12:02:39 ] 20064ec Update docs and changelog
- [ 2022-12-21 12:02:48 ] 6b571ce Merge branch ‘master’ of https://github.com/dimaslanjaka/safelink
- [ 2022-12-21 05:03:53 ] 987061a Build Wed Dec 21 05:03:53 UTC 2022
- [ 2022-12-21 12:06:25 ] 6323d22 Update docs
- [ 2022-12-21 12:06:31 ] 4e0e5b7 Merge branch ‘master’ of https://github.com/dimaslanjaka/safelink
- [ 2022-12-21 05:07:42 ] 2335f6b Build Wed Dec 21 05:07:42 UTC 2022
- [ 2022-12-21 12:27:37 ] fe68ba9 Update docs
- [ 2022-12-21 12:48:00 ] 2a3ea1a using customized package cross-spawn
- [ 2022-12-21 12:48:07 ] 38eee66 Merge branch ‘master’ of https://github.com/dimaslanjaka/safelink
- [ 2022-12-21 13:10:23 ] 534a6e6 Update docs
- [ 2022-12-21 06:11:40 ] 437e3ba Build Wed Dec 21 06:11:40 UTC 2022
- [ 2022-12-21 13:17:22 ] fd76b3b Update docs
- [ 2022-12-21 13:19:47 ] 858ead5 Update build
1.1.9
- [ 2022-12-21 13:21:59 ] 5422f9f Merge branch ‘master’ of https://github.com/dimaslanjaka/safelink
- [ 2022-12-21 06:23:16 ] 34980a9 Build Wed Dec 21 06:23:16 UTC 2022
- [ 2022-12-26 12:35:58 ] 5253b1d declare to global scope
safelink
andsafelinkify
- [ 2022-12-26 05:37:11 ] 64542d5 Build Mon Dec 26 05:37:11 UTC 2022
- [ 2022-12-26 12:55:41 ] 050a356 export safelink and safelinkify to global scrope - update docs
- [ 2022-12-26 12:55:50 ] 28be9cc export safelink and safelinkify to global scrope - update docs
- [ 2022-12-26 12:57:09 ] e41b97a Merge branch ‘master’ of https://github.com/dimaslanjaka/safelink
1.1.10
- [ 2022-12-26 12:58:46 ] 5c7522e update changelog
- [ 2022-12-26 05:59:54 ] b2c344c Build Mon Dec 26 05:59:54 UTC 2022
- [ 2022-12-26 13:02:29 ] 074689d rename
README.md
to lowercase - [ 2022-12-26 13:02:38 ] 997b116 Merge branch ‘master’ of https://github.com/dimaslanjaka/safelink
- [ 2022-12-26 06:03:46 ] 7a8591f Build Mon Dec 26 06:03:46 UTC 2022
- [ 2022-12-26 13:13:41 ] c3d4870 Update script.js
- [ 2022-12-27 18:13:26 ] f6eadd8 update scripts
- [ 2022-12-27 11:14:25 ] 80ec2fb Build Tue Dec 27 11:14:25 UTC 2022
- [ 2022-12-28 03:17:12 ] 32d231a Update readme.md
- [ 2022-12-27 20:18:29 ] cb13551 Build Tue Dec 27 20:18:29 UTC 2022
- [ 2022-12-28 03:23:55 ] e7ef4a8 update deps
- [ 2022-12-28 03:25:15 ] b7b2260 Update readme.md
- [ 2022-12-27 20:25:32 ] dec138a Update build from https://github.com/dimaslanjaka/safelink/commit/e7ef4a8f1d7e97ec34d7ce41d0d469923bafb80d
- [ 2022-12-28 03:29:52 ] 311f600 Update readme.md
- [ 2022-12-27 20:31:12 ] e2ca426 Update build from https://github.com/dimaslanjaka/safelink/commit/311f600c3b1070cb25abf40053a7e191dc10a4f7
- [ 2022-12-28 03:31:19 ] 1cd8dca Update readme.md
- [ 2022-12-27 20:32:50 ] 0555283 Update build from https://github.com/dimaslanjaka/safelink/commit/1cd8dca84c8753c1ccd7be96bc74253f18daa8e7
- [ 2022-12-28 03:33:15 ] 9aef05f Update readme.md
- [ 2022-12-28 03:33:41 ] fabe245 Update readme.md
- [ 2022-12-28 03:34:49 ] b32220a Update readme.md
- [ 2022-12-28 03:35:18 ] 103c90c Update readme.md
- [ 2022-12-27 20:35:31 ] 4d3107e Update build from https://github.com/dimaslanjaka/safelink/commit/9aef05feff13da3a26818c382b4676ae57efeaa5
- [ 2022-12-28 03:47:23 ] 1abb55d update changelog
- [ 2022-12-28 03:49:27 ] 1861105 update deps
- [ 2022-12-28 03:50:28 ] f33f6b5 update deps
- [ 2022-12-27 20:51:59 ] 7d892e3 Update build from https://github.com/dimaslanjaka/safelink/commit/f33f6b5bd3ad7b24a11c4a7b4f011707bcc2e2e5
- [ 2022-12-28 13:29:54 ] b45016f Update readme.md
- [ 2022-12-28 13:30:38 ] 0802620 Update readme.md
- [ 2022-12-28 06:31:03 ] f19abce Update build from https://github.com/dimaslanjaka/safelink/commit/b45016fcc6037b8cc931d3a082afd336a6ca7b0c
- [ 2022-12-28 13:36:54 ] b8061cc Update readme.md
- [ 2022-12-28 06:38:08 ] 355e7c7 Update build from https://github.com/dimaslanjaka/safelink/commit/b8061cccafebde2f9be0541d544c15b302ff3641
- [ 2022-12-28 13:38:17 ] f2a41d7 Update readme.md
- [ 2022-12-28 06:39:40 ] 92c5877 Update build from https://github.com/dimaslanjaka/safelink/commit/f2a41d7bcc5e0242f9ae68a6523ba0f769672a8b
- [ 2022-12-29 12:27:34 ] c07e62c add lib dom
- [ 2022-12-29 05:29:14 ] def651b Update build from https://github.com/dimaslanjaka/safelink/commit/c07e62c6634acbd7caad623731396deb6261b510
- [ 2022-12-29 12:32:54 ] 491a749 rename lib.dom.d.ts
- [ 2022-12-29 12:51:38 ] c3da040 rename lib.dom.d.ts
- [ 2022-12-29 12:54:17 ] 5ee8731 Merge branch ‘master’ of https://github.com/dimaslanjaka/safelink
- [ 2022-12-29 05:55:41 ] 7abfee3 Update build from https://github.com/dimaslanjaka/safelink/commit/5ee8731f2a7d81bc3d7061e5cf4bfcabd3c41421
- [ 2022-12-29 12:58:33 ] d18f2a0 update docs
- [ 2022-12-29 12:58:46 ] 3e2558e Merge branch ‘master’ of https://github.com/dimaslanjaka/safelink
- [ 2022-12-29 06:00:15 ] c28064c Update build from https://github.com/dimaslanjaka/safelink/commit/3e2558e521f23f2493f8c7a850646094130f6ef8
- [ 2022-12-29 13:12:04 ] c27ea0e using my global typedocs
- [ 2022-12-29 13:12:13 ] bf296b8 Merge branch ‘master’ of https://github.com/dimaslanjaka/safelink
- [ 2022-12-29 06:13:44 ] c0bf9ee Update build from https://github.com/dimaslanjaka/safelink/commit/bf296b85631b7a209acf2c7917385c136035e41a
- [ 2022-12-29 13:17:02 ] f5863f5 migrate to our global docs
- [ 2022-12-29 13:17:45 ] e97a8b7 Merge branch ‘master’ of https://github.com/dimaslanjaka/safelink
- [ 2022-12-29 13:18:14 ] 794a2bc update scripts
- [ 2022-12-29 13:18:50 ] 44e4511 fix merge conflict
- [ 2022-12-29 13:19:35 ] 4b07f7e fix merge conflict
- [ 2022-12-29 13:20:20 ] 6d5a019 update nodemon config
- [ 2022-12-29 13:20:54 ] 5ffe197 update nodemon config
- [ 2022-12-29 13:21:35 ] b977366 Merge branch ‘master’ of https://github.com/dimaslanjaka/safelink
- [ 2022-12-29 13:22:24 ] a7c9192 fix merge conflict
- [ 2022-12-29 06:23:04 ] d915ef4 Update build from https://github.com/dimaslanjaka/safelink/commit/4b07f7e1b938eca697e66de5aa702e4bdaa16e23
- [ 2022-12-29 13:24:13 ] 1a57b56 Merge branch ‘master’ of https://github.com/dimaslanjaka/safelink
- [ 2022-12-29 13:26:33 ] 1cdf7ae add exclusion
- [ 2022-12-29 13:49:19 ] 0e1783a update project references
- [ 2022-12-29 13:51:21 ] 1003259 update
- [ 2022-12-29 13:53:29 ] 5fb4928 update callback
- [ 2022-12-29 13:58:33 ] dd725d1 index.ts rename to serve.ts
- [ 2022-12-29 14:11:24 ] 1d955d5 re-init eslint
- [ 2022-12-29 14:14:37 ] 461a369 using typedoc api than cli
- [ 2022-12-29 14:17:34 ] 5f51f56 fix spawn import conflict
- [ 2022-12-29 14:26:39 ] dab2911 update postbuild
- [ 2022-12-29 14:54:20 ] d56dc9a update deps, docs builder
- [ 2022-12-29 15:00:59 ] 5c41e15 fix miss-configured paths
- [ 2022-12-29 15:25:28 ] a6dce30 builder using javascript instead typescript
- [ 2022-12-29 15:38:35 ] e19a0fd update docs builder
- [ 2022-12-29 15:40:30 ] 02f864c run changelog.js first
- [ 2022-12-29 08:42:25 ] ea0cc14 Update build from https://github.com/dimaslanjaka/safelink/commit/02f864cb590bb1efac455ed45188c18188468657
- [ 2022-12-29 15:45:27 ] 1e2f289 update test
- [ 2022-12-29 15:45:37 ] 09cdff0 Merge branch ‘master’ of https://github.com/dimaslanjaka/safelink
- [ 2022-12-29 15:45:44 ] c2f2739 update changelog
- [ 2022-12-29 08:46:45 ] 85f390b Update build from https://github.com/dimaslanjaka/safelink/commit/09cdff0a38d6f195b79f8c19fbb7d8503afcb205
- [ 2022-12-29 15:50:13 ] 84bee86 update docs
- [ 2022-12-29 15:50:19 ] 9a5ca6c Merge branch ‘master’ of https://github.com/dimaslanjaka/safelink
- [ 2022-12-29 08:51:50 ] 2876fe6 Update build from https://github.com/dimaslanjaka/safelink/commit/9a5ca6c30c150892a9b7452a493ee10003301db1
- [ 2022-12-29 15:52:43 ] d1e2841 update project docs
- [ 2022-12-29 15:52:50 ] 6115c07 Merge branch ‘master’ of https://github.com/dimaslanjaka/safelink
- [ 2022-12-29 15:55:28 ] f21956f fix infinite loop
- [ 2022-12-29 08:57:34 ] df7c9f5 Update build from https://github.com/dimaslanjaka/safelink/commit/6115c07fb446a9c8905139ac13b25e5f92aa3628
- [ 2022-12-29 15:57:41 ] 1e51695 update build
- [ 2022-12-29 15:57:48 ] 7b8f7cb Merge branch ‘master’ of https://github.com/dimaslanjaka/safelink
- [ 2022-12-29 16:00:20 ] 2bbb5ac update deps
1.1.11
- [ 2022-12-29 09:02:44 ] 59d2722 Update build from https://github.com/dimaslanjaka/safelink/commit/606f0e2b75cfa87d5edaecb3a22ebd8f528e29e0
- [ 2022-12-29 16:06:22 ] 24d1142 update task
- [ 2022-12-29 16:32:31 ] 2fde010 update docs
- [ 2022-12-29 16:32:37 ] 648f463 Merge branch ‘master’ of https://github.com/dimaslanjaka/safelink
- [ 2022-12-29 09:33:58 ] d59a54b Update build from https://github.com/dimaslanjaka/safelink/commit/648f463fae1d00cdec9cfa3fd9e15786579c65ef
- [ 2022-12-29 16:40:29 ] 90de175 update typedoc
- [ 2022-12-29 16:43:18 ] b8b3363 update typedocs
- [ 2022-12-29 09:45:12 ] c166c89 Update build from https://github.com/dimaslanjaka/safelink/commit/b8b33633c17b8549370c9a7cce8441f49eb50048
- [ 2022-12-29 16:45:17 ] c3333a8 rename
tests
tosrc-docs
- [ 2022-12-29 16:45:30 ] 12645d3 Merge branch ‘master’ of https://github.com/dimaslanjaka/safelink
- [ 2022-12-29 09:48:25 ] 9c9976e Update build from https://github.com/dimaslanjaka/safelink/commit/12645d3f7f90090ca0a568a05d5b18993049876b
- [ 2022-12-29 16:53:59 ] 7920b72 update deps
- [ 2022-12-29 16:54:17 ] c286200 Merge branch ‘master’ of https://github.com/dimaslanjaka/safelink
- [ 2022-12-29 16:57:21 ] e7c87fe update deps
- [ 2022-12-29 09:59:13 ] 08c916d Update build from https://github.com/dimaslanjaka/safelink/commit/e7c87fec1e29619ac9bb4fccc6dc8398da27b214
- [ 2022-12-29 17:00:39 ] f8ee756 update
- [ 2022-12-29 17:00:49 ] 55e93a0 Merge branch ‘master’ of https://github.com/dimaslanjaka/safelink
- [ 2022-12-29 10:01:54 ] e275ec6 Update build from https://github.com/dimaslanjaka/safelink/commit/55e93a03b213adfc3cf4795b5a3d5d05f8306237
- [ 2022-12-29 17:16:19 ] 7954fb6 update
- [ 2022-12-29 17:16:29 ] d5e1c1a Merge branch ‘master’ of https://github.com/dimaslanjaka/safelink
- [ 2022-12-29 10:17:48 ] 8bfd1c2 Update build from https://github.com/dimaslanjaka/safelink/commit/d5e1c1a51b24129bc1a552e1e2f1db6cd2b2ea5d
- [ 2022-12-29 18:24:59 ] dcb3e45 update deps
- [ 2022-12-29 18:25:03 ] 36d1899 Merge branch ‘master’ of https://github.com/dimaslanjaka/safelink
- [ 2022-12-29 11:26:18 ] edb25f8 Update build from https://github.com/dimaslanjaka/safelink/commit/36d1899f9917bc98feb719804575f9bab61bf236
- [ 2022-12-31 20:25:39 ] 4614820 Update postinstall.js
- [ 2022-12-31 13:27:00 ] e4a5b3f Update build from https://github.com/dimaslanjaka/safelink/commit/46148200d7cbd78fe6667ceb5c814e4300d55e4d
- [ 2022-12-31 21:02:21 ] 1027a10 Update .prettierrc.json
- [ 2022-12-31 22:31:37 ] 055d6d7 prepare update 1.1.12
1.1.12
- [ 2022-12-31 22:32:28 ] fb5d010 1.1.12
- [ 2022-12-31 22:38:09 ] 8eeda8a update deps
- [ 2022-12-31 15:52:24 ] 355400a Update build from https://github.com/dimaslanjaka/safelink/commit/8eeda8a9e291e59c79aebc905881a7984485e9c4
- [ 2022-12-31 23:08:30 ] ff2e631 update deps
1.1.13
- all commits truncated here
1.2.1
- fix(
safelink.parse()
) null validation - deprecate namespace
safelinkify
- add global
window.safelink
- add global
window.resolveQueryUrl
- add global
window.parseQuery