@sota1235/remark-link-bookmark 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/.envrc ADDED
@@ -0,0 +1 @@
1
+ export NODE_AUTH_TOKEN=
package/README.md CHANGED
@@ -1,21 +1,86 @@
1
- ts-simple-boilerplate [![codecov](https://codecov.io/gh/sota1235/ts-simple-boilerplate/branch/master/graph/badge.svg)](https://codecov.io/gh/sota1235/ts-simple-boilerplate)
1
+ @sota1235/remark-link-bookmark
2
2
  ====
3
3
 
4
- Minimum boilerplate for me.
4
+ Remark plugin to convert link to bookmark component.
5
5
 
6
- Just for bundling 1 JavaScript file.
6
+ ### Usage
7
7
 
8
- ### Requirement
8
+ ```shell
9
+ npm i -E @sota1235/remark-link-bookmark
10
+ ```
9
11
 
10
- See [.node-version](./.node-version).
12
+ Then use like this.
11
13
 
12
- ### Usage
14
+ ```javascript
15
+ import { remark } from 'remark';
16
+ import { remarkLinkBookmark } from './dist/index.js';
17
+
18
+ const exampleMarkdown = `
19
+ # remark-link-bookmark
20
+
21
+ https://example.com/
22
+ `;
23
+
24
+ const result = await remark()
25
+ .use(remarkLinkBookmark, {})
26
+ .process(exampleMarkdown);
27
+
28
+ console.log(result.toString());
29
+ ```
30
+
31
+ You will get the following output.
32
+
33
+ ```markdown
34
+ # remark-link-bookmark
13
35
 
14
- See `scripts` in `package.json` or run `npm run`.
36
+ <div class="rlb-container">
37
+ <div class="rlb-content">
38
+ <div class="rlb-info">
39
+ <h2 class="rlb-title">
40
+ <a rel="noopener noreferrer" href="https://example.com/" class="rlb-title-link">
41
+ Example Domain
42
+ </a>
43
+ </h2>
44
+ </div>
45
+ </div>
46
+ <div class="rlb-footer">
47
+ <a rel="noopener noreferrer" href="https://example.com/" class="rlb-footer-link">
48
+ <img alt="example.com" src="https://www.google.com/s2/favicons?domain=https://example.com/" class="rlb-favicon">
49
+ example.com
50
+ </a>
51
+ </div>
52
+ </div>
53
+ ```
15
54
 
16
- ### Install
55
+ #### Options
17
56
 
18
- Just use as template of GitHub repository.
57
+ ```typescript
58
+ export type Options = {
59
+ // class prefix for all each element
60
+ classPrefix?: string;
61
+ // class names for each element
62
+ // for example, if you want to add extra class names for some compoentns, you can use this option.
63
+ mergeClassNames?: {
64
+ container?: string;
65
+ content?: string;
66
+ info?: string;
67
+ title?: string;
68
+ titleLink?: string;
69
+ description?: string;
70
+ image?: string;
71
+ footer?: string;
72
+ footerLink?: string;
73
+ favicon?: string;
74
+ };
75
+ // cache options
76
+ cache?: {
77
+ // cache directory path
78
+ cacheFilePath?: string;
79
+ // cache file name
80
+ cacheFileName?: string;
81
+ };
82
+ };
83
+ ```
19
84
 
20
85
  ### Licence
21
86
 
@@ -1,17 +1,16 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const vitest_1 = require("vitest");
7
- const remark_1 = require("remark");
8
- const plugin_js_1 = __importDefault(require("./plugin.js"));
9
- (0, vitest_1.test)('Input markdown should be expected', async () => {
1
+ import { expect, test } from 'vitest';
2
+ import { remark } from 'remark';
3
+ import { remarkLinkBookmark } from './plugin.js';
4
+ test('Input markdown should be expected', async () => {
10
5
  const document = `
11
- # Sample
6
+ # Sample
12
7
 
13
- https://example.com
14
- `;
15
- const file = await (0, remark_1.remark)().use(plugin_js_1.default).process(document);
16
- (0, vitest_1.expect)(file).toMatchFileSnapshot('snapshots/output.md');
8
+ https://example.com
9
+
10
+ [example](https://example.com/) is inline link
11
+
12
+ [remark-link-card](https://www.npmjs.com/package/remark-link-card) is inline link
13
+ `.trim();
14
+ const file = await remark().use(remarkLinkBookmark, {}).process(document);
15
+ expect(file.toString()).toMatchFileSnapshot('snapshots/output.md');
17
16
  });
package/dist/index.d.ts CHANGED
@@ -1 +1,5 @@
1
- import './script.js';
1
+ import type { Plugin } from 'unified';
2
+ import type { Root } from 'mdast';
3
+ import type { Options } from './plugin.js';
4
+ export type RemarkLinkBookmarkOptions = Options;
5
+ export declare const remarkLinkBookmark: Plugin<[options: Options], Root>;
package/dist/index.js CHANGED
@@ -1,3 +1,2 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- require("./script.js");
1
+ import { remarkLinkBookmark as plugin } from './plugin.js';
2
+ export const remarkLinkBookmark = plugin;
package/dist/ogp.d.ts ADDED
@@ -0,0 +1,13 @@
1
+ export type OgpInfo = {
2
+ title: string;
3
+ description?: string;
4
+ faviconSrc: string;
5
+ ogImageSrc?: string;
6
+ ogImageAlt?: string;
7
+ url: string;
8
+ };
9
+ export type CacheOption = {
10
+ cacheFilePath?: string;
11
+ cacheFileName?: string;
12
+ };
13
+ export declare function fetchOgpInfo(url: string, { cacheFilePath, cacheFileName }: CacheOption): Promise<OgpInfo | undefined>;
package/dist/ogp.js ADDED
@@ -0,0 +1,44 @@
1
+ import ogs from 'open-graph-scraper';
2
+ import * as fs from 'node:fs';
3
+ function isError(result) {
4
+ return result.error;
5
+ }
6
+ export async function fetchOgpInfo(url, { cacheFilePath, cacheFileName }) {
7
+ const cacheEnabled = cacheFilePath !== undefined && cacheFileName !== undefined;
8
+ if (cacheEnabled) {
9
+ const cacheData = await fs.promises.readFile(`${cacheFilePath}/${cacheFileName}`, 'utf-8');
10
+ const cache = JSON.parse(cacheData);
11
+ if (cache[url] !== undefined) {
12
+ console.log(`Cache hit: ${url}`);
13
+ return cache[url];
14
+ }
15
+ }
16
+ const data = await ogs({ url });
17
+ if (isError(data)) {
18
+ return undefined;
19
+ }
20
+ const ogImage = {
21
+ src: undefined,
22
+ alt: undefined,
23
+ };
24
+ if (data.result.ogImage !== undefined) {
25
+ ogImage.src = data.result.ogImage[0].url;
26
+ ogImage.alt = data.result.ogImage[0].alt;
27
+ }
28
+ const result = {
29
+ title: data.result.ogTitle || url,
30
+ description: data.result.ogDescription,
31
+ faviconSrc: `https://www.google.com/s2/favicons?domain=${url}`,
32
+ ogImageSrc: ogImage.src,
33
+ ogImageAlt: ogImage.alt,
34
+ url,
35
+ };
36
+ if (cacheEnabled) {
37
+ const cacheData = await fs.promises.readFile(`${cacheFilePath}/${cacheFileName}`, 'utf-8');
38
+ const cache = JSON.parse(cacheData);
39
+ cache[url] = result;
40
+ await fs.promises.writeFile(`${cacheFilePath}/${cacheFileName}`, JSON.stringify(cache, null, 2));
41
+ console.log(`Cache updated: ${url}`);
42
+ }
43
+ return result;
44
+ }
package/dist/plugin.d.ts CHANGED
@@ -1,7 +1,20 @@
1
1
  import type { Root } from 'mdast';
2
2
  import type { Plugin } from 'unified';
3
- type Options = {
4
- className: string;
3
+ import { CacheOption } from './ogp.js';
4
+ export type Options = {
5
+ classPrefix?: string;
6
+ mergeClassNames?: {
7
+ container?: string;
8
+ content?: string;
9
+ info?: string;
10
+ title?: string;
11
+ titleLink?: string;
12
+ description?: string;
13
+ image?: string;
14
+ footer?: string;
15
+ footerLink?: string;
16
+ favicon?: string;
17
+ };
18
+ cache?: CacheOption;
5
19
  };
6
- declare const remarkLinkBookmark: Plugin<[options: Options], Root>;
7
- export default remarkLinkBookmark;
20
+ export declare const remarkLinkBookmark: Plugin<[options: Options], Root>;
package/dist/plugin.js CHANGED
@@ -1,9 +1,42 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const remarkLinkBookmark = ({ className = 'link-bookmark', }) => {
4
- console.log(className);
5
- return (tree) => {
6
- console.log(tree);
1
+ import { visit } from 'unist-util-visit';
2
+ import { isUrl } from './url.js';
3
+ import { fetchOgpInfo } from './ogp.js';
4
+ import { buildBookmarkHtml } from './view.js';
5
+ export const remarkLinkBookmark = (options) => {
6
+ return async (tree) => {
7
+ const transformers = [];
8
+ visit(tree, 'paragraph', (node, index) => {
9
+ if (index === undefined) {
10
+ console.log('index is undefined');
11
+ return;
12
+ }
13
+ if (node.children.length !== 1) {
14
+ console.log('node children length is not 1');
15
+ return;
16
+ }
17
+ const child = node.children[0];
18
+ if (child.type !== 'text') {
19
+ console.log('child type is not text');
20
+ return;
21
+ }
22
+ const text = child.value;
23
+ if (!isUrl(text)) {
24
+ console.log('text is not url');
25
+ return;
26
+ }
27
+ transformers.push(async () => {
28
+ const ogpInfo = await fetchOgpInfo(text, options.cache ?? {});
29
+ if (ogpInfo === undefined) {
30
+ return;
31
+ }
32
+ const linkCardNode = {
33
+ type: 'html',
34
+ value: buildBookmarkHtml(ogpInfo, options),
35
+ };
36
+ tree.children.splice(index, 1, linkCardNode);
37
+ });
38
+ return;
39
+ }, undefined);
40
+ await Promise.all(transformers.map((transformer) => transformer()));
7
41
  };
8
42
  };
9
- exports.default = remarkLinkBookmark;
@@ -1,6 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const vitest_1 = require("vitest");
4
- (0, vitest_1.test)('1 + 1 = 2', () => {
5
- (0, vitest_1.expect)(1 + 1).toBe(2);
1
+ import { expect, test } from 'vitest';
2
+ test('1 + 1 = 2', () => {
3
+ expect(1 + 1).toBe(2);
6
4
  });
package/dist/url.d.ts ADDED
@@ -0,0 +1 @@
1
+ export declare function isUrl(url: string): boolean;
package/dist/url.js ADDED
@@ -0,0 +1,4 @@
1
+ export function isUrl(url) {
2
+ const instance = new URL(url);
3
+ return instance.protocol === 'https:';
4
+ }
package/dist/view.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ import { OgpInfo } from './ogp.js';
2
+ import { Options } from './plugin.js';
3
+ export declare const buildBookmarkHtml: ({ title, description, faviconSrc, ogImageSrc, ogImageAlt, url }: OgpInfo, { classPrefix, mergeClassNames }: Options) => string;
package/dist/view.js ADDED
@@ -0,0 +1,58 @@
1
+ import createDOMPurify from 'dompurify';
2
+ import clsx from 'clsx';
3
+ import { JSDOM } from 'jsdom';
4
+ function buildDescriptionHtml(description, className) {
5
+ return description !== undefined
6
+ ? `<p class="${className}">${description}</p>`
7
+ : '';
8
+ }
9
+ function buildOgpImageHtml(ogImageSrc, ogImageAlt, className) {
10
+ return ogImageSrc !== undefined
11
+ ? `<img class="${className}" src="${ogImageSrc}" alt="${ogImageAlt}" />`
12
+ : '';
13
+ }
14
+ export const buildBookmarkHtml = ({ title, description, faviconSrc, ogImageSrc, ogImageAlt, url }, { classPrefix = 'rlb', mergeClassNames }) => {
15
+ const host = new URL(url).host;
16
+ const dompurify = createDOMPurify(new JSDOM('').window);
17
+ const containerClassName = clsx(`${classPrefix}-container`, mergeClassNames?.container);
18
+ const contentClassName = clsx(`${classPrefix}-content`, mergeClassNames?.content);
19
+ const infoClassName = clsx(`${classPrefix}-info`, mergeClassNames?.info);
20
+ const titleClassName = clsx(`${classPrefix}-title`, mergeClassNames?.title);
21
+ const titleLinkClassName = clsx(`${classPrefix}-title-link`, mergeClassNames?.titleLink);
22
+ const descriptionClassName = clsx(`${classPrefix}-description`, mergeClassNames?.description);
23
+ const imageClassName = clsx(`${classPrefix}-image`, mergeClassNames?.image);
24
+ const footerClassName = clsx(`${classPrefix}-footer`, mergeClassNames?.footer);
25
+ const footerLinkClassName = clsx(`${classPrefix}-footer-link`, mergeClassNames?.footerLink);
26
+ const faviconImageClassName = clsx(`${classPrefix}-favicon`, mergeClassNames?.favicon);
27
+ return dompurify
28
+ .sanitize(`
29
+ <div class="${containerClassName}">
30
+ <div class="${contentClassName}">
31
+ <div class="${infoClassName}">
32
+ <h2 class="${titleClassName}">
33
+ <a
34
+ class="${titleLinkClassName}"
35
+ href="${url}"
36
+ target="_blank"
37
+ rel="noopener noreferrer"
38
+ >
39
+ ${title}
40
+ </a>
41
+ </h2>${buildDescriptionHtml(description, descriptionClassName)}
42
+ </div>${buildOgpImageHtml(ogImageSrc, ogImageAlt, imageClassName)}
43
+ </div>
44
+ <div class="${footerClassName}">
45
+ <a
46
+ class="${footerLinkClassName}"
47
+ href="${url}"
48
+ target="_blank"
49
+ rel="noopener noreferrer"
50
+ >
51
+ <img class="${faviconImageClassName}" src="${faviconSrc}" alt="${host}" />
52
+ ${host}
53
+ </a>
54
+ </div>
55
+ </div>
56
+ `)
57
+ .trim();
58
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sota1235/remark-link-bookmark",
3
- "version": "0.0.1",
3
+ "version": "0.0.2",
4
4
  "description": "Remark plugin to convert link to bookmark component",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",
@@ -32,6 +32,10 @@
32
32
  ],
33
33
  "author": "@sota1235",
34
34
  "license": "MIT",
35
+ "repository": "https://github.com/sota1235/remark-link-bookmark",
36
+ "bugs": {
37
+ "url": "https://github.com/sota1235/remark-link-bookmark/issues"
38
+ },
35
39
  "lint-staged": {
36
40
  "*.ts": [
37
41
  "npm run fix"
@@ -40,7 +44,7 @@
40
44
  "scripts": {
41
45
  "build": "tsc -p ./tsconfig.publish.json",
42
46
  "build:publish": "tsc -p ./tsconfig.publish.json",
43
- "watch": "tsc --watch",
47
+ "watch": "tsc -p ./tsconfig.publish.json --watch",
44
48
  "fix": "npm run prettier && npm run eslint:fix",
45
49
  "lint": "npm run eslint",
46
50
  "eslint": "eslint 'src/**/*.ts'",
@@ -1,57 +0,0 @@
1
- <component name="ProjectCodeStyleConfiguration">
2
- <code_scheme name="Project" version="173">
3
- <HTMLCodeStyleSettings>
4
- <option name="HTML_SPACE_INSIDE_EMPTY_TAG" value="true" />
5
- </HTMLCodeStyleSettings>
6
- <JSCodeStyleSettings version="0">
7
- <option name="FORCE_SEMICOLON_STYLE" value="true" />
8
- <option name="SPACE_BEFORE_FUNCTION_LEFT_PARENTH" value="false" />
9
- <option name="FORCE_QUOTE_STYlE" value="true" />
10
- <option name="ENFORCE_TRAILING_COMMA" value="Remove" />
11
- <option name="SPACES_WITHIN_OBJECT_LITERAL_BRACES" value="true" />
12
- <option name="SPACES_WITHIN_IMPORTS" value="true" />
13
- </JSCodeStyleSettings>
14
- <TypeScriptCodeStyleSettings version="0">
15
- <option name="FORCE_SEMICOLON_STYLE" value="true" />
16
- <option name="SPACE_BEFORE_FUNCTION_LEFT_PARENTH" value="false" />
17
- <option name="FORCE_QUOTE_STYlE" value="true" />
18
- <option name="ENFORCE_TRAILING_COMMA" value="Remove" />
19
- <option name="SPACES_WITHIN_OBJECT_LITERAL_BRACES" value="true" />
20
- <option name="SPACES_WITHIN_IMPORTS" value="true" />
21
- </TypeScriptCodeStyleSettings>
22
- <VueCodeStyleSettings>
23
- <option name="INTERPOLATION_NEW_LINE_AFTER_START_DELIMITER" value="false" />
24
- <option name="INTERPOLATION_NEW_LINE_BEFORE_END_DELIMITER" value="false" />
25
- </VueCodeStyleSettings>
26
- <codeStyleSettings language="HTML">
27
- <option name="SOFT_MARGINS" value="80" />
28
- <indentOptions>
29
- <option name="INDENT_SIZE" value="2" />
30
- <option name="CONTINUATION_INDENT_SIZE" value="2" />
31
- <option name="TAB_SIZE" value="2" />
32
- </indentOptions>
33
- </codeStyleSettings>
34
- <codeStyleSettings language="JavaScript">
35
- <option name="SOFT_MARGINS" value="80" />
36
- <indentOptions>
37
- <option name="INDENT_SIZE" value="2" />
38
- <option name="CONTINUATION_INDENT_SIZE" value="2" />
39
- <option name="TAB_SIZE" value="2" />
40
- </indentOptions>
41
- </codeStyleSettings>
42
- <codeStyleSettings language="TypeScript">
43
- <option name="SOFT_MARGINS" value="80" />
44
- <indentOptions>
45
- <option name="INDENT_SIZE" value="2" />
46
- <option name="CONTINUATION_INDENT_SIZE" value="2" />
47
- <option name="TAB_SIZE" value="2" />
48
- </indentOptions>
49
- </codeStyleSettings>
50
- <codeStyleSettings language="Vue">
51
- <option name="SOFT_MARGINS" value="80" />
52
- <indentOptions>
53
- <option name="CONTINUATION_INDENT_SIZE" value="2" />
54
- </indentOptions>
55
- </codeStyleSettings>
56
- </code_scheme>
57
- </component>
@@ -1,5 +0,0 @@
1
- <component name="ProjectCodeStyleConfiguration">
2
- <state>
3
- <option name="USE_PER_PROJECT_SETTINGS" value="true" />
4
- </state>
5
- </component>
@@ -1,6 +0,0 @@
1
- <component name="InspectionProjectProfileManager">
2
- <profile version="1.0">
3
- <option name="myName" value="Project Default" />
4
- <inspection_tool class="Eslint" enabled="true" level="WARNING" enabled_by_default="true" />
5
- </profile>
6
- </component>
package/.idea/misc.xml DELETED
@@ -1,6 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="ProjectRootManager">
4
- <output url="file://$PROJECT_DIR$/out" />
5
- </component>
6
- </project>
package/.idea/modules.xml DELETED
@@ -1,8 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="ProjectModuleManager">
4
- <modules>
5
- <module fileurl="file://$PROJECT_DIR$/.idea/remark-link-bookmark.iml" filepath="$PROJECT_DIR$/.idea/remark-link-bookmark.iml" />
6
- </modules>
7
- </component>
8
- </project>
@@ -1,9 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <module type="JAVA_MODULE" version="4">
3
- <component name="NewModuleRootManager" inherit-compiler-output="true">
4
- <exclude-output />
5
- <content url="file://$MODULE_DIR$" />
6
- <orderEntry type="inheritedJdk" />
7
- <orderEntry type="sourceFolder" forTests="false" />
8
- </component>
9
- </module>
package/.idea/vcs.xml DELETED
@@ -1,6 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="VcsDirectoryMappings">
4
- <mapping directory="" vcs="Git" />
5
- </component>
6
- </project>
@@ -1,69 +0,0 @@
1
- {
2
- "checksums": [
3
- {
4
- "id": "github_release/github.com/rhysd/actionlint/v1.7.3/actionlint_1.7.3_darwin_amd64.tar.gz",
5
- "checksum": "33E960B719C87ECC0C807CF4945FD4078980CD2E626B27DED0E9551C757FA8F6",
6
- "algorithm": "sha256"
7
- },
8
- {
9
- "id": "github_release/github.com/rhysd/actionlint/v1.7.3/actionlint_1.7.3_darwin_arm64.tar.gz",
10
- "checksum": "B4E8DAB8DDA48ECEFF6AFEA67D0FE4A14B8D4EA7191CF233C1E1AF8A62F37C24",
11
- "algorithm": "sha256"
12
- },
13
- {
14
- "id": "github_release/github.com/rhysd/actionlint/v1.7.3/actionlint_1.7.3_linux_amd64.tar.gz",
15
- "checksum": "37252B4D440B56374B0FC1726E05FD7452D30D6D774F6E9B52E65BB64475F9DB",
16
- "algorithm": "sha256"
17
- },
18
- {
19
- "id": "github_release/github.com/rhysd/actionlint/v1.7.3/actionlint_1.7.3_linux_arm64.tar.gz",
20
- "checksum": "5FD82142C39208BFDC51B929FF9BD84C38BCC10B4362EF2261A5D70D38E68E05",
21
- "algorithm": "sha256"
22
- },
23
- {
24
- "id": "github_release/github.com/rhysd/actionlint/v1.7.3/actionlint_1.7.3_windows_amd64.zip",
25
- "checksum": "E364347719ACCD53A7BB2E5B370E42E7262D6CEE7C496738A08E319BEFDA38E6",
26
- "algorithm": "sha256"
27
- },
28
- {
29
- "id": "github_release/github.com/rhysd/actionlint/v1.7.3/actionlint_1.7.3_windows_arm64.zip",
30
- "checksum": "71B50372A72E1F07CEC38C82783873CEBDDF3EC194BB80119B652A80F9F5447F",
31
- "algorithm": "sha256"
32
- },
33
- {
34
- "id": "github_release/github.com/suzuki-shunsuke/ghalint/v1.0.0/ghalint_1.0.0_darwin_amd64.tar.gz",
35
- "checksum": "707BB2D6D4564A950F7AD3A5B3340B0B5BC666FE82B32BD51A5FE0FEF7268804",
36
- "algorithm": "sha256"
37
- },
38
- {
39
- "id": "github_release/github.com/suzuki-shunsuke/ghalint/v1.0.0/ghalint_1.0.0_darwin_arm64.tar.gz",
40
- "checksum": "3E3FDA71FFAE83CF713295DF2BEF09FC268811DEAB11DEA58D8CAA287642C9DC",
41
- "algorithm": "sha256"
42
- },
43
- {
44
- "id": "github_release/github.com/suzuki-shunsuke/ghalint/v1.0.0/ghalint_1.0.0_linux_amd64.tar.gz",
45
- "checksum": "E9006FF212A3B27A99AF43DB687DED78173BAA2F9816B2E2A9BED03A2ED2F954",
46
- "algorithm": "sha256"
47
- },
48
- {
49
- "id": "github_release/github.com/suzuki-shunsuke/ghalint/v1.0.0/ghalint_1.0.0_linux_arm64.tar.gz",
50
- "checksum": "73D110480FB94DB4F5F46980659FCAFB8146ACC0B49D0D3AA6D79EE161C97917",
51
- "algorithm": "sha256"
52
- },
53
- {
54
- "id": "github_release/github.com/suzuki-shunsuke/ghalint/v1.0.0/ghalint_1.0.0_windows_amd64.zip",
55
- "checksum": "F91596B58827BBBBAA6EFD8B5220D2C49547D60E30E7CF797E02A9107A39FF11",
56
- "algorithm": "sha256"
57
- },
58
- {
59
- "id": "github_release/github.com/suzuki-shunsuke/ghalint/v1.0.0/ghalint_1.0.0_windows_arm64.zip",
60
- "checksum": "77FB1B80BFEFECB2C43098C9BD76BB335435A56E362961E3BD6ED5E18FA471E6",
61
- "algorithm": "sha256"
62
- },
63
- {
64
- "id": "registries/github_content/github.com/aquaproj/aqua-registry/v4.246.0/registry.yaml",
65
- "checksum": "153438D21A059F716E695701D3A0E41AF537024C25AB8B6852EE6B996E313C93",
66
- "algorithm": "sha256"
67
- }
68
- ]
69
- }
package/aqua.yaml DELETED
@@ -1,12 +0,0 @@
1
- ---
2
- # aqua - Declarative CLI Version Manager
3
- # https://aquaproj.github.io/
4
- checksum:
5
- enabled: true
6
- require_checksum: true
7
- registries:
8
- - type: standard
9
- ref: v4.246.0 # renovate: depName=aquaproj/aqua-registry
10
- packages:
11
- - name: rhysd/actionlint@v1.7.3
12
- - name: suzuki-shunsuke/ghalint@v1.0.0
package/eslint.config.mjs DELETED
@@ -1,10 +0,0 @@
1
- import { configs } from '@sota1235/eslint-config';
2
-
3
- /** @type {import('eslint').Linter.Config} */
4
- export default [
5
- ...configs.base(),
6
- ...configs.typescript({}),
7
- {
8
- ignores: ['node_modules/', 'dist/'],
9
- }
10
- ];