fix: make schema more lenient while parsing public data structures

This commit is contained in:
Andrew Bastin
2023-11-14 21:24:25 +05:30
parent e93a37c711
commit b1982d74a6
6 changed files with 163 additions and 84 deletions

158
pnpm-lock.yaml generated
View File

@@ -798,8 +798,8 @@ importers:
specifier: ^0.7.0
version: 0.7.0(fp-ts@2.16.1)
verzod:
specifier: ^0.1.1
version: 0.1.1
specifier: ^0.2.2
version: 0.2.2(zod@3.22.4)
zod:
specifier: ^3.22.4
version: 3.22.4
@@ -830,7 +830,7 @@ importers:
version: 0.15.0
tsup:
specifier: ^5.12.5
version: 5.12.9(@swc/core@1.2.213)(typescript@4.7.4)
version: 5.12.9(typescript@4.9.5)
devDependencies:
'@digitak/esrun':
specifier: ^3.1.2
@@ -849,10 +849,10 @@ importers:
version: 17.0.45
'@typescript-eslint/eslint-plugin':
specifier: ^5.19.0
version: 5.30.6(@typescript-eslint/parser@5.30.6)(eslint@8.19.0)(typescript@4.7.4)
version: 5.30.6(@typescript-eslint/parser@5.30.6)(eslint@8.19.0)(typescript@4.9.5)
'@typescript-eslint/parser':
specifier: ^5.19.0
version: 5.30.6(eslint@8.19.0)(typescript@4.7.4)
version: 5.30.6(eslint@8.19.0)(typescript@4.9.5)
eslint:
specifier: ^8.13.0
version: 8.19.0
@@ -873,10 +873,10 @@ importers:
version: 2.8.4
ts-jest:
specifier: ^27.1.4
version: 27.1.5(@babel/core@7.23.2)(@types/jest@27.5.2)(esbuild@0.14.48)(jest@27.5.1)(typescript@4.7.4)
version: 27.1.5(@babel/core@7.23.2)(@types/jest@27.5.2)(esbuild@0.14.48)(jest@27.5.1)(typescript@4.9.5)
typescript:
specifier: ^4.6.3
version: 4.7.4
version: 4.9.5
packages/hoppscotch-selfhost-desktop:
dependencies:
@@ -9923,6 +9923,7 @@ packages:
cpu: [arm]
os: [android]
requiresBuild: true
dev: true
optional: true
/@swc/core-android-arm64@1.2.213:
@@ -9931,6 +9932,7 @@ packages:
cpu: [arm64]
os: [android]
requiresBuild: true
dev: true
optional: true
/@swc/core-darwin-arm64@1.2.213:
@@ -9939,6 +9941,7 @@ packages:
cpu: [arm64]
os: [darwin]
requiresBuild: true
dev: true
optional: true
/@swc/core-darwin-x64@1.2.213:
@@ -9947,6 +9950,7 @@ packages:
cpu: [x64]
os: [darwin]
requiresBuild: true
dev: true
optional: true
/@swc/core-freebsd-x64@1.2.213:
@@ -9955,6 +9959,7 @@ packages:
cpu: [x64]
os: [freebsd]
requiresBuild: true
dev: true
optional: true
/@swc/core-linux-arm-gnueabihf@1.2.213:
@@ -9963,6 +9968,7 @@ packages:
cpu: [arm]
os: [linux]
requiresBuild: true
dev: true
optional: true
/@swc/core-linux-arm64-gnu@1.2.213:
@@ -9971,6 +9977,7 @@ packages:
cpu: [arm64]
os: [linux]
requiresBuild: true
dev: true
optional: true
/@swc/core-linux-arm64-musl@1.2.213:
@@ -9979,6 +9986,7 @@ packages:
cpu: [arm64]
os: [linux]
requiresBuild: true
dev: true
optional: true
/@swc/core-linux-x64-gnu@1.2.213:
@@ -9987,6 +9995,7 @@ packages:
cpu: [x64]
os: [linux]
requiresBuild: true
dev: true
optional: true
/@swc/core-linux-x64-musl@1.2.213:
@@ -9995,6 +10004,7 @@ packages:
cpu: [x64]
os: [linux]
requiresBuild: true
dev: true
optional: true
/@swc/core-win32-arm64-msvc@1.2.213:
@@ -10003,6 +10013,7 @@ packages:
cpu: [arm64]
os: [win32]
requiresBuild: true
dev: true
optional: true
/@swc/core-win32-ia32-msvc@1.2.213:
@@ -10011,6 +10022,7 @@ packages:
cpu: [ia32]
os: [win32]
requiresBuild: true
dev: true
optional: true
/@swc/core-win32-x64-msvc@1.2.213:
@@ -10019,6 +10031,7 @@ packages:
cpu: [x64]
os: [win32]
requiresBuild: true
dev: true
optional: true
/@swc/core@1.2.213:
@@ -10039,6 +10052,7 @@ packages:
'@swc/core-win32-arm64-msvc': 1.2.213
'@swc/core-win32-ia32-msvc': 1.2.213
'@swc/core-win32-x64-msvc': 1.2.213
dev: true
/@tauri-apps/api@1.5.1:
resolution: {integrity: sha512-6unsZDOdlXTmauU3NhWhn+Cx0rODV+rvNvTdvolE5Kls5ybA6cqndQENDt1+FS0tF7ozCP66jwWoH6a5h90BrA==}
@@ -10736,7 +10750,7 @@ packages:
'@types/yargs-parser': 21.0.0
dev: true
/@typescript-eslint/eslint-plugin@5.30.6(@typescript-eslint/parser@5.30.6)(eslint@8.19.0)(typescript@4.7.4):
/@typescript-eslint/eslint-plugin@5.30.6(@typescript-eslint/parser@5.30.6)(eslint@8.19.0)(typescript@4.9.5):
resolution: {integrity: sha512-J4zYMIhgrx4MgnZrSDD7sEnQp7FmhKNOaqaOpaoQ/SfdMfRB/0yvK74hTnvH+VQxndZynqs5/Hn4t+2/j9bADg==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
@@ -10747,18 +10761,18 @@ packages:
typescript:
optional: true
dependencies:
'@typescript-eslint/parser': 5.30.6(eslint@8.19.0)(typescript@4.7.4)
'@typescript-eslint/parser': 5.30.6(eslint@8.19.0)(typescript@4.9.5)
'@typescript-eslint/scope-manager': 5.30.6
'@typescript-eslint/type-utils': 5.30.6(eslint@8.19.0)(typescript@4.7.4)
'@typescript-eslint/utils': 5.30.6(eslint@8.19.0)(typescript@4.7.4)
'@typescript-eslint/type-utils': 5.30.6(eslint@8.19.0)(typescript@4.9.5)
'@typescript-eslint/utils': 5.30.6(eslint@8.19.0)(typescript@4.9.5)
debug: 4.3.4(supports-color@9.2.2)
eslint: 8.19.0
functional-red-black-tree: 1.0.1
ignore: 5.2.0
regexpp: 3.2.0
semver: 7.3.7
tsutils: 3.21.0(typescript@4.7.4)
typescript: 4.7.4
tsutils: 3.21.0(typescript@4.9.5)
typescript: 4.9.5
transitivePeerDependencies:
- supports-color
dev: true
@@ -10903,7 +10917,7 @@ packages:
- supports-color
dev: true
/@typescript-eslint/parser@5.30.6(eslint@8.19.0)(typescript@4.7.4):
/@typescript-eslint/parser@5.30.6(eslint@8.19.0)(typescript@4.9.5):
resolution: {integrity: sha512-gfF9lZjT0p2ZSdxO70Xbw8w9sPPJGfAdjK7WikEjB3fcUI/yr9maUVEdqigBjKincUYNKOmf7QBMiTf719kbrA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
@@ -10915,10 +10929,10 @@ packages:
dependencies:
'@typescript-eslint/scope-manager': 5.30.6
'@typescript-eslint/types': 5.30.6
'@typescript-eslint/typescript-estree': 5.30.6(typescript@4.7.4)
'@typescript-eslint/typescript-estree': 5.30.6(typescript@4.9.5)
debug: 4.3.4(supports-color@9.2.2)
eslint: 8.19.0
typescript: 4.7.4
typescript: 4.9.5
transitivePeerDependencies:
- supports-color
dev: true
@@ -11056,7 +11070,7 @@ packages:
'@typescript-eslint/visitor-keys': 6.4.0
dev: true
/@typescript-eslint/type-utils@5.30.6(eslint@8.19.0)(typescript@4.7.4):
/@typescript-eslint/type-utils@5.30.6(eslint@8.19.0)(typescript@4.9.5):
resolution: {integrity: sha512-GFVVzs2j0QPpM+NTDMXtNmJKlF842lkZKDSanIxf+ArJsGeZUIaeT4jGg+gAgHt7AcQSFwW7htzF/rbAh2jaVA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
@@ -11066,11 +11080,11 @@ packages:
typescript:
optional: true
dependencies:
'@typescript-eslint/utils': 5.30.6(eslint@8.19.0)(typescript@4.7.4)
'@typescript-eslint/utils': 5.30.6(eslint@8.19.0)(typescript@4.9.5)
debug: 4.3.4(supports-color@9.2.2)
eslint: 8.19.0
tsutils: 3.21.0(typescript@4.7.4)
typescript: 4.7.4
tsutils: 3.21.0(typescript@4.9.5)
typescript: 4.9.5
transitivePeerDependencies:
- supports-color
dev: true
@@ -11195,7 +11209,7 @@ packages:
engines: {node: ^16.0.0 || >=18.0.0}
dev: true
/@typescript-eslint/typescript-estree@5.30.6(typescript@4.7.4):
/@typescript-eslint/typescript-estree@5.30.6(typescript@4.9.5):
resolution: {integrity: sha512-Z7TgPoeYUm06smfEfYF0RBkpF8csMyVnqQbLYiGgmUSTaSXTP57bt8f0UFXstbGxKIreTwQCujtaH0LY9w9B+A==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
@@ -11210,8 +11224,8 @@ packages:
globby: 11.1.0
is-glob: 4.0.3
semver: 7.5.4
tsutils: 3.21.0(typescript@4.7.4)
typescript: 4.7.4
tsutils: 3.21.0(typescript@4.9.5)
typescript: 4.9.5
transitivePeerDependencies:
- supports-color
dev: true
@@ -11321,7 +11335,7 @@ packages:
- supports-color
dev: true
/@typescript-eslint/utils@5.30.6(eslint@8.19.0)(typescript@4.7.4):
/@typescript-eslint/utils@5.30.6(eslint@8.19.0)(typescript@4.9.5):
resolution: {integrity: sha512-xFBLc/esUbLOJLk9jKv0E9gD/OH966M40aY9jJ8GiqpSkP2xOV908cokJqqhVd85WoIvHVHYXxSFE4cCSDzVvA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
@@ -11330,7 +11344,7 @@ packages:
'@types/json-schema': 7.0.9
'@typescript-eslint/scope-manager': 5.30.6
'@typescript-eslint/types': 5.30.6
'@typescript-eslint/typescript-estree': 5.30.6(typescript@4.7.4)
'@typescript-eslint/typescript-estree': 5.30.6(typescript@4.9.5)
eslint: 8.19.0
eslint-scope: 5.1.1
eslint-utils: 3.0.0(eslint@8.19.0)
@@ -19783,7 +19797,7 @@ packages:
resolution: {integrity: sha512-9xZPKVYp9DxnM3sd1yAsh/d59iIaswDkai8oTxbursfKYbg/ibjX0IzFt35+VZ8iEW453TVTXztnRvYUQlAfUQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dependencies:
acorn: 8.10.0
acorn: 8.11.2
eslint-visitor-keys: 3.4.3
espree: 9.6.1
semver: 7.5.4
@@ -20989,7 +21003,7 @@ packages:
/mlly@1.4.2:
resolution: {integrity: sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==}
dependencies:
acorn: 8.10.0
acorn: 8.11.2
pathe: 1.1.1
pkg-types: 1.0.3
ufo: 1.3.1
@@ -24275,6 +24289,42 @@ packages:
yargs-parser: 20.2.9
dev: true
/ts-jest@27.1.5(@babel/core@7.23.2)(@types/jest@27.5.2)(esbuild@0.14.48)(jest@27.5.1)(typescript@4.9.5):
resolution: {integrity: sha512-Xv6jBQPoBEvBq/5i2TeSG9tt/nqkbpcurrEG1b+2yfBrcJelOZF9Ml6dmyMh7bcW9JyFbRYpR5rxROSlBLTZHA==}
engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
hasBin: true
peerDependencies:
'@babel/core': '>=7.0.0-beta.0 <8'
'@types/jest': ^27.0.0
babel-jest: '>=27.0.0 <28'
esbuild: '*'
jest: ^27.0.0
typescript: '>=3.8 <5.0'
peerDependenciesMeta:
'@babel/core':
optional: true
'@types/jest':
optional: true
babel-jest:
optional: true
esbuild:
optional: true
dependencies:
'@babel/core': 7.23.2
'@types/jest': 27.5.2
bs-logger: 0.2.6
esbuild: 0.14.48
fast-json-stable-stringify: 2.1.0
jest: 27.5.1
jest-util: 27.5.1
json5: 2.2.1
lodash.memoize: 4.1.2
make-error: 1.3.6
semver: 7.3.7
typescript: 4.9.5
yargs-parser: 20.2.9
dev: true
/ts-jest@29.0.5(@babel/core@7.23.2)(jest@29.4.1)(typescript@4.9.3):
resolution: {integrity: sha512-PL3UciSgIpQ7f6XjVOmbi96vmDHUqAyqDr8YxzopDqX3kfgYtX1cuNeBjP+L9sFXi6nzsGGA6R3fP3DDDJyrxA==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -24380,7 +24430,7 @@ packages:
'@tsconfig/node14': 1.0.3
'@tsconfig/node16': 1.0.3
'@types/node': 18.18.8
acorn: 8.10.0
acorn: 8.11.2
acorn-walk: 8.2.0
arg: 4.1.3
create-require: 1.1.1
@@ -24558,17 +24608,43 @@ packages:
transitivePeerDependencies:
- supports-color
- ts-node
/tsutils@3.21.0(typescript@4.7.4):
resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==}
engines: {node: '>= 6'}
peerDependencies:
typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta'
dependencies:
tslib: 1.14.1
typescript: 4.7.4
dev: true
/tsup@5.12.9(typescript@4.9.5):
resolution: {integrity: sha512-dUpuouWZYe40lLufo64qEhDpIDsWhRbr2expv5dHEMjwqeKJS2aXA/FPqs1dxO4T6mBojo7rvo3jP9NNzaKyDg==}
hasBin: true
peerDependencies:
'@swc/core': ^1
postcss: ^8.4.12
typescript: ^4.1.0
peerDependenciesMeta:
'@swc/core':
optional: true
postcss:
optional: true
typescript:
optional: true
dependencies:
bundle-require: 3.0.4(esbuild@0.14.48)
cac: 6.7.12
chokidar: 3.5.3
debug: 4.3.4(supports-color@9.2.2)
esbuild: 0.14.48
execa: 5.1.1
globby: 11.1.0
joycon: 3.1.1
postcss-load-config: 3.1.4
resolve-from: 5.0.0
rollup: 2.79.1
source-map: 0.8.0-beta.0
sucrase: 3.23.0
tree-kill: 1.2.2
typescript: 4.9.5
transitivePeerDependencies:
- supports-color
- ts-node
dev: false
/tsutils@3.21.0(typescript@4.9.3):
resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==}
engines: {node: '>= 6'}
@@ -24704,6 +24780,7 @@ packages:
resolution: {integrity: sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==}
engines: {node: '>=4.2.0'}
hasBin: true
dev: true
/typescript@4.9.3:
resolution: {integrity: sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA==}
@@ -24720,7 +24797,6 @@ packages:
resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==}
engines: {node: '>=4.2.0'}
hasBin: true
dev: true
/typescript@5.0.4:
resolution: {integrity: sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==}
@@ -25503,9 +25579,11 @@ packages:
resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==}
engines: {node: '>= 0.8'}
/verzod@0.1.1:
resolution: {integrity: sha512-T0o2GHjSdERgt3FCrhGB+ctXdPhRjj/gL/mFjkb1HsYQQQr6pF10oPY1jVHI0RMsG6L2+6VKe4zDN0gAarZmzg==}
/verzod@0.2.2(zod@3.22.4):
resolution: {integrity: sha512-TnM0O2SUcXuY63qQ+W+W4/5bDaIhyV9ZDWwL0ztDOawX7q7ar+jHNdYKUR43rf8ku23p2ROgrfoKABjl2IiiZQ==}
engines: {node: '>=16'}
peerDependencies:
zod: ^3.22.0
dependencies:
zod: 3.22.4
dev: false