-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpackage.json
More file actions
125 lines (125 loc) · 6.43 KB
/
package.json
File metadata and controls
125 lines (125 loc) · 6.43 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
122
123
124
125
{
"name": "@pproenca/node-webcodecs",
"description": "WebCodecs API implementation for Node.js using FFmpeg",
"version": "0.1.1-alpha.8",
"author": "Pedro Proenca",
"homepage": "https://github.com/pproenca/node-webcodecs",
"repository": {
"type": "git",
"url": "git://github.com/pproenca/node-webcodecs.git"
},
"bugs": {
"url": "https://github.com/pproenca/node-webcodecs/issues"
},
"scripts": {
"build": "npm run build:scripts && node-gyp rebuild -j max && tsc",
"build:native": "npm run build:scripts && node-gyp rebuild -j max",
"build:scripts": "tsc -p tsconfig.gyp.json",
"build:ts": "tsc",
"build:debug": "npm run build:scripts && node-gyp rebuild -j max --debug && tsc",
"rebuild": "npm run clean && npm run build",
"clean": "rm -rf src/build/ .nyc_output/ coverage/ test/fixtures/output.*",
"check": "npm run lint && npm test",
"test": "npm run test:fast && npm run test:guardrails",
"test:fast": "tsx --test --test-reporter=spec --test-concurrency=1 --import ./test/setup.ts --test-timeout=30000 test/golden/*.test.ts test/unit/*.test.ts",
"test:golden": "tsx --test --test-reporter=spec --test-concurrency=1 --import ./test/setup.ts --test-timeout=30000 test/golden/*.test.ts",
"test:unit": "tsx --test --test-reporter=spec --test-concurrency=1 --import ./test/setup.ts --test-timeout=30000 test/unit/*.test.ts",
"test:stress": "tsx --test --test-reporter=spec --test-concurrency=1 --import ./test/setup.ts --test-timeout=60000 test/stress/*.test.ts",
"test:contracts": "tsx test/contracts/video_encoder/state_machine.ts && tsx test/contracts/audio_encoder/state_machine.ts && tsx test/contracts/video_decoder/state_machine.ts && tsx test/contracts/audio_decoder/state_machine.ts",
"test:guardrails": "tsx test/guardrails/fuzzer.ts && tsx test/guardrails/event_loop_lag.ts",
"test:coverage": "c8 --check-coverage --lines 70 --branches 60 --functions 70 --statements 70 --include lib/**/*.ts --exclude lib/**/*.d.ts --exclude lib/types.ts npm run test:fast",
"test:failures": "npm run test:fast 2>&1 | grep -E '(✖|failures|tests.*failed)' || true",
"test:summary": "npm run test:fast 2>&1 | grep -E '^ℹ' || true",
"test:ci": "tsx --test --test-reporter=spec --test-reporter-destination=stdout --test-reporter=node-test-github-reporter --test-reporter-destination=/dev/null --test-concurrency=1 --import ./test/setup.ts --test-timeout=30000 test/golden/*.test.ts test/unit/*.test.ts && npm run test:guardrails",
"test:native": "cd test/native && mkdir -p build && cd build && cmake .. && make -j4 && ./webcodecs_tests",
"test:native:ci": "cd test/native && mkdir -p build && cd build && cmake .. && make -j4 && ./webcodecs_tests --gtest_output=xml:native-results.xml",
"test:native:sanitize": "cd test/native && mkdir -p build && cd build && cmake .. -DSANITIZE=ON && make -j4 && ASAN_OPTIONS=detect_leaks=1 ./webcodecs_tests",
"test:native:tsan": "cd test/native && mkdir -p build && cd build && cmake .. -DTSAN=ON && make -j4 && TSAN_OPTIONS=halt_on_error=1 ./webcodecs_tests",
"test:native:coverage": "cd test/native && mkdir -p build && cd build && cmake .. -DCOVERAGE=ON && make -j4 && ./webcodecs_tests --gtest_brief=1 && lcov --capture --directory . --output-file coverage.info --ignore-errors inconsistent,unsupported,format && genhtml coverage.info --output-directory coverage_html --ignore-errors inconsistent,format,empty,category --title 'Node WebCodecs C++ Tests' --legend && echo '\\n✓ Coverage report: test/native/build/coverage_html/index.html'",
"test:native:leaks": "cd test/native && mkdir -p build && cd build && cmake .. && make -j4 && leaks --atExit -- ./webcodecs_tests --gtest_brief=1",
"bench:native": "cd test/native && mkdir -p build && cd build && cmake .. -DBUILD_BENCHMARKS=ON -DCMAKE_BUILD_TYPE=Release && make -j4 webcodecs_benchmarks && ./webcodecs_benchmarks",
"bench:native:filter": "cd test/native && mkdir -p build && cd build && cmake .. -DBUILD_BENCHMARKS=ON -DCMAKE_BUILD_TYPE=Release && make -j4 webcodecs_benchmarks && ./webcodecs_benchmarks --benchmark_filter",
"lint": "npm run lint:cpp && npm run lint:ts && npm run lint:types && npm run lint:md",
"lint:cpp": "cpplint --quiet src/*.h src/*.cc",
"lint:ts": "biome lint",
"lint:types": "tsd",
"lint:md": "prettier --check \"**/*.md\"",
"format": "npm run format:md",
"format:md": "prettier --write \"**/*.md\"",
"version:bump": "tsx scripts/bump-version.ts",
"create-platform-packages": "tsx scripts/create-platform-packages.ts",
"fetch-spec": "tsx scripts/fetch-webcodecs-spec.ts"
},
"type": "commonjs",
"main": "dist/index.js",
"types": "dist/index.d.ts",
"exports": {
".": {
"types": "./dist/index.d.ts",
"require": "./dist/index.js",
"import": "./dist/index.js",
"default": "./dist/index.js"
}
},
"files": [
"lib",
"dist",
"src/*.{cc,h,gyp}",
"binding.gyp"
],
"keywords": [
"webcodecs",
"video",
"encoder",
"ffmpeg",
"nodejs"
],
"tsd": {
"directory": "test/types"
},
"optionalDependencies": {
"@pproenca/node-webcodecs-darwin-arm64": "0.1.1-alpha.8",
"@pproenca/node-webcodecs-darwin-x64": "0.1.1-alpha.8",
"@pproenca/node-webcodecs-linux-x64-glibc": "0.1.1-alpha.8",
"@pproenca/node-webcodecs-linux-x64-musl": "0.1.1-alpha.8",
"@pproenca/webcodecs-ffmpeg-darwin-arm64": "^0.1.7",
"@pproenca/webcodecs-ffmpeg-darwin-x64": "^0.1.7",
"@pproenca/webcodecs-ffmpeg-linux-arm64": "^0.1.7",
"@pproenca/webcodecs-ffmpeg-linux-x64": "^0.1.7",
"@pproenca/webcodecs-ffmpeg-linux-x64-musl": "^0.1.7"
},
"dependencies": {
"detect-libc": "^2.1.2",
"node-gyp-build": "^4.8.0"
},
"devDependencies": {
"@biomejs/biome": "^2.3.10",
"@cpplint/cli": "^0.1.0",
"@pproenca/webcodecs-ffmpeg-dev": "^0.1.7",
"@types/node": "^25.0.3",
"@types/turndown": "^5.0.6",
"c8": "^10.1.3",
"cheerio": "^1.1.2",
"express": "^5.2.1",
"mediabunny": "^1.27.3",
"node-addon-api": "^8.5.0",
"node-gyp": "^12.1.0",
"node-test-github-reporter": "^1.3.1",
"prebuildify": "^6.0.1",
"prettier": "^3.7.4",
"tsd": "^0.33.0",
"tsx": "^4.21.0",
"turndown": "^7.2.2",
"typedoc": "^0.28.15",
"typescript": "^5.9.3"
},
"license": "MIT",
"engines": {
"node": "^20.17.0 || ^22.9.0 || >=24"
},
"publishConfig": {
"access": "public",
"registry": "https://registry.npmjs.org/"
},
"gypfile": false
}