diff --git a/apps/formbricks-com/components/shared/PmfDummy.tsx b/apps/formbricks-com/components/shared/PmfDummy.tsx new file mode 100644 index 0000000000..2ca4844b93 --- /dev/null +++ b/apps/formbricks-com/components/shared/PmfDummy.tsx @@ -0,0 +1,30 @@ +import { useEffect, useRef, useState } from "react"; +import clsx from "clsx"; + +declare global { + interface Window { + formbricksPmf: any; + } +} + +export default function PmfDummy() { + useEffect(() => { + window.formbricksPmf = { + ...window.formbricksPmf, + config: { + formbricksUrl: "https://app.formbricks.com", + formId: "cldetkpre0000nr0hku986hio", + containerId: "formbricks", + customer: { + id: "blog@formbricks.com", + name: "Blog Submissions", + email: "blog@formbricks.com", + }, + }, + }; + require("@formbricks/pmf"); + window.formbricksPmf.init(); + }, []); + + return
; +} diff --git a/apps/formbricks-com/package.json b/apps/formbricks-com/package.json index 8131700b6b..16c4e112ec 100644 --- a/apps/formbricks-com/package.json +++ b/apps/formbricks-com/package.json @@ -10,9 +10,10 @@ "lint": "next lint" }, "dependencies": { - "@formbricks/ui": "workspace:*", "@docsearch/react": "^3.3.0", + "@formbricks/pmf": "workspace:*", "@formbricks/react": "workspace:*", + "@formbricks/ui": "workspace:*", "@headlessui/react": "^1.7.3", "@heroicons/react": "^2.0.13", "@mapbox/rehype-prism": "^0.8.0", @@ -30,7 +31,8 @@ "react-dom": "18.2.0", "react-hook-form": "^7.39.1", "react-responsive-embed": "^2.1.0", - "remark-gfm": "^3.0.1" + "remark-gfm": "^3.0.1", + "sharp": "^0.31.3" }, "devDependencies": { "@tailwindcss/forms": "^0.5.3", diff --git a/apps/formbricks-com/pages/blog/weekly-update-270123/index.mdx b/apps/formbricks-com/pages/blog/weekly-update-270123/index.mdx new file mode 100644 index 0000000000..d4618247d2 --- /dev/null +++ b/apps/formbricks-com/pages/blog/weekly-update-270123/index.mdx @@ -0,0 +1,68 @@ +import Image from "next/image"; +import LayoutMdx from "@/components/shared/LayoutMdx"; +import NewsletterSignup from "@/components/shared/NewsletterSignup"; +import HeaderImage from "../weekly-update-181122/weeklyupdate.png"; +import HeroAnimation from "@/components/shared/HeroAnimation"; +import PmfDummy from "@/components/shared/pmfDummy"; + +import PMFDashboard from "./pmf-dashboard.png"; +import Waitlist from "./waitlist-cr.png"; + +export const meta = { + title: "Weekly Summary - 27th Jan 2023", + description: + "Great landing page conversion, PMF survey in beta testing and encouraging insights from interviews 👇", + date: "2023-01-27", +}; + +_January is almost over - time flies. What happened this week? Great landing page conversion, PMF survey in beta testing and encouraging insights from interviews 👇_ + +Weekly Update + +## TLDR + +- 14,5% conversion rate on landing page -> waitlist 🤸 +- 90 quality leads collected 👀 +- PMF survey widget in vanilla JS shipped 🚢 +- PMF dashboard incl. filtering shipped 🚢 +- Stumbled over 2 custom-built micro-surveying solution in the wilderness + +## Landing page & waitlist work great + +Last Friday we shipped our new landing page. Since then we had 1.4k unique visitors on our page of which 203 clicked through to our waitlist form (14.5%). We are quite satisfied with the conversion rate and were able to gather 90 leads incl. email this week. + +Weekly Update + +Our waitlsit survey is quite extensive and gives us a lot of insight on which of the Best Practices we list on the landing page are demanded most. The waitlist is also cool because: + +- **Allows us to pre-segment people we talk to in person** +- **The information informs decision process on what to build next** +- **We started using our own product daily which is super insightful** + +## Product-Market Fit survey in testing + +We’ve built the PMF survey as well as the according dashboard to analyze the results. It’s not yet publicly available as we are still testing edge cases. Similar to the Feedback Box it can be styled, sends partial submissions and can be triggered on click or if a condition is true. + + + +**Key for running the PMF survey correctly is pre-segmentation** (asking only the right subset of the user base). So far, this requires a bit of custom-coding but the processing by the widget works great! + +Weekly Update + +We desinged the dashboard specifically for the PMF survey. All other tools only offer a generic dashboard. Some **founders and PMs built custom dashboards in Google Sheets or Excel** to properly understand the data and share the insights with the team. + +What's really cool is the interactivtiy. Key to the PMF method by Superhuman is to identify the segment in which the "very disappointed" score is the highest. We make this really easy. **We have also played around with GPT to make this smooth and continuous.** Mattis extensive experience with ML will come in super handy down the line :) + +## Ongoing convos with PMs and founders + +We keep talking to product managers and founders from our extended network. Additionally, the On Deck directory and Polywork have been a valuable source to find impressively skilled people to talk to. The cool part? + +This week we talked to two people who are custom-building a micro-surveying tool to gather feedback from users in-app. In the first case, 3rd-party SaaS wasn’t an option due to compliance issues. In the other, the needs are too specific for one of the general purpose NPS tools out there. + +A **self-hostable and freely customizable soultion** would saved both teams **days of developer attention 👀** + +### #opensourceFTW + + + +export default ({ children }) => {children}; diff --git a/apps/formbricks-com/pages/blog/weekly-update-270123/pmf-dashboard.png b/apps/formbricks-com/pages/blog/weekly-update-270123/pmf-dashboard.png new file mode 100644 index 0000000000..e8bc4000f2 Binary files /dev/null and b/apps/formbricks-com/pages/blog/weekly-update-270123/pmf-dashboard.png differ diff --git a/apps/formbricks-com/pages/blog/weekly-update-270123/waitlist-cr.png b/apps/formbricks-com/pages/blog/weekly-update-270123/waitlist-cr.png new file mode 100644 index 0000000000..b794660209 Binary files /dev/null and b/apps/formbricks-com/pages/blog/weekly-update-270123/waitlist-cr.png differ diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 712167f304..8b8d23829b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -64,6 +64,7 @@ importers: apps/formbricks-com: specifiers: '@docsearch/react': ^3.3.0 + '@formbricks/pmf': workspace:* '@formbricks/react': workspace:* '@formbricks/ui': workspace:* '@headlessui/react': ^1.7.3 @@ -93,10 +94,12 @@ importers: react-hook-form: ^7.39.1 react-responsive-embed: ^2.1.0 remark-gfm: ^3.0.1 + sharp: ^0.31.3 tailwindcss: ^3.2.1 typescript: 4.8.4 dependencies: '@docsearch/react': 3.3.0_4mdvn5gl4vbbvabne2xxb7fpaa + '@formbricks/pmf': link:../../packages/pmfWidget '@formbricks/react': link:../../packages/react '@formbricks/ui': link:../../packages/ui '@headlessui/react': 1.7.4_biqbaboplfbrettd7655fr4n2y @@ -117,6 +120,7 @@ importers: react-hook-form: 7.40.0_react@18.2.0 react-responsive-embed: 2.1.0_sh5qlbywuemxd2y3xkrw2y2kr4 remark-gfm: 3.0.1 + sharp: 0.31.3 devDependencies: '@tailwindcss/forms': 0.5.3_tailwindcss@3.2.4 '@tailwindcss/typography': 0.5.8_tailwindcss@3.2.4 @@ -6575,7 +6579,6 @@ packages: /base64-js/1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - dev: true /bcryptjs/2.4.3: resolution: {integrity: sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ==} @@ -6629,7 +6632,6 @@ packages: buffer: 5.7.1 inherits: 2.0.4 readable-stream: 3.6.0 - dev: true /bluebird/3.7.2: resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} @@ -6880,7 +6882,6 @@ packages: dependencies: base64-js: 1.5.1 ieee754: 1.2.1 - dev: true /builtin-modules/3.3.0: resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} @@ -7261,7 +7262,6 @@ packages: /chownr/1.1.4: resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} - dev: true /chownr/2.0.0: resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} @@ -7473,11 +7473,26 @@ packages: /color-name/1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + /color-string/1.9.1: + resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} + dependencies: + color-name: 1.1.4 + simple-swizzle: 0.2.2 + dev: false + /color-support/1.1.3: resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} hasBin: true dev: true + /color/4.2.3: + resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} + engines: {node: '>=12.5.0'} + dependencies: + color-convert: 2.0.1 + color-string: 1.9.1 + dev: false + /colord/2.9.3: resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} dev: true @@ -8170,6 +8185,13 @@ packages: mimic-response: 1.0.1 dev: false + /decompress-response/6.0.0: + resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} + engines: {node: '>=10'} + dependencies: + mimic-response: 3.1.0 + dev: false + /dedent/0.7.0: resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==} dev: true @@ -8298,6 +8320,11 @@ packages: resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} engines: {node: '>=8'} + /detect-libc/2.0.1: + resolution: {integrity: sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==} + engines: {node: '>=8'} + dev: false + /detect-package-manager/2.0.1: resolution: {integrity: sha512-j/lJHyoLlWi6G1LDdLgvUtz60Zo5GEj+sVYtTVXnYLDPuzgC3llMxonXym9zIwhhUII8vjdw0LXxavpLqTbl1A==} engines: {node: '>=12'} @@ -9571,6 +9598,11 @@ packages: - supports-color dev: true + /expand-template/2.0.3: + resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} + engines: {node: '>=6'} + dev: false + /express/4.18.2: resolution: {integrity: sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==} engines: {node: '>= 0.10.0'} @@ -10011,7 +10043,6 @@ packages: /fs-constants/1.0.0: resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} - dev: true /fs-exists-sync/0.1.0: resolution: {integrity: sha512-cR/vflFyPZtrN6b38ZyWxpWdhlXrzZEBawlpBQMq7033xVY7/kg0GDMBK5jg8lDYQckdJ5x/YC88lM3C7VMsLg==} @@ -10236,6 +10267,10 @@ packages: remote-origin-url: 1.0.0 dev: false + /github-from-package/0.0.0: + resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==} + dev: false + /github-slugger/1.5.0: resolution: {integrity: sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==} dev: true @@ -10889,7 +10924,6 @@ packages: /ieee754/1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - dev: true /iferr/0.1.5: resolution: {integrity: sha512-DUNFN5j7Tln0D+TxzloUjKB+CtVu6myn0JEFak6dG18mNt9YkQ6lzGCdafwofISZ1lLF3xRHJ98VKy9ynkcFaA==} @@ -11083,6 +11117,10 @@ packages: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} dev: true + /is-arrayish/0.3.2: + resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} + dev: false + /is-bigint/1.0.4: resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} dependencies: @@ -13062,6 +13100,11 @@ packages: engines: {node: '>=4'} dev: false + /mimic-response/3.1.0: + resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} + engines: {node: '>=10'} + dev: false + /min-document/2.19.0: resolution: {integrity: sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==} dependencies: @@ -13173,6 +13216,10 @@ packages: engines: {node: '>= 8.0.0'} dev: true + /mkdirp-classic/0.5.3: + resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} + dev: false + /mkdirp/0.5.6: resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} hasBin: true @@ -13305,6 +13352,10 @@ packages: - supports-color dev: true + /napi-build-utils/1.0.2: + resolution: {integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==} + dev: false + /natural-compare/1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} @@ -13616,6 +13667,17 @@ packages: tslib: 2.4.1 dev: true + /node-abi/3.31.0: + resolution: {integrity: sha512-eSKV6s+APenqVh8ubJyiu/YhZgxQpGP66ntzUb3lY1xB9ukSRaGnx0AIxI+IM+1+IVYC1oWobgG5L3Lt9ARykQ==} + engines: {node: '>=10'} + dependencies: + semver: 7.3.8 + dev: false + + /node-addon-api/5.1.0: + resolution: {integrity: sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==} + dev: false + /node-dir/0.1.17: resolution: {integrity: sha512-tmPX422rYgofd4epzrNoOXiE8XFZYOcCq1vD7MAXCDO+O+zndlA2ztdKKMa+EeuBG5tHETpr4ml4RGgpqDCCAg==} engines: {node: '>= 0.10.5'} @@ -14983,6 +15045,25 @@ packages: resolution: {integrity: sha512-eY93IVpod/zG3uMF22Unl8h9KkrcKIRs2EGar8hwLZZDU1lkjph303V9HZBwufh2s736U6VXuhD109LYqPoffg==} dev: false + /prebuild-install/7.1.1: + resolution: {integrity: sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==} + engines: {node: '>=10'} + hasBin: true + dependencies: + detect-libc: 2.0.1 + expand-template: 2.0.3 + github-from-package: 0.0.0 + minimist: 1.2.7 + mkdirp-classic: 0.5.3 + napi-build-utils: 1.0.2 + node-abi: 3.31.0 + pump: 3.0.0 + rc: 1.2.8 + simple-get: 4.0.1 + tar-fs: 2.1.1 + tunnel-agent: 0.6.0 + dev: false + /preferred-pm/3.0.3: resolution: {integrity: sha512-+wZgbxNES/KlJs9q40F/1sfOd/j7f1O9JaHcW5Dsn3aUUOZg3L2bjpVUcKV2jvtElYfoTuQiNeMfQJ4kwUAhCQ==} engines: {node: '>=10'} @@ -15609,7 +15690,6 @@ packages: inherits: 2.0.4 string_decoder: 1.3.0 util-deprecate: 1.0.2 - dev: true /readdir-glob/1.1.2: resolution: {integrity: sha512-6RLVvwJtVwEDfPdn6X6Ille4/lxGl0ATOY4FN/B9nxQcgOazvvI0nodiD19ScKq0PvA/29VpaOQML36o5IzZWA==} @@ -16470,6 +16550,21 @@ packages: resolution: {integrity: sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==} dev: false + /sharp/0.31.3: + resolution: {integrity: sha512-XcR4+FCLBFKw1bdB+GEhnUNXNXvnt0tDo4WsBsraKymuo/IAuPuCBVAL2wIkUw2r/dwFW5Q5+g66Kwl2dgDFVg==} + engines: {node: '>=14.15.0'} + requiresBuild: true + dependencies: + color: 4.2.3 + detect-libc: 2.0.1 + node-addon-api: 5.1.0 + prebuild-install: 7.1.1 + semver: 7.3.8 + simple-get: 4.0.1 + tar-fs: 2.1.1 + tunnel-agent: 0.6.0 + dev: false + /shebang-command/1.2.0: resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} engines: {node: '>=0.10.0'} @@ -16508,6 +16603,24 @@ packages: /signal-exit/3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + /simple-concat/1.0.1: + resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==} + dev: false + + /simple-get/4.0.1: + resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==} + dependencies: + decompress-response: 6.0.0 + once: 1.4.0 + simple-concat: 1.0.1 + dev: false + + /simple-swizzle/0.2.2: + resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} + dependencies: + is-arrayish: 0.3.2 + dev: false + /sisteransi/1.0.5: resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} dev: true @@ -16880,7 +16993,6 @@ packages: resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} dependencies: safe-buffer: 5.2.1 - dev: true /stringify-entities/4.0.3: resolution: {integrity: sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g==} @@ -17269,6 +17381,15 @@ packages: resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} engines: {node: '>=6'} + /tar-fs/2.1.1: + resolution: {integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==} + dependencies: + chownr: 1.1.4 + mkdirp-classic: 0.5.3 + pump: 3.0.0 + tar-stream: 2.2.0 + dev: false + /tar-stream/2.2.0: resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} engines: {node: '>=6'} @@ -17278,7 +17399,6 @@ packages: fs-constants: 1.0.0 inherits: 2.0.4 readable-stream: 3.6.0 - dev: true /tar/6.1.12: resolution: {integrity: sha512-jU4TdemS31uABHd+Lt5WEYJuzn+TJTCBLljvIAHZOz6M9Os5pJ4dD+vRFLxPa/n3T0iEFzpi+0x1UfuDZYbRMw==} @@ -17882,6 +18002,12 @@ packages: yargs: 17.6.2 dev: true + /tunnel-agent/0.6.0: + resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} + dependencies: + safe-buffer: 5.2.1 + dev: false + /turbo-darwin-64/1.7.0: resolution: {integrity: sha512-hSGAueSf5Ko8J67mpqjpt9FsP6ePn1nMcl7IVPoJq5dHsgX3anCP/BPlexJ502bNK+87DDyhQhJ/LPSJXKrSYQ==} cpu: [x64]