@st-gr/sail-proxy 0.9.2 → 0.9.3

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 (213) hide show
  1. package/bundled/gateway/node_modules/.package-lock.json +132 -83
  2. package/bundled/gateway/node_modules/axios/CHANGELOG.md +0 -42
  3. package/bundled/gateway/node_modules/axios/README.md +237 -237
  4. package/bundled/gateway/node_modules/axios/dist/axios.js +21 -113
  5. package/bundled/gateway/node_modules/axios/dist/axios.js.map +1 -0
  6. package/bundled/gateway/node_modules/axios/dist/axios.min.js +2 -2
  7. package/bundled/gateway/node_modules/axios/dist/axios.min.js.map +1 -1
  8. package/bundled/gateway/node_modules/axios/dist/browser/axios.cjs +15 -121
  9. package/bundled/gateway/node_modules/axios/dist/browser/axios.cjs.map +1 -0
  10. package/bundled/gateway/node_modules/axios/dist/esm/axios.js +15 -121
  11. package/bundled/gateway/node_modules/axios/dist/esm/axios.js.map +1 -0
  12. package/bundled/gateway/node_modules/axios/dist/esm/axios.min.js +2 -2
  13. package/bundled/gateway/node_modules/axios/dist/esm/axios.min.js.map +1 -1
  14. package/bundled/gateway/node_modules/axios/dist/node/axios.cjs +107 -249
  15. package/bundled/gateway/node_modules/axios/dist/node/axios.cjs.map +1 -0
  16. package/bundled/gateway/node_modules/axios/index.d.cts +3 -8
  17. package/bundled/gateway/node_modules/axios/index.d.ts +1 -4
  18. package/bundled/gateway/node_modules/axios/lib/adapters/fetch.js +0 -79
  19. package/bundled/gateway/node_modules/axios/lib/adapters/http.js +118 -62
  20. package/bundled/gateway/node_modules/axios/lib/core/Axios.js +0 -1
  21. package/bundled/gateway/node_modules/axios/lib/core/AxiosHeaders.js +2 -2
  22. package/bundled/gateway/node_modules/axios/lib/defaults/transitional.js +0 -1
  23. package/bundled/gateway/node_modules/axios/lib/env/data.js +1 -1
  24. package/bundled/gateway/node_modules/axios/lib/helpers/buildURL.js +1 -1
  25. package/bundled/gateway/node_modules/axios/lib/helpers/formDataToStream.js +2 -2
  26. package/bundled/gateway/node_modules/axios/lib/helpers/resolveConfig.js +6 -12
  27. package/bundled/gateway/node_modules/axios/lib/helpers/toFormData.js +1 -1
  28. package/bundled/gateway/node_modules/axios/lib/utils.js +2 -23
  29. package/bundled/gateway/node_modules/axios/package.json +13 -29
  30. package/bundled/gateway/node_modules/body-parser/HISTORY.md +0 -14
  31. package/bundled/gateway/node_modules/body-parser/SECURITY.md +25 -0
  32. package/bundled/gateway/node_modules/body-parser/lib/types/json.js +5 -1
  33. package/bundled/gateway/node_modules/body-parser/lib/types/urlencoded.js +15 -7
  34. package/bundled/gateway/node_modules/body-parser/node_modules/qs/.editorconfig +46 -0
  35. package/bundled/gateway/node_modules/body-parser/node_modules/qs/.eslintrc +38 -0
  36. package/bundled/gateway/node_modules/body-parser/node_modules/qs/.github/FUNDING.yml +12 -0
  37. package/bundled/gateway/node_modules/body-parser/node_modules/qs/.nycrc +13 -0
  38. package/bundled/gateway/node_modules/body-parser/node_modules/qs/CHANGELOG.md +600 -0
  39. package/bundled/gateway/node_modules/body-parser/node_modules/qs/LICENSE.md +29 -0
  40. package/bundled/gateway/node_modules/body-parser/node_modules/qs/README.md +709 -0
  41. package/bundled/gateway/node_modules/body-parser/node_modules/qs/dist/qs.js +90 -0
  42. package/bundled/gateway/node_modules/body-parser/node_modules/qs/lib/formats.js +23 -0
  43. package/bundled/gateway/node_modules/body-parser/node_modules/qs/lib/index.js +11 -0
  44. package/bundled/gateway/node_modules/body-parser/node_modules/qs/lib/parse.js +296 -0
  45. package/bundled/gateway/node_modules/body-parser/node_modules/qs/lib/stringify.js +351 -0
  46. package/bundled/gateway/node_modules/body-parser/node_modules/qs/lib/utils.js +265 -0
  47. package/bundled/gateway/node_modules/body-parser/node_modules/qs/package.json +91 -0
  48. package/bundled/gateway/node_modules/body-parser/node_modules/qs/test/empty-keys-cases.js +267 -0
  49. package/bundled/gateway/node_modules/body-parser/node_modules/qs/test/parse.js +1170 -0
  50. package/bundled/gateway/node_modules/body-parser/node_modules/qs/test/stringify.js +1298 -0
  51. package/bundled/gateway/node_modules/body-parser/node_modules/qs/test/utils.js +136 -0
  52. package/bundled/gateway/node_modules/body-parser/package.json +10 -9
  53. package/bundled/gateway/node_modules/cookie/index.js +35 -24
  54. package/bundled/gateway/node_modules/cookie/package.json +1 -1
  55. package/bundled/gateway/node_modules/cookie-signature/History.md +1 -5
  56. package/bundled/gateway/node_modules/cookie-signature/index.js +6 -6
  57. package/bundled/gateway/node_modules/cookie-signature/package.json +2 -2
  58. package/bundled/gateway/node_modules/express/History.md +0 -43
  59. package/bundled/gateway/node_modules/express/lib/response.js +0 -1
  60. package/bundled/gateway/node_modules/express/lib/utils.js +1 -2
  61. package/bundled/gateway/node_modules/express/node_modules/qs/.editorconfig +43 -0
  62. package/bundled/gateway/node_modules/express/node_modules/qs/.eslintrc +38 -0
  63. package/bundled/gateway/node_modules/express/node_modules/qs/.github/FUNDING.yml +12 -0
  64. package/bundled/gateway/node_modules/express/node_modules/qs/.nycrc +13 -0
  65. package/bundled/gateway/node_modules/express/node_modules/qs/CHANGELOG.md +546 -0
  66. package/bundled/gateway/node_modules/express/node_modules/qs/LICENSE.md +29 -0
  67. package/bundled/gateway/node_modules/express/node_modules/qs/README.md +625 -0
  68. package/bundled/gateway/node_modules/express/node_modules/qs/dist/qs.js +2054 -0
  69. package/bundled/gateway/node_modules/express/node_modules/qs/lib/formats.js +23 -0
  70. package/bundled/gateway/node_modules/express/node_modules/qs/lib/index.js +11 -0
  71. package/bundled/gateway/node_modules/express/node_modules/qs/lib/parse.js +263 -0
  72. package/bundled/gateway/node_modules/express/node_modules/qs/lib/stringify.js +326 -0
  73. package/bundled/gateway/node_modules/express/node_modules/qs/lib/utils.js +252 -0
  74. package/bundled/gateway/node_modules/express/node_modules/qs/package.json +77 -0
  75. package/bundled/gateway/node_modules/express/node_modules/qs/test/parse.js +855 -0
  76. package/bundled/gateway/node_modules/express/node_modules/qs/test/stringify.js +909 -0
  77. package/bundled/gateway/node_modules/express/node_modules/qs/test/utils.js +136 -0
  78. package/bundled/gateway/node_modules/express/package.json +17 -21
  79. package/bundled/gateway/node_modules/finalhandler/HISTORY.md +0 -21
  80. package/bundled/gateway/node_modules/finalhandler/README.md +2 -2
  81. package/bundled/gateway/node_modules/finalhandler/index.js +2 -7
  82. package/bundled/gateway/node_modules/finalhandler/node_modules/encodeurl/HISTORY.md +14 -0
  83. package/bundled/gateway/node_modules/finalhandler/node_modules/encodeurl/LICENSE +22 -0
  84. package/bundled/gateway/node_modules/finalhandler/node_modules/encodeurl/README.md +128 -0
  85. package/bundled/gateway/node_modules/finalhandler/node_modules/encodeurl/index.js +60 -0
  86. package/bundled/gateway/node_modules/finalhandler/node_modules/encodeurl/package.json +40 -0
  87. package/bundled/gateway/node_modules/finalhandler/package.json +9 -10
  88. package/bundled/gateway/node_modules/http-errors/HISTORY.md +0 -6
  89. package/bundled/gateway/node_modules/http-errors/index.js +3 -4
  90. package/bundled/gateway/node_modules/http-errors/package.json +8 -12
  91. package/bundled/gateway/node_modules/qs/CHANGELOG.md +0 -16
  92. package/bundled/gateway/node_modules/qs/README.md +1 -1
  93. package/bundled/gateway/node_modules/qs/dist/qs.js +15 -15
  94. package/bundled/gateway/node_modules/qs/eslint.config.mjs +0 -1
  95. package/bundled/gateway/node_modules/qs/lib/parse.js +24 -54
  96. package/bundled/gateway/node_modules/qs/lib/stringify.js +4 -11
  97. package/bundled/gateway/node_modules/qs/package.json +3 -3
  98. package/bundled/gateway/node_modules/qs/test/parse.js +0 -135
  99. package/bundled/gateway/node_modules/qs/test/stringify.js +0 -138
  100. package/bundled/gateway/node_modules/qs/test/utils.js +3 -31
  101. package/bundled/gateway/node_modules/raw-body/HISTORY.md +308 -0
  102. package/bundled/gateway/node_modules/raw-body/SECURITY.md +24 -0
  103. package/bundled/gateway/node_modules/raw-body/package.json +7 -5
  104. package/bundled/gateway/node_modules/send/HISTORY.md +7 -19
  105. package/bundled/gateway/node_modules/send/node_modules/encodeurl/HISTORY.md +14 -0
  106. package/bundled/gateway/node_modules/send/node_modules/encodeurl/LICENSE +22 -0
  107. package/bundled/gateway/node_modules/send/node_modules/encodeurl/README.md +128 -0
  108. package/bundled/gateway/node_modules/send/node_modules/encodeurl/index.js +60 -0
  109. package/bundled/gateway/node_modules/send/node_modules/encodeurl/package.json +40 -0
  110. package/bundled/gateway/node_modules/send/package.json +6 -6
  111. package/bundled/gateway/node_modules/serve-static/HISTORY.md +0 -16
  112. package/bundled/gateway/node_modules/serve-static/node_modules/encodeurl/HISTORY.md +14 -0
  113. package/bundled/gateway/node_modules/serve-static/node_modules/encodeurl/LICENSE +22 -0
  114. package/bundled/gateway/node_modules/serve-static/node_modules/encodeurl/README.md +128 -0
  115. package/bundled/gateway/node_modules/serve-static/node_modules/encodeurl/index.js +60 -0
  116. package/bundled/gateway/node_modules/serve-static/node_modules/encodeurl/package.json +40 -0
  117. package/bundled/gateway/node_modules/serve-static/package.json +3 -3
  118. package/bundled/gateway/node_modules/statuses/HISTORY.md +0 -5
  119. package/bundled/gateway/node_modules/statuses/README.md +0 -3
  120. package/bundled/gateway/node_modules/statuses/package.json +7 -7
  121. package/bundled/gateway/package-lock.json +137 -88
  122. package/bundled/gateway/package.json +23 -5
  123. package/bundled/ollama/node_modules/.package-lock.json +104 -85
  124. package/bundled/ollama/node_modules/axios/CHANGELOG.md +0 -42
  125. package/bundled/ollama/node_modules/axios/README.md +237 -237
  126. package/bundled/ollama/node_modules/axios/dist/axios.js +21 -113
  127. package/bundled/ollama/node_modules/axios/dist/axios.js.map +1 -0
  128. package/bundled/ollama/node_modules/axios/dist/axios.min.js +2 -2
  129. package/bundled/ollama/node_modules/axios/dist/axios.min.js.map +1 -1
  130. package/bundled/ollama/node_modules/axios/dist/browser/axios.cjs +15 -121
  131. package/bundled/ollama/node_modules/axios/dist/browser/axios.cjs.map +1 -0
  132. package/bundled/ollama/node_modules/axios/dist/esm/axios.js +15 -121
  133. package/bundled/ollama/node_modules/axios/dist/esm/axios.js.map +1 -0
  134. package/bundled/ollama/node_modules/axios/dist/esm/axios.min.js +2 -2
  135. package/bundled/ollama/node_modules/axios/dist/esm/axios.min.js.map +1 -1
  136. package/bundled/ollama/node_modules/axios/dist/node/axios.cjs +107 -249
  137. package/bundled/ollama/node_modules/axios/dist/node/axios.cjs.map +1 -0
  138. package/bundled/ollama/node_modules/axios/index.d.cts +3 -8
  139. package/bundled/ollama/node_modules/axios/index.d.ts +1 -4
  140. package/bundled/ollama/node_modules/axios/lib/adapters/fetch.js +0 -79
  141. package/bundled/ollama/node_modules/axios/lib/adapters/http.js +118 -62
  142. package/bundled/ollama/node_modules/axios/lib/core/Axios.js +0 -1
  143. package/bundled/ollama/node_modules/axios/lib/core/AxiosHeaders.js +2 -2
  144. package/bundled/ollama/node_modules/axios/lib/defaults/transitional.js +0 -1
  145. package/bundled/ollama/node_modules/axios/lib/env/data.js +1 -1
  146. package/bundled/ollama/node_modules/axios/lib/helpers/buildURL.js +1 -1
  147. package/bundled/ollama/node_modules/axios/lib/helpers/formDataToStream.js +2 -2
  148. package/bundled/ollama/node_modules/axios/lib/helpers/resolveConfig.js +6 -12
  149. package/bundled/ollama/node_modules/axios/lib/helpers/toFormData.js +1 -1
  150. package/bundled/ollama/node_modules/axios/lib/utils.js +2 -23
  151. package/bundled/ollama/node_modules/axios/package.json +13 -29
  152. package/bundled/ollama/node_modules/body-parser/HISTORY.md +0 -14
  153. package/bundled/ollama/node_modules/body-parser/SECURITY.md +25 -0
  154. package/bundled/ollama/node_modules/body-parser/lib/types/json.js +5 -1
  155. package/bundled/ollama/node_modules/body-parser/lib/types/urlencoded.js +15 -7
  156. package/bundled/ollama/node_modules/body-parser/package.json +10 -9
  157. package/bundled/ollama/node_modules/cookie/index.js +35 -24
  158. package/bundled/ollama/node_modules/cookie/package.json +1 -1
  159. package/bundled/ollama/node_modules/cookie-signature/History.md +1 -5
  160. package/bundled/ollama/node_modules/cookie-signature/index.js +6 -6
  161. package/bundled/ollama/node_modules/cookie-signature/package.json +2 -2
  162. package/bundled/ollama/node_modules/express/History.md +0 -43
  163. package/bundled/ollama/node_modules/express/lib/response.js +0 -1
  164. package/bundled/ollama/node_modules/express/lib/utils.js +1 -2
  165. package/bundled/ollama/node_modules/express/package.json +17 -21
  166. package/bundled/ollama/node_modules/finalhandler/HISTORY.md +0 -21
  167. package/bundled/ollama/node_modules/finalhandler/README.md +2 -2
  168. package/bundled/ollama/node_modules/finalhandler/index.js +2 -7
  169. package/bundled/ollama/node_modules/finalhandler/node_modules/encodeurl/HISTORY.md +14 -0
  170. package/bundled/ollama/node_modules/finalhandler/node_modules/encodeurl/LICENSE +22 -0
  171. package/bundled/ollama/node_modules/finalhandler/node_modules/encodeurl/README.md +128 -0
  172. package/bundled/ollama/node_modules/finalhandler/node_modules/encodeurl/index.js +60 -0
  173. package/bundled/ollama/node_modules/finalhandler/node_modules/encodeurl/package.json +40 -0
  174. package/bundled/ollama/node_modules/finalhandler/package.json +9 -10
  175. package/bundled/ollama/node_modules/http-errors/HISTORY.md +0 -6
  176. package/bundled/ollama/node_modules/http-errors/index.js +3 -4
  177. package/bundled/ollama/node_modules/http-errors/package.json +8 -12
  178. package/bundled/ollama/node_modules/qs/CHANGELOG.md +0 -16
  179. package/bundled/ollama/node_modules/qs/README.md +1 -1
  180. package/bundled/ollama/node_modules/qs/dist/qs.js +15 -15
  181. package/bundled/ollama/node_modules/qs/eslint.config.mjs +0 -1
  182. package/bundled/ollama/node_modules/qs/lib/parse.js +24 -54
  183. package/bundled/ollama/node_modules/qs/lib/stringify.js +4 -11
  184. package/bundled/ollama/node_modules/qs/package.json +3 -3
  185. package/bundled/ollama/node_modules/qs/test/parse.js +0 -135
  186. package/bundled/ollama/node_modules/qs/test/stringify.js +0 -138
  187. package/bundled/ollama/node_modules/qs/test/utils.js +3 -31
  188. package/bundled/ollama/node_modules/raw-body/HISTORY.md +308 -0
  189. package/bundled/ollama/node_modules/raw-body/SECURITY.md +24 -0
  190. package/bundled/ollama/node_modules/raw-body/package.json +7 -5
  191. package/bundled/ollama/node_modules/send/HISTORY.md +7 -19
  192. package/bundled/ollama/node_modules/send/node_modules/encodeurl/HISTORY.md +14 -0
  193. package/bundled/ollama/node_modules/send/node_modules/encodeurl/LICENSE +22 -0
  194. package/bundled/ollama/node_modules/send/node_modules/encodeurl/README.md +128 -0
  195. package/bundled/ollama/node_modules/send/node_modules/encodeurl/index.js +60 -0
  196. package/bundled/ollama/node_modules/send/node_modules/encodeurl/package.json +40 -0
  197. package/bundled/ollama/node_modules/send/package.json +6 -6
  198. package/bundled/ollama/node_modules/serve-static/HISTORY.md +0 -16
  199. package/bundled/ollama/node_modules/serve-static/node_modules/encodeurl/HISTORY.md +14 -0
  200. package/bundled/ollama/node_modules/serve-static/node_modules/encodeurl/LICENSE +22 -0
  201. package/bundled/ollama/node_modules/serve-static/node_modules/encodeurl/README.md +128 -0
  202. package/bundled/ollama/node_modules/serve-static/node_modules/encodeurl/index.js +60 -0
  203. package/bundled/ollama/node_modules/serve-static/node_modules/encodeurl/package.json +40 -0
  204. package/bundled/ollama/node_modules/serve-static/package.json +3 -3
  205. package/bundled/ollama/node_modules/statuses/HISTORY.md +0 -5
  206. package/bundled/ollama/node_modules/statuses/README.md +0 -3
  207. package/bundled/ollama/node_modules/statuses/package.json +7 -7
  208. package/bundled/ollama/package-lock.json +107 -88
  209. package/bundled/ollama/package.json +24 -4
  210. package/node_modules/@sap-llm-gateway/service-key-parser/package.json +1 -1
  211. package/package.json +2 -2
  212. package/bundled/gateway/node_modules/axios/lib/helpers/Http2Sessions.js +0 -119
  213. package/bundled/ollama/node_modules/axios/lib/helpers/Http2Sessions.js +0 -119
