kuzzle 2.17.5 → 2.17.8

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 (197) hide show
  1. package/bin/start-kuzzle-server +1 -1
  2. package/lib/api/controllers/adminController.js +5 -4
  3. package/lib/api/controllers/authController.js +1 -1
  4. package/lib/api/controllers/baseController.js +1 -1
  5. package/lib/api/controllers/bulkController.js +1 -1
  6. package/lib/api/controllers/clusterController.js +1 -1
  7. package/lib/api/controllers/collectionController.js +1 -1
  8. package/lib/api/controllers/documentController.js +7 -2
  9. package/lib/api/controllers/index.js +1 -1
  10. package/lib/api/controllers/indexController.js +1 -1
  11. package/lib/api/controllers/memoryStorageController.js +1 -1
  12. package/lib/api/controllers/realtimeController.js +1 -1
  13. package/lib/api/controllers/securityController.js +1 -1
  14. package/lib/api/controllers/serverController.js +1 -1
  15. package/lib/api/documentExtractor.js +1 -1
  16. package/lib/api/funnel.js +1 -1
  17. package/lib/api/httpRoutes.js +5 -4
  18. package/lib/api/openapi/OpenApiManager.js +2 -1
  19. package/lib/api/openapi/components/document/index.d.ts +2 -0
  20. package/lib/api/openapi/components/document/index.js +6 -1
  21. package/lib/api/openapi/components/document/mCreateOrReplace.yaml +93 -0
  22. package/lib/api/openapi/openApiGenerator.js +1 -1
  23. package/lib/api/rateLimiter.js +1 -1
  24. package/lib/api/request/kuzzleRequest.js +1 -1
  25. package/lib/api/request/requestContext.js +1 -1
  26. package/lib/api/request/requestInput.js +1 -1
  27. package/lib/api/request/requestResponse.js +1 -1
  28. package/lib/cluster/command.js +1 -1
  29. package/lib/cluster/idCardHandler.js +1 -1
  30. package/lib/cluster/index.js +1 -1
  31. package/lib/cluster/node.js +8 -8
  32. package/lib/cluster/publisher.js +1 -1
  33. package/lib/cluster/state.js +1 -1
  34. package/lib/cluster/subscriber.js +4 -1
  35. package/lib/config/documentEventAliases.js +1 -1
  36. package/lib/config/index.js +1 -1
  37. package/lib/core/auth/formatProcessing.js +1 -1
  38. package/lib/core/auth/passportResponse.js +1 -1
  39. package/lib/core/auth/passportWrapper.js +1 -1
  40. package/lib/core/auth/tokenManager.js +1 -1
  41. package/lib/core/backend/applicationManager.js +1 -1
  42. package/lib/core/backend/backend.js +1 -1
  43. package/lib/core/backend/backendCluster.js +1 -1
  44. package/lib/core/backend/backendConfig.js +1 -1
  45. package/lib/core/backend/backendController.js +1 -1
  46. package/lib/core/backend/backendErrors.js +1 -1
  47. package/lib/core/backend/backendHook.js +1 -1
  48. package/lib/core/backend/backendImport.js +1 -1
  49. package/lib/core/backend/backendOpenApi.js +1 -1
  50. package/lib/core/backend/backendPipe.js +1 -1
  51. package/lib/core/backend/backendPlugin.js +1 -1
  52. package/lib/core/backend/backendStorage.js +1 -1
  53. package/lib/core/backend/backendVault.js +1 -1
  54. package/lib/core/backend/internalLogger.js +1 -1
  55. package/lib/core/cache/cacheDbEnum.js +1 -1
  56. package/lib/core/cache/cacheEngine.js +1 -1
  57. package/lib/core/network/accessLogger.js +12 -7
  58. package/lib/core/network/clientConnection.js +1 -1
  59. package/lib/core/network/context.js +1 -1
  60. package/lib/core/network/entryPoint.js +6 -6
  61. package/lib/core/network/httpRouter/index.js +1 -1
  62. package/lib/core/network/httpRouter/routeHandler.js +1 -1
  63. package/lib/core/network/httpRouter/routePart.js +1 -1
  64. package/lib/core/network/protocolManifest.js +1 -1
  65. package/lib/core/network/protocols/httpMessage.js +1 -1
  66. package/lib/core/network/protocols/httpwsProtocol.js +5 -10
  67. package/lib/core/network/protocols/internalProtocol.js +1 -1
  68. package/lib/core/network/protocols/mqttProtocol.js +4 -3
  69. package/lib/core/network/protocols/protocol.js +1 -1
  70. package/lib/core/network/router.js +11 -2
  71. package/lib/core/plugin/plugin.js +1 -1
  72. package/lib/core/plugin/pluginContext.js +1 -1
  73. package/lib/core/plugin/pluginManifest.js +1 -1
  74. package/lib/core/plugin/pluginRepository.js +1 -1
  75. package/lib/core/plugin/pluginsManager.js +1 -1
  76. package/lib/core/plugin/privilegedContext.js +1 -1
  77. package/lib/core/realtime/actionEnum.js +1 -1
  78. package/lib/core/realtime/channel.js +1 -1
  79. package/lib/core/realtime/connectionRooms.js +1 -1
  80. package/lib/core/realtime/hotelClerk.js +66 -24
  81. package/lib/core/realtime/index.js +1 -1
  82. package/lib/core/realtime/notification/document.js +1 -1
  83. package/lib/core/realtime/notification/index.js +1 -1
  84. package/lib/core/realtime/notification/server.js +1 -1
  85. package/lib/core/realtime/notification/user.js +1 -1
  86. package/lib/core/realtime/notifier.js +1 -1
  87. package/lib/core/realtime/room.js +1 -1
  88. package/lib/core/realtime/subscription.js +1 -1
  89. package/lib/core/security/index.js +1 -1
  90. package/lib/core/security/profileRepository.js +1 -1
  91. package/lib/core/security/roleRepository.js +1 -1
  92. package/lib/core/security/securityLoader.js +1 -1
  93. package/lib/core/security/tokenRepository.js +1 -1
  94. package/lib/core/security/userRepository.js +1 -1
  95. package/lib/core/shared/KoncordeWrapper.js +1 -1
  96. package/lib/core/shared/abstractManifest.js +1 -1
  97. package/lib/core/shared/repository.js +1 -1
  98. package/lib/core/shared/sdk/embeddedSdk.js +4 -3
  99. package/lib/core/shared/sdk/funnelProtocol.d.ts +14 -0
  100. package/lib/core/shared/sdk/funnelProtocol.js +76 -81
  101. package/lib/core/shared/sdk/impersonatedSdk.js +1 -1
  102. package/lib/core/shared/store.js +1 -1
  103. package/lib/core/statistics/index.js +1 -1
  104. package/lib/core/statistics/statistics.js +1 -1
  105. package/lib/core/storage/clientAdapter.js +5 -5
  106. package/lib/core/storage/indexCache.js +1 -1
  107. package/lib/core/storage/storageEngine.js +1 -1
  108. package/lib/core/storage/storeScopeEnum.js +1 -1
  109. package/lib/core/validation/baseType.js +1 -1
  110. package/lib/core/validation/index.js +1 -1
  111. package/lib/core/validation/types/anything.js +1 -1
  112. package/lib/core/validation/types/boolean.js +1 -1
  113. package/lib/core/validation/types/date.js +1 -1
  114. package/lib/core/validation/types/email.js +1 -1
  115. package/lib/core/validation/types/enum.js +1 -1
  116. package/lib/core/validation/types/geoPoint.js +1 -1
  117. package/lib/core/validation/types/geoShape.js +1 -1
  118. package/lib/core/validation/types/integer.js +1 -1
  119. package/lib/core/validation/types/ipAddress.js +1 -1
  120. package/lib/core/validation/types/numeric.js +1 -1
  121. package/lib/core/validation/types/object.js +1 -1
  122. package/lib/core/validation/types/string.js +1 -1
  123. package/lib/core/validation/types/url.js +1 -1
  124. package/lib/core/validation/validation.js +1 -1
  125. package/lib/kerror/codes/index.js +1 -1
  126. package/lib/kerror/errors/badRequestError.js +1 -1
  127. package/lib/kerror/errors/externalServiceError.js +1 -1
  128. package/lib/kerror/errors/forbiddenError.js +1 -1
  129. package/lib/kerror/errors/gatewayTimeoutError.js +1 -1
  130. package/lib/kerror/errors/index.js +1 -1
  131. package/lib/kerror/errors/internalError.js +1 -1
  132. package/lib/kerror/errors/kuzzleError.js +1 -1
  133. package/lib/kerror/errors/multipleErrorsError.js +1 -1
  134. package/lib/kerror/errors/notFoundError.js +1 -1
  135. package/lib/kerror/errors/partialError.js +1 -1
  136. package/lib/kerror/errors/pluginImplementationError.js +1 -1
  137. package/lib/kerror/errors/preconditionError.js +1 -1
  138. package/lib/kerror/errors/serviceUnavailableError.js +1 -1
  139. package/lib/kerror/errors/sizeLimitError.js +1 -1
  140. package/lib/kerror/errors/tooManyRequestsError.js +1 -1
  141. package/lib/kerror/errors/unauthorizedError.js +1 -1
  142. package/lib/kerror/index.js +2 -4
  143. package/lib/kuzzle/dumpGenerator.js +1 -1
  144. package/lib/kuzzle/event/kuzzleEventEmitter.js +39 -1
  145. package/lib/kuzzle/event/pipeRunner.js +1 -1
  146. package/lib/kuzzle/event/waterfall.js +1 -1
  147. package/lib/kuzzle/index.js +1 -1
  148. package/lib/kuzzle/internalIndexHandler.js +1 -1
  149. package/lib/kuzzle/kuzzle.js +1 -1
  150. package/lib/kuzzle/kuzzleStateEnum.js +1 -1
  151. package/lib/kuzzle/log.js +1 -1
  152. package/lib/kuzzle/vault.js +1 -1
  153. package/lib/model/security/profile.js +1 -1
  154. package/lib/model/security/rights.js +1 -1
  155. package/lib/model/security/role.js +1 -1
  156. package/lib/model/security/token.js +1 -1
  157. package/lib/model/security/user.js +1 -1
  158. package/lib/model/storage/apiKey.js +1 -1
  159. package/lib/model/storage/baseModel.js +1 -1
  160. package/lib/service/cache/redis.js +1 -1
  161. package/lib/service/service.js +1 -1
  162. package/lib/service/storage/elasticsearch.js +10 -9
  163. package/lib/service/storage/esWrapper.js +1 -1
  164. package/lib/service/storage/queryTranslator.js +1 -1
  165. package/lib/types/Controller.js +1 -1
  166. package/lib/types/ControllerDefinition.js +1 -1
  167. package/lib/types/Deprecation.js +1 -1
  168. package/lib/types/EventHandler.js +1 -1
  169. package/lib/types/KuzzleDocument.d.ts +3 -0
  170. package/lib/types/Plugin.js +1 -1
  171. package/lib/types/PluginManifest.js +1 -1
  172. package/lib/types/RequestPayload.js +1 -1
  173. package/lib/types/ResponsePayload.js +1 -1
  174. package/lib/types/StrategyDefinition.js +1 -1
  175. package/lib/types/Token.js +1 -1
  176. package/lib/types/User.js +1 -1
  177. package/lib/types/index.js +1 -1
  178. package/lib/util/array.js +1 -1
  179. package/lib/util/assertType.js +1 -1
  180. package/lib/util/asyncStore.js +1 -1
  181. package/lib/util/debug.js +1 -1
  182. package/lib/util/deprecate.js +1 -1
  183. package/lib/util/didYouMean.js +1 -1
  184. package/lib/util/extractFields.js +1 -1
  185. package/lib/util/inflector.js +1 -1
  186. package/lib/util/koncordeCompat.js +1 -1
  187. package/lib/util/memoize.js +1 -1
  188. package/lib/util/mutex.js +1 -1
  189. package/lib/util/name-generator.js +1 -1
  190. package/lib/util/promback.js +1 -1
  191. package/lib/util/requestAssertions.js +1 -1
  192. package/lib/util/safeObject.js +1 -1
  193. package/lib/util/stackTrace.js +56 -17
  194. package/lib/util/wildcard.js +1 -1
  195. package/package-lock.json +101 -97
  196. package/package.json +13 -12
  197. package/lib/core/network/removeErrorStack.js +0 -56
