diff --git a/lib/utils/snakecase-keys.js b/lib/utils/snakecase-keys.js index 3ce9bc25..c2a49905 100644 --- a/lib/utils/snakecase-keys.js +++ b/lib/utils/snakecase-keys.js @@ -3,8 +3,11 @@ const snakeCase = require('to-snake-case'); const isObject = (value) => typeof value === 'object' && value !== null; const snakeObject = (obj, excludes) => { - const target = {}; + if (Array.isArray(obj)) return obj.map((o) => { + return isObject(o) ? snakeObject(o, excludes) : o; + }); + const target = {}; for (const [key, value] of Object.entries(obj)) { if (excludes.includes(key)) { target[key] = value; diff --git a/package-lock.json b/package-lock.json index fb086b56..cfd84454 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,6 +12,7 @@ "@jambonz/mw-registrar": "^0.1.9", "@jambonz/realtimedb-helpers": "^0.4.1", "@jambonz/stats-collector": "^0.1.5", + "@jambonz/time-series": "^0.1.5", "aws-sdk": "^2.848.0", "bent": "^7.3.12", "cidr-matcher": "^2.1.1", @@ -21,7 +22,6 @@ "drachtio-srf": "^4.4.48", "express": "^4.17.1", "ip": "^1.1.5", - "map-obj": "^4.2.1", "moment": "^2.29.1", "parse-url": "^5.0.2", "pino": "^6.11.1", @@ -80,12 +80,6 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/core/node_modules/lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", - "dev": true - }, "node_modules/@babel/core/node_modules/semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", @@ -159,12 +153,6 @@ "lodash": "^4.17.19" } }, - "node_modules/@babel/helper-module-transforms/node_modules/lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", - "dev": true - }, "node_modules/@babel/helper-optimise-call-expression": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz", @@ -296,12 +284,6 @@ "node": ">=4" } }, - "node_modules/@babel/traverse/node_modules/lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", - "dev": true - }, "node_modules/@babel/types": { "version": "7.11.5", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.5.tgz", @@ -313,12 +295,6 @@ "to-fast-properties": "^2.0.0" } }, - "node_modules/@babel/types/node_modules/lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", - "dev": true - }, "node_modules/@eslint/eslintrc": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.3.0.tgz", @@ -452,6 +428,16 @@ "hot-shots": "^8.2.1" } }, + "node_modules/@jambonz/time-series": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@jambonz/time-series/-/time-series-0.1.5.tgz", + "integrity": "sha512-JDkAshqq9VRdIY7S/Edz9iIyKNoyCoUMfn0IUVyUG4Hf53fmhYRCnFnDTdMFAs6Y4amE39m3968nrZRr+lVIqQ==", + "license": "MIT", + "dependencies": { + "debug": "^4.3.1", + "influx": "^5.8.0" + } + }, "node_modules/@protobufjs/aspromise": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", @@ -1409,11 +1395,6 @@ "ms": "2.0.0" } }, - "node_modules/drachtio-fsmrf/node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, "node_modules/drachtio-fsmrf/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -2606,6 +2587,11 @@ "wrappy": "1" } }, + "node_modules/influx": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/influx/-/influx-5.8.0.tgz", + "integrity": "sha512-sWNzAMJCyuXZhe+K3ipwlq+6zEejKu7MCrzHCv9d7xPzuY0mcfcdYpS8lOloPJfyEg+1gpMSGVHbu2Dp78YOXg==" + }, "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", @@ -3157,10 +3143,9 @@ } }, "node_modules/lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", - "dev": true + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, "node_modules/lodash.camelcase": { "version": "4.3.0", @@ -3201,17 +3186,6 @@ "node": ">=8" } }, - "node_modules/map-obj": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.2.1.tgz", - "integrity": "sha512-+WA2/1sPmDj1dlvvJmB5G6JKfY9dpn7EVBUL06+y6PoljPkh+6V1QihwxNkbcGxCRjt2b0F9K0taiCuo7MbdFQ==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", @@ -5166,12 +5140,6 @@ "source-map": "^0.5.0" }, "dependencies": { - "lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", - "dev": true - }, "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", @@ -5242,14 +5210,6 @@ "@babel/template": "^7.10.4", "@babel/types": "^7.11.0", "lodash": "^4.17.19" - }, - "dependencies": { - "lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", - "dev": true - } } }, "@babel/helper-optimise-call-expression": { @@ -5372,12 +5332,6 @@ "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true - }, - "lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", - "dev": true } } }, @@ -5390,14 +5344,6 @@ "@babel/helper-validator-identifier": "^7.10.4", "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" - }, - "dependencies": { - "lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", - "dev": true - } } }, "@eslint/eslintrc": { @@ -5515,6 +5461,15 @@ "hot-shots": "^8.2.1" } }, + "@jambonz/time-series": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@jambonz/time-series/-/time-series-0.1.5.tgz", + "integrity": "sha512-JDkAshqq9VRdIY7S/Edz9iIyKNoyCoUMfn0IUVyUG4Hf53fmhYRCnFnDTdMFAs6Y4amE39m3968nrZRr+lVIqQ==", + "requires": { + "debug": "^4.3.1", + "influx": "^5.8.0" + } + }, "@protobufjs/aspromise": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", @@ -6341,11 +6296,6 @@ "ms": "2.0.0" } }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -7335,6 +7285,11 @@ "wrappy": "1" } }, + "influx": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/influx/-/influx-5.8.0.tgz", + "integrity": "sha512-sWNzAMJCyuXZhe+K3ipwlq+6zEejKu7MCrzHCv9d7xPzuY0mcfcdYpS8lOloPJfyEg+1gpMSGVHbu2Dp78YOXg==" + }, "inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", @@ -7778,10 +7733,9 @@ } }, "lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", - "dev": true + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, "lodash.camelcase": { "version": "4.3.0", @@ -7816,11 +7770,6 @@ "semver": "^6.0.0" } }, - "map-obj": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.2.1.tgz", - "integrity": "sha512-+WA2/1sPmDj1dlvvJmB5G6JKfY9dpn7EVBUL06+y6PoljPkh+6V1QihwxNkbcGxCRjt2b0F9K0taiCuo7MbdFQ==" - }, "media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", diff --git a/package.json b/package.json index c79907d4..9d85b432 100644 --- a/package.json +++ b/package.json @@ -30,6 +30,7 @@ "@jambonz/mw-registrar": "^0.1.9", "@jambonz/realtimedb-helpers": "^0.4.1", "@jambonz/stats-collector": "^0.1.5", + "@jambonz/time-series": "^0.1.5", "aws-sdk": "^2.848.0", "bent": "^7.3.12", "cidr-matcher": "^2.1.1",