Compare commits

..

58 Commits
AJ ... master

Author SHA1 Message Date
Sean Macfarlane
61575cf56b Merge pull request #34 from Telecominfraproject/dependabot/npm_and_yarn/apollo-server-2.25.3
Bump apollo-server from 2.14.2 to 2.25.3
2021-11-08 14:20:36 -05:00
Sean Macfarlane
760d4d80a0 Merge pull request #33 from Telecominfraproject/dependabot/npm_and_yarn/object-path-0.11.8
Bump object-path from 0.11.5 to 0.11.8
2021-11-08 14:20:18 -05:00
dependabot[bot]
b12365c74d Bump apollo-server from 2.14.2 to 2.25.3
Bumps [apollo-server](https://github.com/apollographql/apollo-server/tree/HEAD/packages/apollo-server) from 2.14.2 to 2.25.3.
- [Release notes](https://github.com/apollographql/apollo-server/releases)
- [Changelog](https://github.com/apollographql/apollo-server/blob/main/CHANGELOG.md)
- [Commits](https://github.com/apollographql/apollo-server/commits/apollo-server@2.25.3/packages/apollo-server)

---
updated-dependencies:
- dependency-name: apollo-server
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-08 18:37:02 +00:00
dependabot[bot]
928c5597e3 Bump object-path from 0.11.5 to 0.11.8
Bumps [object-path](https://github.com/mariocasciaro/object-path) from 0.11.5 to 0.11.8.
- [Release notes](https://github.com/mariocasciaro/object-path/releases)
- [Commits](https://github.com/mariocasciaro/object-path/commits)

---
updated-dependencies:
- dependency-name: object-path
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-09-21 11:41:34 +00:00
Sean Macfarlane
e941791ccc Merge pull request #31 from Telecominfraproject/hotfix/ProfileDatasource
hotfix/ProfileDatasource: Updated create/update profile datasource
2021-08-23 22:36:13 -04:00
irtiza-h30
81bd8b2a52 Removed console log 2021-08-23 16:56:56 -04:00
irtiza-h30
dc049dedf7 Added optimization to reduce unnecessary requests 2021-08-23 14:23:14 -04:00
irtiza-h30
0330eb7f39 fixed OSU SSID edge case 2021-08-23 12:16:33 -04:00
irtiza-h30
c9e950a681 Fixed passpoint bug on deleting ssid profile 2021-08-20 17:09:21 -04:00
irtiza-h30
9facd52419 Updated create/update profile datasource 2021-08-18 13:57:36 -04:00
Sean Macfarlane
48035230fd Merge pull request #30 from Telecominfraproject/NETEXP-3471
WIFI-3471 Change image tag to 1.3.0-SNAPSHOT
2021-08-17 14:57:00 -04:00
AkshayJagadish-ne
9c4b03ce6b Update dockerpublish.yml 2021-08-13 14:15:46 -04:00
Sean Macfarlane
ced2cc88f4 Merge pull request #29 from Telecominfraproject/dependabot/npm_and_yarn/ws-5.2.3
Bump ws from 5.2.2 to 5.2.3
2021-08-12 14:03:56 -04:00
Sean Macfarlane
2f3fb59443 Merge pull request #28 from Telecominfraproject/dependabot/npm_and_yarn/path-parse-1.0.7
Bump path-parse from 1.0.6 to 1.0.7
2021-08-12 14:03:40 -04:00
Sean Macfarlane
ab5f1e111c Merge pull request #27 from Telecominfraproject/dependabot/npm_and_yarn/glob-parent-5.1.2
Bump glob-parent from 5.1.1 to 5.1.2
2021-08-12 14:03:27 -04:00
dependabot[bot]
6b344039f0 Bump ws from 5.2.2 to 5.2.3
Bumps [ws](https://github.com/websockets/ws) from 5.2.2 to 5.2.3.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/compare/5.2.2...5.2.3)

---
updated-dependencies:
- dependency-name: ws
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-12 17:55:17 +00:00
Sean Macfarlane
9c0322784b v1.2.0 2021-08-12 13:54:29 -04:00
dependabot[bot]
ff8bf406ad Bump path-parse from 1.0.6 to 1.0.7
Bumps [path-parse](https://github.com/jbgutierrez/path-parse) from 1.0.6 to 1.0.7.
- [Release notes](https://github.com/jbgutierrez/path-parse/releases)
- [Commits](https://github.com/jbgutierrez/path-parse/commits/v1.0.7)

---
updated-dependencies:
- dependency-name: path-parse
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-12 13:10:30 +00:00
dependabot[bot]
98301b986c Bump glob-parent from 5.1.1 to 5.1.2
Bumps [glob-parent](https://github.com/gulpjs/glob-parent) from 5.1.1 to 5.1.2.
- [Release notes](https://github.com/gulpjs/glob-parent/releases)
- [Changelog](https://github.com/gulpjs/glob-parent/blob/main/CHANGELOG.md)
- [Commits](https://github.com/gulpjs/glob-parent/compare/v5.1.1...v5.1.2)

---
updated-dependencies:
- dependency-name: glob-parent
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-11 19:10:44 +00:00
norm-traxler
2dc9ae048a Merge pull request #26 from Telecominfraproject/WIFI-2434
WIFI-2434: Update SDK master to use image tag 1.2.0-SNAPSHOT
2021-05-26 23:04:23 -04:00
Akshay Jagadish
e5ea6dd230 WIFI-2434: Update SDK master to use image tag 1.2.0-SNAPSHOT 2021-05-26 19:04:49 -04:00
Sean Macfarlane
8da48f870c Merge pull request #24 from Telecominfraproject/feature/WIFI-466
feature/WIFI-466: Updated manufacturer resolver for APs
2021-05-18 11:49:16 -04:00
Sean Macfarlane
0c83c42a5b Merge pull request #25 from Telecominfraproject/dependabot/npm_and_yarn/lodash-4.17.21
Bump lodash from 4.17.19 to 4.17.21
2021-05-10 18:26:17 -04:00
dependabot[bot]
23b7605821 Bump lodash from 4.17.19 to 4.17.21
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.19 to 4.17.21.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.19...4.17.21)

Signed-off-by: dependabot[bot] <support@github.com>
2021-05-10 22:25:03 +00:00
irtiza-h30
f3e433abe4 updated manufacturer resolver for APs 2021-05-10 16:10:57 -04:00
Sean Macfarlane
18e8efb2a0 Merge pull request #23 from Telecominfraproject/WIFI-2026
WIFI-2026 Change docker tags from 0.0.1-SNAPSHOT to 1.1.0-SNAPSHOT
2021-04-16 17:03:32 -04:00
Akshay Jagadish
334fae144e WIFI-2026 Change docker tags from 0.0.1-SNAPSHOT to 1.1.0-SNAPSHOT 2021-04-16 16:03:59 -04:00
Sean Macfarlane
9cfefd2c9a updated version 2021-03-23 10:54:19 -04:00
Sean Macfarlane
b663641d04 Merge pull request #22 from Telecominfraproject/bugfix/NETEXP-1335
bugfix/NETEXP-1335: Passpoint profile childProfileIds fix
2021-03-23 10:51:25 -04:00
irtiza-h30
689046f41d added null check 2021-03-22 19:43:44 -04:00
irtiza-h30
27d33b100e added osuSsidProfile in type Profile 2021-03-22 15:24:41 -04:00
irtiza-h30
d3667a26d1 cleanup associatedSsidProfiles query 2021-03-20 13:22:51 -04:00
irtiza-h30
b3f8f6bb56 cleanup associatedSsidProfiles query 2021-03-19 18:33:06 -04:00
irtiza-h30
5213719292 passpoint profile childProfileIds fix 2021-03-19 17:15:03 -04:00
Sean Macfarlane
dd7c24d0dc WIFI-1557 2021-03-19 00:41:05 -04:00
Sean Macfarlane
2426a4e7e2 fixed action 2021-03-04 13:45:32 -05:00
Sean Macfarlane
6fdb196aed release 1.0 2021-03-04 12:43:55 -05:00
Sean Macfarlane
6f5ab5c2f6 Merge pull request #21 from Telecominfraproject/hotfix/WIFI-1505
hotfix/WIFI-1505: Channel field for EquipmentStatus
2021-03-04 12:42:48 -05:00
irtiza-h30
4be5b3e42d Channel field for EquipmentStatus 2021-03-03 14:21:03 -05:00
Sean Macfarlane
6a2c2900ce Merge pull request #18 from Telecominfraproject/dependabot/npm_and_yarn/object-path-0.11.5
Bump object-path from 0.11.4 to 0.11.5
2021-02-28 16:41:44 -05:00
Sean Macfarlane
a6cc03f496 Merge pull request #19 from Telecominfraproject/hotfix/WIFI-1557
WIFI-1557
2021-02-17 13:46:49 -05:00
Sean Macfarlane
0a6523a48e WIFI-1557 2021-02-17 12:54:37 -05:00
Sean Macfarlane
2850f3b3c4 updated version 2021-01-20 12:22:07 -05:00
Sean Macfarlane
d9d4f474f7 fixed null mac error 2021-01-20 12:20:09 -05:00
Sean Macfarlane
e3b647ac22 typo 2020-12-14 21:06:57 -05:00
Sean Macfarlane
fd8212efe9 fixed baseMacAddress 2020-12-14 21:02:43 -05:00
Sean Macfarlane
f1dcd0e952 fixed Equipment schema 2020-12-14 20:43:22 -05:00
Sean Macfarlane
8c3afd4527 switched Role to Roles 2020-11-27 19:47:42 -05:00
Sean Macfarlane
1737221692 undo 2020-10-28 13:42:45 -04:00
Sean Macfarlane
f54ca7a535 added Profiles filter by type 2020-10-28 12:04:00 -04:00
dependabot[bot]
dbeb75a702 Bump object-path from 0.11.4 to 0.11.5
Bumps [object-path](https://github.com/mariocasciaro/object-path) from 0.11.4 to 0.11.5.
- [Release notes](https://github.com/mariocasciaro/object-path/releases)
- [Commits](https://github.com/mariocasciaro/object-path/commits)

Signed-off-by: dependabot[bot] <support@github.com>
2020-10-20 10:54:32 +00:00
Sean Macfarlane
82df3e7f4a Merge pull request #17 from Telecominfraproject/WIFI-846
WIFI 846
2020-10-13 12:53:04 -04:00
Sean Macfarlane
6cead31c0c Merge pull request #16 from Telecominfraproject/WIFI-845
WIFI: 845
2020-10-13 12:52:21 -04:00
AkshayJagadish-ne
6d4d212d8b Correction 2020-10-13 03:14:03 -04:00
AkshayJagadish-ne
e6cde6f6d4 WIFI: 846
A property file with component version and commit hash would be copied into the container
2020-10-13 02:53:53 -04:00
AkshayJagadish-ne
6f75486bfc WIFI: 845
Added Nightly build schedule (5am), and additional image with a timestamp tag to be pushed
2020-10-13 02:48:16 -04:00
Sean Macfarlane
1d099821a1 fixed OUI Upload 2020-10-08 18:16:11 -04:00
Sean Macfarlane
165f2b4d6b added firmware APIs 2020-10-02 17:12:09 -04:00
6 changed files with 685 additions and 180 deletions

View File

@@ -5,10 +5,7 @@ on:
# Publish `master` as Docker `latest` image.
branches:
- master
schedule:
# runs at cronjob at 5AM
- cron: '00 09 * * *'
- 'release/**'
# Publish `v1.2.3` tags as releases.
tags:
@@ -17,6 +14,10 @@ on:
# Run tests for any PRs.
pull_request:
schedule:
# runs nightly build at 5AM
- cron: '00 09 * * *'
env:
IMAGE_NAME: wlan-cloud-graphql-gw
DOCKER_REPO: tip-tip-wlan-cloud-docker-repo.jfrog.io
@@ -43,29 +44,46 @@ jobs:
needs: test
runs-on: ubuntu-latest
if: github.event_name == 'push'
if: github.event_name == 'push' || github.event_name == 'schedule'
steps:
- uses: actions/checkout@v2
with:
ssh-key: ${{ secrets.GH_AUTOMATION_KEY }}
- name: Adding property file with component version and commit hash
run: |
# Strip git ref prefix from version
VERSION=$(echo "${{ github.ref }}" | sed -e 's,.*/\(.*\),\1,')
# Strip "v" prefix from tag name
[[ "${{ github.ref }}" == "refs/tags/"* ]] && VERSION=$(echo $VERSION | sed -e 's/^v//')
# Create a release snapshot if we are on release branch
[[ "${{ github.ref }}" == "refs/heads/release/"* ]] && VERSION=$(echo "${{ github.ref }}" | sed -e 's/refs\/heads\/release\/[v]//' | awk '{print $1"-SNAPSHOT"}')
# Use Docker `latest` tag convention
[ "$VERSION" == "master" ] && VERSION=1.3.0-SNAPSHOT
TIMESTAMP=$(date +'%Y-%m-%d')
echo date=$TIMESTAMP > commit.properties
echo commitId=$GITHUB_SHA >> commit.properties
echo projectVersion=$VERSION>> commit.properties
- name: Build image
run: docker build . --file Dockerfile --tag image
- name: Set current date as env variable
run: echo "::set-env name=TIMESTAMP::$(date +'%Y-%m-%d')"
- name: Login to Docker Hub
env:
DOCKER_PASSWORD: ${{ secrets.REPO_PASSWORD }}
run: |
echo "${DOCKER_PASSWORD}" | docker login $DOCKER_REPO --username "build-pipeline" --password-stdin
echo "${DOCKER_PASSWORD}" | docker login $DOCKER_REPO --username "build-pipeline" --password-stdin
- name: Push image
run: |
IMAGE_ID=$DOCKER_REPO/$IMAGE_NAME
TIMESTAMP=$(date +'%Y-%m-%d')
# Change all uppercase to lowercase
IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]')
@@ -75,11 +93,15 @@ jobs:
# Strip "v" prefix from tag name
[[ "${{ github.ref }}" == "refs/tags/"* ]] && VERSION=$(echo $VERSION | sed -e 's/^v//')
# Create a release snapshot if we are on release branch
[[ "${{ github.ref }}" == "refs/heads/release/"* ]] && VERSION=$(echo "${{ github.ref }}" | sed -e 's/refs\/heads\/release\/[v]//' | awk '{print $1"-SNAPSHOT"}')
# Use Docker `latest` tag convention
[ "$VERSION" == "master" ] && VERSION=latest
[ "$VERSION" == "master" ] && VERSION=1.3.0-SNAPSHOT
echo IMAGE_ID=$IMAGE_ID
echo VERSION=$VERSION
echo TIMESTAMP=$TIMESTAMP
docker tag image $IMAGE_ID:$VERSION
docker push $IMAGE_ID:$VERSION

527
package-lock.json generated
View File

@@ -1,6 +1,6 @@
{
"name": "wlan-cloud-graphql-apollo",
"version": "0.3.0",
"version": "1.2.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
@@ -40,9 +40,26 @@
}
},
"@apollographql/graphql-playground-html": {
"version": "1.6.24",
"resolved": "https://registry.npmjs.org/@apollographql/graphql-playground-html/-/graphql-playground-html-1.6.24.tgz",
"integrity": "sha512-8GqG48m1XqyXh4mIZrtB5xOhUwSsh1WsrrsaZQOEYYql3YN9DEu9OOSg0ILzXHZo/h2Q74777YE4YzlArQzQEQ=="
"version": "1.6.27",
"resolved": "https://registry.npmjs.org/@apollographql/graphql-playground-html/-/graphql-playground-html-1.6.27.tgz",
"integrity": "sha512-tea2LweZvn6y6xFV11K0KC8ETjmm52mQrW+ezgB2O/aTQf8JGyFmMcRPFgUaQZeHbWdm8iisDC6EjOKsXu0nfw==",
"requires": {
"xss": "^1.0.8"
}
},
"@apollographql/graphql-upload-8-fork": {
"version": "8.1.3",
"resolved": "https://registry.npmjs.org/@apollographql/graphql-upload-8-fork/-/graphql-upload-8-fork-8.1.3.tgz",
"integrity": "sha512-ssOPUT7euLqDXcdVv3Qs4LoL4BPtfermW1IOouaqEmj36TpHYDmYDIbKoSQxikd9vtMumFnP87OybH7sC9fJ6g==",
"requires": {
"@types/express": "*",
"@types/fs-capacitor": "*",
"@types/koa": "*",
"busboy": "^0.3.1",
"fs-capacitor": "^2.0.4",
"http-errors": "^1.7.3",
"object-path": "^0.11.4"
}
},
"@babel/code-frame": {
"version": "7.8.3",
@@ -179,6 +196,11 @@
"to-fast-properties": "^2.0.0"
}
},
"@josephg/resolvable": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/@josephg/resolvable/-/resolvable-1.0.1.tgz",
"integrity": "sha512-CtzORUwWTTOTqfVtHaKRJ0I1kNQd1bpn3sUh8I3nJDVY+5/M/Oe1DnEWzPQvqq/xPIIkzzzIP7mfCoAjFRvDhg=="
},
"@protobufjs/aspromise": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz",
@@ -485,22 +507,30 @@
}
},
"apollo-cache-control": {
"version": "0.11.0",
"resolved": "https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.11.0.tgz",
"integrity": "sha512-dmRnQ9AXGw2SHahVGLzB/p4UW/taFBAJxifxubp8hqY5p9qdlSu4MPRq8zvV2ULMYf50rBtZyC4C+dZLqmHuHQ==",
"version": "0.14.0",
"resolved": "https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.14.0.tgz",
"integrity": "sha512-qN4BCq90egQrgNnTRMUHikLZZAprf3gbm8rC5Vwmc6ZdLolQ7bFsa769Hqi6Tq/lS31KLsXBLTOsRbfPHph12w==",
"requires": {
"apollo-server-env": "^2.4.4",
"apollo-server-plugin-base": "^0.9.0"
"apollo-server-env": "^3.1.0",
"apollo-server-plugin-base": "^0.13.0"
},
"dependencies": {
"apollo-server-env": {
"version": "2.4.4",
"resolved": "https://registry.npmjs.org/apollo-server-env/-/apollo-server-env-2.4.4.tgz",
"integrity": "sha512-c2oddDS3lwAl6QNCIKCLEzt/dF9M3/tjjYRVdxOVN20TidybI7rAbnT4QOzf4tORnGXtiznEAvr/Kc9ahhKADg==",
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/apollo-server-env/-/apollo-server-env-3.1.0.tgz",
"integrity": "sha512-iGdZgEOAuVop3vb0F2J3+kaBVi4caMoxefHosxmgzAbbSpvWehB8Y1QiSyyMeouYC38XNVk5wnZl+jdGSsWsIQ==",
"requires": {
"node-fetch": "^2.1.2",
"node-fetch": "^2.6.1",
"util.promisify": "^1.0.0"
}
},
"node-fetch": {
"version": "2.6.6",
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.6.tgz",
"integrity": "sha512-Z8/6vRlTUChSdIgMa51jxQ4lrw/Jy5SOW10ObaA47/RElsAN2c5Pn8bTgFGWn/ibwzXTE8qwr1Yzx28vsecXEA==",
"requires": {
"whatwg-url": "^5.0.0"
}
}
}
},
@@ -532,41 +562,6 @@
}
}
},
"apollo-engine-reporting": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/apollo-engine-reporting/-/apollo-engine-reporting-2.0.0.tgz",
"integrity": "sha512-FvNwORsh3nxEfvQqd2xbd468a0q/R3kYar/Bk6YQdBX5qwqUhqmOcOSxLFk8Zb77HpwHij5CPpPWJb53TU1zcA==",
"requires": {
"apollo-engine-reporting-protobuf": "^0.5.1",
"apollo-graphql": "^0.4.0",
"apollo-server-caching": "^0.5.1",
"apollo-server-env": "^2.4.4",
"apollo-server-errors": "^2.4.1",
"apollo-server-plugin-base": "^0.9.0",
"apollo-server-types": "^0.5.0",
"async-retry": "^1.2.1",
"uuid": "^8.0.0"
},
"dependencies": {
"apollo-server-env": {
"version": "2.4.4",
"resolved": "https://registry.npmjs.org/apollo-server-env/-/apollo-server-env-2.4.4.tgz",
"integrity": "sha512-c2oddDS3lwAl6QNCIKCLEzt/dF9M3/tjjYRVdxOVN20TidybI7rAbnT4QOzf4tORnGXtiznEAvr/Kc9ahhKADg==",
"requires": {
"node-fetch": "^2.1.2",
"util.promisify": "^1.0.0"
}
}
}
},
"apollo-engine-reporting-protobuf": {
"version": "0.5.1",
"resolved": "https://registry.npmjs.org/apollo-engine-reporting-protobuf/-/apollo-engine-reporting-protobuf-0.5.1.tgz",
"integrity": "sha512-TSfr9iAaInV8dhXkesdcmqsthRkVcJkzznmiM+1Ob/GScK7r6hBYCjVDt2613EHAg9SUzTOltIKlGD+N+GJRUw==",
"requires": {
"@apollo/protobufjs": "^1.0.3"
}
},
"apollo-env": {
"version": "0.6.5",
"resolved": "https://registry.npmjs.org/apollo-env/-/apollo-env-0.6.5.tgz",
@@ -579,12 +574,13 @@
}
},
"apollo-graphql": {
"version": "0.4.5",
"resolved": "https://registry.npmjs.org/apollo-graphql/-/apollo-graphql-0.4.5.tgz",
"integrity": "sha512-0qa7UOoq7E71kBYE7idi6mNQhHLVdMEDInWk6TNw3KsSWZE2/I68gARP84Mj+paFTO5NYuw1Dht66PVX76Cc2w==",
"version": "0.9.5",
"resolved": "https://registry.npmjs.org/apollo-graphql/-/apollo-graphql-0.9.5.tgz",
"integrity": "sha512-RGt5k2JeBqrmnwRM0VOgWFiGKlGJMfmiif/4JvdaEqhMJ+xqe/9cfDYzXfn33ke2eWixsAbjEbRfy8XbaN9nTw==",
"requires": {
"apollo-env": "^0.6.5",
"lodash.sortby": "^4.7.0"
"core-js-pure": "^3.10.2",
"lodash.sortby": "^4.7.0",
"sha.js": "^2.4.11"
}
},
"apollo-link": {
@@ -598,16 +594,116 @@
"zen-observable-ts": "^0.8.21"
}
},
"apollo-server": {
"version": "2.14.2",
"resolved": "https://registry.npmjs.org/apollo-server/-/apollo-server-2.14.2.tgz",
"integrity": "sha512-H+X3HprWGxV8DIhQyXzheMheKRxSlD9/lMuzIHyW/7VPspc7rX0xsHaFcTwQGcxLz18LhM+HtMBtvzi/KlRIbA==",
"apollo-reporting-protobuf": {
"version": "0.8.0",
"resolved": "https://registry.npmjs.org/apollo-reporting-protobuf/-/apollo-reporting-protobuf-0.8.0.tgz",
"integrity": "sha512-B3XmnkH6Y458iV6OsA7AhfwvTgeZnFq9nPVjbxmLKnvfkEl8hYADtz724uPa0WeBiD7DSFcnLtqg9yGmCkBohg==",
"requires": {
"apollo-server-core": "^2.14.2",
"apollo-server-express": "^2.14.2",
"@apollo/protobufjs": "1.2.2"
},
"dependencies": {
"@apollo/protobufjs": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/@apollo/protobufjs/-/protobufjs-1.2.2.tgz",
"integrity": "sha512-vF+zxhPiLtkwxONs6YanSt1EpwpGilThpneExUN5K3tCymuxNnVq2yojTvnpRjv2QfsEIt/n7ozPIIzBLwGIDQ==",
"requires": {
"@protobufjs/aspromise": "^1.1.2",
"@protobufjs/base64": "^1.1.2",
"@protobufjs/codegen": "^2.0.4",
"@protobufjs/eventemitter": "^1.1.0",
"@protobufjs/fetch": "^1.1.0",
"@protobufjs/float": "^1.0.2",
"@protobufjs/inquire": "^1.1.0",
"@protobufjs/path": "^1.1.2",
"@protobufjs/pool": "^1.1.0",
"@protobufjs/utf8": "^1.1.0",
"@types/long": "^4.0.0",
"@types/node": "^10.1.0",
"long": "^4.0.0"
}
},
"@types/node": {
"version": "10.17.60",
"resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz",
"integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw=="
}
}
},
"apollo-server": {
"version": "2.25.3",
"resolved": "https://registry.npmjs.org/apollo-server/-/apollo-server-2.25.3.tgz",
"integrity": "sha512-+eUY2//DLkU7RkJLn6CTl1P89/ZMHuUQnWqv8La2iJ2hLT7Me+nMx+hgHl3LqlT/qDstQ8qA45T85FuCayplmQ==",
"requires": {
"apollo-server-core": "^2.25.3",
"apollo-server-express": "^2.25.3",
"express": "^4.0.0",
"graphql-subscriptions": "^1.0.0",
"graphql-tools": "^4.0.0"
"graphql-tools": "^4.0.8",
"stoppable": "^1.1.0"
},
"dependencies": {
"@types/cors": {
"version": "2.8.10",
"resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.10.tgz",
"integrity": "sha512-C7srjHiVG3Ey1nR6d511dtDkCEjxuN9W1HWAEjGq8kpcwmNM6JJkpC0xvabM7BXTG2wDq8Eu33iH9aQKa7IvLQ=="
},
"@types/express": {
"version": "4.17.13",
"resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz",
"integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==",
"requires": {
"@types/body-parser": "*",
"@types/express-serve-static-core": "^4.17.18",
"@types/qs": "*",
"@types/serve-static": "*"
}
},
"@types/express-serve-static-core": {
"version": "4.17.24",
"resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.24.tgz",
"integrity": "sha512-3UJuW+Qxhzwjq3xhwXm2onQcFHn76frIYVbTu+kn24LFxI+dEhdfISDFovPB8VpEgW8oQCTpRuCe+0zJxB7NEA==",
"requires": {
"@types/node": "*",
"@types/qs": "*",
"@types/range-parser": "*"
}
},
"apollo-server-express": {
"version": "2.25.3",
"resolved": "https://registry.npmjs.org/apollo-server-express/-/apollo-server-express-2.25.3.tgz",
"integrity": "sha512-tTFYn0oKH2qqLwVj7Ez2+MiKleXACODiGh5IxsB7VuYCPMAi9Yl8iUSlwTjQUvgCWfReZjnf0vFL2k5YhDlrtQ==",
"requires": {
"@apollographql/graphql-playground-html": "1.6.27",
"@types/accepts": "^1.3.5",
"@types/body-parser": "1.19.0",
"@types/cors": "2.8.10",
"@types/express": "^4.17.12",
"@types/express-serve-static-core": "^4.17.21",
"accepts": "^1.3.5",
"apollo-server-core": "^2.25.3",
"apollo-server-types": "^0.9.0",
"body-parser": "^1.18.3",
"cors": "^2.8.5",
"express": "^4.17.1",
"graphql-subscriptions": "^1.0.0",
"graphql-tools": "^4.0.8",
"parseurl": "^1.3.2",
"subscriptions-transport-ws": "^0.9.19",
"type-is": "^1.6.16"
}
},
"subscriptions-transport-ws": {
"version": "0.9.19",
"resolved": "https://registry.npmjs.org/subscriptions-transport-ws/-/subscriptions-transport-ws-0.9.19.tgz",
"integrity": "sha512-dxdemxFFB0ppCLg10FTtRqH/31FNRL1y1BQv8209MK5I4CwALb7iihQg+7p65lFcIl8MHatINWBLOqpgU4Kyyw==",
"requires": {
"backo2": "^1.0.2",
"eventemitter3": "^3.1.0",
"iterall": "^1.2.1",
"symbol-observable": "^1.0.4",
"ws": "^5.2.0 || ^6.0.0 || ^7.0.0"
}
}
}
},
"apollo-server-caching": {
@@ -619,51 +715,113 @@
}
},
"apollo-server-core": {
"version": "2.14.2",
"resolved": "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-2.14.2.tgz",
"integrity": "sha512-8G6Aoz+k+ecuQco1KNLFbMrxhe/8uR4AOaOYEvT/N5m/6lrkPYzvBAxbpRIub5AxEwpBPcIrI452rR3PD9DItA==",
"version": "2.25.3",
"resolved": "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-2.25.3.tgz",
"integrity": "sha512-Midow3uZoJ9TjFNeCNSiWElTVZlvmB7G7tG6PPoxIR9Px90/v16Q6EzunDIO0rTJHRC3+yCwZkwtf8w2AcP0sA==",
"requires": {
"@apollographql/apollo-tools": "^0.4.3",
"@apollographql/graphql-playground-html": "1.6.24",
"@types/graphql-upload": "^8.0.0",
"@apollographql/apollo-tools": "^0.5.0",
"@apollographql/graphql-playground-html": "1.6.27",
"@apollographql/graphql-upload-8-fork": "^8.1.3",
"@josephg/resolvable": "^1.0.0",
"@types/ws": "^7.0.0",
"apollo-cache-control": "^0.11.0",
"apollo-datasource": "^0.7.1",
"apollo-engine-reporting": "^2.0.0",
"apollo-server-caching": "^0.5.1",
"apollo-server-env": "^2.4.4",
"apollo-server-errors": "^2.4.1",
"apollo-server-plugin-base": "^0.9.0",
"apollo-server-types": "^0.5.0",
"apollo-tracing": "^0.11.0",
"apollo-cache-control": "^0.14.0",
"apollo-datasource": "^0.9.0",
"apollo-graphql": "^0.9.0",
"apollo-reporting-protobuf": "^0.8.0",
"apollo-server-caching": "^0.7.0",
"apollo-server-env": "^3.1.0",
"apollo-server-errors": "^2.5.0",
"apollo-server-plugin-base": "^0.13.0",
"apollo-server-types": "^0.9.0",
"apollo-tracing": "^0.15.0",
"async-retry": "^1.2.1",
"fast-json-stable-stringify": "^2.0.0",
"graphql-extensions": "^0.12.2",
"graphql-tag": "^2.9.2",
"graphql-tools": "^4.0.0",
"graphql-upload": "^8.0.2",
"graphql-extensions": "^0.15.0",
"graphql-tag": "^2.11.0",
"graphql-tools": "^4.0.8",
"loglevel": "^1.6.7",
"lru-cache": "^6.0.0",
"sha.js": "^2.4.11",
"subscriptions-transport-ws": "^0.9.11",
"ws": "^6.0.0"
"subscriptions-transport-ws": "^0.9.19",
"uuid": "^8.0.0"
},
"dependencies": {
"@apollographql/apollo-tools": {
"version": "0.5.2",
"resolved": "https://registry.npmjs.org/@apollographql/apollo-tools/-/apollo-tools-0.5.2.tgz",
"integrity": "sha512-KxZiw0Us3k1d0YkJDhOpVH5rJ+mBfjXcgoRoCcslbgirjgLotKMzOcx4PZ7YTEvvEROmvG7X3Aon41GvMmyGsw=="
},
"apollo-datasource": {
"version": "0.7.1",
"resolved": "https://registry.npmjs.org/apollo-datasource/-/apollo-datasource-0.7.1.tgz",
"integrity": "sha512-h++/jQAY7GA+4TBM+7ezvctFmmGNLrAPf51KsagZj+NkT9qvxp585rdsuatynVbSl59toPK2EuVmc6ilmQHf+g==",
"version": "0.9.0",
"resolved": "https://registry.npmjs.org/apollo-datasource/-/apollo-datasource-0.9.0.tgz",
"integrity": "sha512-y8H99NExU1Sk4TvcaUxTdzfq2SZo6uSj5dyh75XSQvbpH6gdAXIW9MaBcvlNC7n0cVPsidHmOcHOWxJ/pTXGjA==",
"requires": {
"apollo-server-caching": "^0.5.1",
"apollo-server-env": "^2.4.4"
"apollo-server-caching": "^0.7.0",
"apollo-server-env": "^3.1.0"
}
},
"apollo-server-caching": {
"version": "0.7.0",
"resolved": "https://registry.npmjs.org/apollo-server-caching/-/apollo-server-caching-0.7.0.tgz",
"integrity": "sha512-MsVCuf/2FxuTFVhGLK13B+TZH9tBd2qkyoXKKILIiGcZ5CDUEBO14vIV63aNkMkS1xxvK2U4wBcuuNj/VH2Mkw==",
"requires": {
"lru-cache": "^6.0.0"
}
},
"apollo-server-env": {
"version": "2.4.4",
"resolved": "https://registry.npmjs.org/apollo-server-env/-/apollo-server-env-2.4.4.tgz",
"integrity": "sha512-c2oddDS3lwAl6QNCIKCLEzt/dF9M3/tjjYRVdxOVN20TidybI7rAbnT4QOzf4tORnGXtiznEAvr/Kc9ahhKADg==",
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/apollo-server-env/-/apollo-server-env-3.1.0.tgz",
"integrity": "sha512-iGdZgEOAuVop3vb0F2J3+kaBVi4caMoxefHosxmgzAbbSpvWehB8Y1QiSyyMeouYC38XNVk5wnZl+jdGSsWsIQ==",
"requires": {
"node-fetch": "^2.1.2",
"node-fetch": "^2.6.1",
"util.promisify": "^1.0.0"
}
},
"graphql-tag": {
"version": "2.12.6",
"resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.6.tgz",
"integrity": "sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==",
"requires": {
"tslib": "^2.1.0"
}
},
"lru-cache": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
"integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
"requires": {
"yallist": "^4.0.0"
}
},
"node-fetch": {
"version": "2.6.6",
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.6.tgz",
"integrity": "sha512-Z8/6vRlTUChSdIgMa51jxQ4lrw/Jy5SOW10ObaA47/RElsAN2c5Pn8bTgFGWn/ibwzXTE8qwr1Yzx28vsecXEA==",
"requires": {
"whatwg-url": "^5.0.0"
}
},
"subscriptions-transport-ws": {
"version": "0.9.19",
"resolved": "https://registry.npmjs.org/subscriptions-transport-ws/-/subscriptions-transport-ws-0.9.19.tgz",
"integrity": "sha512-dxdemxFFB0ppCLg10FTtRqH/31FNRL1y1BQv8209MK5I4CwALb7iihQg+7p65lFcIl8MHatINWBLOqpgU4Kyyw==",
"requires": {
"backo2": "^1.0.2",
"eventemitter3": "^3.1.0",
"iterall": "^1.2.1",
"symbol-observable": "^1.0.4",
"ws": "^5.2.0 || ^6.0.0 || ^7.0.0"
}
},
"tslib": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz",
"integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw=="
},
"yallist": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
}
}
},
@@ -677,9 +835,9 @@
}
},
"apollo-server-errors": {
"version": "2.4.1",
"resolved": "https://registry.npmjs.org/apollo-server-errors/-/apollo-server-errors-2.4.1.tgz",
"integrity": "sha512-7oEd6pUxqyWYUbQ9TA8tM0NU/3aGtXSEibo6+txUkuHe7QaxfZ2wHRp+pfT1LC1K3RXYjKj61/C2xEO19s3Kdg=="
"version": "2.5.0",
"resolved": "https://registry.npmjs.org/apollo-server-errors/-/apollo-server-errors-2.5.0.tgz",
"integrity": "sha512-lO5oTjgiC3vlVg2RKr3RiXIIQ5pGXBFxYGGUkKDhTud3jMIhs+gel8L8zsEjKaKxkjHhCQAA/bcEfYiKkGQIvA=="
},
"apollo-server-express": {
"version": "2.16.1",
@@ -865,51 +1023,88 @@
}
},
"apollo-server-plugin-base": {
"version": "0.9.0",
"resolved": "https://registry.npmjs.org/apollo-server-plugin-base/-/apollo-server-plugin-base-0.9.0.tgz",
"integrity": "sha512-LWcPrsy2+xqwlNseh/QaGa/MPNopS8c4qGgh0g0cAn0lZBRrJ9Yab7dq+iQ6vdUBwIhUWYN6s9dwUWCZw2SL8g==",
"version": "0.13.0",
"resolved": "https://registry.npmjs.org/apollo-server-plugin-base/-/apollo-server-plugin-base-0.13.0.tgz",
"integrity": "sha512-L3TMmq2YE6BU6I4Tmgygmd0W55L+6XfD9137k+cWEBFu50vRY4Re+d+fL5WuPkk5xSPKd/PIaqzidu5V/zz8Kg==",
"requires": {
"apollo-server-types": "^0.5.0"
"apollo-server-types": "^0.9.0"
}
},
"apollo-server-types": {
"version": "0.5.0",
"resolved": "https://registry.npmjs.org/apollo-server-types/-/apollo-server-types-0.5.0.tgz",
"integrity": "sha512-zhtsqqqfdeoJQAfc41Sy6WnnBVxKNgZ34BKXf/Q+kXmw7rbZ/B5SG3SJMvj1iFsbzZxILmWdUsE9aD20lEr0bg==",
"version": "0.9.0",
"resolved": "https://registry.npmjs.org/apollo-server-types/-/apollo-server-types-0.9.0.tgz",
"integrity": "sha512-qk9tg4Imwpk732JJHBkhW0jzfG0nFsLqK2DY6UhvJf7jLnRePYsPxWfPiNkxni27pLE2tiNlCwoDFSeWqpZyBg==",
"requires": {
"apollo-engine-reporting-protobuf": "^0.5.1",
"apollo-server-caching": "^0.5.1",
"apollo-server-env": "^2.4.4"
"apollo-reporting-protobuf": "^0.8.0",
"apollo-server-caching": "^0.7.0",
"apollo-server-env": "^3.1.0"
},
"dependencies": {
"apollo-server-env": {
"version": "2.4.4",
"resolved": "https://registry.npmjs.org/apollo-server-env/-/apollo-server-env-2.4.4.tgz",
"integrity": "sha512-c2oddDS3lwAl6QNCIKCLEzt/dF9M3/tjjYRVdxOVN20TidybI7rAbnT4QOzf4tORnGXtiznEAvr/Kc9ahhKADg==",
"apollo-server-caching": {
"version": "0.7.0",
"resolved": "https://registry.npmjs.org/apollo-server-caching/-/apollo-server-caching-0.7.0.tgz",
"integrity": "sha512-MsVCuf/2FxuTFVhGLK13B+TZH9tBd2qkyoXKKILIiGcZ5CDUEBO14vIV63aNkMkS1xxvK2U4wBcuuNj/VH2Mkw==",
"requires": {
"node-fetch": "^2.1.2",
"lru-cache": "^6.0.0"
}
},
"apollo-server-env": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/apollo-server-env/-/apollo-server-env-3.1.0.tgz",
"integrity": "sha512-iGdZgEOAuVop3vb0F2J3+kaBVi4caMoxefHosxmgzAbbSpvWehB8Y1QiSyyMeouYC38XNVk5wnZl+jdGSsWsIQ==",
"requires": {
"node-fetch": "^2.6.1",
"util.promisify": "^1.0.0"
}
},
"lru-cache": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
"integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
"requires": {
"yallist": "^4.0.0"
}
},
"node-fetch": {
"version": "2.6.6",
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.6.tgz",
"integrity": "sha512-Z8/6vRlTUChSdIgMa51jxQ4lrw/Jy5SOW10ObaA47/RElsAN2c5Pn8bTgFGWn/ibwzXTE8qwr1Yzx28vsecXEA==",
"requires": {
"whatwg-url": "^5.0.0"
}
},
"yallist": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
}
}
},
"apollo-tracing": {
"version": "0.11.0",
"resolved": "https://registry.npmjs.org/apollo-tracing/-/apollo-tracing-0.11.0.tgz",
"integrity": "sha512-I9IFb/8lkBW8ZwOAi4LEojfT7dMfUSkpnV8LHQI8Rcj0HtzL9HObQ3woBmzyGHdGHLFuD/6/VHyFD67SesSrJg==",
"version": "0.15.0",
"resolved": "https://registry.npmjs.org/apollo-tracing/-/apollo-tracing-0.15.0.tgz",
"integrity": "sha512-UP0fztFvaZPHDhIB/J+qGuy6hWO4If069MGC98qVs0I8FICIGu4/8ykpX3X3K6RtaQ56EDAWKykCxFv4ScxMeA==",
"requires": {
"apollo-server-env": "^2.4.4",
"apollo-server-plugin-base": "^0.9.0"
"apollo-server-env": "^3.1.0",
"apollo-server-plugin-base": "^0.13.0"
},
"dependencies": {
"apollo-server-env": {
"version": "2.4.4",
"resolved": "https://registry.npmjs.org/apollo-server-env/-/apollo-server-env-2.4.4.tgz",
"integrity": "sha512-c2oddDS3lwAl6QNCIKCLEzt/dF9M3/tjjYRVdxOVN20TidybI7rAbnT4QOzf4tORnGXtiznEAvr/Kc9ahhKADg==",
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/apollo-server-env/-/apollo-server-env-3.1.0.tgz",
"integrity": "sha512-iGdZgEOAuVop3vb0F2J3+kaBVi4caMoxefHosxmgzAbbSpvWehB8Y1QiSyyMeouYC38XNVk5wnZl+jdGSsWsIQ==",
"requires": {
"node-fetch": "^2.1.2",
"node-fetch": "^2.6.1",
"util.promisify": "^1.0.0"
}
},
"node-fetch": {
"version": "2.6.6",
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.6.tgz",
"integrity": "sha512-Z8/6vRlTUChSdIgMa51jxQ4lrw/Jy5SOW10ObaA47/RElsAN2c5Pn8bTgFGWn/ibwzXTE8qwr1Yzx28vsecXEA==",
"requires": {
"whatwg-url": "^5.0.0"
}
}
}
},
@@ -1159,6 +1354,11 @@
"resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.5.tgz",
"integrity": "sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA=="
},
"core-js-pure": {
"version": "3.19.1",
"resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.19.1.tgz",
"integrity": "sha512-Q0Knr8Es84vtv62ei6/6jXH/7izKmOrtrxH9WJTHLCMAVeU+8TF8z8Nr08CsH4Ot0oJKzBzJJL9SJBYIv7WlfQ=="
},
"cors": {
"version": "2.8.5",
"resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz",
@@ -1778,9 +1978,9 @@
}
},
"glob-parent": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz",
"integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==",
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
"integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
"dev": true,
"requires": {
"is-glob": "^4.0.1"
@@ -1817,23 +2017,36 @@
}
},
"graphql-extensions": {
"version": "0.12.2",
"resolved": "https://registry.npmjs.org/graphql-extensions/-/graphql-extensions-0.12.2.tgz",
"integrity": "sha512-vFaZua5aLiCOOzxfY5qzHZ6S52BCqW7VVOwzvV52Wb5edRm3dn6u+1MR9yYyEqUHSf8LvdhEojYlOkKiaQ4ghA==",
"version": "0.15.0",
"resolved": "https://registry.npmjs.org/graphql-extensions/-/graphql-extensions-0.15.0.tgz",
"integrity": "sha512-bVddVO8YFJPwuACn+3pgmrEg6I8iBuYLuwvxiE+lcQQ7POotVZxm2rgGw0PvVYmWWf3DT7nTVDZ5ROh/ALp8mA==",
"requires": {
"@apollographql/apollo-tools": "^0.4.3",
"apollo-server-env": "^2.4.4",
"apollo-server-types": "^0.5.0"
"@apollographql/apollo-tools": "^0.5.0",
"apollo-server-env": "^3.1.0",
"apollo-server-types": "^0.9.0"
},
"dependencies": {
"@apollographql/apollo-tools": {
"version": "0.5.2",
"resolved": "https://registry.npmjs.org/@apollographql/apollo-tools/-/apollo-tools-0.5.2.tgz",
"integrity": "sha512-KxZiw0Us3k1d0YkJDhOpVH5rJ+mBfjXcgoRoCcslbgirjgLotKMzOcx4PZ7YTEvvEROmvG7X3Aon41GvMmyGsw=="
},
"apollo-server-env": {
"version": "2.4.4",
"resolved": "https://registry.npmjs.org/apollo-server-env/-/apollo-server-env-2.4.4.tgz",
"integrity": "sha512-c2oddDS3lwAl6QNCIKCLEzt/dF9M3/tjjYRVdxOVN20TidybI7rAbnT4QOzf4tORnGXtiznEAvr/Kc9ahhKADg==",
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/apollo-server-env/-/apollo-server-env-3.1.0.tgz",
"integrity": "sha512-iGdZgEOAuVop3vb0F2J3+kaBVi4caMoxefHosxmgzAbbSpvWehB8Y1QiSyyMeouYC38XNVk5wnZl+jdGSsWsIQ==",
"requires": {
"node-fetch": "^2.1.2",
"node-fetch": "^2.6.1",
"util.promisify": "^1.0.0"
}
},
"node-fetch": {
"version": "2.6.6",
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.6.tgz",
"integrity": "sha512-Z8/6vRlTUChSdIgMa51jxQ4lrw/Jy5SOW10ObaA47/RElsAN2c5Pn8bTgFGWn/ibwzXTE8qwr1Yzx28vsecXEA==",
"requires": {
"whatwg-url": "^5.0.0"
}
}
}
},
@@ -2181,9 +2394,9 @@
}
},
"lodash": {
"version": "4.17.19",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz",
"integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==",
"version": "4.17.21",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
"dev": true
},
"lodash.sortby": {
@@ -2321,9 +2534,9 @@
"integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA=="
},
"object-path": {
"version": "0.11.4",
"resolved": "https://registry.npmjs.org/object-path/-/object-path-0.11.4.tgz",
"integrity": "sha1-NwrnUvvzfePqcKhhwju6iRVpGUk="
"version": "0.11.8",
"resolved": "https://registry.npmjs.org/object-path/-/object-path-0.11.8.tgz",
"integrity": "sha512-YJjNZrlXJFM42wTBn6zgOJVar9KFJvzx6sTWDte8sWZF//cnjl0BxHNpfZx+ZffXX63A9q0b1zsFiBX4g4X5KA=="
},
"object.assign": {
"version": "4.1.0",
@@ -2430,9 +2643,9 @@
"dev": true
},
"path-parse": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
"integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
"integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
"dev": true
},
"path-to-regexp": {
@@ -2710,6 +2923,11 @@
"resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
"integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
},
"stoppable": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/stoppable/-/stoppable-1.1.0.tgz",
"integrity": "sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw=="
},
"streamsearch": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz",
@@ -2791,9 +3009,9 @@
},
"dependencies": {
"ws": {
"version": "5.2.2",
"resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz",
"integrity": "sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==",
"version": "5.2.3",
"resolved": "https://registry.npmjs.org/ws/-/ws-5.2.3.tgz",
"integrity": "sha512-jZArVERrMsKUatIdnLzqvcfydI85dvd/Fp1u/VOpfdDWQ4c9qWXe+VIeAbQ5FrDwciAkr+lzofXLz3Kuf26AOA==",
"requires": {
"async-limiter": "~1.0.0"
}
@@ -2883,6 +3101,11 @@
"resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",
"integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw=="
},
"tr46": {
"version": "0.0.3",
"resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
"integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o="
},
"ts-invariant": {
"version": "0.4.4",
"resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.4.4.tgz",
@@ -2966,12 +3189,26 @@
"resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
"integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
},
"webidl-conversions": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
"integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE="
},
"whatwg-fetch": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz",
"integrity": "sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng==",
"dev": true
},
"whatwg-url": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
"integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=",
"requires": {
"tr46": "~0.0.3",
"webidl-conversions": "^3.0.0"
}
},
"which": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
@@ -3003,9 +3240,9 @@
}
},
"ws": {
"version": "6.2.1",
"resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz",
"integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==",
"version": "6.2.2",
"resolved": "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz",
"integrity": "sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==",
"requires": {
"async-limiter": "~1.0.0"
}

View File

@@ -1,11 +1,11 @@
{
"name": "wlan-cloud-graphql-apollo",
"version": "0.3.0",
"version": "1.2.0",
"description": "",
"main": "index.js",
"dependencies": {
"apollo-datasource-rest": "^0.8.1",
"apollo-server": "^2.14.2",
"apollo-server": "^2.25.3",
"apollo-server-express": "^2.16.1",
"body-parser": "^1.19.0",
"dataloader": "^2.0.0",

View File

@@ -169,6 +169,17 @@ export class API extends RESTDataSource {
`portal/equipmentGateway/requestFirmwareUpdate?equipmentId=${equipmentId}&firmwareVersionId=${firmwareVersionId}`
);
}
async requestEquipmentSwitchBank(equipmentId) {
return this.post(
`portal/equipmentGateway/requestApSwitchSoftwareBank?equipmentId=${equipmentId}`
);
}
async requestEquipmentReboot(equipmentId) {
return this.post(`portal/equipmentGateway/requestApReboot?equipmentId=${equipmentId}`);
}
async requestEquipmentFactoryReset(equipmentId) {
return this.post(`portal/equipmentGateway/requestApFactoryReset?equipmentId=${equipmentId}`);
}
async getEquipmentStatus(customerId, equipmentIds, statusDataTypes) {
return this.get('portal/status/forEquipmentWithFilter', {
@@ -193,9 +204,56 @@ export class API extends RESTDataSource {
}
async createProfile(profile) {
return this.post('portal/profile', {
const newProfile = await this.post('portal/profile', {
...profile,
});
if (profile.profileType === 'ssid') {
const {
details: { passpointProfileId, passpointConfig },
} = profile;
if (passpointConfig === 'accessSSID') {
this.get('portal/profile', {
profileId: passpointProfileId.value,
}).then((profile) => {
this.put('portal/profile', {
...profile,
details: {
...profile.details,
associatedAccessSsidProfileIds: profile.details.associatedAccessSsidProfileIds
? [...profile.details.associatedAccessSsidProfileIds, newProfile.id]
: [newProfile.id],
},
});
});
} else if (passpointConfig === 'osuSSID') {
this.get('portal/profile', {
profileId: passpointProfileId.value,
}).then((profile) => {
if (profile.details.osuSsidProfileId) {
this.get('portal/profile', {
profileId: profile.details.osuSsidProfileId,
}).then((ssidProfile) => {
this.put('portal/profile', {
...ssidProfile,
childProfileIds: ssidProfile.childProfileIds.filter((i) => i !== profile.id),
});
});
}
this.put('portal/profile', {
...profile,
details: {
...profile.details,
osuSsidProfileId: newProfile.id,
},
});
});
}
}
return newProfile;
}
async getProfile(profileId) {
return this.get('portal/profile', {
@@ -203,27 +261,142 @@ export class API extends RESTDataSource {
});
}
async updateProfile(profile) {
if (profile.profileType === 'ssid') {
const {
id,
details: { passpointProfileId = {}, passpointConfig },
} = profile;
const oldProfile = await this.get('portal/profile', { profileId: id });
if (oldProfile.childProfileIds.length) {
const childProfiles =
(await this.get('portal/profile/inSet', {
profileIdSet: oldProfile.childProfileIds,
})) || [];
const passpointProfile = childProfiles.find(
(profile) => profile.profileType === 'passpoint'
);
if (passpointProfile) {
if (
!passpointProfileId.value ||
passpointProfile.id !== parseInt(passpointProfileId.value, 10)
) {
this.put('portal/profile', {
...passpointProfile,
details: {
...passpointProfile.details,
...(passpointProfile.details.osuSsidProfileId === parseInt(id, 10) && {
osuSsidProfileId: null,
}),
...(passpointProfile.details.associatedAccessSsidProfileIds && {
associatedAccessSsidProfileIds: passpointProfile.details.associatedAccessSsidProfileIds.filter(
(i) => i !== parseInt(id, 10)
),
}),
},
});
}
}
}
if (passpointProfileId.value) {
if (passpointConfig === 'accessSSID') {
this.get('portal/profile', {
profileId: passpointProfileId.value,
}).then((profile) => {
this.put('portal/profile', {
...profile,
details: {
...profile.details,
...(profile.details.osuSsidProfileId === parseInt(id, 10) && {
osuSsidProfileId: null,
}),
associatedAccessSsidProfileIds: profile.details.associatedAccessSsidProfileIds
? [...profile.details.associatedAccessSsidProfileIds, id]
: [id],
},
});
});
} else if (passpointConfig === 'osuSSID') {
this.get('portal/profile', {
profileId: passpointProfileId.value,
}).then((profile) => {
if (profile.details.osuSsidProfileId) {
this.get('portal/profile', {
profileId: profile.details.osuSsidProfileId,
}).then((ssidProfile) => {
this.put('portal/profile', {
...ssidProfile,
childProfileIds: ssidProfile.childProfileIds.filter((i) => i !== profile.id),
});
});
}
this.put('portal/profile', {
...profile,
details: {
...profile.details,
...(profile.details.associatedAccessSsidProfileIds && {
associatedAccessSsidProfileIds: profile.details.associatedAccessSsidProfileIds.filter(
(i) => i !== parseInt(id, 10)
),
}),
osuSsidProfileId: id,
},
});
});
}
}
}
return this.put('portal/profile', {
...profile,
});
}
async deleteProfile(profileId) {
return this.delete('portal/profile', {
const deletedProfile = await this.delete('portal/profile', {
profileId,
});
}
async getAllProfiles({ customerId, cursor, limit, type, context }) {
const result = await this.get('portal/profile/forCustomer', {
customerId,
paginationContext: buildPaginationContext(cursor, limit, context),
});
if (type && result.items) {
result.items = result.items.filter((i) => i.profileType === type);
return result;
if (deletedProfile.profileType === 'ssid') {
if (deletedProfile.childProfileIds.length) {
const childProfiles =
(await this.get('portal/profile/inSet', {
profileIdSet: deletedProfile.childProfileIds,
})) || [];
const passpointProfile = childProfiles.find(
(profile) => profile.profileType === 'passpoint'
);
if (passpointProfile) {
this.put('portal/profile', {
...passpointProfile,
details: {
...passpointProfile.details,
...(passpointProfile.details.osuSsidProfileId === parseInt(profileId, 10) && {
osuSsidProfileId: null,
}),
...(passpointProfile.details.associatedAccessSsidProfileIds && {
associatedAccessSsidProfileIds: passpointProfile.details.associatedAccessSsidProfileIds.filter(
(i) => i !== parseInt(profileId, 10)
),
}),
},
});
}
}
}
return result;
return deletedProfile;
}
async getAllProfiles({ customerId, cursor, limit, type, context }) {
return this.get('portal/profile/forCustomer', {
customerId,
...(type && { profileType: type }),
paginationContext: buildPaginationContext(cursor, limit, context),
});
}
async getProfilesById(profileIdSet) {
return this.get('portal/profile/inSet', {

View File

@@ -155,6 +155,10 @@ const resolvers = {
) => {
return dataSources.api.getAllStatus(customerId, statusDataTypes, cursor, limit, context);
},
getApiUrl: async (_, {}, { dataSources }) => {
return dataSources.api.baseURL;
},
},
Mutation: {
authenticateUser: async (_, { email, password }, { dataSources }) => {
@@ -164,19 +168,19 @@ const resolvers = {
return dataSources.api.updateToken(refreshToken);
},
createUser: async (_, { username, password, role, customerId }, { dataSources }) => {
return dataSources.api.createUser({ username, password, role, customerId });
createUser: async (_, { username, password, roles, customerId }, { dataSources }) => {
return dataSources.api.createUser({ username, password, roles, customerId });
},
updateUser: async (
_,
{ id, username, password, role, customerId, lastModifiedTimestamp },
{ id, username, password, roles, customerId, lastModifiedTimestamp },
{ dataSources }
) => {
return dataSources.api.updateUser({
id,
username,
password,
role,
roles,
customerId,
lastModifiedTimestamp,
});
@@ -234,6 +238,7 @@ const resolvers = {
profileId,
locationId,
name,
baseMacAddress,
latitude,
longitude,
serial,
@@ -250,6 +255,7 @@ const resolvers = {
profileId,
locationId,
name,
baseMacAddress: { addressAsString: baseMacAddress },
latitude,
longitude,
serial,
@@ -266,6 +272,15 @@ const resolvers = {
updateEquipmentFirmware: async (_, { equipmentId, firmwareVersionId }, { dataSources }) => {
return dataSources.api.updateEquipmentFirmware(equipmentId, firmwareVersionId);
},
requestEquipmentSwitchBank: async (_, { equipmentId }, { dataSources }) => {
return dataSources.api.requestEquipmentSwitchBank(equipmentId);
},
requestEquipmentReboot: async (_, { equipmentId }, { dataSources }) => {
return dataSources.api.requestEquipmentReboot(equipmentId);
},
requestEquipmentFactoryReset: async (_, { equipmentId }, { dataSources }) => {
return dataSources.api.requestEquipmentFactoryReset(equipmentId);
},
createProfile: async (
_,
@@ -365,6 +380,31 @@ const resolvers = {
},
},
Equipment: {
baseMacAddress: ({ baseMacAddress }) => baseMacAddress && baseMacAddress.addressAsString,
manufacturer: async ({ customerId, id, baseMacAddress }, args, { dataSources }) => {
const manufacturerData = await dataSources.api.getEquipmentStatus(
customerId,
[id],
['EQUIPMENT_MANUFACTURER_DATA']
);
if (
manufacturerData &&
manufacturerData[0] &&
manufacturerData[0].details &&
manufacturerData[0].details.manufacturerName
) {
return manufacturerData[0].details.manufacturerName;
}
return (
baseMacAddress &&
baseMacAddress.addressAsString &&
dataSources.api.getOuiLookup(
baseMacAddress.addressAsString.replace(/[:-]/g, '').substring(0, 6)
)
);
},
profile: ({ profileId }, args, { dataSources }) => {
return dataSources.api.getProfile(profileId);
},
@@ -372,7 +412,14 @@ const resolvers = {
return dataSources.api.getEquipmentStatus(
customerId,
[id],
['PROTOCOL', 'OS_PERFORMANCE', 'RADIO_UTILIZATION', 'CLIENT_DETAILS', 'FIRMWARE']
[
'PROTOCOL',
'OS_PERFORMANCE',
'RADIO_UTILIZATION',
'CLIENT_DETAILS',
'FIRMWARE',
'RADIO_CHANNEL',
]
);
},
channel: ({ details }) => {
@@ -409,6 +456,7 @@ const resolvers = {
clientDetails: (items) => items.find((i) => i.statusDataType === 'CLIENT_DETAILS') || {},
firmware: (items) => items.find((i) => i.statusDataType === 'FIRMWARE') || {},
dashboard: (items) => items.find((i) => i.statusDataType === 'CUSTOMER_DASHBOARD') || {},
channel: (items) => items.find((i) => i.statusDataType === 'RADIO_CHANNEL') || {},
},
Status: {
detailsJSON: ({ details }) => details || {},
@@ -437,7 +485,7 @@ const resolvers = {
reportedMacAddr &&
reportedMacAddr.addressAsString &&
dataSources.api.getOuiLookup(
reportedMacAddr.addressAsString.replace(/:/g, '').substring(0, 6)
reportedMacAddr.addressAsString.replace(/[:-]/g, '').substring(0, 6)
)
);
},
@@ -488,6 +536,18 @@ const resolvers = {
return result && result.value2;
},
associatedSsidProfiles: ({ details }, args, { dataSources }) => {
return (
details &&
details.associatedAccessSsidProfileIds &&
dataSources.api.getProfilesById(details.associatedAccessSsidProfileIds)
);
},
osuSsidProfile: ({ details }, args, { dataSources }) => {
return (
details && details.osuSsidProfileId && dataSources.api.getProfile(details.osuSsidProfileId)
);
},
},
ClientSession: {
id: ({ macAddress }) => macAddress.addressAsString,
@@ -501,7 +561,9 @@ const resolvers = {
return (
macAddress &&
macAddress.addressAsString &&
dataSources.api.getOuiLookup(macAddress.addressAsString.replace(/:/g, '').substring(0, 6))
dataSources.api.getOuiLookup(
macAddress.addressAsString.replace(/[:-]/g, '').substring(0, 6)
)
);
},
equipment: ({ equipmentId }, args, { dataSources }) => {

View File

@@ -7,6 +7,8 @@ const typeDefs = gql`
scalar JSONObject
type Query {
getApiUrl: String
getUser(id: ID!): User
getAllUsers(customerId: ID!, cursor: String, limit: Int, context: JSONObject): UserPagination
@@ -114,7 +116,7 @@ const typeDefs = gql`
id: ID!
username: String!
password: String
role: String!
roles: [String]
customerId: ID!
lastModifiedTimestamp: String
}
@@ -157,6 +159,8 @@ const typeDefs = gql`
profileId: ID!
locationId: ID!
name: String!
baseMacAddress: String
manufacturer: String
latitude: String
longitude: String
serial: String
@@ -187,6 +191,7 @@ const typeDefs = gql`
clientDetails: Status
firmware: Status
dashboard: Status
channel: Status
}
type Status {
@@ -226,6 +231,8 @@ const typeDefs = gql`
lastModifiedTimestamp: String
equipmentCount: Int
details: JSONObject
associatedSsidProfiles: [Profile]
osuSsidProfile: Profile
}
type ProfilePagination {
@@ -348,12 +355,12 @@ const typeDefs = gql`
authenticateUser(email: String!, password: String!): Token
updateToken(refreshToken: String!): Token
createUser(username: String!, password: String!, role: String!, customerId: ID!): User
createUser(username: String!, password: String!, roles: [String], customerId: ID!): User
updateUser(
id: ID!
username: String!
password: String!
role: String!
roles: [String]
customerId: ID!
lastModifiedTimestamp: String
): User
@@ -395,6 +402,7 @@ const typeDefs = gql`
profileId: ID!
locationId: ID!
name: String!
baseMacAddress: String
latitude: String
longitude: String
serial: String
@@ -404,6 +412,9 @@ const typeDefs = gql`
updateEquipmentBulk(items: [EquipmentRrmUpdate]): GenericResponse
deleteEquipment(id: ID!): Equipment
updateEquipmentFirmware(equipmentId: ID, firmwareVersionId: ID): GenericResponse
requestEquipmentSwitchBank(equipmentId: ID): GenericResponse
requestEquipmentReboot(equipmentId: ID): GenericResponse
requestEquipmentFactoryReset(equipmentId: ID): GenericResponse
createProfile(
profileType: String!