stackscan 0.1.6

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.
Files changed (369) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +222 -0
  3. package/dist/add.d.mts +3 -0
  4. package/dist/add.d.ts +3 -0
  5. package/dist/add.js +83 -0
  6. package/dist/add.mjs +7 -0
  7. package/dist/batch-import.d.mts +6 -0
  8. package/dist/batch-import.d.ts +6 -0
  9. package/dist/batch-import.js +5724 -0
  10. package/dist/batch-import.mjs +12 -0
  11. package/dist/chunk-22J2UHU7.mjs +1980 -0
  12. package/dist/chunk-2KG7JDHY.mjs +19 -0
  13. package/dist/chunk-2O2NMD7M.mjs +127 -0
  14. package/dist/chunk-3HEYJTUE.mjs +157 -0
  15. package/dist/chunk-3LPZV7KA.mjs +15 -0
  16. package/dist/chunk-3O2C34CJ.mjs +174 -0
  17. package/dist/chunk-3R4TXOZA.mjs +179 -0
  18. package/dist/chunk-3RJHZIII.mjs +174 -0
  19. package/dist/chunk-3XKWCBY6.mjs +105 -0
  20. package/dist/chunk-4OMBB3R6.mjs +52 -0
  21. package/dist/chunk-4THN5TT4.mjs +185 -0
  22. package/dist/chunk-4WCVZS6B.mjs +178 -0
  23. package/dist/chunk-5MNAT56X.mjs +23 -0
  24. package/dist/chunk-5VH7N3X6.mjs +109 -0
  25. package/dist/chunk-6A4WEZDZ.mjs +14 -0
  26. package/dist/chunk-6MIRBLO4.mjs +15 -0
  27. package/dist/chunk-6RCTNUF4.mjs +17 -0
  28. package/dist/chunk-7F4KWGMM.mjs +45 -0
  29. package/dist/chunk-7KF2HEU2.mjs +56 -0
  30. package/dist/chunk-7KONWCSX.mjs +15 -0
  31. package/dist/chunk-7TIXAYVC.mjs +10122 -0
  32. package/dist/chunk-ADMVFPX7.mjs +150 -0
  33. package/dist/chunk-AFJCX5SK.mjs +22 -0
  34. package/dist/chunk-ATNEVZPV.mjs +25 -0
  35. package/dist/chunk-BBP27ZGZ.mjs +4841 -0
  36. package/dist/chunk-BGT3PANW.mjs +64 -0
  37. package/dist/chunk-BJIQZNKU.mjs +184 -0
  38. package/dist/chunk-BKQW4ZNZ.mjs +19 -0
  39. package/dist/chunk-BMQTYZOD.mjs +144 -0
  40. package/dist/chunk-CZADURZD.mjs +674 -0
  41. package/dist/chunk-D2DOGM2Y.mjs +19 -0
  42. package/dist/chunk-D32C3FU6.mjs +45 -0
  43. package/dist/chunk-D6FFDX4P.mjs +158 -0
  44. package/dist/chunk-DUAFJVBN.mjs +44 -0
  45. package/dist/chunk-E24PAHCZ.mjs +146 -0
  46. package/dist/chunk-E3OD2BXY.mjs +14 -0
  47. package/dist/chunk-E4K5XYFI.mjs +210767 -0
  48. package/dist/chunk-EH2SEQZP.mjs +10119 -0
  49. package/dist/chunk-EH4FWTP5.mjs +21 -0
  50. package/dist/chunk-EOKQCSHI.mjs +10 -0
  51. package/dist/chunk-EQ4WRCPP.mjs +16 -0
  52. package/dist/chunk-EYXTSAAW.mjs +64 -0
  53. package/dist/chunk-F6Z4WXOF.mjs +146 -0
  54. package/dist/chunk-FM5BCBKT.mjs +77 -0
  55. package/dist/chunk-GXKIDBAX.mjs +146 -0
  56. package/dist/chunk-H6HA3IZE.mjs +1980 -0
  57. package/dist/chunk-H7WNQ3SS.mjs +23 -0
  58. package/dist/chunk-HBJEQ63D.mjs +205 -0
  59. package/dist/chunk-HTTDBNRT.mjs +146 -0
  60. package/dist/chunk-HYUKJUPF.mjs +177 -0
  61. package/dist/chunk-IFEEO473.mjs +49 -0
  62. package/dist/chunk-IILZ43EE.mjs +25 -0
  63. package/dist/chunk-ITGRHGUT.mjs +158 -0
  64. package/dist/chunk-J5JVDMED.mjs +45 -0
  65. package/dist/chunk-JH3SW4KH.mjs +4896 -0
  66. package/dist/chunk-JHVWSHNY.mjs +32 -0
  67. package/dist/chunk-JLFOQXQG.mjs +26 -0
  68. package/dist/chunk-K4BNSVJP.mjs +16 -0
  69. package/dist/chunk-KCDUZXVN.mjs +157 -0
  70. package/dist/chunk-KMDEPBKS.mjs +685 -0
  71. package/dist/chunk-L4AQWDD2.mjs +92 -0
  72. package/dist/chunk-L7I4UC35.mjs +158 -0
  73. package/dist/chunk-LB3L25FS.mjs +1980 -0
  74. package/dist/chunk-LDA354A3.mjs +158 -0
  75. package/dist/chunk-LSUI3VI4.mjs +19 -0
  76. package/dist/chunk-MB2X3DXF.mjs +45 -0
  77. package/dist/chunk-MBL4CIFG.mjs +28 -0
  78. package/dist/chunk-MLAUEAUQ.mjs +27 -0
  79. package/dist/chunk-NGEKE4DQ.mjs +23 -0
  80. package/dist/chunk-NJ4FK5BO.mjs +19 -0
  81. package/dist/chunk-OJZZPNXQ.mjs +1985 -0
  82. package/dist/chunk-P24PKCUA.mjs +25 -0
  83. package/dist/chunk-PFQIKEIL.mjs +15 -0
  84. package/dist/chunk-Q5ASM7HE.mjs +45 -0
  85. package/dist/chunk-Q7X2R7N7.mjs +16 -0
  86. package/dist/chunk-QAIJCQWH.mjs +157 -0
  87. package/dist/chunk-QQAUZGVG.mjs +2166 -0
  88. package/dist/chunk-QUIF3FJ2.mjs +55 -0
  89. package/dist/chunk-RDFZ4GVM.mjs +23 -0
  90. package/dist/chunk-RFRKMUNA.mjs +49 -0
  91. package/dist/chunk-RIIQA6S6.mjs +2204 -0
  92. package/dist/chunk-SGOSAU2P.mjs +51 -0
  93. package/dist/chunk-SLYSEMYE.mjs +21 -0
  94. package/dist/chunk-SNKLZ7VB.mjs +36 -0
  95. package/dist/chunk-TKKUEAN6.mjs +45 -0
  96. package/dist/chunk-TMH7EUXF.mjs +179 -0
  97. package/dist/chunk-TP55TF47.mjs +1980 -0
  98. package/dist/chunk-U4AFTAZI.mjs +1980 -0
  99. package/dist/chunk-U4EXCWGR.mjs +174 -0
  100. package/dist/chunk-U4OINWJM.mjs +42 -0
  101. package/dist/chunk-U63TGBAS.mjs +179 -0
  102. package/dist/chunk-UESFH6US.mjs +210773 -0
  103. package/dist/chunk-UITLHBZA.mjs +164 -0
  104. package/dist/chunk-VFD26CTJ.mjs +16 -0
  105. package/dist/chunk-VSWWWPO7.mjs +205 -0
  106. package/dist/chunk-VUVPGH7A.mjs +157 -0
  107. package/dist/chunk-W34IFT2J.mjs +45 -0
  108. package/dist/chunk-WPSGF5DK.mjs +92 -0
  109. package/dist/chunk-WPU2XV5B.mjs +25 -0
  110. package/dist/chunk-WTPR7TOE.mjs +146 -0
  111. package/dist/chunk-X3ATBJ5Q.mjs +14 -0
  112. package/dist/chunk-XMZATJRD.mjs +23 -0
  113. package/dist/chunk-Y2Y225MR.mjs +117 -0
  114. package/dist/chunk-YNDKJ5QJ.mjs +89 -0
  115. package/dist/chunk-YPQNYUP3.mjs +92 -0
  116. package/dist/chunk-ZH22D4SN.mjs +179 -0
  117. package/dist/chunk-ZSJJGBQR.mjs +39 -0
  118. package/dist/chunk-ZSMMBZHO.mjs +64 -0
  119. package/dist/chunk-ZTXCA3NN.mjs +74 -0
  120. package/dist/chunk-ZYMQR24Z.mjs +145 -0
  121. package/dist/cli.d.mts +1 -0
  122. package/dist/cli.d.ts +1 -0
  123. package/dist/cli.js +5770 -0
  124. package/dist/cli.mjs +25 -0
  125. package/dist/config.d.mts +5 -0
  126. package/dist/config.d.ts +5 -0
  127. package/dist/config.js +41 -0
  128. package/dist/config.mjs +7 -0
  129. package/dist/defaults.d.mts +3 -0
  130. package/dist/defaults.d.ts +3 -0
  131. package/dist/defaults.js +47 -0
  132. package/dist/defaults.mjs +7 -0
  133. package/dist/detectors/ci.d.mts +5 -0
  134. package/dist/detectors/ci.d.ts +5 -0
  135. package/dist/detectors/ci.js +59 -0
  136. package/dist/detectors/ci.mjs +7 -0
  137. package/dist/detectors/docker.d.mts +5 -0
  138. package/dist/detectors/docker.d.ts +5 -0
  139. package/dist/detectors/docker.js +50 -0
  140. package/dist/detectors/docker.mjs +7 -0
  141. package/dist/detectors/next.d.mts +7 -0
  142. package/dist/detectors/next.d.ts +7 -0
  143. package/dist/detectors/next.js +49 -0
  144. package/dist/detectors/next.mjs +7 -0
  145. package/dist/detectors/prisma.d.mts +7 -0
  146. package/dist/detectors/prisma.d.ts +7 -0
  147. package/dist/detectors/prisma.js +48 -0
  148. package/dist/detectors/prisma.mjs +7 -0
  149. package/dist/import.d.mts +2 -0
  150. package/dist/import.d.ts +2 -0
  151. package/dist/import.js +2062 -0
  152. package/dist/import.mjs +53 -0
  153. package/dist/output.d.mts +7 -0
  154. package/dist/output.d.ts +7 -0
  155. package/dist/output.js +3619 -0
  156. package/dist/output.mjs +13 -0
  157. package/dist/scan.d.mts +7 -0
  158. package/dist/scan.d.ts +7 -0
  159. package/dist/scan.js +5725 -0
  160. package/dist/scan.mjs +12 -0
  161. package/dist/scanner.d.mts +5 -0
  162. package/dist/scanner.d.ts +5 -0
  163. package/dist/scanner.js +5514 -0
  164. package/dist/scanner.mjs +14 -0
  165. package/dist/simple-icons-hex.d.mts +6751 -0
  166. package/dist/simple-icons-hex.d.ts +6751 -0
  167. package/dist/simple-icons-hex.js +10118 -0
  168. package/dist/simple-icons-hex.mjs +6736 -0
  169. package/dist/sync.d.mts +7 -0
  170. package/dist/sync.d.ts +7 -0
  171. package/dist/sync.js +5725 -0
  172. package/dist/sync.mjs +160 -0
  173. package/dist/techDefinitions.d.mts +5 -0
  174. package/dist/techDefinitions.d.ts +5 -0
  175. package/dist/techDefinitions.js +2004 -0
  176. package/dist/techDefinitions.mjs +7 -0
  177. package/dist/techMap.d.mts +5 -0
  178. package/dist/techMap.d.ts +5 -0
  179. package/dist/techMap.js +2018 -0
  180. package/dist/techMap.mjs +8 -0
  181. package/dist/types.d.mts +24 -0
  182. package/dist/types.d.ts +24 -0
  183. package/dist/types.js +18 -0
  184. package/dist/types.mjs +1 -0
  185. package/dist/typescript-7Q5RIVZY.mjs +6 -0
  186. package/dist/typescript-T5HXSZZS.mjs +5 -0
  187. package/dist/watch.d.mts +3 -0
  188. package/dist/watch.d.ts +3 -0
  189. package/dist/watch.js +2122 -0
  190. package/dist/watch.mjs +13 -0
  191. package/package.json +57 -0
  192. package/public/assets/logos/ai/huggingface.svg +1 -0
  193. package/public/assets/logos/ai/langchain.svg +1 -0
  194. package/public/assets/logos/ai/openai.svg +1 -0
  195. package/public/assets/logos/ai/replicate.svg +1 -0
  196. package/public/assets/logos/ai/tensorflow.svg +1 -0
  197. package/public/assets/logos/api/apollographql.svg +1 -0
  198. package/public/assets/logos/api/graphql.svg +1 -0
  199. package/public/assets/logos/api/relay.svg +1 -0
  200. package/public/assets/logos/api/trpc.svg +1 -0
  201. package/public/assets/logos/auth/argo.svg +1 -0
  202. package/public/assets/logos/auth/auth0.svg +1 -0
  203. package/public/assets/logos/auth/authjs.svg +73 -0
  204. package/public/assets/logos/auth/clerk.svg +1 -0
  205. package/public/assets/logos/auth/firebase.svg +1 -0
  206. package/public/assets/logos/auth/jsonwebtokens.svg +1 -0
  207. package/public/assets/logos/auth/keycloak.svg +1 -0
  208. package/public/assets/logos/auth/passport.svg +1 -0
  209. package/public/assets/logos/automation/lerna.svg +1 -0
  210. package/public/assets/logos/automation/nx.svg +1 -0
  211. package/public/assets/logos/automation/turborepo.svg +1 -0
  212. package/public/assets/logos/backend/adonisjs.svg +1 -0
  213. package/public/assets/logos/backend/express.svg +1 -0
  214. package/public/assets/logos/backend/fastify.svg +1 -0
  215. package/public/assets/logos/backend/koa.svg +1 -0
  216. package/public/assets/logos/backend/nestjs.svg +1 -0
  217. package/public/assets/logos/build/babel.svg +1 -0
  218. package/public/assets/logos/build/esbuild.svg +1 -0
  219. package/public/assets/logos/build/rollupdotjs.svg +1 -0
  220. package/public/assets/logos/build/snowpack.svg +1 -0
  221. package/public/assets/logos/build/swc.svg +1 -0
  222. package/public/assets/logos/build/vite.svg +15 -0
  223. package/public/assets/logos/build/webpack.svg +1 -0
  224. package/public/assets/logos/ci/circleci.svg +1 -0
  225. package/public/assets/logos/ci/githubactions.svg +1 -0
  226. package/public/assets/logos/ci/gitlab.svg +1 -0
  227. package/public/assets/logos/ci/jenkins.svg +1 -0
  228. package/public/assets/logos/ci/travisci.svg +1 -0
  229. package/public/assets/logos/cloud/cloudflare.svg +1 -0
  230. package/public/assets/logos/cloud/googlecloud.svg +1 -0
  231. package/public/assets/logos/cloud/microsoftazure.svg +1 -0
  232. package/public/assets/logos/cms/contentful.svg +1 -0
  233. package/public/assets/logos/cms/directus.svg +1 -0
  234. package/public/assets/logos/cms/ghost.svg +1 -0
  235. package/public/assets/logos/cms/keystone.svg +1 -0
  236. package/public/assets/logos/cms/sanity.svg +1 -0
  237. package/public/assets/logos/cms/shopify.svg +1 -0
  238. package/public/assets/logos/cms/strapi.svg +1 -0
  239. package/public/assets/logos/cms/wordpress.svg +1 -0
  240. package/public/assets/logos/container/docker.svg +1 -0
  241. package/public/assets/logos/container/kubernetes.svg +1 -0
  242. package/public/assets/logos/css/antdesign.svg +1 -0
  243. package/public/assets/logos/css/bootstrap.svg +1 -0
  244. package/public/assets/logos/css/bulma.svg +1 -0
  245. package/public/assets/logos/css/chakraui.svg +1 -0
  246. package/public/assets/logos/css/daisyui.svg +1 -0
  247. package/public/assets/logos/css/fallback/mantine-logo.svg +1 -0
  248. package/public/assets/logos/css/fallback/shadcnui.svg +1 -0
  249. package/public/assets/logos/css/foundation.svg +1 -0
  250. package/public/assets/logos/css/headlessui.svg +1 -0
  251. package/public/assets/logos/css/less.svg +1 -0
  252. package/public/assets/logos/css/mui.svg +1 -0
  253. package/public/assets/logos/css/postcss.svg +1 -0
  254. package/public/assets/logos/css/radixui.svg +1 -0
  255. package/public/assets/logos/css/sass.svg +1 -0
  256. package/public/assets/logos/css/shadcnui.svg +1 -0
  257. package/public/assets/logos/css/styledcomponents.svg +1 -0
  258. package/public/assets/logos/css/tailwindcss.svg +1 -0
  259. package/public/assets/logos/database/amazondynamodb.svg +1 -0
  260. package/public/assets/logos/database/apachecassandra.svg +1 -0
  261. package/public/assets/logos/database/cockroachlabs.svg +1 -0
  262. package/public/assets/logos/database/duckdb.svg +1 -0
  263. package/public/assets/logos/database/elasticsearch.svg +1 -0
  264. package/public/assets/logos/database/fauna.svg +3 -0
  265. package/public/assets/logos/database/mariadb.svg +1 -0
  266. package/public/assets/logos/database/mongodb.svg +1 -0
  267. package/public/assets/logos/database/mysql.svg +1 -0
  268. package/public/assets/logos/database/planetscale.svg +1 -0
  269. package/public/assets/logos/database/postgresql.svg +1 -0
  270. package/public/assets/logos/database/redis.svg +1 -0
  271. package/public/assets/logos/database/sqlite.svg +1 -0
  272. package/public/assets/logos/database/supabase.svg +1 -0
  273. package/public/assets/logos/database/surrealdb.svg +1 -0
  274. package/public/assets/logos/devops/ansible.svg +1 -0
  275. package/public/assets/logos/devops/pulumi.svg +1 -0
  276. package/public/assets/logos/devops/serverless.svg +1 -0
  277. package/public/assets/logos/devops/terraform.svg +1 -0
  278. package/public/assets/logos/fallback/31557565.svg +32 -0
  279. package/public/assets/logos/fallback/Drizzle--Streamline-Simple-Icons.svg +7 -0
  280. package/public/assets/logos/fallback/changesets.svg +43 -0
  281. package/public/assets/logos/fallback/lemonsqueezy.svg +8 -0
  282. package/public/assets/logos/fallback/mantine-logo.svg +1 -0
  283. package/public/assets/logos/fallback/reactquery.svg +12 -0
  284. package/public/assets/logos/fallback/shadcnui.svg +21 -0
  285. package/public/assets/logos/fallback/stitches.svg +10 -0
  286. package/public/assets/logos/format/prettier.svg +1 -0
  287. package/public/assets/logos/frontend/alpinedotjs.svg +1 -0
  288. package/public/assets/logos/frontend/angular.svg +1 -0
  289. package/public/assets/logos/frontend/astro.svg +1 -0
  290. package/public/assets/logos/frontend/backbone.svg +1 -0
  291. package/public/assets/logos/frontend/emberdotjs.svg +1 -0
  292. package/public/assets/logos/frontend/htmx.svg +1 -0
  293. package/public/assets/logos/frontend/lit.svg +1 -0
  294. package/public/assets/logos/frontend/nextdotjs.svg +1 -0
  295. package/public/assets/logos/frontend/nuxt.svg +1 -0
  296. package/public/assets/logos/frontend/preact.svg +1 -0
  297. package/public/assets/logos/frontend/qwik.svg +1 -0
  298. package/public/assets/logos/frontend/react.svg +1 -0
  299. package/public/assets/logos/frontend/remix.svg +1 -0
  300. package/public/assets/logos/frontend/solid.svg +1 -0
  301. package/public/assets/logos/frontend/svelte.svg +1 -0
  302. package/public/assets/logos/frontend/vuedotjs.svg +1 -0
  303. package/public/assets/logos/hosting/netlify.svg +1 -0
  304. package/public/assets/logos/hosting/railway.svg +1 -0
  305. package/public/assets/logos/hosting/render.svg +1 -0
  306. package/public/assets/logos/hosting/vercel.svg +1 -0
  307. package/public/assets/logos/language/csharp.svg +1 -0
  308. package/public/assets/logos/language/go.svg +1 -0
  309. package/public/assets/logos/language/javascript.svg +1 -0
  310. package/public/assets/logos/language/openjdk.svg +1 -0
  311. package/public/assets/logos/language/php.svg +1 -0
  312. package/public/assets/logos/language/python.svg +1 -0
  313. package/public/assets/logos/language/ruby.svg +1 -0
  314. package/public/assets/logos/language/rust.svg +1 -0
  315. package/public/assets/logos/language/typescript.svg +1 -0
  316. package/public/assets/logos/lint/commitlint.svg +1 -0
  317. package/public/assets/logos/lint/eslint.svg +1 -0
  318. package/public/assets/logos/lint/husky.svg +3 -0
  319. package/public/assets/logos/lint/lintstaged.svg +3 -0
  320. package/public/assets/logos/mobile/capacitor.svg +1 -0
  321. package/public/assets/logos/mobile/expo.svg +1 -0
  322. package/public/assets/logos/mobile/flutter.svg +1 -0
  323. package/public/assets/logos/mobile/ionic.svg +1 -0
  324. package/public/assets/logos/mobile/react.svg +1 -0
  325. package/public/assets/logos/network/axios.svg +1 -0
  326. package/public/assets/logos/network/brandfetch.svg +1 -0
  327. package/public/assets/logos/network/grpc.svg +1 -0
  328. package/public/assets/logos/network/openapiinitiative.svg +1 -0
  329. package/public/assets/logos/network/swr.svg +1 -0
  330. package/public/assets/logos/orm/drizzle.svg +1 -0
  331. package/public/assets/logos/orm/mongoose.svg +1 -0
  332. package/public/assets/logos/orm/prisma.svg +1 -0
  333. package/public/assets/logos/orm/typeorm.svg +1 -0
  334. package/public/assets/logos/package/npm.svg +1 -0
  335. package/public/assets/logos/package/pnpm.svg +1 -0
  336. package/public/assets/logos/package/yarn.svg +1 -0
  337. package/public/assets/logos/payment/fallback/lemonsqueezy.svg +1 -0
  338. package/public/assets/logos/payment/paypal.svg +1 -0
  339. package/public/assets/logos/payment/stripe.svg +1 -0
  340. package/public/assets/logos/runtime/bun.svg +1 -0
  341. package/public/assets/logos/runtime/deno.svg +1 -0
  342. package/public/assets/logos/ssg/eleventy.svg +1 -0
  343. package/public/assets/logos/ssg/gatsby.svg +1 -0
  344. package/public/assets/logos/ssg/hugo.svg +1 -0
  345. package/public/assets/logos/ssg/jekyll.svg +1 -0
  346. package/public/assets/logos/state/mobx.svg +1 -0
  347. package/public/assets/logos/state/recoil.svg +1 -0
  348. package/public/assets/logos/state/redux.svg +1 -0
  349. package/public/assets/logos/state/xstate.svg +1 -0
  350. package/public/assets/logos/state/zustand.svg +1 -0
  351. package/public/assets/logos/testing/chai.svg +1 -0
  352. package/public/assets/logos/testing/cypress.svg +1 -0
  353. package/public/assets/logos/testing/jasmine.svg +1 -0
  354. package/public/assets/logos/testing/jest.svg +1 -0
  355. package/public/assets/logos/testing/mocha.svg +1 -0
  356. package/public/assets/logos/testing/playwright.svg +1 -0
  357. package/public/assets/logos/testing/puppeteer.svg +1 -0
  358. package/public/assets/logos/testing/storybook.svg +1 -0
  359. package/public/assets/logos/testing/testinglibrary.svg +1 -0
  360. package/public/assets/logos/testing/vitest.svg +1 -0
  361. package/public/assets/logos/utility/d3.svg +1 -0
  362. package/public/assets/logos/utility/leaflet.svg +1 -0
  363. package/public/assets/logos/utility/lodash.svg +1 -0
  364. package/public/assets/logos/utility/pyup.svg +1 -0
  365. package/public/assets/logos/utility/reactivex.svg +1 -0
  366. package/public/assets/logos/utility/threedotjs.svg +1 -0
  367. package/public/assets/logos/utility/zod.svg +1 -0
  368. package/public/stackscan-white.svg +26 -0
  369. package/public/stackscan.svg +26 -0
