Skip to content

Commit 5080135

Browse files
committed
补充应用与可视化库匹配规则
新增一批本地资源匹配,覆盖 UI 框架、低代码组件、图形可视化、文件处理、实时通信和工具库。 对短文件名风险较高的库限定到包目录、作用域包或专属构建产物,减少误判。 版本递增至 1.3.8。
1 parent 24e2b98 commit 5080135

3 files changed

Lines changed: 248 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.3.7",
4+
"version": "1.3.8",
55
"type": "module",
66
"description": "StackPrism 用于检测网页前端、后端、CDN、SaaS、广告营销、统计、登录、支付、网站程序和主题模板线索。",
77
"scripts": {

public/rules/page/frontend-local-libraries.json

Lines changed: 219 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3147,6 +3147,225 @@
31473147
"(?:^|/)immutable(?:@[^/\\s\"'<>]+)?/.+\\.js(?:[?#][^\\s\"'<>]*)?(?:[\"'<>\\s]|$)"
31483148
]
31493149
},
3150+
{
3151+
"name": "Dark Reader",
3152+
"patterns": [
3153+
"(?:^|/)darkreader(?:\\.min)?\\.js(?:[?#][^\\s\"'<>]*)?(?:[\"'<>\\s]|$)",
3154+
"(?:^|/)darkreader(?:@[^/\\s\"'<>]+)?/.+\\.js(?:[?#][^\\s\"'<>]*)?(?:[\"'<>\\s]|$)"
3155+
]
3156+
},
3157+
{
3158+
"name": "lowdb",
3159+
"patterns": [
3160+
"(?:^|/)lowdb(?:\\.browser)?(?:\\.min)?\\.js(?:[?#][^\\s\"'<>]*)?(?:[\"'<>\\s]|$)",
3161+
"(?:^|/)lowdb(?:@[^/\\s\"'<>]+)?/.+\\.(?:m?js|cjs)(?:[?#][^\\s\"'<>]*)?(?:[\"'<>\\s]|$)"
3162+
]
3163+
},
3164+
{
3165+
"name": "Fluent UI React",
3166+
"patterns": [
3167+
"(?:^|/)fluentui-react(?:\\.min)?\\.(?:js|css)(?:[?#][^\\s\"'<>]*)?(?:[\"'<>\\s]|$)",
3168+
"(?:^|/)@fluentui/react(?:@[^/\\s\"'<>]+)?/.+\\.(?:js|css)(?:[?#][^\\s\"'<>]*)?(?:[\"'<>\\s]|$)",
3169+
"(?:^|/)@fluentui/react-components(?:@[^/\\s\"'<>]+)?/.+\\.(?:js|css)(?:[?#][^\\s\"'<>]*)?(?:[\"'<>\\s]|$)"
3170+
]
3171+
},
3172+
{
3173+
"name": "amis",
3174+
"patterns": [
3175+
"(?:^|/)amis(?:\\.sdk)?(?:\\.min)?\\.(?:js|css)(?:[?#][^\\s\"'<>]*)?(?:[\"'<>\\s]|$)",
3176+
"(?:^|/)amis(?:@[^/\\s\"'<>]+)?/(?:sdk|lib|dist)/.+\\.(?:js|css)(?:[?#][^\\s\"'<>]*)?(?:[\"'<>\\s]|$)",
3177+
"(?:^|/)amis-editor(?:@[^/\\s\"'<>]+)?/.+\\.(?:js|css)(?:[?#][^\\s\"'<>]*)?(?:[\"'<>\\s]|$)"
3178+
]
3179+
},
3180+
{
3181+
"name": "Feathers",
3182+
"patterns": [
3183+
"(?:^|/)feathers(?:-client)?(?:\\.min)?\\.js(?:[?#][^\\s\"'<>]*)?(?:[\"'<>\\s]|$)",
3184+
"(?:^|/)@feathersjs/[^/\\s\"'<>]+(?:@[^/\\s\"'<>]+)?/.+\\.js(?:[?#][^\\s\"'<>]*)?(?:[\"'<>\\s]|$)"
3185+
]
3186+
},
3187+
{
3188+
"name": "Pico.css",
3189+
"patterns": [
3190+
"(?:^|/)pico(?:\\.classless|\\.fluid|\\.slim)?(?:\\.min)?\\.css(?:[?#][^\\s\"'<>]*)?(?:[\"'<>\\s]|$)",
3191+
"(?:^|/)@picocss/pico(?:@[^/\\s\"'<>]+)?/.+\\.css(?:[?#][^\\s\"'<>]*)?(?:[\"'<>\\s]|$)"
3192+
]
3193+
},
3194+
{
3195+
"name": "ffmpeg.wasm",
3196+
"patterns": [
3197+
"(?:^|/)ffmpeg-core(?:\\.worker)?\\.(?:js|wasm)(?:[?#][^\\s\"'<>]*)?(?:[\"'<>\\s]|$)",
3198+
"(?:^|/)@ffmpeg/(?:ffmpeg|core|util)(?:@[^/\\s\"'<>]+)?/.+\\.(?:m?js|wasm|worker\\.js)(?:[?#][^\\s\"'<>]*)?(?:[\"'<>\\s]|$)"
3199+
]
3200+
},
3201+
{
3202+
"name": "wangEditor 5",
3203+
"patterns": [
3204+
"(?:^|/)wangeditor5(?:\\.min)?\\.(?:js|css)(?:[?#][^\\s\"'<>]*)?(?:[\"'<>\\s]|$)",
3205+
"(?:^|/)@wangeditor/(?:editor|editor-for-vue)(?:@[^/\\s\"'<>]+)?/.+\\.(?:js|css)(?:[?#][^\\s\"'<>]*)?(?:[\"'<>\\s]|$)"
3206+
]
3207+
},
3208+
{
3209+
"name": "Ratchet",
3210+
"patterns": [
3211+
"(?:^|/)ratchet(?:\\.min)?\\.(?:js|css)(?:[?#][^\\s\"'<>]*)?(?:[\"'<>\\s]|$)",
3212+
"(?:^|/)ratchet/.+\\.(?:js|css)(?:[?#][^\\s\"'<>]*)?(?:[\"'<>\\s]|$)"
3213+
]
3214+
},
3215+
{
3216+
"name": "GPU.js",
3217+
"patterns": [
3218+
"(?:^|/)gpu-browser(?:\\.min)?\\.js(?:[?#][^\\s\"'<>]*)?(?:[\"'<>\\s]|$)",
3219+
"(?:^|/)gpu\\.js(?:@[^/\\s\"'<>]+)?/.+\\.js(?:[?#][^\\s\"'<>]*)?(?:[\"'<>\\s]|$)"
3220+
]
3221+
},
3222+
{
3223+
"name": "ExcelJS",
3224+
"patterns": [
3225+
"(?:^|/)exceljs(?:\\.bare)?(?:\\.min)?\\.js(?:[?#][^\\s\"'<>]*)?(?:[\"'<>\\s]|$)",
3226+
"(?:^|/)exceljs(?:@[^/\\s\"'<>]+)?/.+\\.js(?:[?#][^\\s\"'<>]*)?(?:[\"'<>\\s]|$)"
3227+
]
3228+
},
3229+
{
3230+
"name": "Omi",
3231+
"patterns": [
3232+
"(?:^|/)omi(?:\\.min)?\\.js(?:[?#][^\\s\"'<>]*)?(?:[\"'<>\\s]|$)",
3233+
"(?:^|/)omi(?:@[^/\\s\"'<>]+)?/.+\\.js(?:[?#][^\\s\"'<>]*)?(?:[\"'<>\\s]|$)"
3234+
]
3235+
},
3236+
{
3237+
"name": "Froala Design Blocks",
3238+
"patterns": [
3239+
"(?:^|/)froala_blocks(?:\\.min)?\\.css(?:[?#][^\\s\"'<>]*)?(?:[\"'<>\\s]|$)",
3240+
"(?:^|/)froala-design-blocks/.+\\.(?:js|css)(?:[?#][^\\s\"'<>]*)?(?:[\"'<>\\s]|$)"
3241+
]
3242+
},
3243+
{
3244+
"name": "MUI",
3245+
"patterns": [
3246+
"(?:^|/)@mui/[^/\\s\"'<>]+(?:@[^/\\s\"'<>]+)?/.+\\.(?:js|css)(?:[?#][^\\s\"'<>]*)?(?:[\"'<>\\s]|$)",
3247+
"(?:^|/)material-ui(?:@[^/\\s\"'<>]+)?/.+\\.(?:js|css)(?:[?#][^\\s\"'<>]*)?(?:[\"'<>\\s]|$)"
3248+
]
3249+
},
3250+
{
3251+
"name": "Scalar API Reference",
3252+
"patterns": [
3253+
"(?:^|/)scalar-api-reference(?:\\.min)?\\.(?:js|css)(?:[?#][^\\s\"'<>]*)?(?:[\"'<>\\s]|$)",
3254+
"(?:^|/)@scalar/api-reference(?:@[^/\\s\"'<>]+)?/.+\\.(?:js|css)(?:[?#][^\\s\"'<>]*)?(?:[\"'<>\\s]|$)"
3255+
]
3256+
},
3257+
{
3258+
"name": "Redux Persist",
3259+
"patterns": [
3260+
"(?:^|/)redux-persist(?:\\.min)?\\.js(?:[?#][^\\s\"'<>]*)?(?:[\"'<>\\s]|$)",
3261+
"(?:^|/)redux-persist(?:@[^/\\s\"'<>]+)?/.+\\.js(?:[?#][^\\s\"'<>]*)?(?:[\"'<>\\s]|$)"
3262+
]
3263+
},
3264+
{
3265+
"name": "Falcor",
3266+
"patterns": [
3267+
"(?:^|/)falcor(?:\\.browser)?(?:\\.min)?\\.js(?:[?#][^\\s\"'<>]*)?(?:[\"'<>\\s]|$)",
3268+
"(?:^|/)falcor(?:@[^/\\s\"'<>]+)?/.+\\.js(?:[?#][^\\s\"'<>]*)?(?:[\"'<>\\s]|$)"
3269+
]
3270+
},
3271+
{
3272+
"name": "acorn-walk",
3273+
"patterns": [
3274+
"(?:^|/)acorn-walk(?:\\.min)?\\.js(?:[?#][^\\s\"'<>]*)?(?:[\"'<>\\s]|$)",
3275+
"(?:^|/)acorn-walk(?:@[^/\\s\"'<>]+)?/.+\\.js(?:[?#][^\\s\"'<>]*)?(?:[\"'<>\\s]|$)"
3276+
]
3277+
},
3278+
{
3279+
"name": "C3.js",
3280+
"patterns": [
3281+
"(?:^|/)c3(?:\\.min)?\\.(?:js|css)(?:[?#][^\\s\"'<>]*)?(?:[\"'<>\\s]|$)",
3282+
"(?:^|/)c3/.+\\.(?:js|css)(?:[?#][^\\s\"'<>]*)?(?:[\"'<>\\s]|$)"
3283+
]
3284+
},
3285+
{
3286+
"name": "Start Bootstrap SB Admin 2",
3287+
"patterns": [
3288+
"(?:^|/)sb-admin-2(?:\\.min)?\\.(?:js|css)(?:[?#][^\\s\"'<>]*)?(?:[\"'<>\\s]|$)",
3289+
"(?:^|/)startbootstrap-sb-admin-2/.+\\.(?:js|css)(?:[?#][^\\s\"'<>]*)?(?:[\"'<>\\s]|$)"
3290+
]
3291+
},
3292+
{
3293+
"name": "Moveable",
3294+
"patterns": [
3295+
"(?:^|/)moveable(?:\\.min)?\\.js(?:[?#][^\\s\"'<>]*)?(?:[\"'<>\\s]|$)",
3296+
"(?:^|/)moveable(?:@[^/\\s\"'<>]+)?/.+\\.js(?:[?#][^\\s\"'<>]*)?(?:[\"'<>\\s]|$)"
3297+
]
3298+
},
3299+
{
3300+
"name": "Flexbox Grid",
3301+
"patterns": [
3302+
"(?:^|/)flexboxgrid(?:\\.min)?\\.css(?:[?#][^\\s\"'<>]*)?(?:[\"'<>\\s]|$)",
3303+
"(?:^|/)flexboxgrid/.+\\.css(?:[?#][^\\s\"'<>]*)?(?:[\"'<>\\s]|$)"
3304+
]
3305+
},
3306+
{
3307+
"name": "MQTT.js",
3308+
"patterns": [
3309+
"(?:^|/)mqtt(?:\\.min)?\\.js(?:[?#][^\\s\"'<>]*)?(?:[\"'<>\\s]|$)",
3310+
"(?:^|/)mqtt(?:@[^/\\s\"'<>]+)?/.+\\.js(?:[?#][^\\s\"'<>]*)?(?:[\"'<>\\s]|$)"
3311+
]
3312+
},
3313+
{
3314+
"name": "boardgame.io",
3315+
"patterns": [
3316+
"(?:^|/)boardgame(?:\\.min)?\\.js(?:[?#][^\\s\"'<>]*)?(?:[\"'<>\\s]|$)",
3317+
"(?:^|/)boardgame\\.io(?:@[^/\\s\"'<>]+)?/.+\\.js(?:[?#][^\\s\"'<>]*)?(?:[\"'<>\\s]|$)"
3318+
]
3319+
},
3320+
{
3321+
"name": "Readability",
3322+
"patterns": [
3323+
"(?:^|/)Readability(?:\\.min)?\\.js(?:[?#][^\\s\"'<>]*)?(?:[\"'<>\\s]|$)",
3324+
"(?:^|/)@mozilla/readability(?:@[^/\\s\"'<>]+)?/.+\\.js(?:[?#][^\\s\"'<>]*)?(?:[\"'<>\\s]|$)"
3325+
]
3326+
},
3327+
{
3328+
"name": "One Page Scroll",
3329+
"patterns": [
3330+
"(?:^|/)jquery\\.onepage-scroll(?:\\.min)?\\.(?:js|css)(?:[?#][^\\s\"'<>]*)?(?:[\"'<>\\s]|$)",
3331+
"(?:^|/)onepage-scroll/.+\\.(?:js|css)(?:[?#][^\\s\"'<>]*)?(?:[\"'<>\\s]|$)"
3332+
]
3333+
},
3334+
{
3335+
"name": "Photon",
3336+
"patterns": [
3337+
"(?:^|/)photon(?:\\.min)?\\.css(?:[?#][^\\s\"'<>]*)?(?:[\"'<>\\s]|$)",
3338+
"(?:^|/)photonkit/.+\\.css(?:[?#][^\\s\"'<>]*)?(?:[\"'<>\\s]|$)"
3339+
]
3340+
},
3341+
{
3342+
"name": "loaders.css",
3343+
"patterns": [
3344+
"(?:^|/)loaders(?:\\.min)?\\.css(?:[?#][^\\s\"'<>]*)?(?:[\"'<>\\s]|$)",
3345+
"(?:^|/)loaders\\.css/.+\\.css(?:[?#][^\\s\"'<>]*)?(?:[\"'<>\\s]|$)"
3346+
]
3347+
},
3348+
{
3349+
"name": "Cycle.js",
3350+
"patterns": [
3351+
"(?:^|/)cyclejs-core(?:\\.min)?\\.js(?:[?#][^\\s\"'<>]*)?(?:[\"'<>\\s]|$)",
3352+
"(?:^|/)@cycle/[^/\\s\"'<>]+(?:@[^/\\s\"'<>]+)?/.+\\.js(?:[?#][^\\s\"'<>]*)?(?:[\"'<>\\s]|$)"
3353+
]
3354+
},
3355+
{
3356+
"name": "AR.js",
3357+
"patterns": [
3358+
"(?:^|/)ar\\.js/.+\\.js(?:[?#][^\\s\"'<>]*)?(?:[\"'<>\\s]|$)",
3359+
"(?:^|/)AR\\.js/.+\\.js(?:[?#][^\\s\"'<>]*)?(?:[\"'<>\\s]|$)"
3360+
]
3361+
},
3362+
{
3363+
"name": "particles.js",
3364+
"patterns": [
3365+
"(?:^|/)particles(?:\\.min)?\\.js(?:[?#][^\\s\"'<>]*)?(?:[\"'<>\\s]|$)",
3366+
"(?:^|/)particles\\.js/.+\\.js(?:[?#][^\\s\"'<>]*)?(?:[\"'<>\\s]|$)"
3367+
]
3368+
},
31503369
{
31513370
"name": "Zooming",
31523371
"patterns": ["(?:^|/)zooming(?:\\.min)?\\.js(?:[?#].*)?$"]

public/tech-links.json

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,7 @@
176176
"Headless UI": "https://headlessui.com",
177177
"daisyUI": "https://daisyui.com",
178178
"Fluent UI / Fabric": "https://react.fluentui.dev",
179+
"Fluent UI React": "https://react.fluentui.dev",
179180
"Blueprint": "https://blueprintjs.com",
180181
"Carbon Design System": "https://carbondesignsystem.com",
181182
"Clarity Design": "https://clarity.design",
@@ -189,6 +190,7 @@
189190
"UIkit": "https://getuikit.com",
190191
"Materialize CSS": "https://materializecss.com",
191192
"Pure.css": "https://purecss.io",
193+
"Pico.css": "https://picocss.com",
192194
"Skeleton CSS": "http://getskeleton.com",
193195
"Milligram": "https://milligram.io",
194196
"Metro UI": "https://metroui.org.ua",
@@ -205,6 +207,9 @@
205207
"Tachyons": "https://tachyons.io",
206208
"Spectre.css": "https://picturepan2.github.io/spectre",
207209
"NES.css": "https://nostalgic-css.github.io/NES.css",
210+
"Ratchet": "https://github.com/twbs/ratchet",
211+
"Photon": "http://photonkit.com",
212+
"Flexbox Grid": "http://flexboxgrid.com",
208213
"WeUI": "https://github.com/Tencent/weui",
209214
"Naive UI": "https://www.naiveui.com",
210215
"NutUI": "https://nutui.jd.com",
@@ -253,10 +258,14 @@
253258
"Bokeh": "https://bokeh.org",
254259
"AntV G2": "https://g2.antv.antgroup.com",
255260
"AntV G6": "https://g6.antv.antgroup.com",
261+
"C3.js": "https://c3js.org",
256262
"GoJS": "https://gojs.net",
257263
"Two.js": "https://two.js.org",
264+
"GPU.js": "https://gpu.rocks",
258265
"Trianglify": "https://github.com/qrohlf/trianglify",
259266
"Three.js": "https://threejs.org",
267+
"AR.js": "https://github.com/AR-js-org/AR.js",
268+
"particles.js": "https://vincentgarreau.com/particles.js",
260269
"Babylon.js": "https://www.babylonjs.com",
261270
"PixiJS": "https://pixijs.com",
262271
"Phaser": "https://phaser.io",
@@ -293,6 +302,8 @@
293302
"CKEditor": "https://ckeditor.com",
294303
"Quill": "https://quilljs.com",
295304
"Froala Editor": "https://froala.com/wysiwyg-editor",
305+
"wangEditor 5": "https://www.wangeditor.com",
306+
"Froala Design Blocks": "https://froala.com/design-blocks",
296307
"TUI Editor": "https://ui.toast.com/tui-editor",
297308
"Turndown": "https://github.com/mixmark-io/turndown",
298309
"Remark": "https://remark.js.org",
@@ -309,9 +320,15 @@
309320
"Pusher JS": "https://pusher.com/docs/channels",
310321
"Ably JS": "https://ably.com",
311322
"AWS Amplify": "https://aws.amazon.com/amplify",
323+
"Feathers": "https://feathersjs.com",
312324
"Restangular": "https://github.com/mgonto/restangular",
313325
"validator.js": "https://github.com/validatorjs/validator.js",
314326
"protobuf.js": "https://github.com/protobufjs/protobuf.js",
327+
"ExcelJS": "https://github.com/exceljs/exceljs",
328+
"ffmpeg.wasm": "https://ffmpegwasm.netlify.app",
329+
"lowdb": "https://github.com/typicode/lowdb",
330+
"Dark Reader": "https://darkreader.org",
331+
"amis": "https://baidu.github.io/amis",
315332
"Push.js": "https://pushjs.org",
316333
"List.js": "https://listjs.com",
317334
"Ky": "https://github.com/sindresorhus/ky",
@@ -320,13 +337,24 @@
320337
"TUI Calendar": "https://ui.toast.com/tui-calendar",
321338
"GridStack": "https://gridstackjs.com",
322339
"Fine Uploader": "https://fineuploader.com",
340+
"Scalar API Reference": "https://github.com/scalar/scalar",
323341
"Shopify Draggable": "https://shopify.github.io/draggable",
324342
"Tether": "https://github.com/shipshapecode/tether",
325343
"Favico.js": "http://lab.ejci.net/favico.js",
326344
"Headroom.js": "https://wicky.nillia.ms/headroom.js",
327345
"Slideout.js": "https://mango.github.io/slideout",
328346
"Satellizer": "https://github.com/sahat/satellizer",
329347
"ng-file-upload": "https://github.com/danialfarid/ng-file-upload",
348+
"Redux Persist": "https://github.com/rt2zz/redux-persist",
349+
"Falcor": "https://netflix.github.io/falcor",
350+
"Omi": "https://omi.cdn-go.cn",
351+
"Moveable": "https://daybrush.com/moveable",
352+
"MQTT.js": "https://github.com/mqttjs/MQTT.js",
353+
"boardgame.io": "https://boardgame.io",
354+
"Readability": "https://github.com/mozilla/readability",
355+
"One Page Scroll": "https://github.com/peachananr/onepage-scroll",
356+
"Cycle.js": "https://cycle.js.org",
357+
"Start Bootstrap SB Admin 2": "https://startbootstrap.com/theme/sb-admin-2",
330358
"Jasmine": "https://jasmine.github.io",
331359
"Mocha": "https://mochajs.org",
332360
"Chai": "https://www.chaijs.com",

0 commit comments

Comments
 (0)