diff --git a/gatsby-node.ts b/gatsby-node.ts
index c02c9c75..9bcb1216 100644
--- a/gatsby-node.ts
+++ b/gatsby-node.ts
@@ -3,7 +3,6 @@ import path from "path";
import { formatInTimeZone } from "date-fns-tz";
-import { createOgpImage } from "./src/utils/createOgpImage";
import { fetchLaprasActivity } from "./src/utils/fetchLaprasActivity";
import { isDefined } from "./src/utils/typeguard";
@@ -129,7 +128,6 @@ export const createPages: GatsbyNode["createPages"] = async ({
/**
* Add Search nodes
- * Create OGP images
*/
export const createPagesStatefully: GatsbyNode["createPagesStatefully"] =
async ({ graphql, reporter, actions, createNodeId, createContentDigest }) => {
@@ -257,29 +255,6 @@ export const createPagesStatefully: GatsbyNode["createPagesStatefully"] =
reporter.success(
`onCreatePagesStatefully: Created ${timelineList.length} search nodes`,
);
-
- /**
- * Create OGP images
- */
-
- const blogPostList = result?.data?.blogPosts?.nodes.map((node) => ({
- title: node.frontmatter.title,
- slug: node.frontmatter.slug,
- excerpt: node.frontmatter.excerpt,
- }));
-
- if (!isDefined(blogPostList)) throw new Error("blogPostList is undefined");
-
- for (const blogPost of blogPostList) {
- await createOgpImage({
- title: blogPost.title,
- slug: blogPost.slug,
- });
- }
-
- reporter.success(
- `onCreatePagesStatefully: Created ${blogPostList.length} blog ogp images`,
- );
};
/**
diff --git a/package.json b/package.json
index 4b5caee2..366f043f 100644
--- a/package.json
+++ b/package.json
@@ -67,7 +67,6 @@
"@types/react-dom": "18.2.19",
"@typescript-eslint/eslint-plugin": "7.0.2",
"@typescript-eslint/parser": "7.0.2",
- "canvas": "2.11.2",
"dotenv": "16.4.5",
"eslint": "8.57.0",
"eslint-config-prettier": "9.1.0",
diff --git a/src/layouts/HeadTemplate.tsx b/src/layouts/HeadTemplate.tsx
index be2e4c4a..083c7160 100644
--- a/src/layouts/HeadTemplate.tsx
+++ b/src/layouts/HeadTemplate.tsx
@@ -121,7 +121,7 @@ export const HeadTemplate = (props: {
-
+
diff --git a/src/pages/outputs.tsx b/src/pages/outputs.tsx
index 86dfd290..de0ef358 100644
--- a/src/pages/outputs.tsx
+++ b/src/pages/outputs.tsx
@@ -68,10 +68,7 @@ export const Head: HeadFC = ({ location, data }) => {
...outputsItems.map((item) => ({
"@type": "BlogPosting",
headline: item.title,
- image:
- item.__typename === "Mdx"
- ? `${SITE_METADATA.siteUrl}/ogp/${item.slug}.png`
- : SITE_METADATA.logoImage,
+ image: SITE_METADATA.logoImage,
datePublished: item.date,
author: {
"@type": "Person",
diff --git a/src/templates/BlogPost.tsx b/src/templates/BlogPost.tsx
index 163a5e04..4c910094 100644
--- a/src/templates/BlogPost.tsx
+++ b/src/templates/BlogPost.tsx
@@ -63,7 +63,7 @@ export const Head: HeadFC = ({ location, data }) => {
location={location}
title={title}
description={post.frontmatter.excerpt}
- image={`${SITE_METADATA.siteUrl}/ogp/${post.frontmatter.slug}.png`}
+ image={SITE_METADATA.logoImage}
imageAlt={SITE_METADATA.title}
type="article"
/>
@@ -85,9 +85,7 @@ export const Head: HeadFC = ({ location, data }) => {
"@context": "https://schema.org",
"@type": "BlogPosting",
headline: title,
- image: [
- `${SITE_METADATA.siteUrl}/ogp/${post.frontmatter.slug}.png`,
- ],
+ image: [SITE_METADATA.logoImage],
datePublished: post.frontmatter.date,
dateModified: post.frontmatter.updateDate,
dateCreated: post.frontmatter.date,
diff --git a/src/utils/createOgpImage/UDGothic/Bold.ttf b/src/utils/createOgpImage/UDGothic/Bold.ttf
deleted file mode 100644
index ae6dc1f7..00000000
Binary files a/src/utils/createOgpImage/UDGothic/Bold.ttf and /dev/null differ
diff --git a/src/utils/createOgpImage/UDGothic/LICENSE b/src/utils/createOgpImage/UDGothic/LICENSE
deleted file mode 100644
index da83fec6..00000000
--- a/src/utils/createOgpImage/UDGothic/LICENSE
+++ /dev/null
@@ -1,93 +0,0 @@
-Copyright 2022 The BIZ UDGothic Project Authors (https://github.com/googlefonts/morisawa-biz-ud-mincho)
-
-This Font Software is licensed under the SIL Open Font License, Version 1.1.
-This license is copied below, and is also available with a FAQ at:
-http://scripts.sil.org/OFL
-
-
------------------------------------------------------------
-SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
------------------------------------------------------------
-
-PREAMBLE
-The goals of the Open Font License (OFL) are to stimulate worldwide
-development of collaborative font projects, to support the font creation
-efforts of academic and linguistic communities, and to provide a free and
-open framework in which fonts may be shared and improved in partnership
-with others.
-
-The OFL allows the licensed fonts to be used, studied, modified and
-redistributed freely as long as they are not sold by themselves. The
-fonts, including any derivative works, can be bundled, embedded,
-redistributed and/or sold with any software provided that any reserved
-names are not used by derivative works. The fonts and derivatives,
-however, cannot be released under any other type of license. The
-requirement for fonts to remain under this license does not apply
-to any document created using the fonts or their derivatives.
-
-DEFINITIONS
-"Font Software" refers to the set of files released by the Copyright
-Holder(s) under this license and clearly marked as such. This may
-include source files, build scripts and documentation.
-
-"Reserved Font Name" refers to any names specified as such after the
-copyright statement(s).
-
-"Original Version" refers to the collection of Font Software components as
-distributed by the Copyright Holder(s).
-
-"Modified Version" refers to any derivative made by adding to, deleting,
-or substituting -- in part or in whole -- any of the components of the
-Original Version, by changing formats or by porting the Font Software to a
-new environment.
-
-"Author" refers to any designer, engineer, programmer, technical
-writer or other person who contributed to the Font Software.
-
-PERMISSION & CONDITIONS
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of the Font Software, to use, study, copy, merge, embed, modify,
-redistribute, and sell modified and unmodified copies of the Font
-Software, subject to the following conditions:
-
-1) Neither the Font Software nor any of its individual components,
-in Original or Modified Versions, may be sold by itself.
-
-2) Original or Modified Versions of the Font Software may be bundled,
-redistributed and/or sold with any software, provided that each copy
-contains the above copyright notice and this license. These can be
-included either as stand-alone text files, human-readable headers or
-in the appropriate machine-readable metadata fields within text or
-binary files as long as those fields can be easily viewed by the user.
-
-3) No Modified Version of the Font Software may use the Reserved Font
-Name(s) unless explicit written permission is granted by the corresponding
-Copyright Holder. This restriction only applies to the primary font name as
-presented to the users.
-
-4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
-Software shall not be used to promote, endorse or advertise any
-Modified Version, except to acknowledge the contribution(s) of the
-Copyright Holder(s) and the Author(s) or with their explicit written
-permission.
-
-5) The Font Software, modified or unmodified, in part or in whole,
-must be distributed entirely under this license, and must not be
-distributed under any other license. The requirement for fonts to
-remain under this license does not apply to any document created
-using the Font Software.
-
-TERMINATION
-This license becomes null and void if any of the above conditions are
-not met.
-
-DISCLAIMER
-THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
-OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
-COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
-DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
-OTHER DEALINGS IN THE FONT SOFTWARE.
diff --git a/src/utils/createOgpImage/UDGothic/Regular.ttf b/src/utils/createOgpImage/UDGothic/Regular.ttf
deleted file mode 100644
index 9a3f215a..00000000
Binary files a/src/utils/createOgpImage/UDGothic/Regular.ttf and /dev/null differ
diff --git a/src/utils/createOgpImage/background.png b/src/utils/createOgpImage/background.png
deleted file mode 100644
index 2cb5c7f2..00000000
Binary files a/src/utils/createOgpImage/background.png and /dev/null differ
diff --git a/src/utils/createOgpImage/calculateTextPositionIntoRectangle.ts b/src/utils/createOgpImage/calculateTextPositionIntoRectangle.ts
deleted file mode 100644
index c3253e89..00000000
--- a/src/utils/createOgpImage/calculateTextPositionIntoRectangle.ts
+++ /dev/null
@@ -1,89 +0,0 @@
-/**
- * Calculate text positions to draw texts into rectangle
- *
- * forked from https://github.com/kentaro-m/catchy-image/blob/6eb20df1bc1f9042c9e229f7f6e1100f90bb538f/src/index.js
- * MIT License Copyright (c) 2020 Kentaro Matsushita
- */
-
-import { isDefined } from "../typeguard";
-
-import type { CanvasRenderingContext2D } from "canvas";
-
-export const calculateTextPositionIntoRectangle = ({
- ctx,
- text,
- paddingTop,
- paddingLeft,
- font,
- width,
- height,
-}: {
- ctx: CanvasRenderingContext2D;
- text: string;
- paddingTop: number;
- paddingLeft: number;
- font: string;
- width: number;
- height: number;
-}): {
- lines: Array<{
- y: number;
- text: string;
- x: number;
- }>;
-} => {
- const lines: Array<{ text: string; x: number; y: number }> = [];
- ctx.font = font;
-
- let words: string[] = [...text];
- let top = paddingTop;
-
- while (words.length > 0) {
- let i: number | undefined;
- let slicedText: string | undefined;
- let textSize: TextMetrics | undefined;
-
- for (i = words.length; i >= 0; i -= 1) {
- slicedText = words.slice(0, i).join("");
- textSize = ctx.measureText(slicedText);
-
- if (textSize.width <= width) {
- break;
- }
- }
-
- if (!isDefined(i) || !isDefined(slicedText) || !isDefined(textSize)) {
- throw new Error("Title is not provided.");
- }
-
- const lineHeight =
- (textSize.actualBoundingBoxAscent + textSize.actualBoundingBoxDescent) *
- 1.2;
-
- lines.push({
- text: slicedText,
- x: paddingLeft,
- y: top + lineHeight,
- });
-
- words = words.slice(i);
- top += lineHeight;
- }
-
- const space = paddingTop + height - top;
- if (words.length === 0 && space >= 0) {
- const centeredLines = lines.map((line) => {
- return {
- ...line,
- y: line.y + space / 2,
- };
- });
- return {
- lines: centeredLines,
- };
- }
-
- throw new Error(
- "Failed draw title into a rectangle. Shorten title and retry.",
- );
-};
diff --git a/src/utils/createOgpImage/generateImage.ts b/src/utils/createOgpImage/generateImage.ts
deleted file mode 100644
index 5af37a2c..00000000
--- a/src/utils/createOgpImage/generateImage.ts
+++ /dev/null
@@ -1,135 +0,0 @@
-/**
- * forked from https://github.com/kentaro-m/catchy-image/blob/6eb20df1bc1f9042c9e229f7f6e1100f90bb538f/src/index.js
- * MIT License Copyright (c) 2020 Kentaro Matsushita
- */
-
-import { promises as fs } from "fs";
-import path from "path";
-
-import { createCanvas, registerFont, Image } from "canvas";
-
-import { SITE_METADATA } from "../../constants/SITE_METADATA";
-
-import { calculateTextPositionIntoRectangle } from "./calculateTextPositionIntoRectangle";
-
-const IMAGE_WIDTH = 1200;
-const IMAGE_HEIGHT = 630;
-
-const PADDING_TOP = 90;
-const PADDING_RIGHT = 190;
-const PADDING_BOTTOM = 200;
-const PADDING_LEFT = 200;
-
-const ICON_WIDTH = 80;
-const ICON_HEIGHT = 80;
-const ICON_PADDING_RIGHT = 20;
-const ICON_PADDING_BOTTOM = 90;
-
-const ROOT_DIR = path.resolve(__dirname, "..", "..", "..");
-const STATIC_DIR = path.resolve(ROOT_DIR, "static");
-const OUTPUT_DIR = path.resolve(STATIC_DIR, "ogp");
-
-const FONT_FAMILY = "UDGothic";
-const FONT_FILES = [
- {
- path: path.resolve(__dirname, FONT_FAMILY, "Bold.ttf"),
- family: FONT_FAMILY,
- weight: "bold",
- },
- {
- path: path.resolve(__dirname, FONT_FAMILY, "Regular.ttf"),
- family: FONT_FAMILY,
- weight: "400",
- },
-];
-
-const STYLES = {
- bold: {
- font: `bold 60px "${FONT_FAMILY}"`,
- fontColor: "rgba(0, 0, 0, 0.87)",
- },
- regular: {
- font: `400 40px "${FONT_FAMILY}"`,
- fontColor: "rgba(0, 0, 0, 0.65)",
- },
-};
-
-const ICON_FILE = path.resolve(STATIC_DIR, "android-chrome-512x512.png");
-const BACKGROUND_IMAGE_FILE = path.resolve(__dirname, "background.png");
-
-const AUTHOR_TEXT = `${SITE_METADATA.lastName} ${SITE_METADATA.firstName} (@${SITE_METADATA.author})`;
-
-interface GenerateImageOptions {
- fileName: string;
- title: string;
-}
-
-/**
- * Generate Open Graph images.
- */
-export const generateImage = async ({
- fileName,
- title,
-}: GenerateImageOptions): Promise => {
- // RegisterFont
- FONT_FILES.forEach(({ path, family, weight }) => {
- registerFont(path, {
- family,
- weight,
- });
- });
-
- // Create canvas
- const canvas = createCanvas(IMAGE_WIDTH, IMAGE_HEIGHT);
- const ctx = canvas.getContext("2d");
-
- // Draw a background
- ctx.fillRect(0, 0, IMAGE_WIDTH, IMAGE_HEIGHT);
-
- const imageFile = await fs.readFile(BACKGROUND_IMAGE_FILE);
- const image = new Image();
- image.src = imageFile;
- ctx.drawImage(image, 0, 0, IMAGE_WIDTH, IMAGE_HEIGHT);
-
- // Draw title texts
- const { lines } = calculateTextPositionIntoRectangle({
- ctx,
- text: title,
- paddingTop: PADDING_TOP,
- paddingLeft: PADDING_LEFT,
- font: STYLES.bold.font,
- width: IMAGE_WIDTH - PADDING_LEFT - PADDING_RIGHT,
- height: IMAGE_HEIGHT - PADDING_TOP - PADDING_BOTTOM,
- });
-
- lines.forEach(({ text, x, y }) => {
- ctx.fillStyle = STYLES.bold.fontColor;
- ctx.fillText(text, x, y);
- });
-
- // Draw an author text
- ctx.font = STYLES.regular.font;
- ctx.fillStyle = STYLES.regular.fontColor;
- ctx.fillText(
- AUTHOR_TEXT,
- PADDING_LEFT + ICON_WIDTH + ICON_PADDING_RIGHT,
- IMAGE_HEIGHT - ICON_PADDING_BOTTOM - 22,
- );
-
- // Draw a icon
- const iconFile = await fs.readFile(ICON_FILE);
- const icon = new Image();
- icon.src = iconFile;
- ctx.drawImage(
- icon,
- PADDING_LEFT,
- IMAGE_HEIGHT - ICON_PADDING_BOTTOM - ICON_HEIGHT,
- ICON_WIDTH,
- ICON_HEIGHT,
- );
-
- // Write to file
- const buffer = canvas.toBuffer();
- await fs.mkdir(OUTPUT_DIR, { recursive: true });
- await fs.writeFile(path.join(OUTPUT_DIR, fileName), buffer);
-};
diff --git a/src/utils/createOgpImage/index.ts b/src/utils/createOgpImage/index.ts
deleted file mode 100644
index 88ace1f0..00000000
--- a/src/utils/createOgpImage/index.ts
+++ /dev/null
@@ -1,16 +0,0 @@
-import { generateImage } from "./generateImage";
-
-export interface CreateOgpImageProps {
- title: string;
- slug: string;
-}
-
-export const createOgpImage = async ({
- title,
- slug,
-}: CreateOgpImageProps): Promise => {
- await generateImage({
- fileName: `${slug}.png`,
- title,
- });
-};
diff --git a/yarn.lock b/yarn.lock
index eef0070e..457bdc30 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -3077,25 +3077,6 @@ __metadata:
languageName: node
linkType: hard
-"@mapbox/node-pre-gyp@npm:^1.0.0":
- version: 1.0.11
- resolution: "@mapbox/node-pre-gyp@npm:1.0.11"
- dependencies:
- detect-libc: "npm:^2.0.0"
- https-proxy-agent: "npm:^5.0.0"
- make-dir: "npm:^3.1.0"
- node-fetch: "npm:^2.6.7"
- nopt: "npm:^5.0.0"
- npmlog: "npm:^5.0.1"
- rimraf: "npm:^3.0.2"
- semver: "npm:^7.3.5"
- tar: "npm:^6.1.11"
- bin:
- node-pre-gyp: bin/node-pre-gyp
- checksum: 10c0/2b24b93c31beca1c91336fa3b3769fda98e202fb7f9771f0f4062588d36dcc30fcf8118c36aa747fa7f7610d8cf601872bdaaf62ce7822bb08b545d1bbe086cc
- languageName: node
- linkType: hard
-
"@mdx-js/mdx@npm:2.3.0, @mdx-js/mdx@npm:^2.3.0":
version: 2.3.0
resolution: "@mdx-js/mdx@npm:2.3.0"
@@ -5303,13 +5284,6 @@ __metadata:
languageName: node
linkType: hard
-"abbrev@npm:1":
- version: 1.1.1
- resolution: "abbrev@npm:1.1.1"
- checksum: 10c0/3f762677702acb24f65e813070e306c61fafe25d4b2583f9dfc935131f774863f3addd5741572ed576bd69cabe473c5af18e1e108b829cb7b6b4747884f726e6
- languageName: node
- linkType: hard
-
"abbrev@npm:^2.0.0":
version: 2.0.0
resolution: "abbrev@npm:2.0.0"
@@ -5602,23 +5576,6 @@ __metadata:
languageName: node
linkType: hard
-"aproba@npm:^1.0.3 || ^2.0.0":
- version: 2.0.0
- resolution: "aproba@npm:2.0.0"
- checksum: 10c0/d06e26384a8f6245d8c8896e138c0388824e259a329e0c9f196b4fa533c82502a6fd449586e3604950a0c42921832a458bb3aa0aa9f0ba449cfd4f50fd0d09b5
- languageName: node
- linkType: hard
-
-"are-we-there-yet@npm:^2.0.0":
- version: 2.0.0
- resolution: "are-we-there-yet@npm:2.0.0"
- dependencies:
- delegates: "npm:^1.0.0"
- readable-stream: "npm:^3.6.0"
- checksum: 10c0/375f753c10329153c8d66dc95e8f8b6c7cc2aa66e05cb0960bd69092b10dae22900cacc7d653ad11d26b3ecbdbfe1e8bfb6ccf0265ba8077a7d979970f16b99c
- languageName: node
- linkType: hard
-
"arg@npm:^5.0.0":
version: 5.0.2
resolution: "arg@npm:5.0.2"
@@ -6229,7 +6186,6 @@ __metadata:
"@typescript-eslint/eslint-plugin": "npm:7.0.2"
"@typescript-eslint/parser": "npm:7.0.2"
bicstone: "npm:1.0.0"
- canvas: "npm:2.11.2"
date-fns: "npm:2.30.0"
date-fns-tz: "npm:2.0.0"
dotenv: "npm:16.4.5"
@@ -6629,18 +6585,6 @@ __metadata:
languageName: node
linkType: hard
-"canvas@npm:2.11.2":
- version: 2.11.2
- resolution: "canvas@npm:2.11.2"
- dependencies:
- "@mapbox/node-pre-gyp": "npm:^1.0.0"
- nan: "npm:^2.17.0"
- node-gyp: "npm:latest"
- simple-get: "npm:^3.0.3"
- checksum: 10c0/943368798ad1b66b18633aa34b6181e1038dac5433fc9727cd07be35f0a633f572b60d9edb95f5ff90b6a9128e86d5312035f91a2934101c73185b15d906230a
- languageName: node
- linkType: hard
-
"capital-case@npm:^1.0.4":
version: 1.0.4
resolution: "capital-case@npm:1.0.4"
@@ -7040,15 +6984,6 @@ __metadata:
languageName: node
linkType: hard
-"color-support@npm:^1.1.2":
- version: 1.1.3
- resolution: "color-support@npm:1.1.3"
- bin:
- color-support: bin.js
- checksum: 10c0/8ffeaa270a784dc382f62d9be0a98581db43e11eee301af14734a6d089bd456478b1a8b3e7db7ca7dc5b18a75f828f775c44074020b51c05fc00e6d0992b1cc6
- languageName: node
- linkType: hard
-
"color@npm:^4.2.3":
version: 4.2.3
resolution: "color@npm:4.2.3"
@@ -7219,13 +7154,6 @@ __metadata:
languageName: node
linkType: hard
-"console-control-strings@npm:^1.0.0, console-control-strings@npm:^1.1.0":
- version: 1.1.0
- resolution: "console-control-strings@npm:1.1.0"
- checksum: 10c0/7ab51d30b52d461412cd467721bb82afe695da78fff8f29fe6f6b9cbaac9a2328e27a22a966014df9532100f6dd85370460be8130b9c677891ba36d96a343f50
- languageName: node
- linkType: hard
-
"constant-case@npm:^3.0.4":
version: 3.0.4
resolution: "constant-case@npm:3.0.4"
@@ -7769,15 +7697,6 @@ __metadata:
languageName: node
linkType: hard
-"decompress-response@npm:^4.2.0":
- version: 4.2.1
- resolution: "decompress-response@npm:4.2.1"
- dependencies:
- mimic-response: "npm:^2.0.0"
- checksum: 10c0/5e4821be332e80e3639acee2441c41d245fc07ac3ee85a6f28893c10c079d66d9bf09e8d84bffeae5656a4625e09e9b93fb4a5705adbe6b07202eea64fae1c8d
- languageName: node
- linkType: hard
-
"decompress-response@npm:^6.0.0":
version: 6.0.0
resolution: "decompress-response@npm:6.0.0"
@@ -7878,13 +7797,6 @@ __metadata:
languageName: node
linkType: hard
-"delegates@npm:^1.0.0":
- version: 1.0.0
- resolution: "delegates@npm:1.0.0"
- checksum: 10c0/ba05874b91148e1db4bf254750c042bf2215febd23a6d3cda2e64896aef79745fbd4b9996488bd3cafb39ce19dbce0fd6e3b6665275638befffe1c9b312b91b5
- languageName: node
- linkType: hard
-
"depd@npm:2.0.0":
version: 2.0.0
resolution: "depd@npm:2.0.0"
@@ -10687,23 +10599,6 @@ __metadata:
languageName: node
linkType: hard
-"gauge@npm:^3.0.0":
- version: 3.0.2
- resolution: "gauge@npm:3.0.2"
- dependencies:
- aproba: "npm:^1.0.3 || ^2.0.0"
- color-support: "npm:^1.1.2"
- console-control-strings: "npm:^1.0.0"
- has-unicode: "npm:^2.0.1"
- object-assign: "npm:^4.1.1"
- signal-exit: "npm:^3.0.0"
- string-width: "npm:^4.2.3"
- strip-ansi: "npm:^6.0.1"
- wide-align: "npm:^1.1.2"
- checksum: 10c0/75230ccaf216471e31025c7d5fcea1629596ca20792de50c596eb18ffb14d8404f927cd55535aab2eeecd18d1e11bd6f23ec3c2e9878d2dda1dc74bccc34b913
- languageName: node
- linkType: hard
-
"gensync@npm:^1.0.0-beta.2":
version: 1.0.0-beta.2
resolution: "gensync@npm:1.0.0-beta.2"
@@ -11230,13 +11125,6 @@ __metadata:
languageName: node
linkType: hard
-"has-unicode@npm:^2.0.1":
- version: 2.0.1
- resolution: "has-unicode@npm:2.0.1"
- checksum: 10c0/ebdb2f4895c26bb08a8a100b62d362e49b2190bcfd84b76bc4be1a3bd4d254ec52d0dd9f2fbcc093fc5eb878b20c52146f9dfd33e2686ed28982187be593b47c
- languageName: node
- linkType: hard
-
"hash-wasm@npm:^4.9.0":
version: 4.11.0
resolution: "hash-wasm@npm:4.11.0"
@@ -14128,13 +14016,6 @@ __metadata:
languageName: node
linkType: hard
-"mimic-response@npm:^2.0.0":
- version: 2.1.0
- resolution: "mimic-response@npm:2.1.0"
- checksum: 10c0/717475c840f20deca87a16cb2f7561f9115f5de225ea2377739e09890c81aec72f43c81fd4984650c4044e66be5a846fa7a517ac7908f01009e1e624e19864d5
- languageName: node
- linkType: hard
-
"mimic-response@npm:^3.1.0":
version: 3.1.0
resolution: "mimic-response@npm:3.1.0"
@@ -14421,15 +14302,6 @@ __metadata:
languageName: node
linkType: hard
-"nan@npm:^2.17.0":
- version: 2.18.0
- resolution: "nan@npm:2.18.0"
- dependencies:
- node-gyp: "npm:latest"
- checksum: 10c0/9209d80134fdb98c0afe35c1372d2b930a0a8d3c52706cb5e4257a27e9845c375f7a8daedadadec8d6403ca2eebb3b37d362ff5d1ec03249462abf65fef2a148
- languageName: node
- linkType: hard
-
"nanoid@npm:^3.3.7":
version: 3.3.7
resolution: "nanoid@npm:3.3.7"
@@ -14547,7 +14419,7 @@ __metadata:
languageName: node
linkType: hard
-"node-fetch@npm:^2.6.1, node-fetch@npm:^2.6.11, node-fetch@npm:^2.6.12, node-fetch@npm:^2.6.7":
+"node-fetch@npm:^2.6.1, node-fetch@npm:^2.6.11, node-fetch@npm:^2.6.12":
version: 2.7.0
resolution: "node-fetch@npm:2.7.0"
dependencies:
@@ -14634,17 +14506,6 @@ __metadata:
languageName: node
linkType: hard
-"nopt@npm:^5.0.0":
- version: 5.0.0
- resolution: "nopt@npm:5.0.0"
- dependencies:
- abbrev: "npm:1"
- bin:
- nopt: bin/nopt.js
- checksum: 10c0/fc5c4f07155cb455bf5fc3dd149fac421c1a40fd83c6bfe83aa82b52f02c17c5e88301321318adaa27611c8a6811423d51d29deaceab5fa158b585a61a551061
- languageName: node
- linkType: hard
-
"nopt@npm:^7.0.0":
version: 7.2.0
resolution: "nopt@npm:7.2.0"
@@ -14725,18 +14586,6 @@ __metadata:
languageName: node
linkType: hard
-"npmlog@npm:^5.0.1":
- version: 5.0.1
- resolution: "npmlog@npm:5.0.1"
- dependencies:
- are-we-there-yet: "npm:^2.0.0"
- console-control-strings: "npm:^1.1.0"
- gauge: "npm:^3.0.0"
- set-blocking: "npm:^2.0.0"
- checksum: 10c0/489ba519031013001135c463406f55491a17fc7da295c18a04937fe3a4d523fd65e88dd418a28b967ab743d913fdeba1e29838ce0ad8c75557057c481f7d49fa
- languageName: node
- linkType: hard
-
"nth-check@npm:^2.0.0, nth-check@npm:^2.0.1":
version: 2.1.1
resolution: "nth-check@npm:2.1.1"
@@ -17411,7 +17260,7 @@ __metadata:
languageName: node
linkType: hard
-"signal-exit@npm:^3.0.0, signal-exit@npm:^3.0.2, signal-exit@npm:^3.0.3, signal-exit@npm:^3.0.7":
+"signal-exit@npm:^3.0.2, signal-exit@npm:^3.0.3, signal-exit@npm:^3.0.7":
version: 3.0.7
resolution: "signal-exit@npm:3.0.7"
checksum: 10c0/25d272fa73e146048565e08f3309d5b942c1979a6f4a58a8c59d5fa299728e9c2fcd1a759ec870863b1fd38653670240cd420dad2ad9330c71f36608a6a1c912
@@ -17439,17 +17288,6 @@ __metadata:
languageName: node
linkType: hard
-"simple-get@npm:^3.0.3":
- version: 3.1.1
- resolution: "simple-get@npm:3.1.1"
- dependencies:
- decompress-response: "npm:^4.2.0"
- once: "npm:^1.3.1"
- simple-concat: "npm:^1.0.0"
- checksum: 10c0/438c78844ea1b1e7268d13ee0b3a39c7d644183367aec916aed3b676b45d3037a61d9f975c200a49b42eb851f29f03745118af1e13c01e60a7b4044f2fd60be7
- languageName: node
- linkType: hard
-
"simple-get@npm:^4.0.0, simple-get@npm:^4.0.1":
version: 4.0.1
resolution: "simple-get@npm:4.0.1"
@@ -17851,7 +17689,7 @@ __metadata:
languageName: node
linkType: hard
-"string-width-cjs@npm:string-width@^4.2.0, string-width@npm:^1.0.2 || 2 || 3 || 4, string-width@npm:^4.0.0, string-width@npm:^4.1.0, string-width@npm:^4.2.0, string-width@npm:^4.2.2, string-width@npm:^4.2.3":
+"string-width-cjs@npm:string-width@^4.2.0, string-width@npm:^4.0.0, string-width@npm:^4.1.0, string-width@npm:^4.2.0, string-width@npm:^4.2.2, string-width@npm:^4.2.3":
version: 4.2.3
resolution: "string-width@npm:4.2.3"
dependencies:
@@ -19504,15 +19342,6 @@ __metadata:
languageName: node
linkType: hard
-"wide-align@npm:^1.1.2":
- version: 1.1.5
- resolution: "wide-align@npm:1.1.5"
- dependencies:
- string-width: "npm:^1.0.2 || 2 || 3 || 4"
- checksum: 10c0/1d9c2a3e36dfb09832f38e2e699c367ef190f96b82c71f809bc0822c306f5379df87bab47bed27ea99106d86447e50eb972d3c516c2f95782807a9d082fbea95
- languageName: node
- linkType: hard
-
"widest-line@npm:^3.1.0":
version: 3.1.0
resolution: "widest-line@npm:3.1.0"