@@ -0,0 +1,136 @@
1
+ 'use strict';
2
+
3
+ var test = require('tape');
4
+ var inspect = require('object-inspect');
5
+ var SaferBuffer = require('safer-buffer').Buffer;
6
+ var forEach = require('for-each');
7
+ var utils = require('../lib/utils');
8
+
9
+ test('merge()', function (t) {
10
+ t.deepEqual(utils.merge(null, true), [null, true], 'merges true into null');
11
+
12
+ t.deepEqual(utils.merge(null, [42]), [null, 42], 'merges null into an array');
13
+
14
+ t.deepEqual(utils.merge({ a: 'b' }, { a: 'c' }), { a: ['b', 'c'] }, 'merges two objects with the same key');
15
+
16
+ var oneMerged = utils.merge({ foo: 'bar' }, { foo: { first: '123' } });
17
+ t.deepEqual(oneMerged, { foo: ['bar', { first: '123' }] }, 'merges a standalone and an object into an array');
18
+
19
+ var twoMerged = utils.merge({ foo: ['bar', { first: '123' }] }, { foo: { second: '456' } });
20
+ t.deepEqual(twoMerged, { foo: { 0: 'bar', 1: { first: '123' }, second: '456' } }, 'merges a standalone and two objects into an array');
21
+
22
+ var sandwiched = utils.merge({ foo: ['bar', { first: '123', second: '456' }] }, { foo: 'baz' });
23
+ t.deepEqual(sandwiched, { foo: ['bar', { first: '123', second: '456' }, 'baz'] }, 'merges an object sandwiched by two standalones into an array');
24
+
25
+ var nestedArrays = utils.merge({ foo: ['baz'] }, { foo: ['bar', 'xyzzy'] });
26
+ t.deepEqual(nestedArrays, { foo: ['baz', 'bar', 'xyzzy'] });
27
+
28
+ var noOptionsNonObjectSource = utils.merge({ foo: 'baz' }, 'bar');
29
+ t.deepEqual(noOptionsNonObjectSource, { foo: 'baz', bar: true });
30
+
31
+ t.test(
32
+ 'avoids invoking array setters unnecessarily',
33
+ { skip: typeof Object.defineProperty !== 'function' },
34
+ function (st) {
35
+ var setCount = 0;
36
+ var getCount = 0;
37
+ var observed = [];
38
+ Object.defineProperty(observed, 0, {
39
+ get: function () {
40
+ getCount += 1;
41
+ return { bar: 'baz' };
42
+ },
43
+ set: function () { setCount += 1; }
44
+ });
45
+ utils.merge(observed, [null]);
46
+ st.equal(setCount, 0);
47
+ st.equal(getCount, 1);
48
+ observed[0] = observed[0]; // eslint-disable-line no-self-assign
49
+ st.equal(setCount, 1);
50
+ st.equal(getCount, 2);
51
+ st.end();
52
+ }
53
+ );
54
+
55
+ t.end();
56
+ });
57
+
58
+ test('assign()', function (t) {
59
+ var target = { a: 1, b: 2 };
60
+ var source = { b: 3, c: 4 };
61
+ var result = utils.assign(target, source);
62
+
63
+ t.equal(result, target, 'returns the target');
64
+ t.deepEqual(target, { a: 1, b: 3, c: 4 }, 'target and source are merged');
65
+ t.deepEqual(source, { b: 3, c: 4 }, 'source is untouched');
66
+
67
+ t.end();
68
+ });
69
+
70
+ test('combine()', function (t) {
71
+ t.test('both arrays', function (st) {
72
+ var a = [1];
73
+ var b = [2];
74
+ var combined = utils.combine(a, b);
75
+
76
+ st.deepEqual(a, [1], 'a is not mutated');
77
+ st.deepEqual(b, [2], 'b is not mutated');
78
+ st.notEqual(a, combined, 'a !== combined');
79
+ st.notEqual(b, combined, 'b !== combined');
80
+ st.deepEqual(combined, [1, 2], 'combined is a + b');
81
+
82
+ st.end();
83
+ });
84
+
85
+ t.test('one array, one non-array', function (st) {
86
+ var aN = 1;
87
+ var a = [aN];
88
+ var bN = 2;
89
+ var b = [bN];
90
+
91
+ var combinedAnB = utils.combine(aN, b);
92
+ st.deepEqual(b, [bN], 'b is not mutated');
93
+ st.notEqual(aN, combinedAnB, 'aN + b !== aN');
94
+ st.notEqual(a, combinedAnB, 'aN + b !== a');
95
+ st.notEqual(bN, combinedAnB, 'aN + b !== bN');
96
+ st.notEqual(b, combinedAnB, 'aN + b !== b');
97
+ st.deepEqual([1, 2], combinedAnB, 'first argument is array-wrapped when not an array');
98
+
99
+ var combinedABn = utils.combine(a, bN);
100
+ st.deepEqual(a, [aN], 'a is not mutated');
101
+ st.notEqual(aN, combinedABn, 'a + bN !== aN');
102
+ st.notEqual(a, combinedABn, 'a + bN !== a');
103
+ st.notEqual(bN, combinedABn, 'a + bN !== bN');
104
+ st.notEqual(b, combinedABn, 'a + bN !== b');
105
+ st.deepEqual([1, 2], combinedABn, 'second argument is array-wrapped when not an array');
106
+
107
+ st.end();
108
+ });
109
+
110
+ t.test('neither is an array', function (st) {
111
+ var combined = utils.combine(1, 2);
112
+ st.notEqual(1, combined, '1 + 2 !== 1');
113
+ st.notEqual(2, combined, '1 + 2 !== 2');
114
+ st.deepEqual([1, 2], combined, 'both arguments are array-wrapped when not an array');
115
+
116
+ st.end();
117
+ });
118
+
119
+ t.end();
120
+ });
121
+
122
+ test('isBuffer()', function (t) {
123
+ forEach([null, undefined, true, false, '', 'abc', 42, 0, NaN, {}, [], function () {}, /a/g], function (x) {
124
+ t.equal(utils.isBuffer(x), false, inspect(x) + ' is not a buffer');
125
+ });
126
+
127
+ var fakeBuffer = { constructor: Buffer };
128
+ t.equal(utils.isBuffer(fakeBuffer), false, 'fake buffer is not a buffer');
129
+
130
+ var saferBuffer = SaferBuffer.from('abc');
131
+ t.equal(utils.isBuffer(saferBuffer), true, 'SaferBuffer instance is a buffer');
132
+
133
+ var buffer = Buffer.from && Buffer.alloc ? Buffer.from('abc') : new Buffer('abc');
134
+ t.equal(utils.isBuffer(buffer), true, 'real Buffer instance is a buffer');
135
+ t.end();
136
+ });
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "body-parser",
3
3
  "description": "Node.js body parsing middleware",
