working dashboard lookup.

fixed pouchdb plugins:
- upsert, find & crypto added (only find tested)
- added index
- using find for retrieving patients.
reorganizing package.json to move types into dev
updating tsconfig files.
TODO: fix "disabled" tsconfig entries .
This commit is contained in:
Jason Kulatunga 2022-10-06 22:19:48 -07:00
parent b13d3b78e0
commit 17fa95008a
8 changed files with 247 additions and 49 deletions

View File

@ -29,10 +29,9 @@
"@ng-bootstrap/ng-bootstrap": "10.0.0",
"@panva/oauth4webapi": "^1.1.3",
"@swimlane/ngx-datatable": "^20.0.0",
"@types/pouchdb": "^6.4.0",
"@types/pouchdb-find": "^7.3.0",
"bootstrap": "^4.4.1",
"chart.js": "2.9.4",
"crypto-pouch": "^4.0.1",
"fhirclient": "^2.5.1",
"humanize-duration": "^3.27.3",
"moment": "^2.29.4",
@ -41,6 +40,8 @@
"ngx-highlightjs": "^7.0.1",
"observable-webworker": "^4.0.1",
"pouchdb": "^7.3.0",
"pouchdb-find": "^7.3.0",
"pouchdb-upsert": "^2.2.0",
"rxjs": "~6.5.4",
"tslib": "^2.0.0",
"uuid": "^9.0.0",
@ -51,9 +52,11 @@
"@angular/cli": "^14.1.3",
"@angular/compiler-cli": "^14.1.3",
"@angular/language-service": "^14.1.3",
"@types/crypto-pouch": "^4.0.1",
"@types/jasmine": "~3.5.0",
"@types/jasminewd2": "~2.0.3",
"@types/node": "^12.11.1",
"@types/pouchdb": "^6.4.0",
"@types/pouchdb-find": "^7.3.0",
"codelyzer": "^5.1.2",
"jasmine-core": "~3.5.0",
"jasmine-spec-reporter": "~5.0.0",

View File

@ -148,7 +148,7 @@
<div class="media-body">
<h5>{{metadataSource[source.source_type]?.display}}</h5>
<p>
{{getPatientSummary(patientForSource[source.id]?.resource_raw)}}
{{getPatientSummary(patientForSource[source._id]?.resource_raw)}}
</p>
</div>

View File

