- npm updates + xml2js install

- notes for xml2js
- query oai datsets via oai endpoint
This commit is contained in:
Arno Kaimbacher 2022-01-28 16:30:34 +01:00
parent 745c3e1349
commit c86f0f44eb
6 changed files with 346 additions and 182 deletions

376
package-lock.json generated
View File

@ -21,10 +21,12 @@
"vue-class-component": "^8.0.0-0", "vue-class-component": "^8.0.0-0",
"vue-matomo": "^4.1.0", "vue-matomo": "^4.1.0",
"vue-property-decorator": "^9.1.2", "vue-property-decorator": "^9.1.2",
"vue-router": "^4.0.12" "vue-router": "^4.0.12",
"xml2js": "^0.4.23"
}, },
"devDependencies": { "devDependencies": {
"@types/leaflet": "^1.7.9", "@types/leaflet": "^1.7.9",
"@types/xml2js": "^0.4.9",
"@typescript-eslint/eslint-plugin": "^4.18.0", "@typescript-eslint/eslint-plugin": "^4.18.0",
"@typescript-eslint/parser": "^4.18.0", "@typescript-eslint/parser": "^4.18.0",
"@vue/cli-plugin-babel": "~4.5.0", "@vue/cli-plugin-babel": "~4.5.0",
@ -66,9 +68,9 @@
} }
}, },
"node_modules/@babel/core": { "node_modules/@babel/core": {
"version": "7.16.10", "version": "7.16.12",
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.10.tgz", "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.12.tgz",
"integrity": "sha512-pbiIdZbCiMx/MM6toR+OfXarYix3uz0oVsnNtfdAGTcCTu3w/JGF8JhirevXLBJUu0WguSZI12qpKnx7EeMyLA==", "integrity": "sha512-dK5PtG1uiN2ikk++5OzSYsitZKny4wOCD0nrO4TqnW4BVBTQ2NGS3NgilvT/TEyxTST7LNyWV/T4tXDoD3fOgg==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@babel/code-frame": "^7.16.7", "@babel/code-frame": "^7.16.7",
@ -76,7 +78,7 @@
"@babel/helper-compilation-targets": "^7.16.7", "@babel/helper-compilation-targets": "^7.16.7",
"@babel/helper-module-transforms": "^7.16.7", "@babel/helper-module-transforms": "^7.16.7",
"@babel/helpers": "^7.16.7", "@babel/helpers": "^7.16.7",
"@babel/parser": "^7.16.10", "@babel/parser": "^7.16.12",
"@babel/template": "^7.16.7", "@babel/template": "^7.16.7",
"@babel/traverse": "^7.16.10", "@babel/traverse": "^7.16.10",
"@babel/types": "^7.16.8", "@babel/types": "^7.16.8",
@ -489,9 +491,9 @@
} }
}, },
"node_modules/@babel/parser": { "node_modules/@babel/parser": {
"version": "7.16.10", "version": "7.16.12",
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.10.tgz", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.12.tgz",
"integrity": "sha512-Sm/S9Or6nN8uiFsQU1yodyDW3MWXQhFeqzMPM+t8MJjM+pLsnFVxFZzkpXKvUXh+Gz9cbMoYYs484+Jw/NTEFQ==", "integrity": "sha512-VfaV15po8RiZssrkPweyvbGVSe4x2y+aciFCgn0n0/SJMR22cwofRV1mtnJQYcSB1wUTaA/X1LnA3es66MCO5A==",
"bin": { "bin": {
"parser": "bin/babel-parser.js" "parser": "bin/babel-parser.js"
}, },
@ -2033,9 +2035,9 @@
"dev": true "dev": true
}, },
"node_modules/@types/node": { "node_modules/@types/node": {
"version": "17.0.10", "version": "17.0.13",
"resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.10.tgz", "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.13.tgz",
"integrity": "sha512-S/3xB4KzyFxYGCppyDt68yzBU9ysL88lSdIah4D6cptdcltc4NCPCAMc0+PCpg/lLIyC7IPvj2Z52OJWeIUkog==", "integrity": "sha512-Y86MAxASe25hNzlDbsviXl8jQHb0RDvKt4c40ZJQ1Don0AAL0STLZSs4N+6gLEO55pedy7r2cLwS+ZDxPm/2Bw==",
"dev": true "dev": true
}, },
"node_modules/@types/normalize-package-data": { "node_modules/@types/normalize-package-data": {
@ -2171,6 +2173,15 @@
"node": ">=0.10.0" "node": ">=0.10.0"
} }
}, },
"node_modules/@types/xml2js": {
"version": "0.4.9",
"resolved": "https://registry.npmjs.org/@types/xml2js/-/xml2js-0.4.9.tgz",
"integrity": "sha512-CHiCKIihl1pychwR2RNX5mAYmJDACgFVCMT5OArMaO3erzwXVcBqPcusr+Vl8yeeXukxZqtF8mZioqX+mpjjdw==",
"dev": true,
"dependencies": {
"@types/node": "*"
}
},
"node_modules/@typescript-eslint/eslint-plugin": { "node_modules/@typescript-eslint/eslint-plugin": {
"version": "4.33.0", "version": "4.33.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.33.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.33.0.tgz",
@ -3101,12 +3112,12 @@
} }
}, },
"node_modules/@vue/compiler-core": { "node_modules/@vue/compiler-core": {
"version": "3.2.27", "version": "3.2.29",
"resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.27.tgz", "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.29.tgz",
"integrity": "sha512-JyxAglSM/pb9paG5ZNuKrf5IUpzLzQA3khjWGF9oESELCLQlt6O3YyPMR2A69wIpYWrf5mScZ8YY8TJKOI/1kQ==", "integrity": "sha512-RePZ/J4Ub3sb7atQw6V6Rez+/5LCRHGFlSetT3N4VMrejqJnNPXKUt5AVm/9F5MJriy2w/VudEIvgscCfCWqxw==",
"dependencies": { "dependencies": {
"@babel/parser": "^7.16.4", "@babel/parser": "^7.16.4",
"@vue/shared": "3.2.27", "@vue/shared": "3.2.29",
"estree-walker": "^2.0.2", "estree-walker": "^2.0.2",
"source-map": "^0.6.1" "source-map": "^0.6.1"
} }
@ -3120,25 +3131,25 @@
} }
}, },
"node_modules/@vue/compiler-dom": { "node_modules/@vue/compiler-dom": {
"version": "3.2.27", "version": "3.2.29",
"resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.27.tgz", "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.29.tgz",
"integrity": "sha512-NyQ7nEbopUBPUMHM4c3FPCbFbnQwptoPjW5Y5qfJ7hfiCNhOuhQsDNqi5JYKBxfpxiFNwjcN9F8t1AsnLrDloQ==", "integrity": "sha512-y26vK5khdNS9L3ckvkqJk/78qXwWb75Ci8iYLb67AkJuIgyKhIOcR1E8RIt4mswlVCIeI9gQ+fmtdhaiTAtrBQ==",
"dependencies": { "dependencies": {
"@vue/compiler-core": "3.2.27", "@vue/compiler-core": "3.2.29",
"@vue/shared": "3.2.27" "@vue/shared": "3.2.29"
} }
}, },
"node_modules/@vue/compiler-sfc": { "node_modules/@vue/compiler-sfc": {
"version": "3.2.27", "version": "3.2.29",
"resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.27.tgz", "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.29.tgz",
"integrity": "sha512-WyecUhLN5UAQAr2QlmG2nA56OEnhZJaBnSw0G1tazb9rwDuK0V9tnbIXbQgmQlx+x4sJxgg61yWGcIXfilTl3A==", "integrity": "sha512-X9+0dwsag2u6hSOP/XsMYqFti/edvYvxamgBgCcbSYuXx1xLZN+dS/GvQKM4AgGS4djqo0jQvWfIXdfZ2ET68g==",
"dependencies": { "dependencies": {
"@babel/parser": "^7.16.4", "@babel/parser": "^7.16.4",
"@vue/compiler-core": "3.2.27", "@vue/compiler-core": "3.2.29",
"@vue/compiler-dom": "3.2.27", "@vue/compiler-dom": "3.2.29",
"@vue/compiler-ssr": "3.2.27", "@vue/compiler-ssr": "3.2.29",
"@vue/reactivity-transform": "3.2.27", "@vue/reactivity-transform": "3.2.29",
"@vue/shared": "3.2.27", "@vue/shared": "3.2.29",
"estree-walker": "^2.0.2", "estree-walker": "^2.0.2",
"magic-string": "^0.25.7", "magic-string": "^0.25.7",
"postcss": "^8.1.10", "postcss": "^8.1.10",
@ -3176,12 +3187,12 @@
} }
}, },
"node_modules/@vue/compiler-ssr": { "node_modules/@vue/compiler-ssr": {
"version": "3.2.27", "version": "3.2.29",
"resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.27.tgz", "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.29.tgz",
"integrity": "sha512-+l09t319iV7HVSrXfBw9OLwMZIPOFTXmHjZ61Bc5ZcwKqOYAR4uTurKpoXAfcSc5qs/q6WdE9jY3nrP0LUEMQQ==", "integrity": "sha512-LrvQwXlx66uWsB9/VydaaqEpae9xtmlUkeSKF6aPDbzx8M1h7ukxaPjNCAXuFd3fUHblcri8k42lfimHfzMICA==",
"dependencies": { "dependencies": {
"@vue/compiler-dom": "3.2.27", "@vue/compiler-dom": "3.2.29",
"@vue/shared": "3.2.27" "@vue/shared": "3.2.29"
} }
}, },
"node_modules/@vue/component-compiler-utils": { "node_modules/@vue/component-compiler-utils": {
@ -3285,60 +3296,60 @@
} }
}, },
"node_modules/@vue/reactivity": { "node_modules/@vue/reactivity": {
"version": "3.2.27", "version": "3.2.29",
"resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.27.tgz", "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.29.tgz",
"integrity": "sha512-QPfIQEJidRGIu/mPexhcB4csp1LEg2Nr+/QE72MnXs/OYDtFErhC9FxIyymkxp/xvAgL5wsnSOuDD6zWF42vRQ==", "integrity": "sha512-Ryhb6Gy62YolKXH1gv42pEqwx7zs3n8gacRVZICSgjQz8Qr8QeCcFygBKYfJm3o1SccR7U+bVBQDWZGOyG1k4g==",
"dependencies": { "dependencies": {
"@vue/shared": "3.2.27" "@vue/shared": "3.2.29"
} }
}, },
"node_modules/@vue/reactivity-transform": { "node_modules/@vue/reactivity-transform": {
"version": "3.2.27", "version": "3.2.29",
"resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.27.tgz", "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.29.tgz",
"integrity": "sha512-67//61ObGxGnVrPhjygocb24eYUh+TFMhkm7szm8v5XdKXjkNl7qgIOflwGvUnwuIRJmr9nZ7+PvY0fL+H2upA==", "integrity": "sha512-YF6HdOuhdOw6KyRm59+3rML8USb9o8mYM1q+SH0G41K3/q/G7uhPnHGKvspzceD7h9J3VR1waOQ93CUZj7J7OA==",
"dependencies": { "dependencies": {
"@babel/parser": "^7.16.4", "@babel/parser": "^7.16.4",
"@vue/compiler-core": "3.2.27", "@vue/compiler-core": "3.2.29",
"@vue/shared": "3.2.27", "@vue/shared": "3.2.29",
"estree-walker": "^2.0.2", "estree-walker": "^2.0.2",
"magic-string": "^0.25.7" "magic-string": "^0.25.7"
} }
}, },
"node_modules/@vue/runtime-core": { "node_modules/@vue/runtime-core": {
"version": "3.2.27", "version": "3.2.29",
"resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.27.tgz", "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.29.tgz",
"integrity": "sha512-NJrjuViHJyrT4bwIocbE4XDaDlA1Pj61pQlneZZdFEvgdMLlhzCCiJ4WZnWcohYQeisUAZjEFKK8GjQieDPFbw==", "integrity": "sha512-VMvQuLdzoTGmCwIKTKVwKmIL0qcODIqe74JtK1pVr5lnaE0l25hopodmPag3RcnIcIXe+Ye3B2olRCn7fTCgig==",
"dependencies": { "dependencies": {
"@vue/reactivity": "3.2.27", "@vue/reactivity": "3.2.29",
"@vue/shared": "3.2.27" "@vue/shared": "3.2.29"
} }
}, },
"node_modules/@vue/runtime-dom": { "node_modules/@vue/runtime-dom": {
"version": "3.2.27", "version": "3.2.29",
"resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.27.tgz", "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.29.tgz",
"integrity": "sha512-tlnKkvBSkV7MPUp/wRFsYcv67U1rUeZTPfpPzq5Kpmw5NNGkY6J075fFBH2k0MNxDucXS+qfStNrxAyGTUMkSA==", "integrity": "sha512-YJgLQLwr+SQyORzTsBQLL5TT/5UiV83tEotqjL7F9aFDIQdFBTCwpkCFvX9jqwHoyi9sJqM9XtTrMcc8z/OjPA==",
"dependencies": { "dependencies": {
"@vue/runtime-core": "3.2.27", "@vue/runtime-core": "3.2.29",
"@vue/shared": "3.2.27", "@vue/shared": "3.2.29",
"csstype": "^2.6.8" "csstype": "^2.6.8"
} }
}, },
"node_modules/@vue/server-renderer": { "node_modules/@vue/server-renderer": {
"version": "3.2.27", "version": "3.2.29",
"resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.27.tgz", "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.29.tgz",
"integrity": "sha512-dZnzkFCDe6A/GIe/F1LcG6lWpprHVh62DjTv8wubtkHwfJWOmOeHp+KvPDRrswL/L3ghsm+E31xY+pvkgM3pbQ==", "integrity": "sha512-lpiYx7ciV7rWfJ0tPkoSOlLmwqBZ9FTmQm33S+T4g0j1fO/LmhJ9b9Ctl1o5xvIFVDk9QkSUWANZn7H2pXuxVw==",
"dependencies": { "dependencies": {
"@vue/compiler-ssr": "3.2.27", "@vue/compiler-ssr": "3.2.29",
"@vue/shared": "3.2.27" "@vue/shared": "3.2.29"
}, },
"peerDependencies": { "peerDependencies": {
"vue": "3.2.27" "vue": "3.2.29"
} }
}, },
"node_modules/@vue/shared": { "node_modules/@vue/shared": {
"version": "3.2.27", "version": "3.2.29",
"resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.27.tgz", "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.29.tgz",
"integrity": "sha512-rpAn9k6O08Lvo7ekBIAnkOukX/4EsEQLPrRJBKhIEasMsOI5eX0f6mq1sDUSY7cgAqWw2d7QtP74CWxdXoyKxA==" "integrity": "sha512-BjNpU8OK6Z0LVzGUppEk0CMYm/hKDnZfYdjSmPOs0N+TR1cLKJAkDwW8ASZUvaaSLEi6d3hVM7jnWnX+6yWnHw=="
}, },
"node_modules/@vue/web-component-wrapper": { "node_modules/@vue/web-component-wrapper": {
"version": "1.3.0", "version": "1.3.0",
@ -4704,9 +4715,9 @@
} }
}, },
"node_modules/caniuse-lite": { "node_modules/caniuse-lite": {
"version": "1.0.30001301", "version": "1.0.30001303",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001301.tgz", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001303.tgz",
"integrity": "sha512-csfD/GpHMqgEL3V3uIgosvh+SVIQvCh43SNu9HRbP1lnxkKm1kjDG4f32PP571JplkLjfS+mg2p1gxR7MYrrIA==", "integrity": "sha512-/Mqc1oESndUNszJP0kx0UaQU9kEv9nNtJ7Kn8AdA0mNnH8eR1cj0kG+NbNuC1Wq/b21eA8prhKRA3bbkjONegQ==",
"dev": true, "dev": true,
"funding": { "funding": {
"type": "opencollective", "type": "opencollective",
@ -6645,9 +6656,9 @@
} }
}, },
"node_modules/electron-to-chromium": { "node_modules/electron-to-chromium": {
"version": "1.4.49", "version": "1.4.56",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.49.tgz", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.56.tgz",
"integrity": "sha512-k/0t1TRfonHIp8TJKfjBu2cKj8MqYTiEpOhci+q7CVEE5xnCQnx1pTa+V8b/sdhe4S3PR4p4iceEQWhGrKQORQ==", "integrity": "sha512-0k/S0FQqRRpJbX7YUjwCcLZ8D42RqGKtaiq90adXBOYgTIWwLA/g3toO8k9yEpqU8iC4QyaWYYWSTBIna8WV4g==",
"dev": true "dev": true
}, },
"node_modules/elliptic": { "node_modules/elliptic": {
@ -13109,12 +13120,12 @@
"dev": true "dev": true
}, },
"node_modules/resolve": { "node_modules/resolve": {
"version": "1.21.1", "version": "1.22.0",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.21.1.tgz", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz",
"integrity": "sha512-lfEImVbnolPuaSZuLQ52cAxPBHeI77sPwCOWRdy12UG/CNa8an7oBHH1R+Fp1/mUqSJi4c8TIP6FOIPSZAUrEQ==", "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"is-core-module": "^2.8.0", "is-core-module": "^2.8.1",
"path-parse": "^1.0.7", "path-parse": "^1.0.7",
"supports-preserve-symlinks-flag": "^1.0.0" "supports-preserve-symlinks-flag": "^1.0.0"
}, },
@ -13367,8 +13378,7 @@
"node_modules/sax": { "node_modules/sax": {
"version": "1.2.4", "version": "1.2.4",
"resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
"integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="
"dev": true
}, },
"node_modules/schema-utils": { "node_modules/schema-utils": {
"version": "2.7.1", "version": "2.7.1",
@ -15696,15 +15706,15 @@
"dev": true "dev": true
}, },
"node_modules/vue": { "node_modules/vue": {
"version": "3.2.27", "version": "3.2.29",
"resolved": "https://registry.npmjs.org/vue/-/vue-3.2.27.tgz", "resolved": "https://registry.npmjs.org/vue/-/vue-3.2.29.tgz",
"integrity": "sha512-p1cH8Q6eaPwvANCjFQj497a914cxXKKwOG3Lg9USddTOrn4/zFMKjn9dnovkx+L8VtFaNgbVqW8mLJS/eTA6xw==", "integrity": "sha512-cFIwr7LkbtCRanjNvh6r7wp2yUxfxeM2yPpDQpAfaaLIGZSrUmLbNiSze9nhBJt5MrZ68Iqt0O5scwAMEVxF+Q==",
"dependencies": { "dependencies": {
"@vue/compiler-dom": "3.2.27", "@vue/compiler-dom": "3.2.29",
"@vue/compiler-sfc": "3.2.27", "@vue/compiler-sfc": "3.2.29",
"@vue/runtime-dom": "3.2.27", "@vue/runtime-dom": "3.2.29",
"@vue/server-renderer": "3.2.27", "@vue/server-renderer": "3.2.29",
"@vue/shared": "3.2.27" "@vue/shared": "3.2.29"
} }
}, },
"node_modules/vue-class-component": { "node_modules/vue-class-component": {
@ -16036,7 +16046,7 @@
"version": "2.1.8", "version": "2.1.8",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz",
"integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==",
"deprecated": "Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies.", "deprecated": "Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies",
"dev": true, "dev": true,
"optional": true, "optional": true,
"dependencies": { "dependencies": {
@ -16436,7 +16446,7 @@
"version": "2.1.8", "version": "2.1.8",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz",
"integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==",
"deprecated": "Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies.", "deprecated": "Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"anymatch": "^2.0.0", "anymatch": "^2.0.0",
@ -17059,6 +17069,26 @@
"async-limiter": "~1.0.0" "async-limiter": "~1.0.0"
} }
}, },
"node_modules/xml2js": {
"version": "0.4.23",
"resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz",
"integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==",
"dependencies": {
"sax": ">=0.6.0",
"xmlbuilder": "~11.0.0"
},
"engines": {
"node": ">=4.0.0"
}
},
"node_modules/xmlbuilder": {
"version": "11.0.1",
"resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz",
"integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==",
"engines": {
"node": ">=4.0"
}
},
"node_modules/xtend": { "node_modules/xtend": {
"version": "4.0.2", "version": "4.0.2",
"resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
@ -17284,9 +17314,9 @@
"dev": true "dev": true
}, },
"@babel/core": { "@babel/core": {
"version": "7.16.10", "version": "7.16.12",
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.10.tgz", "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.12.tgz",
"integrity": "sha512-pbiIdZbCiMx/MM6toR+OfXarYix3uz0oVsnNtfdAGTcCTu3w/JGF8JhirevXLBJUu0WguSZI12qpKnx7EeMyLA==", "integrity": "sha512-dK5PtG1uiN2ikk++5OzSYsitZKny4wOCD0nrO4TqnW4BVBTQ2NGS3NgilvT/TEyxTST7LNyWV/T4tXDoD3fOgg==",
"dev": true, "dev": true,
"requires": { "requires": {
"@babel/code-frame": "^7.16.7", "@babel/code-frame": "^7.16.7",
@ -17294,7 +17324,7 @@
"@babel/helper-compilation-targets": "^7.16.7", "@babel/helper-compilation-targets": "^7.16.7",
"@babel/helper-module-transforms": "^7.16.7", "@babel/helper-module-transforms": "^7.16.7",
"@babel/helpers": "^7.16.7", "@babel/helpers": "^7.16.7",
"@babel/parser": "^7.16.10", "@babel/parser": "^7.16.12",
"@babel/template": "^7.16.7", "@babel/template": "^7.16.7",
"@babel/traverse": "^7.16.10", "@babel/traverse": "^7.16.10",
"@babel/types": "^7.16.8", "@babel/types": "^7.16.8",
@ -17607,9 +17637,9 @@
} }
}, },
"@babel/parser": { "@babel/parser": {
"version": "7.16.10", "version": "7.16.12",
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.10.tgz", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.12.tgz",
"integrity": "sha512-Sm/S9Or6nN8uiFsQU1yodyDW3MWXQhFeqzMPM+t8MJjM+pLsnFVxFZzkpXKvUXh+Gz9cbMoYYs484+Jw/NTEFQ==" "integrity": "sha512-VfaV15po8RiZssrkPweyvbGVSe4x2y+aciFCgn0n0/SJMR22cwofRV1mtnJQYcSB1wUTaA/X1LnA3es66MCO5A=="
}, },
"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": {
"version": "7.16.7", "version": "7.16.7",
@ -18707,9 +18737,9 @@
"dev": true "dev": true
}, },
"@types/node": { "@types/node": {
"version": "17.0.10", "version": "17.0.13",
"resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.10.tgz", "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.13.tgz",
"integrity": "sha512-S/3xB4KzyFxYGCppyDt68yzBU9ysL88lSdIah4D6cptdcltc4NCPCAMc0+PCpg/lLIyC7IPvj2Z52OJWeIUkog==", "integrity": "sha512-Y86MAxASe25hNzlDbsviXl8jQHb0RDvKt4c40ZJQ1Don0AAL0STLZSs4N+6gLEO55pedy7r2cLwS+ZDxPm/2Bw==",
"dev": true "dev": true
}, },
"@types/normalize-package-data": { "@types/normalize-package-data": {
@ -18842,6 +18872,15 @@
} }
} }
}, },
"@types/xml2js": {
"version": "0.4.9",
"resolved": "https://registry.npmjs.org/@types/xml2js/-/xml2js-0.4.9.tgz",
"integrity": "sha512-CHiCKIihl1pychwR2RNX5mAYmJDACgFVCMT5OArMaO3erzwXVcBqPcusr+Vl8yeeXukxZqtF8mZioqX+mpjjdw==",
"dev": true,
"requires": {
"@types/node": "*"
}
},
"@typescript-eslint/eslint-plugin": { "@typescript-eslint/eslint-plugin": {
"version": "4.33.0", "version": "4.33.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.33.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.33.0.tgz",
@ -19525,12 +19564,12 @@
} }
}, },
"@vue/compiler-core": { "@vue/compiler-core": {
"version": "3.2.27", "version": "3.2.29",
"resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.27.tgz", "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.29.tgz",
"integrity": "sha512-JyxAglSM/pb9paG5ZNuKrf5IUpzLzQA3khjWGF9oESELCLQlt6O3YyPMR2A69wIpYWrf5mScZ8YY8TJKOI/1kQ==", "integrity": "sha512-RePZ/J4Ub3sb7atQw6V6Rez+/5LCRHGFlSetT3N4VMrejqJnNPXKUt5AVm/9F5MJriy2w/VudEIvgscCfCWqxw==",
"requires": { "requires": {
"@babel/parser": "^7.16.4", "@babel/parser": "^7.16.4",
"@vue/shared": "3.2.27", "@vue/shared": "3.2.29",
"estree-walker": "^2.0.2", "estree-walker": "^2.0.2",
"source-map": "^0.6.1" "source-map": "^0.6.1"
}, },
@ -19543,25 +19582,25 @@
} }
}, },
"@vue/compiler-dom": { "@vue/compiler-dom": {
"version": "3.2.27", "version": "3.2.29",
"resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.27.tgz", "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.29.tgz",
"integrity": "sha512-NyQ7nEbopUBPUMHM4c3FPCbFbnQwptoPjW5Y5qfJ7hfiCNhOuhQsDNqi5JYKBxfpxiFNwjcN9F8t1AsnLrDloQ==", "integrity": "sha512-y26vK5khdNS9L3ckvkqJk/78qXwWb75Ci8iYLb67AkJuIgyKhIOcR1E8RIt4mswlVCIeI9gQ+fmtdhaiTAtrBQ==",
"requires": { "requires": {
"@vue/compiler-core": "3.2.27", "@vue/compiler-core": "3.2.29",
"@vue/shared": "3.2.27" "@vue/shared": "3.2.29"
} }
}, },
"@vue/compiler-sfc": { "@vue/compiler-sfc": {
"version": "3.2.27", "version": "3.2.29",
"resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.27.tgz", "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.29.tgz",
"integrity": "sha512-WyecUhLN5UAQAr2QlmG2nA56OEnhZJaBnSw0G1tazb9rwDuK0V9tnbIXbQgmQlx+x4sJxgg61yWGcIXfilTl3A==", "integrity": "sha512-X9+0dwsag2u6hSOP/XsMYqFti/edvYvxamgBgCcbSYuXx1xLZN+dS/GvQKM4AgGS4djqo0jQvWfIXdfZ2ET68g==",
"requires": { "requires": {
"@babel/parser": "^7.16.4", "@babel/parser": "^7.16.4",
"@vue/compiler-core": "3.2.27", "@vue/compiler-core": "3.2.29",
"@vue/compiler-dom": "3.2.27", "@vue/compiler-dom": "3.2.29",
"@vue/compiler-ssr": "3.2.27", "@vue/compiler-ssr": "3.2.29",
"@vue/reactivity-transform": "3.2.27", "@vue/reactivity-transform": "3.2.29",
"@vue/shared": "3.2.27", "@vue/shared": "3.2.29",
"estree-walker": "^2.0.2", "estree-walker": "^2.0.2",
"magic-string": "^0.25.7", "magic-string": "^0.25.7",
"postcss": "^8.1.10", "postcss": "^8.1.10",
@ -19591,12 +19630,12 @@
} }
}, },
"@vue/compiler-ssr": { "@vue/compiler-ssr": {
"version": "3.2.27", "version": "3.2.29",
"resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.27.tgz", "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.29.tgz",
"integrity": "sha512-+l09t319iV7HVSrXfBw9OLwMZIPOFTXmHjZ61Bc5ZcwKqOYAR4uTurKpoXAfcSc5qs/q6WdE9jY3nrP0LUEMQQ==", "integrity": "sha512-LrvQwXlx66uWsB9/VydaaqEpae9xtmlUkeSKF6aPDbzx8M1h7ukxaPjNCAXuFd3fUHblcri8k42lfimHfzMICA==",
"requires": { "requires": {
"@vue/compiler-dom": "3.2.27", "@vue/compiler-dom": "3.2.29",
"@vue/shared": "3.2.27" "@vue/shared": "3.2.29"
} }
}, },
"@vue/component-compiler-utils": { "@vue/component-compiler-utils": {
@ -19677,57 +19716,57 @@
"requires": {} "requires": {}
}, },
"@vue/reactivity": { "@vue/reactivity": {
"version": "3.2.27", "version": "3.2.29",
"resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.27.tgz", "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.29.tgz",
"integrity": "sha512-QPfIQEJidRGIu/mPexhcB4csp1LEg2Nr+/QE72MnXs/OYDtFErhC9FxIyymkxp/xvAgL5wsnSOuDD6zWF42vRQ==", "integrity": "sha512-Ryhb6Gy62YolKXH1gv42pEqwx7zs3n8gacRVZICSgjQz8Qr8QeCcFygBKYfJm3o1SccR7U+bVBQDWZGOyG1k4g==",
"requires": { "requires": {
"@vue/shared": "3.2.27" "@vue/shared": "3.2.29"
} }
}, },
"@vue/reactivity-transform": { "@vue/reactivity-transform": {
"version": "3.2.27", "version": "3.2.29",
"resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.27.tgz", "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.29.tgz",
"integrity": "sha512-67//61ObGxGnVrPhjygocb24eYUh+TFMhkm7szm8v5XdKXjkNl7qgIOflwGvUnwuIRJmr9nZ7+PvY0fL+H2upA==", "integrity": "sha512-YF6HdOuhdOw6KyRm59+3rML8USb9o8mYM1q+SH0G41K3/q/G7uhPnHGKvspzceD7h9J3VR1waOQ93CUZj7J7OA==",
"requires": { "requires": {
"@babel/parser": "^7.16.4", "@babel/parser": "^7.16.4",
"@vue/compiler-core": "3.2.27", "@vue/compiler-core": "3.2.29",
"@vue/shared": "3.2.27", "@vue/shared": "3.2.29",
"estree-walker": "^2.0.2", "estree-walker": "^2.0.2",
"magic-string": "^0.25.7" "magic-string": "^0.25.7"
} }
}, },
"@vue/runtime-core": { "@vue/runtime-core": {
"version": "3.2.27", "version": "3.2.29",
"resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.27.tgz", "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.29.tgz",
"integrity": "sha512-NJrjuViHJyrT4bwIocbE4XDaDlA1Pj61pQlneZZdFEvgdMLlhzCCiJ4WZnWcohYQeisUAZjEFKK8GjQieDPFbw==", "integrity": "sha512-VMvQuLdzoTGmCwIKTKVwKmIL0qcODIqe74JtK1pVr5lnaE0l25hopodmPag3RcnIcIXe+Ye3B2olRCn7fTCgig==",
"requires": { "requires": {
"@vue/reactivity": "3.2.27", "@vue/reactivity": "3.2.29",
"@vue/shared": "3.2.27" "@vue/shared": "3.2.29"
} }
}, },
"@vue/runtime-dom": { "@vue/runtime-dom": {
"version": "3.2.27", "version": "3.2.29",
"resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.27.tgz", "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.29.tgz",
"integrity": "sha512-tlnKkvBSkV7MPUp/wRFsYcv67U1rUeZTPfpPzq5Kpmw5NNGkY6J075fFBH2k0MNxDucXS+qfStNrxAyGTUMkSA==", "integrity": "sha512-YJgLQLwr+SQyORzTsBQLL5TT/5UiV83tEotqjL7F9aFDIQdFBTCwpkCFvX9jqwHoyi9sJqM9XtTrMcc8z/OjPA==",
"requires": { "requires": {
"@vue/runtime-core": "3.2.27", "@vue/runtime-core": "3.2.29",
"@vue/shared": "3.2.27", "@vue/shared": "3.2.29",
"csstype": "^2.6.8" "csstype": "^2.6.8"
} }
}, },
"@vue/server-renderer": { "@vue/server-renderer": {
"version": "3.2.27", "version": "3.2.29",
"resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.27.tgz", "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.29.tgz",
"integrity": "sha512-dZnzkFCDe6A/GIe/F1LcG6lWpprHVh62DjTv8wubtkHwfJWOmOeHp+KvPDRrswL/L3ghsm+E31xY+pvkgM3pbQ==", "integrity": "sha512-lpiYx7ciV7rWfJ0tPkoSOlLmwqBZ9FTmQm33S+T4g0j1fO/LmhJ9b9Ctl1o5xvIFVDk9QkSUWANZn7H2pXuxVw==",
"requires": { "requires": {
"@vue/compiler-ssr": "3.2.27", "@vue/compiler-ssr": "3.2.29",
"@vue/shared": "3.2.27" "@vue/shared": "3.2.29"
} }
}, },
"@vue/shared": { "@vue/shared": {
"version": "3.2.27", "version": "3.2.29",
"resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.27.tgz", "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.29.tgz",
"integrity": "sha512-rpAn9k6O08Lvo7ekBIAnkOukX/4EsEQLPrRJBKhIEasMsOI5eX0f6mq1sDUSY7cgAqWw2d7QtP74CWxdXoyKxA==" "integrity": "sha512-BjNpU8OK6Z0LVzGUppEk0CMYm/hKDnZfYdjSmPOs0N+TR1cLKJAkDwW8ASZUvaaSLEi6d3hVM7jnWnX+6yWnHw=="
}, },
"@vue/web-component-wrapper": { "@vue/web-component-wrapper": {
"version": "1.3.0", "version": "1.3.0",
@ -20869,9 +20908,9 @@
} }
}, },
"caniuse-lite": { "caniuse-lite": {
"version": "1.0.30001301", "version": "1.0.30001303",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001301.tgz", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001303.tgz",
"integrity": "sha512-csfD/GpHMqgEL3V3uIgosvh+SVIQvCh43SNu9HRbP1lnxkKm1kjDG4f32PP571JplkLjfS+mg2p1gxR7MYrrIA==", "integrity": "sha512-/Mqc1oESndUNszJP0kx0UaQU9kEv9nNtJ7Kn8AdA0mNnH8eR1cj0kG+NbNuC1Wq/b21eA8prhKRA3bbkjONegQ==",
"dev": true "dev": true
}, },
"case-sensitive-paths-webpack-plugin": { "case-sensitive-paths-webpack-plugin": {
@ -22408,9 +22447,9 @@
"dev": true "dev": true
}, },
"electron-to-chromium": { "electron-to-chromium": {
"version": "1.4.49", "version": "1.4.56",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.49.tgz", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.56.tgz",
"integrity": "sha512-k/0t1TRfonHIp8TJKfjBu2cKj8MqYTiEpOhci+q7CVEE5xnCQnx1pTa+V8b/sdhe4S3PR4p4iceEQWhGrKQORQ==", "integrity": "sha512-0k/S0FQqRRpJbX7YUjwCcLZ8D42RqGKtaiq90adXBOYgTIWwLA/g3toO8k9yEpqU8iC4QyaWYYWSTBIna8WV4g==",
"dev": true "dev": true
}, },
"elliptic": { "elliptic": {
@ -27538,12 +27577,12 @@
"dev": true "dev": true
}, },
"resolve": { "resolve": {
"version": "1.21.1", "version": "1.22.0",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.21.1.tgz", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz",
"integrity": "sha512-lfEImVbnolPuaSZuLQ52cAxPBHeI77sPwCOWRdy12UG/CNa8an7oBHH1R+Fp1/mUqSJi4c8TIP6FOIPSZAUrEQ==", "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==",
"dev": true, "dev": true,
"requires": { "requires": {
"is-core-module": "^2.8.0", "is-core-module": "^2.8.1",
"path-parse": "^1.0.7", "path-parse": "^1.0.7",
"supports-preserve-symlinks-flag": "^1.0.0" "supports-preserve-symlinks-flag": "^1.0.0"
} }
@ -27716,8 +27755,7 @@
"sax": { "sax": {
"version": "1.2.4", "version": "1.2.4",
"resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
"integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="
"dev": true
}, },
"schema-utils": { "schema-utils": {
"version": "2.7.1", "version": "2.7.1",
@ -29632,15 +29670,15 @@
"dev": true "dev": true
}, },
"vue": { "vue": {
"version": "3.2.27", "version": "3.2.29",
"resolved": "https://registry.npmjs.org/vue/-/vue-3.2.27.tgz", "resolved": "https://registry.npmjs.org/vue/-/vue-3.2.29.tgz",
"integrity": "sha512-p1cH8Q6eaPwvANCjFQj497a914cxXKKwOG3Lg9USddTOrn4/zFMKjn9dnovkx+L8VtFaNgbVqW8mLJS/eTA6xw==", "integrity": "sha512-cFIwr7LkbtCRanjNvh6r7wp2yUxfxeM2yPpDQpAfaaLIGZSrUmLbNiSze9nhBJt5MrZ68Iqt0O5scwAMEVxF+Q==",
"requires": { "requires": {
"@vue/compiler-dom": "3.2.27", "@vue/compiler-dom": "3.2.29",
"@vue/compiler-sfc": "3.2.27", "@vue/compiler-sfc": "3.2.29",
"@vue/runtime-dom": "3.2.27", "@vue/runtime-dom": "3.2.29",
"@vue/server-renderer": "3.2.27", "@vue/server-renderer": "3.2.29",
"@vue/shared": "3.2.27" "@vue/shared": "3.2.29"
} }
}, },
"vue-class-component": { "vue-class-component": {
@ -30723,6 +30761,20 @@
"async-limiter": "~1.0.0" "async-limiter": "~1.0.0"
} }
}, },
"xml2js": {
"version": "0.4.23",
"resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz",
"integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==",
"requires": {
"sax": ">=0.6.0",
"xmlbuilder": "~11.0.0"
}
},
"xmlbuilder": {
"version": "11.0.1",
"resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz",
"integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA=="
},
"xtend": { "xtend": {
"version": "4.0.2", "version": "4.0.2",
"resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",

View File

@ -22,10 +22,12 @@
"vue-class-component": "^8.0.0-0", "vue-class-component": "^8.0.0-0",
"vue-matomo": "^4.1.0", "vue-matomo": "^4.1.0",
"vue-property-decorator": "^9.1.2", "vue-property-decorator": "^9.1.2",
"vue-router": "^4.0.12" "vue-router": "^4.0.12",
"xml2js": "^0.4.23"
}, },
"devDependencies": { "devDependencies": {
"@types/leaflet": "^1.7.9", "@types/leaflet": "^1.7.9",
"@types/xml2js": "^0.4.9",
"@typescript-eslint/eslint-plugin": "^4.18.0", "@typescript-eslint/eslint-plugin": "^4.18.0",
"@typescript-eslint/parser": "^4.18.0", "@typescript-eslint/parser": "^4.18.0",
"@vue/cli-plugin-babel": "~4.5.0", "@vue/cli-plugin-babel": "~4.5.0",

View File

@ -38,7 +38,7 @@
<router-link class="navbar-link is-arrowless" to="/help">HELP</router-link> <router-link class="navbar-link is-arrowless" to="/help">HELP</router-link>
</li> </li>
<li class="navbar-item"> <li class="navbar-item">
<router-link class="navbar-link is-arrowless" to="/map">Map</router-link> <router-link class="navbar-link is-arrowless" to="/map">MAP</router-link>
</li> </li>
<!-- <li class="navbar-item"> <!-- <li class="navbar-item">
<a class="navbar-link is-arrowless" href="#">HELP</a> <a class="navbar-link is-arrowless" href="#">HELP</a>

View File

@ -58,9 +58,8 @@ export default class MapComponent extends Vue {
this.initMap(); this.initMap();
} }
beforeUnmount(): void { public beforeUnmount(): void {
//unsunscribe to ensure no memory leaks //unsunscribe to ensure no memory leaks
// this.subscription.unsubscribe();
for (const sub of this.subscriptions) { for (const sub of this.subscriptions) {
sub.unsubscribe(); sub.unsubscribe();
} }
@ -74,10 +73,10 @@ export default class MapComponent extends Vue {
const newSubs = DatasetService.getOAI().subscribe( const newSubs = DatasetService.getOAI().subscribe(
(res: Array<OaiDataset>) => { (res: Array<OaiDataset>) => {
this.tethys = res; this.tethys = res;
this.map.createPane("bottom"); const bottomPane: HTMLElement = this.map.createPane("bottom");
// this.map.getPane('bottom').style.zIndex = "550"; bottomPane.style.zIndex = "550";
this.map.createPane("top"); const topPane: HTMLElement = this.map.createPane("top");
// this.map.getPane('top').style.zIndex = "650"; topPane.style.zIndex = "650";
for (let index = 0; index < this.tethys.length; index++) { for (let index = 0; index < this.tethys.length; index++) {
this.addPolygon(index); this.addPolygon(index);
@ -94,11 +93,9 @@ export default class MapComponent extends Vue {
} }
private addPolygon(i: number) { private addPolygon(i: number) {
const southWest = new LatLng(this.tethys[i].south, this.tethys[i].west), const southWest = new LatLng(this.tethys[i].south, this.tethys[i].west);
northEast = new LatLng(this.tethys[i].north, this.tethys[i].east); const northEast = new LatLng(this.tethys[i].north, this.tethys[i].east);
const bounds = new LatLngBounds(southWest, northEast); const bounds = new LatLngBounds(southWest, northEast);
const bW = this.tethys[i].east - this.tethys[i].west; const bW = this.tethys[i].east - this.tethys[i].west;
new Rectangle(bounds, { new Rectangle(bounds, {

View File

@ -77,8 +77,13 @@ npm install --save-dev @types/leaflet
http://geolba.net/tethys/ http://geolba.net/tethys/
======================== dayjs ==========================================================
npm install --save dayjs npm install --save dayjs
https://day.js.org/docs/en/installation/typescript https://day.js.org/docs/en/installation/typescript
https://www.programmerall.com/article/19972027526/ https://www.programmerall.com/article/19972027526/
======================== xml2js ==========================================================
npm install --save xml2js
npm i --save-dev @types/xml2js

View File

@ -6,8 +6,9 @@ import { SolrResponse } from "@/models/headers";
import { ActiveFilterCategories } from "@/models/solr"; import { ActiveFilterCategories } from "@/models/solr";
import { VUE_APP_PORTAL } from "@/constants"; import { VUE_APP_PORTAL } from "@/constants";
import { deserialize, instanceToInstance } from "class-transformer"; import { deserialize, instanceToInstance } from "class-transformer";
import { OAI_DATASETS } from "./mock-oai-datasets"; // import { OAI_DATASETS } from "./mock-oai-datasets";
import { OaiDataset } from "@/models/oai"; import { OaiDataset } from "@/models/oai";
import xml2js from "xml2js";
class DatasetService { class DatasetService {
// for the autocomplete search // for the autocomplete search
@ -176,16 +177,123 @@ class DatasetService {
} }
public getOAI(): Observable<OaiDataset[]> { public getOAI(): Observable<OaiDataset[]> {
//const host = "https://resource.geolba.net/tethys/harvestOAI.php"; const apiUrl = "https://data.tethys.at/oai?verb=ListRecords&metadataPrefix=oai_datacite";
// const path = "/api/dataset/" + id; const oaiDatasets = api.get<any>(apiUrl).pipe(
// const apiUrl = host + path; map(
// const oaiDataset = api.get<any>(apiUrl); (response: string) => {
const oaiDatasets = of(OAI_DATASETS); // const arrOai = new Array<OaiDataset>();
// return arrOai;
const arrOai = this.parseXML(response);
return arrOai;
// .then((data) => {
// return data;
// });
},
// (error: string) => this.errorHandler(error),
),
);
// const oaiDatasets = of(OAI_DATASETS);
// this.messageService.add('HeroService: fetched heroes'); // this.messageService.add('HeroService: fetched heroes');
return oaiDatasets; return oaiDatasets;
} }
private parseXML(xmlStr: string): Array<OaiDataset> {
// let k = "";
const arr: OaiDataset[] = [];
const domParser = new DOMParser();
const doc = domParser.parseFromString(xmlStr, "application/xml");
const records = doc.getElementsByTagName("ListRecords")[0];
// // const rt = xmlNode.resumptionToken;
// for (let i = 0; i < records.length; i++) {
// console.log(records[i].getAttribute("name"));
// }
const parser = new xml2js.Parser({
trim: true,
explicitArray: false,
ignoreAttrs: false,
// mergeAttrs: true,
});
parser.parseString(records.outerHTML, function (err: any, result: any) {
const xmlNode = result.ListRecords;
// const rt = xmlNode.resumptionToken;
for (const rNode in xmlNode.record) {
const item = xmlNode.record[rNode];
const dc = item.metadata.resource;
const t = dc.titles.title;
const id = dc.identifier._;
const lang = "en"; //dc.titles.title.attributes("xml",True)->lang;
let title: string;
if (lang == "en" && t.length > 1) {
title = t[1]._;
} else {
title = t[0]._;
}
let creator = "";
if (dc.creators.creator instanceof Array) {
dc.creators.creator.forEach((person: any) => {
creator += person.creatorName._ + "; ";
});
} else {
creator += dc.creators.creator.creatorName._;
}
let contributor = "";
if (dc.contributors) {
if (dc.contributors.contributor instanceof Array) {
dc.contributors.contributor.forEach((person: any) => {
contributor += person.contributorName + "; ";
});
} else {
contributor += dc.contributors.contributor.contributorName;
}
}
// ?.map((u: any) => u.creatorName._).join("; ");
// foreach ($dc->creators->creator as $c) {
// foreach ($c->creatorName as $d) {
// if (count(explode(',',$d)) > 1) {
// $creator .= explode(',',$d)[0] . ', ' . substr(explode(',',$d)[1],1,1) . '; ';
// } else {
// $creator .= explode(',',$d)[0];
// }
// }
// }
const north = dc.geoLocations.geoLocation.geoLocationBox.northBoundLatitude;
const east = dc.geoLocations.geoLocation.geoLocationBox.eastBoundLongitude;
const south = dc.geoLocations.geoLocation.geoLocationBox.southBoundLatitude;
const west = dc.geoLocations.geoLocation.geoLocationBox.westBoundLongitude;
const subject = dc.subjects.subject.map((u: any) => u._).join(", ");
const oaiDataset = {
doi: id,
title: title,
creator: creator,
contributor: contributor,
subject: subject,
north: north,
south: south,
east: east,
west: west,
} as OaiDataset;
arr.push(oaiDataset);
}
// resolve(arr);
});
return arr;
}
// private prepareOAI(xml: any) : Array<OaiDataset> {
// //
// }
private prepareDataset(datasetObj: DbDataset, apiUrl: string): DbDataset { private prepareDataset(datasetObj: DbDataset, apiUrl: string): DbDataset {
const dataset = deserialize<DbDataset>(DbDataset, JSON.stringify(datasetObj)); const dataset = deserialize<DbDataset>(DbDataset, JSON.stringify(datasetObj));
dataset.url = document.documentURI; dataset.url = document.documentURI;