Skip to content

Commit 840ac38

Browse files
committed
feat: 扩展打包版权注释规则
补充 Apollo、GraphQL、表单校验、UI 样式、i18n、安全、Markdown、媒体和图形可视化等常见前端库的 bundle license 识别。 补齐新增技术名称的官网或仓库链接。 插件版本升级到 1.2.4。
1 parent e10143e commit 840ac38

3 files changed

Lines changed: 246 additions & 1 deletion

File tree

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "stackprism",
33
"private": true,
4-
"version": "1.2.3",
4+
"version": "1.2.4",
55
"type": "module",
66
"description": "StackPrism 用于检测网页前端、后端、CDN、SaaS、广告营销、统计、登录、支付、网站程序和主题模板线索。",
77
"scripts": {

public/rules/page/bundle-license-libraries.json

Lines changed: 224 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -241,6 +241,230 @@
241241
"name": "Highlight.js",
242242
"url": "https://highlightjs.org",
243243
"patterns": ["Highlight\\.js|highlightjs|hljs(?:\\.min)?\\.js"]
244+
},
245+
{
246+
"name": "Apollo Client",
247+
"url": "https://www.apollographql.com/docs/react",
248+
"patterns": ["@apollo/client|Apollo Client|apollo-client"]
249+
},
250+
{
251+
"name": "GraphQL",
252+
"url": "https://graphql.org",
253+
"patterns": ["\\bGraphQL\\b|graphql(?:\\.min)?\\.js|graphql-js"]
254+
},
255+
{
256+
"name": "SWR",
257+
"url": "https://swr.vercel.app",
258+
"patterns": ["\\bSWR\\b|swr\\.vercel\\.app|vercel/swr"]
259+
},
260+
{
261+
"name": "Relay",
262+
"url": "https://relay.dev",
263+
"patterns": ["Relay Runtime|relay-runtime|\\bRelay\\b[\\s\\S]{0,80}(?:MIT|license|copyright)"]
264+
},
265+
{
266+
"name": "urql",
267+
"url": "https://urql.dev",
268+
"patterns": ["\\burql\\b|@urql/(?:core|exchange|devtools)"]
269+
},
270+
{
271+
"name": "React Hook Form",
272+
"url": "https://react-hook-form.com",
273+
"patterns": ["react-hook-form|React Hook Form"]
274+
},
275+
{
276+
"name": "Zod",
277+
"url": "https://zod.dev",
278+
"patterns": ["\\bZod\\b|colinhacks/zod"]
279+
},
280+
{
281+
"name": "Yup",
282+
"url": "https://github.com/jquense/yup",
283+
"patterns": ["\\bYup\\b[\\s\\S]{0,80}(?:MIT|license|copyright)|jquense/yup"]
284+
},
285+
{
286+
"name": "Formik",
287+
"url": "https://formik.org",
288+
"patterns": ["\\bFormik\\b|formik\\.org|jaredpalmer/formik"]
289+
},
290+
{
291+
"name": "Immer",
292+
"url": "https://immerjs.github.io/immer",
293+
"patterns": ["\\bImmer\\b|immerjs|immer(?:\\.umd)?\\.js"]
294+
},
295+
{
296+
"name": "Immutable.js",
297+
"url": "https://immutable-js.com",
298+
"patterns": ["Immutable\\.js|immutable-js|facebook/immutable-js"]
299+
},
300+
{
301+
"category": "UI / CSS 框架",
302+
"name": "MUI",
303+
"url": "https://mui.com",
304+
"patterns": ["@mui/(?:material|system|base|icons-material)|Material UI|\\bMUI\\b"]
305+
},
306+
{
307+
"category": "UI / CSS 框架",
308+
"name": "Ant Design",
309+
"url": "https://ant.design",
310+
"patterns": ["antd|Ant Design|ant-design"]
311+
},
312+
{
313+
"category": "UI / CSS 框架",
314+
"name": "Chakra UI",
315+
"url": "https://chakra-ui.com",
316+
"patterns": ["@chakra-ui/|Chakra UI"]
317+
},
318+
{
319+
"category": "UI / CSS 框架",
320+
"name": "Mantine",
321+
"url": "https://mantine.dev",
322+
"patterns": ["@mantine/|Mantine"]
323+
},
324+
{
325+
"category": "UI / CSS 框架",
326+
"name": "Headless UI",
327+
"url": "https://headlessui.com",
328+
"patterns": ["@headlessui/|Headless UI"]
329+
},
330+
{
331+
"category": "UI / CSS 框架",
332+
"name": "Emotion",
333+
"url": "https://emotion.sh",
334+
"patterns": ["@emotion/(?:react|styled|css|cache)|emotion\\.sh"]
335+
},
336+
{
337+
"category": "UI / CSS 框架",
338+
"name": "styled-components",
339+
"url": "https://styled-components.com",
340+
"patterns": ["styled-components|styled-components\\.com"]
341+
},
342+
{
343+
"category": "UI / CSS 框架",
344+
"name": "Tailwind Merge",
345+
"url": "https://github.com/dcastil/tailwind-merge",
346+
"patterns": ["tailwind-merge|Tailwind Merge"]
347+
},
348+
{
349+
"category": "UI / CSS 框架",
350+
"name": "class-variance-authority",
351+
"url": "https://cva.style",
352+
"patterns": ["class-variance-authority|cva\\.style"]
353+
},
354+
{
355+
"name": "clsx",
356+
"url": "https://github.com/lukeed/clsx",
357+
"patterns": ["\\bclsx\\b|lukeed/clsx"]
358+
},
359+
{
360+
"name": "i18next",
361+
"url": "https://www.i18next.com",
362+
"patterns": ["\\bi18next\\b|i18next\\.com"]
363+
},
364+
{
365+
"name": "react-i18next",
366+
"url": "https://react.i18next.com",
367+
"patterns": ["react-i18next|react\\.i18next\\.com"]
368+
},
369+
{
370+
"name": "js-cookie",
371+
"url": "https://github.com/js-cookie/js-cookie",
372+
"patterns": ["js-cookie|JavaScript Cookie"]
373+
},
374+
{
375+
"name": "uuid",
376+
"url": "https://github.com/uuidjs/uuid",
377+
"patterns": ["uuidjs/uuid|\\buuid\\b[\\s\\S]{0,80}(?:MIT|license|copyright)"]
378+
},
379+
{
380+
"name": "nanoid",
381+
"url": "https://github.com/ai/nanoid",
382+
"patterns": ["\\bnanoid\\b|ai/nanoid"]
383+
},
384+
{
385+
"name": "DOMPurify",
386+
"url": "https://github.com/cure53/DOMPurify",
387+
"patterns": ["DOMPurify|cure53/DOMPurify"]
388+
},
389+
{
390+
"name": "Marked",
391+
"url": "https://marked.js.org",
392+
"patterns": ["\\bMarked\\b|marked\\.js|markedjs"]
393+
},
394+
{
395+
"name": "Mermaid",
396+
"url": "https://mermaid.js.org",
397+
"patterns": ["\\bMermaid\\b|mermaid\\.js|mermaidjs"]
398+
},
399+
{
400+
"name": "KaTeX",
401+
"url": "https://katex.org",
402+
"patterns": ["\\bKaTeX\\b|katex\\.org"]
403+
},
404+
{
405+
"name": "MathJax",
406+
"url": "https://www.mathjax.org",
407+
"patterns": ["\\bMathJax\\b|mathjax\\.org"]
408+
},
409+
{
410+
"name": "PDF.js",
411+
"url": "https://mozilla.github.io/pdf.js",
412+
"patterns": ["PDF\\.js|pdfjs-dist|mozilla/pdf\\.js"]
413+
},
414+
{
415+
"name": "video.js",
416+
"url": "https://videojs.com",
417+
"patterns": ["video\\.js|videojs|videojs\\.com"]
418+
},
419+
{
420+
"name": "Hls.js",
421+
"url": "https://github.com/video-dev/hls.js",
422+
"patterns": ["Hls\\.js|hls\\.js|video-dev/hls\\.js"]
423+
},
424+
{
425+
"name": "Socket.IO",
426+
"url": "https://socket.io",
427+
"patterns": ["socket\\.io-client|Socket\\.IO|socket\\.io"]
428+
},
429+
{
430+
"name": "SortableJS",
431+
"url": "https://sortablejs.github.io/Sortable",
432+
"patterns": ["SortableJS|sortablejs|Sortable\\.create"]
433+
},
434+
{
435+
"name": "Hammer.js",
436+
"url": "https://hammerjs.github.io",
437+
"patterns": ["Hammer\\.js|hammerjs|hammerjs\\.github\\.io"]
438+
},
439+
{
440+
"name": "NProgress",
441+
"url": "https://ricostacruz.com/nprogress",
442+
"patterns": ["\\bNProgress\\b|nprogress(?:\\.min)?\\.js"]
443+
},
444+
{
445+
"name": "XState",
446+
"url": "https://xstate.js.org",
447+
"patterns": ["\\bXState\\b|xstate\\.js|statelyai/xstate"]
448+
},
449+
{
450+
"name": "Nivo",
451+
"url": "https://nivo.rocks",
452+
"patterns": ["@nivo/|\\bNivo\\b"]
453+
},
454+
{
455+
"name": "visx",
456+
"url": "https://airbnb.io/visx",
457+
"patterns": ["@visx/|\\bvisx\\b|airbnb\\.io/visx"]
458+
},
459+
{
460+
"name": "Cytoscape.js",
461+
"url": "https://js.cytoscape.org",
462+
"patterns": ["Cytoscape\\.js|cytoscape(?:\\.min)?\\.js|js\\.cytoscape\\.org"]
463+
},
464+
{
465+
"name": "Sigma.js",
466+
"url": "https://www.sigmajs.org",
467+
"patterns": ["Sigma\\.js|sigmajs|sigma\\.min\\.js"]
244468
}
245469
]
246470
}

