[feature] Add Sentry tracking, restore installable PWA (#106)
* This PR restores the sentry and pwa features * Add gtag to editor in events.
This commit is contained in:
parent
7bc01c70f5
commit
1d988f132a
9 changed files with 336 additions and 19 deletions
|
@ -1,4 +1,5 @@
|
|||
import { TLDraw } from '@tldraw/tldraw'
|
||||
import { TLDraw, TLDrawState, Data } from '@tldraw/tldraw'
|
||||
import * as gtag from '-utils/gtag'
|
||||
import React from 'react'
|
||||
|
||||
interface EditorProps {
|
||||
|
@ -6,15 +7,26 @@ interface EditorProps {
|
|||
}
|
||||
|
||||
export default function Editor({ id = 'home' }: EditorProps) {
|
||||
const handleMount = React.useCallback((tlstate) => {
|
||||
// Put the tlstate into the window, for debugging.
|
||||
const handleMount = React.useCallback((tlstate: TLDrawState) => {
|
||||
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
||||
// @ts-ignore
|
||||
window.tlstate = tlstate
|
||||
}, [])
|
||||
|
||||
// Send events to gtag as actions.
|
||||
const handleChange = React.useCallback((_tlstate: TLDrawState, _state: Data, reason: string) => {
|
||||
gtag.event({
|
||||
action: reason,
|
||||
category: 'editor',
|
||||
label: `page:${id}`,
|
||||
value: 0,
|
||||
})
|
||||
}, [])
|
||||
|
||||
return (
|
||||
<div className="tldraw">
|
||||
<TLDraw id={id} onMount={handleMount} autofocus />
|
||||
<TLDraw id={id} onMount={handleMount} onChange={handleChange} autofocus />
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
|
|
@ -1,14 +1,75 @@
|
|||
/* eslint-disable @typescript-eslint/no-var-requires */
|
||||
const withPWA = require('next-pwa')
|
||||
const SentryWebpackPlugin = require('@sentry/webpack-plugin')
|
||||
const withTM = require('next-transpile-modules')(['@tldraw/tldraw'])
|
||||
|
||||
const { NODE_ENV } = process.env
|
||||
const {
|
||||
GITHUB_ID,
|
||||
GITHUB_SECRET,
|
||||
GITHUB_API_SECRET,
|
||||
NEXT_PUBLIC_SENTRY_DSN: SENTRY_DSN,
|
||||
SENTRY_ORG,
|
||||
SENTRY_PROJECT,
|
||||
SENTRY_AUTH_TOKEN,
|
||||
NODE_ENV,
|
||||
VERCEL_GIT_COMMIT_SHA,
|
||||
GA_MEASUREMENT_ID,
|
||||
} = process.env
|
||||
|
||||
process.env.SENTRY_DSN = SENTRY_DSN
|
||||
|
||||
const isProduction = NODE_ENV === 'production'
|
||||
|
||||
module.exports = withTM({
|
||||
reactStrictMode: true,
|
||||
pwa: {
|
||||
disable: !isProduction,
|
||||
dest: 'public',
|
||||
},
|
||||
})
|
||||
const basePath = ''
|
||||
|
||||
module.exports = withTM(
|
||||
withPWA({
|
||||
reactStrictMode: true,
|
||||
pwa: {
|
||||
disable: !isProduction,
|
||||
dest: 'public',
|
||||
},
|
||||
productionBrowserSourceMaps: true,
|
||||
env: {
|
||||
NEXT_PUBLIC_COMMIT_SHA: VERCEL_GIT_COMMIT_SHA,
|
||||
GA_MEASUREMENT_ID,
|
||||
GITHUB_ID,
|
||||
GITHUB_SECRET,
|
||||
GITHUB_API_SECRET,
|
||||
},
|
||||
webpack: (config, options) => {
|
||||
if (!options.isServer) {
|
||||
config.resolve.alias['@sentry/node'] = '@sentry/browser'
|
||||
}
|
||||
|
||||
config.plugins.push(
|
||||
new options.webpack.DefinePlugin({
|
||||
'process.env.NEXT_IS_SERVER': JSON.stringify(options.isServer.toString()),
|
||||
})
|
||||
)
|
||||
|
||||
if (
|
||||
SENTRY_DSN &&
|
||||
SENTRY_ORG &&
|
||||
SENTRY_PROJECT &&
|
||||
SENTRY_AUTH_TOKEN &&
|
||||
VERCEL_GIT_COMMIT_SHA &&
|
||||
isProduction
|
||||
) {
|
||||
config.plugins.push(
|
||||
new SentryWebpackPlugin({
|
||||
include: '.next',
|
||||
ignore: ['node_modules'],
|
||||
stripPrefix: ['webpack://_N_E/'],
|
||||
urlPrefix: `~${basePath}/_next`,
|
||||
release: VERCEL_GIT_COMMIT_SHA,
|
||||
authToken: SENTRY_AUTH_TOKEN,
|
||||
org: SENTRY_PROJECT,
|
||||
project: SENTRY_ORG,
|
||||
})
|
||||
)
|
||||
}
|
||||
return config
|
||||
},
|
||||
})
|
||||
)
|
||||
|
|
|
@ -16,6 +16,10 @@
|
|||
"lint": "next lint"
|
||||
},
|
||||
"dependencies": {
|
||||
"@sentry/integrations": "^6.13.2",
|
||||
"@sentry/node": "^6.13.2",
|
||||
"@sentry/react": "^6.13.2",
|
||||
"@sentry/tracing": "^6.13.2",
|
||||
"@stitches/react": "^1.0.0",
|
||||
"@tldraw/tldraw": "^0.0.97",
|
||||
"next": "11.1.2",
|
||||
|
@ -27,6 +31,7 @@
|
|||
"react-dom": "17.0.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@sentry/webpack-plugin": "^1.17.1",
|
||||
"@types/react": "^17.0.19",
|
||||
"@types/react-dom": "^17.0.9",
|
||||
"eslint": "7.32.0",
|
||||
|
|
|
@ -1,6 +1,12 @@
|
|||
import '../styles/globals.css'
|
||||
import { init } from '-utils/sentry'
|
||||
import useGtag from '-utils/useGtag'
|
||||
|
||||
init()
|
||||
|
||||
function MyApp({ Component, pageProps }) {
|
||||
useGtag()
|
||||
|
||||
return <Component {...pageProps} />
|
||||
}
|
||||
|
||||
|
|
|
@ -2,6 +2,10 @@ import NextDocument, { Html, Head, Main, NextScript, DocumentContext } from 'nex
|
|||
import { getCssText } from '../styles'
|
||||
import { GA_TRACKING_ID } from '../utils/gtag'
|
||||
|
||||
const APP_NAME = 'tldraw'
|
||||
const APP_DESCRIPTION = 'A tiny little drawing app.'
|
||||
const APP_URL = 'https://tldraw.com'
|
||||
|
||||
class MyDocument extends NextDocument {
|
||||
static async getInitialProps(ctx: DocumentContext): Promise<{
|
||||
styles: JSX.Element
|
||||
|
@ -28,10 +32,6 @@ class MyDocument extends NextDocument {
|
|||
}
|
||||
|
||||
render(): JSX.Element {
|
||||
const APP_NAME = 'tldraw'
|
||||
const APP_DESCRIPTION = 'A tiny little drawing app.'
|
||||
const APP_URL = 'https://tldraw.com'
|
||||
|
||||
return (
|
||||
<Html lang="en">
|
||||
<Head>
|
||||
|
|
|
@ -10,7 +10,8 @@ type GTagEvent = {
|
|||
|
||||
export const pageview = (url: URL): void => {
|
||||
if ('gtag' in window) {
|
||||
;(window as any)?.gtag('config', GA_TRACKING_ID, {
|
||||
const win = window as any
|
||||
win?.gtag('config', GA_TRACKING_ID, {
|
||||
page_path: url,
|
||||
})
|
||||
}
|
||||
|
@ -18,7 +19,8 @@ export const pageview = (url: URL): void => {
|
|||
|
||||
export const event = ({ action, category, label, value }: GTagEvent): void => {
|
||||
if ('gtag' in window) {
|
||||
;(window as any)?.gtag('event', action, {
|
||||
const win = window as any
|
||||
win?.gtag('event', action, {
|
||||
event_category: category,
|
||||
event_label: label,
|
||||
value: value,
|
||||
|
|
33
packages/www/utils/sentry.ts
Normal file
33
packages/www/utils/sentry.ts
Normal file
|
@ -0,0 +1,33 @@
|
|||
import * as Sentry from '@sentry/node'
|
||||
import { RewriteFrames } from '@sentry/integrations'
|
||||
|
||||
export function init(): void {
|
||||
if (!process.env.NEXT_PUBLIC_SENTRY_DSN) return
|
||||
|
||||
const integrations = []
|
||||
|
||||
if (process.env.NEXT_IS_SERVER === 'true' && process.env.NEXT_PUBLIC_SENTRY_SERVER_ROOT_DIR) {
|
||||
// For Node.js, rewrite Error.stack to use relative paths, so that source
|
||||
// maps starting with ~/_next map to files in Error.stack with path
|
||||
// app:///_next
|
||||
integrations.push(
|
||||
new RewriteFrames({
|
||||
iteratee: (frame) => {
|
||||
frame.filename = frame.filename.replace(
|
||||
process.env.NEXT_PUBLIC_SENTRY_SERVER_ROOT_DIR,
|
||||
'app:///'
|
||||
)
|
||||
frame.filename = frame.filename.replace('.next', '_next')
|
||||
return frame
|
||||
},
|
||||
})
|
||||
)
|
||||
}
|
||||
|
||||
Sentry.init({
|
||||
enabled: process.env.NODE_ENV === 'production',
|
||||
integrations,
|
||||
dsn: process.env.NEXT_PUBLIC_SENTRY_DSN,
|
||||
release: process.env.NEXT_PUBLIC_COMMIT_SHA,
|
||||
})
|
||||
}
|
20
packages/www/utils/useGtag.ts
Normal file
20
packages/www/utils/useGtag.ts
Normal file
|
@ -0,0 +1,20 @@
|
|||
/* eslint-disable @typescript-eslint/explicit-module-boundary-types */
|
||||
import router from 'next/router'
|
||||
import { useEffect } from 'react'
|
||||
import * as gtag from 'utils/gtag'
|
||||
|
||||
function handleRouteChange(url: URL) {
|
||||
gtag.pageview(url)
|
||||
}
|
||||
|
||||
export default function useGtag() {
|
||||
useEffect(() => {
|
||||
if (process.env.NODE_ENV !== 'production') return
|
||||
|
||||
router.events.on('routeChangeComplete', handleRouteChange)
|
||||
|
||||
return () => {
|
||||
router.events.off('routeChangeComplete', handleRouteChange)
|
||||
}
|
||||
}, [])
|
||||
}
|
182
yarn.lock
182
yarn.lock
|
@ -3557,6 +3557,125 @@
|
|||
resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.0.6.tgz#023d72a5c4531b4ce204528971700a78a85a0c50"
|
||||
integrity sha512-Myxw//kzromB9yWgS8qYGuGVf91oBUUJpNvy5eM50sqvmKLbKjwLxohJnkWGTeeI9v9IBMtPLxz5Gc60FIfvCA==
|
||||
|
||||
"@sentry/browser@6.13.2":
|
||||
version "6.13.2"
|
||||
resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-6.13.2.tgz#8b731ecf8c3cdd92a4b6893a26f975fd5844056d"
|
||||
integrity sha512-bkFXK4vAp2UX/4rQY0pj2Iky55Gnwr79CtveoeeMshoLy5iDgZ8gvnLNAz7om4B9OQk1u7NzLEa4IXAmHTUyag==
|
||||
dependencies:
|
||||
"@sentry/core" "6.13.2"
|
||||
"@sentry/types" "6.13.2"
|
||||
"@sentry/utils" "6.13.2"
|
||||
tslib "^1.9.3"
|
||||
|
||||
"@sentry/cli@^1.68.0":
|
||||
version "1.68.0"
|
||||
resolved "https://registry.yarnpkg.com/@sentry/cli/-/cli-1.68.0.tgz#2ced8fac67ee01e746a45e8ee45a518d4526937e"
|
||||
integrity sha512-zc7+cxKDqpHLREGJKRH6KwE8fZW8bnczg3OLibJ0czleXoWPdAuOK1Xm1BTMcOnaXfg3VKAh0rI7S1PTdj+SrQ==
|
||||
dependencies:
|
||||
https-proxy-agent "^5.0.0"
|
||||
mkdirp "^0.5.5"
|
||||
node-fetch "^2.6.0"
|
||||
npmlog "^4.1.2"
|
||||
progress "^2.0.3"
|
||||
proxy-from-env "^1.1.0"
|
||||
|
||||
"@sentry/core@6.13.2":
|
||||
version "6.13.2"
|
||||
resolved "https://registry.yarnpkg.com/@sentry/core/-/core-6.13.2.tgz#2ce164f81667aa89cd116f807d772b4718434583"
|
||||
integrity sha512-snXNNFLwlS7yYxKTX4DBXebvJK+6ikBWN6noQ1CHowvM3ReFBlrdrs0Z0SsSFEzXm2S4q7f6HHbm66GSQZ/8FQ==
|
||||
dependencies:
|
||||
"@sentry/hub" "6.13.2"
|
||||
"@sentry/minimal" "6.13.2"
|
||||
"@sentry/types" "6.13.2"
|
||||
"@sentry/utils" "6.13.2"
|
||||
tslib "^1.9.3"
|
||||
|
||||
"@sentry/hub@6.13.2":
|
||||
version "6.13.2"
|
||||
resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-6.13.2.tgz#ebc66fd55c96c7686a53ffd3521b6a63f883bb79"
|
||||
integrity sha512-sppSuJdNMiMC/vFm/dQowCBh11uTrmvks00fc190YWgxHshodJwXMdpc+pN61VSOmy2QA4MbQ5aMAgHzPzel3A==
|
||||
dependencies:
|
||||
"@sentry/types" "6.13.2"
|
||||
"@sentry/utils" "6.13.2"
|
||||
tslib "^1.9.3"
|
||||
|
||||
"@sentry/integrations@^6.13.2":
|
||||
version "6.13.2"
|
||||
resolved "https://registry.yarnpkg.com/@sentry/integrations/-/integrations-6.13.2.tgz#906f2dd920439e5886f479a6da57f9c5d928f656"
|
||||
integrity sha512-CzxMtNr4nkZbifD0Rb6tXwqfqm+fWKl4IQTaFrJ92VNdgihBMVWYmflRqkMkGh1iFN8bVPpXrGyplY5tFN+2kA==
|
||||
dependencies:
|
||||
"@sentry/types" "6.13.2"
|
||||
"@sentry/utils" "6.13.2"
|
||||
localforage "^1.8.1"
|
||||
tslib "^1.9.3"
|
||||
|
||||
"@sentry/minimal@6.13.2":
|
||||
version "6.13.2"
|
||||
resolved "https://registry.yarnpkg.com/@sentry/minimal/-/minimal-6.13.2.tgz#de3ecc62b9463bf56ccdbcf4c75f7ea1aeeebc11"
|
||||
integrity sha512-6iJfEvHzzpGBHDfLxSHcGObh73XU1OSQKWjuhDOe7UQDyI4BQmTfcXAC+Fr8sm8C/tIsmpVi/XJhs8cubFdSMw==
|
||||
dependencies:
|
||||
"@sentry/hub" "6.13.2"
|
||||
"@sentry/types" "6.13.2"
|
||||
tslib "^1.9.3"
|
||||
|
||||
"@sentry/node@^6.13.2":
|
||||
version "6.13.2"
|
||||
resolved "https://registry.yarnpkg.com/@sentry/node/-/node-6.13.2.tgz#6f5ee51eacad19b59e6ffb70b2d0e14396fd6233"
|
||||
integrity sha512-0Vw22amG143MTiNaSny66YGU3+uW7HxyGI9TLGE7aJY1nNmC0DE+OgqQYGBRCrrPu+VFXRDxrOg9b15A1gKqjA==
|
||||
dependencies:
|
||||
"@sentry/core" "6.13.2"
|
||||
"@sentry/hub" "6.13.2"
|
||||
"@sentry/tracing" "6.13.2"
|
||||
"@sentry/types" "6.13.2"
|
||||
"@sentry/utils" "6.13.2"
|
||||
cookie "^0.4.1"
|
||||
https-proxy-agent "^5.0.0"
|
||||
lru_map "^0.3.3"
|
||||
tslib "^1.9.3"
|
||||
|
||||
"@sentry/react@^6.13.2":
|
||||
version "6.13.2"
|
||||
resolved "https://registry.yarnpkg.com/@sentry/react/-/react-6.13.2.tgz#481f1549b1509b4d94eb943934ebeba6430a1a8f"
|
||||
integrity sha512-aLkWyn697LTcmK1PPnUg5UJcyBUPoI68motqgBY53SIYDAwOeYNUQt2aanDuOTY5aE2PdnJwU48klA8vuYkoRQ==
|
||||
dependencies:
|
||||
"@sentry/browser" "6.13.2"
|
||||
"@sentry/minimal" "6.13.2"
|
||||
"@sentry/types" "6.13.2"
|
||||
"@sentry/utils" "6.13.2"
|
||||
hoist-non-react-statics "^3.3.2"
|
||||
tslib "^1.9.3"
|
||||
|
||||
"@sentry/tracing@6.13.2", "@sentry/tracing@^6.13.2":
|
||||
version "6.13.2"
|
||||
resolved "https://registry.yarnpkg.com/@sentry/tracing/-/tracing-6.13.2.tgz#512389ba459f48ae75e14f1528ab062dc46e4956"
|
||||
integrity sha512-bHJz+C/nd6biWTNcYAu91JeRilsvVgaye4POkdzWSmD0XoLWHVMrpCQobGpXe7onkp2noU3YQjhqgtBqPHtnpw==
|
||||
dependencies:
|
||||
"@sentry/hub" "6.13.2"
|
||||
"@sentry/minimal" "6.13.2"
|
||||
"@sentry/types" "6.13.2"
|
||||
"@sentry/utils" "6.13.2"
|
||||
tslib "^1.9.3"
|
||||
|
||||
"@sentry/types@6.13.2":
|
||||
version "6.13.2"
|
||||
resolved "https://registry.yarnpkg.com/@sentry/types/-/types-6.13.2.tgz#8388d5b92ea8608936e7aae842801dc90e0184e6"
|
||||
integrity sha512-6WjGj/VjjN8LZDtqJH5ikeB1o39rO1gYS6anBxiS3d0sXNBb3Ux0pNNDFoBxQpOhmdDHXYS57MEptX9EV82gmg==
|
||||
|
||||
"@sentry/utils@6.13.2":
|
||||
version "6.13.2"
|
||||
resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-6.13.2.tgz#fb8010e7b67cc8c084d8067d64ef25289269cda5"
|
||||
integrity sha512-foF4PbxqPMWNbuqdXkdoOmKm3quu3PP7Q7j/0pXkri4DtCuvF/lKY92mbY0V9rHS/phCoj+3/Se5JvM2ymh2/w==
|
||||
dependencies:
|
||||
"@sentry/types" "6.13.2"
|
||||
tslib "^1.9.3"
|
||||
|
||||
"@sentry/webpack-plugin@^1.17.1":
|
||||
version "1.17.1"
|
||||
resolved "https://registry.yarnpkg.com/@sentry/webpack-plugin/-/webpack-plugin-1.17.1.tgz#1b3ebbe9991e4d77125ace2b24594059a088268a"
|
||||
integrity sha512-L47a0hxano4a+9jbvQSBzHCT1Ph8fYAvGGUvFg8qc69yXS9si5lXRNIH/pavN6mqJjhQjAcEsEp+vxgvT4xZDQ==
|
||||
dependencies:
|
||||
"@sentry/cli" "^1.68.0"
|
||||
|
||||
"@sinonjs/commons@^1.7.0":
|
||||
version "1.8.3"
|
||||
resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.3.tgz#3802ddd21a50a949b6721ddd72da36e67e7f1b2d"
|
||||
|
@ -5542,6 +5661,11 @@ convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0:
|
|||
dependencies:
|
||||
safe-buffer "~5.1.1"
|
||||
|
||||
cookie@^0.4.1:
|
||||
version "0.4.1"
|
||||
resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.1.tgz#afd713fe26ebd21ba95ceb61f9a8116e50a537d1"
|
||||
integrity sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==
|
||||
|
||||
copy-concurrently@^1.0.0:
|
||||
version "1.0.5"
|
||||
resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0"
|
||||
|
@ -7428,7 +7552,7 @@ hmac-drbg@^1.0.1:
|
|||
minimalistic-assert "^1.0.0"
|
||||
minimalistic-crypto-utils "^1.0.1"
|
||||
|
||||
hoist-non-react-statics@^3.1.0:
|
||||
hoist-non-react-statics@^3.1.0, hoist-non-react-statics@^3.3.2:
|
||||
version "3.3.2"
|
||||
resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45"
|
||||
integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==
|
||||
|
@ -7604,6 +7728,11 @@ image-size@1.0.0:
|
|||
dependencies:
|
||||
queue "6.0.2"
|
||||
|
||||
immediate@~3.0.5:
|
||||
version "3.0.6"
|
||||
resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b"
|
||||
integrity sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=
|
||||
|
||||
import-fresh@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546"
|
||||
|
@ -8985,6 +9114,13 @@ libnpmpublish@^4.0.0:
|
|||
semver "^7.1.3"
|
||||
ssri "^8.0.1"
|
||||
|
||||
lie@3.1.1:
|
||||
version "3.1.1"
|
||||
resolved "https://registry.yarnpkg.com/lie/-/lie-3.1.1.tgz#9a436b2cc7746ca59de7a41fa469b3efb76bd87e"
|
||||
integrity sha1-mkNrLMd0bKWd56QfpGmz77dr2H4=
|
||||
dependencies:
|
||||
immediate "~3.0.5"
|
||||
|
||||
lines-and-columns@^1.1.6:
|
||||
version "1.1.6"
|
||||
resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00"
|
||||
|
@ -9050,6 +9186,13 @@ loader-utils@^1.4.0:
|
|||
emojis-list "^3.0.0"
|
||||
json5 "^1.0.1"
|
||||
|
||||
localforage@^1.8.1:
|
||||
version "1.10.0"
|
||||
resolved "https://registry.yarnpkg.com/localforage/-/localforage-1.10.0.tgz#5c465dc5f62b2807c3a84c0c6a1b1b3212781dd4"
|
||||
integrity sha512-14/H1aX7hzBBmmh7sGPd+AOMkkIrHM3Z1PAyGgZigA1H1p5O5ANnMyWzvpAETtG68/dC4pC0ncy3+PPGzXZHPg==
|
||||
dependencies:
|
||||
lie "3.1.1"
|
||||
|
||||
locate-path@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e"
|
||||
|
@ -9207,6 +9350,11 @@ lru-cache@^6.0.0:
|
|||
dependencies:
|
||||
yallist "^4.0.0"
|
||||
|
||||
lru_map@^0.3.3:
|
||||
version "0.3.3"
|
||||
resolved "https://registry.yarnpkg.com/lru_map/-/lru_map-0.3.3.tgz#b5c8351b9464cbd750335a79650a0ec0e56118dd"
|
||||
integrity sha1-tcg1G5Rky9dQM1p5ZQoOwOVhGN0=
|
||||
|
||||
lunr@^2.3.9:
|
||||
version "2.3.9"
|
||||
resolved "https://registry.yarnpkg.com/lunr/-/lunr-2.3.9.tgz#18b123142832337dd6e964df1a5a7707b25d35e1"
|
||||
|
@ -9904,6 +10052,13 @@ node-fetch@^2.5.0, node-fetch@^2.6.1:
|
|||
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.2.tgz#986996818b73785e47b1965cc34eb093a1d464d0"
|
||||
integrity sha512-aLoxToI6RfZ+0NOjmWAgn9+LEd30YCkJKFSyWacNZdEKTit/ZMcKjGkTRo8uWEsnIb/hfKecNPEbln02PdWbcA==
|
||||
|
||||
node-fetch@^2.6.0:
|
||||
version "2.6.4"
|
||||
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.4.tgz#7f1d13b8f9ff0c1a994dc6f73c69f7d652c7ace2"
|
||||
integrity sha512-aD1fO+xtLiSCc9vuD+sYMxpIuQyhHscGSkBEo2o5LTV/3bTEAYvdUii29n8LlO5uLCmWdGP7uVUVXFo5SRdkLA==
|
||||
dependencies:
|
||||
whatwg-url "^5.0.0"
|
||||
|
||||
node-gyp@^5.0.2:
|
||||
version "5.1.1"
|
||||
resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-5.1.1.tgz#eb915f7b631c937d282e33aed44cb7a025f62a3e"
|
||||
|
@ -10916,7 +11071,7 @@ process@0.11.10, process@^0.11.10:
|
|||
resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182"
|
||||
integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI=
|
||||
|
||||
progress@^2.0.0:
|
||||
progress@^2.0.0, progress@^2.0.3:
|
||||
version "2.0.3"
|
||||
resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"
|
||||
integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==
|
||||
|
@ -10983,6 +11138,11 @@ protoduck@^5.0.1:
|
|||
dependencies:
|
||||
genfun "^5.0.0"
|
||||
|
||||
proxy-from-env@^1.1.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2"
|
||||
integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==
|
||||
|
||||
psl@^1.1.28, psl@^1.1.33:
|
||||
version "1.8.0"
|
||||
resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24"
|
||||
|
@ -12839,6 +12999,11 @@ tr46@^2.1.0:
|
|||
dependencies:
|
||||
punycode "^2.1.1"
|
||||
|
||||
tr46@~0.0.3:
|
||||
version "0.0.3"
|
||||
resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a"
|
||||
integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=
|
||||
|
||||
tree-kill@^1.2.2:
|
||||
version "1.2.2"
|
||||
resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc"
|
||||
|
@ -13388,6 +13553,11 @@ wcwidth@^1.0.0:
|
|||
dependencies:
|
||||
defaults "^1.0.3"
|
||||
|
||||
webidl-conversions@^3.0.0:
|
||||
version "3.0.1"
|
||||
resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871"
|
||||
integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=
|
||||
|
||||
webidl-conversions@^4.0.2:
|
||||
version "4.0.2"
|
||||
resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad"
|
||||
|
@ -13423,6 +13593,14 @@ whatwg-mimetype@^2.3.0:
|
|||
resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf"
|
||||
integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==
|
||||
|
||||
whatwg-url@^5.0.0:
|
||||
version "5.0.0"
|
||||
resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d"
|
||||
integrity sha1-lmRU6HZUYuN2RNNib2dCzotwll0=
|
||||
dependencies:
|
||||
tr46 "~0.0.3"
|
||||
webidl-conversions "^3.0.0"
|
||||
|
||||
whatwg-url@^7.0.0:
|
||||
version "7.1.0"
|
||||
resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06"
|
||||
|
|
Loading…
Reference in a new issue