@ -1,14 +1,27 @@
import {Source} from '../models/database/source';
import {IDatabasePaginatedResponse, IDatabaseDocument, IDatabaseRepository} from './interface';
import * as PouchDB from 'pouchdb/dist/pouchdb';
// import * as PouchFind from 'pouchdb/dist/pouchdb.find';
// import * as PouchDB from 'pouchdb';
import {DocType} from './constants';
import {ResourceFhir} from '../models/database/resource_fhir';
import {ResourceTypeCounts, SourceSummary} from '../models/fasten/source-summary';
import {Base64} from '../utils/base64';
import {Summary} from '../models/fasten/summary';
// PouchDB & plugins
import * as PouchDB from 'pouchdb/dist/pouchdb';
import * as PouchUpsert from 'pouchdb-upsert';
import * as PouchCrypto from 'crypto-pouch';
import find from 'pouchdb-find';
// import * as PouchFind from 'pouchdb/dist/pouchdb.find';
// import * as PouchDB from 'pouchdb';
// import * as PouchDB from 'pouchdb-browser';
// import PouchFind from 'pouchdb-find';
// import PouchDB from 'pouchdb-browser';
PouchDB.plugin(find);
PouchDB.plugin(PouchUpsert);
PouchDB.plugin(PouchCrypto);
export function NewRepositiory(databaseName: string = 'fasten'): IDatabaseRepository {
return new PouchdbRepository(databaseName)
}
@ -18,20 +31,18 @@ export class PouchdbRepository implements IDatabaseRepository {
localPouchDb: PouchDB.Database
constructor(public databaseName: string) {
//setup PouchDB Plugins
// PouchDB.plugin(PouchFind); //https://pouchdb.com/guides/mango-queries.html
//https://pouchdb.com/guides/mango-queries.html
this.localPouchDb = new PouchDB(databaseName);
//create any necessary indexes
// this index allows us to group by source_resource_type
// this.localPouchDb.createIndex({
// index: {fields: [
// //global
// 'doc_type',
// //only relevant for resource_fhir documents
// 'source_resource_type',
// ]}
// }, (msg) => {console.log("DB createIndex complete", msg)});
this.localPouchDb.createIndex({
index: {fields: [
'doc_type',
'source_resource_type',
]}
}, (msg) => {console.log("DB createIndex complete", msg)});
}
@ -48,13 +59,13 @@ export class PouchdbRepository implements IDatabaseRepository {
summary.sources = await this.GetSources()
.then((paginatedResp) => paginatedResp.rows)
summary.patients = []
// summary.patients = await this.GetDB().find({
// selector: {
// doc_type: DocType.ResourceFhir,
// source_resource_type: "Patient",
// }
// })
// summary.patients = []
summary.patients = await this.GetDB().find({
selector: {
doc_type: DocType.ResourceFhir,
source_resource_type: "Patient",
}
}).then((results) => results.docs)
summary.resource_type_counts = await this.findDocumentByPrefix(`${DocType.ResourceFhir}`, false)
.then((paginatedResp) => {
@ -112,7 +123,7 @@ export class PouchdbRepository implements IDatabaseRepository {
const sourceSummary = new SourceSummary()
sourceSummary.source = await this.GetSource(source_id)
sourceSummary.patient = await this.findDocumentByPrefix(`${DocType.ResourceFhir}:${Base64.Encode(source_id)}:Patient`, true)
.then((paginatedResp) => paginatedResp?.rows[0])
.then((paginatedResp) => new ResourceFhir(paginatedResp?.rows[0].doc))
sourceSummary.resource_type_counts = await this.findDocumentByPrefix(`${DocType.ResourceFhir}:${Base64.Encode(source_id)}`, false)
.then((paginatedResp) => {
@ -175,6 +186,8 @@ export class PouchdbRepository implements IDatabaseRepository {
///////////////////////////////////////////////////////////////////////////////////////
// CRUD Operators
// All functions below here will return the raw PouchDB responses, and may need to be wrapped in
// new ResourceFhir(result.doc)
///////////////////////////////////////////////////////////////////////////////////////
// Get the active PouchDB instance. Throws an error if no PouchDB instance is

View File

@ -5,15 +5,15 @@ import {Base64} from '../../utils/base64';
export class ResourceFhir {
_id?: string
_rev?: string
doc_type: string
doc_type: DocType = DocType.ResourceFhir
created_at?: Date
updated_at?: Date
source_id: string
source_resource_type: string
source_resource_id: string
source_id: string = ""
source_resource_type: string = ""
source_resource_id: string = ""
resource_raw: IResourceRaw
resource_raw?: IResourceRaw
constructor(object?: any) {
if(object){

View File

@ -2,6 +2,8 @@
"extends": "./tsconfig.json",
"compilerOptions": {
"skipLibCheck": true, //this is because fhirclient types.d.ts file includes reference to "http" (Node) library
//TODO open an upstream issue: Cannot find module 'http' or its corresponding type declarations.
"outDir": "./out-tsc/app",
"types": []
},

View File

@ -1,27 +1,38 @@
{
"compileOnSave": false,
"compilerOptions": {
"allowSyntheticDefaultImports": true,
//customizations
"allowSyntheticDefaultImports": true, // required for pouchdb/fhirclient or oauth2
"strictPropertyInitialization":false, // otherwise every class requires complex contrutor or defaults
"strict": false, //lots of failures
"noImplicitOverride": false, //requires override decorator everywhere
"noImplicitReturns": false, //lots of failures.
"typeRoots": ["node_modules/@types"],
"baseUrl": "./",
"outDir": "./dist/out-tsc",
"forceConsistentCasingInFileNames": true,
"noPropertyAccessFromIndexSignature": true,
"noFallthroughCasesInSwitch": true,
"sourceMap": true,
"declaration": false,
"downlevelIteration": true,
"experimentalDecorators": true,
"module": "esnext",
"moduleResolution": "node",
"importHelpers": true,
"target": "esnext",
"typeRoots": ["node_modules/@types"],
"target": "es2020",
"module": "es2020",
"lib": [
"es2019",
"es2018",
"dom"
"es2020",
"dom",
]
},
"angularCompilerOptions": {
"fullTemplateTypeCheck": true,
"strictInjectionParameters": true
//customizations
// "strictTemplates": true
"enableI18nLegacyMessageIdFormat": false,
"strictInjectionParameters": true,
"strictInputAccessModifiers": true,
}
}

View File

@ -2,15 +2,17 @@
{
"extends": "./tsconfig.json",
"compilerOptions": {
//customizations
"skipLibCheck": true, //without this the "dom" and the "webworker" libs conflict
"outDir": "./out-tsc/worker",
"lib": [
"es2019",
"es2018",
"webworker"
"es2020",
"webworker",
],
"types": []
},
"include": [
"src/**/*.worker.ts"
]
],
}

View File

@ -1650,6 +1650,13 @@
resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.12.tgz#6b2c510a7ad7039e98e7b8d3d6598f4359e5c080"
integrity sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==
"@types/crypto-pouch@^4.0.1":
version "4.0.1"
resolved "https://registry.yarnpkg.com/@types/crypto-pouch/-/crypto-pouch-4.0.1.tgz#b14446755d801d577f619bce9298a6993f4a2e22"
integrity sha512-hy+4lSlxJddNkxD6THnU8xplVX5br8Oty31VD+axcCCn35/eOoMxnCw72QiRHQ4B3kJMCPWAH9R6TiGzc+9z3Q==
dependencies:
"@types/pouchdb" "*"
"@types/debug@*":
version "4.1.7"
resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.7.tgz#7cc0ea761509124709b8b2d1090d8f6c17aadb82"
@ -1746,11 +1753,6 @@
resolved "https://registry.yarnpkg.com/@types/node/-/node-18.7.18.tgz#633184f55c322e4fb08612307c274ee6d5ed3154"
integrity sha512-m+6nTEOadJZuTPkKR/SYK3A2d7FZrgElol9UP1Kae90VVU4a6mxnPuLiIW1m4Cq4gZ/nWb9GrdVXJCoCazDAbg==
"@types/node@^12.11.1":
version "12.20.55"
resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.55.tgz#c329cbd434c42164f846b909bd6f85b5537f6240"
integrity sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==
"@types/parse-json@^4.0.0":
version "4.0.0"
resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0"
@ -1888,7 +1890,7 @@
"@types/pouchdb-core" "*"
"@types/pouchdb-find" "*"
"@types/pouchdb@^6.4.0":
"@types/pouchdb@*", "@types/pouchdb@^6.4.0":
version "6.4.0"
resolved "https://registry.yarnpkg.com/@types/pouchdb/-/pouchdb-6.4.0.tgz#f9c41ca64b23029f9bf2eb4bf6956e6431cb79f8"
integrity sha512-eGCpX+NXhd5VLJuJMzwe3L79fa9+IDTrAG3CPaf4s/31PD56hOrhDJTSmRELSXuiqXr6+OHzzP0PldSaWsFt7w==
@ -3153,6 +3155,14 @@ cross-spawn@^7.0.3:
shebang-command "^2.0.0"
which "^2.0.1"
crypto-pouch@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/crypto-pouch/-/crypto-pouch-4.0.1.tgz#fd915894c245caf2e8e76734ab5a1c5d787886e3"
integrity sha512-PZx0NYhbNjVIIULd7ZofkQ95o0CaPLhrlchUlLdX8X05ceJa8PycOE4fcw9UWGhcTxUnKiIPlmEeMNetifxkLQ==
dependencies:
garbados-crypt "^3.0.0-beta"
transform-pouch "^2.0.0"
css-blank-pseudo@^3.0.3:
version "3.0.3"
resolved "https://registry.yarnpkg.com/css-blank-pseudo/-/css-blank-pseudo-3.0.3.tgz#36523b01c12a25d812df343a32c322d2a2324561"
@ -4085,6 +4095,15 @@ function-bind@^1.1.1:
resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
garbados-crypt@^3.0.0-beta:
version "3.0.0-beta"
resolved "https://registry.yarnpkg.com/garbados-crypt/-/garbados-crypt-3.0.0-beta.tgz#9b70b62c31b9340be5c5a55c19dc3c14300af12c"
integrity sha512-Jw9AnRv4WcfuB7djeBc6IFmXz4VPf14srwvPuoIaOYPfuIibDl7prBC2j0+qL/NPZfwrVZer7h2o6TgGYFoOkA==
dependencies:
hash-wasm "^4.9.0"
tweetnacl "^1.0.3"
tweetnacl-util "^0.15.1"
gauge@^4.0.3:
version "4.0.4"
resolved "https://registry.yarnpkg.com/gauge/-/gauge-4.0.4.tgz#52ff0652f2bbf607a989793d53b751bef2328dce"
@ -4269,6 +4288,11 @@ has@^1.0.3:
dependencies:
function-bind "^1.1.1"
hash-wasm@^4.9.0:
version "4.9.0"
resolved "https://registry.yarnpkg.com/hash-wasm/-/hash-wasm-4.9.0.tgz#7e9dcc9f7d6bd0cc802f2a58f24edce999744206"
integrity sha512-7SW7ejyfnRxuOc7ptQHSf4LDoZaWOivfzqw+5rpcQku0nHfmicPKE51ra9BiRLAmT8+gGLestr1XroUkqdjL6w==
hdr-histogram-js@^2.0.1:
version "2.0.3"
resolved "https://registry.yarnpkg.com/hdr-histogram-js/-/hdr-histogram-js-2.0.3.tgz#0b860534655722b6e3f3e7dca7b78867cf43dcb5"
@ -5144,6 +5168,13 @@ license-webpack-plugin@4.0.2:
dependencies:
webpack-sources "^3.0.0"
lie@3.1.1:
version "3.1.1"
resolved "https://registry.yarnpkg.com/lie/-/lie-3.1.1.tgz#9a436b2cc7746ca59de7a41fa469b3efb76bd87e"
integrity sha512-RiNhHysUjhrDQntfYSfY4MU24coXXdEOgw9WGcKHNeEwffDYbF//u87M1EWaMGzuFoSbqW0C9C6lEEhDOAswfw==
dependencies:
immediate "~3.0.5"
lie@~3.3.0:
version "3.3.0"
resolved "https://registry.yarnpkg.com/lie/-/lie-3.3.0.tgz#dcf82dee545f46074daf200c7c1c5a08e0f40f6a"
@ -6397,6 +6428,125 @@ postcss@8.4.16, postcss@^8.2.14, postcss@^8.3.7, postcss@^8.4.7:
picocolors "^1.0.0"
source-map-js "^1.0.2"
pouchdb-abstract-mapreduce@7.3.0:
version "7.3.0"
resolved "https://registry.yarnpkg.com/pouchdb-abstract-mapreduce/-/pouchdb-abstract-mapreduce-7.3.0.tgz#cc178cb5d07f73b7c3f0f47a7f963defd4872b1c"
integrity sha512-+2fVt3SDh7D776lIGbYZOsKX5js1aUyUw7iJaTGitxSdQ2ObWSTrr3SUrj5Qo1CkgPXwRM3Tdoq/53JYAa2qCA==
dependencies:
pouchdb-binary-utils "7.3.0"
pouchdb-collate "7.3.0"
pouchdb-collections "7.3.0"
pouchdb-errors "7.3.0"
pouchdb-fetch "7.3.0"
pouchdb-mapreduce-utils "7.3.0"
pouchdb-md5 "7.3.0"
pouchdb-utils "7.3.0"
pouchdb-binary-utils@7.3.0:
version "7.3.0"
resolved "https://registry.yarnpkg.com/pouchdb-binary-utils/-/pouchdb-binary-utils-7.3.0.tgz#ecc235d28e7f226c168affcf53959675f78d5aaf"
integrity sha512-xvBH/XGHGcou2vkEzszJxkCc7YElfRUrkLUg51Jbdmh1mogLDUO0bU3Tj6TOIIJfRkQrU/HV+dDkMAhsil0amQ==
dependencies:
buffer-from "1.1.2"
pouchdb-collate@7.3.0:
version "7.3.0"
resolved "https://registry.yarnpkg.com/pouchdb-collate/-/pouchdb-collate-7.3.0.tgz#9276de7459a21a6aded71e3090d9b5d5488be19f"
integrity sha512-ys7rXKtEr6cfghgUjknwFJiOkITebV6JmeTybJKCzMV0r2luXu0OoPQsKVpE/wbM/3F5LxfpbFKGFpPcfGMvTA==
pouchdb-collections@7.3.0:
version "7.3.0"
resolved "https://registry.yarnpkg.com/pouchdb-collections/-/pouchdb-collections-7.3.0.tgz#3197dfbee8d69c3760229705fc5a73d0c8a896f1"
integrity sha512-Xr54m2+fErShXn+qAT4xwqJ+8NwddNPeTMJT4z4k1sZsrwfHmZsWbsKAyGPMF04eQaaU+7DDRMciu2VzaBUXyg==
pouchdb-errors@7.3.0:
version "7.3.0"
resolved "https://registry.yarnpkg.com/pouchdb-errors/-/pouchdb-errors-7.3.0.tgz#23bc328108778be0bfe22d69c0df67eab94aeca5"
integrity sha512-dTBbIC1BbCy6J9W/Csg5xROgb3wJN3HpbgAJHHSEtAkb8oA45KZmU3ZwEpNhf0AfPuQm4XgW1936PvlDlGgJiw==
dependencies:
inherits "2.0.4"
pouchdb-fetch@7.3.0:
version "7.3.0"
resolved "https://registry.yarnpkg.com/pouchdb-fetch/-/pouchdb-fetch-7.3.0.tgz#92b5d3b067d79ecbb9a61cbd52dce36e94dbbf28"
integrity sha512-8/lcg8iMDG+GVs1dHNXA4ktJSEpH71dHU3xesMJ25tNQOqfAaaWrkfz9j71ZYDDkveLYE6UjUzl/sDacu2hSjw==
dependencies:
abort-controller "3.0.0"
fetch-cookie "0.11.0"
node-fetch "2.6.7"
pouchdb-find@^7.3.0:
version "7.3.0"
resolved "https://registry.yarnpkg.com/pouchdb-find/-/pouchdb-find-7.3.0.tgz#27291c3d069f4f1a1a4913f63b1a148dac1b345b"
integrity sha512-EwhnfyxCAkKf8PG4tfndTTygEmtuz+o1LiZkxfPrflfXA3m1jo1ithib0hwBYtEwEYWuZxH6B8pRZutbLoQCGA==
dependencies:
pouchdb-abstract-mapreduce "7.3.0"
pouchdb-collate "7.3.0"
pouchdb-errors "7.3.0"
pouchdb-fetch "7.3.0"
pouchdb-md5 "7.3.0"
pouchdb-selector-core "7.3.0"
pouchdb-utils "7.3.0"
pouchdb-mapreduce-utils@7.3.0:
version "7.3.0"
resolved "https://registry.yarnpkg.com/pouchdb-mapreduce-utils/-/pouchdb-mapreduce-utils-7.3.0.tgz#21d42ea9a376b0fa2e61c8c1ac53f886ffdf3409"
integrity sha512-KDVSd+H2r+XWTrQfKWV71SknDDYRjYXoeWs0ZQl3xITHCcTl+fIgqyagg/XN+Zy/U9LeLPGMe2JdgPx9H8lJgw==
dependencies:
argsarray "0.0.1"
inherits "2.0.4"
pouchdb-collections "7.3.0"
pouchdb-utils "7.3.0"
pouchdb-md5@7.3.0:
version "7.3.0"
resolved "https://registry.yarnpkg.com/pouchdb-md5/-/pouchdb-md5-7.3.0.tgz#3a094e45ccce87271530ad3f37d7e82c53562bb0"
integrity sha512-wL04QgoKyd/L/TV5gxgcvlEyCJiZoXCOEFJklTzkdza/kBQNJGPH7i0ZhKa7Sb+AvZYoWZHddf1Zgv7rBScHkA==
dependencies:
pouchdb-binary-utils "7.3.0"
spark-md5 "3.0.2"
pouchdb-promise@^6.1.2:
version "6.4.3"
resolved "https://registry.yarnpkg.com/pouchdb-promise/-/pouchdb-promise-6.4.3.tgz#74516f4acf74957b54debd0fb2c0e5b5a68ca7b3"
integrity sha512-ruJaSFXwzsxRHQfwNHjQfsj58LBOY1RzGzde4PM5CWINZwFjCQAhZwfMrch2o/0oZT6d+Xtt0HTWhq35p3b0qw==
dependencies:
lie "3.1.1"
pouchdb-selector-core@7.3.0:
version "7.3.0"
resolved "https://registry.yarnpkg.com/pouchdb-selector-core/-/pouchdb-selector-core-7.3.0.tgz#1860afeec069ba4d5b79583b4b520dd2b643e3a3"
integrity sha512-sK/cCrIGeL9ImcMhKGcwa54+bzX7Wv4hhVV+oUW3T1Nasaoxh+Muem1GuA+x1+SbTCE8y37rUg8i6DIOhX51ew==
dependencies:
pouchdb-collate "7.3.0"
pouchdb-utils "7.3.0"
pouchdb-upsert@^2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/pouchdb-upsert/-/pouchdb-upsert-2.2.0.tgz#42b15e420848f3b294c35060589fdb51cf7f7f5f"
integrity sha512-hZceBqSnBLodlHtsJJdGJP9ZN+OHj3IXj8+YCBoHUPpzgLw04wfIOp+PLYROqyL6BODeYF00VFdiX8iIGcCtUw==
dependencies:
pouchdb-promise "^6.1.2"
pouchdb-utils@7.3.0:
version "7.3.0"
resolved "https://registry.yarnpkg.com/pouchdb-utils/-/pouchdb-utils-7.3.0.tgz#782df5ab3309edd5dc8c0f8ae4663bf0e67962e2"
integrity sha512-HH+5IXXWn/ZgVCSnrlydBMYn6MabT7RS7SNoo9w8qVH9efpZSp3eLchw6yMQNLw8LQefWmbbskiHV9VgJmSVWQ==
dependencies:
argsarray "0.0.1"
clone-buffer "1.0.0"
immediate "3.3.0"
inherits "2.0.4"
pouchdb-collections "7.3.0"
pouchdb-errors "7.3.0"
pouchdb-md5 "7.3.0"
uuid "8.3.2"
pouchdb-wrappers@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/pouchdb-wrappers/-/pouchdb-wrappers-5.0.0.tgz#1ae461f4cb4c02417c21e8dfeb1e6290918533ba"
integrity sha512-fXqsVn+rmlPtxaAIGaQP5TkiaT39OMwvMk+ScLLtHrmfXD2KBO6fe/qBl38N/rpTn0h/A058dPN4fLAHt550zA==
pouchdb@^7.3.0:
version "7.3.0"
resolved "https://registry.yarnpkg.com/pouchdb/-/pouchdb-7.3.0.tgz#440fbef12dfd8f9002320802528665e883a3b7f8"
@ -7535,6 +7685,13 @@ tr46@~0.0.3:
resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a"
integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==
transform-pouch@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/transform-pouch/-/transform-pouch-2.0.0.tgz#a5096904452ead2468027e63f42cb85476a1fe2b"
integrity sha512-nDZovo0U5o0UdMNL93fMQgGjrwH9h4F/a7qqRTnF6cVA+FfgyXiJPTrSuD+LmWSO7r2deZt0P0oeCD8hkgxl5g==
dependencies:
pouchdb-wrappers "^5.0.0"
tree-kill@1.2.2:
version "1.2.2"
resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc"
@ -7594,11 +7751,21 @@ tunnel-agent@^0.6.0:
dependencies:
safe-buffer "^5.0.1"
tweetnacl-util@^0.15.1:
version "0.15.1"
resolved "https://registry.yarnpkg.com/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz#b80fcdb5c97bcc508be18c44a4be50f022eea00b"
integrity sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==
tweetnacl@^0.14.3, tweetnacl@~0.14.0:
version "0.14.5"
resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==
tweetnacl@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596"
integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==
type-fest@^0.21.3:
version "0.21.3"
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37"