@itentialopensource/adapter-webex_teams 0.5.6 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/AUTH.md +39 -0
  2. package/BROKER.md +199 -0
  3. package/CALLS.md +421 -0
  4. package/CHANGELOG.md +39 -24
  5. package/CODE_OF_CONDUCT.md +12 -17
  6. package/CONTRIBUTING.md +3 -148
  7. package/ENHANCE.md +69 -0
  8. package/PROPERTIES.md +641 -0
  9. package/README.md +239 -507
  10. package/SUMMARY.md +9 -0
  11. package/SYSTEMINFO.md +11 -0
  12. package/TROUBLESHOOT.md +47 -0
  13. package/adapter.js +387 -268
  14. package/adapterBase.js +854 -408
  15. package/changelogs/changelog.md +91 -0
  16. package/entities/.generic/action.json +110 -5
  17. package/entities/.generic/schema.json +6 -1
  18. package/error.json +12 -0
  19. package/metadata.json +60 -0
  20. package/package.json +28 -22
  21. package/pronghorn.json +691 -88
  22. package/propertiesDecorators.json +14 -0
  23. package/propertiesSchema.json +842 -6
  24. package/refs?service=git-upload-pack +0 -0
  25. package/report/adapter-openapi.json +1336 -0
  26. package/report/adapter-openapi.yaml +1054 -0
  27. package/report/adapterInfo.json +10 -0
  28. package/report/updateReport1653575821854.json +120 -0
  29. package/report/updateReport1691506975130.json +120 -0
  30. package/report/updateReport1692201585506.json +120 -0
  31. package/report/updateReport1692203006473.json +120 -0
  32. package/report/updateReport1694455098258.json +120 -0
  33. package/report/updateReport1694466795632.json +120 -0
  34. package/report/updateReport1698422054637.json +120 -0
  35. package/sampleProperties.json +156 -3
  36. package/storage/metrics.json +692 -0
  37. package/test/integration/adapterTestBasicGet.js +4 -6
  38. package/test/integration/adapterTestConnectivity.js +91 -42
  39. package/test/integration/adapterTestIntegration.js +167 -113
  40. package/test/unit/adapterBaseTestUnit.js +393 -310
  41. package/test/unit/adapterTestUnit.js +873 -249
  42. package/utils/adapterInfo.js +206 -0
  43. package/utils/addAuth.js +94 -0
  44. package/utils/artifactize.js +1 -1
  45. package/utils/basicGet.js +1 -14
  46. package/utils/checkMigrate.js +1 -1
  47. package/utils/entitiesToDB.js +179 -0
  48. package/utils/findPath.js +1 -1
  49. package/utils/methodDocumentor.js +273 -0
  50. package/utils/modify.js +14 -16
  51. package/utils/packModificationScript.js +2 -2
  52. package/utils/patches2bundledDeps.js +90 -0
  53. package/utils/pre-commit.sh +5 -0
  54. package/utils/removeHooks.js +20 -0
  55. package/utils/taskMover.js +309 -0
  56. package/utils/tbScript.js +129 -53
  57. package/utils/tbUtils.js +152 -35
  58. package/utils/testRunner.js +17 -17
  59. package/utils/troubleshootingAdapter.js +10 -31
  60. package/workflows/README.md +0 -3
