upgrade geography configuration; handle json and json array types

This commit is contained in:
Sylvain Briat 2024-01-31 12:26:50 +01:00
parent 5a5f1172a4
commit a0757adc7d
9 changed files with 305 additions and 198 deletions

View File

@ -75,10 +75,10 @@ GEOCODER_PROXIMITY=5
# "boost" population weight for results with a short distance # "boost" population weight for results with a short distance
# => multiply the population by COEF / distance (in km) # => multiply the population by COEF / distance (in km)
GEOCODER_POPULATION_PRIORITIZER_COEF=100 GEOCODER_POPULATION_PRIORITIZER_COEF=100
# main providers, separated by a comma # a json array for main providers, see Geocoder service for detail about the providers
GEOCODER_PROVIDERS=ADDOK,PELIAS_SEARCH,PELIAS_AUTOCOMPLETE GEOCODER_PROVIDERS='[{"name":"provider1,"type":"providerType","baseUrl":"http://localhost","geocodeEndpoint":"/path/to/geocode/endpoint","reverseEndpoint":"/path/to/reverse/endpoint","prioritization":"prioritizationString","countryRestriction":"countryRestrictionString"}]'
# fallback providers, separated by a comma # a json array for fallback providers
GEOCODER_PROVIDERS_FALLBACK=GMAPS GEOCODER_PROVIDERS_FALLBACK='[{"name":"provider1,"type":"providerType","apiKey":"anApiKey"}]'
# PAGINATION # PAGINATION
# number of results per page # number of results per page

434
package-lock.json generated
View File

