-
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathpackage.json
More file actions
121 lines (121 loc) · 3.65 KB
/
Copy pathpackage.json
File metadata and controls
121 lines (121 loc) · 3.65 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
{
"name": "bayan-flow",
"description": "Bayan Flow - Interactive algorithm visualizer with step-by-step animations for sorting, searching, pathfinding, and tree traversal algorithms. Bayan (بيان) means clarity in Arabic.",
"keywords": [
"algorithms",
"visualization",
"sorting",
"pathfinding",
"education",
"react",
"interactive",
"learning",
"computer-science",
"data-structures"
],
"author": {
"name": "Ayoub Abidi",
"email": "contact@bayanflow.com",
"url": "https://github.com/ayoub3bidi"
},
"license": "Elastic-2.0 OR Commercial",
"repository": {
"type": "git",
"url": "https://github.com/ayoub3bidi/bayan-flow"
},
"bugs": {
"url": "https://github.com/ayoub3bidi/bayan-flow/issues"
},
"homepage": "https://bayanflow.com",
"private": true,
"version": "0.5.0",
"type": "module",
"engines": {
"node": ">=24.11.1",
"pnpm": ">=8.15.9"
},
"scripts": {
"dev": "vite",
"build": "vite build",
"preview": "vite preview",
"lint": "eslint .",
"lint:fix": "eslint . --fix",
"format": "prettier --write \"src/**/*.{js,jsx,css,md}\"",
"format:check": "prettier --check \"src/**/*.{js,jsx,css,md}\"",
"test": "vitest",
"test:ui": "vitest --ui",
"test:run": "vitest run",
"test:coverage": "vitest run --coverage",
"generate:export-sfx": "node scripts/render-tone-export-sfx.mjs",
"fetch:youtube-thumbnails": "node scripts/fetch-youtube-thumbnails.mjs",
"deploy:cf:staging": "wrangler deploy --env staging",
"deploy:cf:production": "wrangler deploy --env production",
"preview:cf:upload": "wrangler versions upload --env staging"
},
"dependencies": {
"@dicebear/core": "^10.3.0",
"@dicebear/styles": "^10.2.0",
"@fontsource-variable/inter": "^5.2.8",
"@fontsource-variable/source-serif-4": "^5.3.0",
"@monaco-editor/react": "^4.7.0",
"@octokit/rest": "^22.0.1",
"@phosphor-icons/react": "^2.1.10",
"@posthog/react": "^1.10.3",
"@remotion/media": "4.0.436",
"@remotion/web-renderer": "^4.0.436",
"@supabase/supabase-js": "^2.108.2",
"@tiptap/extension-placeholder": "^3.27.1",
"@tiptap/pm": "^3.27.1",
"@tiptap/react": "^3.27.1",
"@tiptap/starter-kit": "^3.27.1",
"i18next": "^25.7.1",
"i18next-browser-languagedetector": "^8.2.0",
"isomorphic-dompurify": "^3.18.0",
"posthog-js": "^1.404.0",
"react": "^19.2.0",
"react-dom": "^19.2.0",
"react-i18next": "^15.7.4",
"react-icons": "^5.6.0",
"react-router-dom": "^7.12.0",
"remotion": "^4.0.436",
"tone": "^15.1.22"
},
"devDependencies": {
"@eslint/js": "^9.39.1",
"@tailwindcss/postcss": "^4.1.17",
"@testing-library/jest-dom": "^6.9.1",
"@testing-library/react": "^16.3.0",
"@types/react": "^19.2.7",
"@types/react-dom": "^19.2.3",
"@vitejs/plugin-react": "^5.1.1",
"@vitest/coverage-v8": "^3.2.6",
"@vitest/ui": "^3.2.6",
"autoprefixer": "^10.4.22",
"d3": "^7.9.0",
"eslint": "^9.39.1",
"eslint-config-prettier": "^10.1.8",
"eslint-plugin-prettier": "^5.5.4",
"eslint-plugin-react-hooks": "^5.2.0",
"eslint-plugin-react-refresh": "^0.4.24",
"framer-motion": "^12.23.24",
"globals": "^16.5.0",
"jsdom": "^27.2.0",
"playwright": "^1.55.1",
"postcss": "^8.5.6",
"prettier": "^3.7.4",
"tailwindcss": "^4.1.17",
"vite": "npm:rolldown-vite@7.2.10",
"vitest": "^3.2.6",
"wrangler": "^4.104.0"
},
"pnpm": {
"overrides": {
"vite": "npm:rolldown-vite@7.2.10",
"minimatch@3": "3.1.5",
"minimatch@9": "9.0.9",
"semver@7": "7.8.5",
"flatted": "3.4.3",
"ajv@6": "6.15.0"
}
}
}