4
- "version": "1.20.5",
4
+ "version": "1.20.3",
5
5
  "contributors": [
6
6
  "Douglas Christopher Wilson <doug@somethingdoug.com>",
7
7
  "Jonathan Ong <me@jongleberry.com> (http://jongleberry.com)"
@@ -9,18 +9,18 @@
9
9
  "license": "MIT",
10
10
  "repository": "expressjs/body-parser",
11
11
  "dependencies": {
12
- "bytes": "~3.1.2",
12
+ "bytes": "3.1.2",
13
13
  "content-type": "~1.0.5",
14
14
  "debug": "2.6.9",
15
15
  "depd": "2.0.0",
16
- "destroy": "~1.2.0",
17
- "http-errors": "~2.0.1",
18
- "iconv-lite": "~0.4.24",
19
- "on-finished": "~2.4.1",
20
- "qs": "~6.15.1",
21
- "raw-body": "~2.5.3",
16
+ "destroy": "1.2.0",
17
+ "http-errors": "2.0.0",
18
+ "iconv-lite": "0.4.24",
19
+ "on-finished": "2.4.1",
20
+ "qs": "6.13.0",
21
+ "raw-body": "2.5.2",
22
22
  "type-is": "~1.6.18",
23
- "unpipe": "~1.0.0"
23
+ "unpipe": "1.0.0"
24
24
  },
25
25
  "devDependencies": {
26
26
  "eslint": "8.34.0",
@@ -40,6 +40,7 @@
40
40
  "lib/",
41
41
  "LICENSE",
42
42
  "HISTORY.md",
43
+ "SECURITY.md",
43
44
  "index.js"
44
45
  ],
45
46
  "engines": {
@@ -21,7 +21,6 @@ exports.serialize = serialize;
21
21
  */
22
22
 
23
23
  var __toString = Object.prototype.toString
24
- var __hasOwnProperty = Object.prototype.hasOwnProperty
25
24
 
26
25
  /**
27
26
  * RegExp to match cookie-name in RFC 6265 sec 4.1.1
@@ -65,15 +64,9 @@ var cookieValueRegExp = /^("?)[\u0021\u0023-\u002B\u002D-\u003A\u003C-\u005B\u00
65
64
  * <letter> = any one of the 52 alphabetic characters A through Z in
66
65
  * upper case and a through z in lower case
67
66
  * <digit> = any one of the ten digits 0 through 9
68
- *
69
- * Keep support for leading dot: https://github.com/jshttp/cookie/issues/173
70
- *
71
- * > (Note that a leading %x2E ("."), if present, is ignored even though that
72
- * character is not permitted, but a trailing %x2E ("."), if present, will
73
- * cause the user agent to ignore the attribute.)
74
67
  */
75
68
 
76
- var domainValueRegExp = /^([.]?[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)([.][a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)*$/i;
69
+ var domainValueRegExp = /^([a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)([.][a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)*$/i;
77
70
 
78
71
  /**
79
72
  * RegExp to match path-value in RFC 6265 sec 4.1.1
@@ -92,12 +85,12 @@ var pathValueRegExp = /^[\u0020-\u003A\u003D-\u007E]*$/;
92
85
  * The object has the various cookies as keys(names) => values
93
86
  *
94
87
  * @param {string} str
95
- * @param {object} [opt]
88
+ * @param {object} [options]
96
89
  * @return {object}
97
90
  * @public
98
91
  */
99
92
 
100
- function parse(str, opt) {
93
+ function parse(str, options) {
101
94
  if (typeof str !== 'string') {
102
95
  throw new TypeError('argument str must be a string');
103
96
  }
@@ -105,16 +98,21 @@ function parse(str, opt) {
105
98
  var obj = {};
106
99
  var len = str.length;
107
100
  // RFC 6265 sec 4.1.1, RFC 2616 2.2 defines a cookie name consists of one char minimum, plus '='.
108
- if (len < 2) return obj;
101
+ var max = len - 2;
102
+ if (max < 0) return obj;
109
103
 
110
- var dec = (opt && opt.decode) || decode;
104
+ var dec = (options && options.decode) || decode;
111
105
  var index = 0;
112
106
  var eqIdx = 0;
113
107
  var endIdx = 0;
114
108
 
115
109
  do {
116
110
  eqIdx = str.indexOf('=', index);
117
- if (eqIdx === -1) break; // No more cookie pairs.
111
+
112
+ // no more cookie pairs
113
+ if (eqIdx === -1) {
114
+ break;
115
+ }
118
116
 
119
117
  endIdx = str.indexOf(';', index);
120
118
 
@@ -131,7 +129,7 @@ function parse(str, opt) {
131
129
  var key = str.slice(keyStartIdx, keyEndIdx);
132
130
 
133
131
  // only assign once
134
- if (!__hasOwnProperty.call(obj, key)) {
132
+ if (undefined === obj[key]) {
135
133
  var valStartIdx = startIndex(str, eqIdx + 1, endIdx);
136
134
  var valEndIdx = endIndex(str, endIdx, valStartIdx);
137
135
 
@@ -145,7 +143,7 @@ function parse(str, opt) {
145
143
  }
146
144
 
147
145
  index = endIdx + 1
148
- } while (index < len);
146
+ } while (index < max);
149
147
 
150
148
  return obj;
151
149
  }
@@ -177,13 +175,14 @@ function endIndex(str, index, min) {
177
175
  *
178
176
  * @param {string} name
179
177
  * @param {string} val
180
- * @param {object} [opt]
178
+ * @param {object} [options]
181
179
  * @return {string}
182
180
  * @public
183
181
  */
184
182
 
185
- function serialize(name, val, opt) {
186
- var enc = (opt && opt.encode) || encodeURIComponent;
183
+ function serialize(name, val, options) {
184
+ var opt = options || {};
185
+ var enc = opt.encode || encode;
187
186
 
188
187
  if (typeof enc !== 'function') {
189
188
  throw new TypeError('option encode is invalid');
@@ -195,21 +194,20 @@ function serialize(name, val, opt) {
195
194
 
196
195
  var value = enc(val);
197
196
 
198
- if (!cookieValueRegExp.test(value)) {
197
+ if (value && !cookieValueRegExp.test(value)) {
199
198
  throw new TypeError('argument val is invalid');
200
199
  }
201
200
 
202
201
  var str = name + '=' + value;
203
- if (!opt) return str;
204
202
 
205
203
  if (null != opt.maxAge) {
206
- var maxAge = Math.floor(opt.maxAge);
204
+ var maxAge = opt.maxAge - 0;
207
205
 
208
206
  if (!isFinite(maxAge)) {
209
207
  throw new TypeError('option maxAge is invalid')
210
208
  }
211
209
 
212
- str += '; Max-Age=' + maxAge;
210
+ str += '; Max-Age=' + Math.floor(maxAge);
213
211
  }
214
212
 
215
213
  if (opt.domain) {
@@ -252,7 +250,8 @@ function serialize(name, val, opt) {
252
250
 
253
251
  if (opt.priority) {
254
252
  var priority = typeof opt.priority === 'string'
255
- ? opt.priority.toLowerCase() : opt.priority;
253
+ ? opt.priority.toLowerCase()
254
+ : opt.priority
256
255
 
257
256
  switch (priority) {
258
257
  case 'low':
@@ -307,6 +306,17 @@ function decode (str) {
307
306
  : str
308
307
  }
309
308
 
309
+ /**
310
+ * URL-encode value.
311
+ *
312
+ * @param {string} val
313
+ * @returns {string}
314
+ */
315
+
316
+ function encode (val) {
317
+ return encodeURIComponent(val)
318
+ }
319
+
310
320
  /**
311
321
  * Determine if value is a Date.
312
322
  *
@@ -315,7 +325,8 @@ function decode (str) {
315
325
  */
316
326
 
317
327
  function isDate (val) {
318
- return __toString.call(val) === '[object Date]';
328
+ return __toString.call(val) === '[object Date]' ||
329
+ val instanceof Date
319
330
  }
320
331
 
321
332
  /**
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "cookie",
3
3
  "description": "HTTP server cookie parsing and serialization",
4
- "version": "0.7.2",
4
+ "version": "0.7.0",
5
5
  "author": "Roman Shtylman <shtylman@gmail.com>",
6
6
  "contributors": [
7
7
  "Douglas Christopher Wilson <doug@somethingdoug.com>"
@@ -1,14 +1,10 @@
1
- 1.0.7 / 2023-04-12
2
- ==================
3
-
4
- * backport the buffer support from the 1.2.x release branch (thanks @FadhiliNjagi!)
5
-
6
1
  1.0.6 / 2015-02-03
7
2
  ==================
8
3
 
9
4
  * use `npm test` instead of `make test` to run tests
10
5
  * clearer assertion messages when checking input
11
6
 
7
+
12
8
  1.0.5 / 2014-09-05
13
9
  ==================
14
10
 
@@ -8,14 +8,14 @@ var crypto = require('crypto');
8
8
  * Sign the given `val` with `secret`.
9
9
  *
10
10
  * @param {String} val
11
- * @param {String|NodeJS.ArrayBufferView|crypto.KeyObject} secret
11
+ * @param {String} secret
12
12
  * @return {String}
13
13
  * @api private
14
14
  */
15
15
 
16
16
  exports.sign = function(val, secret){
17
- if ('string' !== typeof val) throw new TypeError("Cookie value must be provided as a string.");
18
- if (null == secret) throw new TypeError("Secret key must be provided.");
17
+ if ('string' != typeof val) throw new TypeError("Cookie value must be provided as a string.");
18
+ if ('string' != typeof secret) throw new TypeError("Secret string must be provided.");
19
19
  return val + '.' + crypto
20
20
  .createHmac('sha256', secret)
21
21
  .update(val)
@@ -28,14 +28,14 @@ exports.sign = function(val, secret){
28
28
  * returning `false` if the signature is invalid.
29
29
  *
30
30
  * @param {String} val
31
- * @param {String|NodeJS.ArrayBufferView|crypto.KeyObject} secret
31
+ * @param {String} secret
32
32
  * @return {String|Boolean}
33
33
  * @api private
34
34
  */
35
35
 
36
36
  exports.unsign = function(val, secret){
37
- if ('string' !== typeof val) throw new TypeError("Signed cookie string must be provided.");
38
- if (null == secret) throw new TypeError("Secret key must be provided.");
37
+ if ('string' != typeof val) throw new TypeError("Signed cookie string must be provided.");
38
+ if ('string' != typeof secret) throw new TypeError("Secret string must be provided.");
39
39
  var str = val.slice(0, val.lastIndexOf('.'))
40
40
  , mac = exports.sign(str, secret);
41
41
 
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cookie-signature",
3
- "version": "1.0.7",
3
+ "version": "1.0.6",
4
4
  "description": "Sign and unsign cookies",
5
5
  "keywords": ["cookie", "sign", "unsign"],
6
6
  "author": "TJ Holowaychuk <tj@learnboost.com>",
@@ -15,4 +15,4 @@
15
15
  "test": "mocha --require should --reporter spec"
16
16
  },
17
17
  "main": "index"
18
- }
18
+ }
@@ -1,46 +1,3 @@
1
- 4.22.2 / 2026-05-011
2
- ==========
3
-
4
- * fix: restore >20 array parsing for `req.query` repeated keys ([`8d09bfe6`](https://github.com/expressjs/express/commit/8d09bfe6d88983da5c3e12cfdd54782c4dc675db))
5
- * This also unifies array-cap behavior across notations. Indexed notation (`a[0]=...`) was historically capped at qs's default `arrayLimit` of 20 even in older qs versions; after this change it also allows up to 1000 items.
6
- * deps: qs@~6.15.1
7
- * deps: body-parser@~1.20.5
8
-
9
- 4.22.1 / 2025-12-01
10
- ==========
11
-
12
- * Revert security fix for [CVE-2024-51999](https://www.cve.org/CVERecord?id=CVE-2024-51999) ([GHSA-pj86-cfqh-vqx6](https://github.com/expressjs/express/security/advisories/GHSA-pj86-cfqh-vqx6))
13
- * The prior release (4.22.0) included an erroneous breaking change related to the extended query parser. There is no actual security vulnerability associated with this behavior (CVE-2024-51999 has been rejected). The change has been fully reverted in this release.
14
-
15
- 4.22.0 / 2025-12-01
16
- ==========
17
- * Security fix for [CVE-2024-51999](https://www.cve.org/CVERecord?id=CVE-2024-51999) ([GHSA-pj86-cfqh-vqx6](https://github.com/expressjs/express/security/advisories/GHSA-pj86-cfqh-vqx6))
18
- * deps: use tilde notation for dependencies
19
- * deps: qs@6.14.0
20
-
21
- 4.21.2 / 2024-11-06
22
- ==========
23
-
24
- * deps: path-to-regexp@0.1.12
25
- - Fix backtracking protection
26
- * deps: path-to-regexp@0.1.11
27
- - Throws an error on invalid path values
28
-
29
- 4.21.1 / 2024-10-08
30
- ==========
31
-
32
- * Backported a fix for [CVE-2024-47764](https://nvd.nist.gov/vuln/detail/CVE-2024-47764)
33
-
34
-
35
- 4.21.0 / 2024-09-11
36
- ==========
37
-
38
- * Deprecate `res.location("back")` and `res.redirect("back")` magic string
39
- * deps: serve-static@1.16.2
40
- * includes send@0.19.0
41
- * deps: finalhandler@1.3.1
42
- * deps: qs@6.13.0
43
-
44
1
  4.20.0 / 2024-09-10
45
2
  ==========
46
3
  * deps: serve-static@0.16.0
@@ -916,7 +916,6 @@ res.location = function location(url) {
916
916
 
917
917
  // "back" is an alias for the referrer
918
918
  if (url === 'back') {
919
- deprecate('res.location("back"): use res.location(req.get("Referrer") || "/") and refer to https://dub.sh/security-redirect for best practices');
920
919
  loc = this.req.get('Referrer') || '/';
921
920
  } else {
922
921
  loc = String(url);
@@ -287,8 +287,7 @@ function createETagGenerator (options) {
287
287
 
288
288
  function parseExtendedQueryString(str) {
289
289
  return qs.parse(str, {
290
- allowPrototypes: true,
291
- arrayLimit: 1000
290
+ allowPrototypes: true
292
291
  });
293
292
  }
294
293
 
@@ -0,0 +1,43 @@
1
+ root = true
2
+
3
+ [*]
4
+ indent_style = space
5
+ indent_size = 4
6
+ end_of_line = lf
7
+ charset = utf-8
8
+ trim_trailing_whitespace = true
9
+ insert_final_newline = true
10
+ max_line_length = 160
11
+ quote_type = single
12
+
13
+ [test/*]
14
+ max_line_length = off
15
+
16
+ [LICENSE.md]
17
+ indent_size = off
18
+
19
+ [*.md]
20
+ max_line_length = off
21
+
22
+ [*.json]
23
+ max_line_length = off
24
+
25
+ [Makefile]
26
+ max_line_length = off
27
+
28
+ [CHANGELOG.md]
29
+ indent_style = space
30
+ indent_size = 2
31
+
32
+ [LICENSE]
33
+ indent_size = 2
34
+ max_line_length = off
35
+
36
+ [coverage/**/*]
37
+ indent_size = off
38
+ indent_style = off
39
+ indent = off
40
+ max_line_length = off
41
+
42
+ [.nycrc]
43
+ indent_style = tab
@@ -0,0 +1,38 @@
1
+ {
2
+ "root": true,
3
+
4
+ "extends": "@ljharb",
5
+
6
+ "ignorePatterns": [
7
+ "dist/",
8
+ ],
9
+
10
+ "rules": {
11
+ "complexity": 0,
12
+ "consistent-return": 1,
13
+ "func-name-matching": 0,
14
+ "id-length": [2, { "min": 1, "max": 25, "properties": "never" }],
15
+ "indent": [2, 4],
16
+ "max-lines-per-function": [2, { "max": 150 }],
17
+ "max-params": [2, 16],
18
+ "max-statements": [2, 53],
19
+ "multiline-comment-style": 0,
20
+ "no-continue": 1,
21
+ "no-magic-numbers": 0,
22
+ "no-restricted-syntax": [2, "BreakStatement", "DebuggerStatement", "ForInStatement", "LabeledStatement", "WithStatement"],
23
+ },
24
+
25
+ "overrides": [
26
+ {
27
+ "files": "test/**",
28
+ "rules": {
29
+ "function-paren-newline": 0,
30
+ "max-lines-per-function": 0,
31
+ "max-statements": 0,
32
+ "no-buffer-constructor": 0,
33
+ "no-extend-native": 0,
34
+ "no-throw-literal": 0,
35
+ },
36
+ },
37
+ ],
38
+ }
@@ -0,0 +1,12 @@
1
+ # These are supported funding model platforms
2
+
3
+ github: [ljharb]
4
+ patreon: # Replace with a single Patreon username
5
+ open_collective: # Replace with a single Open Collective username
6
+ ko_fi: # Replace with a single Ko-fi username
7
+ tidelift: npm/qs
8
+ community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
9
+ liberapay: # Replace with a single Liberapay username
10
+ issuehunt: # Replace with a single IssueHunt username
11
+ otechie: # Replace with a single Otechie username
12
+ custom: # Replace with a single custom sponsorship URL
@@ -0,0 +1,13 @@
1
+ {
2
+ "all": true,
3
+ "check-coverage": false,
4
+ "reporter": ["text-summary", "text", "html", "json"],
5
+ "lines": 86,
6
+ "statements": 85.93,
7
+ "functions": 82.43,
8
+ "branches": 76.06,
9
+ "exclude": [
10
+ "coverage",
11
+ "dist"
12
+ ]
13
+ }