package/dist/import.js ADDED
@@ -0,0 +1,2062 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __copyProps = (to, from, except, desc) => {
9
+ if (from && typeof from === "object" || typeof from === "function") {
10
+ for (let key of __getOwnPropNames(from))
11
+ if (!__hasOwnProp.call(to, key) && key !== except)
12
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
13
+ }
14
+ return to;
15
+ };
16
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
17
+ // If the importer is in node compatibility mode or this is not an ESM
18
+ // file that has been converted to a CommonJS file using a Babel-
19
+ // compatible transform (i.e. "__esModule" has not been set), then set
20
+ // "default" to the CommonJS "module.exports" for node compatibility.
21
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
22
+ mod
23
+ ));
24
+
25
+ // src/import.ts
26
+ var import_fs = __toESM(require("fs"));
27
+ var import_path = __toESM(require("path"));
28
+
29
+ // src/techDefinitions.ts
30
+ var techDefinitions = [
31
+ {
32
+ "id": "typescript",
33
+ "name": "TypeScript",
34
+ "aliases": [
35
+ "typescript"
36
+ ],
37
+ "category": "language",
38
+ "logo": "language/typescript.svg",
39
+ "frameworks": []
40
+ },
41
+ {
42
+ "id": "javascript",
43
+ "name": "JavaScript",
44
+ "aliases": [
45
+ "javascript"
46
+ ],
47
+ "category": "language",
48
+ "logo": "language/javascript.svg",
49
+ "frameworks": []
50
+ },
51
+ {
52
+ "id": "python",
53
+ "name": "Python",
54
+ "aliases": [
55
+ "python"
56
+ ],
57
+ "category": "language",
58
+ "logo": "language/python.svg",
59
+ "frameworks": []
60
+ },
61
+ {
62
+ "id": "go",
63
+ "name": "Go",
64
+ "aliases": [
65
+ "go"
66
+ ],
67
+ "category": "language",
68
+ "logo": "language/go.svg",
69
+ "frameworks": []
70
+ },
71
+ {
72
+ "id": "rust",
73
+ "name": "Rust",
74
+ "aliases": [
75
+ "rust"
76
+ ],
77
+ "category": "language",
78
+ "logo": "language/rust.svg",
79
+ "frameworks": []
80
+ },
81
+ {
82
+ "id": "php",
83
+ "name": "PHP",
84
+ "aliases": [
85
+ "php"
86
+ ],
87
+ "category": "language",
88
+ "logo": "language/php.svg",
89
+ "frameworks": []
90
+ },
91
+ {
92
+ "id": "ruby",
93
+ "name": "Ruby",
94
+ "aliases": [
95
+ "ruby"
96
+ ],
97
+ "category": "language",
98
+ "logo": "language/ruby.svg",
99
+ "frameworks": []
100
+ },
101
+ {
102
+ "id": "java",
103
+ "name": "Java",
104
+ "aliases": [
105
+ "java"
106
+ ],
107
+ "category": "language",
108
+ "logo": "language/openjdk.svg",
109
+ "frameworks": []
110
+ },
111
+ {
112
+ "id": "c",
113
+ "name": "C#",
114
+ "aliases": [
115
+ "csharp"
116
+ ],
117
+ "category": "language",
118
+ "logo": "language/csharp.svg",
119
+ "frameworks": []
120
+ },
121
+ {
122
+ "id": "react",
123
+ "name": "React",
124
+ "aliases": [
125
+ "react"
126
+ ],
127
+ "category": "frontend",
128
+ "logo": "frontend/react.svg",
129
+ "frameworks": []
130
+ },
131
+ {
132
+ "id": "reactdom",
133
+ "name": "ReactDOM",
134
+ "aliases": [
135
+ "react-dom"
136
+ ],
137
+ "category": "frontend",
138
+ "logo": "frontend/react.svg",
139
+ "frameworks": []
140
+ },
141
+ {
142
+ "id": "nextjs",
143
+ "name": "Next.js",
144
+ "aliases": [
145
+ "next"
146
+ ],
147
+ "category": "frontend",
148
+ "logo": "frontend/nextdotjs.svg",
149
+ "frameworks": []
150
+ },
151
+ {
152
+ "id": "remix",
153
+ "name": "Remix",
154
+ "aliases": [
155
+ "remix"
156
+ ],
157
+ "category": "frontend",
158
+ "logo": "frontend/remix.svg",
159
+ "frameworks": []
160
+ },
161
+ {
162
+ "id": "astro",
163
+ "name": "Astro",
164
+ "aliases": [
165
+ "astro"
166
+ ],
167
+ "category": "frontend",
168
+ "logo": "frontend/astro.svg",
169
+ "frameworks": []
170
+ },
171
+ {
172
+ "id": "svelte",
173
+ "name": "Svelte",
174
+ "aliases": [
175
+ "svelte"
176
+ ],
177
+ "category": "frontend",
178
+ "logo": "frontend/svelte.svg",
179
+ "frameworks": []
180
+ },
181
+ {
182
+ "id": "sveltekit",
183
+ "name": "SvelteKit",
184
+ "aliases": [
185
+ "@sveltejs/kit"
186
+ ],
187
+ "category": "frontend",
188
+ "logo": "frontend/svelte.svg",
189
+ "frameworks": []
190
+ },
191
+ {
192
+ "id": "solidjs",
193
+ "name": "SolidJS",
194
+ "aliases": [
195
+ "solid-js"
196
+ ],
197
+ "category": "frontend",
198
+ "logo": "frontend/solid.svg",
199
+ "frameworks": []
200
+ },
201
+ {
202
+ "id": "preact",
203
+ "name": "Preact",
204
+ "aliases": [
205
+ "preact"
206
+ ],
207
+ "category": "frontend",
208
+ "logo": "frontend/preact.svg",
209
+ "frameworks": []
210
+ },
211
+ {
212
+ "id": "vue",
213
+ "name": "Vue",
214
+ "aliases": [
215
+ "vue"
216
+ ],
217
+ "category": "frontend",
218
+ "logo": "frontend/vuedotjs.svg",
219
+ "frameworks": []
220
+ },
221
+ {
222
+ "id": "nuxt",
223
+ "name": "Nuxt",
224
+ "aliases": [
225
+ "nuxt"
226
+ ],
227
+ "category": "frontend",
228
+ "logo": "frontend/nuxt.svg",
229
+ "frameworks": []
230
+ },
231
+ {
232
+ "id": "angular",
233
+ "name": "Angular",
234
+ "aliases": [
235
+ "@angular/core"
236
+ ],
237
+ "category": "frontend",
238
+ "logo": "frontend/angular.svg",
239
+ "frameworks": []
240
+ },
241
+ {
242
+ "id": "lit",
243
+ "name": "Lit",
244
+ "aliases": [
245
+ "lit"
246
+ ],
247
+ "category": "frontend",
248
+ "logo": "frontend/lit.svg",
249
+ "frameworks": []
250
+ },
251
+ {
252
+ "id": "qwik",
253
+ "name": "Qwik",
254
+ "aliases": [
255
+ "@builder.io/qwik"
256
+ ],
257
+ "category": "frontend",
258
+ "logo": "frontend/qwik.svg",
259
+ "frameworks": []
260
+ },
261
+ {
262
+ "id": "ember",
263
+ "name": "Ember",
264
+ "aliases": [
265
+ "ember-source"
266
+ ],
267
+ "category": "frontend",
268
+ "logo": "frontend/emberdotjs.svg",
269
+ "frameworks": []
270
+ },
271
+ {
272
+ "id": "backbone",
273
+ "name": "Backbone",
274
+ "aliases": [
275
+ "backbone"
276
+ ],
277
+ "category": "frontend",
278
+ "logo": "frontend/backbone.svg",
279
+ "frameworks": []
280
+ },
281
+ {
282
+ "id": "alpinejs",
283
+ "name": "AlpineJS",
284
+ "aliases": [
285
+ "alpinejs"
286
+ ],
287
+ "category": "frontend",
288
+ "logo": "frontend/alpinedotjs.svg",
289
+ "frameworks": []
290
+ },
291
+ {
292
+ "id": "htmx",
293
+ "name": "HTMX",
294
+ "aliases": [
295
+ "htmx.org"
296
+ ],
297
+ "category": "frontend",
298
+ "logo": "frontend/htmx.svg",
299
+ "frameworks": []
300
+ },
301
+ {
302
+ "id": "tailwindcss",
303
+ "name": "TailwindCSS",
304
+ "aliases": [
305
+ "tailwindcss"
306
+ ],
307
+ "category": "css",
308
+ "logo": "css/tailwindcss.svg",
309
+ "frameworks": []
310
+ },
311
+ {
312
+ "id": "bootstrap",
313
+ "name": "Bootstrap",
314
+ "aliases": [
315
+ "bootstrap"
316
+ ],
317
+ "category": "css",
318
+ "logo": "css/bootstrap.svg",
319
+ "frameworks": []
320
+ },
321
+ {
322
+ "id": "bulma",
323
+ "name": "Bulma",
324
+ "aliases": [
325
+ "bulma"
326
+ ],
327
+ "category": "css",
328
+ "logo": "css/bulma.svg",
329
+ "frameworks": []
330
+ },
331
+ {
332
+ "id": "foundation",
333
+ "name": "Foundation",
334
+ "aliases": [
335
+ "foundation-sites"
336
+ ],
337
+ "category": "css",
338
+ "logo": "css/foundation.svg",
339
+ "frameworks": []
340
+ },
341
+ {
342
+ "id": "materialui",
343
+ "name": "Material UI",
344
+ "aliases": [
345
+ "@mui/material"
346
+ ],
347
+ "category": "css",
348
+ "logo": "css/mui.svg",
349
+ "frameworks": []
350
+ },
351
+ {
352
+ "id": "chakraui",
353
+ "name": "Chakra UI",
354
+ "aliases": [
355
+ "@chakra-ui/react"
356
+ ],
357
+ "category": "css",
358
+ "logo": "css/chakraui.svg",
359
+ "frameworks": []
360
+ },
361
+ {
362
+ "id": "mantine",
363
+ "name": "Mantine",
364
+ "aliases": [
365
+ "@mantine/core"
366
+ ],
367
+ "category": "css",
368
+ "logo": "fallback/mantine-logo.svg",
369
+ "frameworks": []
370
+ },
371
+ {
372
+ "id": "shadcnui",
373
+ "name": "shadcn/ui",
374
+ "aliases": [
375
+ "shadcn"
376
+ ],
377
+ "category": "css",
378
+ "logo": "css/shadcnui.svg",
379
+ "frameworks": []
380
+ },
381
+ {
382
+ "id": "daisyui",
383
+ "name": "DaisyUI",
384
+ "aliases": [
385
+ "daisyui"
386
+ ],
387
+ "category": "css",
388
+ "logo": "css/daisyui.svg",
389
+ "frameworks": []
390
+ },
391
+ {
392
+ "id": "antdesign",
393
+ "name": "Ant Design",
394
+ "aliases": [
395
+ "antd"
396
+ ],
397
+ "category": "css",
398
+ "logo": "css/antdesign.svg",
399
+ "frameworks": []
400
+ },
401
+ {
402
+ "id": "radixui",
403
+ "name": "Radix UI",
404
+ "aliases": [
405
+ "@radix-ui/react"
406
+ ],
407
+ "category": "css",
408
+ "logo": "css/radixui.svg",
409
+ "frameworks": []
410
+ },
411
+ {
412
+ "id": "headlessui",
413
+ "name": "Headless UI",
414
+ "aliases": [
415
+ "@headlessui/react"
416
+ ],
417
+ "category": "css",
418
+ "logo": "css/headlessui.svg",
419
+ "frameworks": []
420
+ },
421
+ {
422
+ "id": "emotion",
423
+ "name": "Emotion",
424
+ "aliases": [
425
+ "@emotion/react"
426
+ ],
427
+ "category": "css",
428
+ "logo": "css/emotion.svg",
429
+ "frameworks": []
430
+ },
431
+ {
432
+ "id": "styledcomponents",
433
+ "name": "Styled Components",
434
+ "aliases": [
435
+ "styled-components"
436
+ ],
437
+ "category": "css",
438
+ "logo": "css/styledcomponents.svg",
439
+ "frameworks": []
440
+ },
441
+ {
442
+ "id": "stitches",
443
+ "name": "Stitches",
444
+ "aliases": [
445
+ "@stitches/react"
446
+ ],
447
+ "category": "css",
448
+ "logo": "fallback/stitches.svg",
449
+ "frameworks": []
450
+ },
451
+ {
452
+ "id": "sass",
453
+ "name": "Sass",
454
+ "aliases": [
455
+ "sass"
456
+ ],
457
+ "category": "css",
458
+ "logo": "css/sass.svg",
459
+ "frameworks": []
460
+ },
461
+ {
462
+ "id": "less",
463
+ "name": "Less",
464
+ "aliases": [
465
+ "less"
466
+ ],
467
+ "category": "css",
468
+ "logo": "css/less.svg",
469
+ "frameworks": []
470
+ },
471
+ {
472
+ "id": "postcss",
473
+ "name": "PostCSS",
474
+ "aliases": [
475
+ "postcss"
476
+ ],
477
+ "category": "css",
478
+ "logo": "css/postcss.svg",
479
+ "frameworks": []
480
+ },
481
+ {
482
+ "id": "redux",
483
+ "name": "Redux",
484
+ "aliases": [
485
+ "redux"
486
+ ],
487
+ "category": "state",
488
+ "logo": "state/redux.svg",
489
+ "frameworks": []
490
+ },
491
+ {
492
+ "id": "mobx",
493
+ "name": "MobX",
494
+ "aliases": [
495
+ "mobx"
496
+ ],
497
+ "category": "state",
498
+ "logo": "state/mobx.svg",
499
+ "frameworks": []
500
+ },
501
+ {
502
+ "id": "zustand",
503
+ "name": "Zustand",
504
+ "aliases": [
505
+ "zustand"
506
+ ],
507
+ "category": "state",
508
+ "logo": "state/zustand.svg",
509
+ "frameworks": []
510
+ },
511
+ {
512
+ "id": "jotai",
513
+ "name": "Jotai",
514
+ "aliases": [
515
+ "jotai"
516
+ ],
517
+ "category": "state",
518
+ "logo": "state/jotai.svg",
519
+ "frameworks": []
520
+ },
521
+ {
522
+ "id": "recoil",
523
+ "name": "Recoil",
524
+ "aliases": [
525
+ "recoil"
526
+ ],
527
+ "category": "state",
528
+ "logo": "state/recoil.svg",
529
+ "frameworks": []
530
+ },
531
+ {
532
+ "id": "xstate",
533
+ "name": "XState",
534
+ "aliases": [
535
+ "xstate"
536
+ ],
537
+ "category": "state",
538
+ "logo": "state/xstate.svg",
539
+ "frameworks": []
540
+ },
541
+ {
542
+ "id": "tanstackquery",
543
+ "name": "TanStack Query",
544
+ "aliases": [
545
+ "@tanstack/react-query"
546
+ ],
547
+ "category": "state",
548
+ "logo": "fallback/reactquery.svg",
549
+ "frameworks": []
550
+ },
551
+ {
552
+ "id": "rtkquery",
553
+ "name": "RTK Query",
554
+ "aliases": [
555
+ "@reduxjs/toolkit"
556
+ ],
557
+ "category": "state",
558
+ "logo": "state/redux.svg",
559
+ "frameworks": []
560
+ },
561
+ {
562
+ "id": "vite",
563
+ "name": "Vite",
564
+ "aliases": [
565
+ "vite"
566
+ ],
567
+ "category": "build",
568
+ "logo": "build/vite.svg",
569
+ "frameworks": []
570
+ },
571
+ {
572
+ "id": "webpack",
573
+ "name": "Webpack",
574
+ "aliases": [
575
+ "webpack"
576
+ ],
577
+ "category": "build",
578
+ "logo": "build/webpack.svg",
579
+ "frameworks": []
580
+ },
581
+ {
582
+ "id": "parcel",
583
+ "name": "Parcel",
584
+ "aliases": [
585
+ "parcel-bundler"
586
+ ],
587
+ "category": "build",
588
+ "logo": "build/parcel.svg",
589
+ "frameworks": []
590
+ },
591
+ {
592
+ "id": "rollup",
593
+ "name": "Rollup",
594
+ "aliases": [
595
+ "rollup"
596
+ ],
597
+ "category": "build",
598
+ "logo": "build/rollupdotjs.svg",
599
+ "frameworks": []
600
+ },
601
+ {
602
+ "id": "snowpack",
603
+ "name": "Snowpack",
604
+ "aliases": [
605
+ "snowpack"
606
+ ],
607
+ "category": "build",
608
+ "logo": "build/snowpack.svg",
609
+ "frameworks": []
610
+ },
611
+ {
612
+ "id": "turbopack",
613
+ "name": "Turbopack",
614
+ "aliases": [
615
+ "turbopack"
616
+ ],
617
+ "category": "build",
618
+ "logo": "build/webpack.svg",
619
+ "frameworks": []
620
+ },
621
+ {
622
+ "id": "swc",
623
+ "name": "SWC",
624
+ "aliases": [
625
+ "@swc/core"
626
+ ],
627
+ "category": "build",
628
+ "logo": "build/swc.svg",
629
+ "frameworks": []
630
+ },
631
+ {
632
+ "id": "esbuild",
633
+ "name": "ESBuild",
634
+ "aliases": [
635
+ "esbuild"
636
+ ],
637
+ "category": "build",
638
+ "logo": "build/esbuild.svg",
639
+ "frameworks": []
640
+ },
641
+ {
642
+ "id": "babel",
643
+ "name": "Babel",
644
+ "aliases": [
645
+ "@babel/core"
646
+ ],
647
+ "category": "build",
648
+ "logo": "build/babel.svg",
649
+ "frameworks": []
650
+ },
651
+ {
652
+ "id": "tsup",
653
+ "name": "Tsup",
654
+ "aliases": [
655
+ "tsup"
656
+ ],
657
+ "category": "build",
658
+ "logo": "build/tsup.svg",
659
+ "frameworks": []
660
+ },
661
+ {
662
+ "id": "jest",
663
+ "name": "Jest",
664
+ "aliases": [
665
+ "jest"
666
+ ],
667
+ "category": "testing",
668
+ "logo": "testing/jest.svg",
669
+ "frameworks": []
670
+ },
671
+ {
672
+ "id": "playwright",
673
+ "name": "Playwright",
674
+ "aliases": [
675
+ "@playwright/test"
676
+ ],
677
+ "category": "testing",
678
+ "logo": "testing/playwright.svg",
679
+ "frameworks": []
680
+ },
681
+ {
682
+ "id": "cypress",
683
+ "name": "Cypress",
684
+ "aliases": [
685
+ "cypress"
686
+ ],
687
+ "category": "testing",
688
+ "logo": "testing/cypress.svg",
689
+ "frameworks": []
690
+ },
691
+ {
692
+ "id": "vitest",
693
+ "name": "Vitest",
694
+ "aliases": [
695
+ "vitest"
696
+ ],
697
+ "category": "testing",
698
+ "logo": "testing/vitest.svg",
699
+ "frameworks": []
700
+ },
701
+ {
702
+ "id": "mocha",
703
+ "name": "Mocha",
704
+ "aliases": [
705
+ "mocha"
706
+ ],
707
+ "category": "testing",
708
+ "logo": "testing/mocha.svg",
709
+ "frameworks": []
710
+ },
711
+ {
712
+ "id": "chai",
713
+ "name": "Chai",
714
+ "aliases": [
715
+ "chai"
716
+ ],
717
+ "category": "testing",
718
+ "logo": "testing/chai.svg",
719
+ "frameworks": []
720
+ },
721
+ {
722
+ "id": "testinglibrary",
723
+ "name": "Testing Library",
724
+ "aliases": [
725
+ "@testing-library/react"
726
+ ],
727
+ "category": "testing",
728
+ "logo": "testing/testinglibrary.svg",
729
+ "frameworks": []
730
+ },
731
+ {
732
+ "id": "jasmine",
733
+ "name": "Jasmine",
734
+ "aliases": [
735
+ "jasmine"
736
+ ],
737
+ "category": "testing",
738
+ "logo": "testing/jasmine.svg",
739
+ "frameworks": []
740
+ },
741
+ {
742
+ "id": "puppeteer",
743
+ "name": "Puppeteer",
744
+ "aliases": [
745
+ "puppeteer"
746
+ ],
747
+ "category": "testing",
748
+ "logo": "testing/puppeteer.svg",
749
+ "frameworks": []
750
+ },
751
+ {
752
+ "id": "storybook",
753
+ "name": "Storybook",
754
+ "aliases": [
755
+ "@storybook/react"
756
+ ],
757
+ "category": "testing",
758
+ "logo": "testing/storybook.svg",
759
+ "frameworks": []
760
+ },
761
+ {
762
+ "id": "express",
763
+ "name": "Express",
764
+ "aliases": [
765
+ "express"
766
+ ],
767
+ "category": "backend",
768
+ "logo": "backend/express.svg",
769
+ "frameworks": []
770
+ },
771
+ {
772
+ "id": "fastify",
773
+ "name": "Fastify",
774
+ "aliases": [
775
+ "fastify"
776
+ ],
777
+ "category": "backend",
778
+ "logo": "backend/fastify.svg",
779
+ "frameworks": []
780
+ },
781
+ {
782
+ "id": "nestjs",
783
+ "name": "NestJS",
784
+ "aliases": [
785
+ "@nestjs/core"
786
+ ],
787
+ "category": "backend",
788
+ "logo": "backend/nestjs.svg",
789
+ "frameworks": []
790
+ },
791
+ {
792
+ "id": "koa",
793
+ "name": "Koa",
794
+ "aliases": [
795
+ "koa"
796
+ ],
797
+ "category": "backend",
798
+ "logo": "backend/koa.svg",
799
+ "frameworks": []
800
+ },
801
+ {
802
+ "id": "hapi",
803
+ "name": "Hapi",
804
+ "aliases": [
805
+ "@hapi/hapi"
806
+ ],
807
+ "category": "backend",
808
+ "logo": "backend/hapi.svg",
809
+ "frameworks": []
810
+ },
811
+ {
812
+ "id": "bun",
813
+ "name": "Bun",
814
+ "aliases": [
815
+ "bun"
816
+ ],
817
+ "category": "runtime",
818
+ "logo": "runtime/bun.svg",
819
+ "frameworks": []
820
+ },
821
+ {
822
+ "id": "deno",
823
+ "name": "Deno",
824
+ "aliases": [
825
+ "deno"
826
+ ],
827
+ "category": "runtime",
828
+ "logo": "runtime/deno.svg",
829
+ "frameworks": []
830
+ },
831
+ {
832
+ "id": "adonisjs",
833
+ "name": "AdonisJS",
834
+ "aliases": [
835
+ "@adonisjs/core"
836
+ ],
837
+ "category": "backend",
838
+ "logo": "backend/adonisjs.svg",
839
+ "frameworks": []
840
+ },
841
+ {
842
+ "id": "featherjs",
843
+ "name": "FeatherJS",
844
+ "aliases": [
845
+ "@feathersjs/feathers"
846
+ ],
847
+ "category": "backend",
848
+ "logo": "backend/feather.svg",
849
+ "frameworks": []
850
+ },
851
+ {
852
+ "id": "trpc",
853
+ "name": "tRPC",
854
+ "aliases": [
855
+ "@trpc/server"
856
+ ],
857
+ "category": "api",
858
+ "logo": "api/trpc.svg",
859
+ "frameworks": []
860
+ },
861
+ {
862
+ "id": "graphqlyoga",
863
+ "name": "GraphQL Yoga",
864
+ "aliases": [
865
+ "graphql-yoga"
866
+ ],
867
+ "category": "api",
868
+ "logo": "api/graphql.svg",
869
+ "frameworks": []
870
+ },
871
+ {
872
+ "id": "apolloserver",
873
+ "name": "Apollo Server",
874
+ "aliases": [
875
+ "apollo-server"
876
+ ],
877
+ "category": "api",
878
+ "logo": "api/apollographql.svg",
879
+ "frameworks": []
880
+ },
881
+ {
882
+ "id": "graphql",
883
+ "name": "GraphQL",
884
+ "aliases": [
885
+ "graphql"
886
+ ],
887
+ "category": "api",
888
+ "logo": "api/graphql.svg",
889
+ "frameworks": []
890
+ },
891
+ {
892
+ "id": "apolloclient",
893
+ "name": "Apollo Client",
894
+ "aliases": [
895
+ "@apollo/client"
896
+ ],
897
+ "category": "api",
898
+ "logo": "api/apollographql.svg",
899
+ "frameworks": []
900
+ },
901
+ {
902
+ "id": "urql",
903
+ "name": "Urql",
904
+ "aliases": [
905
+ "urql"
906
+ ],
907
+ "category": "api",
908
+ "logo": "api/graphql.svg",
909
+ "frameworks": []
910
+ },
911
+ {
912
+ "id": "relay",
913
+ "name": "Relay",
914
+ "aliases": [
915
+ "relay-runtime"
916
+ ],
917
+ "category": "api",
918
+ "logo": "api/relay.svg",
919
+ "frameworks": []
920
+ },
921
+ {
922
+ "id": "graphqlcodegen",
923
+ "name": "GraphQL Codegen",
924
+ "aliases": [
925
+ "@graphql-codegen/cli"
926
+ ],
927
+ "category": "api",
928
+ "logo": "api/graphql.svg",
929
+ "frameworks": []
930
+ },
931
+ {
932
+ "id": "prisma",
933
+ "name": "Prisma",
934
+ "aliases": [
935
+ "prisma"
936
+ ],
937
+ "category": "orm",
938
+ "logo": "orm/prisma.svg",
939
+ "frameworks": []
940
+ },
941
+ {
942
+ "id": "mongoose",
943
+ "name": "Mongoose",
944
+ "aliases": [
945
+ "mongoose"
946
+ ],
947
+ "category": "orm",
948
+ "logo": "orm/mongoose.svg",
949
+ "frameworks": []
950
+ },
951
+ {
952
+ "id": "typeorm",
953
+ "name": "TypeORM",
954
+ "aliases": [
955
+ "typeorm"
956
+ ],
957
+ "category": "orm",
958
+ "logo": "orm/typeorm.svg",
959
+ "frameworks": []
960
+ },
961
+ {
962
+ "id": "drizzleorm",
963
+ "name": "Drizzle ORM",
964
+ "aliases": [
965
+ "drizzle-orm"
966
+ ],
967
+ "category": "orm",
968
+ "logo": "orm/drizzle.svg",
969
+ "frameworks": []
970
+ },
971
+ {
972
+ "id": "postgresql",
973
+ "name": "PostgreSQL",
974
+ "aliases": [
975
+ "pg"
976
+ ],
977
+ "category": "database",
978
+ "logo": "database/postgresql.svg",
979
+ "frameworks": []
980
+ },
981
+ {
982
+ "id": "mysql",
983
+ "name": "MySQL",
984
+ "aliases": [
985
+ "mysql",
986
+ "mysql2"
987
+ ],
988
+ "category": "database",
989
+ "logo": "database/mysql.svg",
990
+ "frameworks": []
991
+ },
992
+ {
993
+ "id": "mariadb",
994
+ "name": "MariaDB",
995
+ "aliases": [
996
+ "mariadb"
997
+ ],
998
+ "category": "database",
999
+ "logo": "database/mariadb.svg",
1000
+ "frameworks": []
1001
+ },
1002
+ {
1003
+ "id": "sqlite",
1004
+ "name": "SQLite",
1005
+ "aliases": [
1006
+ "sqlite3"
1007
+ ],
1008
+ "category": "database",
1009
+ "logo": "database/sqlite.svg",
1010
+ "frameworks": []
1011
+ },
1012
+ {
1013
+ "id": "mongodb",
1014
+ "name": "MongoDB",
1015
+ "aliases": [
1016
+ "mongodb"
1017
+ ],
1018
+ "category": "database",
1019
+ "logo": "database/mongodb.svg",
1020
+ "frameworks": []
1021
+ },
1022
+ {
1023
+ "id": "redis",
1024
+ "name": "Redis",
1025
+ "aliases": [
1026
+ "redis"
1027
+ ],
1028
+ "category": "database",
1029
+ "logo": "database/redis.svg",
1030
+ "frameworks": []
1031
+ },
1032
+ {
1033
+ "id": "elasticsearch",
1034
+ "name": "Elasticsearch",
1035
+ "aliases": [
1036
+ "@elastic/elasticsearch"
1037
+ ],
1038
+ "category": "database",
1039
+ "logo": "database/elasticsearch.svg",
1040
+ "frameworks": []
1041
+ },
1042
+ {
1043
+ "id": "cassandra",
1044
+ "name": "Cassandra",
1045
+ "aliases": [
1046
+ "cassandra-driver"
1047
+ ],
1048
+ "category": "database",
1049
+ "logo": "database/apachecassandra.svg",
1050
+ "frameworks": []
1051
+ },
1052
+ {
1053
+ "id": "dynamodb",
1054
+ "name": "DynamoDB",
1055
+ "aliases": [
1056
+ "@aws-sdk/client-dynamodb"
1057
+ ],
1058
+ "category": "database",
1059
+ "logo": "database/amazondynamodb.svg",
1060
+ "frameworks": []
1061
+ },
1062
+ {
1063
+ "id": "firestore",
1064
+ "name": "Firestore",
1065
+ "aliases": [
1066
+ "@google-cloud/firestore"
1067
+ ],
1068
+ "category": "database",
1069
+ "logo": "auth/firebase.svg",
1070
+ "frameworks": []
1071
+ },
1072
+ {
1073
+ "id": "supabase",
1074
+ "name": "Supabase",
1075
+ "aliases": [
1076
+ "@supabase/supabase-js"
1077
+ ],
1078
+ "category": "database",
1079
+ "logo": "database/supabase.svg",
1080
+ "frameworks": []
1081
+ },
1082
+ {
1083
+ "id": "planetscale",
1084
+ "name": "PlanetScale",
1085
+ "aliases": [
1086
+ "@planetscale/database"
1087
+ ],
1088
+ "category": "database",
1089
+ "logo": "database/planetscale.svg",
1090
+ "frameworks": []
1091
+ },
1092
+ {
1093
+ "id": "faunadb",
1094
+ "name": "FaunaDB",
1095
+ "aliases": [
1096
+ "faunadb"
1097
+ ],
1098
+ "category": "database",
1099
+ "logo": "database/fauna.svg",
1100
+ "frameworks": []
1101
+ },
1102
+ {
1103
+ "id": "cockroachdb",
1104
+ "name": "CockroachDB",
1105
+ "aliases": [
1106
+ "@cockroachdb/prisma-adapter"
1107
+ ],
1108
+ "category": "database",
1109
+ "logo": "database/cockroachlabs.svg",
1110
+ "frameworks": []
1111
+ },
1112
+ {
1113
+ "id": "surrealdb",
1114
+ "name": "SurrealDB",
1115
+ "aliases": [
1116
+ "surrealdb.js"
1117
+ ],
1118
+ "category": "database",
1119
+ "logo": "database/surrealdb.svg",
1120
+ "frameworks": []
1121
+ },
1122
+ {
1123
+ "id": "duckdb",
1124
+ "name": "DuckDB",
1125
+ "aliases": [
1126
+ "duckdb"
1127
+ ],
1128
+ "category": "database",
1129
+ "logo": "database/duckdb.svg",
1130
+ "frameworks": []
1131
+ },
1132
+ {
1133
+ "id": "axios",
1134
+ "name": "Axios",
1135
+ "aliases": [
1136
+ "axios"
1137
+ ],
1138
+ "category": "network",
1139
+ "logo": "network/axios.svg",
1140
+ "frameworks": []
1141
+ },
1142
+ {
1143
+ "id": "fetch",
1144
+ "name": "Fetch",
1145
+ "aliases": [
1146
+ "node-fetch"
1147
+ ],
1148
+ "category": "network",
1149
+ "logo": "network/brandfetch.svg",
1150
+ "frameworks": []
1151
+ },
1152
+ {
1153
+ "id": "swr",
1154
+ "name": "SWR",
1155
+ "aliases": [
1156
+ "swr"
1157
+ ],
1158
+ "category": "network",
1159
+ "logo": "network/swr.svg",
1160
+ "frameworks": []
1161
+ },
1162
+ {
1163
+ "id": "got",
1164
+ "name": "Got",
1165
+ "aliases": [
1166
+ "got"
1167
+ ],
1168
+ "category": "network",
1169
+ "logo": "language/go.svg",
1170
+ "frameworks": []
1171
+ },
1172
+ {
1173
+ "id": "grpc",
1174
+ "name": "gRPC",
1175
+ "aliases": [
1176
+ "@grpc/grpc-js"
1177
+ ],
1178
+ "category": "network",
1179
+ "logo": "network/grpc.svg",
1180
+ "frameworks": []
1181
+ },
1182
+ {
1183
+ "id": "openapi",
1184
+ "name": "OpenAPI",
1185
+ "aliases": [
1186
+ "openapi"
1187
+ ],
1188
+ "category": "network",
1189
+ "logo": "network/openapiinitiative.svg",
1190
+ "frameworks": []
1191
+ },
1192
+ {
1193
+ "id": "superagent",
1194
+ "name": "SuperAgent",
1195
+ "aliases": [
1196
+ "superagent"
1197
+ ],
1198
+ "category": "network",
1199
+ "logo": "network/superagent.svg",
1200
+ "frameworks": []
1201
+ },
1202
+ {
1203
+ "id": "auth0",
1204
+ "name": "Auth0",
1205
+ "aliases": [
1206
+ "auth0"
1207
+ ],
1208
+ "category": "auth",
1209
+ "logo": "auth/auth0.svg",
1210
+ "frameworks": []
1211
+ },
1212
+ {
1213
+ "id": "clerk",
1214
+ "name": "Clerk",
1215
+ "aliases": [
1216
+ "@clerk/nextjs"
1217
+ ],
1218
+ "category": "auth",
1219
+ "logo": "auth/clerk.svg",
1220
+ "frameworks": []
1221
+ },
1222
+ {
1223
+ "id": "supabaseauth",
1224
+ "name": "Supabase Auth",
1225
+ "aliases": [
1226
+ "@supabase/auth-helpers-nextjs"
1227
+ ],
1228
+ "category": "auth",
1229
+ "logo": "database/supabase.svg",
1230
+ "frameworks": []
1231
+ },
1232
+ {
1233
+ "id": "firebaseauth",
1234
+ "name": "Firebase Auth",
1235
+ "aliases": [
1236
+ "firebase"
1237
+ ],
1238
+ "category": "auth",
1239
+ "logo": "auth/firebase.svg",
1240
+ "frameworks": []
1241
+ },
1242
+ {
1243
+ "id": "authjs",
1244
+ "name": "Auth.js",
1245
+ "aliases": [
1246
+ "next-auth",
1247
+ "NextAuth",
1248
+ "NextAuth.js"
1249
+ ],
1250
+ "category": "auth",
1251
+ "logo": "frontend/nextdotjs.svg",
1252
+ "frameworks": []
1253
+ },
1254
+ {
1255
+ "id": "jwt",
1256
+ "name": "JWT",
1257
+ "aliases": [
1258
+ "jsonwebtoken"
1259
+ ],
1260
+ "category": "auth",
1261
+ "logo": "auth/jsonwebtokens.svg",
1262
+ "frameworks": []
1263
+ },
1264
+ {
1265
+ "id": "passportjs",
1266
+ "name": "Passport.js",
1267
+ "aliases": [
1268
+ "passport"
1269
+ ],
1270
+ "category": "auth",
1271
+ "logo": "auth/passport.svg",
1272
+ "frameworks": []
1273
+ },
1274
+ {
1275
+ "id": "bcrypt",
1276
+ "name": "bcrypt",
1277
+ "aliases": [
1278
+ "bcrypt"
1279
+ ],
1280
+ "category": "auth",
1281
+ "logo": "auth/bcrypt.svg",
1282
+ "frameworks": []
1283
+ },
1284
+ {
1285
+ "id": "argon2",
1286
+ "name": "argon2",
1287
+ "aliases": [
1288
+ "argon2"
1289
+ ],
1290
+ "category": "auth",
1291
+ "logo": "auth/argo.svg",
1292
+ "frameworks": []
1293
+ },
1294
+ {
1295
+ "id": "keycloak",
1296
+ "name": "Keycloak",
1297
+ "aliases": [
1298
+ "keycloak-js"
1299
+ ],
1300
+ "category": "auth",
1301
+ "logo": "auth/keycloak.svg",
1302
+ "frameworks": []
1303
+ },
1304
+ {
1305
+ "id": "openaisdk",
1306
+ "name": "OpenAI SDK",
1307
+ "aliases": [
1308
+ "openai"
1309
+ ],
1310
+ "category": "ai",
1311
+ "logo": "ai/openai.svg",
1312
+ "frameworks": []
1313
+ },
1314
+ {
1315
+ "id": "langchain",
1316
+ "name": "LangChain",
1317
+ "aliases": [
1318
+ "langchain"
1319
+ ],
1320
+ "category": "ai",
1321
+ "logo": "ai/langchain.svg",
1322
+ "frameworks": []
1323
+ },
1324
+ {
1325
+ "id": "tensorflowjs",
1326
+ "name": "TensorFlow.js",
1327
+ "aliases": [
1328
+ "@tensorflow/tfjs"
1329
+ ],
1330
+ "category": "ai",
1331
+ "logo": "ai/tensorflow.svg",
1332
+ "frameworks": []
1333
+ },
1334
+ {
1335
+ "id": "huggingface",
1336
+ "name": "HuggingFace",
1337
+ "aliases": [
1338
+ "@huggingface/inference"
1339
+ ],
1340
+ "category": "ai",
1341
+ "logo": "ai/huggingface.svg",
1342
+ "frameworks": []
1343
+ },
1344
+ {
1345
+ "id": "replicate",
1346
+ "name": "Replicate",
1347
+ "aliases": [
1348
+ "replicate"
1349
+ ],
1350
+ "category": "ai",
1351
+ "logo": "ai/replicate.svg",
1352
+ "frameworks": []
1353
+ },
1354
+ {
1355
+ "id": "vercelaisdk",
1356
+ "name": "Vercel AI SDK",
1357
+ "aliases": [
1358
+ "ai"
1359
+ ],
1360
+ "category": "ai",
1361
+ "logo": "hosting/vercel.svg",
1362
+ "frameworks": []
1363
+ },
1364
+ {
1365
+ "id": "transformersjs",
1366
+ "name": "Transformers.js",
1367
+ "aliases": [
1368
+ "@xenova/transformers"
1369
+ ],
1370
+ "category": "ai",
1371
+ "logo": "ai/transformers.svg",
1372
+ "frameworks": []
1373
+ },
1374
+ {
1375
+ "id": "githubactions",
1376
+ "name": "GitHub Actions",
1377
+ "aliases": [
1378
+ "github-actions"
1379
+ ],
1380
+ "category": "ci",
1381
+ "logo": "ci/githubactions.svg",
1382
+ "frameworks": []
1383
+ },
1384
+ {
1385
+ "id": "gitlabci",
1386
+ "name": "GitLab CI",
1387
+ "aliases": [
1388
+ "gitlab-ci"
1389
+ ],
1390
+ "category": "ci",
1391
+ "logo": "ci/gitlab.svg",
1392
+ "frameworks": []
1393
+ },
1394
+ {
1395
+ "id": "circleci",
1396
+ "name": "CircleCI",
1397
+ "aliases": [
1398
+ "circleci"
1399
+ ],
1400
+ "category": "ci",
1401
+ "logo": "ci/circleci.svg",
1402
+ "frameworks": []
1403
+ },
1404
+ {
1405
+ "id": "travisci",
1406
+ "name": "Travis CI",
1407
+ "aliases": [
1408
+ "travis-ci"
1409
+ ],
1410
+ "category": "ci",
1411
+ "logo": "ci/travisci.svg",
1412
+ "frameworks": []
1413
+ },
1414
+ {
1415
+ "id": "jenkins",
1416
+ "name": "Jenkins",
1417
+ "aliases": [
1418
+ "jenkins"
1419
+ ],
1420
+ "category": "ci",
1421
+ "logo": "ci/jenkins.svg",
1422
+ "frameworks": []
1423
+ },
1424
+ {
1425
+ "id": "docker",
1426
+ "name": "Docker",
1427
+ "aliases": [
1428
+ "docker"
1429
+ ],
1430
+ "category": "container",
1431
+ "logo": "container/docker.svg",
1432
+ "frameworks": []
1433
+ },
1434
+ {
1435
+ "id": "dockercompose",
1436
+ "name": "Docker Compose",
1437
+ "aliases": [
1438
+ "docker-compose"
1439
+ ],
1440
+ "category": "container",
1441
+ "logo": "container/docker.svg",
1442
+ "frameworks": []
1443
+ },
1444
+ {
1445
+ "id": "kubernetes",
1446
+ "name": "Kubernetes",
1447
+ "aliases": [
1448
+ "kubernetes"
1449
+ ],
1450
+ "category": "container",
1451
+ "logo": "container/kubernetes.svg",
1452
+ "frameworks": []
1453
+ },
1454
+ {
1455
+ "id": "terraform",
1456
+ "name": "Terraform",
1457
+ "aliases": [
1458
+ "terraform"
1459
+ ],
1460
+ "category": "devops",
1461
+ "logo": "devops/terraform.svg",
1462
+ "frameworks": []
1463
+ },
1464
+ {
1465
+ "id": "ansible",
1466
+ "name": "Ansible",
1467
+ "aliases": [
1468
+ "ansible"
1469
+ ],
1470
+ "category": "devops",
1471
+ "logo": "devops/ansible.svg",
1472
+ "frameworks": []
1473
+ },
1474
+ {
1475
+ "id": "pulumi",
1476
+ "name": "Pulumi",
1477
+ "aliases": [
1478
+ "@pulumi/pulumi"
1479
+ ],
1480
+ "category": "devops",
1481
+ "logo": "devops/pulumi.svg",
1482
+ "frameworks": []
1483
+ },
1484
+ {
1485
+ "id": "serverlessframework",
1486
+ "name": "Serverless Framework",
1487
+ "aliases": [
1488
+ "serverless"
1489
+ ],
1490
+ "category": "devops",
1491
+ "logo": "devops/serverless.svg",
1492
+ "frameworks": []
1493
+ },
1494
+ {
1495
+ "id": "aws",
1496
+ "name": "AWS",
1497
+ "aliases": [
1498
+ "aws-sdk"
1499
+ ],
1500
+ "category": "cloud",
1501
+ "logo": "cloud/amazonwebservices.svg",
1502
+ "frameworks": []
1503
+ },
1504
+ {
1505
+ "id": "azure",
1506
+ "name": "Azure",
1507
+ "aliases": [
1508
+ "@azure/core-client"
1509
+ ],
1510
+ "category": "cloud",
1511
+ "logo": "cloud/microsoftazure.svg",
1512
+ "frameworks": []
1513
+ },
1514
+ {
1515
+ "id": "googlecloud",
1516
+ "name": "Google Cloud",
1517
+ "aliases": [
1518
+ "@google-cloud/storage"
1519
+ ],
1520
+ "category": "cloud",
1521
+ "logo": "cloud/googlecloud.svg",
1522
+ "frameworks": []
1523
+ },
1524
+ {
1525
+ "id": "vercel",
1526
+ "name": "Vercel",
1527
+ "aliases": [
1528
+ "vercel"
1529
+ ],
1530
+ "category": "hosting",
1531
+ "logo": "hosting/vercel.svg",
1532
+ "frameworks": []
1533
+ },
1534
+ {
1535
+ "id": "netlify",
1536
+ "name": "Netlify",
1537
+ "aliases": [
1538
+ "netlify"
1539
+ ],
1540
+ "category": "hosting",
1541
+ "logo": "hosting/netlify.svg",
1542
+ "frameworks": []
1543
+ },
1544
+ {
1545
+ "id": "railway",
1546
+ "name": "Railway",
1547
+ "aliases": [
1548
+ "@railway/cli"
1549
+ ],
1550
+ "category": "hosting",
1551
+ "logo": "hosting/railway.svg",
1552
+ "frameworks": []
1553
+ },
1554
+ {
1555
+ "id": "render",
1556
+ "name": "Render",
1557
+ "aliases": [
1558
+ "render"
1559
+ ],
1560
+ "category": "hosting",
1561
+ "logo": "hosting/render.svg",
1562
+ "frameworks": []
1563
+ },
1564
+ {
1565
+ "id": "cloudflare",
1566
+ "name": "Cloudflare",
1567
+ "aliases": [
1568
+ "@cloudflare/workers-types"
1569
+ ],
1570
+ "category": "cloud",
1571
+ "logo": "cloud/cloudflare.svg",
1572
+ "frameworks": []
1573
+ },
1574
+ {
1575
+ "id": "eslint",
1576
+ "name": "ESLint",
1577
+ "aliases": [
1578
+ "eslint"
1579
+ ],
1580
+ "category": "lint",
1581
+ "logo": "lint/eslint.svg",
1582
+ "frameworks": []
1583
+ },
1584
+ {
1585
+ "id": "prettier",
1586
+ "name": "Prettier",
1587
+ "aliases": [
1588
+ "prettier"
1589
+ ],
1590
+ "category": "format",
1591
+ "logo": "format/prettier.svg",
1592
+ "frameworks": []
1593
+ },
1594
+ {
1595
+ "id": "husky",
1596
+ "name": "Husky",
1597
+ "aliases": [
1598
+ "husky"
1599
+ ],
1600
+ "category": "lint",
1601
+ "logo": "lint/husky.svg",
1602
+ "frameworks": []
1603
+ },
1604
+ {
1605
+ "id": "lintstaged",
1606
+ "name": "Lint-staged",
1607
+ "aliases": [
1608
+ "lint-staged"
1609
+ ],
1610
+ "category": "lint",
1611
+ "logo": "lint/lintstaged.svg",
1612
+ "frameworks": []
1613
+ },
1614
+ {
1615
+ "id": "commitizen",
1616
+ "name": "Commitizen",
1617
+ "aliases": [
1618
+ "commitizen"
1619
+ ],
1620
+ "category": "lint",
1621
+ "logo": "lint/commitizen.svg",
1622
+ "frameworks": []
1623
+ },
1624
+ {
1625
+ "id": "commitlint",
1626
+ "name": "Commitlint",
1627
+ "aliases": [
1628
+ "@commitlint/cli"
1629
+ ],
1630
+ "category": "lint",
1631
+ "logo": "lint/commitlint.svg",
1632
+ "frameworks": []
1633
+ },
1634
+ {
1635
+ "id": "npm",
1636
+ "name": "npm",
1637
+ "aliases": [
1638
+ "npm"
1639
+ ],
1640
+ "category": "package",
1641
+ "logo": "package/npm.svg",
1642
+ "frameworks": []
1643
+ },
1644
+ {
1645
+ "id": "pnpm",
1646
+ "name": "pnpm",
1647
+ "aliases": [
1648
+ "pnpm"
1649
+ ],
1650
+ "category": "package",
1651
+ "logo": "package/pnpm.svg",
1652
+ "frameworks": []
1653
+ },
1654
+ {
1655
+ "id": "yarn",
1656
+ "name": "Yarn",
1657
+ "aliases": [
1658
+ "yarn"
1659
+ ],
1660
+ "category": "package",
1661
+ "logo": "package/yarn.svg",
1662
+ "frameworks": []
1663
+ },
1664
+ {
1665
+ "id": "11ty",
1666
+ "name": "11ty",
1667
+ "aliases": [
1668
+ "@11ty/eleventy"
1669
+ ],
1670
+ "category": "ssg",
1671
+ "logo": "ssg/eleventy.svg",
1672
+ "frameworks": []
1673
+ },
1674
+ {
1675
+ "id": "hugo",
1676
+ "name": "Hugo",
1677
+ "aliases": [
1678
+ "hugo"
1679
+ ],
1680
+ "category": "ssg",
1681
+ "logo": "ssg/hugo.svg",
1682
+ "frameworks": []
1683
+ },
1684
+ {
1685
+ "id": "jekyll",
1686
+ "name": "Jekyll",
1687
+ "aliases": [
1688
+ "jekyll"
1689
+ ],
1690
+ "category": "ssg",
1691
+ "logo": "ssg/jekyll.svg",
1692
+ "frameworks": []
1693
+ },
1694
+ {
1695
+ "id": "gatsby",
1696
+ "name": "Gatsby",
1697
+ "aliases": [
1698
+ "gatsby"
1699
+ ],
1700
+ "category": "ssg",
1701
+ "logo": "ssg/gatsby.svg",
1702
+ "frameworks": []
1703
+ },
1704
+ {
1705
+ "id": "wordpress",
1706
+ "name": "WordPress",
1707
+ "aliases": [
1708
+ "wordpress"
1709
+ ],
1710
+ "category": "cms",
1711
+ "logo": "cms/wordpress.svg",
1712
+ "frameworks": []
1713
+ },
1714
+ {
1715
+ "id": "shopify",
1716
+ "name": "Shopify",
1717
+ "aliases": [
1718
+ "@shopify/shopify-api"
1719
+ ],
1720
+ "category": "cms",
1721
+ "logo": "cms/shopify.svg",
1722
+ "frameworks": []
1723
+ },
1724
+ {
1725
+ "id": "sanity",
1726
+ "name": "Sanity",
1727
+ "aliases": [
1728
+ "@sanity/client"
1729
+ ],
1730
+ "category": "cms",
1731
+ "logo": "cms/sanity.svg",
1732
+ "frameworks": []
1733
+ },
1734
+ {
1735
+ "id": "contentful",
1736
+ "name": "Contentful",
1737
+ "aliases": [
1738
+ "contentful"
1739
+ ],
1740
+ "category": "cms",
1741
+ "logo": "cms/contentful.svg",
1742
+ "frameworks": []
1743
+ },
1744
+ {
1745
+ "id": "strapi",
1746
+ "name": "Strapi",
1747
+ "aliases": [
1748
+ "@strapi/strapi"
1749
+ ],
1750
+ "category": "cms",
1751
+ "logo": "cms/strapi.svg",
1752
+ "frameworks": []
1753
+ },
1754
+ {
1755
+ "id": "ghost",
1756
+ "name": "Ghost",
1757
+ "aliases": [
1758
+ "ghost"
1759
+ ],
1760
+ "category": "cms",
1761
+ "logo": "cms/ghost.svg",
1762
+ "frameworks": []
1763
+ },
1764
+ {
1765
+ "id": "keystonejs",
1766
+ "name": "KeystoneJS",
1767
+ "aliases": [
1768
+ "@keystone-6/core"
1769
+ ],
1770
+ "category": "cms",
1771
+ "logo": "cms/keystone.svg",
1772
+ "frameworks": []
1773
+ },
1774
+ {
1775
+ "id": "directus",
1776
+ "name": "Directus",
1777
+ "aliases": [
1778
+ "directus"
1779
+ ],
1780
+ "category": "cms",
1781
+ "logo": "cms/directus.svg",
1782
+ "frameworks": []
1783
+ },
1784
+ {
1785
+ "id": "turborepo",
1786
+ "name": "TurboRepo",
1787
+ "aliases": [
1788
+ "turborepo"
1789
+ ],
1790
+ "category": "automation",
1791
+ "logo": "automation/turborepo.svg",
1792
+ "frameworks": []
1793
+ },
1794
+ {
1795
+ "id": "nx",
1796
+ "name": "Nx",
1797
+ "aliases": [
1798
+ "nx"
1799
+ ],
1800
+ "category": "automation",
1801
+ "logo": "automation/nx.svg",
1802
+ "frameworks": []
1803
+ },
1804
+ {
1805
+ "id": "lerna",
1806
+ "name": "Lerna",
1807
+ "aliases": [
1808
+ "lerna"
1809
+ ],
1810
+ "category": "automation",
1811
+ "logo": "automation/lerna.svg",
1812
+ "frameworks": []
1813
+ },
1814
+ {
1815
+ "id": "changesets",
1816
+ "name": "Changesets",
1817
+ "aliases": [
1818
+ "@changesets/cli"
1819
+ ],
1820
+ "category": "automation",
1821
+ "logo": "fallback/changesets.svg",
1822
+ "frameworks": []
1823
+ },
1824
+ {
1825
+ "id": "reactnative",
1826
+ "name": "React Native",
1827
+ "aliases": [
1828
+ "react-native"
1829
+ ],
1830
+ "category": "mobile",
1831
+ "logo": "mobile/react.svg",
1832
+ "frameworks": []
1833
+ },
1834
+ {
1835
+ "id": "expo",
1836
+ "name": "Expo",
1837
+ "aliases": [
1838
+ "expo"
1839
+ ],
1840
+ "category": "mobile",
1841
+ "logo": "mobile/expo.svg",
1842
+ "frameworks": []
1843
+ },
1844
+ {
1845
+ "id": "flutter",
1846
+ "name": "Flutter",
1847
+ "aliases": [
1848
+ "flutter"
1849
+ ],
1850
+ "category": "mobile",
1851
+ "logo": "mobile/flutter.svg",
1852
+ "frameworks": []
1853
+ },
1854
+ {
1855
+ "id": "ionic",
1856
+ "name": "Ionic",
1857
+ "aliases": [
1858
+ "@ionic/angular"
1859
+ ],
1860
+ "category": "mobile",
1861
+ "logo": "mobile/ionic.svg",
1862
+ "frameworks": []
1863
+ },
1864
+ {
1865
+ "id": "capacitor",
1866
+ "name": "Capacitor",
1867
+ "aliases": [
1868
+ "@capacitor/core"
1869
+ ],
1870
+ "category": "mobile",
1871
+ "logo": "mobile/capacitor.svg",
1872
+ "frameworks": []
1873
+ },
1874
+ {
1875
+ "id": "lodash",
1876
+ "name": "Lodash",
1877
+ "aliases": [
1878
+ "lodash"
1879
+ ],
1880
+ "category": "utility",
1881
+ "logo": "utility/lodash.svg",
1882
+ "frameworks": []
1883
+ },
1884
+ {
1885
+ "id": "dayjs",
1886
+ "name": "Day.js",
1887
+ "aliases": [
1888
+ "dayjs"
1889
+ ],
1890
+ "category": "utility",
1891
+ "logo": "utility/dayjs.svg",
1892
+ "frameworks": []
1893
+ },
1894
+ {
1895
+ "id": "momentjs",
1896
+ "name": "Moment.js",
1897
+ "aliases": [
1898
+ "moment"
1899
+ ],
1900
+ "category": "utility",
1901
+ "logo": "utility/moment.svg",
1902
+ "frameworks": []
1903
+ },
1904
+ {
1905
+ "id": "zod",
1906
+ "name": "Zod",
1907
+ "aliases": [
1908
+ "zod"
1909
+ ],
1910
+ "category": "utility",
1911
+ "logo": "utility/zod.svg",
1912
+ "frameworks": []
1913
+ },
1914
+ {
1915
+ "id": "yup",
1916
+ "name": "Yup",
1917
+ "aliases": [
1918
+ "yup"
1919
+ ],
1920
+ "category": "utility",
1921
+ "logo": "utility/pyup.svg",
1922
+ "frameworks": []
1923
+ },
1924
+ {
1925
+ "id": "joi",
1926
+ "name": "Joi",
1927
+ "aliases": [
1928
+ "joi"
1929
+ ],
1930
+ "category": "utility",
1931
+ "logo": "utility/joi.svg",
1932
+ "frameworks": []
1933
+ },
1934
+ {
1935
+ "id": "rxjs",
1936
+ "name": "RxJS",
1937
+ "aliases": [
1938
+ "rxjs"
1939
+ ],
1940
+ "category": "utility",
1941
+ "logo": "utility/reactivex.svg",
1942
+ "frameworks": []
1943
+ },
1944
+ {
1945
+ "id": "threejs",
1946
+ "name": "Three.js",
1947
+ "aliases": [
1948
+ "three"
1949
+ ],
1950
+ "category": "utility",
1951
+ "logo": "utility/threedotjs.svg",
1952
+ "frameworks": []
1953
+ },
1954
+ {
1955
+ "id": "leaflet",
1956
+ "name": "Leaflet",
1957
+ "aliases": [
1958
+ "leaflet"
1959
+ ],
1960
+ "category": "utility",
1961
+ "logo": "utility/leaflet.svg",
1962
+ "frameworks": []
1963
+ },
1964
+ {
1965
+ "id": "d3js",
1966
+ "name": "D3.js",
1967
+ "aliases": [
1968
+ "d3"
1969
+ ],
1970
+ "category": "utility",
1971
+ "logo": "utility/d3.svg",
1972
+ "frameworks": []
1973
+ },
1974
+ {
1975
+ "id": "stripe",
1976
+ "name": "Stripe",
1977
+ "aliases": [
1978
+ "stripe"
1979
+ ],
1980
+ "category": "payment",
1981
+ "logo": "payment/stripe.svg",
1982
+ "frameworks": []
1983
+ },
1984
+ {
1985
+ "id": "paypalsdk",
1986
+ "name": "PayPal SDK",
1987
+ "aliases": [
1988
+ "@paypal/checkout-server-sdk"
1989
+ ],
1990
+ "category": "payment",
1991
+ "logo": "payment/paypal.svg",
1992
+ "frameworks": []
1993
+ },
1994
+ {
1995
+ "id": "lemonsqueezy",
1996
+ "name": "LemonSqueezy",
1997
+ "aliases": [
1998
+ "@lemonsqueezy/lemonsqueezy.js"
1999
+ ],
2000
+ "category": "payment",
2001
+ "logo": "fallback/lemonsqueezy.svg",
2002
+ "frameworks": []
2003
+ }
2004
+ ];
2005
+
2006
+ // src/techMap.ts
2007
+ var techMap = {};
2008
+ for (const def of techDefinitions) {
2009
+ for (const alias of def.aliases) {
2010
+ techMap[alias] = {
2011
+ name: def.name,
2012
+ logo: def.logo,
2013
+ type: def.category
2014
+ };
2015
+ }
2016
+ }
2017
+
2018
+ // src/import.ts
2019
+ var targetFile = process.argv[2];
2020
+ if (!targetFile) {
2021
+ console.error("Please provide a path to a package.json file.");
2022
+ console.error("Usage: npm run import -- ../path/to/project/package.json");
2023
+ process.exit(1);
2024
+ }
2025
+ var absolutePath = import_path.default.resolve(process.cwd(), targetFile);
2026
+ if (!import_fs.default.existsSync(absolutePath)) {
2027
+ console.error(`File not found: ${absolutePath}`);
2028
+ process.exit(1);
2029
+ }
2030
+ try {
2031
+ const content = import_fs.default.readFileSync(absolutePath, "utf-8");
2032
+ const pkg = JSON.parse(content);
2033
+ const projectName = pkg.name || "unknown-project";
2034
+ console.log(`\u{1F4E6} Analyzing stack for: ${projectName}`);
2035
+ const allDeps = {
2036
+ ...pkg.dependencies,
2037
+ ...pkg.devDependencies
2038
+ };
2039
+ const detectedTechs = [];
2040
+ Object.keys(allDeps).forEach((dep) => {
2041
+ if (techMap[dep]) {
2042
+ const tech = techMap[dep];
2043
+ detectedTechs.push({
2044
+ name: tech.name,
2045
+ slug: dep,
2046
+ logo: `https://raw.githubusercontent.com/benjamindotdev/stacksync/main/assets/logos/${tech.logo}`
2047
+ });
2048
+ }
2049
+ });
2050
+ const uniqueTechs = Array.from(new Set(detectedTechs.map((t) => t.slug))).map((slug) => detectedTechs.find((t) => t.slug === slug));
2051
+ const outputDir = import_path.default.join(process.cwd(), "stacksync", "projects", projectName);
2052
+ if (!import_fs.default.existsSync(outputDir)) {
2053
+ import_fs.default.mkdirSync(outputDir, { recursive: true });
2054
+ }
2055
+ const outputPath = import_path.default.join(outputDir, "stack.json");
2056
+ import_fs.default.writeFileSync(outputPath, JSON.stringify(uniqueTechs, null, 2));
2057
+ console.log(`\u2705 Stack saved to: ${outputPath}`);
2058
+ console.log(` Found ${uniqueTechs.length} technologies.`);
2059
+ } catch (error) {
2060
+ console.error("Error processing file:", error);
2061
+ process.exit(1);
2062
+ }