@@ -2,7 +2,7 @@
2
2
  * Kuzzle, a backend software, self-hostable and ready to use
3
3
  * to power modern apps
4
4
  *
5
- * Copyright 2015-2020 Kuzzle
5
+ * Copyright 2015-2022 Kuzzle
6
6
  * mailto: support AT kuzzle.io
7
7
  * website: http://kuzzle.io
8
8
  *
@@ -361,7 +361,7 @@ class ElasticSearch extends Service {
361
361
  for (const target of targets) {
362
362
  for (const targetCollection of target.collections) {
363
363
  const alias = this._getAlias(target.index, targetCollection);
364
-
364
+
365
365
  indexes.add(alias);
366
366
  }
367
367
  }
@@ -415,10 +415,10 @@ class ElasticSearch extends Service {
415
415
  }
416
416
 
417
417
  async _formatSearchResult (body) {
418
-
418
+
419
419
  const formatHit = async (hit) => {
420
420
  let alias = null;
421
-
421
+
422
422
  if (hit._index) {
423
423
  alias = await this._getAliasFromIndice(hit._index);
424
424
  }
@@ -1566,7 +1566,8 @@ class ElasticSearch extends Service {
1566
1566
  index,
1567
1567
  collection,
1568
1568
  documents,
1569
- { refresh, timeout, userId = null } = {}) {
1569
+ { refresh, timeout, userId = null } = {},
1570
+ ) {
1570
1571
  const alias = this._getAlias(index, collection);
1571
1572
  const actionNames = ['index', 'create', 'update', 'delete'];
1572
1573
  const dateNow = Date.now();
@@ -2147,7 +2148,7 @@ class ElasticSearch extends Service {
2147
2148
  index,
2148
2149
  collection,
2149
2150
  documents,
2150
- { refresh, timeout, userId = null, injectKuzzleMeta = true, limits = true } = {}) {
2151
+ { refresh, timeout, userId = null, injectKuzzleMeta = true, limits = true, source = true } = {}) {
2151
2152
  let kuzzleMeta = {};
2152
2153
 
2153
2154
  if (injectKuzzleMeta) {
@@ -2191,7 +2192,7 @@ class ElasticSearch extends Service {
2191
2192
  }
2192
2193
  /* end critical code section */
2193
2194
 
2194
- return this._mExecute(esRequest, extractedDocuments, rejected, { limits });
2195
+ return this._mExecute(esRequest, extractedDocuments, rejected, { limits, source });
2195
2196
  }
2196
2197
 
2197
2198
  /**
@@ -2563,7 +2564,7 @@ class ElasticSearch extends Service {
2563
2564
  *
2564
2565
  * @returns {Promise.<Object[]>} results
2565
2566
  */
2566
- async _mExecute (esRequest, documents, partialErrors, { limits = true } = {}) {
2567
+ async _mExecute (esRequest, documents, partialErrors, { limits = true, source = true } = {}) {
2567
2568
  assertWellFormedRefresh(esRequest);
2568
2569
 
2569
2570
  if ( limits
@@ -2617,7 +2618,7 @@ class ElasticSearch extends Service {
2617
2618
  else {
2618
2619
  successes.push({
2619
2620
  _id: result._id,
2620
- _source: documents[i]._source,
2621
+ _source: source ? documents[i]._source : undefined,
2621
2622
  _version: result._version,
2622
2623
  created: result.result === 'created',
2623
2624
  get: result.get,
@@ -2,7 +2,7 @@
2
2
  * Kuzzle, a backend software, self-hostable and ready to use
3
3
  * to power modern apps
4
4
  *
5
- * Copyright 2015-2020 Kuzzle
5
+ * Copyright 2015-2022 Kuzzle
6
6
  * mailto: support AT kuzzle.io
7
7
  * website: http://kuzzle.io
8
8
  *
@@ -2,7 +2,7 @@
2
2
  * Kuzzle, a backend software, self-hostable and ready to use
3
3
  * to power modern apps
4
4
  *
5
- * Copyright 2015-2020 Kuzzle
5
+ * Copyright 2015-2022 Kuzzle
6
6
  * mailto: support AT kuzzle.io
7
7
  * website: http://kuzzle.io
8
8
  *
@@ -3,7 +3,7 @@
3
3
  * Kuzzle, a backend software, self-hostable and ready to use
4
4
  * to power modern apps
5
5
  *
6
- * Copyright 2015-2020 Kuzzle
6
+ * Copyright 2015-2022 Kuzzle
7
7
  * mailto: support AT kuzzle.io
8
8
  * website: http://kuzzle.io
9
9
  *
@@ -3,7 +3,7 @@
3
3
  * Kuzzle, a backend software, self-hostable and ready to use
4
4
  * to power modern apps
5
5
  *
6
- * Copyright 2015-2020 Kuzzle
6
+ * Copyright 2015-2022 Kuzzle
7
7
  * mailto: support AT kuzzle.io
8
8
  * website: http://kuzzle.io
9
9
  *
@@ -3,7 +3,7 @@
3
3
  * Kuzzle, a backend software, self-hostable and ready to use
4
4
  * to power modern apps
5
5
  *
6
- * Copyright 2015-2020 Kuzzle
6
+ * Copyright 2015-2022 Kuzzle
7
7
  * mailto: support AT kuzzle.io
8
8
  * website: http://kuzzle.io
9
9
  *
@@ -3,7 +3,7 @@
3
3
  * Kuzzle, a backend software, self-hostable and ready to use
4
4
  * to power modern apps
5
5
  *
6
- * Copyright 2015-2020 Kuzzle
6
+ * Copyright 2015-2022 Kuzzle
7
7
  * mailto: support AT kuzzle.io
8
8
  * website: http://kuzzle.io
9
9
  *
@@ -1,4 +1,7 @@
1
1
  import { JSONObject } from 'kuzzle-sdk';
2
+ /**
3
+ * @deprecated Use KDocument instead (See https://docs.kuzzle.io/sdk/js/7/essentials/strong-typing/)
4
+ */
2
5
  export interface KuzzleDocument {
3
6
  _id: string;
4
7
  _source: JSONObject;
@@ -3,7 +3,7 @@
3
3
  * Kuzzle, a backend software, self-hostable and ready to use
4
4
  * to power modern apps
5
5
  *
6
- * Copyright 2015-2020 Kuzzle
6
+ * Copyright 2015-2022 Kuzzle
7
7
  * mailto: support AT kuzzle.io
8
8
  * website: http://kuzzle.io
9
9
  *
@@ -3,7 +3,7 @@
3
3
  * Kuzzle, a backend software, self-hostable and ready to use
4
4
  * to power modern apps
5
5
  *
6
- * Copyright 2015-2020 Kuzzle
6
+ * Copyright 2015-2022 Kuzzle
7
7
  * mailto: support AT kuzzle.io
8
8
  * website: http://kuzzle.io
9
9
  *
@@ -3,7 +3,7 @@
3
3
  * Kuzzle, a backend software, self-hostable and ready to use
4
4
  * to power modern apps
5
5
  *
6
- * Copyright 2015-2020 Kuzzle
6
+ * Copyright 2015-2022 Kuzzle
7
7
  * mailto: support AT kuzzle.io
8
8
  * website: http://kuzzle.io
9
9
  *
@@ -3,7 +3,7 @@
3
3
  * Kuzzle, a backend software, self-hostable and ready to use
4
4
  * to power modern apps
5
5
  *
6
- * Copyright 2015-2020 Kuzzle
6
+ * Copyright 2015-2022 Kuzzle
7
7
  * mailto: support AT kuzzle.io
8
8
  * website: http://kuzzle.io
9
9
  *
@@ -3,7 +3,7 @@
3
3
  * Kuzzle, a backend software, self-hostable and ready to use
4
4
  * to power modern apps
5
5
  *
6
- * Copyright 2015-2020 Kuzzle
6
+ * Copyright 2015-2022 Kuzzle
7
7
  * mailto: support AT kuzzle.io
8
8
  * website: http://kuzzle.io
9
9
  *
@@ -3,7 +3,7 @@
3
3
  * Kuzzle, a backend software, self-hostable and ready to use
4
4
  * to power modern apps
5
5
  *
6
- * Copyright 2015-2020 Kuzzle
6
+ * Copyright 2015-2022 Kuzzle
7
7
  * mailto: support AT kuzzle.io
8
8
  * website: http://kuzzle.io
9
9
  *
package/lib/types/User.js CHANGED
@@ -3,7 +3,7 @@
3
3
  * Kuzzle, a backend software, self-hostable and ready to use
4
4
  * to power modern apps
5
5
  *
6
- * Copyright 2015-2020 Kuzzle
6
+ * Copyright 2015-2022 Kuzzle
7
7
  * mailto: support AT kuzzle.io
8
8
  * website: http://kuzzle.io
9
9
  *
@@ -3,7 +3,7 @@
3
3
  * Kuzzle, a backend software, self-hostable and ready to use
4
4
  * to power modern apps
5
5
  *
6
- * Copyright 2015-2020 Kuzzle
6
+ * Copyright 2015-2022 Kuzzle
7
7
  * mailto: support AT kuzzle.io
8
8
  * website: http://kuzzle.io
9
9
  *
package/lib/util/array.js CHANGED
@@ -3,7 +3,7 @@
3
3
  * Kuzzle, a backend software, self-hostable and ready to use
4
4
  * to power modern apps
5
5
  *
6
- * Copyright 2015-2020 Kuzzle
6
+ * Copyright 2015-2022 Kuzzle
7
7
  * mailto: support AT kuzzle.io
8
8
  * website: http://kuzzle.io
9
9
  *
@@ -2,7 +2,7 @@
2
2
  * Kuzzle, a backend software, self-hostable and ready to use
3
3
  * to power modern apps
4
4
  *
5
- * Copyright 2015-2020 Kuzzle
5
+ * Copyright 2015-2022 Kuzzle
6
6
  * mailto: support AT kuzzle.io
7
7
  * website: http://kuzzle.io
8
8
  *
@@ -2,7 +2,7 @@
2
2
  * Kuzzle, a backend software, self-hostable and ready to use
3
3
  * to power modern apps
4
4
  *
5
- * Copyright 2015-2020 Kuzzle
5
+ * Copyright 2015-2022 Kuzzle
6
6
  * mailto: support AT kuzzle.io
7
7
  * website: http://kuzzle.io
8
8
  *
package/lib/util/debug.js CHANGED
@@ -2,7 +2,7 @@
2
2
  * Kuzzle, a backend software, self-hostable and ready to use
3
3
  * to power modern apps
4
4
  *
5
- * Copyright 2015-2020 Kuzzle
5
+ * Copyright 2015-2022 Kuzzle
6
6
  * mailto: support AT kuzzle.io
7
7
  * website: http://kuzzle.io
8
8
  *
@@ -2,7 +2,7 @@
2
2
  * Kuzzle, a backend software, self-hostable and ready to use
3
3
  * to power modern apps
4
4
  *
5
- * Copyright 2015-2020 Kuzzle
5
+ * Copyright 2015-2022 Kuzzle
6
6
  * mailto: support AT kuzzle.io
7
7
  * website: http://kuzzle.io
8
8
  *
@@ -2,7 +2,7 @@
2
2
  * Kuzzle, a backend software, self-hostable and ready to use
3
3
  * to power modern apps
4
4
  *
5
- * Copyright 2015-2020 Kuzzle
5
+ * Copyright 2015-2022 Kuzzle
6
6
  * mailto: support AT kuzzle.io
7
7
  * website: http://kuzzle.io
8
8
  *
@@ -2,7 +2,7 @@
2
2
  * Kuzzle, a backend software, self-hostable and ready to use
3
3
  * to power modern apps
4
4
  *
5
- * Copyright 2015-2020 Kuzzle
5
+ * Copyright 2015-2022 Kuzzle
6
6
  * mailto: support AT kuzzle.io
7
7
  * website: http://kuzzle.io
8
8
  *
@@ -3,7 +3,7 @@
3
3
  * Kuzzle, a backend software, self-hostable and ready to use
4
4
  * to power modern apps
5
5
  *
6
- * Copyright 2015-2020 Kuzzle
6
+ * Copyright 2015-2022 Kuzzle
7
7
  * mailto: support AT kuzzle.io
8
8
  * website: http://kuzzle.io
9
9
  *
@@ -3,7 +3,7 @@
3
3
  * Kuzzle, a backend software, self-hostable and ready to use
4
4
  * to power modern apps
5
5
  *
6
- * Copyright 2015-2020 Kuzzle
6
+ * Copyright 2015-2022 Kuzzle
7
7
  * mailto: support AT kuzzle.io
8
8
  * website: http://kuzzle.io
9
9
  *
@@ -2,7 +2,7 @@
2
2
  * Kuzzle, a backend software, self-hostable and ready to use
3
3
  * to power modern apps
4
4
  *
5
- * Copyright 2015-2020 Kuzzle
5
+ * Copyright 2015-2022 Kuzzle
6
6
  * mailto: support AT kuzzle.io
7
7
  * website: http://kuzzle.io
8
8
  *
package/lib/util/mutex.js CHANGED
@@ -3,7 +3,7 @@
3
3
  * Kuzzle, a backend software, self-hostable and ready to use
4
4
  * to power modern apps
5
5
  *
6
- * Copyright 2015-2020 Kuzzle
6
+ * Copyright 2015-2022 Kuzzle
7
7
  * mailto: support AT kuzzle.io
8
8
  * website: http://kuzzle.io
9
9
  *
@@ -2,7 +2,7 @@
2
2
  * Kuzzle, a backend software, self-hostable and ready to use
3
3
  * to power modern apps
4
4
  *
5
- * Copyright 2015-2020 Kuzzle
5
+ * Copyright 2015-2022 Kuzzle
6
6
  * mailto: support AT kuzzle.io
7
7
  * website: http://kuzzle.io
8
8
  *
@@ -2,7 +2,7 @@
2
2
  * Kuzzle, a backend software, self-hostable and ready to use
3
3
  * to power modern apps
4
4
  *
5
- * Copyright 2015-2020 Kuzzle
5
+ * Copyright 2015-2022 Kuzzle
6
6
  * mailto: support AT kuzzle.io
7
7
  * website: http://kuzzle.io
8
8
  *
@@ -2,7 +2,7 @@
2
2
  * Kuzzle, a backend software, self-hostable and ready to use
3
3
  * to power modern apps
4
4
  *
5
- * Copyright 2015-2020 Kuzzle
5
+ * Copyright 2015-2022 Kuzzle
6
6
  * mailto: support AT kuzzle.io
7
7
  * website: http://kuzzle.io
8
8
  *
@@ -2,7 +2,7 @@
2
2
  * Kuzzle, a backend software, self-hostable and ready to use
3
3
  * to power modern apps
4
4
  *
5
- * Copyright 2015-2020 Kuzzle
5
+ * Copyright 2015-2022 Kuzzle
6
6
  * mailto: support AT kuzzle.io
7
7
  * website: http://kuzzle.io
8
8
  *
@@ -2,7 +2,7 @@
2
2
  * Kuzzle, a backend software, self-hostable and ready to use
3
3
  * to power modern apps
4
4
  *
5
- * Copyright 2015-2020 Kuzzle
5
+ * Copyright 2015-2022 Kuzzle
6
6
  * mailto: support AT kuzzle.io
7
7
  * website: http://kuzzle.io
8
8
  *
@@ -21,33 +21,72 @@
21
21
 
22
22
  'use strict';
23
23
 
24
+ const util = require('util');
25
+
26
+ const MARKER = '>';
27
+ const PADDING = ' ';
28
+
24
29
  /**
25
- * Hilight user code
26
- *
27
- * e.g.
28
- * at BackendController._add (/home/kuzzle/lib/core/application/backend.ts:261:28)
29
- * at BackendController.register (/home/kuzzle/lib/core/application/backend.ts:187:10)
30
- * > at registerFoo (/home/aschen/projets/app/test.ts:12:18)
31
- * > at init (/home/aschen/projets/app/test.ts:8:3)
32
- * at Module._compile (internal/modules/cjs/loader.js:1133:30)
33
- */
30
+ * Hilight user code
31
+ *
32
+ * e.g.
33
+ * at BackendController._add (/home/kuzzle/lib/core/application/backend.ts:261:28)
34
+ * at BackendController.register (/home/kuzzle/lib/core/application/backend.ts:187:10)
35
+ * >>>> at registerFoo (/home/aschen/projets/app/test.ts:12:18)
36
+ * >>>> at init (/home/aschen/projets/app/test.ts:8:3)
37
+ * at Module._compile (internal/modules/cjs/loader.js:1133:30)
38
+ */
34
39
  function hilightUserCode (line) {
35
40
  // ignore first line (error message) or already enhanced
36
- if (! line.includes(' at ') || line.startsWith('>')) {
41
+ if (! line.includes(' at ') || line.startsWith(MARKER)) {
37
42
  return line;
38
43
  }
39
44
 
40
- if ( line.includes('kuzzle/lib/') // ignore kuzzle code
41
- || (line.indexOf('at /') === -1 && line.charAt(line.indexOf('(') + 1) !== '/') // ignore node internal
42
- || line.includes('node_modules') // ignore dependencies
43
- ) {
44
- return ' ' + line;
45
+ const isKuzzleCode = line.includes('kuzzle/lib/');
46
+ const isNodeCode = ! line.includes('at /')
47
+ && ! line.includes('at async /')
48
+ && line.charAt(line.indexOf('(') + 1) !== '/';
49
+ const isModuleCode = line.includes('node_modules');
50
+ if (isKuzzleCode || isNodeCode || isModuleCode) {
51
+ return PADDING + line;
45
52
  }
46
53
 
47
54
  // hilight user code
48
- return '>' + line;
55
+ return MARKER + line;
56
+ }
57
+
58
+ /**
59
+ * utility method: must be invoked by all protocols to remove stack traces
60
+ * from payloads before sending them
61
+ * @param {Error|Object} data - expected: plain error object or serialized
62
+ * request response
63
+ * @returns {*} return the data minus the stack trace
64
+ */
65
+ function removeStacktrace (data) {
66
+ if (util.types.isNativeError(data)) {
67
+ if (global.NODE_ENV !== 'development') {
68
+ data.stack = undefined;
69
+ }
70
+ else {
71
+ data.stack = data.stack.split('\n').map(hilightUserCode).join('\n');
72
+ }
73
+ }
74
+ else if (data && data.content && data.content.error) {
75
+ // @todo v3: stack should be removed only for "production" env
76
+ if (global.NODE_ENV !== 'development') {
77
+ data.content.error.stack = undefined;
78
+ }
79
+ else {
80
+ data.content.error.stack = data.content.error.stack
81
+ ? data.content.error.stack.split('\n').map(hilightUserCode).join('\n')
82
+ : undefined;
83
+ }
84
+ }
85
+
86
+ return data;
49
87
  }
50
88
 
51
89
  module.exports = {
52
90
  hilightUserCode,
91
+ removeStacktrace,
53
92
  };
@@ -2,7 +2,7 @@
2
2
  * Kuzzle, a backend software, self-hostable and ready to use
3
3
  * to power modern apps
4
4
  *
5
- * Copyright 2015-2020 Kuzzle
5
+ * Copyright 2015-2022 Kuzzle
6
6
  * mailto: support AT kuzzle.io
7
7
  * website: http://kuzzle.io
8
8
  *