Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,8 @@
"jsep": "1.4.0",
"sha.js": "2.4.12",
"pbkdf2": "3.1.3",
"ws": "8.17.1"
"ws": "8.17.1",
"path-to-regexp": "3.3.0"
},
"devDependencies": {
"@commitlint/cli": "^14.1.0",
Expand Down Expand Up @@ -112,7 +113,7 @@
"eslint-plugin-prettier": "^4.2.1",
"expect": "^27.5.1",
"fast-glob": "^3.3.3",
"fetch-mock": "^9.11.0",
"fetch-mock": "^12.6.0",
"file-entry-cache": "^6.0.1",
"husky": "^7.0.4",
"jest": "^29.7.0",
Expand Down
2 changes: 1 addition & 1 deletion packages/ruleset-bundler/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@
},
"devDependencies": {
"@types/validate-npm-package-name": "^3.0.3",
"fetch-mock": "^9.11.0",
"fetch-mock": "^12.6.0",
"memfs": "^3.5.3",
"prettier": "^2.4.1"
}
Expand Down
2 changes: 1 addition & 1 deletion packages/ruleset-migrator/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@
"devDependencies": {
"@stoplight/spectral-core": "*",
"@stoplight/spectral-rulesets": "*",
"fetch-mock": "^9.11.0",
"fetch-mock": "^12.6.0",
"json-schema-to-typescript": "^10.1.5",
"memfs": "^3.5.3",
"prettier": "^2.4.1"
Expand Down
17 changes: 13 additions & 4 deletions packages/ruleset-migrator/src/__tests__/ruleset.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import * as prettier from 'prettier/standalone';
import * as parserBabel from 'prettier/parser-babel';
import { Ruleset } from '@stoplight/spectral-core';
import { DiagnosticSeverity } from '@stoplight/types';
import * as fetchMock from 'fetch-mock';
import fetchMockLib, { FetchMock as FetchMockInstance } from 'fetch-mock';
import { serveAssets } from '@stoplight/spectral-test-utils';

import { migrateRuleset } from '..';
Expand All @@ -18,9 +18,18 @@ afterAll(() => {
vol.reset();
});

function createFetchMockSandbox() {
// something is off with default module interop in Karma :man_shrugging:
return ((fetchMock as { default?: typeof import('fetch-mock') }).default ?? fetchMock).sandbox();
type FetchFn = (
input: Parameters<typeof globalThis.fetch>[0],
init?: Parameters<typeof globalThis.fetch>[1],
) => ReturnType<typeof globalThis.fetch>;

type FetchMockSandbox = FetchMockInstance & FetchFn;

function createFetchMockSandbox(): FetchMockSandbox {
const instance = fetchMockLib.createInstance();
const sandbox = instance.fetchHandler as FetchMockSandbox;
Object.setPrototypeOf(sandbox, instance);
return sandbox;
}

const scenarios = Object.keys(fixtures)
Expand Down
14 changes: 7 additions & 7 deletions test-utils/browser/index.js
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
import { dirname, isURL } from '@stoplight/path';
import * as fs from 'fs';
import fetchMockLib from 'fetch-mock';

let fetchMock;
let fetchDesc;

beforeEach(() => {
fetchMock = require('fetch-mock').default.sandbox();
// fetchMock.config.fetch = fetch;
fetchMock.config.fallbackToNetwork = false;
fetchMock = fetchMockLib.createInstance();
fetchMock.config.fetch = global.fetch;
fetchDesc = Object.getOwnPropertyDescriptor(global, 'fetch');
window.fetch = fetchMock;
window.fetch = fetchMock.fetchHandler;
});

afterEach(() => {
fetchMock.restore();
fetchMock.hardReset();
Object.defineProperty(window, 'fetch', fetchDesc);
});

Expand All @@ -26,7 +26,7 @@ export function serveAssets(mocks) {
}

for (const actualUrl of new Set([uri.replace(/([^/])\?/, '$1/?'), uri.replace(/([^/])\?/, '$1?')])) {
fetchMock.mock(actualUrl, {
fetchMock.route(actualUrl, {
status: 200,
body,
});
Expand All @@ -38,7 +38,7 @@ export function mockResponses(mocks) {
for (const [uri, responses] of Object.entries(mocks)) {
for (const [code, body] of Object.entries(responses)) {
for (const actualUrl of new Set([uri.replace(/([^/])\?/, '$1/?'), uri.replace(/([^/])\?/, '$1?')])) {
fetchMock.mock(actualUrl, {
fetchMock.route(actualUrl, {
status: Number(code),
body,
});
Expand Down
124 changes: 36 additions & 88 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ __metadata:
languageName: node
linkType: hard

"@babel/core@npm:^7.0.0, @babel/core@npm:^7.11.1, @babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.7.5":
"@babel/core@npm:^7.11.1, @babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.7.5":
version: 7.18.9
resolution: "@babel/core@npm:7.18.9"
dependencies:
Expand Down Expand Up @@ -1331,7 +1331,7 @@ __metadata:
languageName: node
linkType: hard

"@babel/runtime@npm:^7.0.0, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.8.4":
"@babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.8.4":
version: 7.22.5
resolution: "@babel/runtime@npm:7.22.5"
dependencies:
Expand Down Expand Up @@ -3092,7 +3092,7 @@ __metadata:
"@stoplight/types": ^13.6.0
"@types/node": "*"
"@types/validate-npm-package-name": ^3.0.3
fetch-mock: ^9.11.0
fetch-mock: ^12.6.0
memfs: ^3.5.3
pony-cause: 1.1.1
prettier: ^2.4.1
Expand All @@ -3119,7 +3119,7 @@ __metadata:
ajv: ^8.17.1
ast-types: 0.14.2
astring: ^1.9.0
fetch-mock: ^9.11.0
fetch-mock: ^12.6.0
json-schema-to-typescript: ^10.1.5
memfs: ^3.5.3
prettier: ^2.4.1
Expand Down Expand Up @@ -3519,6 +3519,13 @@ __metadata:
languageName: node
linkType: hard

"@types/glob-to-regexp@npm:^0.4.4":
version: 0.4.4
resolution: "@types/glob-to-regexp@npm:0.4.4"
checksum: be9c924d664592a16129c825aa392365335ce455c34e1c9d3f6dd8b45371088bb5d4a45bbb576559f2b63d4f8bcf464cbd5baafb08cdf89b71d3b6a79356b747
languageName: node
linkType: hard

"@types/glob@npm:*":
version: 7.1.3
resolution: "@types/glob@npm:7.1.3"
Expand Down Expand Up @@ -5569,13 +5576,6 @@ __metadata:
languageName: node
linkType: hard

"core-js@npm:^3.0.0":
version: 3.8.1
resolution: "core-js@npm:3.8.1"
checksum: 0212b6d2d113d2ed50d5cfed467e1b64fa25b53f0d5c38eba4ac591a7d6d05bd74bab544fa982c07acaf781daab5f468e8b7d3f5a774bccdf6059bf0ce54b3d5
languageName: node
linkType: hard

"core-util-is@npm:~1.0.0":
version: 1.0.2
resolution: "core-util-is@npm:1.0.2"
Expand Down Expand Up @@ -5996,6 +5996,13 @@ __metadata:
languageName: node
linkType: hard

"dequal@npm:^2.0.3":
version: 2.0.3
resolution: "dequal@npm:2.0.3"
checksum: 8679b850e1a3d0ebbc46ee780d5df7b478c23f335887464023a631d1b9af051ad4a6595a44220f9ff8ff95a8ddccf019b5ad778a976fd7bbf77383d36f412f90
languageName: node
linkType: hard

"des.js@npm:^1.0.0":
version: 1.0.0
resolution: "des.js@npm:1.0.0"
Expand Down Expand Up @@ -7088,26 +7095,15 @@ __metadata:
languageName: node
linkType: hard

"fetch-mock@npm:^9.11.0":
version: 9.11.0
resolution: "fetch-mock@npm:9.11.0"
"fetch-mock@npm:^12.6.0":
version: 12.6.0
resolution: "fetch-mock@npm:12.6.0"
dependencies:
"@babel/core": ^7.0.0
"@babel/runtime": ^7.0.0
core-js: ^3.0.0
debug: ^4.1.1
glob-to-regexp: ^0.4.0
is-subset: ^0.1.1
lodash.isequal: ^4.5.0
path-to-regexp: ^2.2.1
querystring: ^0.2.0
whatwg-url: ^6.5.0
peerDependencies:
node-fetch: "*"
peerDependenciesMeta:
node-fetch:
optional: true
checksum: debc4dd83bcda79b0aa71c38d08da6036906cdc49393343eb3426112314a7e57557255664f745d2e3f0b9b2a6e852bd3a564ae3f08332c27e422d3441bb865bd
"@types/glob-to-regexp": ^0.4.4
dequal: ^2.0.3
glob-to-regexp: ^0.4.1
regexparam: ^3.0.0
checksum: 7705aaa6ab149f59e10e9e0794175e31c3b6c52eb0aab22522a4d7689a1ff0e3a85b9f76a2079adfd23d515e4db228e9ab7d4293f5c4cfee157cd9f858e14ae1
languageName: node
linkType: hard

Expand Down Expand Up @@ -7647,7 +7643,7 @@ __metadata:
languageName: node
linkType: hard

"glob-to-regexp@npm:^0.4.0":
"glob-to-regexp@npm:^0.4.1":
version: 0.4.1
resolution: "glob-to-regexp@npm:0.4.1"
checksum: e795f4e8f06d2a15e86f76e4d92751cf8bbfcf0157cea5c2f0f35678a8195a750b34096b1256e436f0cebc1883b5ff0888c47348443e69546a5a87f9e1eb1167
Expand Down Expand Up @@ -8606,13 +8602,6 @@ __metadata:
languageName: node
linkType: hard

"is-subset@npm:^0.1.1":
version: 0.1.1
resolution: "is-subset@npm:0.1.1"
checksum: 97b8d7852af165269b7495095691a6ce6cf20bdfa1f846f97b4560ee190069686107af4e277fbd93aa0845c4d5db704391460ff6e9014aeb73264ba87893df44
languageName: node
linkType: hard

"is-symbol@npm:^1.0.2, is-symbol@npm:^1.0.3":
version: 1.0.4
resolution: "is-symbol@npm:1.0.4"
Expand Down Expand Up @@ -9954,13 +9943,6 @@ __metadata:
languageName: node
linkType: hard

"lodash.isequal@npm:^4.5.0":
version: 4.5.0
resolution: "lodash.isequal@npm:4.5.0"
checksum: da27515dc5230eb1140ba65ff8de3613649620e8656b19a6270afe4866b7bd461d9ba2ac8a48dcc57f7adac4ee80e1de9f965d89d4d81a0ad52bb3eec2609644
languageName: node
linkType: hard

"lodash.ismatch@npm:^4.4.0":
version: 4.4.0
resolution: "lodash.ismatch@npm:4.4.0"
Expand Down Expand Up @@ -10003,13 +9985,6 @@ __metadata:
languageName: node
linkType: hard

"lodash.sortby@npm:^4.7.0":
version: 4.7.0
resolution: "lodash.sortby@npm:4.7.0"
checksum: db170c9396d29d11fe9a9f25668c4993e0c1331bcb941ddbd48fb76f492e732add7f2a47cfdf8e9d740fa59ac41bbfaf931d268bc72aab3ab49e9f89354d718c
languageName: node
linkType: hard

"lodash.topath@npm:^4.5.2":
version: 4.5.2
resolution: "lodash.topath@npm:4.5.2"
Expand Down Expand Up @@ -11646,13 +11621,6 @@ __metadata:
languageName: node
linkType: hard

"path-to-regexp@npm:^2.2.1":
version: 2.4.0
resolution: "path-to-regexp@npm:2.4.0"
checksum: 581175bf2968e51452f2b8c71f10e75c995693668b4ecf7d0b48962fbe0c56830661ca5dd5fd6d8e2f0cc9a045ce07e89af504ab133e1d21887c2712df85b1f4
languageName: node
linkType: hard

"path-type@npm:^4.0.0":
version: 4.0.0
resolution: "path-type@npm:4.0.0"
Expand Down Expand Up @@ -12034,7 +12002,7 @@ __metadata:
languageName: node
linkType: hard

"querystring@npm:0.2.0, querystring@npm:^0.2.0":
"querystring@npm:0.2.0":
version: 0.2.0
resolution: "querystring@npm:0.2.0"
checksum: 8258d6734f19be27e93f601758858c299bdebe71147909e367101ba459b95446fbe5b975bf9beb76390156a592b6f4ac3a68b6087cea165c259705b8b4e56a69
Expand Down Expand Up @@ -12285,6 +12253,13 @@ __metadata:
languageName: node
linkType: hard

"regexparam@npm:^3.0.0":
version: 3.0.0
resolution: "regexparam@npm:3.0.0"
checksum: c8649af1538ccc12b5c5d250525f61bd370227dce41f4fb908433a9651e18b7be21dd8f8518c322dd9ebd75f7caaaea4921e374c39a469c11d4f9d0c738043e0
languageName: node
linkType: hard

"regexpp@npm:^3.2.0":
version: 3.2.0
resolution: "regexpp@npm:3.2.0"
Expand Down Expand Up @@ -12551,7 +12526,7 @@ __metadata:
eslint-plugin-prettier: ^4.2.1
expect: ^27.5.1
fast-glob: ^3.3.3
fetch-mock: ^9.11.0
fetch-mock: ^12.6.0
file-entry-cache: ^6.0.1
husky: ^7.0.4
jest: ^29.7.0
Expand Down Expand Up @@ -13671,15 +13646,6 @@ __metadata:
languageName: node
linkType: hard

"tr46@npm:^1.0.1":
version: 1.0.1
resolution: "tr46@npm:1.0.1"
dependencies:
punycode: ^2.1.0
checksum: 96d4ed46bc161db75dbf9247a236ea0bfcaf5758baae6749e92afab0bc5a09cb59af21788ede7e55080f2bf02dce3e4a8f2a484cc45164e29f4b5e68f7cbcc1a
languageName: node
linkType: hard

"tr46@npm:~0.0.3":
version: 0.0.3
resolution: "tr46@npm:0.0.3"
Expand Down Expand Up @@ -14330,13 +14296,6 @@ __metadata:
languageName: node
linkType: hard

"webidl-conversions@npm:^4.0.2":
version: 4.0.2
resolution: "webidl-conversions@npm:4.0.2"
checksum: c93d8dfe908a0140a4ae9c0ebc87a33805b416a33ee638a605b551523eec94a9632165e54632f6d57a39c5f948c4bab10e0e066525e9a4b87a79f0d04fbca374
languageName: node
linkType: hard

"whatwg-url@npm:^5.0.0":
version: 5.0.0
resolution: "whatwg-url@npm:5.0.0"
Expand All @@ -14347,17 +14306,6 @@ __metadata:
languageName: node
linkType: hard

"whatwg-url@npm:^6.5.0":
version: 6.5.0
resolution: "whatwg-url@npm:6.5.0"
dependencies:
lodash.sortby: ^4.7.0
tr46: ^1.0.1
webidl-conversions: ^4.0.2
checksum: a10bd5e29f4382cd19789c2a7bbce25416e606b6fefc241c7fe34a2449de5bc5709c165bd13634eda433942d917ca7386a52841780b82dc37afa8141c31a8ebd
languageName: node
linkType: hard

"which-boxed-primitive@npm:^1.0.2":
version: 1.0.2
resolution: "which-boxed-primitive@npm:1.0.2"
Expand Down