@prosopo/provider 4.12.0 → 4.13.1

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 (228) hide show
  1. package/.turbo/turbo-build$colon$cjs.log +43 -39
  2. package/.turbo/turbo-build$colon$tsc.log +24 -24
  3. package/.turbo/turbo-build.log +43 -40
  4. package/CHANGELOG.md +97 -0
  5. package/dist/api/admin/apiClearAllCountersEndpoint.d.ts.map +1 -1
  6. package/dist/api/admin/apiClearAllCountersEndpoint.js +1 -1
  7. package/dist/api/admin/apiClearAllCountersEndpoint.js.map +1 -1
  8. package/dist/api/admin/apiDnsEventEndpoint.d.ts.map +1 -1
  9. package/dist/api/admin/apiDnsEventEndpoint.js +1 -1
  10. package/dist/api/admin/apiDnsEventEndpoint.js.map +1 -1
  11. package/dist/api/admin/apiGetAllDecisionMachinesEndpoint.d.ts.map +1 -1
  12. package/dist/api/admin/apiGetAllDecisionMachinesEndpoint.js +1 -1
  13. package/dist/api/admin/apiGetAllDecisionMachinesEndpoint.js.map +1 -1
  14. package/dist/api/admin/apiGetDecisionMachineEndpoint.d.ts.map +1 -1
  15. package/dist/api/admin/apiGetDecisionMachineEndpoint.js +1 -1
  16. package/dist/api/admin/apiGetDecisionMachineEndpoint.js.map +1 -1
  17. package/dist/api/admin/apiRegisterSiteKeyEndpoint.d.ts.map +1 -1
  18. package/dist/api/admin/apiRegisterSiteKeyEndpoint.js +1 -1
  19. package/dist/api/admin/apiRegisterSiteKeyEndpoint.js.map +1 -1
  20. package/dist/api/admin/apiRegisterSiteKeysEndpoint.d.ts.map +1 -1
  21. package/dist/api/admin/apiRegisterSiteKeysEndpoint.js +1 -1
  22. package/dist/api/admin/apiRegisterSiteKeysEndpoint.js.map +1 -1
  23. package/dist/api/admin/apiRemoveAllDecisionMachinesEndpoint.d.ts.map +1 -1
  24. package/dist/api/admin/apiRemoveAllDecisionMachinesEndpoint.js +1 -1
  25. package/dist/api/admin/apiRemoveAllDecisionMachinesEndpoint.js.map +1 -1
  26. package/dist/api/admin/apiRemoveDecisionMachineEndpoint.d.ts.map +1 -1
  27. package/dist/api/admin/apiRemoveDecisionMachineEndpoint.js +1 -1
  28. package/dist/api/admin/apiRemoveDecisionMachineEndpoint.js.map +1 -1
  29. package/dist/api/admin/apiRemoveDetectorKeyEndpoint.d.ts.map +1 -1
  30. package/dist/api/admin/apiRemoveDetectorKeyEndpoint.js +1 -2
  31. package/dist/api/admin/apiRemoveDetectorKeyEndpoint.js.map +1 -1
  32. package/dist/api/admin/apiRemoveSiteKeyEndpoint.d.ts.map +1 -1
  33. package/dist/api/admin/apiRemoveSiteKeyEndpoint.js +1 -1
  34. package/dist/api/admin/apiRemoveSiteKeyEndpoint.js.map +1 -1
  35. package/dist/api/admin/apiRemoveSiteKeysEndpoint.d.ts.map +1 -1
  36. package/dist/api/admin/apiRemoveSiteKeysEndpoint.js +1 -1
  37. package/dist/api/admin/apiRemoveSiteKeysEndpoint.js.map +1 -1
  38. package/dist/api/admin/apiToggleMaintenanceModeEndpoint.d.ts.map +1 -1
  39. package/dist/api/admin/apiToggleMaintenanceModeEndpoint.js +3 -1
  40. package/dist/api/admin/apiToggleMaintenanceModeEndpoint.js.map +1 -1
  41. package/dist/api/admin/apiUpdateDecisionMachineEndpoint.d.ts.map +1 -1
  42. package/dist/api/admin/apiUpdateDecisionMachineEndpoint.js +1 -1
  43. package/dist/api/admin/apiUpdateDecisionMachineEndpoint.js.map +1 -1
  44. package/dist/api/admin/apiUpdateDetectorKeyEndpoint.js +1 -2
  45. package/dist/api/admin/apiUpdateDetectorKeyEndpoint.js.map +1 -1
  46. package/dist/api/blacklistRequestInspector.d.ts.map +1 -1
  47. package/dist/api/blacklistRequestInspector.js +7 -3
  48. package/dist/api/blacklistRequestInspector.js.map +1 -1
  49. package/dist/api/captcha/checkSpamEmail.d.ts.map +1 -1
  50. package/dist/api/captcha/checkSpamEmail.js +19 -4
  51. package/dist/api/captcha/checkSpamEmail.js.map +1 -1
  52. package/dist/api/captcha/getFrictionlessCaptchaChallenge/accessPolicy.d.ts +0 -1
  53. package/dist/api/captcha/getFrictionlessCaptchaChallenge/accessPolicy.d.ts.map +1 -1
  54. package/dist/api/captcha/getFrictionlessCaptchaChallenge/accessPolicy.js +1 -7
  55. package/dist/api/captcha/getFrictionlessCaptchaChallenge/accessPolicy.js.map +1 -1
  56. package/dist/api/captcha/getFrictionlessCaptchaChallenge/decisionMachine.d.ts.map +1 -1
  57. package/dist/api/captcha/getFrictionlessCaptchaChallenge/decisionMachine.js +8 -7
  58. package/dist/api/captcha/getFrictionlessCaptchaChallenge/decisionMachine.js.map +1 -1
  59. package/dist/api/captcha/getFrictionlessCaptchaChallenge/handler.d.ts +1 -1
  60. package/dist/api/captcha/getFrictionlessCaptchaChallenge/handler.d.ts.map +1 -1
  61. package/dist/api/captcha/getFrictionlessCaptchaChallenge/handler.js +68 -28
  62. package/dist/api/captcha/getFrictionlessCaptchaChallenge/handler.js.map +1 -1
  63. package/dist/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.d.ts +0 -1
  64. package/dist/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.d.ts.map +1 -1
  65. package/dist/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.js +0 -1
  66. package/dist/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.js.map +1 -1
  67. package/dist/api/captcha/getImageCaptchaChallenge.d.ts.map +1 -1
  68. package/dist/api/captcha/getImageCaptchaChallenge.js +3 -0
  69. package/dist/api/captcha/getImageCaptchaChallenge.js.map +1 -1
  70. package/dist/api/captcha/getPoWCaptchaChallenge.d.ts.map +1 -1
  71. package/dist/api/captcha/getPoWCaptchaChallenge.js +3 -0
  72. package/dist/api/captcha/getPoWCaptchaChallenge.js.map +1 -1
  73. package/dist/api/captcha/getPuzzleCaptchaChallenge.d.ts.map +1 -1
  74. package/dist/api/captcha/getPuzzleCaptchaChallenge.js +3 -0
  75. package/dist/api/captcha/getPuzzleCaptchaChallenge.js.map +1 -1
  76. package/dist/api/captcha/submitPoWCaptchaSolution.d.ts +8 -0
  77. package/dist/api/captcha/submitPoWCaptchaSolution.d.ts.map +1 -1
  78. package/dist/api/captcha/submitPoWCaptchaSolution.js +7 -0
  79. package/dist/api/captcha/submitPoWCaptchaSolution.js.map +1 -1
  80. package/dist/api/captcha.d.ts +2 -1
  81. package/dist/api/captcha.d.ts.map +1 -1
  82. package/dist/api/captcha.js +12 -15
  83. package/dist/api/captcha.js.map +1 -1
  84. package/dist/api/domainMiddleware.d.ts.map +1 -1
  85. package/dist/api/domainMiddleware.js +4 -0
  86. package/dist/api/domainMiddleware.js.map +1 -1
  87. package/dist/api/forwardVerify.d.ts +14 -0
  88. package/dist/api/forwardVerify.d.ts.map +1 -0
  89. package/dist/api/forwardVerify.js +54 -0
  90. package/dist/api/forwardVerify.js.map +1 -0
  91. package/dist/api/headerCheckMiddleware.d.ts.map +1 -1
  92. package/dist/api/headerCheckMiddleware.js +7 -4
  93. package/dist/api/headerCheckMiddleware.js.map +1 -1
  94. package/dist/api/ja4.d.ts +5 -0
  95. package/dist/api/ja4.d.ts.map +1 -0
  96. package/dist/api/ja4.js +203 -0
  97. package/dist/api/ja4.js.map +1 -0
  98. package/dist/api/ja4Middleware.d.ts.map +1 -1
  99. package/dist/api/ja4Middleware.js +9 -18
  100. package/dist/api/ja4Middleware.js.map +1 -1
  101. package/dist/api/metrics.d.ts +40 -0
  102. package/dist/api/metrics.d.ts.map +1 -0
  103. package/dist/api/metrics.js +260 -0
  104. package/dist/api/metrics.js.map +1 -0
  105. package/dist/api/public.d.ts.map +1 -1
  106. package/dist/api/public.js +4 -0
  107. package/dist/api/public.js.map +1 -1
  108. package/dist/api/startProviderApi.d.ts.map +1 -1
  109. package/dist/api/startProviderApi.js +3 -1
  110. package/dist/api/startProviderApi.js.map +1 -1
  111. package/dist/api/verify.d.ts.map +1 -1
  112. package/dist/api/verify.js +85 -8
  113. package/dist/api/verify.js.map +1 -1
  114. package/dist/cjs/api/admin/apiClearAllCountersEndpoint.cjs +1 -1
  115. package/dist/cjs/api/admin/apiDnsEventEndpoint.cjs +1 -2
  116. package/dist/cjs/api/admin/apiGetAllDecisionMachinesEndpoint.cjs +1 -1
  117. package/dist/cjs/api/admin/apiGetDecisionMachineEndpoint.cjs +1 -1
  118. package/dist/cjs/api/admin/apiRegisterSiteKeyEndpoint.cjs +1 -2
  119. package/dist/cjs/api/admin/apiRegisterSiteKeysEndpoint.cjs +1 -2
  120. package/dist/cjs/api/admin/apiRemoveAllDecisionMachinesEndpoint.cjs +1 -1
  121. package/dist/cjs/api/admin/apiRemoveDecisionMachineEndpoint.cjs +1 -1
  122. package/dist/cjs/api/admin/apiRemoveDetectorKeyEndpoint.cjs +1 -3
  123. package/dist/cjs/api/admin/apiRemoveSiteKeyEndpoint.cjs +1 -2
  124. package/dist/cjs/api/admin/apiRemoveSiteKeysEndpoint.cjs +1 -2
  125. package/dist/cjs/api/admin/apiToggleMaintenanceModeEndpoint.cjs +3 -2
  126. package/dist/cjs/api/admin/apiUpdateDecisionMachineEndpoint.cjs +1 -1
  127. package/dist/cjs/api/admin/apiUpdateDetectorKeyEndpoint.cjs +1 -2
  128. package/dist/cjs/api/blacklistRequestInspector.cjs +7 -3
  129. package/dist/cjs/api/captcha/checkSpamEmail.cjs +18 -3
  130. package/dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/accessPolicy.cjs +1 -7
  131. package/dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/decisionMachine.cjs +8 -7
  132. package/dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/handler.cjs +70 -30
  133. package/dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.cjs +0 -1
  134. package/dist/cjs/api/captcha/getImageCaptchaChallenge.cjs +3 -0
  135. package/dist/cjs/api/captcha/getPoWCaptchaChallenge.cjs +3 -0
  136. package/dist/cjs/api/captcha/getPuzzleCaptchaChallenge.cjs +3 -0
  137. package/dist/cjs/api/captcha/submitPoWCaptchaSolution.cjs +9 -1
  138. package/dist/cjs/api/captcha.cjs +12 -15
  139. package/dist/cjs/api/domainMiddleware.cjs +4 -0
  140. package/dist/cjs/api/forwardVerify.cjs +54 -0
  141. package/dist/cjs/api/headerCheckMiddleware.cjs +7 -4
  142. package/dist/cjs/api/ja4.cjs +203 -0
  143. package/dist/cjs/api/ja4Middleware.cjs +11 -21
  144. package/dist/cjs/api/metrics.cjs +260 -0
  145. package/dist/cjs/api/public.cjs +4 -0
  146. package/dist/cjs/api/startProviderApi.cjs +3 -1
  147. package/dist/cjs/api/verify.cjs +83 -6
  148. package/dist/cjs/index.cjs +1 -0
  149. package/dist/cjs/tasks/captchaManager.cjs +23 -3
  150. package/dist/cjs/tasks/imgCaptcha/imgCaptchaTasks.cjs +20 -22
  151. package/dist/cjs/tasks/powCaptcha/powTasks.cjs +17 -23
  152. package/dist/cjs/tasks/puzzleCaptcha/puzzleTasks.cjs +15 -21
  153. package/dist/index.js +2 -1
  154. package/dist/tasks/captchaManager.d.ts.map +1 -1
  155. package/dist/tasks/captchaManager.js +23 -2
  156. package/dist/tasks/captchaManager.js.map +1 -1
  157. package/dist/tasks/imgCaptcha/imgCaptchaTasks.d.ts.map +1 -1
  158. package/dist/tasks/imgCaptcha/imgCaptchaTasks.js +20 -22
  159. package/dist/tasks/imgCaptcha/imgCaptchaTasks.js.map +1 -1
  160. package/dist/tasks/powCaptcha/powTasks.d.ts.map +1 -1
  161. package/dist/tasks/powCaptcha/powTasks.js +17 -23
  162. package/dist/tasks/powCaptcha/powTasks.js.map +1 -1
  163. package/dist/tasks/puzzleCaptcha/puzzleTasks.d.ts.map +1 -1
  164. package/dist/tasks/puzzleCaptcha/puzzleTasks.js +15 -21
  165. package/dist/tasks/puzzleCaptcha/puzzleTasks.js.map +1 -1
  166. package/dist/tests/unit/api/admin/apiClearAllCountersEndpoint.unit.test.js +1 -0
  167. package/dist/tests/unit/api/admin/apiClearAllCountersEndpoint.unit.test.js.map +1 -1
  168. package/dist/tests/unit/api/admin/apiDnsEventEndpoint.unit.test.js +5 -1
  169. package/dist/tests/unit/api/admin/apiDnsEventEndpoint.unit.test.js.map +1 -1
  170. package/dist/tests/unit/api/admin/apiRegisterSiteKeyEndpoint.unit.test.js +1 -0
  171. package/dist/tests/unit/api/admin/apiRegisterSiteKeyEndpoint.unit.test.js.map +1 -1
  172. package/dist/tests/unit/api/admin/apiRegisterSiteKeysEndpoint.unit.test.js +1 -0
  173. package/dist/tests/unit/api/admin/apiRegisterSiteKeysEndpoint.unit.test.js.map +1 -1
  174. package/dist/tests/unit/api/admin/apiRemoveDetectorKeyEndpoint.unit.test.js +1 -0
  175. package/dist/tests/unit/api/admin/apiRemoveDetectorKeyEndpoint.unit.test.js.map +1 -1
  176. package/dist/tests/unit/api/admin/apiToggleMaintenanceModeEndpoint.unit.test.js +1 -0
  177. package/dist/tests/unit/api/admin/apiToggleMaintenanceModeEndpoint.unit.test.js.map +1 -1
  178. package/dist/tests/unit/api/admin/apiUpdateDetectorKeyEndpoint.unit.test.js +1 -0
  179. package/dist/tests/unit/api/admin/apiUpdateDetectorKeyEndpoint.unit.test.js.map +1 -1
  180. package/dist/tests/unit/api/adminRoutes.unit.test.js +1 -0
  181. package/dist/tests/unit/api/adminRoutes.unit.test.js.map +1 -1
  182. package/dist/tests/unit/api/blacklistRequestInspector.unit.test.js +43 -0
  183. package/dist/tests/unit/api/blacklistRequestInspector.unit.test.js.map +1 -1
  184. package/dist/tests/unit/api/captcha/checkSpamEmail.unit.test.d.ts +2 -0
  185. package/dist/tests/unit/api/captcha/checkSpamEmail.unit.test.d.ts.map +1 -0
  186. package/dist/tests/unit/api/captcha/checkSpamEmail.unit.test.js +62 -0
  187. package/dist/tests/unit/api/captcha/checkSpamEmail.unit.test.js.map +1 -0
  188. package/dist/tests/unit/api/captcha/getFrictionlessCaptchaChallenge/accessPolicy.unit.test.js +0 -1
  189. package/dist/tests/unit/api/captcha/getFrictionlessCaptchaChallenge/accessPolicy.unit.test.js.map +1 -1
  190. package/dist/tests/unit/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.unit.test.js +0 -1
  191. package/dist/tests/unit/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.unit.test.js.map +1 -1
  192. package/dist/tests/unit/api/captcha/submitPoWCaptchaSolution.escalation.unit.test.d.ts +2 -0
  193. package/dist/tests/unit/api/captcha/submitPoWCaptchaSolution.escalation.unit.test.d.ts.map +1 -0
  194. package/dist/tests/unit/api/captcha/submitPoWCaptchaSolution.escalation.unit.test.js +130 -0
  195. package/dist/tests/unit/api/captcha/submitPoWCaptchaSolution.escalation.unit.test.js.map +1 -0
  196. package/dist/tests/unit/api/captcha.unit.test.js +31 -1
  197. package/dist/tests/unit/api/captcha.unit.test.js.map +1 -1
  198. package/dist/tests/unit/api/forwardVerify.unit.test.d.ts +2 -0
  199. package/dist/tests/unit/api/forwardVerify.unit.test.d.ts.map +1 -0
  200. package/dist/tests/unit/api/forwardVerify.unit.test.js +151 -0
  201. package/dist/tests/unit/api/forwardVerify.unit.test.js.map +1 -0
  202. package/dist/tests/unit/api/getFrictionlessCaptchaChallenge.unit.test.js +68 -0
  203. package/dist/tests/unit/api/getFrictionlessCaptchaChallenge.unit.test.js.map +1 -1
  204. package/dist/tests/unit/api/headerCheckMiddleware.unit.test.js +2 -2
  205. package/dist/tests/unit/api/headerCheckMiddleware.unit.test.js.map +1 -1
  206. package/dist/tests/unit/api/ja4.unit.test.d.ts +2 -0
  207. package/dist/tests/unit/api/ja4.unit.test.d.ts.map +1 -0
  208. package/dist/tests/unit/api/ja4.unit.test.js +233 -0
  209. package/dist/tests/unit/api/ja4.unit.test.js.map +1 -0
  210. package/dist/tests/unit/api/ja4Middleware.unit.test.js +11 -8
  211. package/dist/tests/unit/api/ja4Middleware.unit.test.js.map +1 -1
  212. package/dist/tests/unit/api/public.unit.test.js +72 -0
  213. package/dist/tests/unit/api/public.unit.test.js.map +1 -1
  214. package/dist/tests/unit/schedulers/captchaScheduler.unit.test.js +1 -1
  215. package/dist/tests/unit/schedulers/captchaScheduler.unit.test.js.map +1 -1
  216. package/dist/tests/unit/schedulers/getClientList.unit.test.js +1 -1
  217. package/dist/tests/unit/schedulers/getClientList.unit.test.js.map +1 -1
  218. package/dist/tests/unit/schedulers/setClientEntropy.unit.test.js +1 -1
  219. package/dist/tests/unit/schedulers/setClientEntropy.unit.test.js.map +1 -1
  220. package/dist/tests/unit/tasks/captchaManager.unit.test.js +87 -2
  221. package/dist/tests/unit/tasks/captchaManager.unit.test.js.map +1 -1
  222. package/dist/tests/unit/tasks/client/clientTasks.unit.test.js +1 -1
  223. package/dist/tests/unit/tasks/client/clientTasks.unit.test.js.map +1 -1
  224. package/dist/tests/unit/tasks/dataset/datasetTasks.unit.test.js +1 -1
  225. package/dist/tests/unit/tasks/dataset/datasetTasks.unit.test.js.map +1 -1
  226. package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasks.unit.test.js +4 -1
  227. package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasks.unit.test.js.map +1 -1
  228. package/package.json +23 -23
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prosopo/provider",
3
- "version": "4.12.0",
3
+ "version": "4.13.1",
4
4
  "author": "PROSOPO LIMITED <info@prosopo.io>",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
