@zowe/db2-for-zowe-cli 6.1.17 → 6.1.18

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 (232) hide show
  1. package/README.md +12 -10
  2. package/lib/Db2PluginLifeCycle.d.ts +11 -9
  3. package/lib/Db2PluginLifeCycle.js +18 -13
  4. package/lib/Db2PluginLifeCycle.js.map +1 -1
  5. package/node_modules/axios/CHANGELOG.md +62 -0
  6. package/node_modules/axios/README.md +233 -5
  7. package/node_modules/axios/dist/axios.js +387 -89
  8. package/node_modules/axios/dist/axios.min.js +3 -3
  9. package/node_modules/axios/dist/axios.min.js.map +1 -1
  10. package/node_modules/axios/dist/browser/axios.cjs +458 -98
  11. package/node_modules/axios/dist/esm/axios.js +458 -98
  12. package/node_modules/axios/dist/esm/axios.min.js +2 -2
  13. package/node_modules/axios/dist/esm/axios.min.js.map +1 -1
  14. package/node_modules/axios/dist/node/axios.cjs +568 -116
  15. package/node_modules/axios/index.d.cts +4 -0
  16. package/node_modules/axios/index.d.ts +4 -0
  17. package/node_modules/axios/lib/adapters/fetch.js +64 -11
  18. package/node_modules/axios/lib/adapters/http.js +134 -50
  19. package/node_modules/axios/lib/adapters/xhr.js +52 -3
  20. package/node_modules/axios/lib/core/Axios.js +19 -14
  21. package/node_modules/axios/lib/core/InterceptorManager.js +107 -8
  22. package/node_modules/axios/lib/core/buildFullPath.js +1 -13
  23. package/node_modules/axios/lib/core/dispatchRequest.js +8 -2
  24. package/node_modules/axios/lib/core/mergeConfig.js +1 -1
  25. package/node_modules/axios/lib/core/methodList.js +17 -0
  26. package/node_modules/axios/lib/defaults/index.js +2 -1
  27. package/node_modules/axios/lib/env/data.js +1 -1
  28. package/node_modules/axios/lib/helpers/Http2Sessions.js +2 -0
  29. package/node_modules/axios/lib/helpers/HttpStatusCode.js +11 -1
  30. package/node_modules/axios/lib/helpers/fromDataURI.js +5 -4
  31. package/node_modules/axios/lib/helpers/normalizeURLForProtocolCheck.js +24 -0
  32. package/node_modules/axios/lib/helpers/progressEventReducer.js +1 -1
  33. package/node_modules/axios/lib/helpers/resolveConfig.js +4 -2
  34. package/node_modules/axios/lib/helpers/shouldBypassProxy.js +182 -6
  35. package/node_modules/axios/lib/helpers/throttle.js +3 -2
  36. package/node_modules/axios/lib/helpers/toFormData.js +14 -21
  37. package/node_modules/axios/lib/utils.js +134 -13
  38. package/node_modules/axios/package.json +1 -1
  39. package/node_modules/ibm_db/APIDocumentation.md +2883 -2024
  40. package/node_modules/ibm_db/LICENSE +23 -23
  41. package/node_modules/ibm_db/README.md +735 -735
  42. package/node_modules/ibm_db/binding.gyp +99 -98
  43. package/node_modules/ibm_db/installer/driverInstall.js +984 -958
  44. package/node_modules/ibm_db/installer/ifx.sh +38 -38
  45. package/node_modules/ibm_db/installer/setenv.sh +23 -23
  46. package/node_modules/ibm_db/installer/testODBCConnection.bat +51 -51
  47. package/node_modules/ibm_db/installer/testODBCConnection.sh +61 -61
  48. package/node_modules/ibm_db/lib/climacros.js +431 -431
  49. package/node_modules/ibm_db/lib/odbc.js +4293 -3487
  50. package/node_modules/ibm_db/lib/simple-queue.js +41 -41
  51. package/node_modules/ibm_db/package.json +70 -70
  52. package/node_modules/ibm_db/src/odbc.cpp +1495 -1396
  53. package/node_modules/ibm_db/src/odbc.h +477 -473
  54. package/node_modules/ibm_db/src/odbc_connection.cpp +1762 -1612
  55. package/node_modules/ibm_db/src/odbc_connection.h +228 -215
  56. package/node_modules/ibm_db/src/odbc_result.cpp +1547 -1547
  57. package/node_modules/ibm_db/src/odbc_result.h +152 -152
  58. package/node_modules/ibm_db/src/odbc_statement.cpp +2047 -861
  59. package/node_modules/ibm_db/src/odbc_statement.h +257 -135
  60. package/node_modules/ibm_db/src/strptime.c +389 -389
  61. package/node_modules/ibm_db/src/strptime.h +46 -46
  62. package/node_modules/ibm_db/test/README +23 -23
  63. package/node_modules/ibm_db/test/bench-insert.js +62 -62
  64. package/node_modules/ibm_db/test/bench-insertBatch10.js +74 -74
  65. package/node_modules/ibm_db/test/bench-insertBatch100.js +75 -75
  66. package/node_modules/ibm_db/test/bench-insertBatch1000.js +75 -75
  67. package/node_modules/ibm_db/test/bench-insertBatch10000.js +75 -75
  68. package/node_modules/ibm_db/test/bench-prepare-bind-execute-closeSync.js +60 -60
  69. package/node_modules/ibm_db/test/bench-prepare-bind-executeNonQuery.js +53 -53
  70. package/node_modules/ibm_db/test/bench-prepare-bindSync-execute-closeSync.js +50 -50
  71. package/node_modules/ibm_db/test/bench-prepare-bindSync-executeNonQuery.js +48 -48
  72. package/node_modules/ibm_db/test/bench-prepare-execute-closeSync.js +51 -51
  73. package/node_modules/ibm_db/test/bench-prepare-executeNonQuery.js +47 -47
  74. package/node_modules/ibm_db/test/bench-prepare-not.js +43 -43
  75. package/node_modules/ibm_db/test/bench-query-fetch.js +59 -59
  76. package/node_modules/ibm_db/test/bench-query-fetchAll.js +49 -49
  77. package/node_modules/ibm_db/test/bench-query-fetchAllSync.js +43 -43
  78. package/node_modules/ibm_db/test/bench-query.js +40 -40
  79. package/node_modules/ibm_db/test/bench-querySync-fetchArray.js +28 -28
  80. package/node_modules/ibm_db/test/bench-querySync.js +29 -29
  81. package/node_modules/ibm_db/test/common.d.ts +10 -10
  82. package/node_modules/ibm_db/test/common.js +127 -127
  83. package/node_modules/ibm_db/test/config.json +7 -7
  84. package/node_modules/ibm_db/test/config.zos.json +4 -4
  85. package/node_modules/ibm_db/test/data/sample1.txt +9 -9
  86. package/node_modules/ibm_db/test/data/trc.fmt +30114 -30114
  87. package/node_modules/ibm_db/test/nodeEE-leak-huge-query.js +152 -152
  88. package/node_modules/ibm_db/test/nodeEE-leak-multiple-query-multiple-connections.js +148 -148
  89. package/node_modules/ibm_db/test/nodeEE-leak-multiple-query-pool-connections.js +154 -154
  90. package/node_modules/ibm_db/test/nodeEE-leak-multiple-query.js +133 -133
  91. package/node_modules/ibm_db/test/nodeEE-stress-async-waterfall-multiple-connections.js +174 -174
  92. package/node_modules/ibm_db/test/nodeEE-stress-async-waterfall.js +169 -169
  93. package/node_modules/ibm_db/test/nodeEE-stress-mixed-query-multiple-connections.js +159 -159
  94. package/node_modules/ibm_db/test/nodeEE-stress-mixed-query.js +148 -148
  95. package/node_modules/ibm_db/test/odbc-bench.c +123 -123
  96. package/node_modules/ibm_db/test/perfTest.js +53 -53
  97. package/node_modules/ibm_db/test/quick-example.sh +30 -30
  98. package/node_modules/ibm_db/test/quick-example.ts +80 -80
  99. package/node_modules/ibm_db/test/run-bench.js +96 -96
  100. package/node_modules/ibm_db/test/run-nodeEE.js +132 -132
  101. package/node_modules/ibm_db/test/run-tests.js +132 -138
  102. package/node_modules/ibm_db/test/sql-cli.js +28 -28
  103. package/node_modules/ibm_db/test/test-all-data-types.js +109 -109
  104. package/node_modules/ibm_db/test/test-array-insert.js +178 -178
  105. package/node_modules/ibm_db/test/test-async-await.js +105 -105
  106. package/node_modules/ibm_db/test/test-attributes.js +34 -34
  107. package/node_modules/ibm_db/test/test-bad-pool-connection-prepare-execute.js +57 -57
  108. package/node_modules/ibm_db/test/test-basic-test.js +138 -138
  109. package/node_modules/ibm_db/test/test-binary-array-insert.js +73 -73
  110. package/node_modules/ibm_db/test/test-blob-from-file.js +90 -90
  111. package/node_modules/ibm_db/test/test-blob-insert.js +144 -144
  112. package/node_modules/ibm_db/test/test-blob-stream-insert.js +321 -299
  113. package/node_modules/ibm_db/test/test-blob-to-file.js +370 -370
  114. package/node_modules/ibm_db/test/test-block-fetch.js +364 -364
  115. package/node_modules/ibm_db/test/test-blocking-issue210.js +123 -123
  116. package/node_modules/ibm_db/test/test-call-async.js +64 -64
  117. package/node_modules/ibm_db/test/test-call-stmt.js +53 -53
  118. package/node_modules/ibm_db/test/test-cancel.js +703 -0
  119. package/node_modules/ibm_db/test/test-chinese-char.js +59 -59
  120. package/node_modules/ibm_db/test/test-connection.js +306 -0
  121. package/node_modules/ibm_db/test/test-date.js +32 -32
  122. package/node_modules/ibm_db/test/test-dbclob.js +93 -93
  123. package/node_modules/ibm_db/test/test-decimals.js +135 -135
  124. package/node_modules/ibm_db/test/test-describe-metadata.js +148 -0
  125. package/node_modules/ibm_db/test/test-executeFile.js +167 -167
  126. package/node_modules/ibm_db/test/test-executeFileSync.js +85 -85
  127. package/node_modules/ibm_db/test/test-fetch-apis.js +146 -146
  128. package/node_modules/ibm_db/test/test-fetchN.js +130 -130
  129. package/node_modules/ibm_db/test/test-getinfo.js +197 -197
  130. package/node_modules/ibm_db/test/test-ibm-db-issue14.js +58 -58
  131. package/node_modules/ibm_db/test/test-ibm-db-issue17.js +54 -54
  132. package/node_modules/ibm_db/test/test-ibm-db-issue18.js +54 -54
  133. package/node_modules/ibm_db/test/test-issue-1059-fetchAll-undefined.js +67 -67
  134. package/node_modules/ibm_db/test/test-issue-1080-array-blob-insert.js +40 -0
  135. package/node_modules/ibm_db/test/test-issue-54.js +39 -39
  136. package/node_modules/ibm_db/test/test-issue-get-column-value-2.js +44 -44
  137. package/node_modules/ibm_db/test/test-issue211.js +80 -80
  138. package/node_modules/ibm_db/test/test-issue253.js +39 -39
  139. package/node_modules/ibm_db/test/test-max-pool-size.js +96 -96
  140. package/node_modules/ibm_db/test/test-memory-leaks-new-objects.js +32 -32
  141. package/node_modules/ibm_db/test/test-multi-open-query-close.js +75 -75
  142. package/node_modules/ibm_db/test/test-param-put-data.js +713 -0
  143. package/node_modules/ibm_db/test/test-pool-idle-connection.js +72 -72
  144. package/node_modules/ibm_db/test/test-pool-operations.js +325 -0
  145. package/node_modules/ibm_db/test/test-pool-stale-connections.js +111 -111
  146. package/node_modules/ibm_db/test/test-pool-uncommited.js +33 -33
  147. package/node_modules/ibm_db/test/test-prepare-execute.js +339 -0
  148. package/node_modules/ibm_db/test/test-prepareSync-multiple-execution.js +93 -93
  149. package/node_modules/ibm_db/test/test-primary-foreign-keys.js +246 -0
  150. package/node_modules/ibm_db/test/test-procedures.js +243 -0
  151. package/node_modules/ibm_db/test/test-promise-all-data-types.js +42 -42
  152. package/node_modules/ibm_db/test/test-query-operations.js +405 -0
  153. package/node_modules/ibm_db/test/test-quick-example.js +25 -25
  154. package/node_modules/ibm_db/test/test-row-array-insert.js +167 -167
  155. package/node_modules/ibm_db/test/test-sp-array.js +54 -54
  156. package/node_modules/ibm_db/test/test-sp-dbc-6000.js +88 -88
  157. package/node_modules/ibm_db/test/test-sp-memleak.js +136 -136
  158. package/node_modules/ibm_db/test/test-sp-resultset-execute.js +269 -269
  159. package/node_modules/ibm_db/test/test-sp-resultset.js +228 -228
  160. package/node_modules/ibm_db/test/test-transactions.js +261 -0
  161. package/node_modules/ibm_db/test/test-typescript.js +48 -48
  162. package/node_modules/ibm_db/test/test-xml-datatype.js +70 -70
  163. package/node_modules/ibm_db/test/testWebApp.js +56 -56
  164. package/node_modules/ibm_db/test/trace +51 -51
  165. package/node_modules/ibm_db/test/typescript-apis-test.js +978 -978
  166. package/node_modules/ibm_db/test/webapp.html +17 -17
  167. package/node_modules/ibm_db/test/webapp.js +79 -79
  168. package/node_modules/ibm_db/typescript/README.md +28 -28
  169. package/node_modules/ibm_db/typescript/dist/Database.d.ts +26 -0
  170. package/node_modules/ibm_db/typescript/dist/ODBCStatement.d.ts +93 -0
  171. package/package.json +10 -6
  172. package/node_modules/ibm_db/test/disabled/test-binding-statement-rebinding.js +0 -59
  173. package/node_modules/ibm_db/test/disabled/test-open-dont-close.js +0 -12
  174. package/node_modules/ibm_db/test/disabled/test-param-select-with-booleans-only.js +0 -21
  175. package/node_modules/ibm_db/test/disabled/test-param-select-with-decimals-only.js +0 -20
  176. package/node_modules/ibm_db/test/disabled/test-param-select-with-null.js +0 -21
  177. package/node_modules/ibm_db/test/disabled/test-param-select-with-nulls-mixed.js +0 -23
  178. package/node_modules/ibm_db/test/disabled/test-param-select-with-numbers-mixed.js +0 -22
  179. package/node_modules/ibm_db/test/disabled/test-param-select-with-numbers-only.js +0 -24
  180. package/node_modules/ibm_db/test/disabled/test-param-select-with-strings-only.js +0 -23
  181. package/node_modules/ibm_db/test/disabled/test-param-select-with-unicode.js +0 -15
  182. package/node_modules/ibm_db/test/disabled/test-prepare-bind-execute-closeSync.js +0 -62
  183. package/node_modules/ibm_db/test/disabled/test-prepare-bind-execute-error.js +0 -49
  184. package/node_modules/ibm_db/test/disabled/test-prepare-bind-execute-long-string.js +0 -63
  185. package/node_modules/ibm_db/test/disabled/test-prepare-bind-executeNonQuery.js +0 -63
  186. package/node_modules/ibm_db/test/disabled/test-prepare-bindSync-execute-closeSync.js +0 -46
  187. package/node_modules/ibm_db/test/disabled/test-prepare-bindSync-executeNonQuery.js +0 -50
  188. package/node_modules/ibm_db/test/disabled/test-prepare.js +0 -34
  189. package/node_modules/ibm_db/test/disabled/test-prepareSync.js +0 -29
  190. package/node_modules/ibm_db/test/disabled/test-query-select-fetchAll.js +0 -23
  191. package/node_modules/ibm_db/test/disabled/test-query-select-fetchAllSync.js +0 -23
  192. package/node_modules/ibm_db/test/disabled/test-query-select-unicode.js +0 -15
  193. package/node_modules/ibm_db/test/disabled/test-querySync-select-unicode.js +0 -20
  194. package/node_modules/ibm_db/test/test-affected-rows.js +0 -55
  195. package/node_modules/ibm_db/test/test-bad-connection-string.js +0 -30
  196. package/node_modules/ibm_db/test/test-binding-connection-timeOut.js +0 -31
  197. package/node_modules/ibm_db/test/test-binding-statement-executeSync.js +0 -84
  198. package/node_modules/ibm_db/test/test-binding-transaction-commit.js +0 -79
  199. package/node_modules/ibm_db/test/test-binding-transaction-commitSync.js +0 -53
  200. package/node_modules/ibm_db/test/test-closed.js +0 -14
  201. package/node_modules/ibm_db/test/test-connection-object.js +0 -16
  202. package/node_modules/ibm_db/test/test-describe-column.js +0 -92
  203. package/node_modules/ibm_db/test/test-describe-database.js +0 -18
  204. package/node_modules/ibm_db/test/test-describe-table.js +0 -31
  205. package/node_modules/ibm_db/test/test-domains-open.js +0 -19
  206. package/node_modules/ibm_db/test/test-global-open-close.js +0 -11
  207. package/node_modules/ibm_db/test/test-instantiate-one-and-end.js +0 -9
  208. package/node_modules/ibm_db/test/test-multi-open-close.js +0 -45
  209. package/node_modules/ibm_db/test/test-multi-openSync-closeSync.js +0 -52
  210. package/node_modules/ibm_db/test/test-open-close.js +0 -29
  211. package/node_modules/ibm_db/test/test-open-connectTimeout.js +0 -33
  212. package/node_modules/ibm_db/test/test-openSync.js +0 -31
  213. package/node_modules/ibm_db/test/test-pool-close.js +0 -120
  214. package/node_modules/ibm_db/test/test-pool-connect.js +0 -36
  215. package/node_modules/ibm_db/test/test-pool-rollbackTransaction.js +0 -35
  216. package/node_modules/ibm_db/test/test-prepareSync-bad-sql.js +0 -34
  217. package/node_modules/ibm_db/test/test-promise-open-close.js +0 -33
  218. package/node_modules/ibm_db/test/test-query-create-table-fetchSync.js +0 -23
  219. package/node_modules/ibm_db/test/test-query-create-table.js +0 -12
  220. package/node_modules/ibm_db/test/test-query-drop-table.js +0 -13
  221. package/node_modules/ibm_db/test/test-query-insert.js +0 -38
  222. package/node_modules/ibm_db/test/test-query-select-fetch.js +0 -21
  223. package/node_modules/ibm_db/test/test-query-select-fetchMode-array.js +0 -17
  224. package/node_modules/ibm_db/test/test-query-select.js +0 -64
  225. package/node_modules/ibm_db/test/test-queryResult.js +0 -35
  226. package/node_modules/ibm_db/test/test-queryStream.js +0 -43
  227. package/node_modules/ibm_db/test/test-querySync-select-with-exception.js +0 -25
  228. package/node_modules/ibm_db/test/test-querySync-select.js +0 -28
  229. package/node_modules/ibm_db/test/test-require-and-end.js +0 -8
  230. package/node_modules/ibm_db/test/test-statement-close.js +0 -118
  231. package/node_modules/ibm_db/test/test-transaction-commit-sync.js +0 -54
  232. package/node_modules/ibm_db/test/test-transaction-commit.js +0 -79