@ -11,7 +11,7 @@
"dependencies": { "dependencies": {
"@grpc/grpc-js": "^1.9.13", "@grpc/grpc-js": "^1.9.13",
"@grpc/proto-loader": "^0.7.10", "@grpc/proto-loader": "^0.7.10",
"@mobicoop/configuration-module": "^8.0.0", "@mobicoop/configuration-module": "^8.1.2",
"@mobicoop/ddd-library": "^2.4.2", "@mobicoop/ddd-library": "^2.4.2",
"@mobicoop/health-module": "^2.3.1", "@mobicoop/health-module": "^2.3.1",
"@mobicoop/message-broker-module": "^2.1.1", "@mobicoop/message-broker-module": "^2.1.1",
@ -368,9 +368,9 @@
} }
}, },
"node_modules/@babel/core": { "node_modules/@babel/core": {
"version": "7.23.7", "version": "7.23.9",
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.7.tgz", "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.9.tgz",
"integrity": "sha512-+UpDgowcmqe36d4NwqvKsyPMlOLNGMsfMmQ5WGCu+siCe3t3dfe9njrzGfdN4qq+bcNUt0+Vw6haRxBOycs4dw==", "integrity": "sha512-5q0175NOjddqpvvzU+kDiSOAk4PfdO6FvwCWoQ6RO7rTzEe8vlo+4HVfcnAREhD4npMs0e9uZypjTwzZPCf/cw==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@ampproject/remapping": "^2.2.0", "@ampproject/remapping": "^2.2.0",
@ -378,11 +378,11 @@
"@babel/generator": "^7.23.6", "@babel/generator": "^7.23.6",
"@babel/helper-compilation-targets": "^7.23.6", "@babel/helper-compilation-targets": "^7.23.6",
"@babel/helper-module-transforms": "^7.23.3", "@babel/helper-module-transforms": "^7.23.3",
"@babel/helpers": "^7.23.7", "@babel/helpers": "^7.23.9",
"@babel/parser": "^7.23.6", "@babel/parser": "^7.23.9",
"@babel/template": "^7.22.15", "@babel/template": "^7.23.9",
"@babel/traverse": "^7.23.7", "@babel/traverse": "^7.23.9",
"@babel/types": "^7.23.6", "@babel/types": "^7.23.9",
"convert-source-map": "^2.0.0", "convert-source-map": "^2.0.0",
"debug": "^4.1.0", "debug": "^4.1.0",
"gensync": "^1.0.0-beta.2", "gensync": "^1.0.0-beta.2",
@ -572,14 +572,14 @@
} }
}, },
"node_modules/@babel/helpers": { "node_modules/@babel/helpers": {
"version": "7.23.8", "version": "7.23.9",
"resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.8.tgz", "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.9.tgz",
"integrity": "sha512-KDqYz4PiOWvDFrdHLPhKtCThtIcKVy6avWD2oG4GEvyQ+XDZwHD4YQd+H2vNMnq2rkdxsDkU82T+Vk8U/WXHRQ==", "integrity": "sha512-87ICKgU5t5SzOT7sBMfCOZQ2rHjRU+Pcb9BoILMYz600W6DkVRLFBPwQ18gwUVvggqXivaUakpnxWQGbpywbBQ==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@babel/template": "^7.22.15", "@babel/template": "^7.23.9",
"@babel/traverse": "^7.23.7", "@babel/traverse": "^7.23.9",
"@babel/types": "^7.23.6" "@babel/types": "^7.23.9"
}, },
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
@ -671,9 +671,9 @@
} }
}, },
"node_modules/@babel/parser": { "node_modules/@babel/parser": {
"version": "7.23.6", "version": "7.23.9",
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.6.tgz", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.9.tgz",
"integrity": "sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==", "integrity": "sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==",
"dev": true, "dev": true,
"bin": { "bin": {
"parser": "bin/babel-parser.js" "parser": "bin/babel-parser.js"
@ -860,23 +860,23 @@
} }
}, },
"node_modules/@babel/template": { "node_modules/@babel/template": {
"version": "7.22.15", "version": "7.23.9",
"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.23.9.tgz",
"integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", "integrity": "sha512-+xrD2BWLpvHKNmX2QbpdpsBaWnRxahMwJjO+KZk2JOElj5nSmKezyS1B4u+QbHMTX69t4ukm6hh9lsYQ7GHCKA==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@babel/code-frame": "^7.22.13", "@babel/code-frame": "^7.23.5",
"@babel/parser": "^7.22.15", "@babel/parser": "^7.23.9",
"@babel/types": "^7.22.15" "@babel/types": "^7.23.9"
}, },
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
} }
}, },
"node_modules/@babel/traverse": { "node_modules/@babel/traverse": {
"version": "7.23.7", "version": "7.23.9",
"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.7.tgz", "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.9.tgz",
"integrity": "sha512-tY3mM8rH9jM0YHFGyfC0/xf+SB5eKUu7HPj7/k3fpi9dAlsMc5YbQvDi0Sh2QTPXqMhyaAtzAr807TIyfQrmyg==", "integrity": "sha512-I/4UJ9vs90OkBtY6iiiTORVMyIhJ4kAVmsKo9KFc8UOxMeUfi2hvtIBsET5u9GizXE6/GFSuKCTNfgCswuEjRg==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@babel/code-frame": "^7.23.5", "@babel/code-frame": "^7.23.5",
@ -885,8 +885,8 @@
"@babel/helper-function-name": "^7.23.0", "@babel/helper-function-name": "^7.23.0",
"@babel/helper-hoist-variables": "^7.22.5", "@babel/helper-hoist-variables": "^7.22.5",
"@babel/helper-split-export-declaration": "^7.22.6", "@babel/helper-split-export-declaration": "^7.22.6",
"@babel/parser": "^7.23.6", "@babel/parser": "^7.23.9",
"@babel/types": "^7.23.6", "@babel/types": "^7.23.9",
"debug": "^4.3.1", "debug": "^4.3.1",
"globals": "^11.1.0" "globals": "^11.1.0"
}, },
@ -904,9 +904,9 @@
} }
}, },
"node_modules/@babel/types": { "node_modules/@babel/types": {
"version": "7.23.6", "version": "7.23.9",
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.6.tgz", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.9.tgz",
"integrity": "sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==", "integrity": "sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@babel/helper-string-parser": "^7.23.4", "@babel/helper-string-parser": "^7.23.4",
@ -1146,9 +1146,9 @@
] ]
}, },
"node_modules/@grpc/grpc-js": { "node_modules/@grpc/grpc-js": {
"version": "1.9.13", "version": "1.9.14",
"resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.9.13.tgz", "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.9.14.tgz",
"integrity": "sha512-OEZZu9v9AA+7/tghMDE8o5DAMD5THVnwSqDWuh7PPYO5287rTyqy0xEHT6/e4pbqSrhyLPdQFsam4TwFQVVIIw==", "integrity": "sha512-nOpuzZ2G3IuMFN+UPPpKrC6NsLmWsTqSsm66IRfnBt1D4pwTqE27lmbpcPM+l2Ua4gE7PfjRHI6uedAy7hoXUw==",
"dependencies": { "dependencies": {
"@grpc/proto-loader": "^0.7.8", "@grpc/proto-loader": "^0.7.8",
"@types/node": ">=12.12.47" "@types/node": ">=12.12.47"
@ -1809,9 +1809,9 @@
"dev": true "dev": true
}, },
"node_modules/@jridgewell/trace-mapping": { "node_modules/@jridgewell/trace-mapping": {
"version": "0.3.21", "version": "0.3.22",
"resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.21.tgz", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.22.tgz",
"integrity": "sha512-SRfKmRe1KvYnxjEMtxEr+J4HIeMX5YBg/qhRHpxEIGjhX1rshcHlnFUE9K0GazhVKWM7B+nARSkV8LuvJdJ5/g==", "integrity": "sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/resolve-uri": "^3.1.0",
@ -1819,12 +1819,12 @@
} }
}, },
"node_modules/@ljharb/through": { "node_modules/@ljharb/through": {
"version": "2.3.11", "version": "2.3.12",
"resolved": "https://registry.npmjs.org/@ljharb/through/-/through-2.3.11.tgz", "resolved": "https://registry.npmjs.org/@ljharb/through/-/through-2.3.12.tgz",
"integrity": "sha512-ccfcIDlogiXNq5KcbAwbaO7lMh3Tm1i3khMPYpxlK8hH/W53zN81KM9coerRLOnTGu3nfXIniAmQbRI9OxbC0w==", "integrity": "sha512-ajo/heTlG3QgC8EGP6APIejksVAYt4ayz4tqoP3MolFELzcH1x1fzwEYRJTPO0IELutZ5HQ0c26/GqAYy79u3g==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"call-bind": "^1.0.2" "call-bind": "^1.0.5"
}, },
"engines": { "engines": {
"node": ">= 0.4" "node": ">= 0.4"
@ -1839,9 +1839,9 @@
} }
}, },
"node_modules/@mobicoop/configuration-module": { "node_modules/@mobicoop/configuration-module": {
"version": "8.0.0", "version": "8.1.2",
"resolved": "https://registry.npmjs.org/@mobicoop/configuration-module/-/configuration-module-8.0.0.tgz", "resolved": "https://registry.npmjs.org/@mobicoop/configuration-module/-/configuration-module-8.1.2.tgz",
"integrity": "sha512-hIgig1Dam8UfehQkU19XOw+/EmBwgflmswtnWJWBU/oM3U7XbLVU2yV4jH7y/cgsE5aLRk6DQyes+1bn1uHApw==", "integrity": "sha512-ZlFtigPIbIYDhPIsTB/+kkGIrNb7EDKVVzq7/VGWyrpGHUvhcJyWBdGe/mii1Za56Kj75yeBl9+K5cvn9pNn1w==",
"dependencies": { "dependencies": {
"@songkeys/nestjs-redis": "^10.0.0", "@songkeys/nestjs-redis": "^10.0.0",
"ioredis": "^5.3.2" "ioredis": "^5.3.2"
@ -1851,15 +1851,15 @@
} }
}, },
"node_modules/@mobicoop/ddd-library": { "node_modules/@mobicoop/ddd-library": {
"version": "2.4.2", "version": "2.4.3",
"resolved": "https://registry.npmjs.org/@mobicoop/ddd-library/-/ddd-library-2.4.2.tgz", "resolved": "https://registry.npmjs.org/@mobicoop/ddd-library/-/ddd-library-2.4.3.tgz",
"integrity": "sha512-kL+Yf8g4zLlzitNP+eaqnNQpvYPDT0aS+CR07bgxKug2CWlEonCS7DF6sTtRppwKSqlJ5TYCQdjmBPahVI67tg==", "integrity": "sha512-HxNtAfov8ne7XsFTSIDI811r3L1VDV9YUikgX7HPjrB8u2gQh6FQFnIz3Fjb/zWOGxrDEIy8HEM0AYmXkf8ULA==",
"dependencies": { "dependencies": {
"@nestjs/event-emitter": "^2.0.3", "@nestjs/event-emitter": "^2.0.3",
"@nestjs/microservices": "^10.3.0", "@nestjs/microservices": "^10.3.0",
"@nestjs/swagger": "^7.1.17", "@nestjs/swagger": "^7.2.0",
"class-transformer": "^0.5.1", "class-transformer": "^0.5.1",
"class-validator": "^0.14.0", "class-validator": "^0.14.1",
"uuid": "^9.0.1" "uuid": "^9.0.1"
}, },
"peerDependencies": { "peerDependencies": {
@ -1867,35 +1867,35 @@
} }
}, },
"node_modules/@mobicoop/health-module": { "node_modules/@mobicoop/health-module": {
"version": "2.3.1", "version": "2.3.2",
"resolved": "https://registry.npmjs.org/@mobicoop/health-module/-/health-module-2.3.1.tgz", "resolved": "https://registry.npmjs.org/@mobicoop/health-module/-/health-module-2.3.2.tgz",
"integrity": "sha512-dP9TkNmDAw1J9zHMy3x7A2c3QQO6V6yM8Seld+INrnNxiy+2HvDnluckF9ux/8MqBk234xfvG500S9MjVHtoVw==", "integrity": "sha512-sHb/hMUB50sxrC4DYbQFk7xhBQYbz5OtXWFTzhggn48V/WcAdFHEpF5v8TGScYyIXnjC2g0aTSk9ye63L0S0Vg==",
"dependencies": { "dependencies": {
"@grpc/grpc-js": "^1.9.5", "@grpc/grpc-js": "^1.9.13",
"@grpc/proto-loader": "^0.7.10", "@grpc/proto-loader": "^0.7.10",
"@mobicoop/ddd-library": "^2.0.0", "@mobicoop/ddd-library": "^2.4.3",
"@mobicoop/message-broker-module": "^2.1.0", "@mobicoop/message-broker-module": "^2.1.1",
"@nestjs/axios": "^3.0.0", "@nestjs/axios": "^3.0.1",
"@nestjs/microservices": "^10.2.7", "@nestjs/microservices": "^10.3.0",
"@nestjs/swagger": "^7.1.13", "@nestjs/swagger": "^7.2.0",
"@nestjs/terminus": "^10.1.1", "@nestjs/terminus": "^10.2.0",
"axios": "^1.5.1" "axios": "^1.6.5"
}, },
"peerDependencies": { "peerDependencies": {
"@nestjs/common": "^10.2.7" "@nestjs/common": "^10.3.0"
} }
}, },
"node_modules/@mobicoop/message-broker-module": { "node_modules/@mobicoop/message-broker-module": {
"version": "2.1.1", "version": "2.1.2",
"resolved": "https://registry.npmjs.org/@mobicoop/message-broker-module/-/message-broker-module-2.1.1.tgz", "resolved": "https://registry.npmjs.org/@mobicoop/message-broker-module/-/message-broker-module-2.1.2.tgz",
"integrity": "sha512-64Vt90kFcelQeqwHhfwhVh/syik52GCd4tb4xChrh4rA6c7MxS1GpqwV0VdmRRrDvpajvep7quJ3c425d6dfmg==", "integrity": "sha512-zZXUw0mRgxJjFk7wx40coFsXoyXNGrUNCCuxKDLvs8olt1sihiPFpd9o3OkgF4oYEL3p25XuZFPml4JKmPr15Q==",
"dependencies": { "dependencies": {
"@golevelup/nestjs-rabbitmq": "^4.0.0", "@golevelup/nestjs-rabbitmq": "^4.1.0",
"@types/amqplib": "^0.10.2", "@types/amqplib": "^0.10.4",
"amqplib": "^0.10.3" "amqplib": "^0.10.3"
}, },
"peerDependencies": { "peerDependencies": {
"@nestjs/common": "^10.2.7" "@nestjs/common": "^10.3.0"
} }
}, },
"node_modules/@nestjs/axios": { "node_modules/@nestjs/axios": {
@ -1957,6 +1957,28 @@
} }
} }
}, },
"node_modules/@nestjs/cli/node_modules/eslint-scope": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
"integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
"dev": true,
"dependencies": {
"esrecurse": "^4.3.0",
"estraverse": "^4.1.1"
},
"engines": {
"node": ">=8.0.0"
}
},
"node_modules/@nestjs/cli/node_modules/estraverse": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
"integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
"dev": true,
"engines": {
"node": ">=4.0"
}
},
"node_modules/@nestjs/cli/node_modules/minimatch": { "node_modules/@nestjs/cli/node_modules/minimatch": {
"version": "8.0.4", "version": "8.0.4",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-8.0.4.tgz", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-8.0.4.tgz",
@ -2017,10 +2039,57 @@
"url": "https://github.com/sponsors/isaacs" "url": "https://github.com/sponsors/isaacs"
} }
}, },
"node_modules/@nestjs/cli/node_modules/webpack": {
"version": "5.89.0",
"resolved": "https://registry.npmjs.org/webpack/-/webpack-5.89.0.tgz",
"integrity": "sha512-qyfIC10pOr70V+jkmud8tMfajraGCZMBWJtrmuBymQKCrLTRejBI8STDp1MCyZu/QTdZSeacCQYpYNQVOzX5kw==",
"dev": true,
"dependencies": {
"@types/eslint-scope": "^3.7.3",
"@types/estree": "^1.0.0",
"@webassemblyjs/ast": "^1.11.5",
"@webassemblyjs/wasm-edit": "^1.11.5",
"@webassemblyjs/wasm-parser": "^1.11.5",
"acorn": "^8.7.1",
"acorn-import-assertions": "^1.9.0",
"browserslist": "^4.14.5",
"chrome-trace-event": "^1.0.2",
"enhanced-resolve": "^5.15.0",
"es-module-lexer": "^1.2.1",
"eslint-scope": "5.1.1",
"events": "^3.2.0",
"glob-to-regexp": "^0.4.1",
"graceful-fs": "^4.2.9",
"json-parse-even-better-errors": "^2.3.1",
"loader-runner": "^4.2.0",
"mime-types": "^2.1.27",
"neo-async": "^2.6.2",
"schema-utils": "^3.2.0",
"tapable": "^2.1.1",
"terser-webpack-plugin": "^5.3.7",
"watchpack": "^2.4.0",
"webpack-sources": "^3.2.3"
},
"bin": {
"webpack": "bin/webpack.js"
},
"engines": {
"node": ">=10.13.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/webpack"
},
"peerDependenciesMeta": {
"webpack-cli": {
"optional": true
}
}
},
"node_modules/@nestjs/common": { "node_modules/@nestjs/common": {
"version": "10.3.0", "version": "10.3.1",
"resolved": "https://registry.npmjs.org/@nestjs/common/-/common-10.3.0.tgz", "resolved": "https://registry.npmjs.org/@nestjs/common/-/common-10.3.1.tgz",
"integrity": "sha512-DGv34UHsZBxCM3H5QGE2XE/+oLJzz5+714JQjBhjD9VccFlQs3LRxo/epso4l7nJIiNlZkPyIUC8WzfU/5RTsQ==", "integrity": "sha512-YuxeIlVemVQCuXMkNbBpNlmwZgp/Cu6dwCOjki63mhyYHEFX48GNNA4zZn5MFRjF4h7VSceABsScROuzsxs9LA==",
"dependencies": { "dependencies": {
"iterare": "1.2.1", "iterare": "1.2.1",
"tslib": "2.6.2", "tslib": "2.6.2",
@ -2069,9 +2138,9 @@
} }
}, },
"node_modules/@nestjs/core": { "node_modules/@nestjs/core": {
"version": "10.3.0", "version": "10.3.1",
"resolved": "https://registry.npmjs.org/@nestjs/core/-/core-10.3.0.tgz", "resolved": "https://registry.npmjs.org/@nestjs/core/-/core-10.3.1.tgz",
"integrity": "sha512-N06P5ncknW/Pm8bj964WvLIZn2gNhHliCBoAO1LeBvNImYkecqKcrmLbY49Fa1rmMfEM3MuBHeDys3edeuYAOA==", "integrity": "sha512-mh6FwTKh2R3CmLRuB50BF5q/lzc+Mz+7qAlEvpgCiTSIfSXzbQ47vWpfgLirwkL3SlCvtFS8onxOeI69RpxvXA==",
"hasInstallScript": true, "hasInstallScript": true,
"dependencies": { "dependencies": {
"@nuxtjs/opencollective": "0.3.2", "@nuxtjs/opencollective": "0.3.2",
@ -2160,9 +2229,9 @@
} }
}, },
"node_modules/@nestjs/microservices": { "node_modules/@nestjs/microservices": {
"version": "10.3.0", "version": "10.3.1",
"resolved": "https://registry.npmjs.org/@nestjs/microservices/-/microservices-10.3.0.tgz", "resolved": "https://registry.npmjs.org/@nestjs/microservices/-/microservices-10.3.1.tgz",
"integrity": "sha512-CZj27dEN4Rh6t9cRXv5EEg+HwkOUk02DDdS7x4eLcphnP4wgsLNDEo8vQ2gbQHFGpZhLUyeeynjNGkpV9T3+og==", "integrity": "sha512-wGdQUcfgmEYGj5mgSMRl3l0szNFtkHZFqKIRJpo4QHeawTZd9rPXbN0I9+0qEDzltvApjX5Bj+8vLuej9fH42A==",
"dependencies": { "dependencies": {
"iterare": "1.2.1", "iterare": "1.2.1",
"tslib": "2.6.2" "tslib": "2.6.2"
@ -2217,9 +2286,9 @@
} }
}, },
"node_modules/@nestjs/platform-express": { "node_modules/@nestjs/platform-express": {
"version": "10.3.0", "version": "10.3.1",
"resolved": "https://registry.npmjs.org/@nestjs/platform-express/-/platform-express-10.3.0.tgz", "resolved": "https://registry.npmjs.org/@nestjs/platform-express/-/platform-express-10.3.1.tgz",
"integrity": "sha512-E4hUW48bYv8OHbP9XQg6deefmXb0pDSSuE38SdhA0mJ37zGY7C5EqqBUdlQk4ttfD+OdnbIgJ1zOokT6dd2d7A==", "integrity": "sha512-Rj21quI5h4Lry7q9an+nO4ADQiQUy9A6XK74o5aTUHo3Ysm25ujqh2NgU4XbT3M2oXU9qzhE59OfhkQ7ZUvTAg==",
"dependencies": { "dependencies": {
"body-parser": "1.20.2", "body-parser": "1.20.2",
"cors": "2.8.5", "cors": "2.8.5",
@ -2284,9 +2353,9 @@
} }
}, },
"node_modules/@nestjs/terminus": { "node_modules/@nestjs/terminus": {
"version": "10.2.0", "version": "10.2.1",
"resolved": "https://registry.npmjs.org/@nestjs/terminus/-/terminus-10.2.0.tgz", "resolved": "https://registry.npmjs.org/@nestjs/terminus/-/terminus-10.2.1.tgz",
"integrity": "sha512-zPs98xvJ4ogEimRQOz8eU90mb7z+W/kd/mL4peOgrJ/VqER+ibN2Cboj65uJZW3XuNhpOqaeYOJte86InJd44A==", "integrity": "sha512-23abPhotIP4+hrCZ8YkLEOmZ3m7eUYh1QOwdyrNkU9eMz/nc5LpVzy7jFbsNUuvlnT4MPV/7KXfyQTruQkTouw==",
"dependencies": { "dependencies": {
"boxen": "5.1.2", "boxen": "5.1.2",
"check-disk-space": "3.4.0" "check-disk-space": "3.4.0"
@ -2353,9 +2422,9 @@
} }
}, },
"node_modules/@nestjs/testing": { "node_modules/@nestjs/testing": {
"version": "10.3.0", "version": "10.3.1",
"resolved": "https://registry.npmjs.org/@nestjs/testing/-/testing-10.3.0.tgz", "resolved": "https://registry.npmjs.org/@nestjs/testing/-/testing-10.3.1.tgz",
"integrity": "sha512-8DM+bw1qASCvaEnoHUQhypCOf54+G5R21MeFBMvnSk5DtKaWVZuzDP2GjLeYCpTH19WeP6LrrjHv3rX2LKU02A==", "integrity": "sha512-74aSAugWT31jSPnStyRWDXgjHXWO3GYaUfAZ2T7Dml88UGkGy95iwaWgYy7aYM8/xVFKcDYkfL5FAYqZYce/yg==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"tslib": "2.6.2" "tslib": "2.6.2"
@ -2441,9 +2510,9 @@
} }
}, },
"node_modules/@pkgr/core": { "node_modules/@pkgr/core": {
"version": "0.1.0", "version": "0.1.1",
"resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.0.tgz", "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz",
"integrity": "sha512-Zwq5OCzuwJC2jwqmpEQt7Ds1DTi6BWSwoGkbb1n9pO3hzb35BoJELx7c0T23iDkBGkh2e7tvOtjF3tr3OaQHDQ==", "integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==",
"dev": true, "dev": true,
"engines": { "engines": {
"node": "^12.20.0 || ^14.18.0 || >=16.0.0" "node": "^12.20.0 || ^14.18.0 || >=16.0.0"
@ -2513,9 +2582,9 @@
"dev": true "dev": true
}, },
"node_modules/@sinonjs/commons": { "node_modules/@sinonjs/commons": {
"version": "3.0.0", "version": "3.0.1",
"resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz",
"integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==", "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"type-detect": "4.0.8" "type-detect": "4.0.8"
@ -2688,9 +2757,9 @@
} }
}, },
"node_modules/@types/express-serve-static-core": { "node_modules/@types/express-serve-static-core": {
"version": "4.17.41", "version": "4.17.42",
"resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.41.tgz", "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.42.tgz",
"integrity": "sha512-OaJ7XLaelTgrvlZD8/aa0vvvxZdUmlCn6MtWeB7TkiKW70BQLc9XEPpDLPdbo52ZhXUCrznlWdCHWxJWtdyajA==", "integrity": "sha512-ckM3jm2bf/MfB3+spLPWYPUH573plBFwpOhqQ2WottxYV85j1HQFlxmnTq57X1yHY9awZPig06hL/cLMgNWHIQ==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@types/node": "*", "@types/node": "*",
@ -2767,9 +2836,9 @@
"dev": true "dev": true
}, },
"node_modules/@types/node": { "node_modules/@types/node": {
"version": "20.11.2", "version": "20.11.13",
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.2.tgz", "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.13.tgz",
"integrity": "sha512-cZShBaVa+UO1LjWWBPmWRR4+/eY/JR/UIEcDlVsw3okjWEu+rB7/mH6X3B/L+qJVHDLjk9QW/y2upp9wp1yDXA==", "integrity": "sha512-5G4zQwdiQBSWYTDAH1ctw2eidqdhMJaNsiIDKHFr55ihz5Trl2qqR8fdrT732yPBho5gkNxXm67OxWFBqX9aPg==",
"dependencies": { "dependencies": {
"undici-types": "~5.26.4" "undici-types": "~5.26.4"
} }
@ -2820,9 +2889,9 @@
"dev": true "dev": true
}, },
"node_modules/@types/superagent": { "node_modules/@types/superagent": {
"version": "8.1.1", "version": "8.1.3",
"resolved": "https://registry.npmjs.org/@types/superagent/-/superagent-8.1.1.tgz", "resolved": "https://registry.npmjs.org/@types/superagent/-/superagent-8.1.3.tgz",
"integrity": "sha512-YQyEXA4PgCl7EVOoSAS3o0fyPFU6erv5mMixztQYe1bqbWmmn8c+IrqoxjQeZe4MgwXikgcaZPiI/DsbmOVlzA==", "integrity": "sha512-R/CfN6w2XsixLb1Ii8INfn+BT9sGPvw74OavfkW4SwY+jeUcAwLZv2+bXLJkndnimxjEBm0RPHgcjW9pLCa8cw==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@types/cookiejar": "^2.1.5", "@types/cookiejar": "^2.1.5",
@ -2861,16 +2930,16 @@
"dev": true "dev": true
}, },
"node_modules/@typescript-eslint/eslint-plugin": { "node_modules/@typescript-eslint/eslint-plugin": {
"version": "6.18.1", "version": "6.20.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.18.1.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.20.0.tgz",
"integrity": "sha512-nISDRYnnIpk7VCFrGcu1rnZfM1Dh9LRHnfgdkjcbi/l7g16VYRri3TjXi9Ir4lOZSw5N/gnV/3H7jIPQ8Q4daA==", "integrity": "sha512-fTwGQUnjhoYHeSF6m5pWNkzmDDdsKELYrOBxhjMrofPqCkoC2k3B2wvGHFxa1CTIqkEn88nlW1HVMztjo2K8Hg==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@eslint-community/regexpp": "^4.5.1", "@eslint-community/regexpp": "^4.5.1",
"@typescript-eslint/scope-manager": "6.18.1", "@typescript-eslint/scope-manager": "6.20.0",
"@typescript-eslint/type-utils": "6.18.1", "@typescript-eslint/type-utils": "6.20.0",
"@typescript-eslint/utils": "6.18.1", "@typescript-eslint/utils": "6.20.0",
"@typescript-eslint/visitor-keys": "6.18.1", "@typescript-eslint/visitor-keys": "6.20.0",
"debug": "^4.3.4", "debug": "^4.3.4",
"graphemer": "^1.4.0", "graphemer": "^1.4.0",
"ignore": "^5.2.4", "ignore": "^5.2.4",
@ -2896,15 +2965,15 @@
} }
}, },
"node_modules/@typescript-eslint/parser": { "node_modules/@typescript-eslint/parser": {
"version": "6.18.1", "version": "6.20.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.18.1.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.20.0.tgz",
"integrity": "sha512-zct/MdJnVaRRNy9e84XnVtRv9Vf91/qqe+hZJtKanjojud4wAVy/7lXxJmMyX6X6J+xc6c//YEWvpeif8cAhWA==", "integrity": "sha512-bYerPDF/H5v6V76MdMYhjwmwgMA+jlPVqjSDq2cRqMi8bP5sR3Z+RLOiOMad3nsnmDVmn2gAFCyNgh/dIrfP/w==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@typescript-eslint/scope-manager": "6.18.1", "@typescript-eslint/scope-manager": "6.20.0",
"@typescript-eslint/types": "6.18.1", "@typescript-eslint/types": "6.20.0",
"@typescript-eslint/typescript-estree": "6.18.1", "@typescript-eslint/typescript-estree": "6.20.0",
"@typescript-eslint/visitor-keys": "6.18.1", "@typescript-eslint/visitor-keys": "6.20.0",
"debug": "^4.3.4" "debug": "^4.3.4"
}, },
"engines": { "engines": {
@ -2924,13 +2993,13 @@
} }
}, },
"node_modules/@typescript-eslint/scope-manager": { "node_modules/@typescript-eslint/scope-manager": {
"version": "6.18.1", "version": "6.20.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.18.1.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.20.0.tgz",
"integrity": "sha512-BgdBwXPFmZzaZUuw6wKiHKIovms97a7eTImjkXCZE04TGHysG+0hDQPmygyvgtkoB/aOQwSM/nWv3LzrOIQOBw==", "integrity": "sha512-p4rvHQRDTI1tGGMDFQm+GtxP1ZHyAh64WANVoyEcNMpaTFn3ox/3CcgtIlELnRfKzSs/DwYlDccJEtr3O6qBvA==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@typescript-eslint/types": "6.18.1", "@typescript-eslint/types": "6.20.0",
"@typescript-eslint/visitor-keys": "6.18.1" "@typescript-eslint/visitor-keys": "6.20.0"
}, },
"engines": { "engines": {
"node": "^16.0.0 || >=18.0.0" "node": "^16.0.0 || >=18.0.0"
@ -2941,13 +3010,13 @@
} }
}, },
"node_modules/@typescript-eslint/type-utils": { "node_modules/@typescript-eslint/type-utils": {
"version": "6.18.1", "version": "6.20.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.18.1.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.20.0.tgz",
"integrity": "sha512-wyOSKhuzHeU/5pcRDP2G2Ndci+4g653V43gXTpt4nbyoIOAASkGDA9JIAgbQCdCkcr1MvpSYWzxTz0olCn8+/Q==", "integrity": "sha512-qnSobiJQb1F5JjN0YDRPHruQTrX7ICsmltXhkV536mp4idGAYrIyr47zF/JmkJtEcAVnIz4gUYJ7gOZa6SmN4g==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@typescript-eslint/typescript-estree": "6.18.1", "@typescript-eslint/typescript-estree": "6.20.0",
"@typescript-eslint/utils": "6.18.1", "@typescript-eslint/utils": "6.20.0",
"debug": "^4.3.4", "debug": "^4.3.4",
"ts-api-utils": "^1.0.1" "ts-api-utils": "^1.0.1"
}, },
@ -2968,9 +3037,9 @@
} }
}, },
"node_modules/@typescript-eslint/types": { "node_modules/@typescript-eslint/types": {
"version": "6.18.1", "version": "6.20.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.18.1.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.20.0.tgz",
"integrity": "sha512-4TuMAe+tc5oA7wwfqMtB0Y5OrREPF1GeJBAjqwgZh1lEMH5PJQgWgHGfYufVB51LtjD+peZylmeyxUXPfENLCw==", "integrity": "sha512-MM9mfZMAhiN4cOEcUOEx+0HmuaW3WBfukBZPCfwSqFnQy0grXYtngKCqpQN339X3RrwtzspWJrpbrupKYUSBXQ==",
"dev": true, "dev": true,
"engines": { "engines": {
"node": "^16.0.0 || >=18.0.0" "node": "^16.0.0 || >=18.0.0"
@ -2981,13 +3050,13 @@
} }
}, },
"node_modules/@typescript-eslint/typescript-estree": { "node_modules/@typescript-eslint/typescript-estree": {
"version": "6.18.1", "version": "6.20.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.18.1.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.20.0.tgz",
"integrity": "sha512-fv9B94UAhywPRhUeeV/v+3SBDvcPiLxRZJw/xZeeGgRLQZ6rLMG+8krrJUyIf6s1ecWTzlsbp0rlw7n9sjufHA==", "integrity": "sha512-RnRya9q5m6YYSpBN7IzKu9FmLcYtErkDkc8/dKv81I9QiLLtVBHrjz+Ev/crAqgMNW2FCsoZF4g2QUylMnJz+g==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@typescript-eslint/types": "6.18.1", "@typescript-eslint/types": "6.20.0",
"@typescript-eslint/visitor-keys": "6.18.1", "@typescript-eslint/visitor-keys": "6.20.0",
"debug": "^4.3.4", "debug": "^4.3.4",
"globby": "^11.1.0", "globby": "^11.1.0",
"is-glob": "^4.0.3", "is-glob": "^4.0.3",
@ -3009,17 +3078,17 @@
} }
}, },
"node_modules/@typescript-eslint/utils": { "node_modules/@typescript-eslint/utils": {
"version": "6.18.1", "version": "6.20.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.18.1.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.20.0.tgz",
"integrity": "sha512-zZmTuVZvD1wpoceHvoQpOiewmWu3uP9FuTWo8vqpy2ffsmfCE8mklRPi+vmnIYAIk9t/4kOThri2QCDgor+OpQ==", "integrity": "sha512-/EKuw+kRu2vAqCoDwDCBtDRU6CTKbUmwwI7SH7AashZ+W+7o8eiyy6V2cdOqN49KsTcASWsC5QeghYuRDTyOOg==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@eslint-community/eslint-utils": "^4.4.0", "@eslint-community/eslint-utils": "^4.4.0",
"@types/json-schema": "^7.0.12", "@types/json-schema": "^7.0.12",
"@types/semver": "^7.5.0", "@types/semver": "^7.5.0",
"@typescript-eslint/scope-manager": "6.18.1", "@typescript-eslint/scope-manager": "6.20.0",
"@typescript-eslint/types": "6.18.1", "@typescript-eslint/types": "6.20.0",
"@typescript-eslint/typescript-estree": "6.18.1", "@typescript-eslint/typescript-estree": "6.20.0",
"semver": "^7.5.4" "semver": "^7.5.4"
}, },
"engines": { "engines": {
@ -3034,12 +3103,12 @@
} }
}, },
"node_modules/@typescript-eslint/visitor-keys": { "node_modules/@typescript-eslint/visitor-keys": {
"version": "6.18.1", "version": "6.20.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.18.1.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.20.0.tgz",
"integrity": "sha512-/kvt0C5lRqGoCfsbmm7/CwMqoSkY3zzHLIjdhHZQW3VFrnz7ATecOHR7nb7V+xn4286MBxfnQfQhAmCI0u+bJA==", "integrity": "sha512-E8Cp98kRe4gKHjJD4NExXKz/zOJ1A2hhZc+IMVD6i7w4yjIvh6VyuRI0gRtxAsXtoC35uGMaQ9rjI2zJaXDEAw==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@typescript-eslint/types": "6.18.1", "@typescript-eslint/types": "6.20.0",
"eslint-visitor-keys": "^3.4.1" "eslint-visitor-keys": "^3.4.1"
}, },
"engines": { "engines": {
@ -3466,9 +3535,9 @@
"integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
}, },
"node_modules/axios": { "node_modules/axios": {
"version": "1.6.5", "version": "1.6.7",
"resolved": "https://registry.npmjs.org/axios/-/axios-1.6.5.tgz", "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.7.tgz",
"integrity": "sha512-Ii012v05KEVuUoFWmMW/UQv9aRIc3ZwkWDcM+h5Il8izZCtRVpDUfwpoFf7eOtajT3QiGR4yDUx7lPqHJULgbg==", "integrity": "sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA==",
"dependencies": { "dependencies": {
"follow-redirects": "^1.15.4", "follow-redirects": "^1.15.4",
"form-data": "^4.0.0", "form-data": "^4.0.0",
@ -3788,9 +3857,9 @@
} }
}, },
"node_modules/browserslist": { "node_modules/browserslist": {
"version": "4.22.2", "version": "4.22.3",
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.3.tgz",
"integrity": "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==", "integrity": "sha512-UAp55yfwNv0klWNapjs/ktHoguxuQNGnOzxYmfnXIS+8AsRDZkSDxg7R1AX3GKzn078SBI5dzwzj/Yx0Or0e3A==",
"dev": true, "dev": true,
"funding": [ "funding": [
{ {
@ -3807,8 +3876,8 @@
} }
], ],
"dependencies": { "dependencies": {
"caniuse-lite": "^1.0.30001565", "caniuse-lite": "^1.0.30001580",
"electron-to-chromium": "^1.4.601", "electron-to-chromium": "^1.4.648",
"node-releases": "^2.0.14", "node-releases": "^2.0.14",
"update-browserslist-db": "^1.0.13" "update-browserslist-db": "^1.0.13"
}, },
@ -3927,9 +3996,9 @@
} }
}, },
"node_modules/caniuse-lite": { "node_modules/caniuse-lite": {
"version": "1.0.30001576", "version": "1.0.30001581",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001576.tgz", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001581.tgz",
"integrity": "sha512-ff5BdakGe2P3SQsMsiqmt1Lc8221NR1VzHj5jXN5vBny9A6fpze94HiVV/n7XRosOlsShJcvMv5mdnpjOGCEgg==", "integrity": "sha512-whlTkwhqV2tUmP3oYhtNfaWGYHDdS3JYFQBKXxcUR9qqPWsRhFHhoISO2Xnl/g0xyKzht9mI1LZpiNWfMzHixQ==",
"dev": true, "dev": true,
"funding": [ "funding": [
{ {
@ -4629,9 +4698,9 @@
"integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
}, },
"node_modules/electron-to-chromium": { "node_modules/electron-to-chromium": {
"version": "1.4.630", "version": "1.4.651",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.630.tgz", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.651.tgz",
"integrity": "sha512-osHqhtjojpCsACVnuD11xO5g9xaCyw7Qqn/C2KParkMv42i8jrJJgx3g7mkHfpxwhy9MnOJr8+pKOdZ7qzgizg==", "integrity": "sha512-jjks7Xx+4I7dslwsbaFocSwqBbGHQmuXBJUK9QBZTIrzPq3pzn6Uf2szFSP728FtLYE3ldiccmlkOM/zhGKCpA==",
"dev": true "dev": true
}, },
"node_modules/emittery": { "node_modules/emittery": {
@ -5216,9 +5285,9 @@
"integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==" "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA=="
}, },
"node_modules/fastq": { "node_modules/fastq": {
"version": "1.16.0", "version": "1.17.0",
"resolved": "https://registry.npmjs.org/fastq/-/fastq-1.16.0.tgz", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.0.tgz",
"integrity": "sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==", "integrity": "sha512-zGygtijUMT7jnk3h26kUms3BkSDp4IfIKjmnqI2tvx6nuBfiF1UqOxbnLfzdv+apBy+53oaImsKtMw/xYbW+1w==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"reusify": "^1.0.4" "reusify": "^1.0.4"
@ -7019,9 +7088,9 @@
} }
}, },
"node_modules/libphonenumber-js": { "node_modules/libphonenumber-js": {
"version": "1.10.53", "version": "1.10.54",
"resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.10.53.tgz", "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.10.54.tgz",
"integrity": "sha512-sDTnnqlWK4vH4AlDQuswz3n4Hx7bIQWTpIcScJX+Sp7St3LXHmfiax/ZFfyYxHmkdCvydOLSuvtAO/XpXiSySw==" "integrity": "sha512-P+38dUgJsmh0gzoRDoM4F5jLbyfztkU6PY6eSK6S5HwTi/LPvnwXqVCQZlAy1FxZ5c48q25QhxGQ0pq+WQcSlQ=="
}, },
"node_modules/lines-and-columns": { "node_modules/lines-and-columns": {
"version": "1.2.4", "version": "1.2.4",
@ -7667,9 +7736,9 @@
} }
}, },
"node_modules/path-scurry/node_modules/lru-cache": { "node_modules/path-scurry/node_modules/lru-cache": {
"version": "10.1.0", "version": "10.2.0",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.1.0.tgz", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz",
"integrity": "sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==", "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==",
"engines": { "engines": {
"node": "14 || >=16.14" "node": "14 || >=16.14"
} }
@ -7798,9 +7867,9 @@
} }
}, },
"node_modules/prettier": { "node_modules/prettier": {
"version": "3.2.2", "version": "3.2.4",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.2.tgz", "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.4.tgz",
"integrity": "sha512-HTByuKZzw7utPiDO523Tt2pLtEyK7OibUD9suEJQrPUCYQqrHr74GGX6VidMrovbf/I50mPqr8j/II6oBAuc5A==", "integrity": "sha512-FWu1oLHKCrtpO1ypU6J0SbK2d9Ckwysq6bHj/uaCP26DxrPpppCLQRGVuqAxSTvhF00AcvDRyYrLNW7ocBhFFQ==",
"dev": true, "dev": true,
"bin": { "bin": {
"prettier": "bin/prettier.cjs" "prettier": "bin/prettier.cjs"
@ -7874,9 +7943,9 @@
} }
}, },
"node_modules/protobufjs": { "node_modules/protobufjs": {
"version": "7.2.5", "version": "7.2.6",
"resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.5.tgz", "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.6.tgz",
"integrity": "sha512-gGXRSXvxQ7UiPgfw8gevrfRWcTlSbOFg+p/N+JVJEK5VhueL2miT6qTymqAmjr1Q5WbOCyJbyrk6JfWKwlFn6A==", "integrity": "sha512-dgJaEDDL6x8ASUZ1YqWciTRrdOuYNzoOf27oHNfdyvKqHr5i0FV7FSLU+aIeFjyFgVxrpTOtQUi0BLLBymZaBw==",
"hasInstallScript": true, "hasInstallScript": true,
"dependencies": { "dependencies": {
"@protobufjs/aspromise": "^1.1.2", "@protobufjs/aspromise": "^1.1.2",
@ -8834,9 +8903,9 @@
} }
}, },
"node_modules/terser": { "node_modules/terser": {
"version": "5.26.0", "version": "5.27.0",
"resolved": "https://registry.npmjs.org/terser/-/terser-5.26.0.tgz", "resolved": "https://registry.npmjs.org/terser/-/terser-5.27.0.tgz",
"integrity": "sha512-dytTGoE2oHgbNV9nTzgBEPaqAWvcJNl66VZ0BkJqlvp71IjO8CxdBx/ykCNb47cLnCmCvRZ6ZR0tLkqvZCdVBQ==", "integrity": "sha512-bi1HRwVRskAjheeYl291n3JC4GgO/Ty4z1nVs5AAsmonJulGxpSektecnNedrwK9C7vpvVtcX3cw00VSLt7U2A==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@jridgewell/source-map": "^0.3.3", "@jridgewell/source-map": "^0.3.3",
@ -9450,19 +9519,20 @@
"integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
}, },
"node_modules/webpack": { "node_modules/webpack": {
"version": "5.89.0", "version": "5.90.0",
"resolved": "https://registry.npmjs.org/webpack/-/webpack-5.89.0.tgz", "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.90.0.tgz",
"integrity": "sha512-qyfIC10pOr70V+jkmud8tMfajraGCZMBWJtrmuBymQKCrLTRejBI8STDp1MCyZu/QTdZSeacCQYpYNQVOzX5kw==", "integrity": "sha512-bdmyXRCXeeNIePv6R6tGPyy20aUobw4Zy8r0LUS2EWO+U+Ke/gYDgsCh7bl5rB6jPpr4r0SZa6dPxBxLooDT3w==",
"dev": true, "dev": true,
"peer": true,
"dependencies": { "dependencies": {
"@types/eslint-scope": "^3.7.3", "@types/eslint-scope": "^3.7.3",
"@types/estree": "^1.0.0", "@types/estree": "^1.0.5",
"@webassemblyjs/ast": "^1.11.5", "@webassemblyjs/ast": "^1.11.5",
"@webassemblyjs/wasm-edit": "^1.11.5", "@webassemblyjs/wasm-edit": "^1.11.5",
"@webassemblyjs/wasm-parser": "^1.11.5", "@webassemblyjs/wasm-parser": "^1.11.5",
"acorn": "^8.7.1", "acorn": "^8.7.1",
"acorn-import-assertions": "^1.9.0", "acorn-import-assertions": "^1.9.0",
"browserslist": "^4.14.5", "browserslist": "^4.21.10",
"chrome-trace-event": "^1.0.2", "chrome-trace-event": "^1.0.2",
"enhanced-resolve": "^5.15.0", "enhanced-resolve": "^5.15.0",
"es-module-lexer": "^1.2.1", "es-module-lexer": "^1.2.1",
@ -9476,7 +9546,7 @@
"neo-async": "^2.6.2", "neo-async": "^2.6.2",
"schema-utils": "^3.2.0", "schema-utils": "^3.2.0",
"tapable": "^2.1.1", "tapable": "^2.1.1",
"terser-webpack-plugin": "^5.3.7", "terser-webpack-plugin": "^5.3.10",
"watchpack": "^2.4.0", "watchpack": "^2.4.0",
"webpack-sources": "^3.2.3" "webpack-sources": "^3.2.3"
}, },
@ -9519,6 +9589,7 @@
"resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
"integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
"dev": true, "dev": true,
"peer": true,
"dependencies": { "dependencies": {
"esrecurse": "^4.3.0", "esrecurse": "^4.3.0",
"estraverse": "^4.1.1" "estraverse": "^4.1.1"
@ -9532,6 +9603,7 @@
"resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
"integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
"dev": true, "dev": true,
"peer": true,
"engines": { "engines": {
"node": ">=4.0" "node": ">=4.0"
} }

View File

@ -26,7 +26,7 @@
"dependencies": { "dependencies": {
"@grpc/grpc-js": "^1.9.13", "@grpc/grpc-js": "^1.9.13",
"@grpc/proto-loader": "^0.7.10", "@grpc/proto-loader": "^0.7.10",
"@mobicoop/configuration-module": "^8.0.0", "@mobicoop/configuration-module": "^8.1.2",
"@mobicoop/ddd-library": "^2.4.2", "@mobicoop/ddd-library": "^2.4.2",
"@mobicoop/health-module": "^2.3.1", "@mobicoop/health-module": "^2.3.1",
"@mobicoop/message-broker-module": "^2.1.1", "@mobicoop/message-broker-module": "^2.1.1",

View File

@ -12,8 +12,8 @@ export interface GeographyConfig extends Config {
geocoderConsolidate: boolean; geocoderConsolidate: boolean;
geocoderProximity: number; geocoderProximity: number;
geocoderPopulationPrioritizerCoef: number; geocoderPopulationPrioritizerCoef: number;
geocoderProviders: string[]; geocoderProviders: object[];
geocoderProvidersFallback: string[]; geocoderProvidersFallback: object[];
} }
export default registerAs('geography', () => ({ export default registerAs('geography', () => ({
@ -47,9 +47,9 @@ export default registerAs('geography', () => ({
? parseInt(process.env.GEOCODER_POPULATION_PRIORITIZER_COEF) ? parseInt(process.env.GEOCODER_POPULATION_PRIORITIZER_COEF)
: 100, : 100,
geocoderProviders: process.env.GEOCODER_PROVIDERS geocoderProviders: process.env.GEOCODER_PROVIDERS
? process.env.GEOCODER_PROVIDERS?.split(',') ? JSON.parse(process.env.GEOCODER_PROVIDERS)
: ['ADDOK,PELIAS_SEARCH,PELIAS_AUTOCOMPLETE'], : [],
geocoderProvidersFallback: process.env.GEOCODER_PROVIDERS_FALLBACK geocoderProvidersFallback: process.env.GEOCODER_PROVIDERS_FALLBACK
? process.env.GEOCODER_PROVIDERS_FALLBACK?.split(',') ? JSON.parse(process.env.GEOCODER_PROVIDERS_FALLBACK)
: ['GMAPS'], : [],
})); }));

View File

@ -16,7 +16,7 @@ export class ConfigurationMapper {
const response = new ConfigurationResponseDto(); const response = new ConfigurationResponseDto();
response.domain = identifier.domain; response.domain = identifier.domain;
response.key = identifier.key; response.key = identifier.key;
response.value = value; response.value = typeof value === 'object' ? JSON.stringify(value) : value;
response.type = this.configurationsManager.configurationType(value); response.type = this.configurationsManager.configurationType(value);
return response; return response;
}; };

View File

@ -69,6 +69,8 @@ export class ConfigurationsManagerService {
return Type.FLOAT; return Type.FLOAT;
case 'boolean': case 'boolean':
return Type.BOOLEAN; return Type.BOOLEAN;
case 'object':
return Type.JSON;
default: default:
if (value.indexOf(',') === -1) return Type.STRING; if (value.indexOf(',') === -1) return Type.STRING;
return this._configurationTypeArray(value.split(',')); return this._configurationTypeArray(value.split(','));
@ -80,7 +82,9 @@ export class ConfigurationsManagerService {
? Type.INT_ARRAY ? Type.INT_ARRAY
: value.every((item) => typeof item === 'number') : value.every((item) => typeof item === 'number')
? Type.FLOAT_ARRAY ? Type.FLOAT_ARRAY
: Type.STRING_ARRAY; : value.every((item) => typeof item === 'object')
? Type.JSON_ARRAY
: Type.STRING_ARRAY;
}; };
cast = (value: string, type: Type): Value => { cast = (value: string, type: Type): Value => {
@ -91,6 +95,9 @@ export class ConfigurationsManagerService {
return parseInt(value); return parseInt(value);
case Type.FLOAT: case Type.FLOAT:
return parseFloat(value); return parseFloat(value);
case Type.JSON:
case Type.JSON_ARRAY:
return JSON.parse(value);
case Type.INT_ARRAY: case Type.INT_ARRAY:
return value.split(',').map((item: string) => parseInt(item)); return value.split(',').map((item: string) => parseInt(item));
case Type.FLOAT_ARRAY: case Type.FLOAT_ARRAY:

View File

@ -46,7 +46,9 @@ export class PopulateService implements OnApplicationBootstrap {
this.setConfigurationRepository.set( this.setConfigurationRepository.set(
config.domain, config.domain,
key, key,
`${configuration[key]}`, typeof configuration[key] === 'object'
? JSON.stringify(configuration[key])
: `${configuration[key]}`,
); );
} }
} }

View File

@ -3,6 +3,6 @@ import { Type } from '@mobicoop/configuration-module';
export class ConfigurationResponseDto { export class ConfigurationResponseDto {
domain: string; domain: string;
key: string; key: string;
value: string | boolean | number | string[] | number[]; value: string | boolean | number | object | string[] | number[] | object[];
type: Type; type: Type;
} }

View File

@ -32,8 +32,8 @@ const mockConfigService = {
geocoderConsolidate: true, geocoderConsolidate: true,
geocoderProximity: 5, geocoderProximity: 5,
geocoderPopulationPrioritizerCoef: 100, geocoderPopulationPrioritizerCoef: 100,
geocoderProviders: ['provider1', 'provider2'], geocoderProviders: [{ name: 'provider1' }, { name: 'provider2' }],
geocoderProvidersFallback: ['provider3'], geocoderProvidersFallback: [{ name: 'provider3' }],
}; };
case 'match': case 'match':
return { return {
@ -122,6 +122,11 @@ describe('Configurations Manager Service', () => {
Type.STRING, Type.STRING,
); );
}); });
it('should return the configuration type of a json object', () => {
expect(
configurationsManagerService.configurationType({ key: 'value' }),
).toBe(Type.JSON);
});
it('should return the configuration type of a string array', () => { it('should return the configuration type of a string array', () => {
expect( expect(
configurationsManagerService.configurationType(['test', 'test2']), configurationsManagerService.configurationType(['test', 'test2']),
@ -140,6 +145,14 @@ describe('Configurations Manager Service', () => {
Type.FLOAT_ARRAY, Type.FLOAT_ARRAY,
); );
}); });
it('should return the configuration type of a json array', () => {
expect(
configurationsManagerService.configurationType([
{ key1: 'value1' },
{ key2: 'value2' },
]),
).toBe(Type.JSON_ARRAY);
});
}); });
describe('cast', () => { describe('cast', () => {
@ -159,6 +172,11 @@ describe('Configurations Manager Service', () => {
'role', 'role',
); );
}); });
it('should cast a string to json object', () => {
expect(
configurationsManagerService.cast('{"key":"value"}', Type.JSON),
).toStrictEqual({ key: 'value' });
});
it('should cast a string to an array of strings', () => { it('should cast a string to an array of strings', () => {
expect( expect(
configurationsManagerService.cast('test,test2', Type.STRING_ARRAY), configurationsManagerService.cast('test,test2', Type.STRING_ARRAY),
@ -174,5 +192,13 @@ describe('Configurations Manager Service', () => {
configurationsManagerService.cast('1.2,2.3', Type.FLOAT_ARRAY), configurationsManagerService.cast('1.2,2.3', Type.FLOAT_ARRAY),
).toStrictEqual([1.2, 2.3]); ).toStrictEqual([1.2, 2.3]);
}); });
it('should cast a string to an array of json objects', () => {
expect(
configurationsManagerService.cast(
'[{"key1":"value1"},{"key2":"value2"}]',
Type.JSON_ARRAY,
),
).toStrictEqual([{ key1: 'value1' }, { key2: 'value2' }]);
});
}); });
}); });