swagger-client 3.33.1 → 3.33.2

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.
@@ -1,7 +1,7 @@
1
- import cookie from 'cookie';
2
1
  import { identity } from 'ramda';
3
- import { isPlainObject } from 'ramda-adjunct';
2
+ import { isPlainObject, isNonEmptyString } from 'ramda-adjunct';
4
3
  import { test as testServerURLTemplate, substitute as substituteServerURLTemplate } from 'openapi-server-url-templating';
4
+ import { serializeCookie, cookieValueLenientEncoder, cookieNameLenientValidator, cookieValueLenientValidator } from '@swaggerexpert/cookie';
5
5
  import { ApiDOMStructuredError } from '@swagger-api/apidom-error';
6
6
  import { url } from '@swagger-api/apidom-reference/configuration/empty';
7
7
  import { DEFAULT_BASE_URL, DEFAULT_OPENAPI_3_SERVER } from '../constants.js';
@@ -261,13 +261,20 @@ export function buildRequest(options) {
261
261
  // If the cookie convenience object exists in our request,
262
262
  // serialize its content and then delete the cookie object.
263
263
  if (req.cookies && Object.keys(req.cookies).length) {
264
- const cookieString = Object.keys(req.cookies).reduce((prev, cookieName) => {
265
- const cookieValue = req.cookies[cookieName];
266
- const prefix = prev ? '&' : '';
267
- const stringified = cookie.serialize(cookieName, cookieValue);
268
- return prev + prefix + stringified;
269
- }, '');
270
- req.headers.Cookie = cookieString;
264
+ const cookieString = serializeCookie(req.cookies, {
265
+ encoders: {
266
+ value: cookieValueLenientEncoder
267
+ },
268
+ validators: {
269
+ name: cookieNameLenientValidator,
270
+ value: cookieValueLenientValidator
271
+ }
272
+ });
273
+ if (isNonEmptyString(req.headers.Cookie)) {
274
+ req.headers.Cookie += `; ${cookieString}`;
275
+ } else {
276
+ req.headers.Cookie = cookieString;
277
+ }
271
278
  }
272
279
  if (req.cookies) {
273
280
  // even if no cookies were defined, we need to remove
@@ -1,6 +1,8 @@
1
1
  import { resolve as resolvePathTemplate } from 'openapi-path-templating';
2
+ import { serializeCookie } from '@swaggerexpert/cookie';
2
3
  import stylize, { encodeCharacters } from './style-serializer.js';
3
4
  import serialize from './content-serializer.js';
5
+ import cookieValueEncoder from '../../helpers/cookie-value-encoder.js';
4
6
  export function path({
5
7
  req,
6
8
  value,
@@ -31,7 +33,7 @@ export function path({
31
33
  key: parameter.name,
32
34
  value: val,
33
35
  style: style || 'simple',
34
- explode: explode || false,
36
+ explode: explode !== null && explode !== void 0 ? explode : false,
35
37
  escape: 'reserved'
36
38
  })
37
39
  });
@@ -112,21 +114,38 @@ export function cookie({
112
114
  parameter,
113
115
  value
114
116
  }) {
117
+ const {
118
+ name: cookieName
119
+ } = parameter;
115
120
  req.headers = req.headers || {};
116
- const type = typeof value;
117
121
  if (value !== undefined && parameter.content) {
118
122
  const effectiveMediaType = Object.keys(parameter.content)[0];
119
- req.headers.Cookie = `${parameter.name}=${serialize(value, effectiveMediaType)}`;
123
+ const cookieValue = serialize(value, effectiveMediaType);
124
+ req.headers.Cookie = serializeCookie({
125
+ [cookieName]: cookieValue
126
+ }, {
127
+ encoders: {
128
+ value: cookieValueEncoder
129
+ }
130
+ });
120
131
  return;
121
132
  }
122
133
  if (value !== undefined && !(Array.isArray(value) && value.length === 0)) {
123
- const prefix = type === 'object' && !Array.isArray(value) && parameter.explode ? '' : `${parameter.name}=`;
124
- req.headers.Cookie = prefix + stylize({
134
+ var _parameter$explode;
135
+ const serializedValue = stylize({
125
136
  key: parameter.name,
126
137
  value,
127
138
  escape: false,
128
139
  style: parameter.style || 'form',
129
- explode: typeof parameter.explode === 'undefined' ? false : parameter.explode
140
+ explode: (_parameter$explode = parameter.explode) !== null && _parameter$explode !== void 0 ? _parameter$explode : false
141
+ });
142
+ const cookieValue = Array.isArray(value) && parameter.explode ? `${cookieName}=${serializedValue}` : serializedValue;
143
+ req.headers.Cookie = serializeCookie({
144
+ [cookieName]: cookieValue
145
+ }, {
146
+ encoders: {
147
+ value: cookieValueEncoder
148
+ }
130
149
  });
131
150
  }
132
151
  }
@@ -0,0 +1,5 @@
1
+ import { cookieValueStrictEncoder } from '@swaggerexpert/cookie';
2
+ const eqSignPE = '%3D';
3
+ const ampersandPE = '%26';
4
+ const cookieValueEncoder = cookieValue => cookieValueStrictEncoder(cookieValue).replace(/[=&]/gu, match => match === '=' ? eqSignPE : ampersandPE);
5
+ export default cookieValueEncoder;
@@ -7,10 +7,10 @@ exports.baseUrl = baseUrl;
7
7
  exports.buildRequest = buildRequest;
8
8
  exports.execute = execute;
9
9
  exports.self = void 0;
10
- var _cookie = _interopRequireDefault(require("cookie"));
11
10
  var _ramda = require("ramda");
12
11
  var _ramdaAdjunct = require("ramda-adjunct");
13
12
  var _openapiServerUrlTemplating = require("openapi-server-url-templating");
13
+ var _cookie = require("@swaggerexpert/cookie");
14
14
  var _apidomError = require("@swagger-api/apidom-error");
15
15
  var _empty = require("@swagger-api/apidom-reference/configuration/empty");
16
16
  var _constants = require("../constants.js");
@@ -270,13 +270,20 @@ function buildRequest(options) {
270
270
  // If the cookie convenience object exists in our request,
271
271
  // serialize its content and then delete the cookie object.
272
272
  if (req.cookies && Object.keys(req.cookies).length) {
273
- const cookieString = Object.keys(req.cookies).reduce((prev, cookieName) => {
274
- const cookieValue = req.cookies[cookieName];
275
- const prefix = prev ? '&' : '';
276
- const stringified = _cookie.default.serialize(cookieName, cookieValue);
277
- return prev + prefix + stringified;
278
- }, '');
279
- req.headers.Cookie = cookieString;
273
+ const cookieString = (0, _cookie.serializeCookie)(req.cookies, {
274
+ encoders: {
275
+ value: _cookie.cookieValueLenientEncoder
276
+ },
277
+ validators: {
278
+ name: _cookie.cookieNameLenientValidator,
279
+ value: _cookie.cookieValueLenientValidator
280
+ }
281
+ });
282
+ if ((0, _ramdaAdjunct.isNonEmptyString)(req.headers.Cookie)) {
283
+ req.headers.Cookie += `; ${cookieString}`;
284
+ } else {
285
+ req.headers.Cookie = cookieString;
286
+ }
280
287
  }
281
288
  if (req.cookies) {
282
289
  // even if no cookies were defined, we need to remove
@@ -8,8 +8,10 @@ exports.header = header;
8
8
  exports.path = path;
9
9
  exports.query = query;
10
10
  var _openapiPathTemplating = require("openapi-path-templating");
11
+ var _cookie = require("@swaggerexpert/cookie");
11
12
  var _styleSerializer = _interopRequireWildcard(require("./style-serializer.js"));
12
13
  var _contentSerializer = _interopRequireDefault(require("./content-serializer.js"));
14
+ var _cookieValueEncoder = _interopRequireDefault(require("../../helpers/cookie-value-encoder.js"));
13
15
  function path({
14
16
  req,
15
17
  value,
@@ -40,7 +42,7 @@ function path({
40
42
  key: parameter.name,
41
43
  value: val,
42
44
  style: style || 'simple',
43
- explode: explode || false,
45
+ explode: explode != null ? explode : false,
44
46
  escape: 'reserved'
45
47
  })
46
48
  });
@@ -121,21 +123,38 @@ function cookie({
121
123
  parameter,
122
124
  value
123
125
  }) {
126
+ const {
127
+ name: cookieName
128
+ } = parameter;
124
129
  req.headers = req.headers || {};
125
- const type = typeof value;
126
130
  if (value !== undefined && parameter.content) {
127
131
  const effectiveMediaType = Object.keys(parameter.content)[0];
128
- req.headers.Cookie = `${parameter.name}=${(0, _contentSerializer.default)(value, effectiveMediaType)}`;
132
+ const cookieValue = (0, _contentSerializer.default)(value, effectiveMediaType);
133
+ req.headers.Cookie = (0, _cookie.serializeCookie)({
134
+ [cookieName]: cookieValue
135
+ }, {
136
+ encoders: {
137
+ value: _cookieValueEncoder.default
138
+ }
139
+ });
129
140
  return;
130
141
  }
131
142
  if (value !== undefined && !(Array.isArray(value) && value.length === 0)) {
132
- const prefix = type === 'object' && !Array.isArray(value) && parameter.explode ? '' : `${parameter.name}=`;
133
- req.headers.Cookie = prefix + (0, _styleSerializer.default)({
143
+ var _parameter$explode;
144
+ const serializedValue = (0, _styleSerializer.default)({
134
145
  key: parameter.name,
135
146
  value,
136
147
  escape: false,
137
148
  style: parameter.style || 'form',
138
- explode: typeof parameter.explode === 'undefined' ? false : parameter.explode
149
+ explode: (_parameter$explode = parameter.explode) != null ? _parameter$explode : false
150
+ });
151
+ const cookieValue = Array.isArray(value) && parameter.explode ? `${cookieName}=${serializedValue}` : serializedValue;
152
+ req.headers.Cookie = (0, _cookie.serializeCookie)({
153
+ [cookieName]: cookieValue
154
+ }, {
155
+ encoders: {
156
+ value: _cookieValueEncoder.default
157
+ }
139
158
  });
140
159
  }
141
160
  }
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.default = void 0;
5
+ var _cookie = require("@swaggerexpert/cookie");
6
+ const eqSignPE = '%3D';
7
+ const ampersandPE = '%26';
8
+ const cookieValueEncoder = cookieValue => (0, _cookie.cookieValueStrictEncoder)(cookieValue).replace(/[=&]/gu, match => match === '=' ? eqSignPE : ampersandPE);
9
+ var _default = exports.default = cookieValueEncoder;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "swagger-client",
3
- "version": "3.33.1",
3
+ "version": "3.33.2",
4
4
  "description": "SwaggerJS - a collection of interfaces for OAI specs",
5
5
  "browser": {
6
6
  "./src/helpers/btoa.node.js": "./src/helpers/btoa.browser.js",
@@ -79,7 +79,7 @@
79
79
  "@swagger-api/apidom-json-pointer": ">=1.0.0-beta.6 <1.0.0-rc.0",
80
80
  "@swagger-api/apidom-ns-openapi-3-1": ">=1.0.0-beta.6 <1.0.0-rc.0",
81
81
  "@swagger-api/apidom-reference": ">=1.0.0-beta.6 <1.0.0-rc.0",
82
- "cookie": "~0.7.2",
82
+ "@swaggerexpert/cookie": "^1.4.1",
83
83
  "deepmerge": "~4.3.0",
84
84
  "fast-json-patch": "^3.0.0-1",
85
85
  "js-yaml": "^4.1.0",