Files
ArtPlayer/refactor/baselines/danmuku-contract-validation.json
T

113 lines
5.3 KiB
JSON

{
"schemaVersion": 1,
"task": "PKG-DANMUKU-01",
"capturedAt": "2026-09-13T09:35:02.032Z",
"sourceCommit": "b0cfbfe3a09a84a295a257e45e4577847588d1cb",
"environment": {
"node": "v24.21.0",
"platform": "win32",
"architecture": "x64",
"executable": "refactor/.cache/toolchains/node-v24.21.0-win-x64/node.exe",
"yarnPolicy": "1.22.22; no install or lockfile changes"
},
"inputs": {
"refactor/baselines/danmuku-release.json": {
"sha256LF": "82a0ab2e87f108cbb1d09ce1b6647cfefc896d974da1cb60b2668fded18a4b2f"
},
"refactor/scripts/danmuku-contract.mjs": {
"sha256LF": "8ca0996605cfbcd732030708bd67ecedff5018d2b7436fa7247de7bbb39d7573"
},
"refactor/scripts/danmuku-contract.test.mjs": {
"sha256LF": "37836083e849cd8b7d5d47a4e9d952949d3b28bd885225e3197fb6715febf44e"
},
"refactor/baselines/danmuku-contract.md": {
"sha256LF": "ff51611322cfbb5ad744a37eebc555b74e4d9853b59c91bf13547889fa976bb0"
},
"refactor/changes/2026-09-13-PKG-DANMUKU-01-contracts.md": {
"sha256LF": "fb7355058ee1b13688c2e8c713118f6b802aa086209cb8a6e236694f2764abd9"
}
},
"registry": {
"url": "https://registry.npmjs.org/artplayer-plugin-danmuku",
"status": 200,
"catalogStable": 81,
"archivedReleases": 15,
"unverifiedCatalogArchives": 66,
"bodySha256": "6fccd0198b2322827b3271a807b60f73a3e4d6f46aeb5494a86aade409caf1d6"
},
"evidence": [
{
"command": "node refactor/scripts/danmuku-contract.mjs",
"log": "refactor/.cache/danmuku01/verify.log",
"exitCode": 0,
"logSha256": "655d90ee59df53dd2136c79f14886bd5b281ea142bc0032e4b7e52b13ee7f5bd"
},
{
"command": "node --test refactor/scripts/danmuku-contract.test.mjs",
"log": "refactor/.cache/danmuku01/contract-test.log",
"exitCode": 0,
"passed": 44,
"failed": 0,
"skipped": 0,
"logSha256": "492c7313c98f197a8241e370854860a0980ada771d1c86b26e5e2303920fb6a0"
},
{
"command": "node node_modules/eslint/bin/eslint.js refactor/scripts/danmuku-contract.mjs refactor/scripts/danmuku-contract.test.mjs",
"log": "refactor/.cache/danmuku01/lint.log",
"exitCode": 0,
"logSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
}
],
"coverage": {
"immutableSourceFiles": 28,
"commonJsModulesExecuted": 28,
"manifestEsmModulesExecuted": 3,
"esmMethod": "Dynamic data URL imports of the actual archive bytes, not package-resolution tests",
"runtimeFixtures": [
"frozen-Git-source with controlled Worker/CSS loader",
"real npm 5.3.0 main",
"real npm 5.3.0 legacy"
],
"runtimeCasesPerFixture": 4,
"parser": "Frozen actual Bilibili parser exercised through URL adapter with controlled fetch and absent-Worker fallback",
"validator": {
"name": "artplayer",
"version": "5.4.0",
"tarballSha256": "42b269a66b9658d53f9a92572bb36d656ea9af56254a387b3a69c7ddea43979e",
"source": "Actual frozen published core bundle static validator, not a replacement validator"
}
},
"reproduced": [
"Actual CJS namespace.default/direct function changes and 12 enumerable writable static icons from 5.1.0.",
"Latest and frozen source registration synchronous; enumerable facade/getter keys and defaults stable.",
"emit returns Promise; chain methods and load resolve the internal Danmuku rather than the facade described by Result.",
"Initial Promise danmuku is rejected by published core validator; load(Promise) works in the same realm.",
"time:0 becomes currentTime+0.5 and input fields are mutated; public emit bypasses beforeEmit.",
"load() replacement, load(target) append, filter this and loaded queue reference identity.",
"Function-only filter config updates are ignored by JSON comparison; load rejection emits and rejects the same error.",
"Empty-array synchronous show/config/reset/loaded ordering and video play/pause state hooks.",
"Settings beforeEmit callback receives trimmed input and option this; border/time reset and lock timer observed.",
"destroy leaves registered resize handlers and a started settings lock timer.",
"Bilibili fallback parser mode/entity/metadata behavior and unpadded hexadecimal color."
],
"observedNotReproduced": [
"id/icons declaration omissions; Slider value/hide and heatmap points declaration drift",
"Bilibili async Promise executor/fetch rejection and unrevoked URL",
"worker onmessage replacement and Date.now ids; late callback/duplicate-start cases",
"heatmap zero sampling, option.points not consumed, repeated SVG ids",
"12 SVG source authorization not separately established"
],
"limitations": [
"No browser playback/layout/Worker/CSP/device validation",
"No actual Bilibili request, media fetch, load/performance/long-running memory validation",
"No package-installed NodeNext/Node10/TypeScript or AMD/global matrix",
"Older selected archives have module-shape coverage, not full old-major runtime compatibility",
"Historical defect assertions are observations and must not become candidate normal expectations",
"Registry signatures and publisher authorization not independently verified"
],
"sourceChanged": false,
"browserValidated": false,
"installedConsumerValidated": false,
"releaseReady": false
}