1
0
mirror of https://github.com/covidpass-org/covidpass.git synced 2025-02-23 06:57:40 +01:00

working version 0.1

This commit is contained in:
Billy Lo 2021-08-26 00:15:12 -04:00
parent 0d5bfd9203
commit 3f3ed17d50
12 changed files with 872 additions and 596 deletions

View File

@ -9,7 +9,7 @@ import Card from "./Card";
import Alert from "./Alert";
import Check from './Check';
import {PayloadBody} from "../src/payload";
import {getPayloadBodyFromFile, getPayloadBodyFromQR} from "../src/process";
import {getPayloadBodyFromFile} from "../src/process";
import {PassData} from "../src/pass";
import {COLORS} from "../src/colors";
import Colors from './Colors';
@ -221,11 +221,11 @@ function Form(): JSX.Element {
<div className="space-y-5">
<p>
{t('index:dataPrivacyDescription')}
<Link href="/privacy">
{/* <Link href="/privacy">
<a>
{t('index:privacyPolicy')}
</a>
</Link>.
</Link>. */}
</p>
<div>
<ul className="list-none">

668
package-lock.json generated
View File

@ -21,9 +21,9 @@
"next-i18next": "^8.5.1",
"next-seo": "^4.26.0",
"node-fetch": "^2.6.1",
"pdf2json": "^1.2.1",
"pdfjs-dist": "^2.5.207",
"pngjs": "^6.0.0",
"qrcode": "^1.4.4",
"react": "^17.0.2",
"react-dom": "^17.0.2",
"tls": "^0.0.1",
@ -902,6 +902,25 @@
"ieee754": "^1.1.4"
}
},
"node_modules/buffer-alloc": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz",
"integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==",
"dependencies": {
"buffer-alloc-unsafe": "^1.1.0",
"buffer-fill": "^1.0.0"
}
},
"node_modules/buffer-alloc-unsafe": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz",
"integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg=="
},
"node_modules/buffer-fill": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz",
"integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw="
},
"node_modules/buffer-from": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
@ -946,6 +965,14 @@
"node": ">=6"
}
},
"node_modules/camelcase": {
"version": "5.3.1",
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
"integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
"engines": {
"node": ">=6"
}
},
"node_modules/camelcase-css": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz",
@ -1024,6 +1051,35 @@
"resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz",
"integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q=="
},
"node_modules/cliui": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz",
"integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==",
"dependencies": {
"string-width": "^3.1.0",
"strip-ansi": "^5.2.0",
"wrap-ansi": "^5.1.0"
}
},
"node_modules/cliui/node_modules/ansi-regex": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
"integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
"engines": {
"node": ">=6"
}
},
"node_modules/cliui/node_modules/strip-ansi": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
"integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
"dependencies": {
"ansi-regex": "^4.1.0"
},
"engines": {
"node": ">=6"
}
},
"node_modules/color": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/color/-/color-3.1.3.tgz",
@ -1262,6 +1318,14 @@
"ms": "2.0.0"
}
},
"node_modules/decamelize": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
"integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/define-properties": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
@ -1334,6 +1398,11 @@
"resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
"integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
},
"node_modules/dijkstrajs": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/dijkstrajs/-/dijkstrajs-1.0.2.tgz",
"integrity": "sha512-QV6PMaHTCNmKSeP6QoXhVTw9snc9VD8MulTT0Bd99Pacp4SS1cjcrYPgBPmibqKVtMJJfqC6XvOXgPMEEPH/fg=="
},
"node_modules/dlv": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz",
@ -1380,6 +1449,11 @@
"resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
"integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
},
"node_modules/emoji-regex": {
"version": "7.0.3",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
"integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA=="
},
"node_modules/emojis-list": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz",
@ -1695,6 +1769,14 @@
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
"integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
},
"node_modules/get-caller-file": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
"integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
"engines": {
"node": "6.* || 8.* || >= 10.*"
}
},
"node_modules/get-intrinsic": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz",
@ -2101,6 +2183,14 @@
"node": ">=0.10.0"
}
},
"node_modules/is-fullwidth-code-point": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
"integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
"engines": {
"node": ">=4"
}
},
"node_modules/is-generator-function": {
"version": "1.0.9",
"resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.9.tgz",
@ -3130,83 +3220,6 @@
"node": ">=0.12"
}
},
"node_modules/pdf2json": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/pdf2json/-/pdf2json-1.2.1.tgz",
"integrity": "sha512-Ihda4iOiiINYRwvdpHFHBFrRc/vT+w10Kc3o2meOB0HSPDEVMrb+X+V5oUOawipqNT/aI3dazSicwNyJzDLPaQ==",
"bundleDependencies": [
"xmldom",
"lodash",
"optimist",
"async",
"minimist",
"wordwrap"
],
"dependencies": {
"async": "^3.2.0",
"lodash": "^4.17.20",
"optimist": "^0.6.1",
"xmldom": "^0.5.0"
},
"bin": {
"pdf2json": "bin/pdf2json"
},
"engines": {
"node": ">=10.15.1"
}
},
"node_modules/pdf2json/node_modules/async": {
"version": "3.2.0",
"resolved": "https://artifact.devsnc.com/content/groups/npm-all/async/-/async-3.2.0.tgz",
"integrity": "sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==",
"inBundle": true,
"license": "MIT"
},
"node_modules/pdf2json/node_modules/lodash": {
"version": "4.17.15",
"resolved": "https://artifact.devsnc.com/content/groups/npm-all/lodash/-/lodash-4.17.15.tgz",
"integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==",
"inBundle": true,
"license": "MIT"
},
"node_modules/pdf2json/node_modules/minimist": {
"version": "0.0.10",
"resolved": "https://artifact.devsnc.com/content/groups/npm-all/minimist/-/minimist-0.0.10.tgz",
"integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=",
"inBundle": true,
"license": "MIT"
},
"node_modules/pdf2json/node_modules/optimist": {
"version": "0.6.1",
"resolved": "https://artifact.devsnc.com/content/groups/npm-all/optimist/-/optimist-0.6.1.tgz",
"integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=",
"inBundle": true,
"license": "MIT/X11",
"dependencies": {
"minimist": "~0.0.1",
"wordwrap": "~0.0.2"
}
},
"node_modules/pdf2json/node_modules/wordwrap": {
"version": "0.0.3",
"resolved": "https://artifact.devsnc.com/content/groups/npm-all/wordwrap/-/wordwrap-0.0.3.tgz",
"integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=",
"inBundle": true,
"license": "MIT",
"engines": {
"node": ">=0.4.0"
}
},
"node_modules/pdf2json/node_modules/xmldom": {
"version": "0.3.0",
"resolved": "https://artifact.devsnc.com/content/groups/npm-all/xmldom/-/xmldom-0.3.0.tgz",
"integrity": "sha512-z9s6k3wxE+aZHgXYxSTpGDo7BYOUfJsIRyoZiX6HTjwpwfS2wpQBQKa2fD+ShLyPkqDYo5ud7KitmLZ2Cd6r0g==",
"inBundle": true,
"license": "(LGPL-2.0 OR MIT)",
"engines": {
"node": ">=10.0.0"
}
},
"node_modules/pdfjs-dist": {
"version": "2.9.359",
"resolved": "https://registry.npmjs.org/pdfjs-dist/-/pdfjs-dist-2.9.359.tgz",
@ -3434,6 +3447,39 @@
"purgecss": "bin/purgecss.js"
}
},
"node_modules/qrcode": {
"version": "1.4.4",
"resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.4.4.tgz",
"integrity": "sha512-oLzEC5+NKFou9P0bMj5+v6Z40evexeE29Z9cummZXZ9QXyMr3lphkURzxjXgPJC5azpxcshoDWV1xE46z+/c3Q==",
"dependencies": {
"buffer": "^5.4.3",
"buffer-alloc": "^1.2.0",
"buffer-from": "^1.1.1",
"dijkstrajs": "^1.0.1",
"isarray": "^2.0.1",
"pngjs": "^3.3.0",
"yargs": "^13.2.4"
},
"bin": {
"qrcode": "bin/qrcode"
},
"engines": {
"node": ">=4"
}
},
"node_modules/qrcode/node_modules/isarray": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
"integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw=="
},
"node_modules/qrcode/node_modules/pngjs": {
"version": "3.4.0",
"resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz",
"integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==",
"engines": {
"node": ">=4.0.0"
}
},
"node_modules/querystring": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.1.tgz",
@ -3640,6 +3686,19 @@
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz",
"integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew=="
},
"node_modules/require-directory": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
"integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/require-main-filename": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
"integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg=="
},
"node_modules/resolve": {
"version": "1.20.0",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz",
@ -3785,6 +3844,11 @@
"randombytes": "^2.1.0"
}
},
"node_modules/set-blocking": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
"integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc="
},
"node_modules/setimmediate": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
@ -3928,6 +3992,38 @@
"resolved": "https://registry.npmjs.org/string-hash/-/string-hash-1.1.3.tgz",
"integrity": "sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs="
},
"node_modules/string-width": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
"integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
"dependencies": {
"emoji-regex": "^7.0.1",
"is-fullwidth-code-point": "^2.0.0",
"strip-ansi": "^5.1.0"
},
"engines": {
"node": ">=6"
}
},
"node_modules/string-width/node_modules/ansi-regex": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
"integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
"engines": {
"node": ">=6"
}
},
"node_modules/string-width/node_modules/strip-ansi": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
"integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
"dependencies": {
"ansi-regex": "^4.1.0"
},
"engines": {
"node": ">=6"
}
},
"node_modules/string.prototype.trimend": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz",
@ -4666,6 +4762,11 @@
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/which-module": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
"integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho="
},
"node_modules/which-typed-array": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.4.tgz",
@ -4740,6 +4841,38 @@
"node": ">=8.9.0"
}
},
"node_modules/wrap-ansi": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
"integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==",
"dependencies": {
"ansi-styles": "^3.2.0",
"string-width": "^3.0.0",
"strip-ansi": "^5.0.0"
},
"engines": {
"node": ">=6"
}
},
"node_modules/wrap-ansi/node_modules/ansi-regex": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
"integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
"engines": {
"node": ">=6"
}
},
"node_modules/wrap-ansi/node_modules/strip-ansi": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
"integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
"dependencies": {
"ansi-regex": "^4.1.0"
},
"engines": {
"node": ">=6"
}
},
"node_modules/wrappy": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
@ -4754,6 +4887,11 @@
"node": ">=0.4"
}
},
"node_modules/y18n": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz",
"integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ=="
},
"node_modules/yaml": {
"version": "1.10.2",
"resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
@ -4763,6 +4901,88 @@
"node": ">= 6"
}
},
"node_modules/yargs": {
"version": "13.3.2",
"resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz",
"integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==",
"dependencies": {
"cliui": "^5.0.0",
"find-up": "^3.0.0",
"get-caller-file": "^2.0.1",
"require-directory": "^2.1.1",
"require-main-filename": "^2.0.0",
"set-blocking": "^2.0.0",
"string-width": "^3.0.0",
"which-module": "^2.0.0",
"y18n": "^4.0.0",
"yargs-parser": "^13.1.2"
}
},
"node_modules/yargs-parser": {
"version": "13.1.2",
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz",
"integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==",
"dependencies": {
"camelcase": "^5.0.0",
"decamelize": "^1.2.0"
}
},
"node_modules/yargs/node_modules/find-up": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
"integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
"dependencies": {
"locate-path": "^3.0.0"
},
"engines": {
"node": ">=6"
}
},
"node_modules/yargs/node_modules/locate-path": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
"integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
"dependencies": {
"p-locate": "^3.0.0",
"path-exists": "^3.0.0"
},
"engines": {
"node": ">=6"
}
},
"node_modules/yargs/node_modules/p-limit": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
"integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
"dependencies": {
"p-try": "^2.0.0"
},
"engines": {
"node": ">=6"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/yargs/node_modules/p-locate": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
"integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
"dependencies": {
"p-limit": "^2.0.0"
},
"engines": {
"node": ">=6"
}
},
"node_modules/yargs/node_modules/path-exists": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
"integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
"engines": {
"node": ">=4"
}
},
"node_modules/yocto-queue": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
@ -5496,6 +5716,25 @@
"ieee754": "^1.1.4"
}
},
"buffer-alloc": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz",
"integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==",
"requires": {
"buffer-alloc-unsafe": "^1.1.0",
"buffer-fill": "^1.0.0"
}
},
"buffer-alloc-unsafe": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz",
"integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg=="
},
"buffer-fill": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz",
"integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw="
},
"buffer-from": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
@ -5531,6 +5770,11 @@
"integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
"dev": true
},
"camelcase": {
"version": "5.3.1",
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
"integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg=="
},
"camelcase-css": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz",
@ -5591,6 +5835,31 @@
"resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz",
"integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q=="
},
"cliui": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz",
"integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==",
"requires": {
"string-width": "^3.1.0",
"strip-ansi": "^5.2.0",
"wrap-ansi": "^5.1.0"
},
"dependencies": {
"ansi-regex": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
"integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg=="
},
"strip-ansi": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
"integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
"requires": {
"ansi-regex": "^4.1.0"
}
}
}
},
"color": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/color/-/color-3.1.3.tgz",
@ -5804,6 +6073,11 @@
"ms": "2.0.0"
}
},
"decamelize": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
"integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA="
},
"define-properties": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
@ -5866,6 +6140,11 @@
}
}
},
"dijkstrajs": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/dijkstrajs/-/dijkstrajs-1.0.2.tgz",
"integrity": "sha512-QV6PMaHTCNmKSeP6QoXhVTw9snc9VD8MulTT0Bd99Pacp4SS1cjcrYPgBPmibqKVtMJJfqC6XvOXgPMEEPH/fg=="
},
"dlv": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz",
@ -5908,6 +6187,11 @@
}
}
},
"emoji-regex": {
"version": "7.0.3",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
"integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA=="
},
"emojis-list": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz",
@ -6148,6 +6432,11 @@
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
"integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
},
"get-caller-file": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
"integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="
},
"get-intrinsic": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz",
@ -6445,6 +6734,11 @@
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
"integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI="
},
"is-fullwidth-code-point": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
"integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8="
},
"is-generator-function": {
"version": "1.0.9",
"resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.9.tgz",
@ -7235,57 +7529,6 @@
"sha.js": "^2.4.8"
}
},
"pdf2json": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/pdf2json/-/pdf2json-1.2.1.tgz",
"integrity": "sha512-Ihda4iOiiINYRwvdpHFHBFrRc/vT+w10Kc3o2meOB0HSPDEVMrb+X+V5oUOawipqNT/aI3dazSicwNyJzDLPaQ==",
"requires": {
"async": "^3.2.0",
"lodash": "^4.17.20",
"optimist": "^0.6.1",
"xmldom": "^0.5.0"
},
"dependencies": {
"async": {
"version": "3.2.0",
"resolved": "https://artifact.devsnc.com/content/groups/npm-all/async/-/async-3.2.0.tgz",
"integrity": "sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==",
"bundled": true
},
"lodash": {
"version": "https://artifact.devsnc.com/content/groups/npm-all/lodash/-/lodash-4.17.15.tgz",
"integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==",
"bundled": true
},
"minimist": {
"version": "0.0.10",
"resolved": "https://artifact.devsnc.com/content/groups/npm-all/minimist/-/minimist-0.0.10.tgz",
"integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=",
"bundled": true
},
"optimist": {
"version": "0.6.1",
"resolved": "https://artifact.devsnc.com/content/groups/npm-all/optimist/-/optimist-0.6.1.tgz",
"integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=",
"bundled": true,
"requires": {
"minimist": "~0.0.1",
"wordwrap": "~0.0.2"
}
},
"wordwrap": {
"version": "0.0.3",
"resolved": "https://artifact.devsnc.com/content/groups/npm-all/wordwrap/-/wordwrap-0.0.3.tgz",
"integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=",
"bundled": true
},
"xmldom": {
"version": "https://artifact.devsnc.com/content/groups/npm-all/xmldom/-/xmldom-0.3.0.tgz",
"integrity": "sha512-z9s6k3wxE+aZHgXYxSTpGDo7BYOUfJsIRyoZiX6HTjwpwfS2wpQBQKa2fD+ShLyPkqDYo5ud7KitmLZ2Cd6r0g==",
"bundled": true
}
}
},
"pdfjs-dist": {
"version": "2.9.359",
"resolved": "https://registry.npmjs.org/pdfjs-dist/-/pdfjs-dist-2.9.359.tgz",
@ -7449,6 +7692,32 @@
"postcss-selector-parser": "^6.0.2"
}
},
"qrcode": {
"version": "1.4.4",
"resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.4.4.tgz",
"integrity": "sha512-oLzEC5+NKFou9P0bMj5+v6Z40evexeE29Z9cummZXZ9QXyMr3lphkURzxjXgPJC5azpxcshoDWV1xE46z+/c3Q==",
"requires": {
"buffer": "^5.4.3",
"buffer-alloc": "^1.2.0",
"buffer-from": "^1.1.1",
"dijkstrajs": "^1.0.1",
"isarray": "^2.0.1",
"pngjs": "^3.3.0",
"yargs": "^13.2.4"
},
"dependencies": {
"isarray": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
"integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw=="
},
"pngjs": {
"version": "3.4.0",
"resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz",
"integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w=="
}
}
},
"querystring": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.1.tgz",
@ -7606,6 +7875,16 @@
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz",
"integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew=="
},
"require-directory": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
"integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I="
},
"require-main-filename": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
"integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg=="
},
"resolve": {
"version": "1.20.0",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz",
@ -7697,6 +7976,11 @@
"randombytes": "^2.1.0"
}
},
"set-blocking": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
"integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc="
},
"setimmediate": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
@ -7826,6 +8110,31 @@
"resolved": "https://registry.npmjs.org/string-hash/-/string-hash-1.1.3.tgz",
"integrity": "sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs="
},
"string-width": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
"integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
"requires": {
"emoji-regex": "^7.0.1",
"is-fullwidth-code-point": "^2.0.0",
"strip-ansi": "^5.1.0"
},
"dependencies": {
"ansi-regex": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
"integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg=="
},
"strip-ansi": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
"integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
"requires": {
"ansi-regex": "^4.1.0"
}
}
}
},
"string.prototype.trimend": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz",
@ -8381,6 +8690,11 @@
"is-symbol": "^1.0.3"
}
},
"which-module": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
"integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho="
},
"which-typed-array": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.4.tgz",
@ -8429,6 +8743,31 @@
}
}
},
"wrap-ansi": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
"integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==",
"requires": {
"ansi-styles": "^3.2.0",
"string-width": "^3.0.0",
"strip-ansi": "^5.0.0"
},
"dependencies": {
"ansi-regex": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
"integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg=="
},
"strip-ansi": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
"integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
"requires": {
"ansi-regex": "^4.1.0"
}
}
}
},
"wrappy": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
@ -8440,12 +8779,83 @@
"resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
"integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="
},
"y18n": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz",
"integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ=="
},
"yaml": {
"version": "1.10.2",
"resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
"integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==",
"dev": true
},
"yargs": {
"version": "13.3.2",
"resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz",
"integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==",
"requires": {
"cliui": "^5.0.0",
"find-up": "^3.0.0",
"get-caller-file": "^2.0.1",
"require-directory": "^2.1.1",
"require-main-filename": "^2.0.0",
"set-blocking": "^2.0.0",
"string-width": "^3.0.0",
"which-module": "^2.0.0",
"y18n": "^4.0.0",
"yargs-parser": "^13.1.2"
},
"dependencies": {
"find-up": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
"integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
"requires": {
"locate-path": "^3.0.0"
}
},
"locate-path": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
"integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
"requires": {
"p-locate": "^3.0.0",
"path-exists": "^3.0.0"
}
},
"p-limit": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
"integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
"requires": {
"p-try": "^2.0.0"
}
},
"p-locate": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
"integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
"requires": {
"p-limit": "^2.0.0"
}
},
"path-exists": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
"integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU="
}
}
},
"yargs-parser": {
"version": "13.1.2",
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz",
"integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==",
"requires": {
"camelcase": "^5.0.0",
"decamelize": "^1.2.0"
}
},
"yocto-queue": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",

