From 030a114987d5ac920ced67630b7b428d6b33fc65 Mon Sep 17 00:00:00 2001 From: Mike Wu Date: Tue, 2 Feb 2021 11:26:53 +1100 Subject: [PATCH 1/8] Initial files for magda items harvest. --- index.js | 11 +- lib/Models/MagdaSearchCatalogGroup.ts | 365 +++++++ lib/Models/MagdaSearchDefinitions.ts | 49 + lib/Traits/MagdaItemTraits.ts | 19 + tsconfig.json | 28 +- wwwroot/config.json | 3 +- wwwroot/init/magda.json | 38 + yarn.lock | 1264 +------------------------ 8 files changed, 548 insertions(+), 1229 deletions(-) create mode 100644 lib/Models/MagdaSearchCatalogGroup.ts create mode 100644 lib/Models/MagdaSearchDefinitions.ts create mode 100644 lib/Traits/MagdaItemTraits.ts create mode 100644 wwwroot/init/magda.json diff --git a/index.js b/index.js index c501862dd..135f6a7d7 100644 --- a/index.js +++ b/index.js @@ -3,7 +3,8 @@ /*global require,window */ var terriaOptions = { - baseUrl: 'build/TerriaJS' + baseUrl: 'build/TerriaJS', + cesiumIonAccessToken: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiI3NDU1NGQ4NC1iOWQ3LTRiYjgtYjNkNi1iZDdlZWY4ZTU4NjQiLCJpZCI6Mjk5MiwiaWF0IjoxNTM3NDQ1NzYxfQ.fjQUGky7Y4XZhBk1I6SyvzNlVufeEUJXQNHmNz8Ikiw' }; import { runInAction } from "mobx"; @@ -28,6 +29,8 @@ import render from './lib/Views/render'; import createGlobalBaseMapOptions from 'terriajs/lib/ViewModels/createGlobalBaseMapOptions'; import registerCatalogMembers from 'terriajs/lib/Models/registerCatalogMembers'; import defined from 'terriajs-cesium/Source/Core/defined'; +import CatalogMemberFactory from "terriajs/lib/Models/CatalogMemberFactory"; +import MagdaSearchCatalogGroup from "./lib/Models/MagdaSearchCatalogGroup"; // Register all types of catalog members in the core TerriaJS. If you only want to register a subset of them // (i.e. to reduce the size of your application if you don't actually use them all), feel free to copy a subset of @@ -56,6 +59,12 @@ const viewState = new ViewState({ registerCatalogMembers(); +CatalogMemberFactory.register( + MagdaSearchCatalogGroup.type, + MagdaSearchCatalogGroup +); + + if (process.env.NODE_ENV === "development") { window.viewState = viewState; } diff --git a/lib/Models/MagdaSearchCatalogGroup.ts b/lib/Models/MagdaSearchCatalogGroup.ts new file mode 100644 index 000000000..282082eff --- /dev/null +++ b/lib/Models/MagdaSearchCatalogGroup.ts @@ -0,0 +1,365 @@ +import i18next from "i18next"; +import { action, computed, runInAction } from "mobx"; +import URI from "urijs"; +import loadJson from "terriajs/lib/Core/loadJson"; +import TerriaError from "terriajs/lib/Core/TerriaError"; +import AccessControlMixin from "terriajs/lib/ModelMixins/AccessControlMixin"; +import CatalogMemberMixin from "terriajs/lib/ModelMixins/CatalogMemberMixin"; +import GroupMixin from "terriajs/lib/ModelMixins/GroupMixin"; +import MagdaReferenceTraits from "terriajs/lib/Traits/MagdaReferenceTraits"; +import { + MagdaItem, + MagdaPortalGroup, + MagdaGroupSearchResponse, + MagdaRecordSearchResponse +} from "./MagdaSearchDefinitions"; +import CatalogGroup from "terriajs/lib/Models//CatalogGroupNew"; +import CommonStrata from "terriajs/lib/Models//CommonStrata"; +import CreateModel from "terriajs/lib/Models//CreateModel"; +import LoadableStratum from "terriajs/lib/Models//LoadableStratum"; +import { BaseModel } from "terriajs/lib/Models//Model"; +import proxyCatalogItemUrl from "terriajs/lib/Models//proxyCatalogItemUrl"; +import StratumOrder from "terriajs/lib/Models//StratumOrder"; +import Terria from "terriajs/lib/Models//Terria"; +import CatalogGroupTraits from "terriajs/lib/Traits/CatalogGroupTraits"; + +export class MagdaStratum extends LoadableStratum(MagdaReferenceTraits) { + static stratumName = "magdaPortal"; + groups: CatalogGroup[] = []; + filteredGroups: CatalogGroup[] = []; + dataSets: MagdaItem[] = []; + filteredDatasets: MagdaItem[] = []; + + constructor( + readonly _catalogGroup: MagdaSearchCatalogGroup, + readonly _magdaItemResponse: MagdaRecordSearchResponse, + readonly _magdaGroupResponse: MagdaGroupSearchResponse | undefined + ) { + super(); + this.dataSets = this.getDataSets(); + this.groups = this.getGroups(); + this.filteredGroups = this.getFilteredGroups(); + } + + duplicateLoadableStratum(model: BaseModel): this { + return new MagdaStratum( + model as MagdaSearchCatalogGroup, + this._magdaItemResponse, + this._magdaGroupResponse + ) as this; + } + + static async load( + catalogGroup: MagdaSearchCatalogGroup + ): Promise { + let magdaGroupSearchResponse: + | MagdaGroupSearchResponse + | undefined = undefined; + let magdaItemSearchResponse: + | MagdaRecordSearchResponse + | undefined = undefined; + + // /api/v0/search/datasets?publisher=AADC&format=geojson&format=kml&format=kmz&format=wms&format=wfs&publishingState=published + const itemSearchUri = new URI( + "https://data.gov.au/api/v0/search/datasets?publisher=City%20of%20Launceston&format=ogc%20wms&publishingState=published&limit=5" + ); + // const itemSearchUri = new URI(catalogGroup.url) + // .segment("/api/v0/search/datasets") + // .addQuery({ limit: 100, publisher: "json" }); + + magdaItemSearchResponse = await paginateThroughResults( + itemSearchUri, + catalogGroup + ); + + if (magdaItemSearchResponse === undefined) return undefined; + + return new MagdaStratum( + catalogGroup, + magdaItemSearchResponse, + magdaGroupSearchResponse + ); + } + + @computed + get members(): MagdaItem[] { + return this.dataSets; + } + + private getDataSets(): MagdaItem[] { + const dataSets: MagdaItem[] = this._magdaItemResponse.dataSets.map(ds => { + return { id: ds.identifier, name: ds.title }; + }); + return dataSets; + } + + private getGroups(): CatalogGroup[] { + let groups: CatalogGroup[] = [ + ...createUngroupedGroup(this), + ...createGroupsByPortalGroups(this) + ]; + groups.sort(function(a, b) { + if (a.nameInCatalog === undefined || b.nameInCatalog === undefined) + return 0; + if (a.nameInCatalog < b.nameInCatalog) { + return -1; + } + if (a.nameInCatalog > b.nameInCatalog) { + return 1; + } + return 0; + }); + return groups; + } + + private getFilteredGroups(): CatalogGroup[] { + if (this.groups.length === 0) return []; + return this.groups; + } + + @action + createMembersFromDatasets() { + const items = this.dataSets.map(ds => { + return { + id: ds.id, + name: ds.name, + recordId: ds.id, + url: "https://data.gov.au", + type: "magda", + isMappable: true + }; + }); + + const theGroup = this.groups.length > 0 ? this.groups[0] : undefined; + theGroup?.terria.catalog.group.addMembersFromJson( + CommonStrata.definition, + items + ); + // theGroup?.addMembersFromJson(CommonStrata.definition, items); + theGroup?.terria.catalog.group.loadMembers(); + } + + @action + addCatalogItemToCatalogGroup( + catalogItem: any, + dataset: MagdaItem, + groupId: string + ) { + let group: + | CatalogGroup + | undefined = this._catalogGroup.terria.getModelById( + CatalogGroup, + groupId + ); + if (group !== undefined) { + group.add(CommonStrata.definition, catalogItem); + } + } + + // @action + // addCatalogItemByPortalGroupsToCatalogGroup( + // catalogItem: any, + // dataset: MagdaItem + // ) { + // if (dataset.groupId === undefined) { + // const groupId = this._catalogGroup.uniqueId + "/ungrouped"; + // this.addCatalogItemToCatalogGroup(catalogItem, dataset, groupId); + // return; + // } + // const groupId = this._catalogGroup.uniqueId + "/" + dataset.groupId; + // this.addCatalogItemToCatalogGroup(catalogItem, dataset, groupId); + // } + + @action + createMemberFromDataset(dataSet: MagdaItem) { + const json = { + name: dataSet.title, + recordId: dataSet.id, + url: "https://data.gov.au", + type: "magda", + isMappable: true + }; + const theGroup = this.groups.length > 0 ? this.groups[0] : undefined; + theGroup?.addMembersFromJson(CommonStrata.definition, [json]); + theGroup?.loadMembers(); + } +} + +StratumOrder.addLoadStratum(MagdaStratum.stratumName); + +export default class MagdaSearchCatalogGroup extends GroupMixin( + CatalogMemberMixin(CreateModel(CatalogGroupTraits)) +) { + static readonly type = "magda-portal"; + url: string = ""; + hideEmptyGroups: boolean = true; + + get typeName() { + return i18next.t("models.magdaPortal.nameGroup"); + } + + @computed + get cacheDuration(): string { + return "0d"; + } + + protected forceLoadMetadata(): Promise { + const portalStratum = ( + this.strata.get(MagdaStratum.stratumName) + ); + if (!portalStratum) { + return MagdaStratum.load(this).then(stratum => { + if (stratum === undefined) return; + runInAction(() => { + this.strata.set(MagdaStratum.stratumName, stratum); + }); + }); + } else { + return Promise.resolve(); + } + } + + protected forceLoadMembers(): Promise { + return this.loadMetadata().then(() => { + const portalStratum = ( + this.strata.get(MagdaStratum.stratumName) + ); + if (portalStratum) { + portalStratum.createMembersFromDatasets(); + } + }); + } +} + +function createGroup(groupId: string, terria: Terria, groupName: string) { + const g = new CatalogGroup(groupId, terria); + g.setTrait(CommonStrata.definition, "name", groupName); + terria.addModel(g); + return g; +} + +function createUngroupedGroup(magdaPortal: MagdaStratum) { + const groupId = magdaPortal._catalogGroup.uniqueId + "/ungrouped"; + let existingGroup = magdaPortal._catalogGroup.terria.getModelById( + CatalogGroup, + groupId + ); + if (existingGroup === undefined) { + existingGroup = createGroup( + groupId, + magdaPortal._catalogGroup.terria, + "unknown" + ); + } + return [existingGroup]; +} + +function createGroupsByPortalGroups(magdaPortal: MagdaStratum) { + if (magdaPortal._magdaGroupResponse === undefined) return []; + const out: CatalogGroup[] = []; + magdaPortal._magdaGroupResponse.results.forEach((group: MagdaPortalGroup) => { + const groupId = magdaPortal._catalogGroup.uniqueId + "/" + group.id; + let existingGroup = magdaPortal._catalogGroup.terria.getModelById( + CatalogGroup, + groupId + ); + if (existingGroup === undefined) { + existingGroup = createGroup( + groupId, + magdaPortal._catalogGroup.terria, + group.title + ); + if (group.description) { + existingGroup.setTrait( + CommonStrata.definition, + "description", + group.description + ); + } + } + + if ( + AccessControlMixin.isMixedInto(existingGroup) && + group.access !== undefined + ) { + existingGroup.setAccessType(group.access); + } + out.push(existingGroup); + }); + return out; +} + +async function paginateThroughResults( + uri: any, + catalogGroup: MagdaSearchCatalogGroup +) { + const magdaPortalResponse = await getPortalInformation(uri, catalogGroup); + if (magdaPortalResponse === undefined || !magdaPortalResponse) { + throw new TerriaError({ + title: i18next.t("models.magdaPortal.errorLoadingTitle"), + message: i18next.t("models.magdaPortal.errorLoadingMessage", { + email: + '' + + catalogGroup.terria.supportEmail + + "" + }) + }); + return; + } + let nextStart: number = -1; + while (nextStart !== -1) { + nextStart = await getMoreResults( + uri, + catalogGroup, + magdaPortalResponse, + nextStart + ); + } + return magdaPortalResponse; +} + +async function getPortalInformation( + uri: any, + catalogGroup: MagdaSearchCatalogGroup +) { + try { + const response = await loadJson( + proxyCatalogItemUrl( + catalogGroup, + uri.toString(), + catalogGroup.cacheDuration + ) + ); + return response; + } catch (err) { + console.log(err); + return undefined; + } +} + +async function getMoreResults( + uri: any, + catalogGroup: MagdaSearchCatalogGroup, + baseResults: MagdaRecordSearchResponse, + nextResultStart: number +) { + uri.setQuery("start", nextResultStart); + try { + const magdaItemSearchResponse = await getPortalInformation( + uri, + catalogGroup + ); + if (magdaItemSearchResponse === undefined) { + return -1; + } + baseResults.dataSets = baseResults.dataSets.concat( + magdaItemSearchResponse.results + ); + return magdaItemSearchResponse.nextStart; + } catch (err) { + console.log(err); + return -1; + } +} diff --git a/lib/Models/MagdaSearchDefinitions.ts b/lib/Models/MagdaSearchDefinitions.ts new file mode 100644 index 000000000..69eaeae91 --- /dev/null +++ b/lib/Models/MagdaSearchDefinitions.ts @@ -0,0 +1,49 @@ +export interface MagdaItem { + id: string; + name?: string; + title?: string; + description?: string; +} + +export interface MagdaPortalGroup { + id: string; + title: string; + isInvitationOnly: boolean; + owner: string; + description: string; + snippet: string; + tags: string[]; + phone: string; + sortField: string; + sortOrder: string; + isViewOnly: boolean; + isFav: boolean; + thumbnail: string; + created: number; + modified: number; + access: string; + userMembership?: { + username: string; + memberType: string; + }; + protected: boolean; + autoJoin: boolean; + hasCategorySchema: boolean; + isOpenData: boolean; +} + +export interface MagdaGroupSearchResponse { + total: number; + start: number; + num: number; + nextStart: number; + results: MagdaPortalGroup[]; +} + +export interface MagdaRecordSearchResponse { + total: number; + start: number; + num: number; + nextStart: number; + dataSets: any[]; +} diff --git a/lib/Traits/MagdaItemTraits.ts b/lib/Traits/MagdaItemTraits.ts new file mode 100644 index 000000000..aa58b4edb --- /dev/null +++ b/lib/Traits/MagdaItemTraits.ts @@ -0,0 +1,19 @@ +import CatalogMemberReferenceTraits from "terriajs/lib/Traits/CatalogMemberReferenceTraits"; +import mixTraits from "terriajs/lib/Traits//mixTraits"; +// import CatalogMemberTraits from "terriajs/lib/Traits//CatalogMemberTraits"; +import MappableTraits from "terriajs/lib/Traits//MappableTraits"; +import primitiveTrait from "terriajs/lib/Traits//primitiveTrait"; +import UrlTraits from "terriajs/lib/Traits//UrlTraits"; + +export default class MagdaItemTraits extends mixTraits( + UrlTraits, + MappableTraits, + CatalogMemberReferenceTraits +) { + @primitiveTrait({ + name: "Item ID", + description: "The ID of the portal item.", + type: "string" + }) + itemId?: string; +} diff --git a/tsconfig.json b/tsconfig.json index d9da07a0e..99d65e032 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,3 +1,27 @@ { - "extends": "terriajs/tsconfig.json" -} \ No newline at end of file + "compilerOptions": { + "target": "es2018", + "experimentalDecorators": true, + "module": "esNext", + "moduleResolution": "node", + "sourceMap": true, + "strict": true, + "allowJs": true, + "jsx": "preserve", + "esModuleInterop": true, + "allowSyntheticDefaultImports": true, + "outDir": "ts-out", + "resolveJsonModule": true, + "noImplicitAny": true, + + "baseUrl": "./", + "paths": { + "terrace/*": ["lib/*"] + } + }, + "include": [ + "./lib/**/*", + "./test/**/*" + ] + } + \ No newline at end of file diff --git a/wwwroot/config.json b/wwwroot/config.json index 782e3caed..0bb498275 100644 --- a/wwwroot/config.json +++ b/wwwroot/config.json @@ -1,9 +1,10 @@ { /* Names of init files (in wwwroot/init), without the .json extension, to load by default */ initializationUrls: [ - "simple" + "magda" ], parameters: { + cesiumIonAccessToken: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiI0Yjk4NzIzOS02M2U2LTRjNjgtOTNlMC1hYmUyMGViYjM5MzMiLCJpZCI6MjU5LCJpYXQiOjE2MTIyMDExMzR9.NBGvD2I8hg3CE4o7SZmd_UXyVpthuq19XQoc76VUrZ4", googleUrlShortenerKey: null, googleAnalyticsKey: null, googleAnalyticsOptions: null, diff --git a/wwwroot/init/magda.json b/wwwroot/init/magda.json new file mode 100644 index 000000000..538731d07 --- /dev/null +++ b/wwwroot/init/magda.json @@ -0,0 +1,38 @@ +{ + "homeCamera": { + "north": -8, + "east": 158, + "south": -45, + "west": 109 + }, + "catalog": [ + + { + "type": "magda", + "url": "https://data.gov.au", + "name": "Magda Item 1", + "isMappable": true, + "recordId": "ds-dga-2bf938e7-f98c-4f30-8cae-cf4905fcf429" + }, + { + "type": "magda", + "url": "https://data.gov.au", + "name": "Magda Item 2", + "isMappable": true, + "recordId": "ds-launceston-https://opendata.launceston.tas.gov.au/datasets/cc86127bce3447d6bc49b30a46209a39_20" + }, + { + "type": "group", + "name": "Harvested DGA", + "isOpen": false, + "members": [ + { + "type": "magda-portal", + "name": "Group 1", + "url": "https://data.gov.au/api/v0/search/organisations?limit=1000" + } + ] + } + ] + } + \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index 505fc604b..2b6e73b10 100644 --- a/yarn.lock +++ b/yarn.lock @@ -58,15 +58,6 @@ jsesc "^2.5.1" source-map "^0.5.0" -"@babel/generator@^7.12.5", "@babel/generator@^7.4.0": - version "7.12.5" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.12.5.tgz#a2c50de5c8b6d708ab95be5e6053936c1884a4de" - integrity sha512-m16TQQJ8hPt7E+OS/XVQg/7U184MLXtvuGbCdA7na61vha+ImkyyNM/9DDA0unYCVZn3ZOhng+qz48/KBOT96A== - dependencies: - "@babel/types" "^7.12.5" - jsesc "^2.5.1" - source-map "^0.5.0" - "@babel/helper-annotate-as-pure@^7.0.0", "@babel/helper-annotate-as-pure@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz#5bf0d495a3f757ac3bda48b5bf3b3ba309c72ba3" @@ -298,11 +289,6 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.11.0.tgz#a9d7e11aead25d3b422d17b2c6502c8dddef6a5d" integrity sha512-qvRvi4oI8xii8NllyEc4MDJjuZiNaRzyb7Y7lup1NqJV8TZHF4O27CcP+72WPn/k1zkgJ6WJfnIbk4jTsVAZHw== -"@babel/parser@^7.12.5", "@babel/parser@^7.4.3", "@babel/parser@^7.9.4": - version "7.12.5" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.5.tgz#b4af32ddd473c0bfa643bd7ff0728b8e71b81ea0" - integrity sha512-FVM6RZQ0mn2KCf1VUED7KepYeUWoVShczewOCfm3nzoBybaih51h+sYVVGthW9M6lPByEPTQf+xm27PBdlpwmQ== - "@babel/plugin-proposal-async-generator-functions@^7.10.4": version "7.10.5" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.5.tgz#3491cabf2f7c179ab820606cec27fed15e0e8558" @@ -440,7 +426,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-syntax-dynamic-import@^7.8.0", "@babel/plugin-syntax-dynamic-import@^7.8.3": +"@babel/plugin-syntax-dynamic-import@^7.8.0": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== @@ -947,7 +933,7 @@ dependencies: regenerator-runtime "^0.13.4" -"@babel/template@^7.10.4", "@babel/template@^7.4.0": +"@babel/template@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.10.4.tgz#3251996c4200ebc71d1a8fc405fba940f36ba278" integrity sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA== @@ -971,21 +957,6 @@ globals "^11.1.0" lodash "^4.17.19" -"@babel/traverse@^7.4.3": - version "7.12.5" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.12.5.tgz#78a0c68c8e8a35e4cacfd31db8bb303d5606f095" - integrity sha512-xa15FbQnias7z9a62LwYAA5SZZPkHIXpd42C6uW68o8uTuua96FHZy1y61Va5P/i83FAAcMpW8+A/QayntzuqA== - dependencies: - "@babel/code-frame" "^7.10.4" - "@babel/generator" "^7.12.5" - "@babel/helper-function-name" "^7.10.4" - "@babel/helper-split-export-declaration" "^7.11.0" - "@babel/parser" "^7.12.5" - "@babel/types" "^7.12.5" - debug "^4.1.0" - globals "^11.1.0" - lodash "^4.17.19" - "@babel/types@^7.10.4", "@babel/types@^7.10.5", "@babel/types@^7.11.0", "@babel/types@^7.4.4", "@babel/types@^7.7.0": version "7.11.0" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.11.0.tgz#2ae6bf1ba9ae8c3c43824e5861269871b206e90d" @@ -995,15 +966,6 @@ lodash "^4.17.19" to-fast-properties "^2.0.0" -"@babel/types@^7.12.5", "@babel/types@^7.4.0": - version "7.12.5" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.12.5.tgz#5d6b4590cfe90c0c8d7396c83ffd9fc28b5a6450" - integrity sha512-gyTcvz7JFa4V45C0Zklv//GmFOAal5fL23OWpBLqc4nZ4Yrz67s4kCNwSK1Gu0MXGTU8mRY3zJYtacLdKXlzig== - dependencies: - "@babel/helper-validator-identifier" "^7.10.4" - lodash "^4.17.19" - to-fast-properties "^2.0.0" - "@emotion/is-prop-valid@^0.8.8": version "0.8.8" resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz#db28b1c4368a259b60a97311d6a952d4fd01ac1a" @@ -1720,16 +1682,6 @@ adjust-sourcemap-loader@2.0.0: object-path "0.11.4" regex-parser "2.2.10" -adm-zip@~0.4.3: - version "0.4.16" - resolved "https://registry.yarnpkg.com/adm-zip/-/adm-zip-0.4.16.tgz#cf4c508fdffab02c269cbc7f471a875f05570365" - integrity sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg== - -after@0.8.2: - version "0.8.2" - resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f" - integrity sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8= - agent-base@4, agent-base@^4.2.0, agent-base@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.3.0.tgz#8165f01c436009bccad0b1d122f05ed770efc6ee" @@ -1737,18 +1689,6 @@ agent-base@4, agent-base@^4.2.0, agent-base@^4.3.0: dependencies: es6-promisify "^5.0.0" -agent-base@5: - version "5.1.1" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-5.1.1.tgz#e8fb3f242959db44d63be665db7a8e739537a32c" - integrity sha512-TMeqbNl2fMW0nMjTEPOwe3J/PRFP4vqeoNuQMG0HlMrtm5QxKqdvAkZ1pRBQ/ulIyDD5Yq0nJ7YbdD8ey0TO3g== - -agent-base@6: - version "6.0.2" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" - integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== - dependencies: - debug "4" - agent-base@~4.2.1: version "4.2.1" resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.2.1.tgz#d89e5999f797875674c07d87f260fc41e83e8ca9" @@ -1766,16 +1706,6 @@ ajv-keywords@^3.1.0, ajv-keywords@^3.4.1: resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== -ajv@^5.0.0: - version "5.5.2" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965" - integrity sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU= - dependencies: - co "^4.6.0" - fast-deep-equal "^1.0.0" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.3.0" - ajv@^6.1.0, ajv@^6.10.2, ajv@^6.12.2, ajv@^6.12.3, ajv@^6.9.1: version "6.12.3" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.3.tgz#18c5af38a111ddeb4f2697bd78d68abc1cabd706" @@ -1907,13 +1837,6 @@ append-buffer@^1.0.2: dependencies: buffer-equal "^1.0.0" -append-transform@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/append-transform/-/append-transform-1.0.0.tgz#046a52ae582a228bd72f58acfbe2967c678759ab" - integrity sha512-P009oYkeHyU742iSZJzZZywj4QRJdnTWffaKuJQLablCZ1uz6/cW4yaRgcDaoQ+uwOxxnt0gRUcwfsNP2ri0gw== - dependencies: - default-require-extensions "^2.0.0" - aproba@^1.0.3, aproba@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" @@ -1931,22 +1854,6 @@ archiver-utils@^1.3.0: normalize-path "^2.0.0" readable-stream "^2.0.0" -archiver-utils@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/archiver-utils/-/archiver-utils-2.1.0.tgz#e8a460e94b693c3e3da182a098ca6285ba9249e2" - integrity sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw== - dependencies: - glob "^7.1.4" - graceful-fs "^4.2.0" - lazystream "^1.0.0" - lodash.defaults "^4.2.0" - lodash.difference "^4.5.0" - lodash.flatten "^4.4.0" - lodash.isplainobject "^4.0.6" - lodash.union "^4.6.0" - normalize-path "^3.0.0" - readable-stream "^2.0.0" - archiver@^1.1.0: version "1.3.0" resolved "https://registry.yarnpkg.com/archiver/-/archiver-1.3.0.tgz#4f2194d6d8f99df3f531e6881f14f15d55faaf22" @@ -1962,19 +1869,6 @@ archiver@^1.1.0: walkdir "^0.0.11" zip-stream "^1.1.0" -archiver@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/archiver/-/archiver-3.1.1.tgz#9db7819d4daf60aec10fe86b16cb9258ced66ea0" - integrity sha512-5Hxxcig7gw5Jod/8Gq0OneVgLYET+oNHcxgWItq4TbhOzRLKNAFUb9edAftiMKXvXfCB0vbGrJdZDNq0dWMsxg== - dependencies: - archiver-utils "^2.1.0" - async "^2.6.3" - buffer-crc32 "^0.2.1" - glob "^7.1.4" - readable-stream "^3.4.0" - tar-stream "^2.1.0" - zip-stream "^2.1.2" - archy@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" @@ -2137,11 +2031,6 @@ array.prototype.flatmap@^1.2.3: es-abstract "^1.17.0-next.1" function-bind "^1.1.1" -arraybuffer.slice@~0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz#3bbc4275dd584cc1b10809b89d4e8b63a69e7675" - integrity sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog== - arrify@^1.0.0, arrify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" @@ -2250,7 +2139,7 @@ async@2.6.1: dependencies: lodash "^4.17.10" -async@^2.0.0, async@^2.1.2, async@^2.6, async@^2.6.0, async@^2.6.1, async@^2.6.2, async@^2.6.3, async@~2.6.1: +async@^2.0.0, async@^2.6, async@^2.6.0, async@^2.6.1, async@^2.6.2, async@^2.6.3, async@~2.6.1: version "2.6.3" resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== @@ -2314,15 +2203,6 @@ axios@^0.19.0: dependencies: follow-redirects "1.5.10" -babel-code-frame@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" - integrity sha1-Y/1D99weO7fONZR9uP42mj9Yx0s= - dependencies: - chalk "^1.1.3" - esutils "^2.0.2" - js-tokens "^3.0.2" - babel-eslint@^10.0.1: version "10.1.0" resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.1.0.tgz#6968e568a910b78fb3779cdd8b6ac2f479943232" @@ -2335,20 +2215,6 @@ babel-eslint@^10.0.1: eslint-visitor-keys "^1.0.0" resolve "^1.12.0" -babel-generator@^6.18.0: - version "6.26.1" - resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" - integrity sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA== - dependencies: - babel-messages "^6.23.0" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - detect-indent "^4.0.0" - jsesc "^1.3.0" - lodash "^4.17.4" - source-map "^0.5.7" - trim-right "^1.0.1" - babel-loader@^8.0.5: version "8.1.0" resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.1.0.tgz#c611d5112bd5209abe8b9fa84c3e4da25275f1c3" @@ -2360,13 +2226,6 @@ babel-loader@^8.0.5: pify "^4.0.1" schema-utils "^2.6.5" -babel-messages@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" - integrity sha1-8830cDhYA1sqKVHG7F7fbGLyYw4= - dependencies: - babel-runtime "^6.22.0" - babel-plugin-dynamic-import-node@^2.3.3: version "2.3.3" resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" @@ -2381,7 +2240,7 @@ babel-plugin-jsx-control-statements@^4.0.0: dependencies: "@babel/core" "^7.1.2" -"babel-plugin-styled-components@>= 1", babel-plugin-styled-components@^1.10.7: +"babel-plugin-styled-components@>= 1": version "1.11.1" resolved "https://registry.yarnpkg.com/babel-plugin-styled-components/-/babel-plugin-styled-components-1.11.1.tgz#5296a9e557d736c3186be079fff27c6665d63d76" integrity sha512-YwrInHyKUk1PU3avIRdiLyCpM++18Rs1NgyMXEAQC33rIXs/vro0A+stf4sT0Gf22Got+xRWB8Cm0tw+qkRzBA== @@ -2396,7 +2255,7 @@ babel-plugin-syntax-jsx@^6.18.0: resolved "https://registry.yarnpkg.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946" integrity sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY= -babel-runtime@6.x, babel-runtime@^6.22.0, babel-runtime@^6.26.0: +babel-runtime@6.x, babel-runtime@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= @@ -2404,52 +2263,11 @@ babel-runtime@6.x, babel-runtime@^6.22.0, babel-runtime@^6.26.0: core-js "^2.4.0" regenerator-runtime "^0.11.0" -babel-template@^6.16.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" - integrity sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI= - dependencies: - babel-runtime "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - lodash "^4.17.4" - -babel-traverse@^6.18.0, babel-traverse@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" - integrity sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4= - dependencies: - babel-code-frame "^6.26.0" - babel-messages "^6.23.0" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - debug "^2.6.8" - globals "^9.18.0" - invariant "^2.2.2" - lodash "^4.17.4" - -babel-types@^6.18.0, babel-types@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" - integrity sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc= - dependencies: - babel-runtime "^6.26.0" - esutils "^2.0.2" - lodash "^4.17.4" - to-fast-properties "^1.0.3" - babylon@7.0.0-beta.19: version "7.0.0-beta.19" resolved "https://registry.yarnpkg.com/babylon/-/babylon-7.0.0-beta.19.tgz#e928c7e807e970e0536b078ab3e0c48f9e052503" integrity sha512-Vg0C9s/REX6/WIXN37UKpv5ZhRi6A4pjHlpkE34+8/a6c2W1Q692n3hmc+SZG5lKRnaExLUbxtJ1SVT+KaCQ/A== -babylon@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" - integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== - bach@^1.0.0: version "1.2.0" resolved "https://registry.yarnpkg.com/bach/-/bach-1.2.0.tgz#4b3ce96bf27134f79a1b414a51c14e34c3bd9880" @@ -2465,11 +2283,6 @@ bach@^1.0.0: async-settle "^1.0.0" now-and-later "^2.0.0" -backo2@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" - integrity sha1-MasayLEpNjRj41s+u2n038+6eUc= - balanced-match@^0.4.2: version "0.4.2" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" @@ -2487,21 +2300,16 @@ base-x@^3.0.5: dependencies: safe-buffer "^5.0.1" -base64-arraybuffer@0.1.5, base64-arraybuffer@^0.1.5: +base64-arraybuffer@^0.1.5: version "0.1.5" resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8" integrity sha1-c5JncZI7Whl0etZmqlzUv5xunOg= -base64-js@^1.0.2, base64-js@^1.3.1: +base64-js@^1.0.2: version "1.3.1" resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g== -base64id@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/base64id/-/base64id-1.0.0.tgz#47688cb99bb6804f0e06d3e763b1c32e57d8e6b6" - integrity sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY= - base@^0.11.1: version "0.11.2" resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" @@ -2534,13 +2342,6 @@ bcrypt-pbkdf@^1.0.0: dependencies: tweetnacl "^0.14.3" -better-assert@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/better-assert/-/better-assert-1.0.2.tgz#40866b9e1b9e0b55b481894311e68faffaebc522" - integrity sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI= - dependencies: - callsite "1.0.0" - big.js@^3.1.3: version "3.2.0" resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e" @@ -2584,25 +2385,11 @@ bl@^1.0.0: readable-stream "^2.3.5" safe-buffer "^5.1.1" -bl@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/bl/-/bl-4.0.3.tgz#12d6287adc29080e22a705e5764b2a9522cdc489" - integrity sha512-fs4G6/Hu4/EE+F75J8DuN/0IpQqNjAdC7aEQv7Qt8MHGUH7Ckv2MwTEEeN9QehD0pfIDkMI1bkHYkKy7xHyKIg== - dependencies: - buffer "^5.5.0" - inherits "^2.0.4" - readable-stream "^3.4.0" - blessed@^0.1.81: version "0.1.81" resolved "https://registry.yarnpkg.com/blessed/-/blessed-0.1.81.tgz#f962d687ec2c369570ae71af843256e6d0ca1129" integrity sha1-+WLWh+wsNpVwrnGvhDJW5tDKESk= -blob@0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.5.tgz#d680eeef25f8cd91ad533f5b01eed48e64caf683" - integrity sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig== - block-stream@*: version "0.0.9" resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" @@ -2610,7 +2397,7 @@ block-stream@*: dependencies: inherits "~2.0.0" -bluebird@^3.3.0, bluebird@^3.5.0, bluebird@^3.5.5, bluebird@^3.7.2: +bluebird@^3.5.0, bluebird@^3.5.5: version "3.7.2" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== @@ -2635,7 +2422,7 @@ bodec@^0.1.0: resolved "https://registry.yarnpkg.com/bodec/-/bodec-0.1.0.tgz#bc851555430f23c9f7650a75ef64c6a94c3418cc" integrity sha1-vIUVVUMPI8n3ZQp172TGqUw0GMw= -body-parser@1.19.0, body-parser@^1.15.0, body-parser@^1.16.1: +body-parser@1.19.0, body-parser@^1.15.0: version "1.19.0" resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== @@ -2692,7 +2479,7 @@ braces@^2.2.2, braces@^2.3.1, braces@^2.3.2: split-string "^3.0.2" to-regex "^3.0.1" -braces@^3.0.2, braces@~3.0.2: +braces@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== @@ -2775,23 +2562,6 @@ browserslist@^4.12.0, browserslist@^4.8.5: escalade "^3.0.1" node-releases "^1.1.58" -browserstack-local@^1.3.7: - version "1.4.8" - resolved "https://registry.yarnpkg.com/browserstack-local/-/browserstack-local-1.4.8.tgz#07f74a19b324cf2de69ffe65f9c2baa3a2dd9a0e" - integrity sha512-s+mc3gTOJwELdLWi4qFVKtGwMbb5JWsR+JxKlMaJkRJxoZ0gg3WREgPxAN0bm6iU5+S4Bi0sz0oxBRZT8BiNsQ== - dependencies: - https-proxy-agent "^4.0.0" - is-running "^2.1.0" - ps-tree "=1.2.0" - temp-fs "^0.9.9" - -browserstack@~1.5.1: - version "1.5.3" - resolved "https://registry.yarnpkg.com/browserstack/-/browserstack-1.5.3.tgz#93ab48799a12ef99dbd074dd595410ddb196a7ac" - integrity sha512-AO+mECXsW4QcqC9bxwM29O7qWa7bJT94uBFzeb5brylIQwawuEziwq20dPYbins95GlWzOawgyDNdjYAo32EKg== - dependencies: - https-proxy-agent "^2.2.1" - buffer-alloc-unsafe@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0" @@ -2805,7 +2575,7 @@ buffer-alloc@^1.2.0: buffer-alloc-unsafe "^1.1.0" buffer-fill "^1.0.0" -buffer-crc32@^0.2.1, buffer-crc32@^0.2.13: +buffer-crc32@^0.2.1: version "0.2.13" resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= @@ -2852,14 +2622,6 @@ buffer@^5.1.0: base64-js "^1.0.2" ieee754 "^1.1.4" -buffer@^5.5.0: - version "5.7.0" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.0.tgz#88afbd29fc89fa7b58e82b39206f31f2cf34feed" - integrity sha512-cd+5r1VLBwUqTrmnzW+D7ABkJUM6mr7uv1dv+6jRw4Rcl7tFIFHDqHPL98LhpGFn3dbAt3gtLxtrWp4m1kFrqg== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.1.13" - buffers@~0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/buffers/-/buffers-0.1.1.tgz#b24579c3bed4d6d396aeee6d9a8ae7f5482ab7bb" @@ -2939,11 +2701,6 @@ caller-path@^2.0.0: dependencies: caller-callsite "^2.0.0" -callsite@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20" - integrity sha1-KAOY5dZkvXQDi28JBRU+borxvCA= - callsites@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" @@ -3010,7 +2767,7 @@ caseless@~0.12.0: resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= -catharsis@^0.8.11, catharsis@~0.8.9: +catharsis@~0.8.9: version "0.8.11" resolved "https://registry.yarnpkg.com/catharsis/-/catharsis-0.8.11.tgz#d0eb3d2b82b7da7a3ce2efb1a7b00becc6643468" integrity sha512-a+xUyMV7hD1BrDQA/3iPV7oc+6W26BgVJO05PGEoatMyIuPScQKsde6i3YorWX1qs+AZjnJ18NqdKoCtKiNh1g== @@ -3081,21 +2838,6 @@ chokidar@^2.0.0, chokidar@^2.0.4, chokidar@^2.1.8: optionalDependencies: fsevents "^1.2.7" -chokidar@^3.0.0: - version "3.4.3" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.3.tgz#c1df38231448e45ca4ac588e6c79573ba6a57d5b" - integrity sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ== - dependencies: - anymatch "~3.1.1" - braces "~3.0.2" - glob-parent "~5.1.0" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.5.0" - optionalDependencies: - fsevents "~2.1.2" - chokidar@^3.4.1: version "3.4.1" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.1.tgz#e905bdecf10eaa0a0b1db0c664481cc4cbc22ba1" @@ -3326,11 +3068,6 @@ color-support@^1.1.3: resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== -colors@^1.1.0, colors@^1.1.2: - version "1.4.0" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" - integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== - combined-stream@^1.0.6, combined-stream@~1.0.6: version "1.0.8" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" @@ -3404,16 +3141,6 @@ commondir@^1.0.1: resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= -compare-versions@^3.4.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-3.6.0.tgz#1a5689913685e5a87637b8d3ffca75514ec41d62" - integrity sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA== - -component-bind@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1" - integrity sha1-AMYIq33Nk4l8AAllGx06jh5zu9E= - component-classes@^1.2.5: version "1.2.6" resolved "https://registry.yarnpkg.com/component-classes/-/component-classes-1.2.6.tgz#c642394c3618a4d8b0b8919efccbbd930e5cd691" @@ -3421,11 +3148,6 @@ component-classes@^1.2.5: dependencies: component-indexof "0.0.3" -component-emitter@1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" - integrity sha1-E3kY1teCg/ffemt8WmPhQOaUJeY= - component-emitter@^1.2.1: version "1.3.0" resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" @@ -3436,11 +3158,6 @@ component-indexof@0.0.3: resolved "https://registry.yarnpkg.com/component-indexof/-/component-indexof-0.0.3.tgz#11d091312239eb8f32c8f25ae9cb002ffe8d3c24" integrity sha1-EdCRMSI5648yyPJa6csAL/6NPCQ= -component-inherit@0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143" - integrity sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM= - compose-function@3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/compose-function/-/compose-function-3.0.3.tgz#9ed675f13cc54501d30950a486ff6a7ba3ab185f" @@ -3458,16 +3175,6 @@ compress-commons@^1.2.0: normalize-path "^2.0.0" readable-stream "^2.0.0" -compress-commons@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/compress-commons/-/compress-commons-2.1.1.tgz#9410d9a534cf8435e3fbbb7c6ce48de2dc2f0610" - integrity sha512-eVw6n7CnEMFzc3duyFVrQEuY1BlHR3rYsSztyG32ibGMW722i3C6IizEGMFmfMU+A+fALvBIwxN3czffTcdA+Q== - dependencies: - buffer-crc32 "^0.2.13" - crc32-stream "^3.0.1" - normalize-path "^3.0.0" - readable-stream "^2.3.6" - compressible@~2.0.16: version "2.0.18" resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" @@ -3524,16 +3231,6 @@ connect-history-api-fallback@^1.6.0: resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc" integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg== -connect@^3.6.0: - version "3.7.0" - resolved "https://registry.yarnpkg.com/connect/-/connect-3.7.0.tgz#5d49348910caa5e07a01800b030d0c35f20484f8" - integrity sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ== - dependencies: - debug "2.6.9" - finalhandler "1.1.2" - parseurl "~1.3.3" - utils-merge "1.0.1" - console-browserify@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" @@ -3591,11 +3288,6 @@ cookie-signature@1.0.6: resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= -cookie@0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" - integrity sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s= - cookie@0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" @@ -3691,14 +3383,6 @@ crc32-stream@^2.0.0: crc "^3.4.4" readable-stream "^2.0.0" -crc32-stream@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/crc32-stream/-/crc32-stream-3.0.1.tgz#cae6eeed003b0e44d739d279de5ae63b171b4e85" - integrity sha512-mctvpXlbzsvK+6z8kJwSJ5crm7yBwrQMTybJzMw1O4lLGJqjlDCXY2Zw7KheiA6XBEcBmfLx1D88mjRGVJtY9w== - dependencies: - crc "^3.4.4" - readable-stream "^3.4.0" - crc@^3.4.4: version "3.8.0" resolved "https://registry.yarnpkg.com/crc/-/crc-3.8.0.tgz#ad60269c2c856f8c299e2c4cc0de4556914056c6" @@ -3918,11 +3602,6 @@ currently-unhandled@^0.4.1: dependencies: array-find-index "^1.0.1" -custom-event@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/custom-event/-/custom-event-1.0.1.tgz#5d02a46850adf1b4a317946a3928fccb5bfd0425" - integrity sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU= - cyclist@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" @@ -4072,11 +3751,6 @@ date-fns@^1.29.0: resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.30.1.tgz#2e71bf0b119153dbb4cc4e88d9ea5acfb50dc05c" integrity sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw== -date-format@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/date-format/-/date-format-2.1.0.tgz#31d5b5ea211cf5fd764cd38baf9d033df7e125cf" - integrity sha512-bYQuGLeFxhkxNOF3rcMtiZxvCBAquGzZm6oWA1oZ0g2THUzivaRhv8uOhdr19LmoobSOLoIAxeUK2RdbM8IFTA== - dateformat@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae" @@ -4089,7 +3763,7 @@ debug@2, debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8: dependencies: ms "2.0.0" -debug@3.1.0, debug@=3.1.0, debug@~3.1.0: +debug@3.1.0, debug@=3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== @@ -4187,13 +3861,6 @@ default-gateway@^4.2.0: execa "^1.0.0" ip-regex "^2.1.0" -default-require-extensions@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-2.0.0.tgz#f5f8fbb18a7d6d50b21f641f649ebb522cfe24f7" - integrity sha1-9fj7sYp9bVCyH2QfZJ67Uiz+JPc= - dependencies: - strip-bom "^3.0.0" - default-resolution@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/default-resolution/-/default-resolution-2.0.0.tgz#bcb82baa72ad79b426a76732f1a81ad6df26d684" @@ -4293,23 +3960,11 @@ detect-file@^1.0.0: resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" integrity sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc= -detect-indent@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" - integrity sha1-920GQ1LN9Docts5hnE7jqUdd4gg= - dependencies: - repeating "^2.0.0" - detect-node@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c" integrity sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw== -di@^0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/di/-/di-0.0.1.tgz#806649326ceaa7caa3306d75d985ea2748ba913c" - integrity sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw= - diff@^3.1.0: version "3.5.0" resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" @@ -4396,16 +4051,6 @@ dom-helpers@^5.0.1: "@babel/runtime" "^7.8.7" csstype "^3.0.2" -dom-serialize@^2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/dom-serialize/-/dom-serialize-2.2.1.tgz#562ae8999f44be5ea3076f5419dcd59eb43ac95b" - integrity sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs= - dependencies: - custom-event "~1.0.0" - ent "~2.2.0" - extend "^3.0.0" - void-elements "^2.0.0" - dom-serializer@0: version "0.2.2" resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" @@ -4462,11 +4107,6 @@ domutils@^1.5.1: dom-serializer "0" domelementtype "1" -duplexer@~0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" - integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== - duplexify@^3.4.2, duplexify@^3.6.0: version "3.7.1" resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" @@ -4560,53 +4200,13 @@ encoding@^0.1.11: dependencies: iconv-lite "^0.6.2" -end-of-stream@^1.0.0, end-of-stream@^1.1.0, end-of-stream@^1.4.1: +end-of-stream@^1.0.0, end-of-stream@^1.1.0: version "1.4.4" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== dependencies: once "^1.4.0" -engine.io-client@~3.2.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.2.1.tgz#6f54c0475de487158a1a7c77d10178708b6add36" - integrity sha512-y5AbkytWeM4jQr7m/koQLc5AxpRKC1hEVUb/s1FUAWEJq5AzJJ4NLvzuKPuxtDi5Mq755WuDvZ6Iv2rXj4PTzw== - dependencies: - component-emitter "1.2.1" - component-inherit "0.0.3" - debug "~3.1.0" - engine.io-parser "~2.1.1" - has-cors "1.1.0" - indexof "0.0.1" - parseqs "0.0.5" - parseuri "0.0.5" - ws "~3.3.1" - xmlhttprequest-ssl "~1.5.4" - yeast "0.1.2" - -engine.io-parser@~2.1.0, engine.io-parser@~2.1.1: - version "2.1.3" - resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.1.3.tgz#757ab970fbf2dfb32c7b74b033216d5739ef79a6" - integrity sha512-6HXPre2O4Houl7c4g7Ic/XzPnHBvaEmN90vtRO9uLmwtRqQmTOw0QMevL1TOfL2Cpu1VzsaTmMotQgMdkzGkVA== - dependencies: - after "0.8.2" - arraybuffer.slice "~0.0.7" - base64-arraybuffer "0.1.5" - blob "0.0.5" - has-binary2 "~1.0.2" - -engine.io@~3.2.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-3.2.1.tgz#b60281c35484a70ee0351ea0ebff83ec8c9522a2" - integrity sha512-+VlKzHzMhaU+GsCIg4AoXF1UdDFjHHwMmMKqMJNDNLlUlejz58FCy4LBqB2YVJskHGYl06BatYWKP2TVdVXE5w== - dependencies: - accepts "~1.3.4" - base64id "1.0.0" - cookie "0.3.1" - debug "~3.1.0" - engine.io-parser "~2.1.0" - ws "~3.3.1" - enhanced-resolve@^4.0.0, enhanced-resolve@^4.1.0, enhanced-resolve@^4.1.1: version "4.3.0" resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz#3b806f3bfafc1ec7de69551ef93cca46c1704126" @@ -4616,11 +4216,6 @@ enhanced-resolve@^4.0.0, enhanced-resolve@^4.1.0, enhanced-resolve@^4.1.1: memory-fs "^0.5.0" tapable "^1.0.0" -ent@~2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/ent/-/ent-2.2.0.tgz#e964219325a21d05f44466a2f686ed6ce5f5dd1d" - integrity sha1-6WQhkyWiHQX0RGai9obtbOX13R0= - entities@^1.1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" @@ -4753,11 +4348,6 @@ escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1 resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= -escape-string-regexp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" - integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== - escodegen@1.x.x: version "1.14.3" resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503" @@ -4912,19 +4502,6 @@ etag@~1.8.1: resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= -event-stream@=3.3.4: - version "3.3.4" - resolved "https://registry.yarnpkg.com/event-stream/-/event-stream-3.3.4.tgz#4ab4c9a0f5a54db9338b4c34d86bfce8f4b35571" - integrity sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE= - dependencies: - duplexer "~0.1.1" - from "~0" - map-stream "~0.1.0" - pause-stream "0.0.11" - split "0.3" - stream-combiner "~0.0.4" - through "~2.3.1" - eventemitter2@5.0.1, eventemitter2@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-5.0.1.tgz#6197a095d5fb6b57e8942f6fd7eaad63a09c9452" @@ -5135,11 +4712,6 @@ fancy-log@^1.3.2: parse-node-version "^1.0.0" time-stamp "^1.0.0" -fast-deep-equal@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614" - integrity sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ= - fast-deep-equal@^3.1.1: version "3.1.3" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" @@ -5244,14 +4816,6 @@ file-uri-to-path@1, file-uri-to-path@1.0.0: resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== -fileset@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/fileset/-/fileset-2.0.3.tgz#8e7548a96d3cc2327ee5e674168723a333bba2a0" - integrity sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA= - dependencies: - glob "^7.0.3" - minimatch "^3.0.3" - fill-range@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" @@ -5269,7 +4833,7 @@ fill-range@^7.0.1: dependencies: to-regex-range "^5.0.1" -finalhandler@1.1.2, finalhandler@~1.1.2: +finalhandler@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== @@ -5490,18 +5054,6 @@ from2@^2.1.0: inherits "^2.0.1" readable-stream "^2.0.0" -from@~0: - version "0.1.7" - resolved "https://registry.yarnpkg.com/from/-/from-0.1.7.tgz#83c60afc58b9c56997007ed1a768b3ab303a44fe" - integrity sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4= - -fs-access@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/fs-access/-/fs-access-1.0.1.tgz#d6a87f262271cefebec30c553407fb995da8777a" - integrity sha1-1qh/JiJxzv6+wwxVNAf7mV2od3o= - dependencies: - null-check "^1.0.0" - fs-constants@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" @@ -5808,11 +5360,6 @@ globals@^11.1.0, globals@^11.7.0: resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== -globals@^9.18.0: - version "9.18.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" - integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ== - globby@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" @@ -5925,7 +5472,7 @@ har-schema@^2.0.0: resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= -har-validator@~5.1.0, har-validator@~5.1.3: +har-validator@~5.1.3: version "5.1.5" resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== @@ -5940,18 +5487,6 @@ has-ansi@^2.0.0: dependencies: ansi-regex "^2.0.0" -has-binary2@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has-binary2/-/has-binary2-1.0.3.tgz#7776ac627f3ea77250cfc332dab7ddf5e4f5d11d" - integrity sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw== - dependencies: - isarray "2.0.1" - -has-cors@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39" - integrity sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk= - has-flag@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" @@ -6080,11 +5615,6 @@ html-entities@^1.3.1: resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.3.1.tgz#fb9a1a4b5b14c5daba82d3e34c6ae4fe701a0e44" integrity sha512-rhE/4Z3hIhzHAUKbW8jVcCyuT5oJCXXqhN/6mXXVCpzTmvJnoH2HL/bt3EZ6p55jbFJBeAe1ZNpL5BugLujxNA== -html-escaper@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" - integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== - html-minifier@^3.2.3: version "3.5.21" resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-3.5.21.tgz#d0040e054730e354db008463593194015212d20c" @@ -6201,7 +5731,7 @@ http-proxy-middleware@0.19.1: lodash "^4.17.11" micromatch "^3.1.10" -http-proxy@^1.13.0, http-proxy@^1.17.0: +http-proxy@^1.17.0: version "1.18.1" resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== @@ -6224,14 +5754,6 @@ https-browserify@^1.0.0: resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= -https-proxy-agent@^2.2.1: - version "2.2.4" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz#4ee7a737abd92678a293d9b34a1af4d0d08c787b" - integrity sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg== - dependencies: - agent-base "^4.3.0" - debug "^3.1.0" - https-proxy-agent@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-3.0.1.tgz#b8c286433e87602311b01c8ea34413d856a4af81" @@ -6240,22 +5762,6 @@ https-proxy-agent@^3.0.0: agent-base "^4.3.0" debug "^3.1.0" -https-proxy-agent@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-4.0.0.tgz#702b71fb5520a132a66de1f67541d9e62154d82b" - integrity sha512-zoDhWrkR3of1l9QAL8/scJZyLu8j/gBkcwcaQOZh7Gyh/+uJQzGVETdgT30akuwkpL8HTRfssqI3BZuV18teDg== - dependencies: - agent-base "5" - debug "4" - -https-proxy-agent@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2" - integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA== - dependencies: - agent-base "6" - debug "4" - husky@^2.7.0: version "2.7.0" resolved "https://registry.yarnpkg.com/husky/-/husky-2.7.0.tgz#c0a9a6a3b51146224e11bba0b46bba546e461d05" @@ -6329,11 +5835,6 @@ ieee754@1.1.13, ieee754@^1.1.12, ieee754@^1.1.4: resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== -ieee754@^1.1.13: - version "1.2.1" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" - integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== - iferr@^0.1.5: version "0.1.5" resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" @@ -6774,11 +6275,6 @@ is-relative@^1.0.0: dependencies: is-unc-path "^1.0.0" -is-running@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-running/-/is-running-2.1.0.tgz#30a73ff5cc3854e4fc25490809e9f5abf8de09e0" - integrity sha1-MKc/9cw4VOT8JUkICen1q/jeCeA= - is-stream@^1.0.1, is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" @@ -6828,7 +6324,7 @@ is-wsl@^1.1.0: resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= -is-wsl@^2.1.0, is-wsl@^2.1.1: +is-wsl@^2.1.1: version "2.2.0" resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== @@ -6850,18 +6346,6 @@ isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= -isarray@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.1.tgz#a37d94ed9cda2d59865c9f76fe596ee1f338741e" - integrity sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4= - -isbinaryfile@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-3.0.3.tgz#5d6def3edebf6e8ca8cae9c30183a804b5f8be80" - integrity sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw== - dependencies: - buffer-alloc "^1.2.0" - isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" @@ -6892,115 +6376,6 @@ isstream@~0.1.2: resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= -istanbul-api@^2.1.6: - version "2.1.7" - resolved "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-2.1.7.tgz#82786b79f3b93d481349c7aa1e2c2b4eeb48c8a8" - integrity sha512-LYTOa2UrYFyJ/aSczZi/6lBykVMjCCvUmT64gOe+jPZFy4w6FYfPGqFT2IiQ2BxVHHDOvCD7qrIXb0EOh4uGWw== - dependencies: - async "^2.6.2" - compare-versions "^3.4.0" - fileset "^2.0.3" - istanbul-lib-coverage "^2.0.5" - istanbul-lib-hook "^2.0.7" - istanbul-lib-instrument "^3.3.0" - istanbul-lib-report "^2.0.8" - istanbul-lib-source-maps "^3.0.6" - istanbul-reports "^2.2.5" - js-yaml "^3.13.1" - make-dir "^2.1.0" - minimatch "^3.0.4" - once "^1.4.0" - -istanbul-instrumenter-loader@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/istanbul-instrumenter-loader/-/istanbul-instrumenter-loader-3.0.1.tgz#9957bd59252b373fae5c52b7b5188e6fde2a0949" - integrity sha512-a5SPObZgS0jB/ixaKSMdn6n/gXSrK2S6q/UfRJBT3e6gQmVjwZROTODQsYW5ZNwOu78hG62Y3fWlebaVOL0C+w== - dependencies: - convert-source-map "^1.5.0" - istanbul-lib-instrument "^1.7.3" - loader-utils "^1.1.0" - schema-utils "^0.3.0" - -istanbul-lib-coverage@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.1.tgz#ccf7edcd0a0bb9b8f729feeb0930470f9af664f0" - integrity sha512-PzITeunAgyGbtY1ibVIUiV679EFChHjoMNRibEIobvmrCRaIgwLxNucOSimtNWUhEib/oO7QY2imD75JVgCJWQ== - -istanbul-lib-coverage@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz#675f0ab69503fad4b1d849f736baaca803344f49" - integrity sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA== - -istanbul-lib-hook@^2.0.7: - version "2.0.7" - resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-2.0.7.tgz#c95695f383d4f8f60df1f04252a9550e15b5b133" - integrity sha512-vrRztU9VRRFDyC+aklfLoeXyNdTfga2EI3udDGn4cZ6fpSXpHLV9X6CHvfoMCPtggg8zvDDmC4b9xfu0z6/llA== - dependencies: - append-transform "^1.0.0" - -istanbul-lib-instrument@^1.7.3: - version "1.10.2" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.2.tgz#1f55ed10ac3c47f2bdddd5307935126754d0a9ca" - integrity sha512-aWHxfxDqvh/ZlxR8BBaEPVSWDPUkGD63VjGQn3jcw8jCp7sHEMKcrj4xfJn/ABzdMEHiQNyvDQhqm5o8+SQg7A== - dependencies: - babel-generator "^6.18.0" - babel-template "^6.16.0" - babel-traverse "^6.18.0" - babel-types "^6.18.0" - babylon "^6.18.0" - istanbul-lib-coverage "^1.2.1" - semver "^5.3.0" - -istanbul-lib-instrument@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz#a5f63d91f0bbc0c3e479ef4c5de027335ec6d630" - integrity sha512-5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA== - dependencies: - "@babel/generator" "^7.4.0" - "@babel/parser" "^7.4.3" - "@babel/template" "^7.4.0" - "@babel/traverse" "^7.4.3" - "@babel/types" "^7.4.0" - istanbul-lib-coverage "^2.0.5" - semver "^6.0.0" - -istanbul-lib-report@^2.0.8: - version "2.0.8" - resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz#5a8113cd746d43c4889eba36ab10e7d50c9b4f33" - integrity sha512-fHBeG573EIihhAblwgxrSenp0Dby6tJMFR/HvlerBsrCTD5bkUuoNtn3gVh29ZCS824cGGBPn7Sg7cNk+2xUsQ== - dependencies: - istanbul-lib-coverage "^2.0.5" - make-dir "^2.1.0" - supports-color "^6.1.0" - -istanbul-lib-source-maps@^3.0.6: - version "3.0.6" - resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz#284997c48211752ec486253da97e3879defba8c8" - integrity sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw== - dependencies: - debug "^4.1.1" - istanbul-lib-coverage "^2.0.5" - make-dir "^2.1.0" - rimraf "^2.6.3" - source-map "^0.6.1" - -istanbul-reports@^2.2.5: - version "2.2.7" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-2.2.7.tgz#5d939f6237d7b48393cc0959eab40cd4fd056931" - integrity sha512-uu1F/L1o5Y6LzPVSVZXNOoD/KXpJue9aeLRd0sM9uMXfZvzomB0WxVamWb5ue8kA2vVWEmW7EG+A5n3f1kqHKg== - dependencies: - html-escaper "^2.0.0" - -jasmine-ajax@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/jasmine-ajax/-/jasmine-ajax-4.0.0.tgz#7d8ba7e47e3f7e780e155fe9aa563faafa7e1a26" - integrity sha512-htTxNw38BSHxxmd8RRMejocdPqLalGHU6n3HWFbzp/S8AuTQd1MYjkSH3dYDsbZ7EV1Xqx/b94m3tKaVSVBV2A== - -jasmine-core@^2.9.1: - version "2.99.1" - resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-2.99.1.tgz#e6400df1e6b56e130b61c4bcd093daa7f6e8ca15" - integrity sha1-5kAN8ea1bhMLYcS80JPap/boyhU= - javascript-natural-sort@^0.7.1: version "0.7.1" resolved "https://registry.yarnpkg.com/javascript-natural-sort/-/javascript-natural-sort-0.7.1.tgz#f9e2303d4507f6d74355a73664d1440fb5a0ef59" @@ -7031,11 +6406,6 @@ js-git@^0.7.8: resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -js-tokens@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" - integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls= - js-yaml@^3.13.0, js-yaml@^3.13.1: version "3.14.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482" @@ -7044,13 +6414,6 @@ js-yaml@^3.13.0, js-yaml@^3.13.1: argparse "^1.0.7" esprima "^4.0.0" -js2xmlparser@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/js2xmlparser/-/js2xmlparser-4.0.1.tgz#670ef71bc5661f089cc90481b99a05a1227ae3bd" - integrity sha512-KrPTolcw6RocpYjdC7pL7v62e55q7qOMHvLX1UCLc5AAS8qeJ6nukarEJAF2KL2PZxlbGueEbINqZR2bDe/gUw== - dependencies: - xmlcreate "^2.0.3" - js2xmlparser@~3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/js2xmlparser/-/js2xmlparser-3.0.0.tgz#3fb60eaa089c5440f9319f51760ccd07e2499733" @@ -7103,26 +6466,6 @@ jsdoc-to-markdown@^4.0.1: jsdoc-parse "^3.0.1" walk-back "^3.0.0" -jsdoc@^3.5.0: - version "3.6.6" - resolved "https://registry.yarnpkg.com/jsdoc/-/jsdoc-3.6.6.tgz#9fe162bbdb13ee7988bf74352b5147565bcfd8e1" - integrity sha512-znR99e1BHeyEkSvgDDpX0sTiTu+8aQyDl9DawrkOGZTTW8hv0deIFXx87114zJ7gRaDZKVQD/4tr1ifmJp9xhQ== - dependencies: - "@babel/parser" "^7.9.4" - bluebird "^3.7.2" - catharsis "^0.8.11" - escape-string-regexp "^2.0.0" - js2xmlparser "^4.0.1" - klaw "^3.0.0" - markdown-it "^10.0.0" - markdown-it-anchor "^5.2.7" - marked "^0.8.2" - mkdirp "^1.0.4" - requizzle "^0.2.3" - strip-json-comments "^3.1.0" - taffydb "2.6.2" - underscore "~1.10.2" - jsdoc@~3.5.5: version "3.5.5" resolved "https://registry.yarnpkg.com/jsdoc/-/jsdoc-3.5.5.tgz#484521b126e81904d632ff83ec9aaa096708fa4d" @@ -7141,11 +6484,6 @@ jsdoc@~3.5.5: taffydb "2.6.2" underscore "~1.8.3" -jsesc@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" - integrity sha1-RsP+yMGJKxKwgz25vHYiF226s0s= - jsesc@^2.5.1: version "2.5.2" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" @@ -7161,11 +6499,6 @@ json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== -json-schema-traverse@^0.3.0: - version "0.3.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" - integrity sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A= - json-schema-traverse@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" @@ -7253,116 +6586,6 @@ just-debounce@^1.0.0: resolved "https://registry.yarnpkg.com/just-debounce/-/just-debounce-1.0.0.tgz#87fccfaeffc0b68cd19d55f6722943f929ea35ea" integrity sha1-h/zPrv/AtozRnVX2cilD+SnqNeo= -karma-browserstack-launcher@^1.4.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/karma-browserstack-launcher/-/karma-browserstack-launcher-1.6.0.tgz#2f6000647073e77ae296653b8830b279669766ef" - integrity sha512-Y/UWPdHZkHIVH2To4GWHCTzmrsB6H7PBWy6pw+TWz5sr4HW2mcE+Uj6qWgoVNxvQU1Pfn5LQQzI6EQ65p8QbiQ== - dependencies: - browserstack "~1.5.1" - browserstack-local "^1.3.7" - q "~1.5.0" - -karma-chrome-launcher@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/karma-chrome-launcher/-/karma-chrome-launcher-2.2.0.tgz#cf1b9d07136cc18fe239327d24654c3dbc368acf" - integrity sha512-uf/ZVpAabDBPvdPdveyk1EPgbnloPvFFGgmRhYLTDH7gEB4nZdSBk8yTU47w1g/drLSx5uMOkjKk7IWKfWg/+w== - dependencies: - fs-access "^1.0.0" - which "^1.2.1" - -karma-coverage-istanbul-reporter@^2.0.5: - version "2.1.1" - resolved "https://registry.yarnpkg.com/karma-coverage-istanbul-reporter/-/karma-coverage-istanbul-reporter-2.1.1.tgz#37a775fbfbb3cbe98cebf19605c94c6277c3b88a" - integrity sha512-CH8lTi8+kKXGvrhy94+EkEMldLCiUA0xMOiL31vvli9qK0T+qcXJAwWBRVJWnVWxYkTmyWar8lPz63dxX6/z1A== - dependencies: - istanbul-api "^2.1.6" - minimatch "^3.0.4" - -karma-detect-browsers@^2.0.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/karma-detect-browsers/-/karma-detect-browsers-2.3.3.tgz#e0d8f9c1a1b0cc58d8668c245441eaf9d832c6ee" - integrity sha512-ltFVyA3ijThv9l9TQ+TKnccoMk6YAWn8OMaccL+n8pO2LGwMOcy6tUWy3Mnv9If29jqvVHDCWntj7wBQpPtv7Q== - dependencies: - which "^1.2.4" - -karma-firefox-launcher@^1.0.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/karma-firefox-launcher/-/karma-firefox-launcher-1.3.0.tgz#ebcbb1d1ddfada6be900eb8fae25bcf2dcdc8171" - integrity sha512-Fi7xPhwrRgr+94BnHX0F5dCl1miIW4RHnzjIGxF8GaIEp7rNqX7LSi7ok63VXs3PS/5MQaQMhGxw+bvD+pibBQ== - dependencies: - is-wsl "^2.1.0" - -karma-ie-launcher@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/karma-ie-launcher/-/karma-ie-launcher-1.0.0.tgz#497986842c490190346cd89f5494ca9830c6d59c" - integrity sha1-SXmGhCxJAZA0bNifVJTKmDDG1Zw= - dependencies: - lodash "^4.6.1" - -karma-jasmine@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/karma-jasmine/-/karma-jasmine-1.1.2.tgz#394f2b25ffb4a644b9ada6f22d443e2fd08886c3" - integrity sha1-OU8rJf+0pkS5rabyLUQ+L9CIhsM= - -karma-opera-launcher@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/karma-opera-launcher/-/karma-opera-launcher-1.0.0.tgz#fa51628531a1d0be84b2d8dc0d7ee209fc8ff91a" - integrity sha1-+lFihTGh0L6EstjcDX7iCfyP+Ro= - -karma-safari-launcher@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/karma-safari-launcher/-/karma-safari-launcher-1.0.0.tgz#96982a2cc47d066aae71c553babb28319115a2ce" - integrity sha1-lpgqLMR9BmquccVTursoMZEVos4= - -karma-sauce-launcher@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/karma-sauce-launcher/-/karma-sauce-launcher-1.2.0.tgz#6f2558ddef3cf56879fa27540c8ae9f8bfd16bca" - integrity sha512-lEhtGRGS+3Yw6JSx/vJY9iQyHNtTjcojrSwNzqNUOaDceKDu9dPZqA/kr69bUO9G2T6GKbu8AZgXqy94qo31Jg== - dependencies: - q "^1.5.0" - sauce-connect-launcher "^1.2.2" - saucelabs "^1.4.0" - wd "^1.4.0" - -karma-spec-reporter@^0.0.32: - version "0.0.32" - resolved "https://registry.yarnpkg.com/karma-spec-reporter/-/karma-spec-reporter-0.0.32.tgz#2e9c7207ea726771260259f82becb543209e440a" - integrity sha1-LpxyB+pyZ3EmAln4K+y1QyCeRAo= - dependencies: - colors "^1.1.2" - -karma@^4.0.0: - version "4.4.1" - resolved "https://registry.yarnpkg.com/karma/-/karma-4.4.1.tgz#6d9aaab037a31136dc074002620ee11e8c2e32ab" - integrity sha512-L5SIaXEYqzrh6b1wqYC42tNsFMx2PWuxky84pK9coK09MvmL7mxii3G3bZBh/0rvD27lqDd0le9jyhzvwif73A== - dependencies: - bluebird "^3.3.0" - body-parser "^1.16.1" - braces "^3.0.2" - chokidar "^3.0.0" - colors "^1.1.0" - connect "^3.6.0" - di "^0.0.1" - dom-serialize "^2.2.0" - flatted "^2.0.0" - glob "^7.1.1" - graceful-fs "^4.1.2" - http-proxy "^1.13.0" - isbinaryfile "^3.0.0" - lodash "^4.17.14" - log4js "^4.0.0" - mime "^2.3.1" - minimatch "^3.0.2" - optimist "^0.6.1" - qjobs "^1.1.4" - range-parser "^1.2.0" - rimraf "^2.6.0" - safe-buffer "^5.0.1" - socket.io "2.1.1" - source-map "^0.6.1" - tmp "0.0.33" - useragent "2.3.0" - killable@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892" @@ -7392,20 +6615,6 @@ kind-of@^6.0.0, kind-of@^6.0.2: resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== -klaw-sync@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/klaw-sync/-/klaw-sync-4.0.0.tgz#7785692ea1a320ac3dda7a6c0c22b33a30aa3b3f" - integrity sha512-go/5tXbgLkgwxQ2c2ewaMen6TpQtI9fTzzmTdlSGK8XxKcFSsJvn/Sgn75Vg+mOJwkKVPrqLw2Xq7x/zP1v7PQ== - dependencies: - graceful-fs "^4.1.11" - -klaw@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/klaw/-/klaw-3.0.0.tgz#b11bec9cf2492f06756d6e809ab73a2910259146" - integrity sha512-0Fo5oir+O9jnXu5EefYbVK+mHMBeEVEy2cmctR1O1NECcCkPRreJKrS6Qt/j3KC2C148Dfo9i3pCmCMsdqGr0g== - dependencies: - graceful-fs "^4.1.9" - klaw@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/klaw/-/klaw-2.0.0.tgz#59c128e0dc5ce410201151194eeb9cbf858650f6" @@ -7601,26 +6810,11 @@ lodash.camelcase@^4.3.0: resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" integrity sha1-soqmKIorn8ZRA1x3EfZathkDMaY= -lodash.defaults@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" - integrity sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw= - -lodash.difference@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.difference/-/lodash.difference-4.5.0.tgz#9ccb4e505d486b91651345772885a2df27fd017c" - integrity sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw= - lodash.findindex@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/lodash.findindex/-/lodash.findindex-4.6.0.tgz#a3245dee61fb9b6e0624b535125624bb69c11106" integrity sha1-oyRd7mH7m24GJLU1ElYku2nBEQY= -lodash.flatten@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" - integrity sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8= - lodash.foreach@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.foreach/-/lodash.foreach-4.5.0.tgz#1a6a35eace401280c7f06dddec35165ab27e3e53" @@ -7631,11 +6825,6 @@ lodash.get@^4.4.2: resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk= -lodash.isplainobject@^4.0.6: - version "4.0.6" - resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" - integrity sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs= - lodash.last@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/lodash.last/-/lodash.last-3.0.0.tgz#242f663112dd4c6e63728c60a3c909d1bdadbd4c" @@ -7656,37 +6845,16 @@ lodash.pick@^4.4.0: resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" integrity sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM= -lodash.union@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.union/-/lodash.union-4.6.0.tgz#48bb5088409f16f1821666641c44dd1aaae3cd88" - integrity sha1-SLtQiECfFvGCFmZkHETdGqrjzYg= - lodash@^4.0.0, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.3, lodash@^4.8.0, lodash@~4.17.10: version "4.17.19" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.19.tgz#e48ddedbe30b3321783c5b4301fbd353bc1e4a4b" integrity sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ== -lodash@^4.16.6, lodash@^4.17.4, lodash@^4.6.1: - version "4.17.20" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" - integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== - log-driver@^1.2.7: version "1.2.7" resolved "https://registry.yarnpkg.com/log-driver/-/log-driver-1.2.7.tgz#63b95021f0702fedfa2c9bb0a24e7797d71871d8" integrity sha512-U7KCmLdqsGHBLeWqYlFA0V0Sl6P08EE1ZrmA9cxjUE0WVqT9qnyVDPz1kzpFEP0jdJuFnasWIfSd7fsaNXkpbg== -log4js@^4.0.0: - version "4.5.1" - resolved "https://registry.yarnpkg.com/log4js/-/log4js-4.5.1.tgz#e543625e97d9e6f3e6e7c9fc196dd6ab2cae30b5" - integrity sha512-EEEgFcE9bLgaYUKuozyFfytQM2wDHtXn4tAN41pkaxpNjAykv11GVdeI4tHtmPWW4Xrgh9R/2d7XYghDVjbKKw== - dependencies: - date-format "^2.0.0" - debug "^4.1.1" - flatted "^2.0.0" - rfdc "^1.1.4" - streamroller "^1.0.6" - loglevel@^1.6.8: version "1.6.8" resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.8.tgz#8a25fb75d092230ecd4457270d80b54e28011171" @@ -7717,7 +6885,7 @@ lower-case@^1.1.1: resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac" integrity sha1-miyr0bno4K6ZOkv31YdcOcQujqw= -lru-cache@4.1.x, lru-cache@^4.0.1: +lru-cache@^4.0.1: version "4.1.5" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== @@ -7737,7 +6905,7 @@ lru-cache@~2.2.1: resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-2.2.4.tgz#6c658619becf14031d0d0b594b16042ce4dc063d" integrity sha1-bGWGGb7PFAMdDQtZSxYELOTcBj0= -make-dir@^2.0.0, make-dir@^2.1.0: +make-dir@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== @@ -7779,11 +6947,6 @@ map-obj@^1.0.0, map-obj@^1.0.1: resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0= -map-stream@~0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/map-stream/-/map-stream-0.1.0.tgz#e56aa94c4c8055a16404a0674b78f215f7c8e194" - integrity sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ= - map-visit@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" @@ -7791,22 +6954,6 @@ map-visit@^1.0.0: dependencies: object-visit "^1.0.0" -markdown-it-anchor@^5.2.7: - version "5.3.0" - resolved "https://registry.yarnpkg.com/markdown-it-anchor/-/markdown-it-anchor-5.3.0.tgz#d549acd64856a8ecd1bea58365ef385effbac744" - integrity sha512-/V1MnLL/rgJ3jkMWo84UR+K+jF1cxNG1a+KwqeXqTIJ+jtA8aWSHuigx8lTzauiIjBDbwF3NcWQMotd0Dm39jA== - -markdown-it@^10.0.0: - version "10.0.0" - resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-10.0.0.tgz#abfc64f141b1722d663402044e43927f1f50a8dc" - integrity sha512-YWOP1j7UbDNz+TumYP1kpwnP0aEa711cJjrAQrzd0UXlbJfc5aAq0F/PZHjiioqDC1NKgvIMX+o+9Bk7yuM2dg== - dependencies: - argparse "^1.0.7" - entities "~2.0.0" - linkify-it "^2.0.0" - mdurl "^1.0.1" - uc.micro "^1.0.5" - markdown-it@^11.0.0: version "11.0.0" resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-11.0.0.tgz#dbfc30363e43d756ebc52c38586b91b90046b876" @@ -7823,11 +6970,6 @@ marked@^0.3.16, marked@~0.3.6: resolved "https://registry.yarnpkg.com/marked/-/marked-0.3.19.tgz#5d47f709c4c9fc3c216b6d46127280f40b39d790" integrity sha512-ea2eGWOqNxPcXv8dyERdSr/6FmzvWwzjMxpfGB/sbMccXoct+xY+YukPD+QTUZwyvK7BZwcr4m21WBOW41pAkg== -marked@^0.8.2: - version "0.8.2" - resolved "https://registry.yarnpkg.com/marked/-/marked-0.8.2.tgz#4faad28d26ede351a7a1aaa5fec67915c869e355" - integrity sha512-EGwzEeCcLniFX51DhTpmTom+dSA/MG/OBUDjnWtHbEnjAH180VzUeAw+oE4+Zv+CoYBWyRlYOTR0N8SO9R1PVw== - matchdep@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/matchdep/-/matchdep-2.0.0.tgz#c6f34834a0d8dbc3b37c27ee8bbcb27c7775582e" @@ -8002,7 +7144,7 @@ mime@1.6.0: resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== -mime@^2.0.3, mime@^2.3.1, mime@^2.4.4: +mime@^2.0.3, mime@^2.4.4: version "2.4.6" resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.6.tgz#e5b407c90db442f2beb5b162373d07b69affa4d1" integrity sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA== @@ -8036,7 +7178,7 @@ minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= -minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4, minimatch@~3.0.2: +minimatch@^3.0.4, minimatch@~3.0.2: version "3.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== @@ -8058,11 +7200,6 @@ minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5: resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== -minimist@~0.0.1: - version "0.0.10" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" - integrity sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8= - mississippi@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" @@ -8111,11 +7248,6 @@ mkdirp@0.5.1: dependencies: minimist "^1.2.5" -mkdirp@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" - integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== - mkpath@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/mkpath/-/mkpath-0.1.0.tgz#7554a6f8d871834cc97b5462b122c4c124d6de91" @@ -8514,11 +7646,6 @@ nth-check@~1.0.1: dependencies: boolbase "~1.0.0" -null-check@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/null-check/-/null-check-1.0.0.tgz#977dffd7176012b9ec30d2a39db5cf72a0439edd" - integrity sha1-l33/1xdgErnsMNKjnbXPcqBDnt0= - number-is-nan@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" @@ -8534,11 +7661,6 @@ object-assign@4.x, object-assign@^4, object-assign@^4.0.1, object-assign@^4.1.0, resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= -object-component@0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/object-component/-/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291" - integrity sha1-8MaapQ78lbhmwYb0AKM3acsvEpE= - object-copy@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" @@ -8706,14 +7828,6 @@ opn@^5.5.0: dependencies: is-wsl "^1.1.0" -optimist@^0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" - integrity sha1-2j6nRob6IaGaERwybpDrFaAZZoY= - dependencies: - minimist "~0.0.1" - wordwrap "~0.0.2" - optionator@^0.8.1, optionator@^0.8.2: version "0.8.3" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" @@ -8970,20 +8084,6 @@ parse-passwd@^1.0.0: resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= -parseqs@0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.5.tgz#d5208a3738e46766e291ba2ea173684921a8b89d" - integrity sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0= - dependencies: - better-assert "~1.0.0" - -parseuri@0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.5.tgz#80204a50d4dbb779bfdc6ebe2778d90e4bce320a" - integrity sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo= - dependencies: - better-assert "~1.0.0" - parseurl@~1.3.2, parseurl@~1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" @@ -9072,13 +8172,6 @@ path-type@^4.0.0: resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== -pause-stream@0.0.11: - version "0.0.11" - resolved "https://registry.yarnpkg.com/pause-stream/-/pause-stream-0.0.11.tgz#fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445" - integrity sha1-/lo0sMvOErWqaitAPuLnO2AvFEU= - dependencies: - through "~2.3" - pbf@^3.0.1: version "3.2.1" resolved "https://registry.yarnpkg.com/pbf/-/pbf-3.2.1.tgz#b4c1b9e72af966cd82c6531691115cc0409ffe2a" @@ -9098,9 +8191,9 @@ pbkdf2@^3.0.3: safe-buffer "^5.0.1" sha.js "^2.4.8" -"pell@git://github.com/TerriaJS/pell#master": +"pell@git://github.com/TerriaJS/pell.git#master": version "1.0.6" - resolved "git://github.com/TerriaJS/pell#7cd23a55cdfd130fedf3679433991bb7d958fc42" + resolved "git://github.com/TerriaJS/pell.git#7cd23a55cdfd130fedf3679433991bb7d958fc42" performance-now@^2.1.0: version "2.1.0" @@ -9529,19 +8622,12 @@ prr@~1.0.1: resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= -ps-tree@=1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/ps-tree/-/ps-tree-1.2.0.tgz#5e7425b89508736cdd4f2224d028f7bb3f722ebd" - integrity sha512-0VnamPPYHl4uaU/nSFeZZpR21QAWRz+sRv4iW9+v/GS/J5U5iZB5BNN6J0RMoOvdx2gWM2+ZFMIm58q24e4UYA== - dependencies: - event-stream "=3.3.4" - pseudomap@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= -psl@^1.1.24, psl@^1.1.28: +psl@^1.1.28: version "1.8.0" resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== @@ -9588,7 +8674,7 @@ punycode@1.3.2: resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= -punycode@^1.2.4, punycode@^1.4.1: +punycode@^1.2.4: version "1.4.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= @@ -9598,16 +8684,11 @@ punycode@^2.1.0, punycode@^2.1.1: resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== -q@^1.1.2, q@^1.5.0, q@^1.5.1, q@~1.5.0: +q@^1.1.2: version "1.5.1" resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= -qjobs@^1.1.4: - version "1.2.0" - resolved "https://registry.yarnpkg.com/qjobs/-/qjobs-1.2.0.tgz#c45e9c61800bd087ef88d7e256423bdd49e5d071" - integrity sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg== - qs@6.7.0: version "6.7.0" resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" @@ -9668,7 +8749,7 @@ randomfill@^1.0.3: randombytes "^2.0.5" safe-buffer "^5.1.0" -range-parser@^1.2.0, range-parser@^1.2.1, range-parser@~1.2.1: +range-parser@^1.2.1, range-parser@~1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== @@ -9824,7 +8905,7 @@ react-i18next@^11.2.1: "@babel/runtime" "^7.3.1" html-parse-stringify2 "2.0.1" -react-is@^16.12.0, react-is@^16.7.0, react-is@^16.8.1, react-is@^16.8.6: +react-is@^16.12.0, react-is@^16.7.0, react-is@^16.8.1: version "16.13.1" resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== @@ -9856,11 +8937,6 @@ react-responsive@^5.0.0: matchmediaquery "^0.3.0" prop-types "^15.6.1" -react-shallow-testutils@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/react-shallow-testutils/-/react-shallow-testutils-3.0.1.tgz#41beb19aac29617569469cfe7945eaf525522432" - integrity sha512-QeQJEexPeDOCcn8gQuLCGCnBnbwAko3zcs24+qXNUB0BrfbbbOIvXkTOTkJdL4WhwwQXQ3f/5yvdzO11n6eh7w== - react-swipeable@^5.1.0: version "5.5.1" resolved "https://registry.yarnpkg.com/react-swipeable/-/react-swipeable-5.5.1.tgz#48ae6182deaf62f21d4b87469b60281dbd7c4a76" @@ -9868,16 +8944,6 @@ react-swipeable@^5.1.0: dependencies: prop-types "^15.6.2" -react-test-renderer@^16.3.2: - version "16.14.0" - resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-16.14.0.tgz#e98360087348e260c56d4fe2315e970480c228ae" - integrity sha512-L8yPjqPE5CZO6rKsKXRO/rVPiaCOy0tQQJbC+UjPNlobl5mad59lvPjwFsQHTvL03caVDIVr9x9/OSgDe6I5Eg== - dependencies: - object-assign "^4.1.1" - prop-types "^15.6.2" - react-is "^16.8.6" - scheduler "^0.19.1" - react-transition-group@^4.3.0: version "4.4.1" resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-4.4.1.tgz#63868f9325a38ea5ee9535d828327f85773345c9" @@ -9961,7 +9027,7 @@ readable-stream@1.1.x, readable-stream@^1.1.8: isarray "0.0.1" string_decoder "~0.10.x" -readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: +readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== @@ -9998,13 +9064,6 @@ readdirp@~3.4.0: dependencies: picomatch "^2.2.1" -readdirp@~3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e" - integrity sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ== - dependencies: - picomatch "^2.2.1" - rechoir@^0.6.2: version "0.6.2" resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" @@ -10087,7 +9146,7 @@ regenerator-runtime@^0.11.0: resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== -regenerator-runtime@^0.13.2, regenerator-runtime@^0.13.4: +regenerator-runtime@^0.13.4: version "0.13.7" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55" integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== @@ -10242,32 +9301,6 @@ request-promise@^4.0.1: stealthy-require "^1.1.1" tough-cookie "^2.3.3" -request@2.88.0: - version "2.88.0" - resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef" - integrity sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg== - dependencies: - aws-sign2 "~0.7.0" - aws4 "^1.8.0" - caseless "~0.12.0" - combined-stream "~1.0.6" - extend "~3.0.2" - forever-agent "~0.6.1" - form-data "~2.3.2" - har-validator "~5.1.0" - http-signature "~1.2.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.19" - oauth-sign "~0.9.0" - performance-now "^2.1.0" - qs "~6.5.2" - safe-buffer "^5.1.2" - tough-cookie "~2.4.3" - tunnel-agent "^0.6.0" - uuid "^3.3.2" - request@^2.67.0, request@^2.87.0, request@^2.88.0: version "2.88.2" resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" @@ -10323,7 +9356,7 @@ requires-port@^1.0.0: resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= -requizzle@^0.2.3, requizzle@~0.2.1: +requizzle@~0.2.1: version "0.2.3" resolved "https://registry.yarnpkg.com/requizzle/-/requizzle-0.2.3.tgz#4675c90aacafb2c036bd39ba2daa4a1cb777fded" integrity sha512-YanoyJjykPxGHii0fZP0uUPEXpvqfBDxWV7s6GKAiiOsiqhX6vHNyW3Qzdmqp/iq/ExbhaGbVrjB4ruEVSM4GQ== @@ -10433,12 +9466,7 @@ rework@1.0.1: convert-source-map "^0.3.3" css "^2.0.0" -rfdc@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.1.4.tgz#ba72cc1367a0ccd9cf81a870b3b58bd3ad07f8c2" - integrity sha512-5C9HXdzK8EAqN7JDif30jqsBzavB7wLpaubisuQIGHWf2gUXSpzy6ArX/+Da8RjFpagWsCn+pIgxTMAmKw9Zug== - -rimraf@2, rimraf@^2.2.8, rimraf@^2.5.4, rimraf@^2.6.0, rimraf@^2.6.3: +rimraf@2, rimraf@^2.2.8, rimraf@^2.5.4, rimraf@^2.6.3: version "2.7.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== @@ -10452,13 +9480,6 @@ rimraf@2.6.3: dependencies: glob "^7.1.3" -rimraf@~2.5.2: - version "2.5.4" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.5.4.tgz#96800093cbf1a0c86bd95b4625467535c29dfa04" - integrity sha1-loAAk8vxoMhr2VtGJUZ1NcKd+gQ= - dependencies: - glob "^7.0.5" - ripemd160@^2.0.0, ripemd160@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" @@ -10552,24 +9573,6 @@ sass-loader@^7.1.0: pify "^4.0.1" semver "^6.3.0" -sauce-connect-launcher@^1.2.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/sauce-connect-launcher/-/sauce-connect-launcher-1.3.2.tgz#dfc675a258550809a8eaf457eb9162b943ddbaf0" - integrity sha512-wf0coUlidJ7rmeClgVVBh6Kw55/yalZCY/Un5RgjSnTXRAeGqagnTsTYpZaqC4dCtrY4myuYpOAZXCdbO7lHfQ== - dependencies: - adm-zip "~0.4.3" - async "^2.1.2" - https-proxy-agent "^5.0.0" - lodash "^4.16.6" - rimraf "^2.5.4" - -saucelabs@^1.4.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/saucelabs/-/saucelabs-1.5.0.tgz#9405a73c360d449b232839919a86c396d379fd9d" - integrity sha512-jlX3FGdWvYf4Q3LFfFWS1QvPg3IGCGWxIc8QBFdPTbpTJnt/v17FHXYVAn7C8sHf1yUXo2c7yIM0isDryfYtHQ== - dependencies: - https-proxy-agent "^2.2.1" - sax@1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.1.tgz#7b8e656190b228e81a66aea748480d828cd2d37a" @@ -10597,13 +9600,6 @@ schema-utils@2.7.0, schema-utils@^2.6.5: ajv "^6.12.2" ajv-keywords "^3.4.1" -schema-utils@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.3.0.tgz#f5877222ce3e931edae039f17eb3716e7137f8cf" - integrity sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8= - dependencies: - ajv "^5.0.0" - schema-utils@^0.4.0: version "0.4.7" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.7.tgz#ba74f597d2be2ea880131746ee17d0a093c68187" @@ -10663,7 +9659,7 @@ semver-greatest-satisfied-range@^1.1.0: resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== -semver@6.3.0, semver@^6.0.0, semver@^6.3.0: +semver@6.3.0, semver@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== @@ -10880,52 +9876,6 @@ snapdragon@^0.8.1: source-map-resolve "^0.5.0" use "^3.1.0" -socket.io-adapter@~1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz#ab3f0d6f66b8fc7fca3959ab5991f82221789be9" - integrity sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g== - -socket.io-client@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.1.1.tgz#dcb38103436ab4578ddb026638ae2f21b623671f" - integrity sha512-jxnFyhAuFxYfjqIgduQlhzqTcOEQSn+OHKVfAxWaNWa7ecP7xSNk2Dx/3UEsDcY7NcFafxvNvKPmmO7HTwTxGQ== - dependencies: - backo2 "1.0.2" - base64-arraybuffer "0.1.5" - component-bind "1.0.0" - component-emitter "1.2.1" - debug "~3.1.0" - engine.io-client "~3.2.0" - has-binary2 "~1.0.2" - has-cors "1.1.0" - indexof "0.0.1" - object-component "0.0.3" - parseqs "0.0.5" - parseuri "0.0.5" - socket.io-parser "~3.2.0" - to-array "0.1.4" - -socket.io-parser@~3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.2.0.tgz#e7c6228b6aa1f814e6148aea325b51aa9499e077" - integrity sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA== - dependencies: - component-emitter "1.2.1" - debug "~3.1.0" - isarray "2.0.1" - -socket.io@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-2.1.1.tgz#a069c5feabee3e6b214a75b40ce0652e1cfb9980" - integrity sha512-rORqq9c+7W0DAK3cleWNSyfv/qKXV99hV4tZe+gGLfBECw3XEhBy7x85F3wypA9688LKjtwO9pX9L33/xQI8yA== - dependencies: - debug "~3.1.0" - engine.io "~3.2.0" - has-binary2 "~1.0.2" - socket.io-adapter "~1.1.0" - socket.io-client "2.1.1" - socket.io-parser "~3.2.0" - sockjs-client@1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.4.0.tgz#c9f2568e19c8fd8173b4997ea3420e0bb306c7d5" @@ -11098,13 +10048,6 @@ split-string@^3.0.1, split-string@^3.0.2: dependencies: extend-shallow "^3.0.0" -split@0.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/split/-/split-0.3.3.tgz#cd0eea5e63a211dfff7eb0f091c4133e2d0dd28f" - integrity sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8= - dependencies: - through "2" - sprintf-js@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.1.tgz#36be78320afe5801f6cea3ee78b6e5aab940ea0c" @@ -11185,13 +10128,6 @@ stream-browserify@^2.0.1: inherits "~2.0.1" readable-stream "^2.0.2" -stream-combiner@~0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/stream-combiner/-/stream-combiner-0.0.4.tgz#4d5e433c185261dde623ca3f44c586bcf5c4ad14" - integrity sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ= - dependencies: - duplexer "~0.1.1" - stream-connect@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/stream-connect/-/stream-connect-1.0.2.tgz#18bc81f2edb35b8b5d9a8009200a985314428a97" @@ -11233,17 +10169,6 @@ stream-via@^1.0.4: resolved "https://registry.yarnpkg.com/stream-via/-/stream-via-1.0.4.tgz#8dccbb0ac909328eb8bc8e2a4bd3934afdaf606c" integrity sha512-DBp0lSvX5G9KGRDTkR/R+a29H+Wk2xItOF+MpZLLNDWbEV9tGPnqLPxHEYjmiz8xGtJHRIqmI+hCjmNzqoA4nQ== -streamroller@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/streamroller/-/streamroller-1.0.6.tgz#8167d8496ed9f19f05ee4b158d9611321b8cacd9" - integrity sha512-3QC47Mhv3/aZNFpDDVO44qQb9gwB9QggMEE0sQmkTAwBVYdBRWISdsywlkfm5II1Q5y/pmrHflti/IgmIzdDBg== - dependencies: - async "^2.6.2" - date-format "^2.0.0" - debug "^3.2.6" - fs-extra "^7.0.1" - lodash "^4.17.14" - strict-uri-encode@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" @@ -11386,11 +10311,6 @@ strip-bom@^2.0.0: dependencies: is-utf8 "^0.2.0" -strip-bom@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" - integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= - strip-eof@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" @@ -11408,11 +10328,6 @@ strip-json-comments@^2.0.1, strip-json-comments@~2.0.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= -strip-json-comments@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" - integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== - style-loader@^0.23.1: version "0.23.1" resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.23.1.tgz#cb9154606f3e771ab6c4ab637026a1049174d925" @@ -11572,17 +10487,6 @@ tar-stream@^1.5.0: to-buffer "^1.1.1" xtend "^4.0.0" -tar-stream@^2.1.0: - version "2.1.4" - resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.1.4.tgz#c4fb1a11eb0da29b893a5b25476397ba2d053bfa" - integrity sha512-o3pS2zlG4gxr67GmFYBLlq+dM8gyRGUOvsrHclSkvtVtQbjV0s/+ZE8OpICbaj8clrX3tjeHngYGP7rweaBnuw== - dependencies: - bl "^4.0.3" - end-of-stream "^1.4.1" - fs-constants "^1.0.0" - inherits "^2.0.3" - readable-stream "^3.1.1" - tar@^2.0.0: version "2.2.2" resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.2.tgz#0ca8848562c7299b8b446ff6a4d60cdbb23edc40" @@ -11592,13 +10496,6 @@ tar@^2.0.0: fstream "^1.0.12" inherits "2" -temp-fs@^0.9.9: - version "0.9.9" - resolved "https://registry.yarnpkg.com/temp-fs/-/temp-fs-0.9.9.tgz#8071730437870720e9431532fe2814364f8803d7" - integrity sha1-gHFzBDeHByDpQxUy/igUNk+IA9c= - dependencies: - rimraf "~2.5.2" - temp-path@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/temp-path/-/temp-path-1.0.0.tgz#24b1543973ab442896d9ad367dd9cbdbfafe918b" @@ -11881,7 +10778,7 @@ through2@^2.0.0, through2@^2.0.3, through2@~2.0.0: readable-stream "~2.3.6" xtend "~4.0.1" -through@2, through@^2.3.6, through@~2.3, through@~2.3.1: +through@^2.3.6: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= @@ -11913,7 +10810,7 @@ tiny-emitter@^2.0.0: resolved "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz#1d1a56edfc51c43e863cbb5382a72330e3555423" integrity sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q== -tmp@0.0.33, tmp@0.0.x, tmp@^0.0.33: +tmp@^0.0.33: version "0.0.33" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== @@ -11928,11 +10825,6 @@ to-absolute-glob@^2.0.0: is-absolute "^1.0.0" is-negated-glob "^1.0.0" -to-array@0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890" - integrity sha1-F+bBH3PdTz10zaek/zI46a2b+JA= - to-arraybuffer@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" @@ -11943,11 +10835,6 @@ to-buffer@^1.1.1: resolved "https://registry.yarnpkg.com/to-buffer/-/to-buffer-1.1.1.tgz#493bd48f62d7c43fcded313a03dcadb2e1213a80" integrity sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg== -to-fast-properties@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" - integrity sha1-uDVx+k2MJbguIxsG46MFXeTKGkc= - to-fast-properties@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" @@ -12017,14 +10904,6 @@ tough-cookie@^2.3.3, tough-cookie@~2.5.0: psl "^1.1.28" punycode "^2.1.1" -tough-cookie@~2.4.3: - version "2.4.3" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781" - integrity sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ== - dependencies: - psl "^1.1.24" - punycode "^1.4.1" - traverse-chain@~0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/traverse-chain/-/traverse-chain-0.1.0.tgz#61dbc2d53b69ff6091a12a168fd7d433107e40f1" @@ -12045,11 +10924,6 @@ trim-newlines@^1.0.0: resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" integrity sha1-WIeWa7WCpFA6QetST301ARgVphM= -trim-right@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" - integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM= - "true-case-path@^1.0.2": version "1.0.3" resolved "https://registry.yarnpkg.com/true-case-path/-/true-case-path-1.0.3.tgz#f813b5a8c86b40da59606722b144e3225799f47d" @@ -12197,11 +11071,6 @@ unc-path-regex@^0.1.2: resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa" integrity sha1-5z3T17DXxe2G+6xrCufYxqadUPo= -underscore@~1.10.2: - version "1.10.2" - resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.10.2.tgz#73d6aa3668f3188e4adb0f1943bd12cfd7efaaaf" - integrity sha512-N4P+Q/BuyuEKFJ43B9gYuOj4TQUHXX+j2FqguVOpjkssLUUrnJofCcBccJSCoeturDoZU6GorDTHSvUDlSQbTg== - underscore@~1.8.3: version "1.8.3" resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.8.3.tgz#4f3fb53b106e6097fcf9cb4109f2a5e9bdfa5022" @@ -12387,14 +11256,6 @@ use@^3.1.0: resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== -useragent@2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/useragent/-/useragent-2.3.0.tgz#217f943ad540cb2128658ab23fc960f6a88c9972" - integrity sha512-4AoH4pxuSvHCjqLO04sU6U/uE65BYza8l/KKBS0b0hnUPWi+cQ2BpeTEwejCSx9SPV5/U03nniDTrWx5NrmKdw== - dependencies: - lru-cache "4.1.x" - tmp "0.0.x" - util-deprecate@^1.0.1, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" @@ -12472,11 +11333,6 @@ value-or-function@^3.0.0: resolved "https://registry.yarnpkg.com/value-or-function/-/value-or-function-3.0.0.tgz#1c243a50b595c1be54a754bfece8563b9ff8d813" integrity sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM= -vargs@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/vargs/-/vargs-0.1.0.tgz#6b6184da6520cc3204ce1b407cac26d92609ebff" - integrity sha1-a2GE2mUgzDIEzhtAfKwm2SYJ6/8= - vary@^1, vary@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" @@ -12558,7 +11414,7 @@ vm-browserify@^1.0.1: resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== -void-elements@^2.0.0, void-elements@^2.0.1: +void-elements@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec" integrity sha1-wGavtYK7HLQSjWDqkjkulNXp2+w= @@ -12610,19 +11466,6 @@ wbuf@^1.1.0, wbuf@^1.7.3: dependencies: minimalistic-assert "^1.0.0" -wd@^1.4.0: - version "1.13.0" - resolved "https://registry.yarnpkg.com/wd/-/wd-1.13.0.tgz#79d82c57e0bb7fcca2f291ed87f51cf6b7701ff0" - integrity sha512-Y73EADwIrz1AAmy5G70r/fIM2tzSTdLWjIgCqGlQOr2/k2cC2nho4kWacZdO3xmdsegeQvUkcsGOB74+gC9Wxg== - dependencies: - archiver "^3.0.0" - async "^2.0.0" - lodash "^4.0.0" - mkdirp "^0.5.1" - q "^1.5.1" - request "2.88.0" - vargs "^0.1.0" - webpack-cli@^3.3.11: version "3.3.12" resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.3.12.tgz#94e9ada081453cd0aa609c99e500012fd3ad2d4a" @@ -12776,7 +11619,7 @@ which-module@^2.0.0: resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= -which@1, which@^1.2.1, which@^1.2.14, which@^1.2.4, which@^1.2.9, which@^1.3.0, which@^1.3.1: +which@1, which@^1.2.14, which@^1.2.9, which@^1.3.0, which@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== @@ -12810,11 +11653,6 @@ wordwrap@^1.0.0: resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= -wordwrap@~0.0.2: - version "0.0.3" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" - integrity sha1-o9XabNXAvAAI03I0u68b7WMFkQc= - wordwrapjs@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/wordwrapjs/-/wordwrapjs-3.0.0.tgz#c94c372894cadc6feb1a66bff64e1d9af92c5d1e" @@ -12876,7 +11714,7 @@ write@1.0.3: dependencies: mkdirp "^0.5.1" -ws@^3.0.0, ws@~3.3.1: +ws@^3.0.0: version "3.3.3" resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2" integrity sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA== @@ -12917,11 +11755,6 @@ xmlcreate@^1.0.1: resolved "https://registry.yarnpkg.com/xmlcreate/-/xmlcreate-1.0.2.tgz#fa6bf762a60a413fb3dd8f4b03c5b269238d308f" integrity sha1-+mv3YqYKQT+z3Y9LA8WyaSONMI8= -xmlcreate@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/xmlcreate/-/xmlcreate-2.0.3.tgz#df9ecd518fd3890ab3548e1b811d040614993497" - integrity sha512-HgS+X6zAztGa9zIK3Y3LXuJes33Lz9x+YyTxgrkIdabu2vqcGOWwdfCpf1hWLRrd553wd4QCDf6BBO6FfdsRiQ== - xmldom@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/xmldom/-/xmldom-0.3.0.tgz#e625457f4300b5df9c2e1ecb776147ece47f3e5a" @@ -12932,11 +11765,6 @@ xmldom@~0.1.19: resolved "https://registry.yarnpkg.com/xmldom/-/xmldom-0.1.31.tgz#b76c9a1bd9f0a9737e5a72dc37231cf38375e2ff" integrity sha512-yS2uJflVQs6n+CyjHoaBmVSqIDevTAWrzMmjG1Gc7h1qQ7uVozNhEPJAwZXWyGQ/Gafo3fCwrcaokezLPupVyQ== -xmlhttprequest-ssl@~1.5.4: - version "1.5.5" - resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz#c2876b06168aadc40e57d97e81191ac8f4398b3e" - integrity sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4= - xregexp@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-2.0.0.tgz#52a63e56ca0b84a7f3a5f3d61872f126ad7a5943" @@ -13094,11 +11922,6 @@ yargs@^7.1.0: y18n "^3.2.1" yargs-parser "5.0.0-security.0" -yeast@0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" - integrity sha1-AI4G2AlDIMNy28L47XagymyKxBk= - yn@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/yn/-/yn-2.0.0.tgz#e5adabc8acf408f6385fc76495684c88e6af689a" @@ -13113,12 +11936,3 @@ zip-stream@^1.1.0: compress-commons "^1.2.0" lodash "^4.8.0" readable-stream "^2.0.0" - -zip-stream@^2.1.2: - version "2.1.3" - resolved "https://registry.yarnpkg.com/zip-stream/-/zip-stream-2.1.3.tgz#26cc4bdb93641a8590dd07112e1f77af1758865b" - integrity sha512-EkXc2JGcKhO5N5aZ7TmuNo45budRaFGHOmz24wtJR7znbNqDPmdZtUauKX6et8KAVseAMBOyWJqEpXcHTBsh7Q== - dependencies: - archiver-utils "^2.1.0" - compress-commons "^2.1.1" - readable-stream "^3.4.0" From a12dd29e555d52f0b45067953aacec46b16e1577 Mon Sep 17 00:00:00 2001 From: Mike Wu Date: Wed, 3 Feb 2021 01:37:28 +1100 Subject: [PATCH 2/8] wip --- lib/Models/MagdaSearchCatalogGroup.ts | 145 ++++++++++++++++++-------- lib/Models/MagdaSearchDefinitions.ts | 37 ++----- wwwroot/init/magda.json | 16 ++- 3 files changed, 117 insertions(+), 81 deletions(-) diff --git a/lib/Models/MagdaSearchCatalogGroup.ts b/lib/Models/MagdaSearchCatalogGroup.ts index 282082eff..bab769e16 100644 --- a/lib/Models/MagdaSearchCatalogGroup.ts +++ b/lib/Models/MagdaSearchCatalogGroup.ts @@ -3,7 +3,7 @@ import { action, computed, runInAction } from "mobx"; import URI from "urijs"; import loadJson from "terriajs/lib/Core/loadJson"; import TerriaError from "terriajs/lib/Core/TerriaError"; -import AccessControlMixin from "terriajs/lib/ModelMixins/AccessControlMixin"; +// import AccessControlMixin from "terriajs/lib/ModelMixins/AccessControlMixin"; import CatalogMemberMixin from "terriajs/lib/ModelMixins/CatalogMemberMixin"; import GroupMixin from "terriajs/lib/ModelMixins/GroupMixin"; import MagdaReferenceTraits from "terriajs/lib/Traits/MagdaReferenceTraits"; @@ -13,9 +13,10 @@ import { MagdaGroupSearchResponse, MagdaRecordSearchResponse } from "./MagdaSearchDefinitions"; -import CatalogGroup from "terriajs/lib/Models//CatalogGroupNew"; +import CatalogGroup from "terriajs/lib/Models/CatalogGroupNew"; import CommonStrata from "terriajs/lib/Models//CommonStrata"; import CreateModel from "terriajs/lib/Models//CreateModel"; +// import Group from "terriajs/lib/Models/Group"; import LoadableStratum from "terriajs/lib/Models//LoadableStratum"; import { BaseModel } from "terriajs/lib/Models//Model"; import proxyCatalogItemUrl from "terriajs/lib/Models//proxyCatalogItemUrl"; @@ -23,11 +24,17 @@ import StratumOrder from "terriajs/lib/Models//StratumOrder"; import Terria from "terriajs/lib/Models//Terria"; import CatalogGroupTraits from "terriajs/lib/Traits/CatalogGroupTraits"; +interface GroupDataSets { + [Key: string]: MagdaItem[]; +} + export class MagdaStratum extends LoadableStratum(MagdaReferenceTraits) { static stratumName = "magdaPortal"; + groups: CatalogGroup[] = []; filteredGroups: CatalogGroup[] = []; dataSets: MagdaItem[] = []; + groupDataSets: GroupDataSets = {}; filteredDatasets: MagdaItem[] = []; constructor( @@ -59,7 +66,20 @@ export class MagdaStratum extends LoadableStratum(MagdaReferenceTraits) { | MagdaRecordSearchResponse | undefined = undefined; - // /api/v0/search/datasets?publisher=AADC&format=geojson&format=kml&format=kmz&format=wms&format=wfs&publishingState=published + const groupSearchUri = new URI( + "https://data.gov.au/api/v0/search/organisations" + ); + + magdaGroupSearchResponse = await paginateThroughResults( + groupSearchUri, + catalogGroup + ); + + if (magdaGroupSearchResponse === undefined) return undefined; + + magdaGroupSearchResponse.organisations.map(group => {}); + + // https://data.gov.au/api/v0/search/datasets?publisher=AADC&format=geojson&format=kml&format=kmz&format=wms&format=wfs&format=ogc%20wms&publishingState=published const itemSearchUri = new URI( "https://data.gov.au/api/v0/search/datasets?publisher=City%20of%20Launceston&format=ogc%20wms&publishingState=published&limit=5" ); @@ -94,10 +114,7 @@ export class MagdaStratum extends LoadableStratum(MagdaReferenceTraits) { } private getGroups(): CatalogGroup[] { - let groups: CatalogGroup[] = [ - ...createUngroupedGroup(this), - ...createGroupsByPortalGroups(this) - ]; + let groups: CatalogGroup[] = [...createGroupsByPortalGroups(this)]; groups.sort(function(a, b) { if (a.nameInCatalog === undefined || b.nameInCatalog === undefined) return 0; @@ -118,27 +135,69 @@ export class MagdaStratum extends LoadableStratum(MagdaReferenceTraits) { } @action - createMembersFromDatasets() { - const items = this.dataSets.map(ds => { + async createGroupDatasets( + groupId: string | undefined, + groupName: string | undefined + ) { + if (groupId === undefined || groupName === undefined) return; + const theGroup = this._catalogGroup.terria.getModelById( + CatalogGroup, + groupId + ); + + // https://data.gov.au/api/v0/search/datasets?publisher=AADC&format=geojson&format=kml&format=kmz&format=wms&format=wfs&format=ogc%20wms&publishingState=published + const itemSearchUri = new URI( + `https://data.gov.au/api/v0/search/datasets?publisher=${groupName}&format=geojson&format=wms&format=wfs&format=ogc%20wms&publishingState=published&limit=5` + ); + // const itemSearchUri = new URI("https://data.gov.au") + // .segment("/api/v0/search/datasets") + // .addQuery({ limit: 10, publisher: groupName, format: "ogc%20wms", publishingState: "published"}); + + let res: MagdaRecordSearchResponse | undefined = undefined; + + res = await paginateThroughResults(itemSearchUri, this._catalogGroup); + + if (res === undefined) return; + + const items = res.dataSets.map(ds => { return { - id: ds.id, - name: ds.name, - recordId: ds.id, + id: ds.title, + name: ds.title, + recordId: ds.identifier, url: "https://data.gov.au", type: "magda", isMappable: true }; }); - const theGroup = this.groups.length > 0 ? this.groups[0] : undefined; - theGroup?.terria.catalog.group.addMembersFromJson( - CommonStrata.definition, - items - ); - // theGroup?.addMembersFromJson(CommonStrata.definition, items); + theGroup?.addMembersFromJson(CommonStrata.definition, items); theGroup?.terria.catalog.group.loadMembers(); } + @action + createMembersFromGroups() { + const items = this.groups.map(group => { + return { + id: group.uniqueId, + name: group.name, + description: group.description, + type: "group", + isGroup: true, + isOpen: false + }; + }); + + const theGroup = this._catalogGroup.terria.getModelById( + MagdaSearchCatalogGroup, + "dga-datasets-grouped-by-organisations" + ); + theGroup?.addMembersFromJson(CommonStrata.definition, items); + theGroup?.loadMembers(); + items.map(it => { + this.createGroupDatasets(it.id, it.name); + }); + } + @action addCatalogItemToCatalogGroup( catalogItem: any, @@ -190,7 +249,7 @@ StratumOrder.addLoadStratum(MagdaStratum.stratumName); export default class MagdaSearchCatalogGroup extends GroupMixin( CatalogMemberMixin(CreateModel(CatalogGroupTraits)) ) { - static readonly type = "magda-portal"; + static readonly type = "magda-groups"; url: string = ""; hideEmptyGroups: boolean = true; @@ -225,7 +284,8 @@ export default class MagdaSearchCatalogGroup extends GroupMixin( this.strata.get(MagdaStratum.stratumName) ); if (portalStratum) { - portalStratum.createMembersFromDatasets(); + // portalStratum.createMembersFromDatasets(); + portalStratum.createMembersFromGroups(); } }); } @@ -257,35 +317,32 @@ function createUngroupedGroup(magdaPortal: MagdaStratum) { function createGroupsByPortalGroups(magdaPortal: MagdaStratum) { if (magdaPortal._magdaGroupResponse === undefined) return []; const out: CatalogGroup[] = []; - magdaPortal._magdaGroupResponse.results.forEach((group: MagdaPortalGroup) => { - const groupId = magdaPortal._catalogGroup.uniqueId + "/" + group.id; - let existingGroup = magdaPortal._catalogGroup.terria.getModelById( - CatalogGroup, - groupId - ); - if (existingGroup === undefined) { - existingGroup = createGroup( - groupId, - magdaPortal._catalogGroup.terria, - group.title + magdaPortal._magdaGroupResponse.organisations.forEach( + (group: MagdaPortalGroup) => { + const groupId = + magdaPortal._catalogGroup.uniqueId + "/" + group.identifier; + let existingGroup = magdaPortal._catalogGroup.terria.getModelById( + CatalogGroup, + groupId ); - if (group.description) { - existingGroup.setTrait( - CommonStrata.definition, - "description", - group.description + if (existingGroup === undefined) { + existingGroup = createGroup( + groupId, + magdaPortal._catalogGroup.terria, + group.name ); + if (group.description) { + existingGroup.setTrait( + CommonStrata.definition, + "description", + group.description + ); + } } - } - if ( - AccessControlMixin.isMixedInto(existingGroup) && - group.access !== undefined - ) { - existingGroup.setAccessType(group.access); + out.push(existingGroup); } - out.push(existingGroup); - }); + ); return out; } diff --git a/lib/Models/MagdaSearchDefinitions.ts b/lib/Models/MagdaSearchDefinitions.ts index 69eaeae91..1536cca90 100644 --- a/lib/Models/MagdaSearchDefinitions.ts +++ b/lib/Models/MagdaSearchDefinitions.ts @@ -6,38 +6,21 @@ export interface MagdaItem { } export interface MagdaPortalGroup { - id: string; - title: string; - isInvitationOnly: boolean; - owner: string; - description: string; - snippet: string; - tags: string[]; - phone: string; - sortField: string; - sortOrder: string; - isViewOnly: boolean; - isFav: boolean; - thumbnail: string; - created: number; - modified: number; - access: string; - userMembership?: { - username: string; - memberType: string; - }; - protected: boolean; - autoJoin: boolean; - hasCategorySchema: boolean; - isOpenData: boolean; + identifier: string; + name: string; + datasetCount: number; + jurisdiction?: string; + description?: string; + email?: string; + aggKeywords: string; + website: string; } export interface MagdaGroupSearchResponse { - total: number; + hitCount: number; start: number; - num: number; nextStart: number; - results: MagdaPortalGroup[]; + organisations: MagdaPortalGroup[]; } export interface MagdaRecordSearchResponse { diff --git a/wwwroot/init/magda.json b/wwwroot/init/magda.json index 538731d07..5e6605b82 100644 --- a/wwwroot/init/magda.json +++ b/wwwroot/init/magda.json @@ -22,16 +22,12 @@ "recordId": "ds-launceston-https://opendata.launceston.tas.gov.au/datasets/cc86127bce3447d6bc49b30a46209a39_20" }, { - "type": "group", - "name": "Harvested DGA", - "isOpen": false, - "members": [ - { - "type": "magda-portal", - "name": "Group 1", - "url": "https://data.gov.au/api/v0/search/organisations?limit=1000" - } - ] + "id": "dga-datasets-grouped-by-organisations", + "name": "DGA groups", + "isOpen": false, + "type": "magda-groups", + "url": "https://data.gov.au/api/v0/search/organisations?limit=1000" + } ] } From 9f4c3d56347d67d3ae5d3415bf70b9977c063994 Mon Sep 17 00:00:00 2001 From: Mike Wu Date: Wed, 3 Feb 2021 18:06:28 +1100 Subject: [PATCH 3/8] Clean up the code. --- lib/Models/MagdaSearchCatalogGroup.ts | 133 +++----------------------- lib/Models/MagdaSearchDefinitions.ts | 2 +- package.json | 4 +- yarn.lock | 56 ++++++++++- 4 files changed, 66 insertions(+), 129 deletions(-) diff --git a/lib/Models/MagdaSearchCatalogGroup.ts b/lib/Models/MagdaSearchCatalogGroup.ts index bab769e16..71fe2f214 100644 --- a/lib/Models/MagdaSearchCatalogGroup.ts +++ b/lib/Models/MagdaSearchCatalogGroup.ts @@ -3,7 +3,6 @@ import { action, computed, runInAction } from "mobx"; import URI from "urijs"; import loadJson from "terriajs/lib/Core/loadJson"; import TerriaError from "terriajs/lib/Core/TerriaError"; -// import AccessControlMixin from "terriajs/lib/ModelMixins/AccessControlMixin"; import CatalogMemberMixin from "terriajs/lib/ModelMixins/CatalogMemberMixin"; import GroupMixin from "terriajs/lib/ModelMixins/GroupMixin"; import MagdaReferenceTraits from "terriajs/lib/Traits/MagdaReferenceTraits"; @@ -16,7 +15,6 @@ import { import CatalogGroup from "terriajs/lib/Models/CatalogGroupNew"; import CommonStrata from "terriajs/lib/Models//CommonStrata"; import CreateModel from "terriajs/lib/Models//CreateModel"; -// import Group from "terriajs/lib/Models/Group"; import LoadableStratum from "terriajs/lib/Models//LoadableStratum"; import { BaseModel } from "terriajs/lib/Models//Model"; import proxyCatalogItemUrl from "terriajs/lib/Models//proxyCatalogItemUrl"; @@ -28,30 +26,25 @@ interface GroupDataSets { [Key: string]: MagdaItem[]; } +const queryFormats = + "format=geojson&format=kml&format=kmz&format=wms&format=wfs&format=ogc%20wms&publishingState=published"; + export class MagdaStratum extends LoadableStratum(MagdaReferenceTraits) { static stratumName = "magdaPortal"; groups: CatalogGroup[] = []; - filteredGroups: CatalogGroup[] = []; - dataSets: MagdaItem[] = []; - groupDataSets: GroupDataSets = {}; - filteredDatasets: MagdaItem[] = []; constructor( readonly _catalogGroup: MagdaSearchCatalogGroup, - readonly _magdaItemResponse: MagdaRecordSearchResponse, readonly _magdaGroupResponse: MagdaGroupSearchResponse | undefined ) { super(); - this.dataSets = this.getDataSets(); this.groups = this.getGroups(); - this.filteredGroups = this.getFilteredGroups(); } duplicateLoadableStratum(model: BaseModel): this { return new MagdaStratum( model as MagdaSearchCatalogGroup, - this._magdaItemResponse, this._magdaGroupResponse ) as this; } @@ -67,7 +60,7 @@ export class MagdaStratum extends LoadableStratum(MagdaReferenceTraits) { | undefined = undefined; const groupSearchUri = new URI( - "https://data.gov.au/api/v0/search/organisations" + "https://data.gov.au/api/v0/search/organisations?limit=1000" ); magdaGroupSearchResponse = await paginateThroughResults( @@ -77,40 +70,7 @@ export class MagdaStratum extends LoadableStratum(MagdaReferenceTraits) { if (magdaGroupSearchResponse === undefined) return undefined; - magdaGroupSearchResponse.organisations.map(group => {}); - - // https://data.gov.au/api/v0/search/datasets?publisher=AADC&format=geojson&format=kml&format=kmz&format=wms&format=wfs&format=ogc%20wms&publishingState=published - const itemSearchUri = new URI( - "https://data.gov.au/api/v0/search/datasets?publisher=City%20of%20Launceston&format=ogc%20wms&publishingState=published&limit=5" - ); - // const itemSearchUri = new URI(catalogGroup.url) - // .segment("/api/v0/search/datasets") - // .addQuery({ limit: 100, publisher: "json" }); - - magdaItemSearchResponse = await paginateThroughResults( - itemSearchUri, - catalogGroup - ); - - if (magdaItemSearchResponse === undefined) return undefined; - - return new MagdaStratum( - catalogGroup, - magdaItemSearchResponse, - magdaGroupSearchResponse - ); - } - - @computed - get members(): MagdaItem[] { - return this.dataSets; - } - - private getDataSets(): MagdaItem[] { - const dataSets: MagdaItem[] = this._magdaItemResponse.dataSets.map(ds => { - return { id: ds.identifier, name: ds.title }; - }); - return dataSets; + return new MagdaStratum(catalogGroup, magdaGroupSearchResponse); } private getGroups(): CatalogGroup[] { @@ -129,13 +89,8 @@ export class MagdaStratum extends LoadableStratum(MagdaReferenceTraits) { return groups; } - private getFilteredGroups(): CatalogGroup[] { - if (this.groups.length === 0) return []; - return this.groups; - } - @action - async createGroupDatasets( + async createDatasetsForSubGroup( groupId: string | undefined, groupName: string | undefined ) { @@ -145,13 +100,9 @@ export class MagdaStratum extends LoadableStratum(MagdaReferenceTraits) { groupId ); - // https://data.gov.au/api/v0/search/datasets?publisher=AADC&format=geojson&format=kml&format=kmz&format=wms&format=wfs&format=ogc%20wms&publishingState=published const itemSearchUri = new URI( - `https://data.gov.au/api/v0/search/datasets?publisher=${groupName}&format=geojson&format=wms&format=wfs&format=ogc%20wms&publishingState=published&limit=5` + `https://data.gov.au/api/v0/search/datasets?publisher=${groupName}&${queryFormats}&limit=1000` ); - // const itemSearchUri = new URI("https://data.gov.au") - // .segment("/api/v0/search/datasets") - // .addQuery({ limit: 10, publisher: groupName, format: "ogc%20wms", publishingState: "published"}); let res: MagdaRecordSearchResponse | undefined = undefined; @@ -161,7 +112,7 @@ export class MagdaStratum extends LoadableStratum(MagdaReferenceTraits) { const items = res.dataSets.map(ds => { return { - id: ds.title, + id: "dga-" + ds.title, name: ds.title, recordId: ds.identifier, url: "https://data.gov.au", @@ -175,7 +126,7 @@ export class MagdaStratum extends LoadableStratum(MagdaReferenceTraits) { } @action - createMembersFromGroups() { + createSubGroups() { const items = this.groups.map(group => { return { id: group.uniqueId, @@ -194,54 +145,9 @@ export class MagdaStratum extends LoadableStratum(MagdaReferenceTraits) { theGroup?.addMembersFromJson(CommonStrata.definition, items); theGroup?.loadMembers(); items.map(it => { - this.createGroupDatasets(it.id, it.name); + this.createDatasetsForSubGroup(it.id, it.name); }); } - - @action - addCatalogItemToCatalogGroup( - catalogItem: any, - dataset: MagdaItem, - groupId: string - ) { - let group: - | CatalogGroup - | undefined = this._catalogGroup.terria.getModelById( - CatalogGroup, - groupId - ); - if (group !== undefined) { - group.add(CommonStrata.definition, catalogItem); - } - } - - // @action - // addCatalogItemByPortalGroupsToCatalogGroup( - // catalogItem: any, - // dataset: MagdaItem - // ) { - // if (dataset.groupId === undefined) { - // const groupId = this._catalogGroup.uniqueId + "/ungrouped"; - // this.addCatalogItemToCatalogGroup(catalogItem, dataset, groupId); - // return; - // } - // const groupId = this._catalogGroup.uniqueId + "/" + dataset.groupId; - // this.addCatalogItemToCatalogGroup(catalogItem, dataset, groupId); - // } - - @action - createMemberFromDataset(dataSet: MagdaItem) { - const json = { - name: dataSet.title, - recordId: dataSet.id, - url: "https://data.gov.au", - type: "magda", - isMappable: true - }; - const theGroup = this.groups.length > 0 ? this.groups[0] : undefined; - theGroup?.addMembersFromJson(CommonStrata.definition, [json]); - theGroup?.loadMembers(); - } } StratumOrder.addLoadStratum(MagdaStratum.stratumName); @@ -284,8 +190,7 @@ export default class MagdaSearchCatalogGroup extends GroupMixin( this.strata.get(MagdaStratum.stratumName) ); if (portalStratum) { - // portalStratum.createMembersFromDatasets(); - portalStratum.createMembersFromGroups(); + portalStratum.createSubGroups(); } }); } @@ -298,22 +203,6 @@ function createGroup(groupId: string, terria: Terria, groupName: string) { return g; } -function createUngroupedGroup(magdaPortal: MagdaStratum) { - const groupId = magdaPortal._catalogGroup.uniqueId + "/ungrouped"; - let existingGroup = magdaPortal._catalogGroup.terria.getModelById( - CatalogGroup, - groupId - ); - if (existingGroup === undefined) { - existingGroup = createGroup( - groupId, - magdaPortal._catalogGroup.terria, - "unknown" - ); - } - return [existingGroup]; -} - function createGroupsByPortalGroups(magdaPortal: MagdaStratum) { if (magdaPortal._magdaGroupResponse === undefined) return []; const out: CatalogGroup[] = []; diff --git a/lib/Models/MagdaSearchDefinitions.ts b/lib/Models/MagdaSearchDefinitions.ts index 1536cca90..006e90258 100644 --- a/lib/Models/MagdaSearchDefinitions.ts +++ b/lib/Models/MagdaSearchDefinitions.ts @@ -24,7 +24,7 @@ export interface MagdaGroupSearchResponse { } export interface MagdaRecordSearchResponse { - total: number; + hitCount: number; start: number; num: number; nextStart: number; diff --git a/package.json b/package.json index fd23bc442..293a34739 100644 --- a/package.json +++ b/package.json @@ -72,7 +72,7 @@ "semver": "^5.0.0", "style-loader": "^0.23.1", "svg-sprite-loader": "4.1.3", - "terriajs": "8.0.0-alpha.60", + "terriajs": "8.0.0-alpha.65", "terriajs-catalog-editor": "^0.2.0", "terriajs-cesium": "1.73.1", "terriajs-schema": "latest", @@ -89,7 +89,7 @@ "docker-build-local": "node ./deploy/docker/create-docker-context-for-node-components.js --build --push --tag auto --local", "docker-build-prod": "node ./deploy/docker/create-docker-context-for-node-components.js --build --push --tag auto", "docker-build-ci": "node ./deploy/docker/create-docker-context-for-node-components.js --build", - "start": "pm2 start ecosystem.config.js --update-env -- --config-file devserverconfig.json", + "start": "pm2 start ecosystem.config.js --update-env -- --config-file devserverconfig.json --port 3002", "stop": "pm2 stop ecosystem.config.js", "pm2": "pm2", "gulp": "gulp", diff --git a/yarn.lock b/yarn.lock index 2b6e73b10..80a694990 100644 --- a/yarn.lock +++ b/yarn.lock @@ -988,6 +988,18 @@ resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.7.5.tgz#77211291c1900a700b8a78cfafda3160d76949ed" integrity sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg== +"@iadvize-oss/foldable-helpers@^1.0.4": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@iadvize-oss/foldable-helpers/-/foldable-helpers-1.0.5.tgz#6cf649e5e415aa703d9110e9fb000e6877342da8" + integrity sha512-hrJcp7R67Xa4iOyFyVgobVxlZarHj71sfd60TaPmZliaB5ehvVd2zARqKcu+MjCe82yJS5/XIlwoFcGEn/ZXyw== + dependencies: + fp-ts "^2.6.6" + +"@iadvize-oss/opaque-type@^1.0.2-beta.5": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@iadvize-oss/opaque-type/-/opaque-type-1.1.1.tgz#61f791c665d8a2b65f707f1b243b028590f41880" + integrity sha512-qECMHjm28g6YadUSMXjJUZuMErfJI52VmXJtxnJTnPTSbgvGblrwmGVY8lNIsYLahTDsd3iZmBBdCpPF6wLAFg== + "@mapbox/point-geometry@^0.1.0", "@mapbox/point-geometry@~0.1.0": version "0.1.0" resolved "https://registry.yarnpkg.com/@mapbox/point-geometry/-/point-geometry-0.1.0.tgz#8a83f9335c7860effa2eeeca254332aa0aeed8f2" @@ -1101,6 +1113,11 @@ dependencies: debug "^4.1.1" +"@sindresorhus/is@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-2.1.1.tgz#ceff6a28a5b4867c2dd4a1ba513de278ccbe8bb1" + integrity sha512-/aPsuoj/1Dw/kzhkgz+ES6TxG0zfTMGLwuK2ZG00k/iJzYHTLCE8mVU8EPqEOp/lmxPoq1C1C9RYToRKb2KEfg== + "@types/classnames@^2.2.7", "@types/classnames@^2.2.9": version "2.2.10" resolved "https://registry.yarnpkg.com/@types/classnames/-/classnames-2.2.10.tgz#cc658ca319b6355399efc1f5b9e818f1a24bf999" @@ -2767,6 +2784,19 @@ caseless@~0.12.0: resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= +catalog-converter@^0.0.2-alpha.4: + version "0.0.2-alpha.4" + resolved "https://registry.yarnpkg.com/catalog-converter/-/catalog-converter-0.0.2-alpha.4.tgz#59c7fa2f96bf1474d81f096058416a382a066760" + integrity sha512-DnB/7nyXy3QCtoFtrJ4h0itHgu+JfPx0OuelhppXHf8HH1BQy3wfeNQVD47+SdU6DC0yr5+zOwq0AaoSujjMLA== + dependencies: + "@iadvize-oss/foldable-helpers" "^1.0.4" + "@iadvize-oss/opaque-type" "^1.0.2-beta.5" + "@sindresorhus/is" "^2.1.1" + core-js "^3.6.5" + json5 "^2.1.3" + lodash "^4.17.15" + yargs "^15.3.1" + catharsis@~0.8.9: version "0.8.11" resolved "https://registry.yarnpkg.com/catharsis/-/catharsis-0.8.11.tgz#d0eb3d2b82b7da7a3ce2efb1a7b00becc6643468" @@ -3341,6 +3371,11 @@ core-js@^3.1.4: resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.6.5.tgz#7395dc273af37fb2e50e9bd3d9fe841285231d1a" integrity sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA== +core-js@^3.6.5: + version "3.8.3" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.8.3.tgz#c21906e1f14f3689f93abcc6e26883550dd92dd0" + integrity sha512-KPYXeVZYemC2TkNEkX/01I+7yd+nX3KddKwZ1Ww7SKWdI2wQprSgLmrTddT8nw92AjEklTsPBoSdQBhbI1bQ6Q== + core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" @@ -5034,6 +5069,11 @@ forwarded@~0.1.2: resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= +fp-ts@^2.6.6: + version "2.9.4" + resolved "https://registry.yarnpkg.com/fp-ts/-/fp-ts-2.9.4.tgz#7778ddeee5da535a89c04a2cbd09b2210adcdb45" + integrity sha512-s4wbgHOylMdOALJuF07Y1jblFAhe+2I68tR/SymAb2a/BcwGRD/l/9oc6SESgiaTnCFR3d2FZ5LZpsMmXMWv5A== + fragment-cache@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" @@ -6543,6 +6583,13 @@ json5@^2.1.0, json5@^2.1.2: dependencies: minimist "^1.2.5" +json5@^2.1.3: + version "2.2.0" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3" + integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA== + dependencies: + minimist "^1.2.5" + jsonfile@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" @@ -10566,10 +10613,10 @@ terriajs-server@^3.0.1: when "^3.7.7" yargs "^13.2.4" -terriajs@8.0.0-alpha.60: - version "8.0.0-alpha.60" - resolved "https://registry.yarnpkg.com/terriajs/-/terriajs-8.0.0-alpha.60.tgz#1da317819112f562d775dc526824e934efb3faab" - integrity sha512-qvf9ZQVWYEFCiC+bRlbdWMuY7XjV2MVHeeWDLSwG2z2/QECAYfxrnYKT9RixLUPvNARKRKXajKko5ldSj+cLfQ== +terriajs@8.0.0-alpha.65: + version "8.0.0-alpha.65" + resolved "https://registry.yarnpkg.com/terriajs/-/terriajs-8.0.0-alpha.65.tgz#2c3637bae3db6d0ada89a8f609c42a1c7464cdaa" + integrity sha512-wgGY1Ahkmb6+Vn/exkVXxgqprHa5UrZROOocpTALEfa43tXQr3U5zQUUn54iUa7papd4aNGwZyfPy1T776RjgQ== dependencies: "@babel/core" "^7.3.3" "@babel/plugin-proposal-decorators" "^7.10.4" @@ -10615,6 +10662,7 @@ terriajs@8.0.0-alpha.60: "@vx/tooltip" "^0.0.193-alpha.2" babel-loader "^8.0.5" babel-plugin-jsx-control-statements "^4.0.0" + catalog-converter "^0.0.2-alpha.4" class-list "^0.1.1" classnames "^2.2.3" clipboard "^2.0.0" From 6c7b8c2d1a40bd60f9d76bae7f87266e73b0de2d Mon Sep 17 00:00:00 2001 From: Mike Wu Date: Thu, 4 Feb 2021 11:04:35 +1100 Subject: [PATCH 4/8] Refactored --- index.js | 6 ++-- ...chCatalogGroup.ts => MagdaPortalSearch.ts} | 35 ++++++++----------- lib/Models/MagdaSearchDefinitions.ts | 15 ++++++-- wwwroot/init/magda.json | 7 ++-- 4 files changed, 34 insertions(+), 29 deletions(-) rename lib/Models/{MagdaSearchCatalogGroup.ts => MagdaPortalSearch.ts} (92%) diff --git a/index.js b/index.js index 135f6a7d7..850396201 100644 --- a/index.js +++ b/index.js @@ -30,7 +30,7 @@ import createGlobalBaseMapOptions from 'terriajs/lib/ViewModels/createGlobalBase import registerCatalogMembers from 'terriajs/lib/Models/registerCatalogMembers'; import defined from 'terriajs-cesium/Source/Core/defined'; import CatalogMemberFactory from "terriajs/lib/Models/CatalogMemberFactory"; -import MagdaSearchCatalogGroup from "./lib/Models/MagdaSearchCatalogGroup"; +import MagdaPortalSearch from "./lib/Models/MagdaPortalSearch"; // Register all types of catalog members in the core TerriaJS. If you only want to register a subset of them // (i.e. to reduce the size of your application if you don't actually use them all), feel free to copy a subset of @@ -60,8 +60,8 @@ const viewState = new ViewState({ registerCatalogMembers(); CatalogMemberFactory.register( - MagdaSearchCatalogGroup.type, - MagdaSearchCatalogGroup + MagdaPortalSearch.type, + MagdaPortalSearch ); diff --git a/lib/Models/MagdaSearchCatalogGroup.ts b/lib/Models/MagdaPortalSearch.ts similarity index 92% rename from lib/Models/MagdaSearchCatalogGroup.ts rename to lib/Models/MagdaPortalSearch.ts index 71fe2f214..834ce3ec5 100644 --- a/lib/Models/MagdaSearchCatalogGroup.ts +++ b/lib/Models/MagdaPortalSearch.ts @@ -22,10 +22,6 @@ import StratumOrder from "terriajs/lib/Models//StratumOrder"; import Terria from "terriajs/lib/Models//Terria"; import CatalogGroupTraits from "terriajs/lib/Traits/CatalogGroupTraits"; -interface GroupDataSets { - [Key: string]: MagdaItem[]; -} - const queryFormats = "format=geojson&format=kml&format=kmz&format=wms&format=wfs&format=ogc%20wms&publishingState=published"; @@ -35,7 +31,7 @@ export class MagdaStratum extends LoadableStratum(MagdaReferenceTraits) { groups: CatalogGroup[] = []; constructor( - readonly _catalogGroup: MagdaSearchCatalogGroup, + readonly _catalogGroup: MagdaSearchGroups, readonly _magdaGroupResponse: MagdaGroupSearchResponse | undefined ) { super(); @@ -44,13 +40,13 @@ export class MagdaStratum extends LoadableStratum(MagdaReferenceTraits) { duplicateLoadableStratum(model: BaseModel): this { return new MagdaStratum( - model as MagdaSearchCatalogGroup, + model as MagdaSearchGroups, this._magdaGroupResponse ) as this; } static async load( - catalogGroup: MagdaSearchCatalogGroup + catalogGroup: MagdaSearchGroups ): Promise { let magdaGroupSearchResponse: | MagdaGroupSearchResponse @@ -110,10 +106,10 @@ export class MagdaStratum extends LoadableStratum(MagdaReferenceTraits) { if (res === undefined) return; - const items = res.dataSets.map(ds => { + const items: MagdaItem[] = res.dataSets.map(ds => { return { - id: "dga-" + ds.title, - name: ds.title, + id: "dga-" + (ds.title ? ds.title : ds.identifier), + name: ds.title ? ds.title : ds.identifier, recordId: ds.identifier, url: "https://data.gov.au", type: "magda", @@ -139,7 +135,7 @@ export class MagdaStratum extends LoadableStratum(MagdaReferenceTraits) { }); const theGroup = this._catalogGroup.terria.getModelById( - MagdaSearchCatalogGroup, + MagdaSearchGroups, "dga-datasets-grouped-by-organisations" ); theGroup?.addMembersFromJson(CommonStrata.definition, items); @@ -152,10 +148,10 @@ export class MagdaStratum extends LoadableStratum(MagdaReferenceTraits) { StratumOrder.addLoadStratum(MagdaStratum.stratumName); -export default class MagdaSearchCatalogGroup extends GroupMixin( +export default class MagdaSearchGroups extends GroupMixin( CatalogMemberMixin(CreateModel(CatalogGroupTraits)) ) { - static readonly type = "magda-groups"; + static readonly type = "magda-portal"; url: string = ""; hideEmptyGroups: boolean = true; @@ -220,11 +216,11 @@ function createGroupsByPortalGroups(magdaPortal: MagdaStratum) { magdaPortal._catalogGroup.terria, group.name ); - if (group.description) { + if (group.description || group.aggKeywords) { existingGroup.setTrait( CommonStrata.definition, "description", - group.description + group.description ? group.description : group.aggKeywords ); } } @@ -237,7 +233,7 @@ function createGroupsByPortalGroups(magdaPortal: MagdaStratum) { async function paginateThroughResults( uri: any, - catalogGroup: MagdaSearchCatalogGroup + catalogGroup: MagdaSearchGroups ) { const magdaPortalResponse = await getPortalInformation(uri, catalogGroup); if (magdaPortalResponse === undefined || !magdaPortalResponse) { @@ -266,10 +262,7 @@ async function paginateThroughResults( return magdaPortalResponse; } -async function getPortalInformation( - uri: any, - catalogGroup: MagdaSearchCatalogGroup -) { +async function getPortalInformation(uri: any, catalogGroup: MagdaSearchGroups) { try { const response = await loadJson( proxyCatalogItemUrl( @@ -287,7 +280,7 @@ async function getPortalInformation( async function getMoreResults( uri: any, - catalogGroup: MagdaSearchCatalogGroup, + catalogGroup: MagdaSearchGroups, baseResults: MagdaRecordSearchResponse, nextResultStart: number ) { diff --git a/lib/Models/MagdaSearchDefinitions.ts b/lib/Models/MagdaSearchDefinitions.ts index 006e90258..36276a088 100644 --- a/lib/Models/MagdaSearchDefinitions.ts +++ b/lib/Models/MagdaSearchDefinitions.ts @@ -1,8 +1,17 @@ +export interface DataSet { + identifier: string; + title?: string; + type: string; + isMappable: boolean; +} + export interface MagdaItem { id: string; name?: string; - title?: string; - description?: string; + recordId: string; + url: string; + type: string; + isMappable: boolean; } export interface MagdaPortalGroup { @@ -28,5 +37,5 @@ export interface MagdaRecordSearchResponse { start: number; num: number; nextStart: number; - dataSets: any[]; + dataSets: DataSet[]; } diff --git a/wwwroot/init/magda.json b/wwwroot/init/magda.json index 5e6605b82..2c165a155 100644 --- a/wwwroot/init/magda.json +++ b/wwwroot/init/magda.json @@ -8,6 +8,7 @@ "catalog": [ { + "id": "nm-magda-item-1", "type": "magda", "url": "https://data.gov.au", "name": "Magda Item 1", @@ -15,6 +16,7 @@ "recordId": "ds-dga-2bf938e7-f98c-4f30-8cae-cf4905fcf429" }, { + "id": "nm-magda-item-2", "type": "magda", "url": "https://data.gov.au", "name": "Magda Item 2", @@ -24,9 +26,10 @@ { "id": "dga-datasets-grouped-by-organisations", "name": "DGA groups", + "description": "Experimental only", "isOpen": false, - "type": "magda-groups", - "url": "https://data.gov.au/api/v0/search/organisations?limit=1000" + "type": "magda-portal", + "url": "https://data.gov.au" } ] From af0c25a26dffdca4134901d916c8ae8f924a8542 Mon Sep 17 00:00:00 2001 From: Mike Wu Date: Thu, 4 Feb 2021 18:38:26 +1100 Subject: [PATCH 5/8] Search datasets then create groups. --- lib/Models/MagdaPortalSearch.ts | 163 ++++++++++++-------------- lib/Models/MagdaSearchDefinitions.ts | 18 ++- lib/Traits/MagdaItemTraits.ts | 19 --- lib/Traits/MagdaPortalSearchTraits.ts | 21 ++++ wwwroot/init/magda.json | 2 +- 5 files changed, 107 insertions(+), 116 deletions(-) delete mode 100644 lib/Traits/MagdaItemTraits.ts create mode 100644 lib/Traits/MagdaPortalSearchTraits.ts diff --git a/lib/Models/MagdaPortalSearch.ts b/lib/Models/MagdaPortalSearch.ts index 834ce3ec5..2beb56709 100644 --- a/lib/Models/MagdaPortalSearch.ts +++ b/lib/Models/MagdaPortalSearch.ts @@ -7,10 +7,9 @@ import CatalogMemberMixin from "terriajs/lib/ModelMixins/CatalogMemberMixin"; import GroupMixin from "terriajs/lib/ModelMixins/GroupMixin"; import MagdaReferenceTraits from "terriajs/lib/Traits/MagdaReferenceTraits"; import { + DataSet, MagdaItem, - MagdaPortalGroup, - MagdaGroupSearchResponse, - MagdaRecordSearchResponse + MagdaDataSetSearchResponse } from "./MagdaSearchDefinitions"; import CatalogGroup from "terriajs/lib/Models/CatalogGroupNew"; import CommonStrata from "terriajs/lib/Models//CommonStrata"; @@ -20,8 +19,9 @@ import { BaseModel } from "terriajs/lib/Models//Model"; import proxyCatalogItemUrl from "terriajs/lib/Models//proxyCatalogItemUrl"; import StratumOrder from "terriajs/lib/Models//StratumOrder"; import Terria from "terriajs/lib/Models//Terria"; -import CatalogGroupTraits from "terriajs/lib/Traits/CatalogGroupTraits"; +import MagdaPortalSearchTraits from "../Traits/MagdaPortalSearchTraits"; +const queryLimit = 500; const queryFormats = "format=geojson&format=kml&format=kmz&format=wms&format=wfs&format=ogc%20wms&publishingState=published"; @@ -31,8 +31,8 @@ export class MagdaStratum extends LoadableStratum(MagdaReferenceTraits) { groups: CatalogGroup[] = []; constructor( - readonly _catalogGroup: MagdaSearchGroups, - readonly _magdaGroupResponse: MagdaGroupSearchResponse | undefined + readonly _catalogGroup: MagdaPortalSearch, + readonly _magdaRecordSearchResponse: MagdaDataSetSearchResponse | undefined ) { super(); this.groups = this.getGroups(); @@ -40,37 +40,38 @@ export class MagdaStratum extends LoadableStratum(MagdaReferenceTraits) { duplicateLoadableStratum(model: BaseModel): this { return new MagdaStratum( - model as MagdaSearchGroups, - this._magdaGroupResponse + model as MagdaPortalSearch, + this._magdaRecordSearchResponse ) as this; } static async load( - catalogGroup: MagdaSearchGroups + catalogGroup: MagdaPortalSearch ): Promise { - let magdaGroupSearchResponse: - | MagdaGroupSearchResponse - | undefined = undefined; - let magdaItemSearchResponse: - | MagdaRecordSearchResponse + const portalUrl: string = catalogGroup.url + ? catalogGroup.url + : "https://data.gov.au"; + + let magdaRecordSearchResponse: + | MagdaDataSetSearchResponse | undefined = undefined; - const groupSearchUri = new URI( - "https://data.gov.au/api/v0/search/organisations?limit=1000" + const dataSetSearchUri = new URI( + `${portalUrl}/api/v0/search/datasets?${queryFormats}&limit=${queryLimit}` ); - magdaGroupSearchResponse = await paginateThroughResults( - groupSearchUri, + magdaRecordSearchResponse = await paginateThroughResults( + dataSetSearchUri, catalogGroup ); - if (magdaGroupSearchResponse === undefined) return undefined; + if (magdaRecordSearchResponse === undefined) return; - return new MagdaStratum(catalogGroup, magdaGroupSearchResponse); + return new MagdaStratum(catalogGroup, magdaRecordSearchResponse); } private getGroups(): CatalogGroup[] { - let groups: CatalogGroup[] = [...createGroupsByPortalGroups(this)]; + let groups: CatalogGroup[] = [...createGroupsFromDataSets(this)]; groups.sort(function(a, b) { if (a.nameInCatalog === undefined || b.nameInCatalog === undefined) return 0; @@ -86,43 +87,7 @@ export class MagdaStratum extends LoadableStratum(MagdaReferenceTraits) { } @action - async createDatasetsForSubGroup( - groupId: string | undefined, - groupName: string | undefined - ) { - if (groupId === undefined || groupName === undefined) return; - const theGroup = this._catalogGroup.terria.getModelById( - CatalogGroup, - groupId - ); - - const itemSearchUri = new URI( - `https://data.gov.au/api/v0/search/datasets?publisher=${groupName}&${queryFormats}&limit=1000` - ); - - let res: MagdaRecordSearchResponse | undefined = undefined; - - res = await paginateThroughResults(itemSearchUri, this._catalogGroup); - - if (res === undefined) return; - - const items: MagdaItem[] = res.dataSets.map(ds => { - return { - id: "dga-" + (ds.title ? ds.title : ds.identifier), - name: ds.title ? ds.title : ds.identifier, - recordId: ds.identifier, - url: "https://data.gov.au", - type: "magda", - isMappable: true - }; - }); - - theGroup?.addMembersFromJson(CommonStrata.definition, items); - theGroup?.terria.catalog.group.loadMembers(); - } - - @action - createSubGroups() { + addSubGroups() { const items = this.groups.map(group => { return { id: group.uniqueId, @@ -134,26 +99,24 @@ export class MagdaStratum extends LoadableStratum(MagdaReferenceTraits) { }; }); + const thePortalGroupId = this._catalogGroup.id + ? this._catalogGroup.id + : "dga-datasets-grouped-by-publishers"; const theGroup = this._catalogGroup.terria.getModelById( - MagdaSearchGroups, - "dga-datasets-grouped-by-organisations" + MagdaPortalSearch, + thePortalGroupId ); theGroup?.addMembersFromJson(CommonStrata.definition, items); theGroup?.loadMembers(); - items.map(it => { - this.createDatasetsForSubGroup(it.id, it.name); - }); } } StratumOrder.addLoadStratum(MagdaStratum.stratumName); -export default class MagdaSearchGroups extends GroupMixin( - CatalogMemberMixin(CreateModel(CatalogGroupTraits)) +export default class MagdaPortalSearch extends GroupMixin( + CatalogMemberMixin(CreateModel(MagdaPortalSearchTraits)) ) { static readonly type = "magda-portal"; - url: string = ""; - hideEmptyGroups: boolean = true; get typeName() { return i18next.t("models.magdaPortal.nameGroup"); @@ -186,7 +149,7 @@ export default class MagdaSearchGroups extends GroupMixin( this.strata.get(MagdaStratum.stratumName) ); if (portalStratum) { - portalStratum.createSubGroups(); + portalStratum.addSubGroups(); } }); } @@ -199,32 +162,59 @@ function createGroup(groupId: string, terria: Terria, groupName: string) { return g; } -function createGroupsByPortalGroups(magdaPortal: MagdaStratum) { - if (magdaPortal._magdaGroupResponse === undefined) return []; +function createGroupsFromDataSets(magdaPortal: MagdaStratum) { + const portalUrl = magdaPortal._catalogGroup.url; + if ( + portalUrl === undefined || + magdaPortal._magdaRecordSearchResponse === undefined + ) + return []; const out: CatalogGroup[] = []; - magdaPortal._magdaGroupResponse.organisations.forEach( - (group: MagdaPortalGroup) => { + + magdaPortal._magdaRecordSearchResponse.dataSets.forEach( + (dataSet: DataSet) => { + const publisher = dataSet.publisher; const groupId = - magdaPortal._catalogGroup.uniqueId + "/" + group.identifier; + magdaPortal._catalogGroup.uniqueId + "/" + publisher?.identifier; let existingGroup = magdaPortal._catalogGroup.terria.getModelById( CatalogGroup, groupId ); if (existingGroup === undefined) { + const groupName = + publisher && publisher.name ? publisher.name : "Unamed Group"; existingGroup = createGroup( groupId, magdaPortal._catalogGroup.terria, - group.name + groupName ); - if (group.description || group.aggKeywords) { + if ( + publisher !== null && + publisher !== undefined && + (publisher.description || publisher.aggKeywords) + ) { existingGroup.setTrait( CommonStrata.definition, "description", - group.description ? group.description : group.aggKeywords + publisher.description + ? publisher.description + : publisher.aggKeywords ); } } + const item: MagdaItem = { + id: "dga-" + (dataSet.title ? dataSet.title : dataSet.identifier), + name: dataSet.title ? dataSet.title : dataSet.identifier, + recordId: dataSet.identifier, + url: portalUrl, + type: "magda", + isMappable: true + }; + + existingGroup.addMembersFromJson(CommonStrata.definition, [item]); + existingGroup.terria.catalog.group.loadMembers(); + out.push(existingGroup); } ); @@ -233,7 +223,7 @@ function createGroupsByPortalGroups(magdaPortal: MagdaStratum) { async function paginateThroughResults( uri: any, - catalogGroup: MagdaSearchGroups + catalogGroup: MagdaPortalSearch ) { const magdaPortalResponse = await getPortalInformation(uri, catalogGroup); if (magdaPortalResponse === undefined || !magdaPortalResponse) { @@ -248,9 +238,9 @@ async function paginateThroughResults( "" }) }); - return; } - let nextStart: number = -1; + + let nextStart: number = queryLimit; while (nextStart !== -1) { nextStart = await getMoreResults( uri, @@ -262,7 +252,7 @@ async function paginateThroughResults( return magdaPortalResponse; } -async function getPortalInformation(uri: any, catalogGroup: MagdaSearchGroups) { +async function getPortalInformation(uri: any, catalogGroup: MagdaPortalSearch) { try { const response = await loadJson( proxyCatalogItemUrl( @@ -280,13 +270,13 @@ async function getPortalInformation(uri: any, catalogGroup: MagdaSearchGroups) { async function getMoreResults( uri: any, - catalogGroup: MagdaSearchGroups, - baseResults: MagdaRecordSearchResponse, + catalogGroup: MagdaPortalSearch, + baseResults: MagdaDataSetSearchResponse, nextResultStart: number ) { uri.setQuery("start", nextResultStart); try { - const magdaItemSearchResponse = await getPortalInformation( + const magdaItemSearchResponse: MagdaDataSetSearchResponse = await getPortalInformation( uri, catalogGroup ); @@ -294,9 +284,12 @@ async function getMoreResults( return -1; } baseResults.dataSets = baseResults.dataSets.concat( - magdaItemSearchResponse.results + magdaItemSearchResponse.dataSets ); - return magdaItemSearchResponse.nextStart; + + const start = nextResultStart + magdaItemSearchResponse.dataSets.length; + // return start >= magdaItemSearchResponse.hitCount ? -1 : start; + return start < magdaItemSearchResponse.hitCount - 1 ? start : -1; } catch (err) { console.log(err); return -1; diff --git a/lib/Models/MagdaSearchDefinitions.ts b/lib/Models/MagdaSearchDefinitions.ts index 36276a088..f60eeecc3 100644 --- a/lib/Models/MagdaSearchDefinitions.ts +++ b/lib/Models/MagdaSearchDefinitions.ts @@ -3,6 +3,12 @@ export interface DataSet { title?: string; type: string; isMappable: boolean; + publisher: { + identifier: string; + name: string; + description: string; + aggKeywords: string; + }; } export interface MagdaItem { @@ -25,17 +31,7 @@ export interface MagdaPortalGroup { website: string; } -export interface MagdaGroupSearchResponse { +export interface MagdaDataSetSearchResponse { hitCount: number; - start: number; - nextStart: number; - organisations: MagdaPortalGroup[]; -} - -export interface MagdaRecordSearchResponse { - hitCount: number; - start: number; - num: number; - nextStart: number; dataSets: DataSet[]; } diff --git a/lib/Traits/MagdaItemTraits.ts b/lib/Traits/MagdaItemTraits.ts deleted file mode 100644 index aa58b4edb..000000000 --- a/lib/Traits/MagdaItemTraits.ts +++ /dev/null @@ -1,19 +0,0 @@ -import CatalogMemberReferenceTraits from "terriajs/lib/Traits/CatalogMemberReferenceTraits"; -import mixTraits from "terriajs/lib/Traits//mixTraits"; -// import CatalogMemberTraits from "terriajs/lib/Traits//CatalogMemberTraits"; -import MappableTraits from "terriajs/lib/Traits//MappableTraits"; -import primitiveTrait from "terriajs/lib/Traits//primitiveTrait"; -import UrlTraits from "terriajs/lib/Traits//UrlTraits"; - -export default class MagdaItemTraits extends mixTraits( - UrlTraits, - MappableTraits, - CatalogMemberReferenceTraits -) { - @primitiveTrait({ - name: "Item ID", - description: "The ID of the portal item.", - type: "string" - }) - itemId?: string; -} diff --git a/lib/Traits/MagdaPortalSearchTraits.ts b/lib/Traits/MagdaPortalSearchTraits.ts new file mode 100644 index 000000000..6ea7bf797 --- /dev/null +++ b/lib/Traits/MagdaPortalSearchTraits.ts @@ -0,0 +1,21 @@ +import mixTraits from "terriajs/lib/Traits//mixTraits"; +import CatalogGroupTraits from "terriajs/lib/Traits/CatalogGroupTraits"; +import primitiveTrait from "terriajs/lib/Traits//primitiveTrait"; + +export default class MagdaPortalSearchTraits extends mixTraits( + CatalogGroupTraits +) { + @primitiveTrait({ + name: "Magda portal group ID", + description: "The ID of the magda portal group.", + type: "string" + }) + id?: string; + + @primitiveTrait({ + name: "Magda portal URL", + description: "The URL of the magda portal.", + type: "string" + }) + url?: string; +} diff --git a/wwwroot/init/magda.json b/wwwroot/init/magda.json index 2c165a155..ef7815ba1 100644 --- a/wwwroot/init/magda.json +++ b/wwwroot/init/magda.json @@ -24,7 +24,7 @@ "recordId": "ds-launceston-https://opendata.launceston.tas.gov.au/datasets/cc86127bce3447d6bc49b30a46209a39_20" }, { - "id": "dga-datasets-grouped-by-organisations", + "id": "dga-datasets-grouped-by-publishers", "name": "DGA groups", "description": "Experimental only", "isOpen": false, From a09725b90e02f0596df6aa80e8e38122e1b2f778 Mon Sep 17 00:00:00 2001 From: Mike Wu Date: Fri, 5 Feb 2021 00:22:51 +1100 Subject: [PATCH 6/8] Bug fixes and improvement. --- lib/Models/MagdaPortalSearch.ts | 36 +++++++++++++++++----------- lib/Models/MagdaSearchDefinitions.ts | 7 +++--- package.json | 2 +- wwwroot/init/magda.json | 2 +- 4 files changed, 28 insertions(+), 19 deletions(-) diff --git a/lib/Models/MagdaPortalSearch.ts b/lib/Models/MagdaPortalSearch.ts index 2beb56709..906b42800 100644 --- a/lib/Models/MagdaPortalSearch.ts +++ b/lib/Models/MagdaPortalSearch.ts @@ -107,6 +107,11 @@ export class MagdaStratum extends LoadableStratum(MagdaReferenceTraits) { thePortalGroupId ); theGroup?.addMembersFromJson(CommonStrata.definition, items); + theGroup?.setTrait( + CommonStrata.definition, + "description", + `

Contains ${items.length} groups.

This is still in experimental stage. The quality of datasets varies. Some might not be added to the map.

` + ); theGroup?.loadMembers(); } } @@ -174,25 +179,29 @@ function createGroupsFromDataSets(magdaPortal: MagdaStratum) { magdaPortal._magdaRecordSearchResponse.dataSets.forEach( (dataSet: DataSet) => { const publisher = dataSet.publisher; - const groupId = - magdaPortal._catalogGroup.uniqueId + "/" + publisher?.identifier; + const groupName = + publisher && publisher.name + ? publisher.name + : dataSet.catalog + ? dataSet.catalog + : dataSet.source && dataSet.source.name + ? dataSet.source.name + : "Unamed Group"; + + const groupId = magdaPortal._catalogGroup.uniqueId + "/" + groupName; + let existingGroup = magdaPortal._catalogGroup.terria.getModelById( CatalogGroup, groupId ); + if (existingGroup === undefined) { - const groupName = - publisher && publisher.name ? publisher.name : "Unamed Group"; existingGroup = createGroup( groupId, magdaPortal._catalogGroup.terria, groupName ); - if ( - publisher !== null && - publisher !== undefined && - (publisher.description || publisher.aggKeywords) - ) { + if (publisher && (publisher.description || publisher.aggKeywords)) { existingGroup.setTrait( CommonStrata.definition, "description", @@ -201,21 +210,20 @@ function createGroupsFromDataSets(magdaPortal: MagdaStratum) { : publisher.aggKeywords ); } + + out.push(existingGroup); } const item: MagdaItem = { - id: "dga-" + (dataSet.title ? dataSet.title : dataSet.identifier), + id: "dga-" + dataSet.identifier, name: dataSet.title ? dataSet.title : dataSet.identifier, recordId: dataSet.identifier, url: portalUrl, - type: "magda", - isMappable: true + type: "magda" }; existingGroup.addMembersFromJson(CommonStrata.definition, [item]); existingGroup.terria.catalog.group.loadMembers(); - - out.push(existingGroup); } ); return out; diff --git a/lib/Models/MagdaSearchDefinitions.ts b/lib/Models/MagdaSearchDefinitions.ts index f60eeecc3..2d14a6d13 100644 --- a/lib/Models/MagdaSearchDefinitions.ts +++ b/lib/Models/MagdaSearchDefinitions.ts @@ -1,14 +1,16 @@ export interface DataSet { identifier: string; title?: string; - type: string; - isMappable: boolean; publisher: { identifier: string; name: string; description: string; aggKeywords: string; }; + catalog: string; + source: { + name: string; + }; } export interface MagdaItem { @@ -17,7 +19,6 @@ export interface MagdaItem { recordId: string; url: string; type: string; - isMappable: boolean; } export interface MagdaPortalGroup { diff --git a/package.json b/package.json index 293a34739..d6579c619 100644 --- a/package.json +++ b/package.json @@ -89,7 +89,7 @@ "docker-build-local": "node ./deploy/docker/create-docker-context-for-node-components.js --build --push --tag auto --local", "docker-build-prod": "node ./deploy/docker/create-docker-context-for-node-components.js --build --push --tag auto", "docker-build-ci": "node ./deploy/docker/create-docker-context-for-node-components.js --build", - "start": "pm2 start ecosystem.config.js --update-env -- --config-file devserverconfig.json --port 3002", + "start": "pm2 start ecosystem.config.js --update-env -- --config-file devserverconfig.json", "stop": "pm2 stop ecosystem.config.js", "pm2": "pm2", "gulp": "gulp", diff --git a/wwwroot/init/magda.json b/wwwroot/init/magda.json index ef7815ba1..e0e2ead1d 100644 --- a/wwwroot/init/magda.json +++ b/wwwroot/init/magda.json @@ -26,7 +26,7 @@ { "id": "dga-datasets-grouped-by-publishers", "name": "DGA groups", - "description": "Experimental only", + "description": "Search for datasets from the portal now. Typically takes less than 30 seconds.", "isOpen": false, "type": "magda-portal", "url": "https://data.gov.au" From 40bf3c0896767957205322ff39f821425470fafc Mon Sep 17 00:00:00 2001 From: Mike Wu Date: Fri, 5 Feb 2021 00:49:22 +1100 Subject: [PATCH 7/8] Refactor --- lib/Models/MagdaPortalSearch.ts | 5 ++--- wwwroot/init/magda.json | 22 ++-------------------- 2 files changed, 4 insertions(+), 23 deletions(-) diff --git a/lib/Models/MagdaPortalSearch.ts b/lib/Models/MagdaPortalSearch.ts index 906b42800..19c54daac 100644 --- a/lib/Models/MagdaPortalSearch.ts +++ b/lib/Models/MagdaPortalSearch.ts @@ -295,9 +295,8 @@ async function getMoreResults( magdaItemSearchResponse.dataSets ); - const start = nextResultStart + magdaItemSearchResponse.dataSets.length; - // return start >= magdaItemSearchResponse.hitCount ? -1 : start; - return start < magdaItemSearchResponse.hitCount - 1 ? start : -1; + const start = nextResultStart + queryLimit; + return start >= magdaItemSearchResponse.hitCount ? -1 : start; } catch (err) { console.log(err); return -1; diff --git a/wwwroot/init/magda.json b/wwwroot/init/magda.json index e0e2ead1d..1eed7df42 100644 --- a/wwwroot/init/magda.json +++ b/wwwroot/init/magda.json @@ -6,31 +6,13 @@ "west": 109 }, "catalog": [ - - { - "id": "nm-magda-item-1", - "type": "magda", - "url": "https://data.gov.au", - "name": "Magda Item 1", - "isMappable": true, - "recordId": "ds-dga-2bf938e7-f98c-4f30-8cae-cf4905fcf429" - }, - { - "id": "nm-magda-item-2", - "type": "magda", - "url": "https://data.gov.au", - "name": "Magda Item 2", - "isMappable": true, - "recordId": "ds-launceston-https://opendata.launceston.tas.gov.au/datasets/cc86127bce3447d6bc49b30a46209a39_20" - }, { "id": "dga-datasets-grouped-by-publishers", - "name": "DGA groups", - "description": "Search for datasets from the portal now. Typically takes less than 30 seconds.", + "name": "Selected Groups from data.gov.au", + "description": "Search for datasets from the portal now, typically taking less than 30 seconds.", "isOpen": false, "type": "magda-portal", "url": "https://data.gov.au" - } ] } From 303eeca42f62e0ece6f473f859345c0ae21a589f Mon Sep 17 00:00:00 2001 From: Mike Wu Date: Fri, 5 Feb 2021 11:16:16 +1100 Subject: [PATCH 8/8] Revise description --- lib/Models/MagdaPortalSearch.ts | 2 +- wwwroot/init/magda.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/Models/MagdaPortalSearch.ts b/lib/Models/MagdaPortalSearch.ts index 19c54daac..6085aea1a 100644 --- a/lib/Models/MagdaPortalSearch.ts +++ b/lib/Models/MagdaPortalSearch.ts @@ -110,7 +110,7 @@ export class MagdaStratum extends LoadableStratum(MagdaReferenceTraits) { theGroup?.setTrait( CommonStrata.definition, "description", - `

Contains ${items.length} groups.

This is still in experimental stage. The quality of datasets varies. Some might not be added to the map.

` + `

Found ${this._magdaRecordSearchResponse?.hitCount} datasets grouped by ${items.length} publishers.

This is still in experimental stage. The quality of datasets varies. Not all datasets can be added to the map.

` ); theGroup?.loadMembers(); } diff --git a/wwwroot/init/magda.json b/wwwroot/init/magda.json index 1eed7df42..1685c5223 100644 --- a/wwwroot/init/magda.json +++ b/wwwroot/init/magda.json @@ -8,7 +8,7 @@ "catalog": [ { "id": "dga-datasets-grouped-by-publishers", - "name": "Selected Groups from data.gov.au", + "name": "Selected Datasets from data.gov.au", "description": "Search for datasets from the portal now, typically taking less than 30 seconds.", "isOpen": false, "type": "magda-portal",