27 | }>
28 |
29 |
30 |
31 |
32 | >
33 | );
34 |
35 | export default Popup;
36 |
--------------------------------------------------------------------------------
/src/popup/Loading/Loading.tsx:
--------------------------------------------------------------------------------
1 | import styled from '@emotion/styled';
2 |
3 | const StyledLoading = styled.div`
4 | display: flex;
5 | justify-content: center;
6 | align-items: flex-start;
7 | text-align: center;
8 | width: 100%;
9 | margin: 0 auto;
10 | padding: 0;
11 | max-width: 40rem;
12 | min-width: 24rem;
13 | background: var(--atom-bg, #263238);
14 | `;
15 |
16 | const LoadingText = styled.h4`
17 | font-weight: normal;
18 | font-style: normal;
19 | text-rendering: optimizeLegibility;
20 | color: var(--atom-fg, #b0bec5);
21 | margin-top: 0;
22 | margin-bottom: 0;
23 | line-height: 1;
24 | font-size: 2em;
25 | position: absolute;
26 | top: 50%;
27 | left: 50%;
28 | transform: translate(-50%, -50%);
29 | `;
30 |
31 | export const Loading = () => (
32 |
33 | Loading...
34 |
35 | );
36 |
--------------------------------------------------------------------------------
/src/popup/Panel/Alert.tsx:
--------------------------------------------------------------------------------
1 | import { keyframes } from '@emotion/react';
2 | import styled from '@emotion/styled';
3 | import { useAlert } from '~common/selectors';
4 |
5 | const fadeInDown = keyframes`
6 | from {
7 | opacity: 0;
8 | height: 0;
9 | }
10 | 30% {
11 | opacity: 1;
12 | height: 2.5rem;
13 | }
14 | to {
15 | opacity: 0;
16 | height: 0;
17 | }
18 | `;
19 |
20 | const TopAlert = styled.div`
21 | position: fixed;
22 | top: 0;
23 | left: 0;
24 | width: 100%;
25 | min-width: 24rem;
26 | height: 2.5rem;
27 | padding: 0.625rem 0;
28 | background-color: var(--atom-accent);
29 | color: var(--atom-selFg);
30 | text-align: center;
31 | font-size: 0.875rem;
32 | transition: all 0.25s ease;
33 | animation: ${fadeInDown} 5s cubic-bezier(.55, 0, .1, 1) both 1s;
34 | animation-delay: 0.5s;
35 | `;
36 |
37 | export const Alert = () => {
38 | const { isAlertVisible } = useAlert();
39 | if (!isAlertVisible) return null;
40 |
41 | return (
42 |
43 | Refresh the page(s) to apply your changes!
44 |
45 | );
46 | };
47 |
--------------------------------------------------------------------------------
/src/popup/Panel/Footer.tsx:
--------------------------------------------------------------------------------
1 | import styled from '@emotion/styled';
2 |
3 | const StyledFooter = styled.footer`
4 | grid-area: footer;
5 | text-align: center;
6 |
7 | a {
8 | text-decoration: none;
9 | color: var(--atom-links, #80cbc4);
10 | }
11 | `;
12 |
13 | export const Footer = () => {
14 | const year = new Date().getFullYear();
15 | return (
16 |
17 | © 2015-{year} Atom Material Themes and Plugins
18 |
19 | );
20 | };
21 |
--------------------------------------------------------------------------------
/src/popup/Panel/Panel.tsx:
--------------------------------------------------------------------------------
1 | import styled from '@emotion/styled';
2 | import { Footer } from './Footer';
3 | import Settings from '~popup/Settings/Settings';
4 | import { Alert } from '~popup/Panel/Alert';
5 |
6 | const StyledPanel = styled.div`
7 | padding-top: 2.5rem;
8 | display: grid;
9 | grid-template-columns: 100%;
10 | grid-template-rows: [content] 100% [footer] 32px;
11 | grid-template-areas:
12 | "content"
13 | "footer";
14 | `;
15 |
16 | const Panel = () => (
17 |
18 |
19 |
20 |
21 |
22 | );
23 |
24 | export default Panel;
25 |
--------------------------------------------------------------------------------
/src/popup/Settings/Settings.tsx:
--------------------------------------------------------------------------------
1 | import styled from '@emotion/styled';
2 | import Form from '~content/Settings/Form';
3 |
4 | const Container = styled.main`
5 | position: relative;
6 | top: 50%;
7 | transform: translateY(-50%);
8 | text-align: center;
9 | width: 100%;
10 | margin: 0 auto;
11 | padding: 0 2rem;
12 | max-width: 40rem;
13 | min-width: 24rem;
14 | `;
15 |
16 | const Title = styled.header`
17 | h1, h4 {
18 | font-weight: normal;
19 | font-style: normal;
20 | color: var(--atom-fg);
21 | text-rendering: optimizeLegibility;
22 | margin-top: 0.2rem;
23 | margin-bottom: 0.5rem;
24 | line-height: 1.4;
25 | }
26 |
27 | h1 {
28 | font-size: 4em;
29 | font-weight: lighter;
30 | line-height: 1;
31 | margin-top: 0.25em;
32 | margin-bottom: 0.25em;
33 | letter-spacing: 0.025em;
34 | animation: fadeInDownShort 0.5s cubic-bezier(0.55, 0, 0.1, 1) both 0.5s;
35 | pointer-events: none;
36 | }
37 |
38 | h4 {
39 | margin-top: 0;
40 | margin-bottom: 0;
41 | line-height: 1;
42 | font-size: 2em;
43 | }
44 |
45 | small {
46 | font-size: 60%;
47 | color: var(--atom-text);
48 | line-height: 0;
49 | font-weight: 300;
50 | letter-spacing: 0.05em;
51 | }
52 | `;
53 |
54 | const Grid = styled.div`
55 | display: grid;
56 | grid-template-columns: 1fr;
57 | grid-column-gap: 20px;
58 | `;
59 |
60 | const Settings = () => (
61 |
62 |
63 | Atom Material Icons
64 |
65 |
66 | Settings
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 | );
75 |
76 | export default Settings;
77 |
--------------------------------------------------------------------------------
/src/providers/AbstractProvider.ts:
--------------------------------------------------------------------------------
1 | import { getAssociation, getFileIcon, getFileIconName } from '~associations/files';
2 | import { removeSize, wrapSvg } from '~associations/utils';
3 | import { getFolderAssociation, getFolderIcon, getFolderIconName } from '~associations/folders';
4 | import { $, $$, elementExists } from 'select-dom';
5 | import * as debounce from 'lodash.debounce';
6 | import { localIconPaths } from '~common/storage';
7 |
8 | export type IconProvider = {
9 | dirClass: string;
10 | fileClass: string;
11 | iconClass: string;
12 | itemsClass: string;
13 | nameClass: string;
14 | svgClass?: string;
15 | injectIcons: () => {};
16 | }
17 |
18 | export abstract class AbstractProvider implements IconProvider {
19 | constructor(readonly target: ParentNode) {
20 | }
21 |
22 | abstract get itemsClass(): string;
23 |
24 | abstract get fileClass(): string;
25 |
26 | abstract get dirClass(): string;
27 |
28 | abstract get nameClass(): string;
29 |
30 | abstract get iconClass(): string;
31 |
32 | abstract get svgClass(): string | undefined;
33 |
34 | abstract get styles(): string;
35 |
36 | #injectIcons = async () => {
37 | const $items = $$(this.itemsClass, this.target);
38 | const isDark = $('html').dataset['colorMode'] === 'dark';
39 | const iconPacks = await localIconPaths();
40 |
41 | $items.forEach(async (item) => {
42 | // Skip icon if already processed
43 | // if (item.dataset['processed'] === 'true') {
44 | // return;
45 | // }
46 |
47 | const isFile = elementExists(this.fileClass, item);
48 | const isDir = elementExists(this.dirClass, item);
49 | const isSvg = elementExists(this.svgClass, item);
50 |
51 | const name = $(this.nameClass, item)?.textContent?.trim();
52 | const $icon = $(this.iconClass, item);
53 | const $fallbackIcon = $('.atomIcon', item);
54 |
55 | if (isDir) {
56 | let assoc = getFolderAssociation(name);
57 | let className = getFolderIconName(assoc);
58 |
59 | const svg = getFolderIcon(className);
60 | const icon = await wrapSvg(svg, this.styles, `octicon ${this.dirClass.replace('.', '')}`);
61 |
62 | if ($icon?.parentNode) {
63 | $icon.outerHTML = removeSize(icon);
64 | }
65 | } else {
66 | let assoc = getAssociation(name, iconPacks);
67 | let className = getFileIconName(assoc);
68 |
69 | const svg = getFileIcon(className, isDark);
70 | const icon = await wrapSvg(svg, this.styles, `octicon`);
71 |
72 | if ($icon?.parentNode) {
73 | $icon.outerHTML = removeSize(icon);
74 | } else if ($fallbackIcon) {
75 | $fallbackIcon.outerHTML = removeSize(icon);
76 | }
77 | }
78 |
79 | // Set a flag to avoid processing the icon again later
80 | item.dataset['processed'] = 'true';
81 | });
82 | };
83 |
84 | injectIcons = debounce(this.#injectIcons, 1000);
85 | }
86 |
--------------------------------------------------------------------------------
/src/providers/ProviderFactory.ts:
--------------------------------------------------------------------------------
1 | import { GitHubCodeViewProvider } from '~providers/githubCodeView';
2 | import { elementExists } from 'select-dom';
3 | import type { IconProvider } from '~providers/AbstractProvider';
4 | import { GitHubSearchProvider } from '~providers/search';
5 | import { GitHubProvider } from '~providers/github';
6 | import { GitLabProvider } from '~providers/gitlab';
7 | import { BitBucketProvider } from '~providers/bitbucket';
8 | import { GiteeProvider } from '~providers/gitee';
9 | import { PullRequestsProvider } from '~providers/pullRequests';
10 | import { AzureProvider } from '~providers/azure';
11 | import { GitHubCodeViewTreeProvider } from '~providers/githubCodeViewTree';
12 |
13 | export const createProvider = (target: ParentNode): IconProvider => {
14 | if (window.location.hostname.includes('bitbucket')) {
15 | return new BitBucketProvider(target);
16 | } else if (window.location.hostname.includes('gitlab')) {
17 | return new GitLabProvider(target);
18 | } else if (window.location.hostname.includes('gitee')) {
19 | return new GiteeProvider(target);
20 | } else if (window.location.hostname.includes('azure') && elementExists('.repos-file-explorer-header')) {
21 | return new AzureProvider(target);
22 | }
23 | // else if (window.location.hostname.includes('codesandbox')) {
24 | // return new CodeSandboxProvider(target);
25 | // }
26 | else if (elementExists('.tree-browser-result > .octicon', target)) {
27 | return new GitHubSearchProvider(target);
28 | } else if (elementExists('.ActionList-item-visual > .octicon', target)) {
29 | return new PullRequestsProvider(target);
30 | } else if (elementExists('.PRIVATE_TreeView-item-content', target)) {
31 | return new GitHubCodeViewTreeProvider(target);
32 | } else if (elementExists('.react-directory-filename-column', target)) {
33 | return new GitHubCodeViewProvider(target);
34 | } else if (elementExists('.js-navigation-item > [role="gridcell"]', target)) {
35 | return new GitHubProvider(target);
36 | }
37 | return null;
38 | };
39 |
--------------------------------------------------------------------------------
/src/providers/azure.ts:
--------------------------------------------------------------------------------
1 | import { AbstractProvider } from '~providers/AbstractProvider';
2 | import { getFolderAssociation, getFolderIcon, getFolderIconName } from '~associations/folders';
3 | import { removeSize, wrapSvg } from '~associations/utils';
4 | import { getAssociation, getFileIcon, getFileIconName } from '~associations/files';
5 | import { $, $$, elementExists } from 'select-dom';
6 |
7 | export class AzureProvider extends AbstractProvider {
8 | public get dirClass(): string {
9 | return '.repos-folder-icon';
10 | }
11 |
12 | public get fileClass(): string {
13 | return '.fabric-icon';
14 | }
15 |
16 | public get iconClass(): string {
17 | return '.fabric-icon:not(.bolt-tree-expand-button)';
18 | }
19 |
20 | public get itemsClass(): string {
21 | return '.bolt-table-row';
22 | }
23 |
24 | public get nameClass(): string {
25 | return '.bolt-table-cell-content .text-ellipsis';
26 | }
27 |
28 | public get svgClass(): string | undefined {
29 | return undefined;
30 | }
31 |
32 | public get styles(): string {
33 | return '';
34 | }
35 |
36 | injectIcons = async () => {
37 | const $items = $$(this.itemsClass, this.target);
38 | const isDark = $('html').dataset['colorMode'] === 'dark';
39 |
40 | $items.forEach(async (item, index) => {
41 | const isFile = elementExists(this.fileClass, item);
42 | const isDir = elementExists(this.dirClass, item);
43 | const isSvg = elementExists(this.svgClass, item);
44 |
45 | const name = $(this.nameClass, item)?.textContent?.trim();
46 | const $icon = $(this.iconClass, item);
47 |
48 | if (isDir) {
49 | let assoc = getFolderAssociation(name);
50 | let className = getFolderIconName(assoc);
51 |
52 | const svg = getFolderIcon(className);
53 | const icon = await wrapSvg(svg, this.styles, `octicon ${this.dirClass.replace('.', '')}`);
54 |
55 | const newSVG = document.createElement('span');
56 | newSVG.innerHTML = removeSize(icon);
57 |
58 | if ($icon.hasChildNodes()) {
59 | $icon.replaceChild(newSVG, $icon.firstChild);
60 | } else {
61 | $icon.appendChild(newSVG);
62 | }
63 | } else if (isFile || isSvg) {
64 | let assoc = await getAssociation(name);
65 | let className = getFileIconName(assoc);
66 |
67 | const svg = getFileIcon(className, isDark);
68 | const icon = await wrapSvg(svg, this.styles, `octicon ${this.fileClass}`);
69 |
70 | const newSVG = document.createElement('span');
71 | newSVG.innerHTML = removeSize(icon);
72 |
73 | if ($icon.hasChildNodes()) {
74 | $icon.replaceChild(newSVG, $icon.firstChild);
75 | } else {
76 | $icon.appendChild(newSVG);
77 | }
78 | }
79 | });
80 | };
81 |
82 | }
83 |
--------------------------------------------------------------------------------
/src/providers/bitbucket.ts:
--------------------------------------------------------------------------------
1 | import { AbstractProvider } from './AbstractProvider';
2 |
3 | export class BitBucketProvider extends AbstractProvider {
4 | public get dirClass(): string {
5 | return '[aria-label="Directory,"]';
6 | }
7 |
8 | public get fileClass(): string {
9 | return '[aria-label="File,"]';
10 | }
11 |
12 | public get iconClass(): string {
13 | return '.css-x5ykhp';
14 | }
15 |
16 | public get itemsClass(): string {
17 | return '.css-134uz78';
18 | }
19 |
20 | public get nameClass(): string {
21 | return '.css-15qk21d';
22 | }
23 |
24 | public get svgClass(): string | undefined {
25 | return undefined;
26 | }
27 |
28 | public get styles(): string {
29 | return 'margin-right: 1em';
30 | }
31 |
32 | }
--------------------------------------------------------------------------------
/src/providers/codesandbox.ts:
--------------------------------------------------------------------------------
1 | import { AbstractProvider } from '~providers/AbstractProvider';
2 |
3 | export class CodeSandboxProvider extends AbstractProvider {
4 | public get dirClass(): string {
5 | return '.cxOFMm';
6 | }
7 |
8 | public get fileClass(): string {
9 | return '.elements__SVGIcon-nr8eco-1:not(.cxOFMm)';
10 | }
11 |
12 | public get iconClass(): string {
13 | return '.elements__SVGIcon-nr8eco-1';
14 | }
15 |
16 | public get itemsClass(): string {
17 | return '.Entry___StyledListAction-xn4cac-0';
18 | }
19 |
20 | public get nameClass(): string {
21 | return '.fNBhZD';
22 | }
23 |
24 | public get svgClass(): string | undefined {
25 | return undefined;
26 | }
27 |
28 | public get styles(): string {
29 | return '';
30 | }
31 |
32 | }
33 |
--------------------------------------------------------------------------------
/src/providers/gitee.ts:
--------------------------------------------------------------------------------
1 | import { AbstractProvider } from '~providers/AbstractProvider';
2 |
3 | export class GiteeProvider extends AbstractProvider {
4 | public get dirClass(): string {
5 | return '.icon-folders';
6 | }
7 |
8 | public get fileClass(): string {
9 | return '.icon-file';
10 | }
11 |
12 | public get iconClass(): string {
13 | return '.iconfont';
14 | }
15 |
16 | public get itemsClass(): string {
17 | return '.tree-item';
18 | }
19 |
20 | public get nameClass(): string {
21 | return '.tree-list-item > a';
22 | }
23 |
24 | public get svgClass(): string | undefined {
25 | return undefined;
26 | }
27 |
28 | public get styles(): string {
29 | return '';
30 | }
31 |
32 | }
33 |
--------------------------------------------------------------------------------
/src/providers/github.ts:
--------------------------------------------------------------------------------
1 | import { AbstractProvider } from '~providers/AbstractProvider';
2 |
3 | export class GitHubProvider extends AbstractProvider {
4 | public get dirClass(): string {
5 | return '.octicon-file-directory-fill';
6 | }
7 |
8 | public get fileClass(): string {
9 | return '.octicon-file';
10 | }
11 |
12 | public get iconClass(): string {
13 | return '.octicon';
14 | }
15 |
16 | public get itemsClass(): string {
17 | return '.js-navigation-item';
18 | }
19 |
20 | public get nameClass(): string {
21 | return '.js-navigation-open';
22 | }
23 |
24 | public get svgClass(): string | undefined {
25 | return '.octicon-file-text';
26 | }
27 |
28 | public get styles(): string {
29 | return '';
30 | }
31 |
32 | }
33 |
--------------------------------------------------------------------------------
/src/providers/githubCodeView.ts:
--------------------------------------------------------------------------------
1 | import { AbstractProvider } from '~providers/AbstractProvider';
2 |
3 | export class GitHubCodeViewProvider extends AbstractProvider {
4 | public get dirClass(): string {
5 | return '.icon-directory';
6 | }
7 |
8 | public get fileClass(): string {
9 | return '.octicon-file';
10 | }
11 |
12 | public get iconClass(): string {
13 | return 'svg';
14 | }
15 |
16 | public get itemsClass(): string {
17 | return '.react-directory-filename-column';
18 | }
19 |
20 | public get nameClass(): string {
21 | return '.react-directory-truncate';
22 | }
23 |
24 | public get svgClass(): string | undefined {
25 | return '.color-fg-muted';
26 | }
27 |
28 | public get styles(): string {
29 | return '';
30 | }
31 |
32 | }
33 |
--------------------------------------------------------------------------------
/src/providers/githubCodeViewTree.ts:
--------------------------------------------------------------------------------
1 | import { AbstractProvider } from '~providers/AbstractProvider';
2 |
3 | export class GitHubCodeViewTreeProvider extends AbstractProvider {
4 | public get dirClass(): string {
5 | return '.PRIVATE_TreeView-directory-icon';
6 | }
7 |
8 | public get fileClass(): string {
9 | return '.octicon-file';
10 | }
11 |
12 | public get iconClass(): string {
13 | return '.PRIVATE_TreeView-item-visual';
14 | }
15 |
16 | public get itemsClass(): string {
17 | return '.PRIVATE_TreeView-item-content';
18 | }
19 |
20 | public get nameClass(): string {
21 | return '.PRIVATE_TreeView-item-content-text';
22 | }
23 |
24 | public get svgClass(): string | undefined {
25 | return undefined;
26 | }
27 |
28 | public get styles(): string {
29 | return '';
30 | }
31 |
32 | }
33 |
--------------------------------------------------------------------------------
/src/providers/gitlab.ts:
--------------------------------------------------------------------------------
1 | import { AbstractProvider } from '~providers/AbstractProvider';
2 |
3 | export class GitLabProvider extends AbstractProvider {
4 | public get dirClass(): string {
5 | return '.folder-icon';
6 | }
7 |
8 | public get fileClass(): string {
9 | return '.file-icon';
10 | }
11 |
12 | public get iconClass(): string {
13 | return '.tree-item-link > span:first-child';
14 | }
15 |
16 | public get itemsClass(): string {
17 | return '.tree-item';
18 | }
19 |
20 | public get nameClass(): string {
21 | return '.tree-item-link > span:last-child';
22 | }
23 |
24 | public get svgClass(): string | undefined {
25 | return undefined;
26 | }
27 |
28 | public get styles(): string {
29 | return '';
30 | }
31 |
32 | }
33 |
--------------------------------------------------------------------------------
/src/providers/pullRequests.ts:
--------------------------------------------------------------------------------
1 | import { AbstractProvider } from '~providers/AbstractProvider';
2 |
3 | export class PullRequestsProvider extends AbstractProvider {
4 | public get dirClass(): string {
5 | return '.octicon-file-directory-fill';
6 | }
7 |
8 | public get fileClass(): string {
9 | return '.octicon-file';
10 | }
11 |
12 | public get iconClass(): string {
13 | return '.ActionList-item-visual svg';
14 | }
15 |
16 | public get itemsClass(): string {
17 | return '.ActionList-item';
18 | }
19 |
20 | public get nameClass(): string {
21 | return '.ActionList-item-label';
22 | }
23 |
24 | public get svgClass(): string | undefined {
25 | return undefined;
26 | }
27 |
28 | public get styles(): string {
29 | return '';
30 | }
31 |
32 | }
33 |
--------------------------------------------------------------------------------
/src/providers/search.ts:
--------------------------------------------------------------------------------
1 | import { AbstractProvider } from '~providers/AbstractProvider';
2 |
3 | export class GitHubSearchProvider extends AbstractProvider {
4 | public get styles(): string {
5 | return '';
6 | }
7 |
8 | public get dirClass(): string {
9 | return '.octicon-file-directory';
10 | }
11 |
12 | public get fileClass(): string {
13 | return '.octicon-file';
14 | }
15 |
16 | public get iconClass(): string {
17 | return '.octicon-file';
18 | }
19 |
20 | public get itemsClass(): string {
21 | return '.tree-browser-result';
22 | }
23 |
24 | public get nameClass(): string {
25 | return '.tree-browser-result marked-text';
26 | }
27 |
28 | public get svgClass(): string | undefined {
29 | return '.octicon-file-text';
30 | }
31 |
32 | }
33 |
--------------------------------------------------------------------------------
/svgo.config.json:
--------------------------------------------------------------------------------
1 | {
2 | "plugins": [
3 | {
4 | "name": "preset-default",
5 | "params": {
6 | "overrides": {
7 | "removeViewBox": false
8 | }
9 | }
10 | }
11 | ]
12 | }
--------------------------------------------------------------------------------
/techstack.md:
--------------------------------------------------------------------------------
1 |
36 |
37 |
38 | # Tech Stack File
39 |  [mallowigi/a-file-icon-web](https://github.com/mallowigi/a-file-icon-web)
40 |
41 | |36
Tools used|12/14/23
Report generated|
42 | |------|------|
43 |
44 |
45 | ##
Languages (3)
46 |
47 |
48 |
49 |
50 | CSS 3
51 |
52 |
53 | |
54 |
55 |
56 |
57 |
58 | JavaScript
59 |
60 |
61 | |
62 |
63 |
64 |
65 |
66 | TypeScript
67 |
68 |
69 | |
70 |
71 |
72 |
73 |
74 | ##
Frameworks (2)
75 |
76 |
77 |
78 |
79 | Node.js
80 |
81 |
82 | |
83 |
84 |
85 |
86 |
87 | React
88 |
89 | v18.2.0
90 | |
91 |
92 |
93 |
94 |
95 | ##
DevOps (5)
96 |
97 |
98 |
99 |
100 | Babel
101 |
102 | v7.23.5
103 | |
104 |
105 |
106 |
107 |
108 | Git
109 |
110 |
111 | |
112 |
113 |
114 |
115 |
116 | Prettier
117 |
118 | v2.8.8
119 | |
120 |
121 |
122 |
123 |
124 | gulp
125 |
126 | v4.0.2
127 | |
128 |
129 |
130 |
131 |
132 | npm
133 |
134 |
135 | |
136 |
137 |
138 |
139 |
140 | ## Other (2)
141 |
142 |
143 |
144 |
145 | Sirv
146 |
147 |
148 | |
149 |
150 |
151 |
152 |
153 | Underscore
154 |
155 |
156 | |
157 |
158 |
159 |
160 |
161 |
162 | ##
Open source packages (24)
163 |
164 | ##
npm (24)
165 |
166 | |NAME|VERSION|LAST UPDATED|LAST UPDATED BY|LICENSE|VULNERABILITIES|
167 | |:------|:------|:------|:------|:------|:------|
168 | |[@babel/core](https://www.npmjs.com/@babel/core)|v7.23.5|11/30/23|renovate[bot] |MIT|N/A|
169 | |[@babel/plugin-proposal-class-properties](https://www.npmjs.com/@babel/plugin-proposal-class-properties)|v7.18.6|11/30/23|renovate[bot] |MIT|N/A|
170 | |[@babel/plugin-syntax-dynamic-import](https://www.npmjs.com/@babel/plugin-syntax-dynamic-import)|v7.8.3|11/30/23|renovate[bot] |MIT|N/A|
171 | |[@babel/plugin-transform-runtime](https://www.npmjs.com/@babel/plugin-transform-runtime)|v7.23.4|11/30/23|renovate[bot] |MIT|N/A|
172 | |[@babel/preset-env](https://www.npmjs.com/@babel/preset-env)|v7.23.5|11/30/23|renovate[bot] |MIT|N/A|
173 | |[@babel/runtime](https://www.npmjs.com/@babel/runtime)|v7.23.5|11/30/23|renovate[bot] |MIT|N/A|
174 | |[@emotion/styled](https://www.npmjs.com/@emotion/styled)|v11.11.0|07/07/23|renovate[bot] |MIT|N/A|
175 | |[@types/node](https://www.npmjs.com/@types/node)|v18.19.0|11/30/23|renovate[bot] |MIT|N/A|
176 | |[@types/react](https://www.npmjs.com/@types/react)|v18.2.39|11/30/23|renovate[bot] |MIT|N/A|
177 | |[@types/react-dom](https://www.npmjs.com/@types/react-dom)|v18.2.17|11/30/23|renovate[bot] |MIT|N/A|
178 | |[compression](https://www.npmjs.com/compression)|v1.7.4|11/30/23|renovate[bot] |MIT|N/A|
179 | |[gulp-clean](https://www.npmjs.com/gulp-clean)|v0.4.0|11/27/22|Elior |MIT|N/A|
180 | |[gulp-clean-css](https://www.npmjs.com/gulp-clean-css)|v4.3.0|11/27/22|Elior |MIT|N/A|
181 | |[gulp-copy](https://www.npmjs.com/gulp-copy)|v4.0.1|11/27/22|Elior |MIT|N/A|
182 | |[gulp-iconfont](https://www.npmjs.com/gulp-iconfont)|v11.0.1|11/27/22|Elior |MIT|N/A|
183 | |[gulp-rename](https://www.npmjs.com/gulp-rename)|v2.0.0|11/27/22|Elior |MIT|N/A|
184 | |[gulp-sass](https://www.npmjs.com/gulp-sass)|v5.1.0|11/27/22|Elior |MIT|N/A|
185 | |[gulp-zip](https://www.npmjs.com/gulp-zip)|v5.1.0|11/27/22|Elior |MIT|N/A|
186 | |[js-yaml](https://www.npmjs.com/js-yaml)|v4.1.0|06/10/21|Renovate Bot |MIT|N/A|
187 | |[lodash.debounce](https://www.npmjs.com/lodash.debounce)|v4.0.8|02/17/23|renovate[bot] |MIT|N/A|
188 | |[node-fetch](https://www.npmjs.com/node-fetch)|v2.6.11|11/30/23|renovate[bot] |MIT|N/A|
189 | |[npm-run-all](https://www.npmjs.com/npm-run-all)|v4.1.5|11/30/23|renovate[bot] |MIT|N/A|
190 | |[react-dom](https://www.npmjs.com/react-dom)|v18.2.0|11/30/23|renovate[bot] |MIT|N/A|
191 | |[rimraf](https://www.npmjs.com/rimraf)|v3.0.2|03/25/23|renovate[bot] |ISC|N/A|
192 |
193 |
194 |
195 |
196 | Generated via [Stack File](https://github.com/marketplace/stack-file)
197 |
--------------------------------------------------------------------------------
/techstack.yml:
--------------------------------------------------------------------------------
1 | repo_name: mallowigi/a-file-icon-web
2 | report_id: d74d2ec16c7f6f733fc03981df970573
3 | repo_type: Public
4 | timestamp: '2023-12-14T13:14:21+00:00'
5 | requested_by: mallowigi
6 | provider: github
7 | branch: master
8 | detected_tools_count: 36
9 | tools:
10 | - name: CSS 3
11 | description: The latest evolution of the Cascading Style Sheets language
12 | website_url: https://developer.mozilla.org/en-US/docs/Web/CSS/CSS3
13 | open_source: true
14 | hosted_saas: false
15 | category: Languages & Frameworks
16 | sub_category: Languages
17 | image_url: https://img.stackshare.io/service/6727/css.png
18 | detection_source: Repo Metadata
19 | - name: JavaScript
20 | description: Lightweight, interpreted, object-oriented language with first-class
21 | functions
22 | website_url: https://developer.mozilla.org/en-US/docs/Web/JavaScript
23 | open_source: true
24 | hosted_saas: false
25 | category: Languages & Frameworks
26 | sub_category: Languages
27 | image_url: https://img.stackshare.io/service/1209/javascript.jpeg
28 | detection_source: Repo Metadata
29 | - name: TypeScript
30 | description: A superset of JavaScript that compiles to clean JavaScript output
31 | website_url: http://www.typescriptlang.org
32 | license: Apache-2.0
33 | open_source: true
34 | hosted_saas: false
35 | category: Languages & Frameworks
36 | sub_category: Languages
37 | image_url: https://img.stackshare.io/service/1612/bynNY5dJ.jpg
38 | detection_source: Repo Metadata
39 | - name: Node.js
40 | description: A platform built on Chrome's JavaScript runtime for easily building
41 | fast, scalable network applications
42 | website_url: http://nodejs.org/
43 | open_source: true
44 | hosted_saas: false
45 | category: Languages & Frameworks
46 | sub_category: Frameworks (Full Stack)
47 | image_url: https://img.stackshare.io/service/1011/n1JRsFeB_400x400.png
48 | detection_source: package.json
49 | last_updated_by: Elior
50 | last_updated_on: 2020-06-21 08:54:30.000000000 Z
51 | - name: React
52 | description: A JavaScript library for building user interfaces
53 | website_url: https://reactjs.org/
54 | version: 18.2.0
55 | license: MIT
56 | open_source: true
57 | hosted_saas: false
58 | category: Libraries
59 | sub_category: Javascript UI Libraries
60 | image_url: https://img.stackshare.io/service/1020/OYIaJ1KK.png
61 | detection_source_url: https://github.com/mallowigi/a-file-icon-web/blob/master/package-lock.json
62 | detection_source: package.json
63 | last_updated_by: renovate[bot]
64 | last_updated_on: 2023-11-30 22:43:17.000000000 Z
65 | - name: Babel
66 | description: Use next generation JavaScript, today.
67 | website_url: http://babeljs.io/
68 | version: 7.23.5
69 | license: MIT
70 | open_source: true
71 | hosted_saas: false
72 | category: Build, Test, Deploy
73 | sub_category: JavaScript Compilers
74 | image_url: https://img.stackshare.io/service/2739/-1wfGjNw.png
75 | detection_source_url: https://github.com/mallowigi/a-file-icon-web/blob/master/package-lock.json
76 | detection_source: package.json
77 | last_updated_by: renovate[bot]
78 | last_updated_on: 2023-11-30 22:43:17.000000000 Z
79 | - name: Git
80 | description: Fast, scalable, distributed revision control system
81 | website_url: http://git-scm.com/
82 | open_source: true
83 | hosted_saas: false
84 | category: Build, Test, Deploy
85 | sub_category: Version Control System
86 | image_url: https://img.stackshare.io/service/1046/git.png
87 | detection_source: Repo Metadata
88 | - name: Prettier
89 | description: 'Prettier is an opinionated code formatter. '
90 | website_url: https://prettier.io/
91 | version: 2.8.8
92 | license: MIT
93 | open_source: true
94 | hosted_saas: false
95 | category: Build, Test, Deploy
96 | sub_category: Code Review
97 | image_url: https://img.stackshare.io/service/7035/default_66f265943abed56bcdbfca1c866a4261b1fbb063.jpg
98 | detection_source_url: https://github.com/mallowigi/a-file-icon-web/blob/master/package-lock.json
99 | detection_source: package.json
100 | last_updated_by: renovate[bot]
101 | last_updated_on: 2023-05-28 21:07:22.000000000 Z
102 | - name: gulp
103 | description: The streaming build system
104 | website_url: http://gulpjs.com/
105 | version: 4.0.2
106 | license: MIT
107 | open_source: true
108 | hosted_saas: false
109 | category: Build, Test, Deploy
110 | sub_category: JS Build Tools / JS Task Runners
111 | image_url: https://img.stackshare.io/service/844/iruTC031.png
112 | detection_source_url: https://github.com/mallowigi/a-file-icon-web/blob/master/package-lock.json
113 | detection_source: package.json
114 | last_updated_by: Elior
115 | last_updated_on: 2022-11-27 14:55:34.000000000 Z
116 | - name: npm
117 | description: The package manager for JavaScript.
118 | website_url: https://www.npmjs.com/
119 | open_source: false
120 | hosted_saas: false
121 | category: Build, Test, Deploy
122 | sub_category: Front End Package Manager
123 | image_url: https://img.stackshare.io/service/1120/lejvzrnlpb308aftn31u.png
124 | detection_source: package.json
125 | last_updated_by: Elior
126 | last_updated_on: 2020-06-21 08:54:30.000000000 Z
127 | - name: Sirv
128 | description: Revolutionary image hosting, optimization and delivery
129 | website_url: https://sirv.com
130 | open_source: false
131 | hosted_saas: false
132 | image_url: https://img.stackshare.io/service/7329/yZ2B2IF1_normal.jpg
133 | detection_source: package.json
134 | last_updated_by: Elior
135 | last_updated_on: 2020-06-21 08:54:30.000000000 Z
136 | - name: Underscore
137 | description: JavaScript's utility _ belt
138 | website_url: http://underscorejs.org/
139 | license: MIT
140 | open_source: true
141 | hosted_saas: false
142 | category: Libraries
143 | sub_category: Javascript Utilities & Libraries
144 | image_url: https://img.stackshare.io/service/1150/underscore-js.png
145 | detection_source: package.json
146 | last_updated_by: renovate[bot]
147 | last_updated_on: 2023-11-30 22:43:17.000000000 Z
148 | - name: "@babel/core"
149 | description: Babel compiler core
150 | package_url: https://www.npmjs.com/@babel/core
151 | version: 7.23.5
152 | license: MIT
153 | open_source: true
154 | hosted_saas: false
155 | category: Libraries
156 | sub_category: npm Packages
157 | image_url: https://img.stackshare.io/package/15810/default_004658cda9b38934f2871435e9dc15608c86e8be.png
158 | detection_source_url: https://github.com/mallowigi/a-file-icon-web/blob/master/package-lock.json
159 | detection_source: package.json
160 | last_updated_by: renovate[bot]
161 | last_updated_on: 2023-11-30 22:43:17.000000000 Z
162 | - name: "@babel/plugin-proposal-class-properties"
163 | description: This plugin transforms static class properties as well as properties
164 | declared with the property initializer syntax
165 | package_url: https://www.npmjs.com/@babel/plugin-proposal-class-properties
166 | version: 7.18.6
167 | license: MIT
168 | open_source: true
169 | hosted_saas: false
170 | category: Libraries
171 | sub_category: npm Packages
172 | image_url: https://img.stackshare.io/package/15903/default_3af1504b6f77c55205ba630fe08c472f43b95f6e.png
173 | detection_source_url: https://github.com/mallowigi/a-file-icon-web/blob/master/package-lock.json
174 | detection_source: package.json
175 | last_updated_by: renovate[bot]
176 | last_updated_on: 2023-11-30 22:43:17.000000000 Z
177 | - name: "@babel/plugin-syntax-dynamic-import"
178 | description: Allow parsing of import
179 | package_url: https://www.npmjs.com/@babel/plugin-syntax-dynamic-import
180 | version: 7.8.3
181 | license: MIT
182 | open_source: true
183 | hosted_saas: false
184 | category: Libraries
185 | sub_category: npm Packages
186 | image_url: https://img.stackshare.io/package/16080/default_5fd43aeff4d6a935abc13737de01a0355210499d.png
187 | detection_source_url: https://github.com/mallowigi/a-file-icon-web/blob/master/package-lock.json
188 | detection_source: package.json
189 | last_updated_by: renovate[bot]
190 | last_updated_on: 2023-11-30 22:43:17.000000000 Z
191 | - name: "@babel/plugin-transform-runtime"
192 | description: Externalise references to helpers and builtins
193 | package_url: https://www.npmjs.com/@babel/plugin-transform-runtime
194 | version: 7.23.4
195 | license: MIT
196 | open_source: true
197 | hosted_saas: false
198 | category: Libraries
199 | sub_category: npm Packages
200 | image_url: https://img.stackshare.io/package/15952/default_4040fefea2f98006727f63d042275b96a275ab2d.png
201 | detection_source_url: https://github.com/mallowigi/a-file-icon-web/blob/master/package-lock.json
202 | detection_source: package.json
203 | last_updated_by: renovate[bot]
204 | last_updated_on: 2023-11-30 22:43:17.000000000 Z
205 | - name: "@babel/preset-env"
206 | description: A Babel preset for each environment
207 | package_url: https://www.npmjs.com/@babel/preset-env
208 | version: 7.23.5
209 | license: MIT
210 | open_source: true
211 | hosted_saas: false
212 | category: Libraries
213 | sub_category: npm Packages
214 | image_url: https://img.stackshare.io/package/15819/default_98aa227f51aa9d787815ec3fd98d0ab2bfebbb91.png
215 | detection_source_url: https://github.com/mallowigi/a-file-icon-web/blob/master/package-lock.json
216 | detection_source: package.json
217 | last_updated_by: renovate[bot]
218 | last_updated_on: 2023-11-30 22:43:17.000000000 Z
219 | - name: "@babel/runtime"
220 | description: Babel's modular runtime helpers
221 | package_url: https://www.npmjs.com/@babel/runtime
222 | version: 7.23.5
223 | license: MIT
224 | open_source: true
225 | hosted_saas: false
226 | category: Libraries
227 | sub_category: npm Packages
228 | image_url: https://img.stackshare.io/package/15934/default_54b691c123fc8979741e800e4dcd3936c0f3b246.png
229 | detection_source_url: https://github.com/mallowigi/a-file-icon-web/blob/master/package-lock.json
230 | detection_source: package.json
231 | last_updated_by: renovate[bot]
232 | last_updated_on: 2023-11-30 22:43:17.000000000 Z
233 | - name: "@emotion/styled"
234 | description: Styled API for emotion
235 | package_url: https://www.npmjs.com/@emotion/styled
236 | version: 11.11.0
237 | license: MIT
238 | open_source: true
239 | hosted_saas: false
240 | category: Libraries
241 | sub_category: npm Packages
242 | image_url: https://img.stackshare.io/package/16702/default_4b738bf1758d38dddd276589bbea47fca5a990df.png
243 | detection_source_url: https://github.com/mallowigi/a-file-icon-web/blob/master/package-lock.json
244 | detection_source: package.json
245 | last_updated_by: renovate[bot]
246 | last_updated_on: 2023-07-07 01:42:02.000000000 Z
247 | - name: "@types/node"
248 | description: TypeScript definitions for Node.js
249 | package_url: https://www.npmjs.com/@types/node
250 | version: 18.19.0
251 | license: MIT
252 | open_source: true
253 | hosted_saas: false
254 | category: Libraries
255 | sub_category: npm Packages
256 | image_url: https://img.stackshare.io/package/15809/default_5e5e8ac63beda29f31f1844df64d4b8247570a66.png
257 | detection_source_url: https://github.com/mallowigi/a-file-icon-web/blob/master/package-lock.json
258 | detection_source: package.json
259 | last_updated_by: renovate[bot]
260 | last_updated_on: 2023-11-30 22:43:17.000000000 Z
261 | - name: "@types/react"
262 | description: TypeScript definitions for React
263 | package_url: https://www.npmjs.com/@types/react
264 | version: 18.2.39
265 | license: MIT
266 | open_source: true
267 | hosted_saas: false
268 | category: Libraries
269 | sub_category: npm Packages
270 | image_url: https://img.stackshare.io/package/15894/default_1d65e37e65b7f80761374f0202776043277d505d.png
271 | detection_source_url: https://github.com/mallowigi/a-file-icon-web/blob/master/package-lock.json
272 | detection_source: package.json
273 | last_updated_by: renovate[bot]
274 | last_updated_on: 2023-11-30 22:43:17.000000000 Z
275 | - name: "@types/react-dom"
276 | description: TypeScript definitions for React
277 | package_url: https://www.npmjs.com/@types/react-dom
278 | version: 18.2.17
279 | license: MIT
280 | open_source: true
281 | hosted_saas: false
282 | category: Libraries
283 | sub_category: npm Packages
284 | image_url: https://img.stackshare.io/package/15946/default_54b691c123fc8979741e800e4dcd3936c0f3b246.png
285 | detection_source_url: https://github.com/mallowigi/a-file-icon-web/blob/master/package-lock.json
286 | detection_source: package.json
287 | last_updated_by: renovate[bot]
288 | last_updated_on: 2023-11-30 22:43:17.000000000 Z
289 | - name: compression
290 | description: Node.js compression middleware
291 | package_url: https://www.npmjs.com/compression
292 | version: 1.7.4
293 | license: MIT
294 | open_source: true
295 | hosted_saas: false
296 | category: Libraries
297 | sub_category: npm Packages
298 | image_url: https://img.stackshare.io/package/16187/default_9a7a7dcd69c12c746dc4000dc4d1b75758079c9f.png
299 | detection_source_url: https://github.com/mallowigi/a-file-icon-web/blob/master/package-lock.json
300 | detection_source: package.json
301 | last_updated_by: renovate[bot]
302 | last_updated_on: 2023-11-30 22:43:17.000000000 Z
303 | - name: gulp-clean
304 | description: A gulp plugin for removing files and folders
305 | package_url: https://www.npmjs.com/gulp-clean
306 | version: 0.4.0
307 | license: MIT
308 | open_source: true
309 | hosted_saas: false
310 | category: Libraries
311 | sub_category: npm Packages
312 | image_url: https://img.stackshare.io/package/16218/default_41f04716a804e853d5c38a5b81ee0ea8a842ad82.png
313 | detection_source_url: https://github.com/mallowigi/a-file-icon-web/blob/master/package-lock.json
314 | detection_source: package.json
315 | last_updated_by: Elior
316 | last_updated_on: 2022-11-27 14:55:34.000000000 Z
317 | - name: gulp-clean-css
318 | description: Minify css with clean-css
319 | package_url: https://www.npmjs.com/gulp-clean-css
320 | version: 4.3.0
321 | license: MIT
322 | open_source: true
323 | hosted_saas: false
324 | category: Libraries
325 | sub_category: npm Packages
326 | image_url: https://img.stackshare.io/package/16301/default_3b7197abc4df3d7fa7c5292f17b2e6fb0cd1c8d4.png
327 | detection_source_url: https://github.com/mallowigi/a-file-icon-web/blob/master/package-lock.json
328 | detection_source: package.json
329 | last_updated_by: Elior
330 | last_updated_on: 2022-11-27 14:55:34.000000000 Z
331 | - name: gulp-copy
332 | description: Plugin copying files to a new destination and using that destination
333 | for other actions
334 | package_url: https://www.npmjs.com/gulp-copy
335 | version: 4.0.1
336 | license: MIT
337 | open_source: true
338 | hosted_saas: false
339 | category: Libraries
340 | sub_category: npm Packages
341 | image_url: https://img.stackshare.io/package/17603/default_b06ec1ccf403dac1459596b8571a4fb6a46577e1.png
342 | detection_source_url: https://github.com/mallowigi/a-file-icon-web/blob/master/package-lock.json
343 | detection_source: package.json
344 | last_updated_by: Elior
345 | last_updated_on: 2022-11-27 14:55:34.000000000 Z
346 | - name: gulp-iconfont
347 | description: Create icon fonts from several SVG icons
348 | package_url: https://www.npmjs.com/gulp-iconfont
349 | version: 11.0.1
350 | license: MIT
351 | open_source: true
352 | hosted_saas: false
353 | category: Libraries
354 | sub_category: npm Packages
355 | image_url: https://img.stackshare.io/package/18489/default_61b1ea0018660481e466ec0762a41ac8c66840b1.png
356 | detection_source_url: https://github.com/mallowigi/a-file-icon-web/blob/master/package-lock.json
357 | detection_source: package.json
358 | last_updated_by: Elior
359 | last_updated_on: 2022-11-27 14:55:34.000000000 Z
360 | - name: gulp-rename
361 | description: Rename files
362 | package_url: https://www.npmjs.com/gulp-rename
363 | version: 2.0.0
364 | license: MIT
365 | open_source: true
366 | hosted_saas: false
367 | category: Libraries
368 | sub_category: npm Packages
369 | image_url: https://img.stackshare.io/package/15895/default_e4668902f8489350db9b0fb228523a571ef05b26.png
370 | detection_source_url: https://github.com/mallowigi/a-file-icon-web/blob/master/package-lock.json
371 | detection_source: package.json
372 | last_updated_by: Elior
373 | last_updated_on: 2022-11-27 14:55:34.000000000 Z
374 | - name: gulp-sass
375 | description: Gulp plugin for sass
376 | package_url: https://www.npmjs.com/gulp-sass
377 | version: 5.1.0
378 | license: MIT
379 | open_source: true
380 | hosted_saas: false
381 | category: Libraries
382 | sub_category: npm Packages
383 | image_url: https://img.stackshare.io/package/16002/default_f8be85789693a9901dbcfa43c135c60525ae49a1.png
384 | detection_source_url: https://github.com/mallowigi/a-file-icon-web/blob/master/package-lock.json
385 | detection_source: package.json
386 | last_updated_by: Elior
387 | last_updated_on: 2022-11-27 14:55:34.000000000 Z
388 | - name: gulp-zip
389 | description: ZIP compress files
390 | package_url: https://www.npmjs.com/gulp-zip
391 | version: 5.1.0
392 | license: MIT
393 | open_source: true
394 | hosted_saas: false
395 | category: Libraries
396 | sub_category: npm Packages
397 | image_url: https://img.stackshare.io/package/16846/default_5c6919c5e02b8e6c83f3a2b23db5b6962e3caca0.png
398 | detection_source_url: https://github.com/mallowigi/a-file-icon-web/blob/master/package-lock.json
399 | detection_source: package.json
400 | last_updated_by: Elior
401 | last_updated_on: 2022-11-27 14:55:34.000000000 Z
402 | - name: js-yaml
403 | description: YAML 1.2 parser and serializer
404 | package_url: https://www.npmjs.com/js-yaml
405 | version: 4.1.0
406 | license: MIT
407 | open_source: true
408 | hosted_saas: false
409 | category: Libraries
410 | sub_category: npm Packages
411 | image_url: https://img.stackshare.io/package/15997/default_f8be85789693a9901dbcfa43c135c60525ae49a1.png
412 | detection_source_url: https://github.com/mallowigi/a-file-icon-web/blob/master/package-lock.json
413 | detection_source: package.json
414 | last_updated_by: Renovate Bot
415 | last_updated_on: 2021-06-10 19:19:22.000000000 Z
416 | - name: lodash.debounce
417 | description: The lodash method `_.debounce` exported as a module
418 | package_url: https://www.npmjs.com/lodash.debounce
419 | version: 4.0.8
420 | license: MIT
421 | open_source: true
422 | hosted_saas: false
423 | category: Libraries
424 | sub_category: npm Packages
425 | image_url: https://img.stackshare.io/package/16481/default_73c88a18b684e01cbdbf945631a40a44aff5a777.png
426 | detection_source_url: https://github.com/mallowigi/a-file-icon-web/blob/master/package-lock.json
427 | detection_source: package.json
428 | last_updated_by: renovate[bot]
429 | last_updated_on: 2023-02-17 02:18:59.000000000 Z
430 | - name: node-fetch
431 | description: A light-weight module that brings window.fetch to node.js
432 | package_url: https://www.npmjs.com/node-fetch
433 | version: 2.6.11
434 | license: MIT
435 | open_source: true
436 | hosted_saas: false
437 | category: Libraries
438 | sub_category: npm Packages
439 | image_url: https://img.stackshare.io/package/15978/default_f49d4c116f8ea0155f4d92673b084378bba02760.png
440 | detection_source_url: https://github.com/mallowigi/a-file-icon-web/blob/master/package-lock.json
441 | detection_source: package.json
442 | last_updated_by: renovate[bot]
443 | last_updated_on: 2023-11-30 22:43:17.000000000 Z
444 | - name: npm-run-all
445 | description: A CLI tool to run multiple npm-scripts in parallel or sequential
446 | package_url: https://www.npmjs.com/npm-run-all
447 | version: 4.1.5
448 | license: MIT
449 | open_source: true
450 | hosted_saas: false
451 | category: Libraries
452 | sub_category: npm Packages
453 | image_url: https://img.stackshare.io/package/15926/default_b45165a5d30e541ab11711a34a78209b3e8ed7fd.png
454 | detection_source_url: https://github.com/mallowigi/a-file-icon-web/blob/master/package-lock.json
455 | detection_source: package.json
456 | last_updated_by: renovate[bot]
457 | last_updated_on: 2023-11-30 22:43:17.000000000 Z
458 | - name: react-dom
459 | description: React package for working with the DOM
460 | package_url: https://www.npmjs.com/react-dom
461 | version: 18.2.0
462 | license: MIT
463 | open_source: true
464 | hosted_saas: false
465 | category: Libraries
466 | sub_category: npm Packages
467 | image_url: https://img.stackshare.io/package/15808/default_14fd11531839d935f920b6d55bd6f3528c890ad7.png
468 | detection_source_url: https://github.com/mallowigi/a-file-icon-web/blob/master/package-lock.json
469 | detection_source: package.json
470 | last_updated_by: renovate[bot]
471 | last_updated_on: 2023-11-30 22:43:17.000000000 Z
472 | - name: rimraf
473 | description: A deep deletion module for node
474 | package_url: https://www.npmjs.com/rimraf
475 | version: 3.0.2
476 | license: ISC
477 | open_source: true
478 | hosted_saas: false
479 | category: Libraries
480 | sub_category: npm Packages
481 | image_url: https://img.stackshare.io/package/15807/default_db4a7791d2f1174547374b9b587bc10fec088a5a.png
482 | detection_source_url: https://github.com/mallowigi/a-file-icon-web/blob/master/package-lock.json
483 | detection_source: package.json
484 | last_updated_by: renovate[bot]
485 | last_updated_on: 2023-03-25 01:45:10.000000000 Z
486 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "plasmo/templates/tsconfig.base",
3 | "exclude": [
4 | "node_modules"
5 | ],
6 | "include": [
7 | ".plasmo/index.d.ts",
8 | ".plasmo/**/*",
9 | "./**/*.ts",
10 | "./**/*.tsx"
11 | ],
12 | "compilerOptions": {
13 | "types": [],
14 | "paths": {
15 | "~*": [
16 | "./src/*"
17 | ]
18 | },
19 | "baseUrl": "."
20 | }
21 | }
22 |
--------------------------------------------------------------------------------