+2
-5
.eslintrc.js
+2
-5
.eslintrc.js
+8
babel.config.js
+8
babel.config.js
+39
eslint.config.mjs
+39
eslint.config.mjs
···
1
+
import { fixupConfigRules } from '@eslint/compat'
2
+
import babelParser from '@babel/eslint-parser'
3
+
import { FlatCompat } from '@eslint/eslintrc'
4
+
import js from '@eslint/js'
5
+
import prettier from 'eslint-plugin-prettier'
6
+
import { defineConfig } from 'eslint/config'
7
+
import path from 'node:path'
8
+
import { fileURLToPath } from 'node:url'
9
+
10
+
const __filename = fileURLToPath(import.meta.url)
11
+
const __dirname = path.dirname(__filename)
12
+
const compat = new FlatCompat({
13
+
baseDirectory: __dirname,
14
+
recommendedConfig: js.configs.recommended,
15
+
allConfig: js.configs.all,
16
+
})
17
+
18
+
export default defineConfig([
19
+
{
20
+
extends: fixupConfigRules(compat.extends('@react-native', 'prettier')),
21
+
plugins: { prettier },
22
+
rules: {
23
+
'react/react-in-jsx-scope': 'off',
24
+
'prettier/prettier': [
25
+
'error',
26
+
{
27
+
quoteProps: 'consistent',
28
+
singleQuote: true,
29
+
tabWidth: 2,
30
+
trailingComma: 'es5',
31
+
useTabs: false,
32
+
},
33
+
],
34
+
},
35
+
},
36
+
{
37
+
ignores: ['node_modules/', 'lib/'],
38
+
},
39
+
])
+78
-78
example/App.tsx
+78
-78
example/App.tsx
···
1
-
import React from "react";
2
-
import { Text, View, StyleSheet, Button, Alert, TextInput } from "react-native";
1
+
import React from 'react'
2
+
import { Text, View, StyleSheet, Button, Alert, TextInput } from 'react-native'
3
3
import {
4
4
digest,
5
5
getRandomValues,
6
6
createJwt,
7
7
generateJwk,
8
8
ReactNativeOAuthClient,
9
-
} from "expo-atproto-auth";
10
-
import { OAuthSession } from "@atproto/oauth-client";
11
-
import { Agent } from "@atproto/api";
12
-
import type { ReactNativeKey } from "expo-atproto-auth";
13
-
import * as Browser from "expo-web-browser";
9
+
} from 'expo-atproto-auth'
10
+
import { OAuthSession } from '@atproto/oauth-client'
11
+
import { Agent } from '@atproto/api'
12
+
import type { ReactNativeKey } from 'expo-atproto-auth'
13
+
import * as Browser from 'expo-web-browser'
14
14
15
15
const client = new ReactNativeOAuthClient({
16
16
clientMetadata: {
17
-
client_id: "https://hailey.at/oauth-client-metadata.json",
18
-
client_name: "React Native OAuth Client Demo",
19
-
client_uri: "https://hailey.at",
20
-
redirect_uris: ["at.hailey:/auth/callback"],
21
-
scope: "atproto transition:generic",
22
-
token_endpoint_auth_method: "none",
23
-
response_types: ["code"],
24
-
grant_types: ["authorization_code", "refresh_token"],
25
-
application_type: "native",
17
+
client_id: 'https://hailey.at/oauth-client-metadata.json',
18
+
client_name: 'React Native OAuth Client Demo',
19
+
client_uri: 'https://hailey.at',
20
+
redirect_uris: ['at.hailey:/auth/callback'],
21
+
scope: 'atproto transition:generic',
22
+
token_endpoint_auth_method: 'none',
23
+
response_types: ['code'],
24
+
grant_types: ['authorization_code', 'refresh_token'],
25
+
application_type: 'native',
26
26
dpop_bound_access_tokens: true,
27
27
},
28
-
handleResolver: "https://bsky.social",
29
-
});
28
+
handleResolver: 'https://bsky.social',
29
+
})
30
30
31
31
export default function App() {
32
-
const [values, setValues] = React.useState<Uint8Array>();
33
-
const [sha, setSha] = React.useState<Uint8Array>();
34
-
const [jwt, setJwt] = React.useState<string>();
32
+
const [values, setValues] = React.useState<Uint8Array>()
33
+
const [sha, setSha] = React.useState<Uint8Array>()
34
+
const [jwt, setJwt] = React.useState<string>()
35
35
const [privateJwk, setPrivateJwk] = React.useState<
36
36
ReactNativeKey | undefined
37
-
>();
38
-
const [session, setSession] = React.useState<OAuthSession>();
39
-
const [input, setInput] = React.useState<string>();
40
-
const [agent, setAgent] = React.useState<Agent>();
37
+
>()
38
+
const [session, setSession] = React.useState<OAuthSession>()
39
+
const [input, setInput] = React.useState<string>()
40
+
const [agent, setAgent] = React.useState<Agent>()
41
41
42
42
return (
43
43
<View style={styles.container}>
44
-
<Text>Current Account: {session ? session.did : "No Account"}</Text>
44
+
<Text>Current Account: {session ? session.did : 'No Account'}</Text>
45
45
<Text>Values: {values}</Text>
46
46
<Button
47
47
title="Generate Random Values"
48
48
onPress={() => {
49
-
const newValues = getRandomValues(400);
50
-
setValues(newValues);
49
+
const newValues = getRandomValues(400)
50
+
setValues(newValues)
51
51
}}
52
52
/>
53
53
<Text>SHA: {sha}</Text>
···
55
55
title="SHA from values"
56
56
onPress={() => {
57
57
if (!values) {
58
-
return;
58
+
return
59
59
}
60
-
let newSha: Uint8Array | undefined;
60
+
let newSha: Uint8Array | undefined
61
61
try {
62
-
newSha = digest(values, "sha256");
62
+
newSha = digest(values, 'sha256')
63
63
} catch (e: any) {
64
-
Alert.alert("Error", e.toString());
65
-
return;
64
+
Alert.alert('Error', e.toString())
65
+
return
66
66
}
67
-
setSha(newSha);
67
+
setSha(newSha)
68
68
}}
69
69
/>
70
70
<Text>JWT: {jwt}</Text>
···
72
72
title="Create JWT"
73
73
onPress={() => {
74
74
if (!privateJwk) {
75
-
return;
75
+
return
76
76
}
77
77
78
-
let newJwt: string | undefined;
78
+
let newJwt: string | undefined
79
79
try {
80
-
newJwt = createJwt("", "", privateJwk);
80
+
newJwt = createJwt('', '', privateJwk)
81
81
} catch (e: any) {
82
-
Alert.alert("Error", e.toString());
83
-
return;
82
+
Alert.alert('Error', e.toString())
83
+
return
84
84
}
85
-
setJwt(newJwt);
85
+
setJwt(newJwt)
86
86
}}
87
87
/>
88
88
<Text>Priv Key: {privateJwk?.kid}</Text>
89
89
<Button
90
90
title="Create JWK"
91
91
onPress={() => {
92
-
let newJwk: ReactNativeKey | undefined;
92
+
let newJwk: ReactNativeKey | undefined
93
93
try {
94
-
newJwk = generateJwk("ES256");
94
+
newJwk = generateJwk('ES256')
95
95
} catch (e: any) {
96
-
Alert.alert("Error", e.toString());
97
-
return;
96
+
Alert.alert('Error', e.toString())
97
+
return
98
98
}
99
-
setPrivateJwk(newJwk);
99
+
setPrivateJwk(newJwk)
100
100
}}
101
101
/>
102
102
···
109
109
<Button
110
110
title="Open Sign In"
111
111
onPress={async () => {
112
-
let url: URL;
112
+
let url: URL
113
113
try {
114
-
url = await client.authorize(input ?? "");
114
+
url = await client.authorize(input ?? '')
115
115
} catch (e: any) {
116
-
Alert.alert("Error", e.toString());
117
-
return;
116
+
Alert.alert('Error', e.toString())
117
+
return
118
118
}
119
119
const res = await Browser.openAuthSessionAsync(
120
120
url.toString(),
121
-
"at.hailey://auth/callback",
122
-
);
121
+
'at.hailey://auth/callback'
122
+
)
123
123
124
-
if (res.type === "success") {
125
-
const resUrl = new URL(res.url);
124
+
if (res.type === 'success') {
125
+
const resUrl = new URL(res.url)
126
126
try {
127
-
const params = new URLSearchParams(resUrl.hash.substring(1));
128
-
const callbackRes = await client.callback(params);
129
-
setSession(callbackRes.session);
127
+
const params = new URLSearchParams(resUrl.hash.substring(1))
128
+
const callbackRes = await client.callback(params)
129
+
setSession(callbackRes.session)
130
130
131
-
const agent = new Agent(callbackRes.session);
132
-
setAgent(agent);
131
+
const newAgent = new Agent(callbackRes.session)
132
+
setAgent(newAgent)
133
133
} catch (e: any) {
134
-
Alert.alert("Error", e.toString());
134
+
Alert.alert('Error', e.toString())
135
135
}
136
136
} else {
137
-
Alert.alert("Error", `Received non-success status: ${res.type}`);
137
+
Alert.alert('Error', `Received non-success status: ${res.type}`)
138
138
}
139
139
}}
140
140
/>
···
143
143
title="Restore from DID"
144
144
onPress={async () => {
145
145
try {
146
-
const restoreRes = await client.restore(input ?? "");
147
-
setSession(restoreRes);
146
+
const restoreRes = await client.restore(input ?? '')
147
+
setSession(restoreRes)
148
148
149
-
const agent = new Agent(restoreRes);
150
-
setAgent(agent);
149
+
const newAgent = new Agent(restoreRes)
150
+
setAgent(newAgent)
151
151
} catch (e: any) {
152
-
Alert.alert("Error", e.toString());
152
+
Alert.alert('Error', e.toString())
153
153
}
154
154
}}
155
155
/>
···
159
159
onPress={async () => {
160
160
try {
161
161
const res = await agent?.getProfile({
162
-
actor: session?.did ?? "",
163
-
});
162
+
actor: session?.did ?? '',
163
+
})
164
164
Alert.alert(
165
-
"Profile",
166
-
`Display Name: ${res?.data.displayName}, Bio: ${res?.data.description}`,
167
-
);
165
+
'Profile',
166
+
`Display Name: ${res?.data.displayName}, Bio: ${res?.data.description}`
167
+
)
168
168
} catch (e: any) {
169
-
Alert.alert("Error", e.toString());
169
+
Alert.alert('Error', e.toString())
170
170
}
171
171
}}
172
172
disabled={!agent}
···
177
177
onPress={async () => {
178
178
try {
179
179
await agent?.post({
180
-
text: "Test post from Expo Atproto Auth example",
181
-
});
180
+
text: 'Test post from Expo Atproto Auth example',
181
+
})
182
182
} catch (e: any) {
183
-
Alert.alert("Error", e.toString());
183
+
Alert.alert('Error', e.toString())
184
184
}
185
185
}}
186
186
disabled={!agent}
187
187
/>
188
188
</View>
189
-
);
189
+
)
190
190
}
191
191
192
192
const styles = StyleSheet.create({
193
193
container: {
194
194
flex: 1,
195
-
alignItems: "center",
196
-
justifyContent: "center",
195
+
alignItems: 'center',
196
+
justifyContent: 'center',
197
197
},
198
-
});
198
+
})
+3
-3
example/babel.config.js
+3
-3
example/babel.config.js
+4
-4
example/index.ts
+4
-4
example/index.ts
···
1
-
import "./polyfill";
1
+
import './polyfill'
2
2
3
-
import { registerRootComponent } from "expo";
3
+
import { registerRootComponent } from 'expo'
4
4
5
-
import App from "./App";
5
+
import App from './App'
6
6
7
7
// const App = require("./App").default;
8
8
9
9
// registerRootComponent calls AppRegistry.registerComponent('main', () => App);
10
10
// It also ensures that whether you load the app in Expo Go or in a native build,
11
11
// the environment is set up appropriately
12
-
registerRootComponent(App);
12
+
registerRootComponent(App)
+14
-14
example/metro.config.js
+14
-14
example/metro.config.js
···
1
1
// Learn more https://docs.expo.io/guides/customizing-metro
2
-
const { getDefaultConfig } = require("expo/metro-config");
3
-
const path = require("path");
2
+
const { getDefaultConfig } = require('expo/metro-config')
3
+
const path = require('path')
4
4
5
-
const config = getDefaultConfig(__dirname);
5
+
const config = getDefaultConfig(__dirname)
6
6
7
7
// npm v7+ will install ../node_modules/react and ../node_modules/react-native because of peerDependencies.
8
8
// To prevent the incompatible react-native between ./node_modules/react-native and ../node_modules/react-native,
9
9
// excludes the one from the parent folder when bundling.
10
10
config.resolver.blockList = [
11
11
...Array.from(config.resolver.blockList ?? []),
12
-
new RegExp(path.resolve("..", "node_modules", "react")),
13
-
new RegExp(path.resolve("..", "node_modules", "react-native")),
14
-
];
12
+
new RegExp(path.resolve('..', 'node_modules', 'react')),
13
+
new RegExp(path.resolve('..', 'node_modules', 'react-native')),
14
+
]
15
15
16
16
config.resolver.nodeModulesPaths = [
17
-
path.resolve(__dirname, "./node_modules"),
18
-
path.resolve(__dirname, "../node_modules"),
19
-
];
17
+
path.resolve(__dirname, './node_modules'),
18
+
path.resolve(__dirname, '../node_modules'),
19
+
]
20
20
21
21
config.resolver.extraNodeModules = {
22
-
"expo-atproto-auth": "..",
23
-
};
22
+
'expo-atproto-auth': '..',
23
+
}
24
24
25
-
config.watchFolders = [path.resolve(__dirname, "..")];
25
+
config.watchFolders = [path.resolve(__dirname, '..')]
26
26
27
27
config.transformer.getTransformOptions = async () => ({
28
28
transform: {
29
29
experimentalImportSupport: false,
30
30
inlineRequires: true,
31
31
},
32
-
});
32
+
})
33
33
34
-
module.exports = config;
34
+
module.exports = config
+17
-17
example/polyfill.ts
+17
-17
example/polyfill.ts
···
1
-
import "react-native-url-polyfill/auto";
2
-
import "event-target-polyfill";
3
-
import "abortcontroller-polyfill/dist/polyfill-patch-fetch";
4
-
export {};
1
+
import 'react-native-url-polyfill/auto'
2
+
import 'event-target-polyfill'
3
+
import 'abortcontroller-polyfill/dist/polyfill-patch-fetch'
4
+
export {}
5
5
6
6
/**
7
7
https://github.com/MaxArt2501/base64-js
···
9
9
Copyright (c) 2014 MaxArt2501
10
10
*/
11
11
12
-
const b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
12
+
const b64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='
13
13
// Regular expression to check formal correctness of base64 encoded strings
14
14
const b64re =
15
-
/^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/;
15
+
/^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/
16
16
17
17
globalThis.atob = (str: string): string => {
18
18
// atob can work with strings with whitespaces, even inside the encoded part,
19
19
// but only \t, \n, \f, \r and ' ', which can be stripped.
20
-
str = String(str).replace(/[\t\n\f\r ]+/g, "");
20
+
str = String(str).replace(/[\t\n\f\r ]+/g, '')
21
21
if (!b64re.test(str)) {
22
22
throw new TypeError(
23
-
"Failed to execute 'atob' on 'Window': The string to be decoded is not correctly encoded.",
24
-
);
23
+
"Failed to execute 'atob' on 'Window': The string to be decoded is not correctly encoded."
24
+
)
25
25
}
26
26
27
27
// Adding the padding if missing, for simplicity
28
-
str += "==".slice(2 - (str.length & 3));
28
+
str += '=='.slice(2 - (str.length & 3))
29
29
var bitmap,
30
-
result = "",
30
+
result = '',
31
31
r1,
32
32
r2,
33
-
i = 0;
33
+
i = 0
34
34
for (; i < str.length; ) {
35
35
bitmap =
36
36
(b64.indexOf(str.charAt(i++)) << 18) |
37
37
(b64.indexOf(str.charAt(i++)) << 12) |
38
38
((r1 = b64.indexOf(str.charAt(i++))) << 6) |
39
-
(r2 = b64.indexOf(str.charAt(i++)));
39
+
(r2 = b64.indexOf(str.charAt(i++)))
40
40
41
41
result +=
42
42
r1 === 64
···
46
46
: String.fromCharCode(
47
47
(bitmap >> 16) & 255,
48
48
(bitmap >> 8) & 255,
49
-
bitmap & 255,
50
-
);
49
+
bitmap & 255
50
+
)
51
51
}
52
-
return result;
53
-
};
52
+
return result
53
+
}
+6
-6
example/webpack.config.js
+6
-6
example/webpack.config.js
···
1
-
const createConfigAsync = require('@expo/webpack-config');
2
-
const path = require('path');
1
+
const createConfigAsync = require('@expo/webpack-config')
2
+
const path = require('path')
3
3
4
4
module.exports = async (env, argv) => {
5
5
const config = await createConfigAsync(
···
10
10
},
11
11
},
12
12
argv
13
-
);
13
+
)
14
14
config.resolve.modules = [
15
15
path.resolve(__dirname, './node_modules'),
16
16
path.resolve(__dirname, '../node_modules'),
17
-
];
17
+
]
18
18
19
-
return config;
20
-
};
19
+
return config
20
+
}
+22
-4
package.json
+22
-4
package.json
···
7
7
"scripts": {
8
8
"build": "expo-module build",
9
9
"clean": "expo-module clean",
10
-
"lint": "expo-module lint",
10
+
"typecheck": "tsc",
11
+
"lint": "eslint \"**/*.{js,ts,tsx}\"",
11
12
"test": "expo-module test",
12
13
"prepare": "expo-module prepare",
13
14
"prepublishOnly": "expo-module prepublishOnly",
···
30
31
"homepage": "https://github.com/haileyok/expo-atproto-auth#readme",
31
32
"devDependencies": {
32
33
"@atproto/oauth-client": "^0.5.1",
34
+
"@eslint/compat": "^1.2.7",
35
+
"@eslint/eslintrc": "^3.3.0",
36
+
"@eslint/js": "^9.22.0",
37
+
"@react-native/eslint-config": "^0.78.0",
33
38
"@types/react": "~19.0.0",
39
+
"@typescript-eslint/eslint-plugin": "^7.18.0",
40
+
"@typescript-eslint/parser": "^7.18.0",
41
+
"eslint": "^9.22.0",
42
+
"eslint-config-prettier": "^10.1.1",
43
+
"eslint-plugin-prettier": "^5.2.3",
34
44
"expo": "~53.0.0",
35
45
"expo-module-scripts": "^4.1.9",
46
+
"jest": "^29.7.0",
47
+
"patch-package": "^8.0.0",
48
+
"postinstall-postinstall": "^2.1.0",
49
+
"prettier": "^3.0.3",
36
50
"react-native": "0.79.1",
37
51
"react-native-mmkv": "^3.3.0"
38
52
},
···
43
57
"react-native": "*",
44
58
"react-native-mmkv": "*"
45
59
},
46
-
"dependencies": {
47
-
"patch-package": "^8.0.0",
48
-
"postinstall-postinstall": "^2.1.0"
60
+
"prettier": {
61
+
"quoteProps": "consistent",
62
+
"singleQuote": true,
63
+
"tabWidth": 2,
64
+
"trailingComma": "es5",
65
+
"useTabs": false,
66
+
"semi": false
49
67
}
50
68
}
+33
-33
src/ExpoAtprotoAuth.types.ts
+33
-33
src/ExpoAtprotoAuth.types.ts
···
1
-
import { JwtHeader } from "@atproto/oauth-client";
2
-
import type { StyleProp, ViewStyle } from "react-native";
1
+
import { JwtHeader } from '@atproto/oauth-client'
2
+
import type { StyleProp, ViewStyle } from 'react-native'
3
3
4
4
export type JWK = {
5
-
kty: string;
6
-
use: "sig" | "enc" | undefined;
7
-
crv: "P-256";
8
-
kid: string;
9
-
x: string;
10
-
y: string;
11
-
d: string | undefined;
12
-
alg: string;
13
-
};
5
+
kty: string
6
+
use: 'sig' | 'enc' | undefined
7
+
crv: 'P-256'
8
+
kid: string
9
+
x: string
10
+
y: string
11
+
d: string | undefined
12
+
alg: string
13
+
}
14
14
15
15
export type VerifyOptions = {
16
-
audience?: string;
17
-
clockTolerance?: number;
18
-
issuer?: string;
19
-
maxTokenAge?: number;
20
-
subject?: string;
21
-
typ?: string;
22
-
currentDate?: Date;
23
-
requiredClaims?: string[];
24
-
};
16
+
audience?: string
17
+
clockTolerance?: number
18
+
issuer?: string
19
+
maxTokenAge?: number
20
+
subject?: string
21
+
typ?: string
22
+
currentDate?: Date
23
+
requiredClaims?: string[]
24
+
}
25
25
26
26
export type VerifyResponse = {
27
-
payload: string;
28
-
protectedHeader: JwtHeader;
29
-
};
27
+
payload: string
28
+
protectedHeader: JwtHeader
29
+
}
30
30
31
31
export type OnLoadEventPayload = {
32
-
url: string;
33
-
};
32
+
url: string
33
+
}
34
34
35
35
export type ExpoAtprotoAuthModuleEvents = {
36
-
onChange: (params: ChangeEventPayload) => void;
37
-
};
36
+
onChange: (params: ChangeEventPayload) => void
37
+
}
38
38
39
39
export type ChangeEventPayload = {
40
-
value: string;
41
-
};
40
+
value: string
41
+
}
42
42
43
43
export type ExpoAtprotoAuthViewProps = {
44
-
url: string;
45
-
onLoad: (event: { nativeEvent: OnLoadEventPayload }) => void;
46
-
style?: StyleProp<ViewStyle>;
47
-
};
44
+
url: string
45
+
onLoad: (event: { nativeEvent: OnLoadEventPayload }) => void
46
+
style?: StyleProp<ViewStyle>
47
+
}
+9
-9
src/ExpoAtprotoAuthModule.ts
+9
-9
src/ExpoAtprotoAuthModule.ts
···
1
-
import { NativeModule, requireNativeModule } from "expo";
1
+
import { NativeModule, requireNativeModule } from 'expo'
2
2
3
-
import { ExpoAtprotoAuthModuleEvents, JWK } from "./ExpoAtprotoAuth.types";
4
-
import { VerifyOptions, VerifyResult } from "@atproto/oauth-client";
3
+
import { ExpoAtprotoAuthModuleEvents, JWK } from './ExpoAtprotoAuth.types'
4
+
import { VerifyOptions, VerifyResult } from '@atproto/oauth-client'
5
5
6
6
declare class ExpoAtprotoAuthModule extends NativeModule<ExpoAtprotoAuthModuleEvents> {
7
-
digest(data: Uint8Array, algo: string): Uint8Array;
8
-
getRandomValues(byteLength: number): Uint8Array;
9
-
generatePrivateJwk(algorithim: string): JWK;
10
-
createJwt(header: string, payload: string, jwk: JWK): string;
11
-
verifyJwt(token: string, jwk: JWK, options: VerifyOptions): VerifyResult;
7
+
digest(data: Uint8Array, algo: string): Uint8Array
8
+
getRandomValues(byteLength: number): Uint8Array
9
+
generatePrivateJwk(algorithim: string): JWK
10
+
createJwt(header: string, payload: string, jwk: JWK): string
11
+
verifyJwt(token: string, jwk: JWK, options: VerifyOptions): VerifyResult
12
12
}
13
13
14
14
// This call loads the native module object from the JSI.
15
-
export default requireNativeModule<ExpoAtprotoAuthModule>("ExpoAtprotoAuth");
15
+
export default requireNativeModule<ExpoAtprotoAuthModule>('ExpoAtprotoAuth')
+4
-4
src/index.ts
+4
-4
src/index.ts
···
1
-
export { default as NativeModule } from "./ExpoAtprotoAuthModule";
2
-
export * from "./ExpoAtprotoAuth.types";
1
+
export { default as NativeModule } from './ExpoAtprotoAuthModule'
2
+
export * from './ExpoAtprotoAuth.types'
3
3
export {
4
4
generateJwk,
5
5
digest,
···
7
7
getRandomValues,
8
8
verifyJwt,
9
9
ReactNativeKey,
10
-
} from "./react-native-key";
11
-
export { ReactNativeOAuthClient } from "./react-native-oauth-client";
10
+
} from './react-native-key'
11
+
export { ReactNativeOAuthClient } from './react-native-oauth-client'
+36
-37
src/react-native-key.ts
+36
-37
src/react-native-key.ts
···
5
5
type SignedJwt,
6
6
type VerifyOptions,
7
7
type VerifyResult,
8
-
} from "@atproto/oauth-client";
9
-
import type { JWK } from "./ExpoAtprotoAuth.types";
10
-
import { default as NativeModule } from "./ExpoAtprotoAuthModule";
8
+
} from '@atproto/oauth-client'
9
+
import type { JWK } from './ExpoAtprotoAuth.types'
10
+
import { default as NativeModule } from './ExpoAtprotoAuthModule'
11
11
12
12
export function getRandomValues(byteLength: number): Uint8Array {
13
-
return NativeModule.getRandomValues(byteLength);
13
+
return NativeModule.getRandomValues(byteLength)
14
14
}
15
15
16
16
export function digest(data: Uint8Array, algorithim: string): Uint8Array {
17
-
return NativeModule.digest(data, algorithim);
17
+
return NativeModule.digest(data, algorithim)
18
18
}
19
19
20
20
export function isECKey(jwk: any): jwk is JWK {
21
-
return jwk?.kty === "EC" && jwk.crv && jwk.y;
21
+
return jwk?.kty === 'EC' && jwk.crv && jwk.y
22
22
}
23
23
24
24
export function createJwt(
25
25
header: string,
26
26
payload: string,
27
-
key: ReactNativeKey,
27
+
key: ReactNativeKey
28
28
): string {
29
29
if (!key.privateJwk || !isECKey(key.privateJwk)) {
30
-
throw new Error("Invalid key");
30
+
throw new Error('Invalid key')
31
31
}
32
-
return NativeModule.createJwt(header, payload, key.privateJwk);
32
+
return NativeModule.createJwt(header, payload, key.privateJwk)
33
33
}
34
34
35
35
export function verifyJwt(
36
36
token: string,
37
37
jwk: JWK,
38
-
options: VerifyOptions,
38
+
options: VerifyOptions
39
39
): VerifyResult {
40
-
return NativeModule.verifyJwt(token, jwk, options);
40
+
return NativeModule.verifyJwt(token, jwk, options)
41
41
}
42
42
43
43
// @ts-expect-error
44
44
export class ReactNativeKey implements Key {
45
-
#jwk: Readonly<JWK>;
45
+
#jwk: Readonly<JWK>
46
46
47
47
constructor(jwk: Readonly<JWK>) {
48
-
this.#jwk = jwk;
48
+
this.#jwk = jwk
49
49
if (!isECKey(jwk)) {
50
-
throw new Error("Invalid key type");
50
+
throw new Error('Invalid key type')
51
51
}
52
52
if (!jwk.use) {
53
-
throw new Error(`Missing "use" parameter value`);
53
+
throw new Error(`Missing "use" parameter value`)
54
54
}
55
55
}
56
56
57
57
get jwk(): Readonly<JWK> {
58
-
return this.#jwk;
58
+
return this.#jwk
59
59
}
60
60
61
61
get isPrivate() {
62
-
return this.jwk.d !== undefined;
62
+
return this.jwk.d !== undefined
63
63
}
64
64
65
65
get privateJwk(): JWK {
66
-
return this.jwk;
66
+
return this.jwk
67
67
}
68
68
69
69
get publicJwk() {
70
-
if (this.isSymetric) return undefined;
71
-
const { d, ...publicKey } = this.jwk;
72
-
return publicKey as Readonly<JWK & { d?: never }>;
70
+
if (this.isSymetric) return undefined
71
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
72
+
const { d, ...publicKey } = this.jwk
73
+
return publicKey as Readonly<JWK & { d?: never }>
73
74
}
74
75
75
76
get use() {
76
-
return this.jwk.use as NonNullable<"sig" | "enc" | undefined>;
77
+
return this.jwk.use as NonNullable<'sig' | 'enc' | undefined>
77
78
}
78
79
79
80
get alg() {
80
-
return this.jwk.alg;
81
+
return this.jwk.alg
81
82
}
82
83
83
84
get kid() {
84
-
return this.jwk.kid;
85
+
return this.jwk.kid
85
86
}
86
87
87
88
get crv() {
88
-
return this.jwk.crv;
89
+
return this.jwk.crv
89
90
}
90
91
91
92
get algorithms() {
92
-
return [this.jwk.alg];
93
+
return [this.jwk.alg]
93
94
}
94
95
95
96
get bareJwk() {
···
98
99
crv: this.jwk.crv,
99
100
x: this.jwk.x,
100
101
y: this.jwk.y,
101
-
};
102
+
}
102
103
}
103
104
104
105
get isSymetric() {
105
-
return (
106
-
this.jwk.kty === "oct" && "k" in this.jwk && this.jwk.k !== undefined
107
-
);
106
+
return this.jwk.kty === 'oct' && 'k' in this.jwk && this.jwk.k !== undefined
108
107
}
109
108
110
109
async createJwt(header: JwtHeader, payload: JwtPayload): Promise<SignedJwt> {
111
110
return createJwt(
112
111
JSON.stringify(header),
113
112
JSON.stringify(payload),
114
-
this,
115
-
) as "${string}.${string}.${string}";
113
+
this
114
+
) as '${string}.${string}.${string}'
116
115
}
117
116
118
117
async verifyJwt<C extends string = never>(
119
118
token: SignedJwt,
120
-
options?: VerifyOptions<C>,
119
+
options?: VerifyOptions<C>
121
120
): Promise<VerifyResult<C>> {
122
121
return verifyJwt(
123
122
token,
124
123
this.jwk,
125
-
(options ?? {}) as VerifyOptions,
126
-
) as VerifyResult<C>;
124
+
(options ?? {}) as VerifyOptions
125
+
) as VerifyResult<C>
127
126
}
128
127
}
129
128
130
129
export function generateJwk(algoritihim: string): ReactNativeKey {
131
-
const privJwk = NativeModule.generatePrivateJwk(algoritihim);
132
-
return new ReactNativeKey(privJwk);
130
+
const privJwk = NativeModule.generatePrivateJwk(algoritihim)
131
+
return new ReactNativeKey(privJwk)
133
132
}
+27
-27
src/react-native-oauth-client.ts
+27
-27
src/react-native-oauth-client.ts
···
5
5
type OAuthResponseMode,
6
6
atprotoLoopbackClientMetadata,
7
7
OAuthClient,
8
-
} from "@atproto/oauth-client";
9
-
import { ReactNativeRuntimeImplementation } from "./react-native-runtime-implementation";
10
-
import { ReactNativeOAuthDatabase } from "./react-native-oauth-database";
8
+
} from '@atproto/oauth-client'
9
+
import { ReactNativeRuntimeImplementation } from './react-native-runtime-implementation'
10
+
import { ReactNativeOAuthDatabase } from './react-native-oauth-database'
11
11
12
-
export type Simplify<T> = { [K in keyof T]: T[K] } & NonNullable<unknown>;
12
+
export type Simplify<T> = { [K in keyof T]: T[K] } & NonNullable<unknown>
13
13
14
14
export type ReactNativeOAuthClientOptions = Simplify<
15
15
{
16
-
clientMetadata?: Readonly<OAuthClientMetadataInput>;
17
-
responseMode?: Exclude<OAuthResponseMode, "form_post">;
18
-
fetch?: Fetch;
16
+
clientMetadata?: Readonly<OAuthClientMetadataInput>
17
+
responseMode?: Exclude<OAuthResponseMode, 'form_post'>
18
+
fetch?: Fetch
19
19
} & Omit<
20
20
OAuthClientOptions,
21
-
| "clientMetadata"
22
-
| "responseMode"
23
-
| "keyset"
24
-
| "fetch"
25
-
| "runtimeImplementation"
26
-
| "sessionStore"
27
-
| "stateStore"
28
-
| "didCache"
29
-
| "handleCache"
30
-
| "dpopNonceCache"
31
-
| "authorizationServerMetadataCache"
32
-
| "protectedResourceMetadataCache"
21
+
| 'clientMetadata'
22
+
| 'responseMode'
23
+
| 'keyset'
24
+
| 'fetch'
25
+
| 'runtimeImplementation'
26
+
| 'sessionStore'
27
+
| 'stateStore'
28
+
| 'didCache'
29
+
| 'handleCache'
30
+
| 'dpopNonceCache'
31
+
| 'authorizationServerMetadataCache'
32
+
| 'protectedResourceMetadataCache'
33
33
>
34
-
>;
34
+
>
35
35
36
36
export class ReactNativeOAuthClient extends OAuthClient {
37
37
constructor({
38
-
responseMode = "fragment",
38
+
responseMode = 'fragment',
39
39
...options
40
40
}: ReactNativeOAuthClientOptions) {
41
-
const database = new ReactNativeOAuthDatabase();
41
+
const database = new ReactNativeOAuthDatabase()
42
42
43
-
if (!["query", "fragment"].includes(responseMode)) {
44
-
throw new TypeError(`Invalid response mode: ${responseMode}`);
43
+
if (!['query', 'fragment'].includes(responseMode)) {
44
+
throw new TypeError(`Invalid response mode: ${responseMode}`)
45
45
}
46
46
47
47
if (!options.clientMetadata) {
48
-
throw new TypeError(`No client metadata provided`);
48
+
throw new TypeError(`No client metadata provided`)
49
49
}
50
50
51
51
super({
52
52
...options,
53
53
clientMetadata:
54
-
options.clientMetadata ?? atprotoLoopbackClientMetadata("localhost"), // HACK: this fixes a type error for now, look into it later
54
+
options.clientMetadata ?? atprotoLoopbackClientMetadata('localhost'), // HACK: this fixes a type error for now, look into it later
55
55
responseMode,
56
56
keyset: undefined,
57
57
runtimeImplementation: new ReactNativeRuntimeImplementation(),
···
64
64
database.getAuthorizationServerMetadataCache(),
65
65
protectedResourceMetadataCache:
66
66
database.getProtectedResourceMetadataCache(),
67
-
});
67
+
})
68
68
}
69
69
}
+99
-99
src/react-native-oauth-database.ts
+99
-99
src/react-native-oauth-database.ts
···
7
7
Session,
8
8
TokenSet,
9
9
Key,
10
-
} from "@atproto/oauth-client";
11
-
import { type SimpleStore, type Value } from "@atproto-labs/simple-store";
12
-
import { MMKV } from "react-native-mmkv";
13
-
import { JWK } from "./ExpoAtprotoAuth.types";
14
-
import { ReactNativeKey } from "./react-native-key";
10
+
} from '@atproto/oauth-client'
11
+
import { type SimpleStore, type Value } from '@atproto-labs/simple-store'
12
+
import { MMKV } from 'react-native-mmkv'
13
+
import { JWK } from './ExpoAtprotoAuth.types'
14
+
import { ReactNativeKey } from './react-native-key'
15
15
16
16
type Item<V> = {
17
-
value: V;
18
-
expiresAt: null | number;
19
-
};
17
+
value: V
18
+
expiresAt: null | number
19
+
}
20
20
21
21
type CryptoKeyPair = {
22
-
publicKey: JWK;
23
-
privateKey: JWK;
24
-
};
22
+
publicKey: JWK
23
+
privateKey: JWK
24
+
}
25
25
26
26
type EncodedKey = {
27
-
keyId: string;
28
-
keyPair: CryptoKeyPair;
29
-
};
27
+
keyId: string
28
+
keyPair: CryptoKeyPair
29
+
}
30
30
31
31
function encodeKey(key: Key): EncodedKey {
32
32
if (!key.privateJwk || !key.publicJwk || !key.kid) {
33
-
throw new Error("Invalid key object");
33
+
throw new Error('Invalid key object')
34
34
}
35
35
36
36
const encodedKey = {
···
39
39
publicKey: key.publicJwk,
40
40
privateKey: key.privateJwk,
41
41
},
42
-
};
42
+
}
43
43
44
44
// @ts-expect-error
45
-
return encodedKey;
45
+
return encodedKey
46
46
}
47
47
48
48
async function decodeKey(encoded: EncodedKey): Promise<ReactNativeKey> {
49
-
console.log(encoded);
50
-
return new ReactNativeKey(encoded.keyPair.privateKey);
49
+
console.log(encoded)
50
+
return new ReactNativeKey(encoded.keyPair.privateKey)
51
51
}
52
52
53
53
export type Schema = {
54
54
state: Item<{
55
-
dpopKey: EncodedKey;
56
-
iss: string;
57
-
verifier?: string;
58
-
appState?: string;
59
-
}>;
55
+
dpopKey: EncodedKey
56
+
iss: string
57
+
verifier?: string
58
+
appState?: string
59
+
}>
60
60
session: Item<{
61
-
dpopKey: EncodedKey;
62
-
tokenSet: TokenSet;
63
-
}>;
64
-
didCache: Item<DidDocument>;
65
-
dpopNonceCache: Item<string>;
66
-
handleCache: Item<ResolvedHandle>;
67
-
authorizationServerMetadataCache: Item<OAuthAuthorizationServerMetadata>;
68
-
protectedResourceMetadataCache: Item<OAuthProtectedResourceMetadata>;
69
-
};
61
+
dpopKey: EncodedKey
62
+
tokenSet: TokenSet
63
+
}>
64
+
didCache: Item<DidDocument>
65
+
dpopNonceCache: Item<string>
66
+
handleCache: Item<ResolvedHandle>
67
+
authorizationServerMetadataCache: Item<OAuthAuthorizationServerMetadata>
68
+
protectedResourceMetadataCache: Item<OAuthProtectedResourceMetadata>
69
+
}
70
70
71
71
export type DatabaseStore<V extends Value> = SimpleStore<string, V> & {
72
-
getKeys: () => Promise<string[]>;
73
-
};
72
+
getKeys: () => Promise<string[]>
73
+
}
74
74
75
75
const STORES = [
76
-
"state",
77
-
"session",
78
-
"didCache",
79
-
"dpopNonceCache",
80
-
"handleCache",
81
-
"authorizationServerMetadataCaache",
82
-
"protectedResourceMetadataCache",
83
-
];
76
+
'state',
77
+
'session',
78
+
'didCache',
79
+
'dpopNonceCache',
80
+
'handleCache',
81
+
'authorizationServerMetadataCaache',
82
+
'protectedResourceMetadataCache',
83
+
]
84
84
85
85
export type ReactNativeOAuthDatabaseOptions = {
86
-
name?: string;
87
-
durability?: "strict" | "relaxed";
88
-
cleanupInterval?: number;
89
-
};
86
+
name?: string
87
+
durability?: 'strict' | 'relaxed'
88
+
cleanupInterval?: number
89
+
}
90
90
91
91
export class ReactNativeOAuthDatabase {
92
-
#cleanupInterval?: ReturnType<typeof setInterval>;
93
-
#mmkv?: MMKV;
92
+
#cleanupInterval?: ReturnType<typeof setInterval>
93
+
#mmkv?: MMKV
94
94
95
95
constructor(options?: ReactNativeOAuthDatabaseOptions) {
96
96
this.#cleanupInterval = setInterval(() => {
97
-
void this.cleanup();
98
-
}, options?.cleanupInterval ?? 30e3);
99
-
this.#mmkv = new MMKV({ id: "react-native-oauth-client" });
97
+
this.cleanup()
98
+
}, options?.cleanupInterval ?? 30e3)
99
+
this.#mmkv = new MMKV({ id: 'react-native-oauth-client' })
100
100
}
101
101
102
102
delete = async (key: string) => {
103
-
this.#mmkv?.delete(key);
104
-
this.#mmkv?.delete(`${key}.expiresAt`);
105
-
};
103
+
this.#mmkv?.delete(key)
104
+
this.#mmkv?.delete(`${key}.expiresAt`)
105
+
}
106
106
107
107
protected createStore<N extends keyof Schema, V extends Value>(
108
108
name: N,
···
111
111
decode,
112
112
expiresAt,
113
113
}: {
114
-
encode: (
115
-
value: V,
116
-
) => Schema[N]["value"] | PromiseLike<Schema[N]["value"]>;
117
-
decode: (encoded: Schema[N]["value"]) => V | PromiseLike<V>;
118
-
expiresAt: (value: V) => null | number;
119
-
},
114
+
encode: (value: V) => Schema[N]['value'] | PromiseLike<Schema[N]['value']>
115
+
decode: (encoded: Schema[N]['value']) => V | PromiseLike<V>
116
+
expiresAt: (value: V) => null | number
117
+
}
120
118
): DatabaseStore<V> {
121
119
return {
122
120
get: async (key) => {
123
-
console.log(`getting ${name}.${key}`);
124
-
const item = this.#mmkv?.getString(`${name}.${key}`);
121
+
console.log(`getting ${name}.${key}`)
122
+
const item = this.#mmkv?.getString(`${name}.${key}`)
125
123
126
-
if (item === undefined) return undefined;
124
+
if (item === undefined) return undefined
127
125
128
-
const expiresAt = this.#mmkv?.getNumber(`${name}.${key}.expiresAt`);
129
-
if (expiresAt && expiresAt < Date.now()) {
130
-
await this.delete(`${name}.${key}`);
131
-
return undefined;
126
+
const storedExpiresAt = this.#mmkv?.getNumber(
127
+
`${name}.${key}.expiresAt`
128
+
)
129
+
if (storedExpiresAt && storedExpiresAt < Date.now()) {
130
+
await this.delete(`${name}.${key}`)
131
+
return undefined
132
132
}
133
133
134
-
const res = decode(JSON.parse(item));
135
-
console.log(res);
136
-
return res;
134
+
const res = decode(JSON.parse(item))
135
+
console.log(res)
136
+
return res
137
137
},
138
138
139
139
getKeys: async () => {
140
-
const keys = this.#mmkv?.getAllKeys() ?? [];
141
-
return keys.filter((key) => key.startsWith(`${name}.`));
140
+
const keys = this.#mmkv?.getAllKeys() ?? []
141
+
return keys.filter((key) => key.startsWith(`${name}.`))
142
142
},
143
143
144
144
set: async (key, value) => {
145
-
let encoded = await encode(value);
146
-
encoded = JSON.stringify(encoded);
145
+
let encoded = await encode(value)
146
+
encoded = JSON.stringify(encoded)
147
147
148
-
const _expiresAt = expiresAt(value);
148
+
const _expiresAt = expiresAt(value)
149
149
150
-
this.#mmkv?.set(`${name}.${key}`, encoded);
150
+
this.#mmkv?.set(`${name}.${key}`, encoded)
151
151
if (_expiresAt) {
152
-
this.#mmkv?.set(`${name}.${key}.expiresAt`, _expiresAt);
152
+
this.#mmkv?.set(`${name}.${key}.expiresAt`, _expiresAt)
153
153
}
154
154
},
155
155
del: async (key) => {
156
-
await this.delete(`${name}.${key}`);
156
+
await this.delete(`${name}.${key}`)
157
157
},
158
-
};
158
+
}
159
159
}
160
160
161
161
getSessionStore(): DatabaseStore<Session> {
162
-
return this.createStore("session", {
162
+
return this.createStore('session', {
163
163
expiresAt: ({ tokenSet }) =>
164
164
tokenSet.refresh_token || tokenSet.expires_at == null
165
165
? null
···
173
173
...encoded,
174
174
dpopKey: await decodeKey(dpopKey),
175
175
}),
176
-
});
176
+
})
177
177
}
178
178
179
179
getStateStore(): DatabaseStore<InternalStateData> {
180
-
return this.createStore("state", {
180
+
return this.createStore('state', {
181
181
expiresAt: (_value) => Date.now() + 10 * 60e3,
182
182
encode: ({ dpopKey, ...session }) => ({
183
183
...session,
···
188
188
...encoded,
189
189
dpopKey: await decodeKey(dpopKey),
190
190
}),
191
-
});
191
+
})
192
192
}
193
193
194
194
getDpopNonceCache(): undefined | DatabaseStore<string> {
195
-
return this.createStore("dpopNonceCache", {
195
+
return this.createStore('dpopNonceCache', {
196
196
expiresAt: (_value) => Date.now() + 600e3,
197
197
encode: (value) => value,
198
198
decode: (encoded) => encoded,
199
-
});
199
+
})
200
200
}
201
201
202
202
getDidCache(): undefined | DatabaseStore<DidDocument> {
203
-
return this.createStore("didCache", {
203
+
return this.createStore('didCache', {
204
204
expiresAt: (_value) => Date.now() + 60e3,
205
205
encode: (value) => value,
206
206
decode: (encoded) => encoded,
207
-
});
207
+
})
208
208
}
209
209
210
210
getHandleCache(): undefined | DatabaseStore<ResolvedHandle> {
211
-
return this.createStore("handleCache", {
211
+
return this.createStore('handleCache', {
212
212
expiresAt: (_value) => Date.now() + 60e3,
213
213
encode: (value) => value,
214
214
decode: (encoded) => encoded,
215
-
});
215
+
})
216
216
}
217
217
218
218
getAuthorizationServerMetadataCache():
219
219
| undefined
220
220
| DatabaseStore<OAuthAuthorizationServerMetadata> {
221
-
return this.createStore("authorizationServerMetadataCache", {
221
+
return this.createStore('authorizationServerMetadataCache', {
222
222
expiresAt: (_value) => Date.now() + 60e3,
223
223
encode: (value) => value,
224
224
decode: (encoded) => encoded,
225
-
});
225
+
})
226
226
}
227
227
228
228
getProtectedResourceMetadataCache():
229
229
| undefined
230
230
| DatabaseStore<OAuthProtectedResourceMetadata> {
231
-
return this.createStore("protectedResourceMetadataCache", {
231
+
return this.createStore('protectedResourceMetadataCache', {
232
232
expiresAt: (_value) => Date.now() + 60e3,
233
233
encode: (value) => value,
234
234
decode: (encoded) => encoded,
235
-
});
235
+
})
236
236
}
237
237
238
238
async cleanup() {
239
239
for (const name of STORES) {
240
-
const keys = this.#mmkv?.getAllKeys() ?? [];
240
+
const keys = this.#mmkv?.getAllKeys() ?? []
241
241
for (const key of keys) {
242
242
if (key.startsWith(`${name}.`)) {
243
-
const expiresAt = this.#mmkv?.getNumber(`${name}.${key}.expiresAt`);
243
+
const expiresAt = this.#mmkv?.getNumber(`${name}.${key}.expiresAt`)
244
244
if (expiresAt && Number(expiresAt) < Date.now()) {
245
-
this.#mmkv?.delete(key);
246
-
this.#mmkv?.delete(`${name}.${key}.expiresAt`);
245
+
this.#mmkv?.delete(key)
246
+
this.#mmkv?.delete(`${name}.${key}.expiresAt`)
247
247
}
248
248
}
249
249
}
···
251
251
}
252
252
253
253
async [Symbol.asyncDispose]() {
254
-
clearInterval(this.#cleanupInterval);
254
+
clearInterval(this.#cleanupInterval)
255
255
}
256
256
}
+11
-11
src/react-native-runtime-implementation.ts
+11
-11
src/react-native-runtime-implementation.ts
···
1
-
import type { Key, RuntimeImplementation } from "@atproto/oauth-client";
2
-
import { default as NativeModule } from "./ExpoAtprotoAuthModule";
3
-
import { generateJwk } from "./react-native-key";
1
+
import type { Key, RuntimeImplementation } from '@atproto/oauth-client'
2
+
import { default as NativeModule } from './ExpoAtprotoAuthModule'
3
+
import { generateJwk } from './react-native-key'
4
4
5
5
export class ReactNativeRuntimeImplementation implements RuntimeImplementation {
6
6
async createKey(algs: string[]): Promise<Key> {
7
-
if (!algs.includes("ES256")) {
8
-
throw TypeError("ES256 is the only supported algo");
7
+
if (!algs.includes('ES256')) {
8
+
throw TypeError('ES256 is the only supported algo')
9
9
}
10
10
// @ts-expect-error TODO:
11
-
return generateJwk("ES256");
11
+
return generateJwk('ES256')
12
12
}
13
13
14
14
getRandomValues(length: number): Uint8Array | PromiseLike<Uint8Array> {
15
-
return NativeModule.getRandomValues(length);
15
+
return NativeModule.getRandomValues(length)
16
16
}
17
17
18
18
digest(
19
19
bytes: Uint8Array,
20
-
algorithim: { name: string },
20
+
algorithim: { name: string }
21
21
): Uint8Array | PromiseLike<Uint8Array> {
22
-
if (algorithim.name == "sha256") {
23
-
return NativeModule.digest(bytes, algorithim.name);
22
+
if (algorithim.name === 'sha256') {
23
+
return NativeModule.digest(bytes, algorithim.name)
24
24
}
25
25
26
-
throw new TypeError(`Unsupported algorithim: ${algorithim.name}`);
26
+
throw new TypeError(`Unsupported algorithim: ${algorithim.name}`)
27
27
}
28
28
}
+1159
-33
yarn.lock
+1159
-33
yarn.lock
···
168
168
dependencies:
169
169
"@babel/highlight" "^7.10.4"
170
170
171
-
"@babel/code-frame@^7.12.13", "@babel/code-frame@^7.24.7", "@babel/code-frame@^7.27.1":
171
+
"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.24.7", "@babel/code-frame@^7.27.1":
172
172
version "7.27.1"
173
173
resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.27.1.tgz#200f715e66d52a23b221a9435534a91cc13ad5be"
174
174
integrity sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==
···
182
182
resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.28.0.tgz#9fc6fd58c2a6a15243cd13983224968392070790"
183
183
integrity sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==
184
184
185
-
"@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.20.0", "@babel/core@^7.25.2":
185
+
"@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.20.0", "@babel/core@^7.23.9", "@babel/core@^7.25.2":
186
186
version "7.28.0"
187
187
resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.28.0.tgz#55dad808d5bf3445a108eefc88ea3fdf034749a4"
188
188
integrity sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==
···
201
201
debug "^4.1.0"
202
202
gensync "^1.0.0-beta.2"
203
203
json5 "^2.2.3"
204
+
semver "^6.3.1"
205
+
206
+
"@babel/eslint-parser@^7.25.1":
207
+
version "7.28.0"
208
+
resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.28.0.tgz#c1b3fbba070f5bac32e3d02f244201add4afdd6e"
209
+
integrity sha512-N4ntErOlKvcbTt01rr5wj3y55xnIdx1ymrfIr8C2WnM1Y9glFgWaGDEULJIazOX3XM9NRzhfJ6zZnQ1sBNWU+w==
210
+
dependencies:
211
+
"@nicolo-ribaudo/eslint-scope-5-internals" "5.1.1-v1"
212
+
eslint-visitor-keys "^2.1.0"
204
213
semver "^6.3.1"
205
214
206
215
"@babel/generator@^7.20.5", "@babel/generator@^7.25.0", "@babel/generator@^7.28.0", "@babel/generator@^7.7.2":
···
375
384
js-tokens "^4.0.0"
376
385
picocolors "^1.0.0"
377
386
378
-
"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.0", "@babel/parser@^7.20.7", "@babel/parser@^7.25.3", "@babel/parser@^7.27.2", "@babel/parser@^7.28.0":
387
+
"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.0", "@babel/parser@^7.20.7", "@babel/parser@^7.23.9", "@babel/parser@^7.25.3", "@babel/parser@^7.27.2", "@babel/parser@^7.28.0":
379
388
version "7.28.0"
380
389
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.28.0.tgz#979829fbab51a29e13901e5a80713dbcb840825e"
381
390
integrity sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==
···
1235
1244
"@babel/helper-string-parser" "^7.27.1"
1236
1245
"@babel/helper-validator-identifier" "^7.27.1"
1237
1246
1238
-
"@eslint-community/eslint-utils@^4.1.2", "@eslint-community/eslint-utils@^4.5.0", "@eslint-community/eslint-utils@^4.7.0":
1247
+
"@bcoe/v8-coverage@^0.2.3":
1248
+
version "0.2.3"
1249
+
resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
1250
+
integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==
1251
+
1252
+
"@eslint-community/eslint-utils@^4.1.2", "@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0", "@eslint-community/eslint-utils@^4.5.0", "@eslint-community/eslint-utils@^4.7.0":
1239
1253
version "4.7.0"
1240
1254
resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz#607084630c6c033992a082de6e6fbc1a8b52175a"
1241
1255
integrity sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==
1242
1256
dependencies:
1243
1257
eslint-visitor-keys "^3.4.3"
1244
1258
1245
-
"@eslint-community/regexpp@^4.10.0", "@eslint-community/regexpp@^4.11.0":
1259
+
"@eslint-community/regexpp@^4.10.0", "@eslint-community/regexpp@^4.11.0", "@eslint-community/regexpp@^4.12.1":
1246
1260
version "4.12.1"
1247
1261
resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.12.1.tgz#cfc6cffe39df390a3841cde2abccf92eaa7ae0e0"
1248
1262
integrity sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==
1263
+
1264
+
"@eslint/compat@^1.2.7":
1265
+
version "1.3.1"
1266
+
resolved "https://registry.yarnpkg.com/@eslint/compat/-/compat-1.3.1.tgz#19f62ee48896d38f8eab591bee2a25dd69abc273"
1267
+
integrity sha512-k8MHony59I5EPic6EQTCNOuPoVBnoYXkP+20xvwFjN7t0qI3ImyvyBgg+hIVPwC8JaxVjjUZld+cLfBLFDLucg==
1268
+
1269
+
"@eslint/config-array@^0.21.0":
1270
+
version "0.21.0"
1271
+
resolved "https://registry.yarnpkg.com/@eslint/config-array/-/config-array-0.21.0.tgz#abdbcbd16b124c638081766392a4d6b509f72636"
1272
+
integrity sha512-ENIdc4iLu0d93HeYirvKmrzshzofPw6VkZRKQGe9Nv46ZnWUzcF1xV01dcvEg/1wXUR61OmmlSfyeyO7EvjLxQ==
1273
+
dependencies:
1274
+
"@eslint/object-schema" "^2.1.6"
1275
+
debug "^4.3.1"
1276
+
minimatch "^3.1.2"
1277
+
1278
+
"@eslint/config-helpers@^0.3.0":
1279
+
version "0.3.0"
1280
+
resolved "https://registry.yarnpkg.com/@eslint/config-helpers/-/config-helpers-0.3.0.tgz#3e09a90dfb87e0005c7694791e58e97077271286"
1281
+
integrity sha512-ViuymvFmcJi04qdZeDc2whTHryouGcDlaxPqarTD0ZE10ISpxGUVZGZDx4w01upyIynL3iu6IXH2bS1NhclQMw==
1282
+
1283
+
"@eslint/core@^0.15.0", "@eslint/core@^0.15.1":
1284
+
version "0.15.1"
1285
+
resolved "https://registry.yarnpkg.com/@eslint/core/-/core-0.15.1.tgz#d530d44209cbfe2f82ef86d6ba08760196dd3b60"
1286
+
integrity sha512-bkOp+iumZCCbt1K1CmWf0R9pM5yKpDv+ZXtvSyQpudrI9kuFLp+bM2WOPXImuD/ceQuaa8f5pj93Y7zyECIGNA==
1287
+
dependencies:
1288
+
"@types/json-schema" "^7.0.15"
1289
+
1290
+
"@eslint/eslintrc@^3.3.0", "@eslint/eslintrc@^3.3.1":
1291
+
version "3.3.1"
1292
+
resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-3.3.1.tgz#e55f7f1dd400600dd066dbba349c4c0bac916964"
1293
+
integrity sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==
1294
+
dependencies:
1295
+
ajv "^6.12.4"
1296
+
debug "^4.3.2"
1297
+
espree "^10.0.1"
1298
+
globals "^14.0.0"
1299
+
ignore "^5.2.0"
1300
+
import-fresh "^3.2.1"
1301
+
js-yaml "^4.1.0"
1302
+
minimatch "^3.1.2"
1303
+
strip-json-comments "^3.1.1"
1304
+
1305
+
"@eslint/js@9.31.0", "@eslint/js@^9.22.0":
1306
+
version "9.31.0"
1307
+
resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.31.0.tgz#adb1f39953d8c475c4384b67b67541b0d7206ed8"
1308
+
integrity sha512-LOm5OVt7D4qiKCqoiPbA7LWmI+tbw1VbTUowBcUMgQSuM6poJufkFkYDcQpo5KfgD39TnNySV26QjOh7VFpSyw==
1309
+
1310
+
"@eslint/object-schema@^2.1.6":
1311
+
version "2.1.6"
1312
+
resolved "https://registry.yarnpkg.com/@eslint/object-schema/-/object-schema-2.1.6.tgz#58369ab5b5b3ca117880c0f6c0b0f32f6950f24f"
1313
+
integrity sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==
1314
+
1315
+
"@eslint/plugin-kit@^0.3.1":
1316
+
version "0.3.3"
1317
+
resolved "https://registry.yarnpkg.com/@eslint/plugin-kit/-/plugin-kit-0.3.3.tgz#32926b59bd407d58d817941e48b2a7049359b1fd"
1318
+
integrity sha512-1+WqvgNMhmlAambTvT3KPtCl/Ibr68VldY2XY40SL1CE0ZXiakFR/cbTspaF5HsnpDMvcYYoJHfl4980NBjGag==
1319
+
dependencies:
1320
+
"@eslint/core" "^0.15.1"
1321
+
levn "^0.4.1"
1249
1322
1250
1323
"@expo/cli@0.24.20":
1251
1324
version "0.24.20"
···
1541
1614
find-up "^5.0.0"
1542
1615
js-yaml "^4.1.0"
1543
1616
1617
+
"@humanfs/core@^0.19.1":
1618
+
version "0.19.1"
1619
+
resolved "https://registry.yarnpkg.com/@humanfs/core/-/core-0.19.1.tgz#17c55ca7d426733fe3c561906b8173c336b40a77"
1620
+
integrity sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==
1621
+
1622
+
"@humanfs/node@^0.16.6":
1623
+
version "0.16.6"
1624
+
resolved "https://registry.yarnpkg.com/@humanfs/node/-/node-0.16.6.tgz#ee2a10eaabd1131987bf0488fd9b820174cd765e"
1625
+
integrity sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==
1626
+
dependencies:
1627
+
"@humanfs/core" "^0.19.1"
1628
+
"@humanwhocodes/retry" "^0.3.0"
1629
+
1630
+
"@humanwhocodes/module-importer@^1.0.1":
1631
+
version "1.0.1"
1632
+
resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c"
1633
+
integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==
1634
+
1635
+
"@humanwhocodes/retry@^0.3.0":
1636
+
version "0.3.1"
1637
+
resolved "https://registry.yarnpkg.com/@humanwhocodes/retry/-/retry-0.3.1.tgz#c72a5c76a9fbaf3488e231b13dc52c0da7bab42a"
1638
+
integrity sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==
1639
+
1640
+
"@humanwhocodes/retry@^0.4.2":
1641
+
version "0.4.3"
1642
+
resolved "https://registry.yarnpkg.com/@humanwhocodes/retry/-/retry-0.4.3.tgz#c2b9d2e374ee62c586d3adbea87199b1d7a7a6ba"
1643
+
integrity sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==
1644
+
1544
1645
"@isaacs/cliui@^8.0.2":
1545
1646
version "8.0.2"
1546
1647
resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550"
···
1576
1677
js-yaml "^3.13.1"
1577
1678
resolve-from "^5.0.0"
1578
1679
1579
-
"@istanbuljs/schema@^0.1.2":
1680
+
"@istanbuljs/schema@^0.1.2", "@istanbuljs/schema@^0.1.3":
1580
1681
version "0.1.3"
1581
1682
resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98"
1582
1683
integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==
···
1593
1694
jest-util "^29.7.0"
1594
1695
slash "^3.0.0"
1595
1696
1697
+
"@jest/core@^29.7.0":
1698
+
version "29.7.0"
1699
+
resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.7.0.tgz#b6cccc239f30ff36609658c5a5e2291757ce448f"
1700
+
integrity sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==
1701
+
dependencies:
1702
+
"@jest/console" "^29.7.0"
1703
+
"@jest/reporters" "^29.7.0"
1704
+
"@jest/test-result" "^29.7.0"
1705
+
"@jest/transform" "^29.7.0"
1706
+
"@jest/types" "^29.6.3"
1707
+
"@types/node" "*"
1708
+
ansi-escapes "^4.2.1"
1709
+
chalk "^4.0.0"
1710
+
ci-info "^3.2.0"
1711
+
exit "^0.1.2"
1712
+
graceful-fs "^4.2.9"
1713
+
jest-changed-files "^29.7.0"
1714
+
jest-config "^29.7.0"
1715
+
jest-haste-map "^29.7.0"
1716
+
jest-message-util "^29.7.0"
1717
+
jest-regex-util "^29.6.3"
1718
+
jest-resolve "^29.7.0"
1719
+
jest-resolve-dependencies "^29.7.0"
1720
+
jest-runner "^29.7.0"
1721
+
jest-runtime "^29.7.0"
1722
+
jest-snapshot "^29.7.0"
1723
+
jest-util "^29.7.0"
1724
+
jest-validate "^29.7.0"
1725
+
jest-watcher "^29.7.0"
1726
+
micromatch "^4.0.4"
1727
+
pretty-format "^29.7.0"
1728
+
slash "^3.0.0"
1729
+
strip-ansi "^6.0.0"
1730
+
1596
1731
"@jest/create-cache-key-function@^29.2.1", "@jest/create-cache-key-function@^29.7.0":
1597
1732
version "29.7.0"
1598
1733
resolved "https://registry.yarnpkg.com/@jest/create-cache-key-function/-/create-cache-key-function-29.7.0.tgz#793be38148fab78e65f40ae30c36785f4ad859f0"
···
1637
1772
jest-mock "^29.7.0"
1638
1773
jest-util "^29.7.0"
1639
1774
1640
-
"@jest/globals@^29.2.1":
1775
+
"@jest/globals@^29.2.1", "@jest/globals@^29.7.0":
1641
1776
version "29.7.0"
1642
1777
resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.7.0.tgz#8d9290f9ec47ff772607fa864ca1d5a2efae1d4d"
1643
1778
integrity sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==
···
1647
1782
"@jest/types" "^29.6.3"
1648
1783
jest-mock "^29.7.0"
1649
1784
1785
+
"@jest/reporters@^29.7.0":
1786
+
version "29.7.0"
1787
+
resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.7.0.tgz#04b262ecb3b8faa83b0b3d321623972393e8f4c7"
1788
+
integrity sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==
1789
+
dependencies:
1790
+
"@bcoe/v8-coverage" "^0.2.3"
1791
+
"@jest/console" "^29.7.0"
1792
+
"@jest/test-result" "^29.7.0"
1793
+
"@jest/transform" "^29.7.0"
1794
+
"@jest/types" "^29.6.3"
1795
+
"@jridgewell/trace-mapping" "^0.3.18"
1796
+
"@types/node" "*"
1797
+
chalk "^4.0.0"
1798
+
collect-v8-coverage "^1.0.0"
1799
+
exit "^0.1.2"
1800
+
glob "^7.1.3"
1801
+
graceful-fs "^4.2.9"
1802
+
istanbul-lib-coverage "^3.0.0"
1803
+
istanbul-lib-instrument "^6.0.0"
1804
+
istanbul-lib-report "^3.0.0"
1805
+
istanbul-lib-source-maps "^4.0.0"
1806
+
istanbul-reports "^3.1.3"
1807
+
jest-message-util "^29.7.0"
1808
+
jest-util "^29.7.0"
1809
+
jest-worker "^29.7.0"
1810
+
slash "^3.0.0"
1811
+
string-length "^4.0.1"
1812
+
strip-ansi "^6.0.0"
1813
+
v8-to-istanbul "^9.0.1"
1814
+
1650
1815
"@jest/schemas@^29.6.3":
1651
1816
version "29.6.3"
1652
1817
resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.6.3.tgz#430b5ce8a4e0044a7e3819663305a7b3091c8e03"
1653
1818
integrity sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==
1654
1819
dependencies:
1655
1820
"@sinclair/typebox" "^0.27.8"
1821
+
1822
+
"@jest/source-map@^29.6.3":
1823
+
version "29.6.3"
1824
+
resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-29.6.3.tgz#d90ba772095cf37a34a5eb9413f1b562a08554c4"
1825
+
integrity sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==
1826
+
dependencies:
1827
+
"@jridgewell/trace-mapping" "^0.3.18"
1828
+
callsites "^3.0.0"
1829
+
graceful-fs "^4.2.9"
1656
1830
1657
1831
"@jest/test-result@^29.7.0":
1658
1832
version "29.7.0"
···
1663
1837
"@jest/types" "^29.6.3"
1664
1838
"@types/istanbul-lib-coverage" "^2.0.0"
1665
1839
collect-v8-coverage "^1.0.0"
1840
+
1841
+
"@jest/test-sequencer@^29.7.0":
1842
+
version "29.7.0"
1843
+
resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz#6cef977ce1d39834a3aea887a1726628a6f072ce"
1844
+
integrity sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==
1845
+
dependencies:
1846
+
"@jest/test-result" "^29.7.0"
1847
+
graceful-fs "^4.2.9"
1848
+
jest-haste-map "^29.7.0"
1849
+
slash "^3.0.0"
1666
1850
1667
1851
"@jest/transform@^29.7.0":
1668
1852
version "29.7.0"
···
1723
1907
resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.4.tgz#7358043433b2e5da569aa02cbc4c121da3af27d7"
1724
1908
integrity sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==
1725
1909
1726
-
"@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25", "@jridgewell/trace-mapping@^0.3.28":
1910
+
"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25", "@jridgewell/trace-mapping@^0.3.28":
1727
1911
version "0.3.29"
1728
1912
resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.29.tgz#a58d31eaadaf92c6695680b2e1d464a9b8fbf7fc"
1729
1913
integrity sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==
···
1735
1919
version "2.1.8-no-fsevents.3"
1736
1920
resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.3.tgz#323d72dd25103d0c4fbdce89dadf574a787b1f9b"
1737
1921
integrity sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ==
1922
+
1923
+
"@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1":
1924
+
version "5.1.1-v1"
1925
+
resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz#dbf733a965ca47b1973177dc0bb6c889edcfb129"
1926
+
integrity sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==
1927
+
dependencies:
1928
+
eslint-scope "5.1.1"
1738
1929
1739
1930
"@nodelib/fs.scandir@2.1.5":
1740
1931
version "2.1.5"
···
1911
2102
serve-static "^1.16.2"
1912
2103
ws "^6.2.3"
1913
2104
2105
+
"@react-native/eslint-config@^0.78.0":
2106
+
version "0.78.3"
2107
+
resolved "https://registry.yarnpkg.com/@react-native/eslint-config/-/eslint-config-0.78.3.tgz#281b09c3519b444cca40e8d54da11afef2d70ca9"
2108
+
integrity sha512-YcJsVfOHLgA9OXTfHPV0dSSVhk9Ceu+WzNl8m3mBB8oejEdkjM9VBDrArg64AGCzdRLAMbgiUrWy7vI47yNbmQ==
2109
+
dependencies:
2110
+
"@babel/core" "^7.25.2"
2111
+
"@babel/eslint-parser" "^7.25.1"
2112
+
"@react-native/eslint-plugin" "0.78.3"
2113
+
"@typescript-eslint/eslint-plugin" "^7.1.1"
2114
+
"@typescript-eslint/parser" "^7.1.1"
2115
+
eslint-config-prettier "^8.5.0"
2116
+
eslint-plugin-eslint-comments "^3.2.0"
2117
+
eslint-plugin-ft-flow "^2.0.1"
2118
+
eslint-plugin-jest "^27.9.0"
2119
+
eslint-plugin-react "^7.30.1"
2120
+
eslint-plugin-react-hooks "^4.6.0"
2121
+
eslint-plugin-react-native "^4.0.0"
2122
+
2123
+
"@react-native/eslint-plugin@0.78.3":
2124
+
version "0.78.3"
2125
+
resolved "https://registry.yarnpkg.com/@react-native/eslint-plugin/-/eslint-plugin-0.78.3.tgz#2ccfecc2d9d56d718dea74585107dda16017d442"
2126
+
integrity sha512-PvFAL9J/Jk93K5ibr5Cj5RfiYdMJNqPej6NcDoOSj1kalM6fE22dHxnxF9A1/YApN1F972n+tW16T1+c4F9opw==
2127
+
1914
2128
"@react-native/gradle-plugin@0.79.1":
1915
2129
version "0.79.1"
1916
2130
resolved "https://registry.yarnpkg.com/@react-native/gradle-plugin/-/gradle-plugin-0.79.1.tgz#b533024ac1930a826b225fed8fbf94d7f768afe9"
···
2016
2230
dependencies:
2017
2231
"@babel/types" "^7.20.7"
2018
2232
2233
+
"@types/estree@^1.0.6":
2234
+
version "1.0.8"
2235
+
resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.8.tgz#958b91c991b1867ced318bedea0e215ee050726e"
2236
+
integrity sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==
2237
+
2019
2238
"@types/graceful-fs@^4.1.3":
2020
2239
version "4.1.9"
2021
2240
resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.9.tgz#2a06bc0f68a20ab37b3e36aa238be6abdf49e8b4"
···
2023
2242
dependencies:
2024
2243
"@types/node" "*"
2025
2244
2026
-
"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0":
2245
+
"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1":
2027
2246
version "2.0.6"
2028
2247
resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz#7739c232a1fee9b4d3ce8985f314c0c6d33549d7"
2029
2248
integrity sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==
···
2059
2278
"@types/tough-cookie" "*"
2060
2279
parse5 "^7.0.0"
2061
2280
2281
+
"@types/json-schema@^7.0.15", "@types/json-schema@^7.0.9":
2282
+
version "7.0.15"
2283
+
resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841"
2284
+
integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==
2285
+
2062
2286
"@types/json5@^0.0.29":
2063
2287
version "0.0.29"
2064
2288
resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee"
···
2078
2302
dependencies:
2079
2303
csstype "^3.0.2"
2080
2304
2305
+
"@types/semver@^7.3.12":
2306
+
version "7.7.0"
2307
+
resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.7.0.tgz#64c441bdae033b378b6eef7d0c3d77c329b9378e"
2308
+
integrity sha512-k107IF4+Xr7UHjwDc7Cfd6PRQfbdkiRabXGRjo07b4WyPahFBZCZ1sE+BNxYIJPPg73UkfOsVOLwqVc/6ETrIA==
2309
+
2081
2310
"@types/stack-utils@^2.0.0":
2082
2311
version "2.0.3"
2083
2312
resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.3.tgz#6209321eb2c1712a7e7466422b8cb1fc0d9dd5d8"
···
2100
2329
dependencies:
2101
2330
"@types/yargs-parser" "*"
2102
2331
2332
+
"@typescript-eslint/eslint-plugin@^7.1.1", "@typescript-eslint/eslint-plugin@^7.18.0":
2333
+
version "7.18.0"
2334
+
resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.18.0.tgz#b16d3cf3ee76bf572fdf511e79c248bdec619ea3"
2335
+
integrity sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==
2336
+
dependencies:
2337
+
"@eslint-community/regexpp" "^4.10.0"
2338
+
"@typescript-eslint/scope-manager" "7.18.0"
2339
+
"@typescript-eslint/type-utils" "7.18.0"
2340
+
"@typescript-eslint/utils" "7.18.0"
2341
+
"@typescript-eslint/visitor-keys" "7.18.0"
2342
+
graphemer "^1.4.0"
2343
+
ignore "^5.3.1"
2344
+
natural-compare "^1.4.0"
2345
+
ts-api-utils "^1.3.0"
2346
+
2103
2347
"@typescript-eslint/eslint-plugin@^8.29.1":
2104
2348
version "8.37.0"
2105
2349
resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.37.0.tgz#332392883f936137cd6252c8eb236d298e514e70"
···
2115
2359
natural-compare "^1.4.0"
2116
2360
ts-api-utils "^2.1.0"
2117
2361
2362
+
"@typescript-eslint/parser@^7.1.1", "@typescript-eslint/parser@^7.18.0":
2363
+
version "7.18.0"
2364
+
resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-7.18.0.tgz#83928d0f1b7f4afa974098c64b5ce6f9051f96a0"
2365
+
integrity sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==
2366
+
dependencies:
2367
+
"@typescript-eslint/scope-manager" "7.18.0"
2368
+
"@typescript-eslint/types" "7.18.0"
2369
+
"@typescript-eslint/typescript-estree" "7.18.0"
2370
+
"@typescript-eslint/visitor-keys" "7.18.0"
2371
+
debug "^4.3.4"
2372
+
2118
2373
"@typescript-eslint/parser@^8.29.1":
2119
2374
version "8.37.0"
2120
2375
resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.37.0.tgz#b87f6b61e25ad5cc5bbf8baf809b8da889c89804"
···
2135
2390
"@typescript-eslint/types" "^8.37.0"
2136
2391
debug "^4.3.4"
2137
2392
2393
+
"@typescript-eslint/scope-manager@5.62.0":
2394
+
version "5.62.0"
2395
+
resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz#d9457ccc6a0b8d6b37d0eb252a23022478c5460c"
2396
+
integrity sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==
2397
+
dependencies:
2398
+
"@typescript-eslint/types" "5.62.0"
2399
+
"@typescript-eslint/visitor-keys" "5.62.0"
2400
+
2401
+
"@typescript-eslint/scope-manager@7.18.0":
2402
+
version "7.18.0"
2403
+
resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-7.18.0.tgz#c928e7a9fc2c0b3ed92ab3112c614d6bd9951c83"
2404
+
integrity sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==
2405
+
dependencies:
2406
+
"@typescript-eslint/types" "7.18.0"
2407
+
"@typescript-eslint/visitor-keys" "7.18.0"
2408
+
2138
2409
"@typescript-eslint/scope-manager@8.37.0":
2139
2410
version "8.37.0"
2140
2411
resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.37.0.tgz#a31a3c80ca2ef4ed58de13742debb692e7d4c0a4"
···
2148
2419
resolved "https://registry.yarnpkg.com/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.37.0.tgz#47a2760d265c6125f8e7864bc5c8537cad2bd053"
2149
2420
integrity sha512-1/YHvAVTimMM9mmlPvTec9NP4bobA1RkDbMydxG8omqwJJLEW/Iy2C4adsAESIXU3WGLXFHSZUU+C9EoFWl4Zg==
2150
2421
2422
+
"@typescript-eslint/type-utils@7.18.0":
2423
+
version "7.18.0"
2424
+
resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-7.18.0.tgz#2165ffaee00b1fbbdd2d40aa85232dab6998f53b"
2425
+
integrity sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==
2426
+
dependencies:
2427
+
"@typescript-eslint/typescript-estree" "7.18.0"
2428
+
"@typescript-eslint/utils" "7.18.0"
2429
+
debug "^4.3.4"
2430
+
ts-api-utils "^1.3.0"
2431
+
2151
2432
"@typescript-eslint/type-utils@8.37.0":
2152
2433
version "8.37.0"
2153
2434
resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.37.0.tgz#2a682e4c6ff5886712dad57e9787b5e417124507"
···
2159
2440
debug "^4.3.4"
2160
2441
ts-api-utils "^2.1.0"
2161
2442
2443
+
"@typescript-eslint/types@5.62.0":
2444
+
version "5.62.0"
2445
+
resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.62.0.tgz#258607e60effa309f067608931c3df6fed41fd2f"
2446
+
integrity sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==
2447
+
2448
+
"@typescript-eslint/types@7.18.0":
2449
+
version "7.18.0"
2450
+
resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-7.18.0.tgz#b90a57ccdea71797ffffa0321e744f379ec838c9"
2451
+
integrity sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==
2452
+
2162
2453
"@typescript-eslint/types@8.37.0", "@typescript-eslint/types@^8.37.0":
2163
2454
version "8.37.0"
2164
2455
resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.37.0.tgz#09517aa9625eb3c68941dde3ac8835740587b6ff"
2165
2456
integrity sha512-ax0nv7PUF9NOVPs+lmQ7yIE7IQmAf8LGcXbMvHX5Gm+YJUYNAl340XkGnrimxZ0elXyoQJuN5sbg6C4evKA4SQ==
2457
+
2458
+
"@typescript-eslint/typescript-estree@5.62.0":
2459
+
version "5.62.0"
2460
+
resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz#7d17794b77fabcac615d6a48fb143330d962eb9b"
2461
+
integrity sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==
2462
+
dependencies:
2463
+
"@typescript-eslint/types" "5.62.0"
2464
+
"@typescript-eslint/visitor-keys" "5.62.0"
2465
+
debug "^4.3.4"
2466
+
globby "^11.1.0"
2467
+
is-glob "^4.0.3"
2468
+
semver "^7.3.7"
2469
+
tsutils "^3.21.0"
2470
+
2471
+
"@typescript-eslint/typescript-estree@7.18.0":
2472
+
version "7.18.0"
2473
+
resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-7.18.0.tgz#b5868d486c51ce8f312309ba79bdb9f331b37931"
2474
+
integrity sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==
2475
+
dependencies:
2476
+
"@typescript-eslint/types" "7.18.0"
2477
+
"@typescript-eslint/visitor-keys" "7.18.0"
2478
+
debug "^4.3.4"
2479
+
globby "^11.1.0"
2480
+
is-glob "^4.0.3"
2481
+
minimatch "^9.0.4"
2482
+
semver "^7.6.0"
2483
+
ts-api-utils "^1.3.0"
2166
2484
2167
2485
"@typescript-eslint/typescript-estree@8.37.0":
2168
2486
version "8.37.0"
···
2180
2498
semver "^7.6.0"
2181
2499
ts-api-utils "^2.1.0"
2182
2500
2501
+
"@typescript-eslint/utils@7.18.0":
2502
+
version "7.18.0"
2503
+
resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-7.18.0.tgz#bca01cde77f95fc6a8d5b0dbcbfb3d6ca4be451f"
2504
+
integrity sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==
2505
+
dependencies:
2506
+
"@eslint-community/eslint-utils" "^4.4.0"
2507
+
"@typescript-eslint/scope-manager" "7.18.0"
2508
+
"@typescript-eslint/types" "7.18.0"
2509
+
"@typescript-eslint/typescript-estree" "7.18.0"
2510
+
2183
2511
"@typescript-eslint/utils@8.37.0":
2184
2512
version "8.37.0"
2185
2513
resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.37.0.tgz#189ea59b2709f5d898614611f091a776751ee335"
···
2190
2518
"@typescript-eslint/types" "8.37.0"
2191
2519
"@typescript-eslint/typescript-estree" "8.37.0"
2192
2520
2521
+
"@typescript-eslint/utils@^5.10.0":
2522
+
version "5.62.0"
2523
+
resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.62.0.tgz#141e809c71636e4a75daa39faed2fb5f4b10df86"
2524
+
integrity sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==
2525
+
dependencies:
2526
+
"@eslint-community/eslint-utils" "^4.2.0"
2527
+
"@types/json-schema" "^7.0.9"
2528
+
"@types/semver" "^7.3.12"
2529
+
"@typescript-eslint/scope-manager" "5.62.0"
2530
+
"@typescript-eslint/types" "5.62.0"
2531
+
"@typescript-eslint/typescript-estree" "5.62.0"
2532
+
eslint-scope "^5.1.1"
2533
+
semver "^7.3.7"
2534
+
2535
+
"@typescript-eslint/visitor-keys@5.62.0":
2536
+
version "5.62.0"
2537
+
resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz#2174011917ce582875954ffe2f6912d5931e353e"
2538
+
integrity sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==
2539
+
dependencies:
2540
+
"@typescript-eslint/types" "5.62.0"
2541
+
eslint-visitor-keys "^3.3.0"
2542
+
2543
+
"@typescript-eslint/visitor-keys@7.18.0":
2544
+
version "7.18.0"
2545
+
resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-7.18.0.tgz#0564629b6124d67607378d0f0332a0495b25e7d7"
2546
+
integrity sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==
2547
+
dependencies:
2548
+
"@typescript-eslint/types" "7.18.0"
2549
+
eslint-visitor-keys "^3.4.3"
2550
+
2193
2551
"@typescript-eslint/visitor-keys@8.37.0":
2194
2552
version "8.37.0"
2195
2553
resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.37.0.tgz#cdb6a6bd3e8d6dd69bd70c1bdda36e2d18737455"
···
2252
2610
acorn "^8.1.0"
2253
2611
acorn-walk "^8.0.2"
2254
2612
2613
+
acorn-jsx@^5.3.2:
2614
+
version "5.3.2"
2615
+
resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937"
2616
+
integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
2617
+
2255
2618
acorn-loose@^8.3.0:
2256
2619
version "8.5.2"
2257
2620
resolved "https://registry.yarnpkg.com/acorn-loose/-/acorn-loose-8.5.2.tgz#a7cc7dfbb7c8f3c2e55b055db640dc657e278d26"
···
2283
2646
resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-7.1.4.tgz#e3cd76d4c548ee895d3c3fd8dc1f6c5b9032e7a8"
2284
2647
integrity sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==
2285
2648
2649
+
ajv@^6.12.4:
2650
+
version "6.12.6"
2651
+
resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
2652
+
integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
2653
+
dependencies:
2654
+
fast-deep-equal "^3.1.1"
2655
+
fast-json-stable-stringify "^2.0.0"
2656
+
json-schema-traverse "^0.4.1"
2657
+
uri-js "^4.2.2"
2658
+
2286
2659
anser@^1.4.9:
2287
2660
version "1.4.10"
2288
2661
resolved "https://registry.yarnpkg.com/anser/-/anser-1.4.10.tgz#befa3eddf282684bd03b63dcda3927aef8c2e35b"
···
2390
2763
get-intrinsic "^1.3.0"
2391
2764
is-string "^1.1.1"
2392
2765
math-intrinsics "^1.1.0"
2766
+
2767
+
array-union@^2.1.0:
2768
+
version "2.1.0"
2769
+
resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d"
2770
+
integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==
2393
2771
2394
2772
array.prototype.findlast@^1.2.5:
2395
2773
version "1.2.5"
···
2789
3167
resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50"
2790
3168
integrity sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ==
2791
3169
3170
+
callsites@^3.0.0:
3171
+
version "3.1.0"
3172
+
resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
3173
+
integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
3174
+
2792
3175
camelcase@^5.3.1:
2793
3176
version "5.3.1"
2794
3177
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
···
2891
3274
resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.9.0.tgz#4279a62028a7b1f262f3473fc9605f5e218c59b4"
2892
3275
integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==
2893
3276
3277
+
cjs-module-lexer@^1.0.0:
3278
+
version "1.4.3"
3279
+
resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.4.3.tgz#0f79731eb8cfe1ec72acd4066efac9d61991b00d"
3280
+
integrity sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==
3281
+
2894
3282
cli-cursor@^2.1.0:
2895
3283
version "2.1.0"
2896
3284
resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5"
···
2917
3305
resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e"
2918
3306
integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==
2919
3307
3308
+
co@^4.6.0:
3309
+
version "4.6.0"
3310
+
resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
3311
+
integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==
3312
+
2920
3313
collect-v8-coverage@^1.0.0:
2921
3314
version "1.0.2"
2922
3315
resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz#c0b29bcd33bcd0779a1344c2136051e6afd3d9e9"
···
3035
3428
js-yaml "^3.13.1"
3036
3429
parse-json "^4.0.0"
3037
3430
3431
+
create-jest@^29.7.0:
3432
+
version "29.7.0"
3433
+
resolved "https://registry.yarnpkg.com/create-jest/-/create-jest-29.7.0.tgz#a355c5b3cb1e1af02ba177fe7afd7feee49a5320"
3434
+
integrity sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==
3435
+
dependencies:
3436
+
"@jest/types" "^29.6.3"
3437
+
chalk "^4.0.0"
3438
+
exit "^0.1.2"
3439
+
graceful-fs "^4.2.9"
3440
+
jest-config "^29.7.0"
3441
+
jest-util "^29.7.0"
3442
+
prompts "^2.0.1"
3443
+
3038
3444
cross-spawn@^7.0.3, cross-spawn@^7.0.6:
3039
3445
version "7.0.6"
3040
3446
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f"
···
3114
3520
dependencies:
3115
3521
ms "2.0.0"
3116
3522
3117
-
debug@4, debug@^4.1.0, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@^4.3.5, debug@^4.4.0, debug@^4.4.1:
3523
+
debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@^4.3.5, debug@^4.4.0, debug@^4.4.1:
3118
3524
version "4.4.1"
3119
3525
resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.1.tgz#e5a8bc6cbc4c6cd3e64308b0693a3d4fa550189b"
3120
3526
integrity sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==
···
3133
3539
resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.6.0.tgz#e649a43e3ab953a72192ff5983865e509f37ed9a"
3134
3540
integrity sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==
3135
3541
3542
+
dedent@^1.0.0:
3543
+
version "1.6.0"
3544
+
resolved "https://registry.yarnpkg.com/dedent/-/dedent-1.6.0.tgz#79d52d6389b1ffa67d2bcef59ba51847a9d503b2"
3545
+
integrity sha512-F1Z+5UCFpmQUzJa11agbyPVMbpgT/qA3/SKyJ1jyBgm7dUcUEa8v9JwDkerSQXfakBwFljIxhOJqGkjUwZ9FSA==
3546
+
3136
3547
deep-extend@^0.6.0:
3137
3548
version "0.6.0"
3138
3549
resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac"
3139
3550
integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==
3140
3551
3141
-
deepmerge@^4.3.1:
3552
+
deep-is@^0.1.3:
3553
+
version "0.1.4"
3554
+
resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831"
3555
+
integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==
3556
+
3557
+
deepmerge@^4.2.2, deepmerge@^4.3.1:
3142
3558
version "4.3.1"
3143
3559
resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a"
3144
3560
integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==
···
3193
3609
resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b"
3194
3610
integrity sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==
3195
3611
3612
+
detect-newline@^3.0.0:
3613
+
version "3.1.0"
3614
+
resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651"
3615
+
integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==
3616
+
3196
3617
diff-sequences@^29.6.3:
3197
3618
version "29.6.3"
3198
3619
resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.6.3.tgz#4deaf894d11407c51efc8418012f9e70b84ea921"
3199
3620
integrity sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==
3200
3621
3622
+
dir-glob@^3.0.1:
3623
+
version "3.0.1"
3624
+
resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f"
3625
+
integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==
3626
+
dependencies:
3627
+
path-type "^4.0.0"
3628
+
3201
3629
doctrine@^2.1.0:
3202
3630
version "2.1.0"
3203
3631
resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d"
···
3478
3906
dependencies:
3479
3907
semver "^7.5.4"
3480
3908
3909
+
eslint-config-prettier@^10.1.1:
3910
+
version "10.1.5"
3911
+
resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-10.1.5.tgz#00c18d7225043b6fbce6a665697377998d453782"
3912
+
integrity sha512-zc1UmCpNltmVY34vuLRV61r1K27sWuX39E+uyUnY8xS2Bex88VV9cugG+UZbRSRGtGyFboj+D8JODyme1plMpw==
3913
+
3914
+
eslint-config-prettier@^8.5.0:
3915
+
version "8.10.0"
3916
+
resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz#3a06a662130807e2502fc3ff8b4143d8a0658e11"
3917
+
integrity sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==
3918
+
3481
3919
eslint-config-prettier@^9.1.0:
3482
3920
version "9.1.0"
3483
3921
resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz#31af3d94578645966c082fcb71a5846d3c94867f"
···
3532
3970
eslint-utils "^2.0.0"
3533
3971
regexpp "^3.0.0"
3534
3972
3973
+
eslint-plugin-eslint-comments@^3.2.0:
3974
+
version "3.2.0"
3975
+
resolved "https://registry.yarnpkg.com/eslint-plugin-eslint-comments/-/eslint-plugin-eslint-comments-3.2.0.tgz#9e1cd7b4413526abb313933071d7aba05ca12ffa"
3976
+
integrity sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==
3977
+
dependencies:
3978
+
escape-string-regexp "^1.0.5"
3979
+
ignore "^5.0.5"
3980
+
3981
+
eslint-plugin-ft-flow@^2.0.1:
3982
+
version "2.0.3"
3983
+
resolved "https://registry.yarnpkg.com/eslint-plugin-ft-flow/-/eslint-plugin-ft-flow-2.0.3.tgz#3b3c113c41902bcbacf0e22b536debcfc3c819e8"
3984
+
integrity sha512-Vbsd/b+LYA99jUbsL6viEUWShFaYQt2YQs3QN3f+aeszOhh2sgdcU0mjzDyD4yyBvMc8qy2uwvBBWfMzEX06tg==
3985
+
dependencies:
3986
+
lodash "^4.17.21"
3987
+
string-natural-compare "^3.0.1"
3988
+
3535
3989
eslint-plugin-import@^2.31.0:
3536
3990
version "2.32.0"
3537
3991
resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.32.0.tgz#602b55faa6e4caeaa5e970c198b5c00a37708980"
···
3557
4011
string.prototype.trimend "^1.0.9"
3558
4012
tsconfig-paths "^3.15.0"
3559
4013
4014
+
eslint-plugin-jest@^27.9.0:
4015
+
version "27.9.0"
4016
+
resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-27.9.0.tgz#7c98a33605e1d8b8442ace092b60e9919730000b"
4017
+
integrity sha512-QIT7FH7fNmd9n4se7FFKHbsLKGQiw885Ds6Y/sxKgCZ6natwCsXdgPOADnYVxN2QrRweF0FZWbJ6S7Rsn7llug==
4018
+
dependencies:
4019
+
"@typescript-eslint/utils" "^5.10.0"
4020
+
3560
4021
eslint-plugin-n@^17.17.0:
3561
4022
version "17.21.0"
3562
4023
resolved "https://registry.yarnpkg.com/eslint-plugin-n/-/eslint-plugin-n-17.21.0.tgz#6b1833e5e8fd07a69bbab2be429771ff2309db5e"
···
3584
4045
resolve "^1.10.1"
3585
4046
semver "^6.1.0"
3586
4047
3587
-
eslint-plugin-prettier@^5.2.6:
4048
+
eslint-plugin-prettier@^5.2.3, eslint-plugin-prettier@^5.2.6:
3588
4049
version "5.5.1"
3589
4050
resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-5.5.1.tgz#470820964de9aedb37e9ce62c3266d2d26d08d15"
3590
4051
integrity sha512-dobTkHT6XaEVOo8IO90Q4DOSxnm3Y151QxPJlM/vKC0bVy+d6cVWQZLlFiuZPP0wS6vZwSKeJgKkcS+KfMBlRw==
···
3592
4053
prettier-linter-helpers "^1.0.0"
3593
4054
synckit "^0.11.7"
3594
4055
4056
+
eslint-plugin-react-hooks@^4.6.0:
4057
+
version "4.6.2"
4058
+
resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz#c829eb06c0e6f484b3fbb85a97e57784f328c596"
4059
+
integrity sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==
4060
+
3595
4061
eslint-plugin-react-hooks@^5.2.0:
3596
4062
version "5.2.0"
3597
4063
resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.2.0.tgz#1be0080901e6ac31ce7971beed3d3ec0a423d9e3"
3598
4064
integrity sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg==
3599
4065
3600
-
eslint-plugin-react@^7.37.5:
4066
+
eslint-plugin-react-native-globals@^0.1.1:
4067
+
version "0.1.2"
4068
+
resolved "https://registry.yarnpkg.com/eslint-plugin-react-native-globals/-/eslint-plugin-react-native-globals-0.1.2.tgz#ee1348bc2ceb912303ce6bdbd22e2f045ea86ea2"
4069
+
integrity sha512-9aEPf1JEpiTjcFAmmyw8eiIXmcNZOqaZyHO77wgm0/dWfT/oxC1SrIq8ET38pMxHYrcB6Uew+TzUVsBeczF88g==
4070
+
4071
+
eslint-plugin-react-native@^4.0.0:
4072
+
version "4.1.0"
4073
+
resolved "https://registry.yarnpkg.com/eslint-plugin-react-native/-/eslint-plugin-react-native-4.1.0.tgz#5343acd3b2246bc1b857ac38be708f070d18809f"
4074
+
integrity sha512-QLo7rzTBOl43FvVqDdq5Ql9IoElIuTdjrz9SKAXCvULvBoRZ44JGSkx9z4999ZusCsb4rK3gjS8gOGyeYqZv2Q==
4075
+
dependencies:
4076
+
eslint-plugin-react-native-globals "^0.1.1"
4077
+
4078
+
eslint-plugin-react@^7.30.1, eslint-plugin-react@^7.37.5:
3601
4079
version "7.37.5"
3602
4080
resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.37.5.tgz#2975511472bdda1b272b34d779335c9b0e877065"
3603
4081
integrity sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==
···
3621
4099
string.prototype.matchall "^4.0.12"
3622
4100
string.prototype.repeat "^1.0.0"
3623
4101
4102
+
eslint-scope@5.1.1, eslint-scope@^5.1.1:
4103
+
version "5.1.1"
4104
+
resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c"
4105
+
integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==
4106
+
dependencies:
4107
+
esrecurse "^4.3.0"
4108
+
estraverse "^4.1.1"
4109
+
4110
+
eslint-scope@^8.4.0:
4111
+
version "8.4.0"
4112
+
resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-8.4.0.tgz#88e646a207fad61436ffa39eb505147200655c82"
4113
+
integrity sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==
4114
+
dependencies:
4115
+
esrecurse "^4.3.0"
4116
+
estraverse "^5.2.0"
4117
+
3624
4118
eslint-utils@^2.0.0:
3625
4119
version "2.1.0"
3626
4120
resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27"
···
3633
4127
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e"
3634
4128
integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==
3635
4129
3636
-
eslint-visitor-keys@^3.4.3:
4130
+
eslint-visitor-keys@^2.1.0:
4131
+
version "2.1.0"
4132
+
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303"
4133
+
integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==
4134
+
4135
+
eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.3:
3637
4136
version "3.4.3"
3638
4137
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800"
3639
4138
integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==
···
3643
4142
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz#4cfea60fe7dd0ad8e816e1ed026c1d5251b512c1"
3644
4143
integrity sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==
3645
4144
4145
+
eslint@^9.22.0:
4146
+
version "9.31.0"
4147
+
resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.31.0.tgz#9a488e6da75bbe05785cd62e43c5ea99356d21ba"
4148
+
integrity sha512-QldCVh/ztyKJJZLr4jXNUByx3gR+TDYZCRXEktiZoUR3PGy4qCmSbkxcIle8GEwGpb5JBZazlaJ/CxLidXdEbQ==
4149
+
dependencies:
4150
+
"@eslint-community/eslint-utils" "^4.2.0"
4151
+
"@eslint-community/regexpp" "^4.12.1"
4152
+
"@eslint/config-array" "^0.21.0"
4153
+
"@eslint/config-helpers" "^0.3.0"
4154
+
"@eslint/core" "^0.15.0"
4155
+
"@eslint/eslintrc" "^3.3.1"
4156
+
"@eslint/js" "9.31.0"
4157
+
"@eslint/plugin-kit" "^0.3.1"
4158
+
"@humanfs/node" "^0.16.6"
4159
+
"@humanwhocodes/module-importer" "^1.0.1"
4160
+
"@humanwhocodes/retry" "^0.4.2"
4161
+
"@types/estree" "^1.0.6"
4162
+
"@types/json-schema" "^7.0.15"
4163
+
ajv "^6.12.4"
4164
+
chalk "^4.0.0"
4165
+
cross-spawn "^7.0.6"
4166
+
debug "^4.3.2"
4167
+
escape-string-regexp "^4.0.0"
4168
+
eslint-scope "^8.4.0"
4169
+
eslint-visitor-keys "^4.2.1"
4170
+
espree "^10.4.0"
4171
+
esquery "^1.5.0"
4172
+
esutils "^2.0.2"
4173
+
fast-deep-equal "^3.1.3"
4174
+
file-entry-cache "^8.0.0"
4175
+
find-up "^5.0.0"
4176
+
glob-parent "^6.0.2"
4177
+
ignore "^5.2.0"
4178
+
imurmurhash "^0.1.4"
4179
+
is-glob "^4.0.0"
4180
+
json-stable-stringify-without-jsonify "^1.0.1"
4181
+
lodash.merge "^4.6.2"
4182
+
minimatch "^3.1.2"
4183
+
natural-compare "^1.4.0"
4184
+
optionator "^0.9.3"
4185
+
4186
+
espree@^10.0.1, espree@^10.4.0:
4187
+
version "10.4.0"
4188
+
resolved "https://registry.yarnpkg.com/espree/-/espree-10.4.0.tgz#d54f4949d4629005a1fa168d937c3ff1f7e2a837"
4189
+
integrity sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==
4190
+
dependencies:
4191
+
acorn "^8.15.0"
4192
+
acorn-jsx "^5.3.2"
4193
+
eslint-visitor-keys "^4.2.1"
4194
+
3646
4195
esprima@^4.0.0, esprima@^4.0.1:
3647
4196
version "4.0.1"
3648
4197
resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
3649
4198
integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
3650
4199
3651
-
estraverse@^5.2.0, estraverse@^5.3.0:
4200
+
esquery@^1.5.0:
4201
+
version "1.6.0"
4202
+
resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.6.0.tgz#91419234f804d852a82dceec3e16cdc22cf9dae7"
4203
+
integrity sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==
4204
+
dependencies:
4205
+
estraverse "^5.1.0"
4206
+
4207
+
esrecurse@^4.3.0:
4208
+
version "4.3.0"
4209
+
resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921"
4210
+
integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==
4211
+
dependencies:
4212
+
estraverse "^5.2.0"
4213
+
4214
+
estraverse@^4.1.1:
4215
+
version "4.3.0"
4216
+
resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d"
4217
+
integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==
4218
+
4219
+
estraverse@^5.1.0, estraverse@^5.2.0, estraverse@^5.3.0:
3652
4220
version "5.3.0"
3653
4221
resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123"
3654
4222
integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==
···
3672
4240
version "2.2.0"
3673
4241
resolved "https://registry.yarnpkg.com/exec-async/-/exec-async-2.2.0.tgz#c7c5ad2eef3478d38390c6dd3acfe8af0efc8301"
3674
4242
integrity sha512-87OpwcEiMia/DeiKFzaQNBNFeN3XkkpYIh9FyOqq5mS2oKv3CBE67PXoEKcr6nodWdXNogTiQ0jE2NGuoffXPw==
4243
+
4244
+
execa@^5.0.0:
4245
+
version "5.1.1"
4246
+
resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd"
4247
+
integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==
4248
+
dependencies:
4249
+
cross-spawn "^7.0.3"
4250
+
get-stream "^6.0.0"
4251
+
human-signals "^2.1.0"
4252
+
is-stream "^2.0.0"
4253
+
merge-stream "^2.0.0"
4254
+
npm-run-path "^4.0.1"
4255
+
onetime "^5.1.2"
4256
+
signal-exit "^3.0.3"
4257
+
strip-final-newline "^2.0.0"
4258
+
4259
+
exit@^0.1.2:
4260
+
version "0.1.2"
4261
+
resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c"
4262
+
integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==
3675
4263
3676
4264
expect@^29.0.0, expect@^29.7.0:
3677
4265
version "29.7.0"
···
3790
4378
resolved "https://registry.yarnpkg.com/exponential-backoff/-/exponential-backoff-3.1.2.tgz#a8f26adb96bf78e8cd8ad1037928d5e5c0679d91"
3791
4379
integrity sha512-8QxYTVXUkuy7fIIoitQkPwGonB8F3Zj8eEO8Sqg9Zv/bkI7RJAzowee4gr81Hak/dUTpA2Z7VfQgoijjPNlUZA==
3792
4380
4381
+
fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
4382
+
version "3.1.3"
4383
+
resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
4384
+
integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
4385
+
3793
4386
fast-diff@^1.1.2:
3794
4387
version "1.3.0"
3795
4388
resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.3.0.tgz#ece407fa550a64d638536cd727e129c61616e0f0"
3796
4389
integrity sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==
3797
4390
3798
-
fast-glob@^3.3.2:
4391
+
fast-glob@^3.2.9, fast-glob@^3.3.2:
3799
4392
version "3.3.3"
3800
4393
resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.3.tgz#d06d585ce8dba90a16b0505c543c3ccfb3aeb818"
3801
4394
integrity sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==
···
3806
4399
merge2 "^1.3.0"
3807
4400
micromatch "^4.0.8"
3808
4401
3809
-
fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.1.0:
4402
+
fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0:
3810
4403
version "2.1.0"
3811
4404
resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
3812
4405
integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
4406
+
4407
+
fast-levenshtein@^2.0.6:
4408
+
version "2.0.6"
4409
+
resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
4410
+
integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==
3813
4411
3814
4412
fastq@^1.6.0:
3815
4413
version "1.19.1"
···
3825
4423
dependencies:
3826
4424
bser "2.1.1"
3827
4425
4426
+
file-entry-cache@^8.0.0:
4427
+
version "8.0.0"
4428
+
resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-8.0.0.tgz#7787bddcf1131bffb92636c69457bbc0edd6d81f"
4429
+
integrity sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==
4430
+
dependencies:
4431
+
flat-cache "^4.0.0"
4432
+
3828
4433
fill-range@^7.1.1:
3829
4434
version "7.1.1"
3830
4435
resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292"
···
3845
4450
statuses "~1.5.0"
3846
4451
unpipe "~1.0.0"
3847
4452
3848
-
find-up@^4.1.0:
4453
+
find-up@^4.0.0, find-up@^4.1.0:
3849
4454
version "4.1.0"
3850
4455
resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19"
3851
4456
integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==
···
3867
4472
integrity sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ==
3868
4473
dependencies:
3869
4474
micromatch "^4.0.2"
4475
+
4476
+
flat-cache@^4.0.0:
4477
+
version "4.0.1"
4478
+
resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-4.0.1.tgz#0ece39fcb14ee012f4b0410bd33dd9c1f011127c"
4479
+
integrity sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==
4480
+
dependencies:
4481
+
flatted "^3.2.9"
4482
+
keyv "^4.5.4"
4483
+
4484
+
flatted@^3.2.9:
4485
+
version "3.3.3"
4486
+
resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.3.tgz#67c8fad95454a7c7abebf74bb78ee74a44023358"
4487
+
integrity sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==
3870
4488
3871
4489
flow-enums-runtime@^0.0.6:
3872
4490
version "0.0.6"
···
4000
4618
dunder-proto "^1.0.1"
4001
4619
es-object-atoms "^1.0.0"
4002
4620
4621
+
get-stream@^6.0.0:
4622
+
version "6.0.1"
4623
+
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7"
4624
+
integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==
4625
+
4003
4626
get-symbol-description@^1.1.0:
4004
4627
version "1.1.0"
4005
4628
resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.1.0.tgz#7bdd54e0befe8ffc9f3b4e203220d9f1e881b6ee"
···
4028
4651
dependencies:
4029
4652
is-glob "^4.0.1"
4030
4653
4654
+
glob-parent@^6.0.2:
4655
+
version "6.0.2"
4656
+
resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3"
4657
+
integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==
4658
+
dependencies:
4659
+
is-glob "^4.0.3"
4660
+
4031
4661
glob@^10.3.10, glob@^10.4.2:
4032
4662
version "10.4.5"
4033
4663
resolved "https://registry.yarnpkg.com/glob/-/glob-10.4.5.tgz#f4d9f0b90ffdbab09c9d77f5f29b4262517b0956"
···
4051
4681
minimatch "^3.1.1"
4052
4682
once "^1.3.0"
4053
4683
path-is-absolute "^1.0.0"
4684
+
4685
+
globals@^14.0.0:
4686
+
version "14.0.0"
4687
+
resolved "https://registry.yarnpkg.com/globals/-/globals-14.0.0.tgz#898d7413c29babcf6bafe56fcadded858ada724e"
4688
+
integrity sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==
4054
4689
4055
4690
globals@^15.11.0:
4056
4691
version "15.15.0"
···
4070
4705
define-properties "^1.2.1"
4071
4706
gopd "^1.0.1"
4072
4707
4708
+
globby@^11.1.0:
4709
+
version "11.1.0"
4710
+
resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b"
4711
+
integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==
4712
+
dependencies:
4713
+
array-union "^2.1.0"
4714
+
dir-glob "^3.0.1"
4715
+
fast-glob "^3.2.9"
4716
+
ignore "^5.2.0"
4717
+
merge2 "^1.4.1"
4718
+
slash "^3.0.0"
4719
+
4073
4720
gopd@^1.0.1, gopd@^1.2.0:
4074
4721
version "1.2.0"
4075
4722
resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.2.0.tgz#89f56b8217bdbc8802bd299df6d7f1081d7e51a1"
···
4171
4818
dependencies:
4172
4819
whatwg-encoding "^2.0.0"
4173
4820
4821
+
html-escaper@^2.0.0:
4822
+
version "2.0.2"
4823
+
resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453"
4824
+
integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==
4825
+
4174
4826
http-errors@2.0.0:
4175
4827
version "2.0.0"
4176
4828
resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3"
···
4207
4859
agent-base "^7.1.2"
4208
4860
debug "4"
4209
4861
4862
+
human-signals@^2.1.0:
4863
+
version "2.1.0"
4864
+
resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0"
4865
+
integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==
4866
+
4210
4867
iconv-lite@0.6.3:
4211
4868
version "0.6.3"
4212
4869
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501"
···
4219
4876
resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352"
4220
4877
integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==
4221
4878
4222
-
ignore@^5.1.1, ignore@^5.3.1, ignore@^5.3.2:
4879
+
ignore@^5.0.5, ignore@^5.1.1, ignore@^5.2.0, ignore@^5.3.1, ignore@^5.3.2:
4223
4880
version "5.3.2"
4224
4881
resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.2.tgz#3cd40e729f3643fd87cb04e50bf0eb722bc596f5"
4225
4882
integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==
···
4244
4901
caller-path "^2.0.0"
4245
4902
resolve-from "^3.0.0"
4246
4903
4904
+
import-fresh@^3.2.1:
4905
+
version "3.3.1"
4906
+
resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.1.tgz#9cecb56503c0ada1f2741dbbd6546e4b13b57ccf"
4907
+
integrity sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==
4908
+
dependencies:
4909
+
parent-module "^1.0.0"
4910
+
resolve-from "^4.0.0"
4911
+
4912
+
import-local@^3.0.2:
4913
+
version "3.2.0"
4914
+
resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.2.0.tgz#c3d5c745798c02a6f8b897726aba5100186ee260"
4915
+
integrity sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==
4916
+
dependencies:
4917
+
pkg-dir "^4.2.0"
4918
+
resolve-cwd "^3.0.0"
4919
+
4247
4920
imurmurhash@^0.1.4:
4248
4921
version "0.1.4"
4249
4922
resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
···
4391
5064
resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
4392
5065
integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
4393
5066
5067
+
is-generator-fn@^2.0.0:
5068
+
version "2.1.0"
5069
+
resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118"
5070
+
integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==
5071
+
4394
5072
is-generator-function@^1.0.10:
4395
5073
version "1.1.0"
4396
5074
resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.1.0.tgz#bf3eeda931201394f57b5dba2800f91a238309ca"
···
4401
5079
has-tostringtag "^1.0.2"
4402
5080
safe-regex-test "^1.1.0"
4403
5081
4404
-
is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1:
5082
+
is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1:
4405
5083
version "4.0.3"
4406
5084
resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084"
4407
5085
integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
···
4458
5136
dependencies:
4459
5137
call-bound "^1.0.3"
4460
5138
5139
+
is-stream@^2.0.0:
5140
+
version "2.0.1"
5141
+
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077"
5142
+
integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==
5143
+
4461
5144
is-string@^1.1.1:
4462
5145
version "1.1.1"
4463
5146
resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.1.1.tgz#92ea3f3d5c5b6e039ca8677e5ac8d07ea773cbb9"
···
4524
5207
resolved "https://registry.yarnpkg.com/iso-datestring-validator/-/iso-datestring-validator-2.2.2.tgz#2daa80d2900b7a954f9f731d42f96ee0c19a6895"
4525
5208
integrity sha512-yLEMkBbLZTlVQqOnQ4FiMujR6T4DEcCb1xizmvXS+OxuhwcbtynoosRzdMA69zZCShCNAbi+gJ71FxZBBXx1SA==
4526
5209
4527
-
istanbul-lib-coverage@^3.2.0:
5210
+
istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0:
4528
5211
version "3.2.2"
4529
5212
resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz#2d166c4b0644d43a39f04bf6c2edd1e585f31756"
4530
5213
integrity sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==
···
4540
5223
istanbul-lib-coverage "^3.2.0"
4541
5224
semver "^6.3.0"
4542
5225
5226
+
istanbul-lib-instrument@^6.0.0:
5227
+
version "6.0.3"
5228
+
resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz#fa15401df6c15874bcb2105f773325d78c666765"
5229
+
integrity sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==
5230
+
dependencies:
5231
+
"@babel/core" "^7.23.9"
5232
+
"@babel/parser" "^7.23.9"
5233
+
"@istanbuljs/schema" "^0.1.3"
5234
+
istanbul-lib-coverage "^3.2.0"
5235
+
semver "^7.5.4"
5236
+
5237
+
istanbul-lib-report@^3.0.0:
5238
+
version "3.0.1"
5239
+
resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz#908305bac9a5bd175ac6a74489eafd0fc2445a7d"
5240
+
integrity sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==
5241
+
dependencies:
5242
+
istanbul-lib-coverage "^3.0.0"
5243
+
make-dir "^4.0.0"
5244
+
supports-color "^7.1.0"
5245
+
5246
+
istanbul-lib-source-maps@^4.0.0:
5247
+
version "4.0.1"
5248
+
resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz#895f3a709fcfba34c6de5a42939022f3e4358551"
5249
+
integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==
5250
+
dependencies:
5251
+
debug "^4.1.1"
5252
+
istanbul-lib-coverage "^3.0.0"
5253
+
source-map "^0.6.1"
5254
+
5255
+
istanbul-reports@^3.1.3:
5256
+
version "3.1.7"
5257
+
resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.7.tgz#daed12b9e1dca518e15c056e1e537e741280fa0b"
5258
+
integrity sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==
5259
+
dependencies:
5260
+
html-escaper "^2.0.0"
5261
+
istanbul-lib-report "^3.0.0"
5262
+
4543
5263
iterator.prototype@^1.1.4:
4544
5264
version "1.1.5"
4545
5265
resolved "https://registry.yarnpkg.com/iterator.prototype/-/iterator.prototype-1.1.5.tgz#12c959a29de32de0aa3bbbb801f4d777066dae39"
···
4561
5281
optionalDependencies:
4562
5282
"@pkgjs/parseargs" "^0.11.0"
4563
5283
5284
+
jest-changed-files@^29.7.0:
5285
+
version "29.7.0"
5286
+
resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.7.0.tgz#1c06d07e77c78e1585d020424dedc10d6e17ac3a"
5287
+
integrity sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==
5288
+
dependencies:
5289
+
execa "^5.0.0"
5290
+
jest-util "^29.7.0"
5291
+
p-limit "^3.1.0"
5292
+
5293
+
jest-circus@^29.7.0:
5294
+
version "29.7.0"
5295
+
resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.7.0.tgz#b6817a45fcc835d8b16d5962d0c026473ee3668a"
5296
+
integrity sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==
5297
+
dependencies:
5298
+
"@jest/environment" "^29.7.0"
5299
+
"@jest/expect" "^29.7.0"
5300
+
"@jest/test-result" "^29.7.0"
5301
+
"@jest/types" "^29.6.3"
5302
+
"@types/node" "*"
5303
+
chalk "^4.0.0"
5304
+
co "^4.6.0"
5305
+
dedent "^1.0.0"
5306
+
is-generator-fn "^2.0.0"
5307
+
jest-each "^29.7.0"
5308
+
jest-matcher-utils "^29.7.0"
5309
+
jest-message-util "^29.7.0"
5310
+
jest-runtime "^29.7.0"
5311
+
jest-snapshot "^29.7.0"
5312
+
jest-util "^29.7.0"
5313
+
p-limit "^3.1.0"
5314
+
pretty-format "^29.7.0"
5315
+
pure-rand "^6.0.0"
5316
+
slash "^3.0.0"
5317
+
stack-utils "^2.0.3"
5318
+
5319
+
jest-cli@^29.7.0:
5320
+
version "29.7.0"
5321
+
resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.7.0.tgz#5592c940798e0cae677eec169264f2d839a37995"
5322
+
integrity sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==
5323
+
dependencies:
5324
+
"@jest/core" "^29.7.0"
5325
+
"@jest/test-result" "^29.7.0"
5326
+
"@jest/types" "^29.6.3"
5327
+
chalk "^4.0.0"
5328
+
create-jest "^29.7.0"
5329
+
exit "^0.1.2"
5330
+
import-local "^3.0.2"
5331
+
jest-config "^29.7.0"
5332
+
jest-util "^29.7.0"
5333
+
jest-validate "^29.7.0"
5334
+
yargs "^17.3.1"
5335
+
5336
+
jest-config@^29.7.0:
5337
+
version "29.7.0"
5338
+
resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.7.0.tgz#bcbda8806dbcc01b1e316a46bb74085a84b0245f"
5339
+
integrity sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==
5340
+
dependencies:
5341
+
"@babel/core" "^7.11.6"
5342
+
"@jest/test-sequencer" "^29.7.0"
5343
+
"@jest/types" "^29.6.3"
5344
+
babel-jest "^29.7.0"
5345
+
chalk "^4.0.0"
5346
+
ci-info "^3.2.0"
5347
+
deepmerge "^4.2.2"
5348
+
glob "^7.1.3"
5349
+
graceful-fs "^4.2.9"
5350
+
jest-circus "^29.7.0"
5351
+
jest-environment-node "^29.7.0"
5352
+
jest-get-type "^29.6.3"
5353
+
jest-regex-util "^29.6.3"
5354
+
jest-resolve "^29.7.0"
5355
+
jest-runner "^29.7.0"
5356
+
jest-util "^29.7.0"
5357
+
jest-validate "^29.7.0"
5358
+
micromatch "^4.0.4"
5359
+
parse-json "^5.2.0"
5360
+
pretty-format "^29.7.0"
5361
+
slash "^3.0.0"
5362
+
strip-json-comments "^3.1.1"
5363
+
4564
5364
jest-diff@^29.7.0:
4565
5365
version "29.7.0"
4566
5366
resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.7.0.tgz#017934a66ebb7ecf6f205e84699be10afd70458a"
···
4571
5371
jest-get-type "^29.6.3"
4572
5372
pretty-format "^29.7.0"
4573
5373
5374
+
jest-docblock@^29.7.0:
5375
+
version "29.7.0"
5376
+
resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-29.7.0.tgz#8fddb6adc3cdc955c93e2a87f61cfd350d5d119a"
5377
+
integrity sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==
5378
+
dependencies:
5379
+
detect-newline "^3.0.0"
5380
+
5381
+
jest-each@^29.7.0:
5382
+
version "29.7.0"
5383
+
resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.7.0.tgz#162a9b3f2328bdd991beaabffbb74745e56577d1"
5384
+
integrity sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==
5385
+
dependencies:
5386
+
"@jest/types" "^29.6.3"
5387
+
chalk "^4.0.0"
5388
+
jest-get-type "^29.6.3"
5389
+
jest-util "^29.7.0"
5390
+
pretty-format "^29.7.0"
5391
+
4574
5392
jest-environment-jsdom@^29.2.1:
4575
5393
version "29.7.0"
4576
5394
resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-29.7.0.tgz#d206fa3551933c3fd519e5dfdb58a0f5139a837f"
···
4643
5461
optionalDependencies:
4644
5462
fsevents "^2.3.2"
4645
5463
5464
+
jest-leak-detector@^29.7.0:
5465
+
version "29.7.0"
5466
+
resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz#5b7ec0dadfdfec0ca383dc9aa016d36b5ea4c728"
5467
+
integrity sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==
5468
+
dependencies:
5469
+
jest-get-type "^29.6.3"
5470
+
pretty-format "^29.7.0"
5471
+
4646
5472
jest-matcher-utils@^29.7.0:
4647
5473
version "29.7.0"
4648
5474
resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz#ae8fec79ff249fd592ce80e3ee474e83a6c44f12"
···
4677
5503
"@types/node" "*"
4678
5504
jest-util "^29.7.0"
4679
5505
5506
+
jest-pnp-resolver@^1.2.2:
5507
+
version "1.2.3"
5508
+
resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz#930b1546164d4ad5937d5540e711d4d38d4cad2e"
5509
+
integrity sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==
5510
+
4680
5511
jest-regex-util@^29.0.0, jest-regex-util@^29.6.3:
4681
5512
version "29.6.3"
4682
5513
resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.6.3.tgz#4a556d9c776af68e1c5f48194f4d0327d24e8a52"
4683
5514
integrity sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==
4684
5515
5516
+
jest-resolve-dependencies@^29.7.0:
5517
+
version "29.7.0"
5518
+
resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz#1b04f2c095f37fc776ff40803dc92921b1e88428"
5519
+
integrity sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==
5520
+
dependencies:
5521
+
jest-regex-util "^29.6.3"
5522
+
jest-snapshot "^29.7.0"
5523
+
5524
+
jest-resolve@^29.7.0:
5525
+
version "29.7.0"
5526
+
resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.7.0.tgz#64d6a8992dd26f635ab0c01e5eef4399c6bcbc30"
5527
+
integrity sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==
5528
+
dependencies:
5529
+
chalk "^4.0.0"
5530
+
graceful-fs "^4.2.9"
5531
+
jest-haste-map "^29.7.0"
5532
+
jest-pnp-resolver "^1.2.2"
5533
+
jest-util "^29.7.0"
5534
+
jest-validate "^29.7.0"
5535
+
resolve "^1.20.0"
5536
+
resolve.exports "^2.0.0"
5537
+
slash "^3.0.0"
5538
+
5539
+
jest-runner@^29.7.0:
5540
+
version "29.7.0"
5541
+
resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.7.0.tgz#809af072d408a53dcfd2e849a4c976d3132f718e"
5542
+
integrity sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==
5543
+
dependencies:
5544
+
"@jest/console" "^29.7.0"
5545
+
"@jest/environment" "^29.7.0"
5546
+
"@jest/test-result" "^29.7.0"
5547
+
"@jest/transform" "^29.7.0"
5548
+
"@jest/types" "^29.6.3"
5549
+
"@types/node" "*"
5550
+
chalk "^4.0.0"
5551
+
emittery "^0.13.1"
5552
+
graceful-fs "^4.2.9"
5553
+
jest-docblock "^29.7.0"
5554
+
jest-environment-node "^29.7.0"
5555
+
jest-haste-map "^29.7.0"
5556
+
jest-leak-detector "^29.7.0"
5557
+
jest-message-util "^29.7.0"
5558
+
jest-resolve "^29.7.0"
5559
+
jest-runtime "^29.7.0"
5560
+
jest-util "^29.7.0"
5561
+
jest-watcher "^29.7.0"
5562
+
jest-worker "^29.7.0"
5563
+
p-limit "^3.1.0"
5564
+
source-map-support "0.5.13"
5565
+
5566
+
jest-runtime@^29.7.0:
5567
+
version "29.7.0"
5568
+
resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.7.0.tgz#efecb3141cf7d3767a3a0cc8f7c9990587d3d817"
5569
+
integrity sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==
5570
+
dependencies:
5571
+
"@jest/environment" "^29.7.0"
5572
+
"@jest/fake-timers" "^29.7.0"
5573
+
"@jest/globals" "^29.7.0"
5574
+
"@jest/source-map" "^29.6.3"
5575
+
"@jest/test-result" "^29.7.0"
5576
+
"@jest/transform" "^29.7.0"
5577
+
"@jest/types" "^29.6.3"
5578
+
"@types/node" "*"
5579
+
chalk "^4.0.0"
5580
+
cjs-module-lexer "^1.0.0"
5581
+
collect-v8-coverage "^1.0.0"
5582
+
glob "^7.1.3"
5583
+
graceful-fs "^4.2.9"
5584
+
jest-haste-map "^29.7.0"
5585
+
jest-message-util "^29.7.0"
5586
+
jest-mock "^29.7.0"
5587
+
jest-regex-util "^29.6.3"
5588
+
jest-resolve "^29.7.0"
5589
+
jest-snapshot "^29.7.0"
5590
+
jest-util "^29.7.0"
5591
+
slash "^3.0.0"
5592
+
strip-bom "^4.0.0"
5593
+
4685
5594
"jest-snapshot-prettier@npm:prettier@^2":
4686
5595
version "2.8.8"
4687
5596
resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da"
···
4759
5668
string-length "^5.0.1"
4760
5669
strip-ansi "^7.0.1"
4761
5670
4762
-
jest-watcher@^29.0.0:
5671
+
jest-watcher@^29.0.0, jest-watcher@^29.7.0:
4763
5672
version "29.7.0"
4764
5673
resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.7.0.tgz#7810d30d619c3a62093223ce6bb359ca1b28a2f2"
4765
5674
integrity sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==
···
4782
5691
jest-util "^29.7.0"
4783
5692
merge-stream "^2.0.0"
4784
5693
supports-color "^8.0.0"
5694
+
5695
+
jest@^29.7.0:
5696
+
version "29.7.0"
5697
+
resolved "https://registry.yarnpkg.com/jest/-/jest-29.7.0.tgz#994676fc24177f088f1c5e3737f5697204ff2613"
5698
+
integrity sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==
5699
+
dependencies:
5700
+
"@jest/core" "^29.7.0"
5701
+
"@jest/types" "^29.6.3"
5702
+
import-local "^3.0.2"
5703
+
jest-cli "^29.7.0"
4785
5704
4786
5705
jimp-compact@0.16.1:
4787
5706
version "0.16.1"
···
4855
5774
resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-3.0.2.tgz#bb8b09a6597ba426425f2e4a07245c3d00b9343e"
4856
5775
integrity sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==
4857
5776
5777
+
json-buffer@3.0.1:
5778
+
version "3.0.1"
5779
+
resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13"
5780
+
integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==
5781
+
4858
5782
json-parse-better-errors@^1.0.1:
4859
5783
version "1.0.2"
4860
5784
resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9"
4861
5785
integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==
4862
5786
5787
+
json-parse-even-better-errors@^2.3.0:
5788
+
version "2.3.1"
5789
+
resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d"
5790
+
integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==
5791
+
5792
+
json-schema-traverse@^0.4.1:
5793
+
version "0.4.1"
5794
+
resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
5795
+
integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
5796
+
5797
+
json-stable-stringify-without-jsonify@^1.0.1:
5798
+
version "1.0.1"
5799
+
resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
5800
+
integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==
5801
+
4863
5802
json-stable-stringify@^1.0.2:
4864
5803
version "1.3.0"
4865
5804
resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.3.0.tgz#8903cfac42ea1a0f97f35d63a4ce0518f0cc6a70"
···
4907
5846
object.assign "^4.1.4"
4908
5847
object.values "^1.1.6"
4909
5848
5849
+
keyv@^4.5.4:
5850
+
version "4.5.4"
5851
+
resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93"
5852
+
integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==
5853
+
dependencies:
5854
+
json-buffer "3.0.1"
5855
+
4910
5856
klaw-sync@^6.0.0:
4911
5857
version "6.0.0"
4912
5858
resolved "https://registry.yarnpkg.com/klaw-sync/-/klaw-sync-6.0.0.tgz#1fd2cfd56ebb6250181114f0a581167099c2b28c"
···
4928
5874
version "3.1.0"
4929
5875
resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2"
4930
5876
integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==
5877
+
5878
+
levn@^0.4.1:
5879
+
version "0.4.1"
5880
+
resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade"
5881
+
integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==
5882
+
dependencies:
5883
+
prelude-ls "^1.2.1"
5884
+
type-check "~0.4.0"
4931
5885
4932
5886
lighthouse-logger@^1.0.0:
4933
5887
version "1.4.2"
···
5034
5988
resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe"
5035
5989
integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==
5036
5990
5991
+
lodash.merge@^4.6.2:
5992
+
version "4.6.2"
5993
+
resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a"
5994
+
integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==
5995
+
5037
5996
lodash.throttle@^4.1.1:
5038
5997
version "4.1.1"
5039
5998
resolved "https://registry.yarnpkg.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz#c23e91b710242ac70c37f1e1cda9274cc39bf2f4"
5040
5999
integrity sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==
5041
6000
5042
-
lodash@^4.17.19:
6001
+
lodash@^4.17.19, lodash@^4.17.21:
5043
6002
version "4.17.21"
5044
6003
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
5045
6004
integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
···
5078
6037
pify "^4.0.1"
5079
6038
semver "^5.6.0"
5080
6039
6040
+
make-dir@^4.0.0:
6041
+
version "4.0.0"
6042
+
resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-4.0.0.tgz#c3c2307a771277cd9638305f915c29ae741b614e"
6043
+
integrity sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==
6044
+
dependencies:
6045
+
semver "^7.5.3"
6046
+
5081
6047
make-error@1.x:
5082
6048
version "1.3.6"
5083
6049
resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2"
···
5110
6076
resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
5111
6077
integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==
5112
6078
5113
-
merge2@^1.3.0:
6079
+
merge2@^1.3.0, merge2@^1.4.1:
5114
6080
version "1.4.1"
5115
6081
resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
5116
6082
integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
···
5343
6309
resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022"
5344
6310
integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==
5345
6311
6312
+
mimic-fn@^2.1.0:
6313
+
version "2.1.0"
6314
+
resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
6315
+
integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
6316
+
5346
6317
min-indent@^1.0.0:
5347
6318
version "1.0.1"
5348
6319
resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869"
···
5473
6444
semver "^7.3.5"
5474
6445
validate-npm-package-name "^5.0.0"
5475
6446
6447
+
npm-run-path@^4.0.1:
6448
+
version "4.0.1"
6449
+
resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea"
6450
+
integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==
6451
+
dependencies:
6452
+
path-key "^3.0.0"
6453
+
5476
6454
nullthrows@^1.1.1:
5477
6455
version "1.1.1"
5478
6456
resolved "https://registry.yarnpkg.com/nullthrows/-/nullthrows-1.1.1.tgz#7818258843856ae971eae4208ad7d7eb19a431b1"
···
5589
6567
dependencies:
5590
6568
mimic-fn "^1.0.0"
5591
6569
6570
+
onetime@^5.1.2:
6571
+
version "5.1.2"
6572
+
resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e"
6573
+
integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==
6574
+
dependencies:
6575
+
mimic-fn "^2.1.0"
6576
+
5592
6577
open@^7.0.3, open@^7.4.2:
5593
6578
version "7.4.2"
5594
6579
resolved "https://registry.yarnpkg.com/open/-/open-7.4.2.tgz#b8147e26dcf3e426316c730089fd71edd29c2321"
···
5606
6591
is-docker "^2.1.1"
5607
6592
is-wsl "^2.2.0"
5608
6593
6594
+
optionator@^0.9.3:
6595
+
version "0.9.4"
6596
+
resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.4.tgz#7ea1c1a5d91d764fb282139c88fe11e182a3a734"
6597
+
integrity sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==
6598
+
dependencies:
6599
+
deep-is "^0.1.3"
6600
+
fast-levenshtein "^2.0.6"
6601
+
levn "^0.4.1"
6602
+
prelude-ls "^1.2.1"
6603
+
type-check "^0.4.0"
6604
+
word-wrap "^1.2.5"
6605
+
5609
6606
ora@^3.4.0:
5610
6607
version "3.4.0"
5611
6608
resolved "https://registry.yarnpkg.com/ora/-/ora-3.4.0.tgz#bf0752491059a3ef3ed4c85097531de9fdbcd318"
···
5670
6667
resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz#4f1471a010827a86f94cfd9b0727e36d267de505"
5671
6668
integrity sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==
5672
6669
6670
+
parent-module@^1.0.0:
6671
+
version "1.0.1"
6672
+
resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2"
6673
+
integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==
6674
+
dependencies:
6675
+
callsites "^3.0.0"
6676
+
5673
6677
parse-json@^4.0.0:
5674
6678
version "4.0.0"
5675
6679
resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0"
···
5677
6681
dependencies:
5678
6682
error-ex "^1.3.1"
5679
6683
json-parse-better-errors "^1.0.1"
6684
+
6685
+
parse-json@^5.2.0:
6686
+
version "5.2.0"
6687
+
resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd"
6688
+
integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==
6689
+
dependencies:
6690
+
"@babel/code-frame" "^7.0.0"
6691
+
error-ex "^1.3.1"
6692
+
json-parse-even-better-errors "^2.3.0"
6693
+
lines-and-columns "^1.1.6"
5680
6694
5681
6695
parse-png@^2.1.0:
5682
6696
version "2.1.0"
···
5728
6742
resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
5729
6743
integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==
5730
6744
5731
-
path-key@^3.1.0:
6745
+
path-key@^3.0.0, path-key@^3.1.0:
5732
6746
version "3.1.1"
5733
6747
resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
5734
6748
integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
···
5745
6759
dependencies:
5746
6760
lru-cache "^10.2.0"
5747
6761
minipass "^5.0.0 || ^6.0.2 || ^7.0.0"
6762
+
6763
+
path-type@^4.0.0:
6764
+
version "4.0.0"
6765
+
resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
6766
+
integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
5748
6767
5749
6768
picocolors@^1.0.0, picocolors@^1.1.1:
5750
6769
version "1.1.1"
···
5776
6795
resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.7.tgz#643b4a18c4257c8a65104b73f3049ce9a0a15e22"
5777
6796
integrity sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==
5778
6797
6798
+
pkg-dir@^4.2.0:
6799
+
version "4.2.0"
6800
+
resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3"
6801
+
integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==
6802
+
dependencies:
6803
+
find-up "^4.0.0"
6804
+
5779
6805
plist@^3.0.5:
5780
6806
version "3.1.0"
5781
6807
resolved "https://registry.yarnpkg.com/plist/-/plist-3.1.0.tgz#797a516a93e62f5bde55e0b9cc9c967f860893c9"
···
5808
6834
version "2.1.0"
5809
6835
resolved "https://registry.yarnpkg.com/postinstall-postinstall/-/postinstall-postinstall-2.1.0.tgz#4f7f77441ef539d1512c40bd04c71b06a4704ca3"
5810
6836
integrity sha512-7hQX6ZlZXIoRiWNrbMQaLzUUfH+sSx39u8EJ9HYuDc1kLo9IXKWjM5RSquZN1ad5GnH8CGFM78fsAAQi3OKEEQ==
6837
+
6838
+
prelude-ls@^1.2.1:
6839
+
version "1.2.1"
6840
+
resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"
6841
+
integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==
5811
6842
5812
6843
prettier-linter-helpers@^1.0.0:
5813
6844
version "1.0.0"
···
5816
6847
dependencies:
5817
6848
fast-diff "^1.1.2"
5818
6849
6850
+
prettier@^3.0.3:
6851
+
version "3.6.2"
6852
+
resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.6.2.tgz#ccda02a1003ebbb2bfda6f83a074978f608b9393"
6853
+
integrity sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==
6854
+
5819
6855
pretty-bytes@^5.6.0:
5820
6856
version "5.6.0"
5821
6857
resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz#356256f643804773c82f64723fe78c92c62beaeb"
···
5847
6883
dependencies:
5848
6884
asap "~2.0.6"
5849
6885
5850
-
prompts@^2.2.1, prompts@^2.3.2:
6886
+
prompts@^2.0.1, prompts@^2.2.1, prompts@^2.3.2:
5851
6887
version "2.4.2"
5852
6888
resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069"
5853
6889
integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==
···
5871
6907
dependencies:
5872
6908
punycode "^2.3.1"
5873
6909
5874
-
punycode@^2.1.1, punycode@^2.3.1:
6910
+
punycode@^2.1.0, punycode@^2.1.1, punycode@^2.3.1:
5875
6911
version "2.3.1"
5876
6912
resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5"
5877
6913
integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==
6914
+
6915
+
pure-rand@^6.0.0:
6916
+
version "6.1.0"
6917
+
resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-6.1.0.tgz#d173cf23258231976ccbdb05247c9787957604f2"
6918
+
integrity sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==
5878
6919
5879
6920
qrcode-terminal@0.11.0:
5880
6921
version "0.11.0"
···
6121
7162
resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff"
6122
7163
integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==
6123
7164
7165
+
resolve-cwd@^3.0.0:
7166
+
version "3.0.0"
7167
+
resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d"
7168
+
integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==
7169
+
dependencies:
7170
+
resolve-from "^5.0.0"
7171
+
6124
7172
resolve-from@^3.0.0:
6125
7173
version "3.0.0"
6126
7174
resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748"
6127
7175
integrity sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==
7176
+
7177
+
resolve-from@^4.0.0:
7178
+
version "4.0.0"
7179
+
resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"
7180
+
integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
6128
7181
6129
7182
resolve-from@^5.0.0:
6130
7183
version "5.0.0"
···
6141
7194
resolved "https://registry.yarnpkg.com/resolve-workspace-root/-/resolve-workspace-root-2.0.0.tgz#a0098daa0067cd0efa6eb525c57c8fb4a61e78f8"
6142
7195
integrity sha512-IsaBUZETJD5WsI11Wt8PKHwaIe45or6pwNc8yflvLJ4DWtImK9kuLoH5kUva/2Mmx/RdIyr4aONNSa2v9LTJsw==
6143
7196
6144
-
resolve.exports@^2.0.3:
7197
+
resolve.exports@^2.0.0, resolve.exports@^2.0.3:
6145
7198
version "2.0.3"
6146
7199
resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-2.0.3.tgz#41955e6f1b4013b7586f873749a635dea07ebe3f"
6147
7200
integrity sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==
6148
7201
6149
-
resolve@^1.10.1, resolve@^1.22.10, resolve@^1.22.2, resolve@^1.22.4:
7202
+
resolve@^1.10.1, resolve@^1.20.0, resolve@^1.22.10, resolve@^1.22.2, resolve@^1.22.4:
6150
7203
version "1.22.10"
6151
7204
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.10.tgz#b663e83ffb09bbf2386944736baae803029b8b39"
6152
7205
integrity sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==
···
6260
7313
resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.25.0.tgz#336cd9768e8cceebf52d3c80e3dcf5de23e7e015"
6261
7314
integrity sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==
6262
7315
6263
-
semver@7.x, semver@^7.1.3, semver@^7.3.5, semver@^7.5.3, semver@^7.5.4, semver@^7.6.0, semver@^7.6.3:
7316
+
semver@7.x, semver@^7.1.3, semver@^7.3.5, semver@^7.3.7, semver@^7.5.3, semver@^7.5.4, semver@^7.6.0, semver@^7.6.3:
6264
7317
version "7.7.2"
6265
7318
resolved "https://registry.yarnpkg.com/semver/-/semver-7.7.2.tgz#67d99fdcd35cec21e6f8b87a7fd515a33f982b58"
6266
7319
integrity sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==
···
6426
7479
side-channel-map "^1.0.1"
6427
7480
side-channel-weakmap "^1.0.2"
6428
7481
6429
-
signal-exit@^3.0.2, signal-exit@^3.0.7:
7482
+
signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7:
6430
7483
version "3.0.7"
6431
7484
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9"
6432
7485
integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==
···
6475
7528
resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.1.tgz#1ce5650fddd87abc099eda37dcff024c2667ae46"
6476
7529
integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==
6477
7530
7531
+
source-map-support@0.5.13:
7532
+
version "0.5.13"
7533
+
resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932"
7534
+
integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==
7535
+
dependencies:
7536
+
buffer-from "^1.0.0"
7537
+
source-map "^0.6.0"
7538
+
6478
7539
source-map-support@~0.5.20, source-map-support@~0.5.21:
6479
7540
version "0.5.21"
6480
7541
resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f"
···
6493
7554
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
6494
7555
integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==
6495
7556
6496
-
source-map@^0.6.0, source-map@~0.6.1:
7557
+
source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1:
6497
7558
version "0.6.1"
6498
7559
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
6499
7560
integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
···
6585
7646
char-regex "^2.0.0"
6586
7647
strip-ansi "^7.0.1"
6587
7648
7649
+
string-natural-compare@^3.0.1:
7650
+
version "3.0.1"
7651
+
resolved "https://registry.yarnpkg.com/string-natural-compare/-/string-natural-compare-3.0.1.tgz#7a42d58474454963759e8e8b7ae63d71c1e7fdf4"
7652
+
integrity sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw==
7653
+
6588
7654
"string-width-cjs@npm:string-width@^4.2.0":
6589
7655
version "4.2.3"
6590
7656
resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
···
6704
7770
resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
6705
7771
integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==
6706
7772
7773
+
strip-bom@^4.0.0:
7774
+
version "4.0.0"
7775
+
resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878"
7776
+
integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==
7777
+
7778
+
strip-final-newline@^2.0.0:
7779
+
version "2.0.0"
7780
+
resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad"
7781
+
integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==
7782
+
6707
7783
strip-indent@^3.0.0:
6708
7784
version "3.0.0"
6709
7785
resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001"
6710
7786
integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==
6711
7787
dependencies:
6712
7788
min-indent "^1.0.0"
7789
+
7790
+
strip-json-comments@^3.1.1:
7791
+
version "3.1.1"
7792
+
resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006"
7793
+
integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
6713
7794
6714
7795
strip-json-comments@~2.0.1:
6715
7796
version "2.0.1"
···
6889
7970
dependencies:
6890
7971
punycode "^2.1.1"
6891
7972
7973
+
ts-api-utils@^1.3.0:
7974
+
version "1.4.3"
7975
+
resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.4.3.tgz#bfc2215fe6528fecab2b0fba570a2e8a4263b064"
7976
+
integrity sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==
7977
+
6892
7978
ts-api-utils@^2.1.0:
6893
7979
version "2.1.0"
6894
7980
resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-2.1.0.tgz#595f7094e46eed364c13fd23e75f9513d29baf91"
···
6930
8016
minimist "^1.2.6"
6931
8017
strip-bom "^3.0.0"
6932
8018
8019
+
tslib@^1.8.1:
8020
+
version "1.14.1"
8021
+
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
8022
+
integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
8023
+
8024
+
tsutils@^3.21.0:
8025
+
version "3.21.0"
8026
+
resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623"
8027
+
integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==
8028
+
dependencies:
8029
+
tslib "^1.8.1"
8030
+
8031
+
type-check@^0.4.0, type-check@~0.4.0:
8032
+
version "0.4.0"
8033
+
resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1"
8034
+
integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==
8035
+
dependencies:
8036
+
prelude-ls "^1.2.1"
8037
+
6933
8038
type-detect@4.0.8:
6934
8039
version "4.0.8"
6935
8040
resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c"
···
7075
8180
escalade "^3.2.0"
7076
8181
picocolors "^1.1.1"
7077
8182
8183
+
uri-js@^4.2.2:
8184
+
version "4.4.1"
8185
+
resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e"
8186
+
integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==
8187
+
dependencies:
8188
+
punycode "^2.1.0"
8189
+
7078
8190
url-parse@^1.5.3:
7079
8191
version "1.5.10"
7080
8192
resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1"
···
7093
8205
resolved "https://registry.yarnpkg.com/uuid/-/uuid-7.0.3.tgz#c5c9f2c8cf25dc0a372c4df1441c41f5bd0c680b"
7094
8206
integrity sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==
7095
8207
8208
+
v8-to-istanbul@^9.0.1:
8209
+
version "9.3.0"
8210
+
resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz#b9572abfa62bd556c16d75fdebc1a411d5ff3175"
8211
+
integrity sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==
8212
+
dependencies:
8213
+
"@jridgewell/trace-mapping" "^0.3.12"
8214
+
"@types/istanbul-lib-coverage" "^2.0.1"
8215
+
convert-source-map "^2.0.0"
8216
+
7096
8217
validate-npm-package-name@^5.0.0:
7097
8218
version "5.0.1"
7098
8219
resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-5.0.1.tgz#a316573e9b49f3ccd90dbb6eb52b3f06c6d604e8"
···
7243
8364
resolved "https://registry.yarnpkg.com/wonka/-/wonka-6.3.5.tgz#33fa54ea700ff3e87b56fe32202112a9e8fea1a2"
7244
8365
integrity sha512-SSil+ecw6B4/Dm7Pf2sAshKQ5hWFvfyGlfPbEd6A14dOH6VDjrmbY86u6nZvy9omGwwIPFR8V41+of1EezgoUw==
7245
8366
8367
+
word-wrap@^1.2.5:
8368
+
version "1.2.5"
8369
+
resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34"
8370
+
integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==
8371
+
7246
8372
"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0":
7247
8373
version "7.0.0"
7248
8374
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
···
7361
8487
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35"
7362
8488
integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==
7363
8489
7364
-
yargs@^17.6.2:
8490
+
yargs@^17.3.1, yargs@^17.6.2:
7365
8491
version "17.7.2"
7366
8492
resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269"
7367
8493
integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==