public/tech-links.json

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,27 @@
44
"965": "https://www.drupal.org/project/ninesixtyfive",
55
"1140": "http://cssgrid.net",
66
"WebSocket": "https://developer.mozilla.org/docs/Web/API/WebSockets_API",
7+
"SWR": "https://swr.vercel.app",
8+
"Yup": "https://github.com/jquense/yup",
9+
"Formik": "https://formik.org",
10+
"Immer": "https://immerjs.github.io/immer",
11+
"Immutable.js": "https://immutable-js.com",
12+
"MUI": "https://mui.com",
13+
"clsx": "https://github.com/lukeed/clsx",
14+
"Tailwind Merge": "https://github.com/dcastil/tailwind-merge",
15+
"class-variance-authority": "https://cva.style",
16+
"DOMPurify": "https://github.com/cure53/DOMPurify",
17+
"Marked": "https://marked.js.org",
18+
"PDF.js": "https://mozilla.github.io/pdf.js",
19+
"video.js": "https://videojs.com",
20+
"SortableJS": "https://sortablejs.github.io/Sortable",
21+
"Hammer.js": "https://hammerjs.github.io",
22+
"NProgress": "https://ricostacruz.com/nprogress",
23+
"XState": "https://xstate.js.org",
24+
"Nivo": "https://nivo.rocks",
25+
"visx": "https://airbnb.io/visx",
26+
"Cytoscape.js": "https://js.cytoscape.org",
27+
"Sigma.js": "https://www.sigmajs.org",
728
"Apache Solr Admin": "https://solr.apache.org",
829
"Elasticvue": "https://elasticvue.com",
930
"Dejavu": "https://github.com/appbaseio/dejavu",

0 commit comments

Comments
 (0)