Skip to content

Commit 090b356

Browse files
committed
feat: 补充自托管平台识别规则
扩展自托管 SaaS 页面规则,新增 20 个 BaaS、Headless CMS、内容工作台和低代码 / 自动化平台资源匹配。 覆盖 Appwrite、PocketBase、Supabase Studio、Parse Dashboard、Nhost、Payload CMS、Keystone、Sanity Studio、Decap CMS、Netlify CMS、TinaCMS、Webiny、ApostropheCMS、Cockpit CMS、Activepieces、Windmill、Lowcoder、ILLA Builder、Saltcorn 和 Joget,并补充缺失技术链接。 将版本升至 1.1.62。 验证:npx prettier --write .;npx prettier --check .;pnpm run typecheck;pnpm run lint;JSON/正则全量校验;pnpm run build;版本一致性检查;git diff --check。
1 parent d782332 commit 090b356

3 files changed

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

public/rules/page/selfhosted-saas-assets.json

Lines changed: 127 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -222,6 +222,133 @@
222222
}
223223
]
224224
},
225+
{
226+
"defaults": {
227+
"kind": "BaaS / 后端控制台"
228+
},
229+
"rules": [
230+
{
231+
"name": "Appwrite",
232+
"resourceHints": ["appwrite"],
233+
"patterns": ["appwrite[^\\s\"'<>]*\\.(?:js|css|svg|png|webp)(?:\\?|$)", "appwrite\\.io/[^\\s\"'<>]*(?:console|assets|images)"]
234+
},
235+
{
236+
"name": "PocketBase",
237+
"resourceHints": ["pocketbase"],
238+
"patterns": ["pocketbase[^\\s\"'<>]*\\.(?:js|css|svg|png|webp)(?:\\?|$)"]
239+
},
240+
{
241+
"name": "Supabase Studio",
242+
"resourceHints": ["supabase-studio", "studio.supabase"],
243+
"patterns": [
244+
"supabase-studio[^\\s\"'<>]*\\.(?:js|css|svg|png|webp)(?:\\?|$)",
245+
"studio\\.supabase\\.com/[^\\s\"'<>]*(?:assets|project|dashboard)"
246+
]
247+
},
248+
{
249+
"name": "Parse Dashboard",
250+
"resourceHints": ["parse-dashboard"],
251+
"patterns": ["parse-dashboard[^\\s\"'<>]*\\.(?:js|css|svg|png|webp)(?:\\?|$)"]
252+
},
253+
{
254+
"name": "Nhost",
255+
"resourceHints": ["nhost"],
256+
"patterns": ["nhost[^\\s\"'<>]*\\.(?:js|css|svg|png|webp)(?:\\?|$)", "nhost\\.io/[^\\s\"'<>]*(?:dashboard|assets|console)"]
257+
}
258+
]
259+
},
260+
{
261+
"defaults": {
262+
"kind": "Headless CMS / 内容工作台"
263+
},
264+
"rules": [
265+
{
266+
"name": "Payload CMS",
267+
"resourceHints": ["payloadcms", "payload-admin"],
268+
"patterns": ["payloadcms[^\\s\"'<>]*\\.(?:js|css|svg|png|webp)(?:\\?|$)", "payload-admin[^\\s\"'<>]*\\.(?:js|css)(?:\\?|$)"]
269+
},
270+
{
271+
"name": "Keystone",
272+
"resourceHints": ["keystonejs", "keystone-6"],
273+
"patterns": ["keystonejs[^\\s\"'<>]*\\.(?:js|css|svg|png|webp)(?:\\?|$)", "keystone-6[^\\s\"'<>]*\\.(?:js|css)(?:\\?|$)"]
274+
},
275+
{
276+
"name": "Sanity Studio",
277+
"resourceHints": ["sanity-studio", "sanity.io", "@sanity"],
278+
"patterns": ["sanity-studio[^\\s\"'<>]*\\.(?:js|css|svg|png|webp)(?:\\?|$)", "@sanity[^\\s\"'<>]*\\.(?:js|css)(?:\\?|$)"]
279+
},
280+
{
281+
"name": "Decap CMS",
282+
"resourceHints": ["decap-cms", "decapcms"],
283+
"patterns": ["decap-cms[^\\s\"'<>]*\\.(?:js|css|svg|png|webp)(?:\\?|$)", "decapcms[^\\s\"'<>]*\\.(?:js|css)(?:\\?|$)"]
284+
},
285+
{
286+
"name": "Netlify CMS",
287+
"resourceHints": ["netlify-cms"],
288+
"patterns": ["netlify-cms[^\\s\"'<>]*\\.(?:js|css|svg|png|webp)(?:\\?|$)"]
289+
},
290+
{
291+
"name": "TinaCMS",
292+
"resourceHints": ["tinacms", "tina-cms", "tinajs"],
293+
"patterns": ["(?:tinacms|tina-cms|tinajs)[^\\s\"'<>]*\\.(?:js|css|svg|png|webp)(?:\\?|$)"]
294+
},
295+
{
296+
"name": "Webiny",
297+
"resourceHints": ["webiny"],
298+
"patterns": ["webiny[^\\s\"'<>]*\\.(?:js|css|svg|png|webp)(?:\\?|$)"]
299+
},
300+
{
301+
"name": "ApostropheCMS",
302+
"resourceHints": ["apostrophecms", "apostrophe-cms"],
303+
"patterns": ["(?:apostrophecms|apostrophe-cms)[^\\s\"'<>]*\\.(?:js|css|svg|png|webp)(?:\\?|$)"]
304+
},
305+
{
306+
"name": "Cockpit CMS",
307+
"resourceHints": ["cockpit-cms", "cockpitcms"],
308+
"patterns": ["(?:cockpit-cms|cockpitcms)[^\\s\"'<>]*\\.(?:js|css|svg|png|webp)(?:\\?|$)"]
309+
}
310+
]
311+
},
312+
{
313+
"defaults": {
314+
"kind": "低代码 / 自动化平台"
315+
},
316+
"rules": [
317+
{
318+
"name": "Activepieces",
319+
"resourceHints": ["activepieces"],
320+
"patterns": ["activepieces[^\\s\"'<>]*\\.(?:js|css|svg|png|webp)(?:\\?|$)"]
321+
},
322+
{
323+
"name": "Windmill",
324+
"resourceHints": ["windmill.dev", "windmill-labs"],
325+
"patterns": [
326+
"windmill-labs[^\\s\"'<>]*\\.(?:js|css|svg|png|webp)(?:\\?|$)",
327+
"windmill\\.dev/[^\\s\"'<>]*(?:assets|apps|scripts)"
328+
]
329+
},
330+
{
331+
"name": "Lowcoder",
332+
"resourceHints": ["lowcoder"],
333+
"patterns": ["lowcoder[^\\s\"'<>]*\\.(?:js|css|svg|png|webp)(?:\\?|$)"]
334+
},
335+
{
336+
"name": "ILLA Builder",
337+
"resourceHints": ["illa-builder", "illacloud"],
338+
"patterns": ["illa-builder[^\\s\"'<>]*\\.(?:js|css|svg|png|webp)(?:\\?|$)", "illacloud[^\\s\"'<>]*\\.(?:js|css)(?:\\?|$)"]
339+
},
340+
{
341+
"name": "Saltcorn",
342+
"resourceHints": ["saltcorn"],
343+
"patterns": ["saltcorn[^\\s\"'<>]*\\.(?:js|css|svg|png|webp)(?:\\?|$)"]
344+
},
345+
{
346+
"name": "Joget",
347+
"resourceHints": ["joget"],
348+
"patterns": ["joget[^\\s\"'<>]*\\.(?:js|css|svg|png|webp)(?:\\?|$)"]
349+
}
350+
]
351+
},
225352
{
226353
"name": "n8n",
227354
"kind": "自动化工作流",

public/tech-links.json

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2035,6 +2035,24 @@
20352035
"Appsmith": "https://www.appsmith.com",
20362036
"ToolJet": "https://www.tooljet.com",
20372037
"Budibase": "https://budibase.com",
2038+
"Appwrite": "https://appwrite.io",
2039+
"PocketBase": "https://pocketbase.io",
2040+
"Supabase Studio": "https://supabase.com",
2041+
"Parse Dashboard": "https://github.com/parse-community/parse-dashboard",
2042+
"Nhost": "https://nhost.io",
2043+
"Payload CMS": "https://payloadcms.com",
2044+
"Keystone": "https://keystonejs.com",
2045+
"Sanity Studio": "https://www.sanity.io/studio",
2046+
"Decap CMS": "https://decapcms.org",
2047+
"Netlify CMS": "https://www.netlifycms.org",
2048+
"ApostropheCMS": "https://apostrophecms.com",
2049+
"Cockpit CMS": "https://getcockpit.com",
2050+
"Activepieces": "https://www.activepieces.com",
2051+
"Windmill": "https://www.windmill.dev",
2052+
"Lowcoder": "https://lowcoder.cloud",
2053+
"ILLA Builder": "https://www.illacloud.com",
2054+
"Saltcorn": "https://saltcorn.com",
2055+
"Joget": "https://www.joget.org",
20382056
"n8n": "https://n8n.io",
20392057
"Node-RED": "https://nodered.org",
20402058
"Huginn": "https://github.com/huginn/huginn",

0 commit comments

Comments
 (0)