@@ -99,28 +99,18 @@ function toFormData(obj, formData, options) {
99
99
  // eslint-disable-next-line no-param-reassign
100
100
  formData = formData || new (PlatformFormData || FormData)();
101
101
 
102
- // eslint-disable-next-line no-param-reassign
103
- options = utils.toFlatObject(
104
- options,
105
- {
106
- metaTokens: true,
107
- dots: false,
108
- indexes: false,
109
- },
110
- false,
111
- function defined(option, source) {
112
- // eslint-disable-next-line no-eq-null,eqeqeq
113
- return !utils.isUndefined(source[option]);
114
- }
115
- );
102
+ const option = (name, fallback) => {
103
+ const value = utils.getSafeProp(options, name);
104
+ return utils.isUndefined(value) ? fallback : value;
105
+ };
116
106
 
117
- const metaTokens = options.metaTokens;
107
+ const metaTokens = option('metaTokens', true);
118
108
  // eslint-disable-next-line no-use-before-define
119
- const visitor = options.visitor || defaultVisitor;
120
- const dots = options.dots;
121
- const indexes = options.indexes;
122
- const _Blob = options.Blob || (typeof Blob !== 'undefined' && Blob);
123
- const maxDepth = options.maxDepth === undefined ? DEFAULT_FORM_DATA_MAX_DEPTH : options.maxDepth;
109
+ const visitor = option('visitor') || defaultVisitor;
110
+ const dots = option('dots', false);
111
+ const indexes = option('indexes', false);
112
+ const _Blob = option('Blob') || (typeof Blob !== 'undefined' && Blob);
113
+ const maxDepth = option('maxDepth', DEFAULT_FORM_DATA_MAX_DEPTH);
124
114
  const useBlob = _Blob && utils.isSpecCompliantForm(formData);
125
115
  const stack = [];
126
116
 
@@ -150,7 +140,10 @@ function toFormData(obj, formData, options) {
150
140
  if (PlatformBuffer && PlatformBuffer.isBufferAvailable()) {
151
141
  return PlatformBuffer.from(value);
152
142
  }
153
- throw new AxiosError('Blob is not supported. Use a Buffer instead.', AxiosError.ERR_NOT_SUPPORT);
143
+ throw new AxiosError(
144
+ 'Blob is not supported. Use a Buffer instead.',
145
+ AxiosError.ERR_NOT_SUPPORT
146
+ );
154
147
  }
155
148
 
156
149
  return value;
@@ -15,12 +15,65 @@ const hasOwnProperty = (
15
15
  hasOwnProperty.call(obj, prop)
16
16
  )(Object.prototype);
17
17
 
18
+ const isUnsafeObjectKey = (prop) =>
19
+ typeof prop === 'string' &&
20
+ (prop === '__proto__' || prop === 'constructor' || prop === 'prototype');
21
+
22
+ /**
23
+ * Determine whether an inherited object must be treated as a shared-prototype
24
+ * boundary. Cross-realm Object.prototype objects cannot be distinguished
25
+ * reliably from application-created null-prototype objects because their
26
+ * properties are mutable, so all inherited terminal prototypes are excluded
27
+ * as a fail-closed boundary. A null-prototype source still keeps its own
28
+ * properties, as produced by mergeConfig and other safe materialization paths.
29
+ *
30
+ * @param {*} obj The object to inspect
31
+ * @param {*} prototype The object's prototype
32
+ * @param {boolean} source Whether obj is the original traversal source
33
+ *
34
+ * @returns {boolean} True when obj is a safe prototype traversal boundary
35
+ */
36
+ const isPrototypeBoundary = (obj, prototype, source) =>
37
+ obj === Object.prototype || (!source && prototype === null);
38
+
39
+ /**
40
+ * Determine whether an object can retain its identity through code paths that
41
+ * add, replace, and remove config properties without bypassing unsafe-key
42
+ * filtering. Immutable objects, unsafe-key-bearing objects, and objects with
43
+ * accessor or restricted data properties must be materialized instead.
44
+ *
45
+ * @param {*} obj The object to inspect
46
+ *
47
+ * @returns {boolean} True when every own property is safe and fully mutable
48
+ */
49
+ const isSafeAndFullyMutable = (obj) => {
50
+ if (!Object.isExtensible(obj)) {
51
+ return false;
52
+ }
53
+
54
+ const props = Object.getOwnPropertyNames(obj);
55
+
56
+ if (Object.getOwnPropertySymbols) {
57
+ props.push(...Object.getOwnPropertySymbols(obj));
58
+ }
59
+
60
+ return props.every((prop) => {
61
+ if (isUnsafeObjectKey(prop)) {
62
+ return false;
63
+ }
64
+
65
+ const descriptor = Object.getOwnPropertyDescriptor(obj, prop);
66
+
67
+ return !!descriptor && descriptor.configurable && descriptor.writable === true;
68
+ });
69
+ };
70
+
18
71
  /**
19
- * Walk the prototype chain (excluding the shared Object.prototype) looking for
20
- * an own `prop`. This distinguishes genuine own/inherited members — including
21
- * class accessors and template prototypes — from members injected via
22
- * Object.prototype pollution (e.g. `Object.prototype.username = '...'`), which
23
- * live on Object.prototype itself and are therefore never matched.
72
+ * Walk the prototype chain (excluding the source realm's Object.prototype)
73
+ * looking for an own `prop`. This distinguishes genuine own/inherited members
74
+ * — including class accessors and template prototypes — from members injected
75
+ * via Object.prototype pollution (e.g. `Object.prototype.username = '...'`),
76
+ * which live on Object.prototype itself and are therefore never matched.
24
77
  *
25
78
  * @param {*} thing The value whose chain to inspect
26
79
  * @param {string|symbol} prop The property key to look for
@@ -31,16 +84,22 @@ const hasOwnInPrototypeChain = (thing, prop) => {
31
84
  let obj = thing;
32
85
  const seen = [];
33
86
 
34
- while (obj != null && obj !== Object.prototype) {
87
+ while (obj != null) {
35
88
  if (seen.indexOf(obj) !== -1) {
36
89
  return false;
37
90
  }
38
91
  seen.push(obj);
39
92
 
93
+ const prototype = getPrototypeOf(obj);
94
+
95
+ if (isPrototypeBoundary(obj, prototype, obj === thing)) {
96
+ return false;
97
+ }
98
+
40
99
  if (hasOwnProperty(obj, prop)) {
41
100
  return true;
42
101
  }
43
- obj = getPrototypeOf(obj);
102
+ obj = prototype;
44
103
  }
45
104
  return false;
46
105
  };
@@ -59,6 +118,69 @@ const hasOwnInPrototypeChain = (thing, prop) => {
59
118
  const getSafeProp = (obj, prop) =>
60
119
  obj != null && hasOwnInPrototypeChain(obj, prop) ? obj[prop] : undefined;
61
120
 
121
+ /**
122
+ * Flatten an object and its application-defined prototype chain into a
123
+ * null-prototype object. Members inherited only from the source realm's
124
+ * Object.prototype are deliberately excluded, while class/template members
125
+ * below that boundary are preserved.
126
+ *
127
+ * @param {*} thing The value to flatten
128
+ *
129
+ * @returns {*} A null-prototype copy, or the original value when it is already
130
+ * structurally safe or is not an object
131
+ */
132
+ const toSafeFlatObject = (thing) => {
133
+ if (thing == null || (typeof thing !== 'object' && typeof thing !== 'function')) {
134
+ return thing;
135
+ }
136
+
137
+ const sourcePrototype = getPrototypeOf(thing);
138
+
139
+ if (sourcePrototype === null && isSafeAndFullyMutable(thing)) {
140
+ return thing;
141
+ }
142
+
143
+ const result = Object.create(null);
144
+ const merged = Object.create(null);
145
+ const seen = [];
146
+ let current = thing;
147
+
148
+ while (current != null) {
149
+ if (seen.indexOf(current) !== -1) {
150
+ break;
151
+ }
152
+
153
+ seen.push(current);
154
+
155
+ const prototype = current === thing ? sourcePrototype : getPrototypeOf(current);
156
+
157
+ if (isPrototypeBoundary(current, prototype, current === thing)) {
158
+ break;
159
+ }
160
+
161
+ const props = Object.getOwnPropertyNames(current);
162
+
163
+ if (Object.getOwnPropertySymbols) {
164
+ props.push(...Object.getOwnPropertySymbols(current));
165
+ }
166
+
167
+ for (const prop of props) {
168
+ if (isUnsafeObjectKey(prop)) {
169
+ continue;
170
+ }
171
+
172
+ if (!hasOwnProperty(merged, prop)) {
173
+ result[prop] = thing[prop];
174
+ merged[prop] = true;
175
+ }
176
+ }
177
+
178
+ current = prototype;
179
+ }
180
+
181
+ return result;
182
+ };
183
+
62
184
  const kindOf = ((cache) => (thing) => {
63
185
  const str = toString.call(thing);
64
186
  return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());
@@ -190,12 +312,10 @@ const isPlainObject = (val) => {
190
312
 
191
313
  const prototype = getPrototypeOf(val);
192
314
  return (
193
- (prototype === null ||
194
- prototype === Object.prototype ||
195
- getPrototypeOf(prototype) === null) &&
196
- // Treat any genuine (non-Object.prototype-polluted) Symbol.toStringTag or
197
- // Symbol.iterator as evidence the value is a tagged/iterable type rather
198
- // than a plain object, while ignoring keys injected onto Object.prototype.
315
+ (prototype === null || prototype === Object.prototype || getPrototypeOf(prototype) === null) &&
316
+ // Treat safe own/inherited Symbol.toStringTag or Symbol.iterator members as
317
+ // evidence the value is tagged/iterable, while ignoring members reachable
318
+ // only through shared or terminal prototype boundaries.
199
319
  !hasOwnInPrototypeChain(val, toStringTag) &&
200
320
  !hasOwnInPrototypeChain(val, iterator)
201
321
  );
@@ -1009,6 +1129,7 @@ export default {
1009
1129
  hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection
1010
1130
  hasOwnInPrototypeChain,
1011
1131
  getSafeProp,
1132
+ toSafeFlatObject,
1012
1133
  reduceDescriptors,
1013
1134
  freezeMethods,
1014
1135
  toObjectSet,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "axios",
3
- "version": "1.19.0",
3
+ "version": "1.20.0",
4
4
  "description": "Promise based HTTP client for the browser and node.js",
5
5
  "main": "./dist/node/axios.cjs",
6
6
  "module": "./index.js",