diff --git a/components/Dropdown.tsx b/components/Dropdown.tsx index 3962c01..13588f8 100644 --- a/components/Dropdown.tsx +++ b/components/Dropdown.tsx @@ -15,7 +15,7 @@ interface DropdownProps { export default function Dropdown(props: DropdownProps) { const { label, options } = props; return ( - + {label}
Last updated: 2021-10-23 (v2.2.3)
+
Last updated: 2021-10-25 (v2.2.5)
diff --git a/examples/shc-ca-nu.decoded.json b/examples/shc-ca-nu.decoded.json new file mode 100644 index 0000000..6d3cbef --- /dev/null +++ b/examples/shc-ca-nu.decoded.json @@ -0,0 +1,158 @@ +{ + "iss": "https://pvc.gov.nu.ca/pvc", + "vc": { + "credentialSubject": { + "fhirBundle": { + "resourceType": "Bundle", + "entry": [ + { + "resource": { + "resourceType": "Patient", + "name": [ + { + "given": [ + "FIRSTNAME" + ], + "family": "LASTNAME" + } + ], + "birthDate": "YYYY-MM-DD" + }, + "fullUrl": "resource:0" + }, + { + "resource": { + "status": "completed", + "performer": [ + { + "actor": { + "display": "NU, Canada" + } + } + ], + "patient": { + "reference": "resource:0" + }, + "resourceType": "Immunization", + "lotNumber": "SOME_STRING", + "vaccineCode": { + "coding": [ + { + "code": "207", + "system": "http://hl7.org/fhir/sid/cvx" + } + ] + }, + "meta": { + "security": [ + { + "code": "IAL1.4", + "system": "https://smarthealth.cards/ial" + } + ] + }, + "occurrenceDateTime": "YYYY-MM-DD", + "manufacturer": { + "identifier": { + "system": "http://hl7.org/fhir/sid/mvx", + "value": "MOD" + } + } + }, + "fullUrl": "resource:1" + }, + { + "resource": { + "status": "completed", + "performer": [ + { + "actor": { + "display": "NU, Canada" + } + } + ], + "patient": { + "reference": "resource:0" + }, + "resourceType": "Immunization", + "lotNumber": "SOME_STRING", + "vaccineCode": { + "coding": [ + { + "code": "207", + "system": "http://hl7.org/fhir/sid/cvx" + } + ] + }, + "meta": { + "security": [ + { + "code": "IAL1.4", + "system": "https://smarthealth.cards/ial" + } + ] + }, + "occurrenceDateTime": "YYYY-MM-DD", + "manufacturer": { + "identifier": { + "system": "http://hl7.org/fhir/sid/mvx", + "value": "MOD" + } + } + }, + "fullUrl": "resource:2" + }, + { + "resource": { + "status": "completed", + "performer": [ + { + "actor": { + "display": "NU, Canada" + } + } + ], + "patient": { + "reference": "resource:0" + }, + "resourceType": "Immunization", + "lotNumber": "SOME_STRING", + "vaccineCode": { + "coding": [ + { + "code": "208", + "system": "http://hl7.org/fhir/sid/cvx" + } + ] + }, + "meta": { + "security": [ + { + "code": "IAL1.4", + "system": "https://smarthealth.cards/ial" + } + ] + }, + "occurrenceDateTime": "YYYY-MM-DD", + "manufacturer": { + "identifier": { + "system": "http://hl7.org/fhir/sid/mvx", + "value": "PFR" + } + } + }, + "fullUrl": "resource:3" + } + ], + "type": "collection" + }, + "fhirVersion": "4.0.1" + }, + "type": [ + "https://smarthealth.cards#health-card", + "https://smarthealth.cards#covid19", + "https://smarthealth.cards#immunization" + ] + }, + "nbf": 1635194428.0 +} \ No newline at end of file diff --git a/package.json b/package.json index 64b1ab5..179a958 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "grassroots_covidpass", - "version": "2.2.3", + "version": "2.2.5", "author": "Billy Lo ", "license": "MIT", "private": false, diff --git a/pages/index.tsx b/pages/index.tsx index 2ef68f8..a54bfd6 100644 --- a/pages/index.tsx +++ b/pages/index.tsx @@ -42,8 +42,8 @@ function Index(): JSX.Element { }, []); - const title = 'Grassroots - vaccination QR Code import for Apple and Android devices. Supports most Canadian provinces/territories and many US states'; - const description = 'Grassroots imports vaccination QR codes and stores them on Apple and Android devices in a convenient, secure, and privacy-respecting way. Supports SHC QR codes from most Canadian provinces/territories and many US states'; + const title = 'Grassroots - vaccination QR Code import for Apple and Android devices. Supports most Canadian provinces and territories'; + const description = 'Grassroots imports vaccination QR codes and stores them on Apple and Android devices in a convenient, secure, and privacy-respecting way. Supports SHC QR codes from most Canadian provinces and territories'; return ( <> @@ -80,11 +80,12 @@ function Index(): JSX.Element {
Alberta
British Columbia
-
Ontario
+
Manitoba (NEW QR CODES ONLY)
Newfoundland and Labrador
Northwest Territories
Nova Scotia
Nunavut
+
Ontario
Prince Edward Island
Québec
Saskatchewan
@@ -106,11 +107,12 @@ function Index(): JSX.Element {
Virginia
*/} {displayPassCount}

- Nunavut support added - Oct 25th update: + Nunavut and Manitoba support added - Oct 25th update:

  • Thank you very much to the Government of Nunavut for proactively reaching out to us to allow us to add support for Nunavummiut!
  • +
  • Support for newly-released Manitoba federal-standard QR codes
  • (Often-requested) support added for importing proof-of-vaccination into Google Pay on Android 8.1+
  • You can now scan QR codes directly off of paper or a screen with your camera, eliminating the need to upload PDFs or pictures
  • Support added for importing QR codes from images as well as from PDFs
  • diff --git a/public/locales/en/faq.yml b/public/locales/en/faq.yml index 37f8f49..5ce0753 100644 --- a/public/locales/en/faq.yml +++ b/public/locales/en/faq.yml @@ -18,17 +18,17 @@ redWhiteA: Yes you can! Just call the Provincial Vaccine Contact Centre at 1-833 noOhipQ: I do not have a health card. Can I still use this tool? noOhipA: First contact your local public health unit to verify your identity and receive a COVIDcovid ID/Personal Access Code. You can then call the Provincial Vaccine Contact Centre at 1-833-943-3900 to get an email copy of your receipt. colourQ: Why isn't the new Apple Wallet pass green/orange? -colourA: Because we now allow importing of QR codes from many provinces and states, and those provinces and states have different eligibility rules, we can no longer reliably determine who is or is not fully vaccinated at receipt import time. +colourA: Because we now allow importing of QR codes from many provinces and territories, and those regions have different eligibility rules, we can no longer reliably determine who is or is not fully vaccinated at receipt import time. dataQ: How is the data on my vaccination receipt processed? dataA: Inside your local web browser, it checks the uploaded PDF or image for a valid QR code. If present, the QR code is converted and added to Apple Wallet, Google Pay, or saved as a photo depending upon the option you choose. verifyQ: How can organizations validate this QR code? -verifyA: The %s is the verification application for the new official Ontario QR codes. For other provinces and states, the official validation systems they offer are the ones to use. +verifyA: The %s is the verification application for the new official Ontario QR codes. For other provinces and territories, the official validation systems they offer are the ones to use. familyQ: Can I use the same mobile wallet to store passes for my entire family? familyA: Yes. You can save multiple Apple Wallet, Google Pay, or Photo cards on your device without issues. freeQ: Is this free and non-commercial? freeA: Similar to %s, there are no commercial interests. Just volunteers trying to do our part to help the community. -otherProvincesQ: How about support for other provinces or US states? -otherProvincesA: We now have support for Ontario, British Columbia, Québec, Alberta, Saskatchewan, Nova Scotia, Yukon, Northwest Territories, Nunavut, Newfoundland and Labrador, Prince Edward Island, California, New York, New Jersey, Louisiana, Hawaii, Virginia, Utah, Kentucky, Oklahoma, New Mexico, Nevada, Connecticut, and Delaware QR codes. If you have a QR code that is not currently supported by our app, please contact us at %s +otherProvincesQ: How about support for other provinces and territories? +otherProvincesA: We now have support for Ontario, British Columbia, Québec, Alberta, Saskatchewan, Manitoba (new QR codes only), Nova Scotia, Yukon, Northwest Territories, Nunavut, Newfoundland and Labrador, and Prince Edward Island QR codes. If you have a QR code that is not currently supported by our app, please contact us at %s appleWatchQ: How about Apple Watch? appleWatchA: If you have iCloud sync enabled, you will see the pass on the watch too. Please be aware though that the new QR codes may be too large to display accurately on older Apple Watches due to their screen size. whyQ: Why have we taken time to build this? diff --git a/src/sentry.ts b/src/sentry.ts index 55538a9..8097d85 100644 --- a/src/sentry.ts +++ b/src/sentry.ts @@ -3,7 +3,7 @@ import { Integrations } from '@sentry/tracing'; export const initSentry = () => { SentryModule.init({ - release: 'grassroots_covidpass@2.2.3', // App version. Needs to be manually updated as we go unless we make the build smarter + release: 'grassroots_covidpass@2.2.5', // App version. Needs to be manually updated as we go unless we make the build smarter dsn: 'https://7120dcf8548c4c5cb148cdde2ed6a778@o1015766.ingest.sentry.io/5981424', integrations: [ new Integrations.BrowserTracing(), diff --git a/src/shc.js b/src/shc.js index b87c0e8..f183024 100644 --- a/src/shc.js +++ b/src/shc.js @@ -60,7 +60,7 @@ function decodeJWSPayload(decodedPayload) { try { //console.log(decompressedResult); scannedResult = decompressedResult.toString("utf8"); - resolve(JSON.parse(scannedResult)); + resolve(JSON.parse(scannedResult.trim())); } catch (e) { reject(e); }