@@ -0,0 +1,91 @@
1
+
2
+ ## 0.6.0 [05-27-2022]
3
+
4
+ * Migration to the latest Adapter Foundation
5
+
6
+ See merge request itentialopensource/adapters/notification-messaging/adapter-webex_teams!4
7
+
8
+ ---
9
+
10
+ ## 0.5.6 [03-16-2021]
11
+
12
+ - Migration to bring up to the latest foundation
13
+ - Change to .eslintignore (adapter_modification directory)
14
+ - Change to README.md (new properties, new scripts, new processes)
15
+ - Changes to adapterBase.js (new methods)
16
+ - Changes to package.json (new scripts, dependencies)
17
+ - Changes to propertiesSchema.json (new properties and changes to existing)
18
+ - Changes to the Unit test
19
+ - Adding several test files, utils files and .generic entity
20
+ - Fix order of scripts and dependencies in package.json
21
+ - Fix order of properties in propertiesSchema.json
22
+ - Update sampleProperties, unit and integration tests to have all new properties.
23
+ - Add all new calls to adapter.js and pronghorn.json
24
+ - Add suspend piece to older methods
25
+
26
+ See merge request itentialopensource/adapters/notification-messaging/adapter-webex_teams!3
27
+
28
+ ---
29
+
30
+ ## 0.5.5 [07-09-2020]
31
+
32
+ - Update to the latest adapter foundation
33
+
34
+ See merge request itentialopensource/adapters/notification-messaging/adapter-webex_teams!1
35
+
36
+ ---
37
+
38
+ ## 0.5.4 [01-30-2020] & 0.5.3 [01-30-2020]
39
+
40
+ - Fixing entitypaths to have slash between version and path
41
+
42
+ See merge request itentialopensource/adapters/notification-messaging/adapter-ciscospark!6
43
+
44
+ ---
45
+
46
+ ## 0.5.2 [01-02-2020]
47
+
48
+ - December Migration
49
+
50
+ See merge request itentialopensource/adapters/notification-messaging/adapter-ciscospark!5
51
+
52
+ ---
53
+
54
+ ## 0.5.1 [11-18-2019]
55
+
56
+ -Fix healthcheck url and better entitypath format
57
+
58
+ See merge request itentialopensource/adapters/notification-messaging/adapter-ciscospark!4
59
+
60
+ ---
61
+
62
+ ## 0.5.0 [11-07-2019]
63
+
64
+ - Migrate to the latest adapter foundation
65
+
66
+ See merge request itentialopensource/adapters/notification-messaging/adapter-ciscospark!3
67
+
68
+ ---
69
+
70
+ ## 0.4.0 [09-12-2019]
71
+
72
+ - September migration
73
+
74
+ See merge request itentialopensource/adapters/notification-messaging/adapter-ciscospark!2
75
+
76
+ ---
77
+ ## 0.3.0 [07-30-2019] & 0.2.0 [07-18-2019]
78
+
79
+ - Update to the latest adapter foundation
80
+
81
+ See merge request itentialopensource/adapters/notification-messaging/adapter-ciscospark!1
82
+
83
+ ---
84
+
85
+ ## 0.1.1 [06-15-2019]
86
+
87
+ - Initial Commit
88
+
89
+ See commit b69db4e
90
+
91
+ ---
@@ -4,7 +4,7 @@
4
4
  "name": "getGenerics",
5
5
  "protocol": "REST",
6
6
  "method": "GET",
7
- "entitypath": "{base_path}/{version}/{pathv1}/{pathv2}/{pathv3}/{pathv4}/{pathv5}/{pathv6}/{pathv7}/{pathv8}/{pathv9}/{pathv10}?{query}",
7
+ "entitypath": "{base_path}/{version}/{pathv1}/{pathv2}/{pathv3}/{pathv4}/{pathv5}/{pathv6}/{pathv7}/{pathv8}/{pathv9}/{pathv10}/{pathv11}/{pathv12}/{pathv13}/{pathv14}/{pathv15}/{pathv16}/{pathv17}/{pathv18}/{pathv19}/{pathv20}?{query}",
8
8
  "requestSchema": "schema.json",
9
9
  "responseSchema": "schema.json",
10
10
  "timeout": 0,
@@ -25,7 +25,7 @@
25
25
  "name": "createGeneric",
26
26
  "protocol": "REST",
27
27
  "method": "POST",
28
- "entitypath": "{base_path}/{version}/{pathv1}/{pathv2}/{pathv3}/{pathv4}/{pathv5}/{pathv6}/{pathv7}/{pathv8}/{pathv9}/{pathv10}?{query}",
28
+ "entitypath": "{base_path}/{version}/{pathv1}/{pathv2}/{pathv3}/{pathv4}/{pathv5}/{pathv6}/{pathv7}/{pathv8}/{pathv9}/{pathv10}/{pathv11}/{pathv12}/{pathv13}/{pathv14}/{pathv15}/{pathv16}/{pathv17}/{pathv18}/{pathv19}/{pathv20}?{query}",
29
29
  "requestSchema": "schema.json",
30
30
  "responseSchema": "schema.json",
31
31
  "timeout": 0,
@@ -46,7 +46,7 @@
46
46
  "name": "updateGeneric",
47
47
  "protocol": "REST",
48
48
  "method": "PUT",
49
- "entitypath": "{base_path}/{version}/{pathv1}/{pathv2}/{pathv3}/{pathv4}/{pathv5}/{pathv6}/{pathv7}/{pathv8}/{pathv9}/{pathv10}?{query}",
49
+ "entitypath": "{base_path}/{version}/{pathv1}/{pathv2}/{pathv3}/{pathv4}/{pathv5}/{pathv6}/{pathv7}/{pathv8}/{pathv9}/{pathv10}/{pathv11}/{pathv12}/{pathv13}/{pathv14}/{pathv15}/{pathv16}/{pathv17}/{pathv18}/{pathv19}/{pathv20}?{query}",
50
50
  "requestSchema": "schema.json",
51
51
  "responseSchema": "schema.json",
52
52
  "timeout": 0,
@@ -67,7 +67,7 @@
67
67
  "name": "patchGeneric",
68
68
  "protocol": "REST",
69
69
  "method": "PATCH",
70
- "entitypath": "{base_path}/{version}/{pathv1}/{pathv2}/{pathv3}/{pathv4}/{pathv5}/{pathv6}/{pathv7}/{pathv8}/{pathv9}/{pathv10}?{query}",
70
+ "entitypath": "{base_path}/{version}/{pathv1}/{pathv2}/{pathv3}/{pathv4}/{pathv5}/{pathv6}/{pathv7}/{pathv8}/{pathv9}/{pathv10}/{pathv11}/{pathv12}/{pathv13}/{pathv14}/{pathv15}/{pathv16}/{pathv17}/{pathv18}/{pathv19}/{pathv20}?{query}",
71
71
  "requestSchema": "schema.json",
72
72
  "responseSchema": "schema.json",
73
73
  "timeout": 0,
@@ -88,7 +88,112 @@
88
88
  "name": "deleteGeneric",
89
89
  "protocol": "REST",
90
90
  "method": "DELETE",
91
- "entitypath": "{base_path}/{version}/{pathv1}/{pathv2}/{pathv3}/{pathv4}/{pathv5}/{pathv6}/{pathv7}/{pathv8}/{pathv9}/{pathv10}?{query}",
91
+ "entitypath": "{base_path}/{version}/{pathv1}/{pathv2}/{pathv3}/{pathv4}/{pathv5}/{pathv6}/{pathv7}/{pathv8}/{pathv9}/{pathv10}/{pathv11}/{pathv12}/{pathv13}/{pathv14}/{pathv15}/{pathv16}/{pathv17}/{pathv18}/{pathv19}/{pathv20}?{query}",
92
+ "requestSchema": "schema.json",
93
+ "responseSchema": "schema.json",
94
+ "timeout": 0,
95
+ "sendEmpty": false,
96
+ "sendGetBody": false,
97
+ "requestDatatype": "JSON",
98
+ "responseDatatype": "JSON",
99
+ "headers": {},
100
+ "responseObjects": [
101
+ {
102
+ "type": "default",
103
+ "key": "",
104
+ "mockFile": ""
105
+ }
106
+ ]
107
+ },
108
+ {
109
+ "name": "getGenericsNoBase",
110
+ "protocol": "REST",
111
+ "method": "GET",
112
+ "entitypath": "/{pathv1}/{pathv2}/{pathv3}/{pathv4}/{pathv5}/{pathv6}/{pathv7}/{pathv8}/{pathv9}/{pathv10}/{pathv11}/{pathv12}/{pathv13}/{pathv14}/{pathv15}/{pathv16}/{pathv17}/{pathv18}/{pathv19}/{pathv20}?{query}",
113
+ "requestSchema": "schema.json",
114
+ "responseSchema": "schema.json",
115
+ "timeout": 0,
116
+ "sendEmpty": false,
117
+ "sendGetBody": false,
118
+ "requestDatatype": "JSON",
119
+ "responseDatatype": "JSON",
120
+ "headers": {},
121
+ "responseObjects": [
122
+ {
123
+ "type": "default",
124
+ "key": "",
125
+ "mockFile": ""
126
+ }
127
+ ]
128
+ },
129
+ {
130
+ "name": "createGenericNoBase",
131
+ "protocol": "REST",
132
+ "method": "POST",
133
+ "entitypath": "/{pathv1}/{pathv2}/{pathv3}/{pathv4}/{pathv5}/{pathv6}/{pathv7}/{pathv8}/{pathv9}/{pathv10}/{pathv11}/{pathv12}/{pathv13}/{pathv14}/{pathv15}/{pathv16}/{pathv17}/{pathv18}/{pathv19}/{pathv20}?{query}",
134
+ "requestSchema": "schema.json",
135
+ "responseSchema": "schema.json",
136
+ "timeout": 0,
137
+ "sendEmpty": false,
138
+ "sendGetBody": false,
139
+ "requestDatatype": "JSON",
140
+ "responseDatatype": "JSON",
141
+ "headers": {},
142
+ "responseObjects": [
143
+ {
144
+ "type": "default",
145
+ "key": "",
146
+ "mockFile": ""
147
+ }
148
+ ]
149
+ },
150
+ {
151
+ "name": "updateGenericNoBase",
152
+ "protocol": "REST",
153
+ "method": "PUT",
154
+ "entitypath": "/{pathv1}/{pathv2}/{pathv3}/{pathv4}/{pathv5}/{pathv6}/{pathv7}/{pathv8}/{pathv9}/{pathv10}/{pathv11}/{pathv12}/{pathv13}/{pathv14}/{pathv15}/{pathv16}/{pathv17}/{pathv18}/{pathv19}/{pathv20}?{query}",
155
+ "requestSchema": "schema.json",
156
+ "responseSchema": "schema.json",
157
+ "timeout": 0,
158
+ "sendEmpty": false,
159
+ "sendGetBody": false,
160
+ "requestDatatype": "JSON",
161
+ "responseDatatype": "JSON",
162
+ "headers": {},
163
+ "responseObjects": [
164
+ {
165
+ "type": "default",
166
+ "key": "",
167
+ "mockFile": ""
168
+ }
169
+ ]
170
+ },
171
+ {
172
+ "name": "patchGenericNoBase",
173
+ "protocol": "REST",
174
+ "method": "PATCH",
175
+ "entitypath": "/{pathv1}/{pathv2}/{pathv3}/{pathv4}/{pathv5}/{pathv6}/{pathv7}/{pathv8}/{pathv9}/{pathv10}/{pathv11}/{pathv12}/{pathv13}/{pathv14}/{pathv15}/{pathv16}/{pathv17}/{pathv18}/{pathv19}/{pathv20}?{query}",
176
+ "requestSchema": "schema.json",
177
+ "responseSchema": "schema.json",
178
+ "timeout": 0,
179
+ "sendEmpty": false,
180
+ "sendGetBody": false,
181
+ "requestDatatype": "JSON",
182
+ "responseDatatype": "JSON",
183
+ "headers": {},
184
+ "responseObjects": [
185
+ {
186
+ "type": "default",
187
+ "key": "",
188
+ "mockFile": ""
189
+ }
190
+ ]
191
+ },
192
+ {
193
+ "name": "deleteGenericNoBase",
194
+ "protocol": "REST",
195
+ "method": "DELETE",
196
+ "entitypath": "/{pathv1}/{pathv2}/{pathv3}/{pathv4}/{pathv5}/{pathv6}/{pathv7}/{pathv8}/{pathv9}/{pathv10}/{pathv11}/{pathv12}/{pathv13}/{pathv14}/{pathv15}/{pathv16}/{pathv17}/{pathv18}/{pathv19}/{pathv20}?{query}",
92
197
  "requestSchema": "schema.json",
93
198
  "responseSchema": "schema.json",
94
199
  "timeout": 0,
@@ -14,7 +14,12 @@
14
14
  "createGeneric",
15
15
  "updateGeneric",
16
16
  "patchGeneric",
17
- "deleteGeneric"
17
+ "deleteGeneric",
18
+ "getGenericsNoBase",
19
+ "createGenericNoBase",
20
+ "updateGenericNoBase",
21
+ "patchGenericNoBase",
22
+ "deleteGenericNoBase"
18
23
  ],
19
24
  "external_name": "ph_request_type"
20
25
  }
package/error.json CHANGED
@@ -96,6 +96,12 @@
96
96
  "displayString": "Invalid properties: $VARIABLE$",
97
97
  "recommendation": "Verify the properties for the adapter"
98
98
  },
99
+ {
100
+ "key": "Missing Properties",
101
+ "icode": "AD.306",
102
+ "displayString": "Property $VARIABLE$ is required",
103
+ "recommendation": "Please provide the required property"
104
+ },
99
105
  {
100
106
  "key": "Query Not Translated",
101
107
  "icode": "AD.310",
@@ -168,6 +174,12 @@
168
174
  "displayString": "Failure response received for $VARIABLE$",
169
175
  "recommendation": "Check the reason for failure in the stack trace"
170
176
  },
177
+ {
178
+ "key": "Suspended Adapter",
179
+ "icode": "AD.600",
180
+ "displayString": "Adapter is suspended",
181
+ "recommendation": "Check if external system is functional and unsuspend if appropriate"
182
+ },
171
183
  {
172
184
  "key": "Caught Exception",
173
185
  "icode": "AD.900",
package/metadata.json ADDED
@@ -0,0 +1,60 @@
1
+ {
2
+ "name": "adapter-webex_teams",
3
+ "webName": "Adapter for Integration to Cisco Webex Teams",
4
+ "vendor": "Cisco",
5
+ "product": "Webex Teams",
6
+ "osVersion": [],
7
+ "apiVersions": [],
8
+ "iapVersions": [
9
+ "2021.1.x",
10
+ "2021.2.x",
11
+ "2022.1.x",
12
+ "2023.1.x"
13
+ ],
14
+ "method": "REST",
15
+ "type": "Adapter",
16
+ "domains": [
17
+ "Notifications"
18
+ ],
19
+ "tags": [],
20
+ "useCases": [],
21
+ "deprecated": {
22
+ "isDeprecated": false
23
+ },
24
+ "brokerSince": "",
25
+ "documentation": {
26
+ "storeLink": "",
27
+ "npmLink": "https://www.npmjs.com/package/@itentialopensource/adapter-webex_teams",
28
+ "repoLink": "https://gitlab.com/itentialopensource/adapters/notification-messaging/adapter-webex_teams",
29
+ "docLink": "https://docs.itential.com/opensource/docs/webex-teams",
30
+ "demoLinks": [],
31
+ "trainingLinks": [],
32
+ "faqLink": "https://docs.itential.com/opensource/docs/troubleshooting-an-adapter",
33
+ "contributeLink": "https://gitlab.com/itentialopensource/adapters/contributing-guide",
34
+ "issueLink": "https://itential.atlassian.net/servicedesk/customer/portals",
35
+ "webLink": "https://www.itential.com/adapters/cisco-spark/",
36
+ "vendorLink": "",
37
+ "productLink": "",
38
+ "apiLinks": []
39
+ },
40
+ "assets": [],
41
+ "relatedItems": {
42
+ "adapters": [],
43
+ "integrations": [],
44
+ "ecosystemApplications": [],
45
+ "workflowProjects": [
46
+ {
47
+ "name": "Webex Teams Notification",
48
+ "overview": "This Pre-Built integrates with the [Webex Teams Open Source Adapter](https://gitlab.com/itentialopensource/adapters/notification-messaging/adapter-webex_teams) to send a notification within Webex Teams.",
49
+ "versions": [
50
+ "0.0.16"
51
+ ],
52
+ "repoLink": "https://gitlab.com/itentialopensource/pre-built-automations/webex-teams-notification",
53
+ "docLink": "<TBD>",
54
+ "webLink": "https://www.itential.com/automations/webex-teams-notification/"
55
+ }
56
+ ],
57
+ "transformationProjects": [],
58
+ "exampleProjects": []
59
+ }
60
+ }
package/package.json CHANGED
@@ -1,13 +1,15 @@
1
1
  {
2
2
  "name": "@itentialopensource/adapter-webex_teams",
3
- "version": "0.5.6",
3
+ "version": "0.7.0",
4
4
  "description": "This adapter integrates with system described as: sparkApi.",
5
5
  "main": "adapter.js",
6
- "wizardVersion": "2.43.12",
7
- "engineVersion": "1.58.6",
6
+ "wizardVersion": "2.44.7",
7
+ "engineVersion": "1.67.14",
8
+ "adapterType": "http",
8
9
  "scripts": {
9
10
  "artifactize": "npm i && node utils/packModificationScript.js",
10
11
  "preinstall": "node utils/setup.js",
12
+ "deinstall": "node utils/removeHooks.js",
11
13
  "lint": "node --max_old_space_size=4096 ./node_modules/eslint/bin/eslint.js . --ext .json --ext .js",
12
14
  "lint:errors": "node --max_old_space_size=4096 ./node_modules/eslint/bin/eslint.js . --ext .json --ext .js --quiet",
13
15
  "test:baseunit": "mocha test/unit/adapterBaseTestUnit.js --LOG=error",
@@ -15,17 +17,17 @@
15
17
  "test:integration": "mocha test/integration/adapterTestIntegration.js --LOG=error",
16
18
  "test:cover": "nyc --reporter html --reporter text mocha --reporter dot test/*",
17
19
  "test": "npm run test:baseunit && npm run test:unit && npm run test:integration",
18
- "adapter:install": "node utils/tbScript.js install",
20
+ "adapter:install": "npm i && node utils/tbScript.js install",
19
21
  "adapter:checkMigrate": "node utils/checkMigrate.js",
20
22
  "adapter:findPath": "node utils/findPath.js",
21
23
  "adapter:migrate": "node utils/modify.js -m",
22
24
  "adapter:update": "node utils/modify.js -u",
23
25
  "adapter:revert": "node utils/modify.js -r",
24
- "troubleshoot": "node utils/tbScript.js",
26
+ "troubleshoot": "node utils/tbScript.js troubleshoot",
25
27
  "healthcheck": "node utils/tbScript.js healthcheck",
26
28
  "basicget": "node utils/tbScript.js basicget",
27
29
  "connectivity": "node utils/tbScript.js connectivity",
28
- "deploy": "npm publish --registry=http://registry.npmjs.org --access=public",
30
+ "deploy": "npm publish --registry=https://registry.npmjs.org --access=public",
29
31
  "build": "npm run deploy"
30
32
  },
31
33
  "keywords": [
@@ -52,27 +54,31 @@
52
54
  "author": "Itential",
53
55
  "homepage": "https://gitlab.com/itentialopensource/adapters/notification-messaging/adapter-webex_teams#readme",
54
56
  "dependencies": {
55
- "@itentialopensource/adapter-utils": "^4.39.2",
56
- "ajv": "^6.12.0",
57
- "axios": "^0.21.0",
58
- "commander": "^2.20.0",
59
- "fs-extra": "^8.1.0",
60
- "mocha": "^8.1.1",
57
+ "@itentialopensource/adapter-utils": "^5.3.0",
58
+ "acorn": "^8.10.0",
59
+ "ajv": "^8.12.0",
60
+ "axios": "^1.6.3",
61
+ "commander": "^11.0.0",
62
+ "dns-lookup-promise": "^1.0.4",
63
+ "fs-extra": "^11.1.1",
64
+ "json-query": "^2.2.2",
65
+ "mocha": "^10.2.0",
61
66
  "mocha-param": "^2.0.1",
62
- "network-diagnostics": "^0.5.3",
67
+ "mongodb": "^4.16.0",
63
68
  "nyc": "^15.1.0",
69
+ "ping": "^0.4.4",
70
+ "prompts": "^2.4.2",
64
71
  "readline-sync": "^1.4.10",
65
- "semver": "^7.3.2",
66
- "winston": "^3.3.3"
72
+ "semver": "^7.5.3",
73
+ "winston": "^3.9.0"
67
74
  },
68
75
  "devDependencies": {
69
- "chai": "^4.2.0",
70
- "eslint": "^7.2.0",
71
- "eslint-config-airbnb-base": "^14.2.0",
72
- "eslint-plugin-import": "^2.21.2",
73
- "eslint-plugin-json": "^2.1.1",
74
- "package-json-validator": "^0.6.3",
75
- "testdouble": "^3.16.1"
76
+ "chai": "^4.3.7",
77
+ "eslint": "^8.44.0",
78
+ "eslint-config-airbnb-base": "^15.0.0",
79
+ "eslint-plugin-import": "^2.27.5",
80
+ "eslint-plugin-json": "^3.1.0",
81
+ "testdouble": "^3.18.0"
76
82
  },
77
83
  "private": false
78
84
  }