@@ -23,25 +23,25 @@
23
23
  "dependencies": {
24
24
  "@noble/hashes": "1.8.0",
25
25
  "@polkadot/util": "13.5.7",
26
- "@prosopo/api": "3.5.5",
27
- "@prosopo/api-express-router": "3.1.31",
28
- "@prosopo/api-route": "2.6.48",
29
- "@prosopo/common": "3.1.40",
30
- "@prosopo/logger": "1.0.4",
31
- "@prosopo/database": "3.15.0",
32
- "@prosopo/datasets": "3.1.40",
33
- "@prosopo/env": "3.6.0",
34
- "@prosopo/ipinfo": "0.2.26",
35
- "@prosopo/keyring": "2.9.46",
36
- "@prosopo/load-balancer": "2.10.0",
37
- "@prosopo/redis-client": "1.0.25",
26
+ "@prosopo/api": "3.5.6",
27
+ "@prosopo/api-express-router": "3.1.33",
28
+ "@prosopo/api-route": "2.6.49",
29
+ "@prosopo/common": "3.1.41",
30
+ "@prosopo/logger": "2.0.0",
31
+ "@prosopo/database": "3.15.2",
32
+ "@prosopo/datasets": "3.1.41",
33
+ "@prosopo/env": "3.6.2",
34
+ "@prosopo/ipinfo": "0.2.27",
35
+ "@prosopo/keyring": "2.9.47",
36
+ "@prosopo/load-balancer": "2.10.1",
37
+ "@prosopo/redis-client": "1.0.26",
38
38
  "@prosopo/locale": "3.2.5",
39
- "@prosopo/types": "4.8.0",
40
- "@prosopo/types-database": "4.11.0",
41
- "@prosopo/types-env": "2.10.0",
42
- "@prosopo/user-access-policy": "3.10.8",
43
- "@prosopo/util": "3.3.1",
44
- "@prosopo/util-crypto": "13.5.29",
39
+ "@prosopo/types": "4.9.0",
40
+ "@prosopo/types-database": "4.11.1",
41
+ "@prosopo/types-env": "2.10.1",
42
+ "@prosopo/user-access-policy": "3.10.9",
43
+ "@prosopo/util": "3.3.2",
44
+ "@prosopo/util-crypto": "13.5.30",
45
45
  "cron": "3.1.7",
46
46
  "express": "4.21.2",
47
47
  "express-rate-limit": "7.4.0",
@@ -49,12 +49,12 @@
49
49
  "i18next": "24.1.0",
50
50
  "ip-address": "10.0.1",
51
51
  "mongoose": "8.13.0",
52
- "read-tls-client-hello": "1.1.0",
53
- "uuid": "11.1.0",
52
+ "prom-client": "15.1.3",
53
+ "uuid": "14.0.1",
54
54
  "zod": "3.23.8"
55
55
  },
56
56
  "devDependencies": {
57
- "@prosopo/config": "3.3.3",
57
+ "@prosopo/config": "3.3.4",
58
58
  "@types/node": "22.5.5",
59
59
  "@types/pg": "8.16.0",
60
60
  "@types/uuid": "10.0.0",
@@ -70,7 +70,7 @@
70
70
  "typescript": "5.6.2",
71
71
  "undici": "6.27.0",
72
72
  "vite": "6.4.1",
73
- "vitest": "3.2.4"
73
+ "vitest": "3.2.6"
74
74
  },
75
75
  "repository": {
76
76
  "type": "git",