View File

@ -30,6 +30,7 @@
"node-fetch": "^2.6.1",
"pdfjs-dist": "^2.5.207",
"pngjs": "^6.0.0",
"qrcode": "^1.4.4",
"react": "^17.0.2",
"react-dom": "^17.0.2",
"tls": "^0.0.1",

View File

@ -40,7 +40,7 @@ function Index(): JSX.Element {
<Page content={
<div className="space-y-5">
<Card content={
<p>{t('common:subtitle')}&nbsp;{t('index:iosHint')}</p>
<p>{t('common:subtitle')}</p>
}/>
<Form/>

View File

@ -1,5 +1,5 @@
title: Ontario vaccination receipt to mobile wallet
subtitle: This tool validates the digital signature of your receipt and saves the information onto your mobile wallet for easy validation.
title: Vaccination Receipt to Wallet
subtitle: This tool verifies your electronic receipt (PDF) and save the record onto your Apple Wallet securely.
privacyPolicy: Privacy Policy
donate: Sponsor
gitHub: GitHub

View File

@ -1,4 +1,4 @@
noFileOrQrCode: Please scan a QR Code, or select a file
noFileOrQrCode: Please select your vaccination receipt PDF file
signatureFailed: Error while signing pass on server
decodingFailed: Failed to decode QR code payload
invalidColor: Invalid color

View File

@ -1,8 +1,8 @@
iosHint: On iOS, please use the Safari Browser.
iosHint: On iOS, please use Safari.
errorClose: Close
selectCertificate: Select vaccination receipt (PDF)
selectCertificateDescription: |
If you have more than one receipts, just select the most recent one downloaded from covid19.ontariohealth.ca
If you have more than one receipts, download the most recent one from covid19.ontariohealth.ca
#stopCamera: Stop Camera
#startCamera: Start Camera
openFile: Select File
@ -19,9 +19,9 @@ colorPurple: purple
colorTeal: teal
addToWallet: Add to Wallet
dataPrivacyDescription: |
Your vaccination receipt is processed on your mobile phone only. No data is sent to the internet.
Your vaccination receipt is processed on your mobile phone only.
iAcceptThe: I accept the
privacyPolicy: Privacy Policy
createdOnDevice: Created on your device
openSourceTransparent: 100% open source - You can validate all lines of code used.
createdOnDevice: No personal data is sent to the Internet.
openSourceTransparent: 100% open source for full transparency.
#hostedInEU: Hosted in the EU

View File

@ -1,7 +1,7 @@
export class Constants {
public static NAME = 'CovidPass'
public static PASS_IDENTIFIER = 'pass.de.marvinsextro.covidpass'
public static TEAM_IDENTIFIER = 'X8Q7Q2RLTD'
public static NAME = 'Vaccination Receipt'
public static PASS_IDENTIFIER = 'pass.ca.vaccineontario.receipt'
public static TEAM_IDENTIFIER = 'F6X27PB5BH'
public static img1xBlack: Buffer = Buffer.from('iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAABU0lEQVR4AWIYaWAUiAExoB06gGggDOMwripJthAgGwBoCGYDBIDIgAFBwDAABoJjhBgEAEChBBBaAA0JyeKAqR0hmnWx3p5o8MHdvfd9Z7SHH8Dr723iCpdoYBOZtoJ9XOALYghxjj0sw1k7OEEAiekVxyjBShto4h6SUg8N5KGqhCHEshdsI3FdiCM3SNwnxA1uKxKXZm3QfJCPQ3RmYVAfW5j2YH+QfkweQ1uDviEmdNHBR8SYddxCDOC2ojeI4RlL+K2Kd8UYcFvRE8TQxyKmVdFLOAbcVnQNMeEUCzCKPQbcVnQEiRilGQNuK9qFRI1SjAG3Fa0iiDh8hgPcQWIKwG1dHsQyD+qKCCGWhCgiVZ7T7yhagw9JyQe37FTGCKI0QhlWq2GiGDNBDU6qYwyJaYw6nFbBABJhgAoyKYc2QoghRBs5ZF4BLTz+aaGAef+nHwt5/579e2c2AAAAAElFTkSuQmCC', 'base64');
public static img2xBlack: Buffer = Buffer.from('iVBORw0KGgoAAAANSUhEUgAAAEgAAABICAYAAABV7bNHAAACZ0lEQVR4Ae3TA8xcURRF4dq2ozqqbRtxUjeq7Zi127C2bXvSsLZtu/PP6ardjs577765K/li7mQnizGbzWaz2Wx50BXjMRYdkR0JXRq0xVq8g/ziDZaiGVIiYSqLybgPCdMtjEZpP1+oP45CYnQYPZDd7xeKnPMX1L+QAoULmnUhX12wVrwupHjBKnC8tFgEMcRcpIFjrYQYZhkcqQXEUM2h3haIoTZDvRsQQ92AeiGIoUJQTwxnB7ID2YHsQHYgO5B7zmMlztiBfhbCCKQAJUuOYbADIYRe+FP7TB1IfxyiUaYOpD8O0TJzB9IfpyqCZg6kP05ZPIBESL0gJAIBVENONMRJF8cJQr1nkDBdRWb8WBYEHB8HeAb1bkPCNB5E/xlJfRzgNtQ7CQnTWNB/R9IfBzgJ9TZCwnQJGcMYSX8cYCPUmw6JwCqkwt9K5cg4wHSo1x0SoZX/GUJ/HKA71KsAURhJdxygAtRLg1cKI2mP8wpp4EibIQoj6YwDbIZj9YIojKQzDtALjlUESZAYrEN2fK2u4jhJKAJH2wmJ0UOsRQBJECU74XjtIYZoD8dLi1sQj7uFtHClIRCPGwLXyox7EI+6h8xwtR4Qj+oB10uFExCPOYFU8ERVEIR4RBBV4KlGQTxiFDxXWgQgLgsgLTxZQdyBuOQOCsLTVcELiMNeoAqMqBHeQhzyFo1gVC3wCqLsFVrAyGrgMUTJY9SA0RXDMYVxjqEYfFEGzITEyUxkgO9qhEuQKF1CI/i69BiCB5AwPcAQpEfClBUDcR7yF+cxEFmR0NXDVFz5YirqwWaz2Ww2W9R9AE/cBAw+cEeMAAAAAElFTkSuQmCC', 'base64')

View File

@ -9,16 +9,19 @@ const crypto = require('crypto')
enum QrFormat {
PKBarcodeFormatQR = 'PKBarcodeFormatQR',
PKBarcodeFormatPDF417 = 'PKBarcodeFormatPDF417'
}
enum Encoding {
utf8 = "utf-8",
iso88591 = "iso-8859-1"
}
interface QrCode {
message: string;
format: QrFormat;
messageEncoding: Encoding;
// altText: string;
}
interface SignData {
@ -52,8 +55,12 @@ export class PassData {
private static async signWithRemote(signData: SignData): Promise<ArrayBuffer> {
// Load API_BASE_URL form nextjs backend
const configResponse = await fetch('/api/config')
const apiBaseUrl = (await configResponse.json()).apiBaseUrl
console.log(`${apiBaseUrl}/sign`);
console.log(JSON.stringify(signData));
const response = await fetch(`${apiBaseUrl}/sign`, {
method: 'POST',
@ -72,17 +79,20 @@ export class PassData {
}
static async generatePass(payloadBody: PayloadBody): Promise<Buffer> {
// Get the Value Sets from GitHub
const valueSets: ValueSets = await ValueSets.loadValueSets();
// Create Payload
const payload: Payload = new Payload(payloadBody, valueSets);
const payload: Payload = new Payload(payloadBody);
payload.serialNumber = uuid4();
// Create QR Code Object
const qrCode: QrCode = {
message: payload.rawData,
message: `https://verifier.vaccine-ontario.ca/?serialNumber=${payload.serialNumber}`,
format: QrFormat.PKBarcodeFormatQR,
messageEncoding: Encoding.utf8,
messageEncoding: Encoding.iso88591,
// altText : payload.rawData
}
// Create pass data
@ -93,6 +103,8 @@ export class PassData {
// Adding required fields
console.log(pass);
// Create pass.json
const passJson = JSON.stringify(pass);
@ -117,6 +129,8 @@ export class PassData {
),
);
console.log(manifestJson);
// Add Manifest JSON to zip
zip.push({path: 'manifest.json', data: Buffer.from(manifestJson)});
@ -126,7 +140,7 @@ export class PassData {
// Sign hash with server
const manifestSignature = await PassData.signWithRemote({
PassJsonHash: passHash,
useBlackVersion: !payload.dark,
useBlackVersion: true,
});
// Add signature to zip
@ -139,7 +153,7 @@ export class PassData {
this.labelColor = payload.labelColor;
this.foregroundColor = payload.foregroundColor;
this.backgroundColor = payload.backgroundColor;
this.serialNumber = uuid4(); // Generate random UUID v4
this.serialNumber = payload.serialNumber; // Generate random UUID v4
this.barcodes = [qrCode];
this.barcode = qrCode;
this.generic = payload.generic;

View File

@ -1,15 +1,13 @@
import {ValueSets} from "./value_sets";
import {Constants} from "./constants";
import {COLORS} from "./colors";
enum CertificateType {
Vaccination = 'Vaccination Card',
Test = 'Test Certificate',
Recovery = 'Recovery Certificate',
export class Receipt {
constructor(public name: string, public vaccinationDate: string, public vaccineName: string, public dateOfBirth: string, public numDoses: number, public organization: string) {};
}
enum TextAlignment {
right = 'PKTextAlignmentRight',
center = 'PKTextAlignmentCenter'
}
interface Field {
@ -28,317 +26,102 @@ export interface PassDictionary {
}
export interface PayloadBody {
color: COLORS;
// color: COLORS;
rawData: string;
decodedData: Uint8Array;
receipt: Receipt;
}
export class Payload {
certificateType: CertificateType;
receipt: Receipt;
rawData: string;
backgroundColor: string;
labelColor: string;
foregroundColor: string;
img1x: Buffer;
img2x: Buffer;
dark: boolean;
serialNumber: string;
generic: PassDictionary;
constructor(body: PayloadBody, valueSets: ValueSets) {
const dark = body.color != COLORS.WHITE;
const healthCertificate = body.decodedData['-260'];
const covidCertificate = healthCertificate['1']; // Version number subject to change
if (covidCertificate == undefined) {
throw new Error('certificateData');
}
constructor(body: PayloadBody) {
// Get name and date of birth information
const nameInformation = covidCertificate['nam'];
const dateOfBirth = covidCertificate['dob'];
if (nameInformation == undefined) {
const name = body.receipt.name;
const dateOfBirth = body.receipt.dateOfBirth;
const vaccineName = body.receipt.vaccineName;
const vaccineNameProper = vaccineName.charAt(0) + vaccineName.substr(1).toLowerCase();
const doseVaccine = "Dose " + String(body.receipt.numDoses) + ": " + vaccineNameProper;
if (name == undefined) {
throw new Error('nameMissing');
}
if (dateOfBirth == undefined) {
throw new Error('dobMissing');
}
const firstName = nameInformation['gn'];
const lastName = nameInformation['fn'];
const transliteratedFirstName = nameInformation['gnt'].replaceAll('<', ' ');
const transliteratedLastName = nameInformation['fnt'].replaceAll('<', ' ');
// Check if name contains non-latin characters
const nameRegex = new RegExp('^[\\p{Script=Latin}\\p{P}\\p{M}\\p{Z}]+$', 'u');
let name: string;
if (nameRegex.test(firstName) && nameRegex.test(lastName)) {
name = `${firstName} ${lastName}`;
} else {
name = `${transliteratedFirstName} ${transliteratedLastName}`;
}
let properties: object;
// Set certificate type and properties
if (covidCertificate['v'] !== undefined) {
this.certificateType = CertificateType.Vaccination;
properties = covidCertificate['v'][0];
}
if (covidCertificate['t'] !== undefined) {
this.certificateType = CertificateType.Test;
properties = covidCertificate['t'][0];
}
if (covidCertificate['r'] !== undefined) {
this.certificateType = CertificateType.Recovery;
properties = covidCertificate['r'][0];
}
if (this.certificateType == undefined) {
throw new Error('certificateType')
}
// Get country, identifier and issuer
const countryCode = properties['co'];
const uvci = properties['ci'];
const certificateIssuer = properties['is'];
if (!(countryCode in valueSets.countryCodes)) {
throw new Error('invalidCountryCode');
}
const country = valueSets.countryCodes[countryCode].display;
const generic: PassDictionary = {
headerFields: [
{
key: "type",
label: "EU Digital COVID",
value: this.certificateType
}
],
primaryFields: [
{
key: "name",
label: "Name",
value: name
key: "vaccine",
label: "Vaccine",
value: doseVaccine,
}
],
secondaryFields: [],
auxiliaryFields: [],
backFields: [
{
key: "uvci",
label: "Unique Certificate Identifier (UVCI)",
value: uvci
},
{
secondaryFields: [
{
key: "issuer",
label: "Certificate Issuer",
value: certificateIssuer
}
label: "Authorized Organization",
value: body.receipt.organization
},
{
key: "dov",
label: "Date",
value: body.receipt.vaccinationDate,
// textAlignment: TextAlignment.right
}
],
auxiliaryFields: [
],
backFields: [
{
key: "name",
label: "Name",
value: name
},
{
key: "dob",
label: "Date of Birth",
value: body.receipt.dateOfBirth,
textAlignment: TextAlignment.right
}
]
}
// Set Values
this.receipt = body.receipt;
this.rawData = body.rawData;
this.backgroundColor = dark ? body.color : COLORS.WHITE
this.labelColor = dark ? COLORS.WHITE : COLORS.GREY
this.foregroundColor = dark ? COLORS.WHITE : COLORS.BLACK
this.img1x = dark ? Constants.img1xWhite : Constants.img1xBlack
this.img2x = dark ? Constants.img2xWhite : Constants.img2xBlack
this.dark = dark;
this.generic = Payload.fillPassData(this.certificateType, generic, properties, valueSets, country, dateOfBirth);
}
static fillPassData(type: CertificateType, data: PassDictionary, properties: Object, valueSets: ValueSets, country: string, dateOfBirth: string): PassDictionary {
switch (type) {
case CertificateType.Vaccination:
const dose = `${properties['dn']}/${properties['sd']}`;
const dateOfVaccination = properties['dt'];
const medialProductKey = properties['mp'];
const manufacturerKey = properties['ma'];
if (!(medialProductKey in valueSets.medicalProducts)) {
throw new Error('invalidMedicalProduct');
}
if (!(manufacturerKey in valueSets.manufacturers)) {
throw new Error('invalidManufacturer')
}
const vaccineName = valueSets.medicalProducts[medialProductKey].display.replace(/\s*\([^)]*\)\s*/g, "");
const manufacturer = valueSets.manufacturers[manufacturerKey].display;
data.secondaryFields.push(...[
{
key: "dose",
label: "Dose",
value: dose
},
{
key: "dov",
label: "Date of Vaccination",
value: dateOfVaccination,
textAlignment: TextAlignment.right
}
]);
data.auxiliaryFields.push(...[
{
key: "vaccine",
label: "Vaccine",
value: vaccineName
},
{
key: "dob",
label: "Date of Birth",
value: dateOfBirth,
textAlignment: TextAlignment.right
}
]);
data.backFields.push(...[
{
key: "cov",
label: "Country of Vaccination",
value: country
},
{
key: "manufacturer",
label: "Manufacturer",
value: manufacturer
},
{
key: "disclaimer",
label: "Disclaimer",
value: "This certificate is not a travel document. It is only valid in combination with the ID card of the certificate holder and may expire one year + 14 days after the last dose. The validity of this certificate was not checked by CovidPass."
}
]);
break;
case CertificateType.Test:
const testTypeKey = properties['tt'];
const testDateTimeString = properties['sc'];
const testResultKey = properties['tr'];
const testingCentre = properties['tc'];
if (!(testResultKey in valueSets.testResults)) {
throw new Error('invalidTestResult');
}
if (!(testTypeKey in valueSets.testTypes)) {
throw new Error('invalidTestType')
}
const testResult = valueSets.testResults[testResultKey].display;
const testType = valueSets.testTypes[testTypeKey].display;
const testTime = testDateTimeString.replace(/.*T/, '').replace('Z', ' ') + 'UTC';
const testDate = testDateTimeString.replace(/T.*/, '');
data.secondaryFields.push(...[
{
key: "result",
label: "Test Result",
value: testResult
},
{
key: "dot",
label: "Date of Test",
value: testDate,
textAlignment: TextAlignment.right
}
]);
data.auxiliaryFields.push(...[
{
key: "time",
label: "Time of Test",
value: testTime
},
{
key: "dob",
label: "Date of Birth",
value: dateOfBirth,
textAlignment: TextAlignment.right
},
]);
data.backFields.push({
key: "cot",
label: "Country of Test",
value: country
});
if (testingCentre !== undefined)
data.backFields.push({
key: "centre",
label: "Testing Centre",
value: testingCentre
});
data.backFields.push(...[
{
key: "test",
label: "Test Type",
value: testType
},
{
key: "disclaimer",
label: "Disclaimer",
value: "This certificate is not a travel document. It is only valid in combination with the ID card of the certificate holder and may expire 24h after the test. The validity of this certificate was not checked by CovidPass."
}
]);
break;
case CertificateType.Recovery:
const firstPositiveTestDate = properties['fr'];
const validFrom = properties['df'];
const validUntil = properties['du'];
data.secondaryFields.push(...[
{
key: "until",
label: "Valid Until",
value: validUntil,
},
{
key: "dot",
label: "Date of positive Test",
value: firstPositiveTestDate,
textAlignment: TextAlignment.right
}
]);
data.auxiliaryFields.push(...[
{
key: "from",
label: "Valid From",
value: validFrom,
},
{
key: "dob",
label: "Date of Birth",
value: dateOfBirth,
textAlignment: TextAlignment.right
}
]);
data.backFields.push(...[
{
key: "cot",
label: "Country of Test",
value: country
},
{
key: "disclaimer",
label: "Disclaimer",
value: "This certificate is not a travel document. It is only valid in combination with the ID card of the certificate holder. The validity of this certificate was not checked by CovidPass."
}
]);
break;
default:
throw new Error('certificateType');
if (body.receipt.numDoses > 1) {
this.backgroundColor = COLORS.GREEN;
} else {
this.backgroundColor = COLORS.YELLOW;
}
return data;
this.labelColor = COLORS.WHITE
this.foregroundColor = COLORS.BLACK
this.img1x = Constants.img1xBlack
this.img2x = Constants.img2xBlack
this.generic = generic;
}
}

View File

@ -1,139 +1,36 @@
import {PayloadBody} from "./payload";
import {PNG} from 'pngjs'
import {PayloadBody, Receipt} from "./payload";
import * as PdfJS from 'pdfjs-dist'
import jsQR, {QRCode} from "jsqr";
import {decodeData} from "./decode";
import {Result} from "@zxing/library";
import {COLORS} from "./colors";
import { getCertificatesInfoFromPDF } from "@ninja-labs/verify-pdf"; // ES6
import verifyPDF from "@ninja-labs/verify-pdf";
// import verifyPDF from "@ninja-labs/verify-pdf";
// import {PNG} from 'pngjs'
// import {decodeData} from "./decode";
// import {Result} from "@zxing/library";
PdfJS.GlobalWorkerOptions.workerSrc = `https://cdnjs.cloudflare.com/ajax/libs/pdf.js/${PdfJS.version}/pdf.worker.js`
class Receipt {
constructor(public name: string, public vaccinationDate: string, public vaccineName: string, public dateOfBirth: string, public numDoses: number) {};
}
export async function getPayloadBodyFromFile(file: File, color: COLORS): Promise<PayloadBody> {
// Read file
const fileBuffer = await file.arrayBuffer();
let imageData: ImageData;
let receipt: Receipt;
switch (file.type) {
case 'application/pdf':
console.log('pdf')
await loadPDF(fileBuffer)
receipt = await loadPDF(fileBuffer)
break
// case 'image/png':
// console.log('png')
// imageData = await getImageDataFromPng(fileBuffer)
// break
default:
throw Error('invalidFileType')
}
let code: QRCode;
try {
code = jsQR(imageData.data, imageData.width, imageData.height, {
inversionAttempts: "dontInvert",
});
} catch (e) {
throw Error('couldNotDecode');
}
if (code == undefined) {
throw Error('couldNotFindQrCode')
}
// Get raw data
let rawData = code.data;
// Decode Data
let decodedData;
try {
decodedData = decodeData(rawData);
} catch (e) {
throw Error('invalidQrCode')
}
const rawData = ''; // unused at the moment, the original use was to store the QR code from issuer
return {
rawData: rawData,
decodedData: decodedData,
color: color,
receipt: receipt,
rawData: rawData
}
}
export async function getPayloadBodyFromQR(qrCodeResult: Result, color: COLORS): Promise<PayloadBody> {
// Get raw data
let rawData = qrCodeResult.getText();
// Decode Data
let decodedData;
try {
decodedData = decodeData(rawData);
} catch (e) {
throw Error("invalidQrCode")
}
return {
rawData: rawData,
decodedData: decodedData,
color: color,
}
}
async function getImageDataFromPng(fileBuffer: ArrayBuffer): Promise<ImageData> {
return new Promise(async (resolve, reject) => {
let png = new PNG({filterType: 4})
png.parse(fileBuffer, (error, data) => {
if (error) {
reject();
}
resolve(data);
})
})
}
async function getImageDataFromPdf(fileBuffer: ArrayBuffer): Promise<ImageData> {
const typedArray = new Uint8Array(fileBuffer);
const pdfScale = 2;
const canvas = <HTMLCanvasElement>document.getElementById('canvas');
const canvasContext = canvas.getContext('2d');
let loadingTask = PdfJS.getDocument(typedArray);
await loadingTask.promise.then(async function (pdfDocument) {
// Load last PDF page
const pageNumber = pdfDocument.numPages;
const pdfPage = await pdfDocument.getPage(pageNumber)
const viewport = pdfPage.getViewport({scale: pdfScale})
// Set correct canvas width / height
canvas.width = viewport.width
canvas.height = viewport.height
// render PDF
const renderTask = pdfPage.render({
canvasContext: canvasContext,
viewport,
})
return await renderTask.promise
});
// Return PDF Image Data
return canvasContext.getImageData(0, 0, canvas.width, canvas.height)
}
async function loadPDF(signedPdfBuffer): Promise<any> {
try {
@ -152,9 +49,10 @@ async function loadPDF(signedPdfBuffer): Promise<any> {
const issuedByEntrust = (result.issuedBy.organizationName == 'Entrust, Inc.');
const issuedToOntarioHealth = (result.issuedTo.commonName == 'covid19signer.ontariohealth.ca');
if (isClientCertificate && issuedByEntrust && issuedToOntarioHealth) {
console.log('valid, getting payload');
console.log('PDF looks good, getting payload');
const receipt = await getPdfDetails(signedPdfBuffer);
console.log(JSON.stringify(receipt, null, 2));
return Promise.resolve(receipt);
} else {
console.error('invalid certificate');
@ -182,23 +80,29 @@ async function getPdfDetails(fileBuffer: ArrayBuffer): Promise<Receipt> {
const pdfPage = await pdfDocument.getPage(pageNumber);
const content = await pdfPage.getTextContent();
const numItems = content.items.length;
let name, vaccinationDate, vaccineName, dateOfBirth, numDoses;
let name, vaccinationDate, vaccineName, dateOfBirth, numDoses, organization;
for (let i = 0; i < numItems; i++) {
const item = content.items[i];
const value = item.str;
if (value.includes('Name / Nom'))
name = content.items[i+1].str;
if (value.includes('Date:'))
if (value.includes('Date:')) {
vaccinationDate = content.items[i+1].str;
if (value.includes('Product name'))
vaccinationDate = vaccinationDate.split(',')[0];
}
if (value.includes('Product name')) {
vaccineName = content.items[i+1].str;
vaccineName = vaccineName.split(' ')[0];
}
if (value.includes('Date of birth'))
dateOfBirth = content.items[i+1].str;
if (value.includes('Authorized organization'))
organization = content.items[i+1].str;
if (value.includes('You have received'))
numDoses = Number(value.split(' ')[3]);
}
const receipt = new Receipt(name, vaccinationDate, vaccineName, dateOfBirth, numDoses);
const receipt = new Receipt(name, vaccinationDate, vaccineName, dateOfBirth, numDoses, organization);
return Promise.resolve(receipt);

256
yarn.lock
View File

@ -416,12 +416,17 @@
"resolved" "https://registry.npmjs.org/anser/-/anser-1.4.9.tgz"
"version" "1.4.9"
"ansi-regex@^4.1.0":
"integrity" "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg=="
"resolved" "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz"
"version" "4.1.0"
"ansi-regex@^5.0.0":
"integrity" "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg=="
"resolved" "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz"
"version" "5.0.0"
"ansi-styles@^3.2.1":
"ansi-styles@^3.2.0", "ansi-styles@^3.2.1":
"integrity" "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA=="
"resolved" "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz"
"version" "3.2.1"
@ -481,11 +486,6 @@
"resolved" "https://registry.npmjs.org/ast-types/-/ast-types-0.13.2.tgz"
"version" "0.13.2"
"async@^3.2.0":
"integrity" "sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw=="
"resolved" "https://artifact.devsnc.com/content/groups/npm-all/async/-/async-3.2.0.tgz"
"version" "3.2.0"
"autoprefixer@^10.0.2", "autoprefixer@^10.0.4":
"integrity" "sha512-8lChSmdU6dCNMCQopIf4Pe5kipkAGj/fvTMslCsih0uHpOrXOPUEVOmYMMqmw3cekQkSD7EhIeuYl5y0BLdKqg=="
"resolved" "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.2.6.tgz"
@ -645,7 +645,25 @@
"escalade" "^3.1.1"
"node-releases" "^1.1.71"
"buffer-from@^1.0.0":
"buffer-alloc-unsafe@^1.1.0":
"integrity" "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg=="
"resolved" "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz"
"version" "1.1.0"
"buffer-alloc@^1.2.0":
"integrity" "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow=="
"resolved" "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz"
"version" "1.2.0"
dependencies:
"buffer-alloc-unsafe" "^1.1.0"
"buffer-fill" "^1.0.0"
"buffer-fill@^1.0.0":
"integrity" "sha1-+PeLdniYiO858gXNY39o5wISKyw="
"resolved" "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz"
"version" "1.0.0"
"buffer-from@^1.0.0", "buffer-from@^1.1.1":
"integrity" "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A=="
"resolved" "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz"
"version" "1.1.1"
@ -664,7 +682,7 @@
"ieee754" "^1.1.4"
"isarray" "^1.0.0"
"buffer@5.6.0":
"buffer@^5.4.3", "buffer@5.6.0":
"integrity" "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw=="
"resolved" "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz"
"version" "5.6.0"
@ -700,6 +718,11 @@
"resolved" "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz"
"version" "2.0.1"
"camelcase@^5.0.0":
"integrity" "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg=="
"resolved" "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz"
"version" "5.3.1"
"caniuse-lite@^1.0.30001202", "caniuse-lite@^1.0.30001219", "caniuse-lite@^1.0.30001228", "caniuse-lite@^1.0.30001230":
"integrity" "sha512-1uoSZ1Pq1VpH0WerIMqwptXHNNGfdl7d1cJUFs80CwQ/lVzdhTvsFZCeNFslze7AjsQnb4C85tzclPa1VShbeQ=="
"resolved" "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001241.tgz"
@ -783,6 +806,15 @@
"resolved" "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz"
"version" "2.2.6"
"cliui@^5.0.0":
"integrity" "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA=="
"resolved" "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz"
"version" "5.0.0"
dependencies:
"string-width" "^3.1.0"
"strip-ansi" "^5.2.0"
"wrap-ansi" "^5.1.0"
"color-convert@^1.9.0", "color-convert@^1.9.1":
"integrity" "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg=="
"resolved" "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz"
@ -980,6 +1012,11 @@
dependencies:
"ms" "2.0.0"
"decamelize@^1.2.0":
"integrity" "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA="
"resolved" "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz"
"version" "1.2.0"
"define-properties@^1.1.3":
"integrity" "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ=="
"resolved" "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz"
@ -1028,6 +1065,11 @@
"miller-rabin" "^4.0.0"
"randombytes" "^2.0.0"
"dijkstrajs@^1.0.1":
"integrity" "sha512-QV6PMaHTCNmKSeP6QoXhVTw9snc9VD8MulTT0Bd99Pacp4SS1cjcrYPgBPmibqKVtMJJfqC6XvOXgPMEEPH/fg=="
"resolved" "https://registry.npmjs.org/dijkstrajs/-/dijkstrajs-1.0.2.tgz"
"version" "1.0.2"
"dlv@^1.1.3":
"integrity" "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA=="
"resolved" "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz"
@ -1066,6 +1108,11 @@
"minimalistic-assert" "^1.0.1"
"minimalistic-crypto-utils" "^1.0.1"
"emoji-regex@^7.0.1":
"integrity" "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA=="
"resolved" "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz"
"version" "7.0.3"
"emojis-list@^2.0.0":
"integrity" "sha1-TapNnbAPmBmIDHn6RXrlsJof04k="
"resolved" "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz"
@ -1246,6 +1293,13 @@
"make-dir" "^3.0.2"
"pkg-dir" "^4.1.0"
"find-up@^3.0.0":
"integrity" "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg=="
"resolved" "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz"
"version" "3.0.0"
dependencies:
"locate-path" "^3.0.0"
"find-up@^4.0.0":
"integrity" "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw=="
"resolved" "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz"
@ -1288,6 +1342,11 @@
"resolved" "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz"
"version" "1.1.1"
"get-caller-file@^2.0.1":
"integrity" "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="
"resolved" "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz"
"version" "2.0.5"
"get-intrinsic@^1.0.2", "get-intrinsic@^1.1.1":
"integrity" "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q=="
"resolved" "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz"
@ -1588,6 +1647,11 @@
"resolved" "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz"
"version" "2.1.1"
"is-fullwidth-code-point@^2.0.0":
"integrity" "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8="
"resolved" "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz"
"version" "2.0.0"
"is-generator-function@^1.0.7":
"integrity" "sha512-ZJ34p1uvIfptHCN7sFTjGibB9/oBg17sHqzDLfuwhvmN/qLVvIQXRQ8licZQ35WJ8KuEQt/etnnzQFI9C9Ue/A=="
"resolved" "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.9.tgz"
@ -1659,6 +1723,11 @@
"resolved" "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz"
"version" "1.0.0"
"isarray@^2.0.1":
"integrity" "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw=="
"resolved" "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz"
"version" "2.0.5"
"jest-worker@^27.0.2":
"integrity" "sha512-qupxcj/dRuA3xHPMUd40gr2EaAurFbkwzOh7wfPaeE9id7hyjURRQoqNfHifHK3XjJU6YJJUQKILGUnwGPEOCA=="
"resolved" "https://registry.npmjs.org/jest-worker/-/jest-worker-27.0.6.tgz"
@ -1763,6 +1832,14 @@
"emojis-list" "^2.0.0"
"json5" "^1.0.1"
"locate-path@^3.0.0":
"integrity" "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A=="
"resolved" "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz"
"version" "3.0.0"
dependencies:
"p-locate" "^3.0.0"
"path-exists" "^3.0.0"
"locate-path@^5.0.0":
"integrity" "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g=="
"resolved" "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz"
@ -1790,11 +1867,6 @@
"resolved" "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz"
"version" "4.17.21"
"lodash@^4.17.20":
"integrity" "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="
"resolved" "https://artifact.devsnc.com/content/groups/npm-all/lodash/-/lodash-4.17.15.tgz"
"version" "4.17.15"
"loose-envify@^1.1.0", "loose-envify@^1.4.0":
"integrity" "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q=="
"resolved" "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz"
@ -1878,11 +1950,6 @@
"resolved" "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz"
"version" "1.2.5"
"minimist@~0.0.1":
"integrity" "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8="
"resolved" "https://artifact.devsnc.com/content/groups/npm-all/minimist/-/minimist-0.0.10.tgz"
"version" "0.0.10"
"modern-normalize@^1.1.0":
"integrity" "sha512-2lMlY1Yc1+CUy0gw4H95uNN7vjbpoED7NNRSBHE25nWfLBdmMzFCsPshlzbxHz+gYMcBEUN8V4pU16prcdPSgA=="
"resolved" "https://registry.npmjs.org/modern-normalize/-/modern-normalize-1.1.0.tgz"
@ -2098,19 +2165,18 @@
dependencies:
"wrappy" "1"
"optimist@^0.6.1":
"integrity" "sha1-2j6nRob6IaGaERwybpDrFaAZZoY="
"resolved" "https://artifact.devsnc.com/content/groups/npm-all/optimist/-/optimist-0.6.1.tgz"
"version" "0.6.1"
dependencies:
"minimist" "~0.0.1"
"wordwrap" "~0.0.2"
"os-browserify@^0.3.0", "os-browserify@0.3.0":
"integrity" "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc="
"resolved" "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz"
"version" "0.3.0"
"p-limit@^2.0.0":
"integrity" "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w=="
"resolved" "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz"
"version" "2.3.0"
dependencies:
"p-try" "^2.0.0"
"p-limit@^2.2.0":
"integrity" "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w=="
"resolved" "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz"
@ -2125,6 +2191,13 @@
dependencies:
"yocto-queue" "^0.1.0"
"p-locate@^3.0.0":
"integrity" "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ=="
"resolved" "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz"
"version" "3.0.0"
dependencies:
"p-limit" "^2.0.0"
"p-locate@^4.1.0":
"integrity" "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A=="
"resolved" "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz"
@ -2180,6 +2253,11 @@
"resolved" "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz"
"version" "1.0.1"
"path-exists@^3.0.0":
"integrity" "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU="
"resolved" "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz"
"version" "3.0.0"
"path-exists@^4.0.0":
"integrity" "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="
"resolved" "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz"
@ -2211,16 +2289,6 @@
"safe-buffer" "^5.0.1"
"sha.js" "^2.4.8"
"pdf2json@^1.2.1":
"integrity" "sha512-Ihda4iOiiINYRwvdpHFHBFrRc/vT+w10Kc3o2meOB0HSPDEVMrb+X+V5oUOawipqNT/aI3dazSicwNyJzDLPaQ=="
"resolved" "https://registry.npmjs.org/pdf2json/-/pdf2json-1.2.1.tgz"
"version" "1.2.1"
dependencies:
"async" "^3.2.0"
"lodash" "^4.17.20"
"optimist" "^0.6.1"
"xmldom" "^0.5.0"
"pdfjs-dist@^2.5.207":
"integrity" "sha512-P2nYtkacdlZaNNwrBLw1ZyMm0oE2yY/5S/GDCAmMJ7U4+ciL/D0mrlEC/o4HZZc/LNE3w8lEVzBEyVgEQlPVKQ=="
"resolved" "https://registry.npmjs.org/pdfjs-dist/-/pdfjs-dist-2.9.359.tgz"
@ -2243,6 +2311,11 @@
"resolved" "https://registry.npmjs.org/platform/-/platform-1.3.6.tgz"
"version" "1.3.6"
"pngjs@^3.3.0":
"integrity" "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w=="
"resolved" "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz"
"version" "3.4.0"
"pngjs@^6.0.0":
"integrity" "sha512-TRzzuFRRmEoSW/p1KVAmiOgPco2Irlah+bGFCeNfJXxxYGwSw7YwAOAcd7X28K/m5bjBWKsC29KyoMfHbypayg=="
"resolved" "https://registry.npmjs.org/pngjs/-/pngjs-6.0.0.tgz"
@ -2376,6 +2449,19 @@
"postcss" "^8.2.1"
"postcss-selector-parser" "^6.0.2"
"qrcode@^1.4.4":
"integrity" "sha512-oLzEC5+NKFou9P0bMj5+v6Z40evexeE29Z9cummZXZ9QXyMr3lphkURzxjXgPJC5azpxcshoDWV1xE46z+/c3Q=="
"resolved" "https://registry.npmjs.org/qrcode/-/qrcode-1.4.4.tgz"
"version" "1.4.4"
dependencies:
"buffer" "^5.4.3"
"buffer-alloc" "^1.2.0"
"buffer-from" "^1.1.1"
"dijkstrajs" "^1.0.1"
"isarray" "^2.0.1"
"pngjs" "^3.3.0"
"yargs" "^13.2.4"
"querystring-es3@^0.2.0", "querystring-es3@0.2.1":
"integrity" "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM="
"resolved" "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz"
@ -2527,6 +2613,16 @@
"resolved" "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz"
"version" "0.13.7"
"require-directory@^2.1.1":
"integrity" "sha1-jGStX9MNqxyXbiNE/+f3kqam30I="
"resolved" "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz"
"version" "2.1.1"
"require-main-filename@^2.0.0":
"integrity" "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg=="
"resolved" "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz"
"version" "2.0.0"
"resolve-from@^4.0.0":
"integrity" "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g=="
"resolved" "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz"
@ -2616,6 +2712,11 @@
dependencies:
"randombytes" "^2.1.0"
"set-blocking@^2.0.0":
"integrity" "sha1-BF+XgtARrppoA93TgrJDkrPYkPc="
"resolved" "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz"
"version" "2.0.0"
"setimmediate@^1.0.4":
"integrity" "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU="
"resolved" "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz"
@ -2766,6 +2867,15 @@
"resolved" "https://registry.npmjs.org/string-hash/-/string-hash-1.1.3.tgz"
"version" "1.1.3"
"string-width@^3.0.0", "string-width@^3.1.0":
"integrity" "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w=="
"resolved" "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz"
"version" "3.1.0"
dependencies:
"emoji-regex" "^7.0.1"
"is-fullwidth-code-point" "^2.0.0"
"strip-ansi" "^5.1.0"
"string.prototype.trimend@^1.0.4":
"integrity" "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A=="
"resolved" "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz"
@ -2782,6 +2892,27 @@
"call-bind" "^1.0.2"
"define-properties" "^1.1.3"
"strip-ansi@^5.0.0":
"integrity" "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA=="
"resolved" "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz"
"version" "5.2.0"
dependencies:
"ansi-regex" "^4.1.0"
"strip-ansi@^5.1.0":
"integrity" "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA=="
"resolved" "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz"
"version" "5.2.0"
dependencies:
"ansi-regex" "^4.1.0"
"strip-ansi@^5.2.0":
"integrity" "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA=="
"resolved" "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz"
"version" "5.2.0"
dependencies:
"ansi-regex" "^4.1.0"
"strip-ansi@6.0.0":
"integrity" "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w=="
"resolved" "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz"
@ -3141,6 +3272,11 @@
"is-string" "^1.0.5"
"is-symbol" "^1.0.3"
"which-module@^2.0.0":
"integrity" "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho="
"resolved" "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz"
"version" "2.0.0"
"which-typed-array@^1.1.2":
"integrity" "sha512-49E0SpUe90cjpoc7BOJwyPHRqSAd12c10Qm2amdEZrJPCY2NDxaW01zHITrem+rnETY3dwrbH3UUrUwagfCYDA=="
"resolved" "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.4.tgz"
@ -3154,11 +3290,6 @@
"has-symbols" "^1.0.1"
"is-typed-array" "^1.1.3"
"wordwrap@~0.0.2":
"integrity" "sha1-o9XabNXAvAAI03I0u68b7WMFkQc="
"resolved" "https://artifact.devsnc.com/content/groups/npm-all/wordwrap/-/wordwrap-0.0.3.tgz"
"version" "0.0.3"
"worker-loader@^3.0.7":
"integrity" "sha512-XQyQkIFeRVC7f7uRhFdNMe/iJOdO6zxAaR3EWbDp45v3mDhrTi+++oswKNxShUNjPC/1xUp5DB29YKLhFo129g=="
"resolved" "https://registry.npmjs.org/worker-loader/-/worker-loader-3.0.8.tgz"
@ -3167,26 +3298,59 @@
"loader-utils" "^2.0.0"
"schema-utils" "^3.0.0"
"wrap-ansi@^5.1.0":
"integrity" "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q=="
"resolved" "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz"
"version" "5.1.0"
dependencies:
"ansi-styles" "^3.2.0"
"string-width" "^3.0.0"
"strip-ansi" "^5.0.0"
"wrappy@1":
"integrity" "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
"resolved" "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"
"version" "1.0.2"
"xmldom@^0.5.0":
"integrity" "sha512-z9s6k3wxE+aZHgXYxSTpGDo7BYOUfJsIRyoZiX6HTjwpwfS2wpQBQKa2fD+ShLyPkqDYo5ud7KitmLZ2Cd6r0g=="
"resolved" "https://artifact.devsnc.com/content/groups/npm-all/xmldom/-/xmldom-0.3.0.tgz"
"version" "0.3.0"
"xtend@^4.0.0", "xtend@^4.0.2":
"integrity" "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="
"resolved" "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz"
"version" "4.0.2"
"y18n@^4.0.0":
"integrity" "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ=="
"resolved" "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz"
"version" "4.0.3"
"yaml@^1.10.0", "yaml@^1.10.2":
"integrity" "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg=="
"resolved" "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz"
"version" "1.10.2"
"yargs-parser@^13.1.2":
"integrity" "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg=="
"resolved" "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz"
"version" "13.1.2"
dependencies:
"camelcase" "^5.0.0"
"decamelize" "^1.2.0"
"yargs@^13.2.4":
"integrity" "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw=="
"resolved" "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz"
"version" "13.3.2"
dependencies:
"cliui" "^5.0.0"
"find-up" "^3.0.0"
"get-caller-file" "^2.0.1"
"require-directory" "^2.1.1"
"require-main-filename" "^2.0.0"
"set-blocking" "^2.0.0"
"string-width" "^3.0.0"
"which-module" "^2.0.0"
"y18n" "^4.0.0"
"yargs-parser" "^13.1.2"
"yocto-queue@^0.1.0":
"integrity" "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q=="
"resolved" "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz"