Skip to content

fix: drag block issue (#9902) #24032

fix: drag block issue (#9902)

fix: drag block issue (#9902) #24032

Triggered via push February 5, 2025 07:40
Status Success
Total duration 13m 26s
Artifacts 8

build-test.yml

on: push
Optimize CI
6s
Optimize CI
Matrix: build-native
Build Server native
56s
Build Server native
Build @affine/electron renderer
2m 10s
Build @affine/electron renderer
test-build-mobile-app  /  output-env
2s
test-build-mobile-app / output-env
Matrix: Analyze
Matrix: Legacy Blocksuite E2E Test
Matrix: E2E Mobile Test
Matrix: E2E Test
Matrix: Unit Test
Matrix: Server Copilot E2E Test
Matrix: server-e2e-test
Server Test
11m 37s
Server Test
Server Copilot Api Test
29s
Server Copilot Api Test
Matrix: desktop-test
test-build-mobile-app  /  build-android-web
2m 1s
test-build-mobile-app / build-android-web
test-build-mobile-app  /  build-ios-web
1m 48s
test-build-mobile-app / build-ios-web
test-build-mobile-app  /  android
3m 36s
test-build-mobile-app / android
test-build-mobile-app  /  ios
5m 39s
test-build-mobile-app / ios
3, 2, 1 Launch
0s
3, 2, 1 Launch
Fit to window
Zoom out
Zoom in

Annotations

11 errors, 32 warnings, and 27 notices
selection/native.spec.ts:266:1 › cursor move to up and down with children block: blocksuite/tests-legacy/selection/native.spec.ts#L295
1) selection/native.spec.ts:266:1 › cursor move to up and down with children block ─────────────── Error: expect(received).toBeGreaterThanOrEqual(expected) Expected: >= 12 Received: -1 293 | const textTwo = await getInlineSelectionText(page); 294 | expect(textTwo).toBe('arrow down test 1'); > 295 | expect(indexTwo).toBeGreaterThanOrEqual(12); | ^ 296 | expect(indexTwo).toBeLessThanOrEqual(17); 297 | await page.keyboard.press('ArrowDown'); 298 | const textThree = await getInlineSelectionText(page); at /home/runner/work/AFFiNE/AFFiNE/blocksuite/tests-legacy/selection/native.spec.ts:295:20
slash-menu.spec.ts:365:3 › slash menu should show and hide correctly › should open and close menu when using left right arrow: blocksuite/tests-legacy/slash-menu.spec.ts#L388
2) slash-menu.spec.ts:365:3 › slash menu should show and hide correctly › should open and close menu when using left right arrow, Enter, Esc keys Error: Timed out 5000ms waiting for expect(locator).toHaveAttribute(expected) Locator: locator('.slash-menu[data-testid=sub-menu-0]').locator('icon-button').nth(4) Expected string: "true" Received string: "false" Call log: - expect.toHaveAttribute with timeout 5000ms - waiting for locator('.slash-menu[data-testid=sub-menu-0]').locator('icon-button').nth(4) 9 × locator resolved to <icon-button width="100%" tabindex="0" height="44px" hover="false" role="button" text="Other Headings" data-test-disabled="false" data-testid="Other Headings" class="slash-menu-item other-headings">…</icon-button> - unexpected value "false" 386 | await type(page, '/'); 387 | await pressArrowDown(page, 4); > 388 | await expect(slashItems.nth(4)).toHaveAttribute('hover', 'true'); | ^ 389 | await expect(slashItems.nth(4).locator('.text')).toHaveText([ 390 | 'Other Headings', 391 | ]); at /home/runner/work/AFFiNE/AFFiNE/blocksuite/tests-legacy/slash-menu.spec.ts:388:37
attachment.spec.ts:150:1 › should undo/redo works for attachment: blocksuite/tests-legacy/attachment.spec.ts#L71
1) attachment.spec.ts:150:1 › should undo/redo works for attachment ────────────────────────────── TimeoutError: page.waitForEvent: Timeout 5000ms exceeded while waiting for event "filechooser" =========================== logs =========================== waiting for event "filechooser" ============================================================ 69 | await expect(slashMenu).toBeVisible(); 70 | > 71 | const fileChooser = page.waitForEvent('filechooser'); | ^ 72 | await pressEnter(page); 73 | await sleep(100); 74 | await (await fileChooser).setFiles(FILE_PATH); at insertAttachment (/home/runner/work/AFFiNE/AFFiNE/blocksuite/tests-legacy/attachment.spec.ts:71:30) at /home/runner/work/AFFiNE/AFFiNE/blocksuite/tests-legacy/attachment.spec.ts:157:3
attachment.spec.ts:432:1 › attachment can be dragged from note to surface top level block: blocksuite/tests-legacy/attachment.spec.ts#L71
2) attachment.spec.ts:432:1 › attachment can be dragged from note to surface top level block ───── TimeoutError: page.waitForEvent: Timeout 5000ms exceeded while waiting for event "filechooser" =========================== logs =========================== waiting for event "filechooser" ============================================================ 69 | await expect(slashMenu).toBeVisible(); 70 | > 71 | const fileChooser = page.waitForEvent('filechooser'); | ^ 72 | await pressEnter(page); 73 | await sleep(100); 74 | await (await fileChooser).setFiles(FILE_PATH); at insertAttachment (/home/runner/work/AFFiNE/AFFiNE/blocksuite/tests-legacy/attachment.spec.ts:71:30) at /home/runner/work/AFFiNE/AFFiNE/blocksuite/tests-legacy/attachment.spec.ts:440:3
clipboard/list.spec.ts:134:1 › paste a nested list to a nested list: blocksuite/tests-legacy/utils/asserts.ts#L207
3) clipboard/list.spec.ts:134:1 › paste a nested list to a nested list ─────────────────────────── Error: expect(received).toEqual(expected) // deep equality - Expected - 2 + Received + 2 Array [ "aaa", - "aaa", + "bbbaaa", "bbb", - "cccbbb", + "ccc", "ccc", ] at utils/asserts.ts:207 205 | }); 206 | }, currentEditorIndex); > 207 | expect(actualTexts).toEqual(texts); | ^ 208 | } 209 | 210 | export async function assertEdgelessCanvasText(page: Page, text: string) { at assertRichTexts (/home/runner/work/AFFiNE/AFFiNE/blocksuite/tests-legacy/utils/asserts.ts:207:23) at /home/runner/work/AFFiNE/AFFiNE/blocksuite/tests-legacy/clipboard/list.spec.ts:166:3
clipboard/list.spec.ts:308:1 › paste non-nested lists to a nested list: blocksuite/tests-legacy/utils/asserts.ts#L207
4) clipboard/list.spec.ts:308:1 › paste non-nested lists to a nested list ──────────────────────── Error: expect(received).toEqual(expected) // deep equality - Expected - 2 + Received + 2 Array [ - "123", - "456aaa", + "aaa123", + "456", "bbb", ] at utils/asserts.ts:207 205 | }); 206 | }, currentEditorIndex); > 207 | expect(actualTexts).toEqual(texts); | ^ 208 | } 209 | 210 | export async function assertEdgelessCanvasText(page: Page, text: string) { at assertRichTexts (/home/runner/work/AFFiNE/AFFiNE/blocksuite/tests-legacy/utils/asserts.ts:207:23) at /home/runner/work/AFFiNE/AFFiNE/blocksuite/tests-legacy/clipboard/list.spec.ts:343:3
latex/inline.spec.ts:94:1 › update inline latex by clicking the node: blocksuite/tests-legacy/latex/inline.spec.ts#L126
1) latex/inline.spec.ts:94:1 › update inline latex by clicking the node ────────────────────────── Error: expect(received).toBe(expected) // Object.is equality - Expected - 7 + Received + 1 - <math xmlns="http://www.w3.org/1998/Math/MathML" display="block"><semantics><mtable rowspacing="0.66em" columnalign="center center center" columnlines="dashed dashed" columnspacing="1em" rowlines="none none dashed"><mtr><mtd><mstyle scriptlevel="0" displaystyle="false"><mi>a</mi></mstyle></mtd><mtd><mstyle scriptlevel="0" displaystyle="false"><mi>b</mi></mstyle></mtd><mtd><mstyle scriptlevel="0" displaystyle="false"><mi>c</mi></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel="0" displaystyle="false"><mrow></mrow></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel="0" displaystyle="false"><mrow><mi>h</mi><mi>l</mi><mi>i</mi><mi>n</mi><mi>e</mi><mi>d</mi></mrow></mstyle></mtd><mtd><mstyle scriptlevel="0" displaystyle="false"><mi>e</mi></mstyle></mtd><mtd><mstyle scriptlevel="0" displaystyle="false"><mi>f</mi></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel="0" displaystyle="false"><mi>g</mi></mstyle></mtd><mtd><mstyle scriptlevel="0" displaystyle="false"><mi>h</mi></mstyle></mtd><mtd><mstyle scriptlevel="0" displaystyle="false"><mi>i</mi></mstyle></mtd></mtr></mtable><annotation encoding="application/x-tex">\def\arraystretch{1.5} - \begin{array}{c:c:c} - a &amp; b &amp; c \\ \\ hline - d &amp; e &amp; f \\ - \hdashline - g &amp; h &amp; i - \end{array}</annotation></semantics></math> + <math xmlns="http://www.w3.org/1998/Math/MathML" display="block"><semantics><mrow><mi>E</mi><mo>=</mo><mi>m</mi><msup><mi>c</mi><mn>2</mn></msup></mrow><annotation encoding="application/x-tex">E=mc^2</annotation></semantics></math> 124 | await pressShiftEnter(page); 125 | await type(page, String.raw`\end{array}`); > 126 | expect(await latexElement.locator('.katex').innerHTML()).toBe( | ^ 127 | '<math xmlns="http://www.w3.org/1998/Math/MathML" display="block"><semantics><mtable rowspacing="0.66em" columnalign="center center center" columnlines="dashed dashed" columnspacing="1em" rowlines="none none dashed"><mtr><mtd><mstyle scriptlevel="0" displaystyle="false"><mi>a</mi></mstyle></mtd><mtd><mstyle scriptlevel="0" displaystyle="false"><mi>b</mi></mstyle></mtd><mtd><mstyle scriptlevel="0" displaystyle="false"><mi>c</mi></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel="0" displaystyle="false"><mrow></mrow></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel="0" displaystyle="false"><mrow><mi>h</mi><mi>l</mi><mi>i</mi><mi>n</mi><mi>e</mi><mi>d</mi></mrow></mstyle></mtd><mtd><mstyle scriptlevel="0" displaystyle="false"><mi>e</mi></mstyle></mtd><mtd><mstyle scriptlevel="0" displaystyle="false"><mi>f</mi></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel="0" displaystyle="false"><mi>g</mi></mstyle></mtd><mtd><mstyle scriptlevel="0" displaystyle="false"><mi>h</mi></mstyle></mtd><mtd><mstyle scriptlevel="0" displaystyle="false"><mi>i</mi></mstyle></mtd></mtr></mtable><annotation encoding="application/x-tex">\\def\\arraystretch{1.5}\n\\begin{array}{c:c:c}\na &amp; b &amp; c \\\\ \\\\ hline\nd &amp; e &amp; f \\\\\n\\hdashline\ng &amp; h &amp; i\n\\end{array}</annotation></semantics></math>' 128 | ); 129 | at /home/runner/work/AFFiNE/AFFiNE/blocksuite/tests-legacy/latex/inline.spec.ts:126:60
blocksuite/outline/outline-panel.spec.ts:284:3 › TOC and editor scroll › should scroll to title when click title in outline panel: tests/affine-local/e2e/blocksuite/outline/outline-panel.spec.ts#L1
1) blocksuite/outline/outline-panel.spec.ts:284:3 › TOC and editor scroll › should scroll to title when click title in outline panel Test timeout of 50000ms exceeded.
blocksuite/outline/outline-panel.spec.ts:284:3 › TOC and editor scroll › should scroll to title when click title in outline panel: tests/kit/src/utils/sidebar.ts#L28
1) blocksuite/outline/outline-panel.spec.ts:284:3 › TOC and editor scroll › should scroll to title when click title in outline panel Error: locator.click: Test timeout of 50000ms exceeded. Call log: - waiting for getByTestId('sidebar-tab-outline') - locator resolved to <button role="radio" type="button" tabindex="-1" value="outline" aria-checked="false" data-state="unchecked" data-radix-collection-item="" data-testid="sidebar-tab-outline" class="styles_radioButton__2mzioa4">…</button> - attempting click action 2 × waiting for element to be visible, enabled and stable - element is not stable - retrying click action - waiting 20ms - waiting for element to be visible, enabled and stable - element is not stable - retrying click action - waiting 100ms at ../../kit/src/utils/sidebar.ts:28 26 | ) { 27 | await page.getByTestId('right-sidebar-toggle').click(); > 28 | tab && (await page.getByTestId(`sidebar-tab-${tab}`).click()); | ^ 29 | } 30 | at openRightSideBar (/home/runner/work/AFFiNE/AFFiNE/tests/kit/src/utils/sidebar.ts:28:56) at openTocPanel (/home/runner/work/AFFiNE/AFFiNE/tests/affine-local/e2e/blocksuite/outline/outline-panel.spec.ts:42:3) at /home/runner/work/AFFiNE/AFFiNE/tests/affine-local/e2e/blocksuite/outline/outline-panel.spec.ts:291:17
image-preview.spec.ts:494:1 › image should able to delete and when delete: tests/affine-local/e2e/image-preview.spec.ts#L518
1) image-preview.spec.ts:494:1 › image should able to delete and when delete, it will move to previous/next image TimeoutError: locator.click: Timeout 5000ms exceeded. Call log: - waiting for locator('doc-title .inline-editor').first() - locator resolved to <div data-v-root="true" contenteditable="true" class=" inline-editor ">…</div> - attempting click action 2 × waiting for element to be visible, enabled and stable - element is visible, enabled and stable - scrolling into view if needed - done scrolling - <iframe src="about:blank" id="webpack-dev-server-client-overlay"></iframe> intercepts pointer events - retrying click action - waiting 20ms 2 × waiting for element to be visible, enabled and stable - element is visible, enabled and stable - scrolling into view if needed - done scrolling - <iframe src="about:blank" id="webpack-dev-server-client-overlay"></iframe> intercepts pointer events - retrying click action - waiting 100ms 10 × waiting for element to be visible, enabled and stable - element is visible, enabled and stable - scrolling into view if needed - done scrolling - <iframe src="about:blank" id="webpack-dev-server-client-overlay"></iframe> intercepts pointer events - retrying click action - waiting 500ms 516 | { 517 | const title = getBlockSuiteEditorTitle(page); > 518 | await title.click(); | ^ 519 | await page.keyboard.press('Enter'); 520 | await importImage(page, 'affine-preview.png'); 521 | } at /home/runner/work/AFFiNE/AFFiNE/tests/affine-local/e2e/image-preview.spec.ts:518:17
links.spec.ts:279:1 › allow switching to embed view when linking to the other document with mode: tests/affine-local/e2e/links.spec.ts#L316
2) links.spec.ts:279:1 › allow switching to embed view when linking to the other document with mode TimeoutError: locator.click: Timeout 5000ms exceeded. Call log: - waiting for locator('affine-embed-linked-doc-block') - locator resolved to <affine-embed-linked-doc-block contenteditable="false" data-block-id="EEoKfvAXIc" data-drop-target-for-element="true">…</affine-embed-linked-doc-block> - attempting click action 2 × waiting for element to be visible, enabled and stable - element is visible, enabled and stable - scrolling into view if needed - done scrolling - <iframe src="about:blank" id="webpack-dev-server-client-overlay"></iframe> intercepts pointer events - retrying click action - waiting 20ms 2 × waiting for element to be visible, enabled and stable - element is visible, enabled and stable - scrolling into view if needed - done scrolling - <iframe src="about:blank" id="webpack-dev-server-client-overlay"></iframe> intercepts pointer events - retrying click action - waiting 100ms 9 × waiting for element to be visible, enabled and stable - element is visible, enabled and stable - scrolling into view if needed - done scrolling - <iframe src="about:blank" id="webpack-dev-server-client-overlay"></iframe> intercepts pointer events - retrying click action - waiting 500ms 314 | 315 | await expect(cardLink).toBeVisible(); > 316 | await cardLink.click(); | ^ 317 | 318 | // refocus 319 | await cardLink.click(); at /home/runner/work/AFFiNE/AFFiNE/tests/affine-local/e2e/links.spec.ts:316:18
Optimize CI
Request body: {"token":"***","caller":{"name":"graphite-ci-action","version":"0.0.0"},"context":{"kind":"GITHUB_ACTIONS","repository":{"owner":"toeverything","name":"AFFiNE"},"sha":"02122098c7ca13cc7d950ddb6c921335bb1deebc","ref":"refs/heads/canary","head_ref":"","run":{"workflow":"Build & Test","job":"optimize_ci","run":13152490184}}}
Optimize CI
Response status: 400
Optimize CI
toeverything/AFFiNE/undefined
Optimize CI
Response returned a non-200 status. Skipping Graphite checks.
Slow Test: tests/affine-mobile/[Mobile Safari] › explorer-folder.spec.ts#L1
tests/affine-mobile/[Mobile Safari] › explorer-folder.spec.ts took 45.5s
Slow Test: tests/affine-mobile/[Mobile Safari] › back-button-visibility.spec.ts#L1
tests/affine-mobile/[Mobile Safari] › back-button-visibility.spec.ts took 41.8s
Slow Test: tests/affine-mobile/[Mobile Chrome] › detail.spec.ts#L1
tests/affine-mobile/[Mobile Chrome] › detail.spec.ts took 45.0s
Slow Test: tests/affine-mobile/[Mobile Chrome] › explorer-favorite.spec.ts#L1
tests/affine-mobile/[Mobile Chrome] › explorer-favorite.spec.ts took 42.3s
Slow Test: tests/affine-mobile/[Mobile Safari] › home.spec.ts#L1
tests/affine-mobile/[Mobile Safari] › home.spec.ts took 40.0s
Slow Test: tests/affine-mobile/[Mobile Chrome] › explorer-tag.spec.ts#L1
tests/affine-mobile/[Mobile Chrome] › explorer-tag.spec.ts took 40.9s
Slow Test: tests/affine-desktop-cloud/basic.spec.ts#L1
tests/affine-desktop-cloud/basic.spec.ts took 38.8s
Slow Test: tests/affine-local/duplicate-page.spec.ts#L1
tests/affine-local/duplicate-page.spec.ts took 40.7s
Slow Test: tests/affine-local/drag-page.spec.ts#L1
tests/affine-local/drag-page.spec.ts took 40.5s
Slow Test: tests/affine-cloud/workspace.spec.ts#L1
tests/affine-cloud/workspace.spec.ts took 40.0s
Slow Test: tests/affine-cloud/storage.spec.ts#L1
tests/affine-cloud/storage.spec.ts took 34.7s
Slow Test: tests/affine-cloud/template.spec.ts#L1
tests/affine-cloud/template.spec.ts took 16.5s
Slow Test: tests/affine-cloud/collaboration.spec.ts#L1
tests/affine-cloud/collaboration.spec.ts took 1.3m
Slow Test: tests/affine-cloud/login.spec.ts#L1
tests/affine-cloud/login.spec.ts took 1.0m
test-build-mobile-app / ios
swiftformat 0.55.4 is already installed and up-to-date. To reinstall 0.55.4, run: brew reinstall swiftformat
Analyze (javascript)
1 issue was detected with this workflow: CodeQL language 'javascript' is referenced by more than one entry in the 'language' matrix parameter for job 'analyze'. This may result in duplicate alerts. Please edit the 'language' matrix parameter to keep only one of the following: 'javascript', 'typescript'.
Analyze (javascript)
Unable to validate code scanning workflow: DuplicateLanguageInMatrix
Server Copilot E2E Test (3, 3)
Unexpected input(s) 'perplexity-key', valid inputs are ['script', 'openai-key', 'fal-key']
Server Copilot E2E Test (3, 3)
Unexpected input(s) 'perplexity-key', valid inputs are ['script', 'openai-key', 'fal-key']
Analyze (typescript)
1 issue was detected with this workflow: CodeQL language 'javascript' is referenced by more than one entry in the 'language' matrix parameter for job 'analyze'. This may result in duplicate alerts. Please edit the 'language' matrix parameter to keep only one of the following: 'javascript', 'typescript'.
Analyze (typescript)
Unable to validate code scanning workflow: DuplicateLanguageInMatrix
Slow Test: tests/affine-cloud/share-page.spec.ts#L1
tests/affine-cloud/share-page.spec.ts took 2.9m
Slow Test: tests/affine-cloud/page-history.spec.ts#L1
tests/affine-cloud/page-history.spec.ts took 40.6s
Slow Test: tests/affine-cloud/open-in-app.spec.ts#L1
tests/affine-cloud/open-in-app.spec.ts took 38.0s
Server Copilot E2E Test (2, 3)
Unexpected input(s) 'perplexity-key', valid inputs are ['script', 'openai-key', 'fal-key']
Server Copilot E2E Test (2, 3)
Unexpected input(s) 'perplexity-key', valid inputs are ['script', 'openai-key', 'fal-key']
Server Copilot E2E Test (1, 3)
Unexpected input(s) 'perplexity-key', valid inputs are ['script', 'openai-key', 'fal-key']
Server Copilot E2E Test (1, 3)
Unexpected input(s) 'perplexity-key', valid inputs are ['script', 'openai-key', 'fal-key']
🎭 Playwright Run Summary
7 passed (1.3m)
🎭 Playwright Run Summary
8 passed (1.6m)
🎭 Playwright Run Summary
2 flaky selection/native.spec.ts:266:1 › cursor move to up and down with children block ──────────────── slash-menu.spec.ts:365:3 › slash menu should show and hide correctly › should open and close menu when using left right arrow, Enter, Esc keys 3 skipped 91 passed (1.4m)
🎭 Playwright Run Summary
96 passed (1.4m)
🎭 Playwright Run Summary
1 skipped 96 passed (1.6m)
🎭 Playwright Run Summary
7 passed (1.2m)
🎭 Playwright Run Summary
7 passed (1.2m)
🎭 Playwright Run Summary
4 flaky attachment.spec.ts:150:1 › should undo/redo works for attachment ─────────────────────────────── attachment.spec.ts:432:1 › attachment can be dragged from note to surface top level block ────── clipboard/list.spec.ts:134:1 › paste a nested list to a nested list ──────────────────────────── clipboard/list.spec.ts:308:1 › paste non-nested lists to a nested list ───────────────────────── 2 skipped 91 passed (1.5m)
🎭 Playwright Run Summary
4 skipped 93 passed (1.5m)
🎭 Playwright Run Summary
7 passed (1.1m)
🎭 Playwright Run Summary
1 flaky latex/inline.spec.ts:94:1 › update inline latex by clicking the node ─────────────────────────── 2 skipped 94 passed (1.5m)
🎭 Playwright Run Summary
6 skipped 91 passed (2.4m)
🎭 Playwright Run Summary
12 skipped 85 passed (2.2m)
🎭 Playwright Run Summary
4 skipped 93 passed (2.4m)
🎭 Playwright Run Summary
1 skipped 47 passed (3.9m)
🎭 Playwright Run Summary
1 skipped 48 passed (4.1m)
🎭 Playwright Run Summary
1 passed (1.0m)
🎭 Playwright Run Summary
1 flaky blocksuite/outline/outline-panel.spec.ts:284:3 › TOC and editor scroll › should scroll to title when click title in outline panel 47 passed (4.6m)
🎭 Playwright Run Summary
1 skipped 96 passed (3.0m)
🎭 Playwright Run Summary
3 skipped 45 passed (4.0m)
🎭 Playwright Run Summary
2 flaky image-preview.spec.ts:494:1 › image should able to delete and when delete, it will move to previous/next image links.spec.ts:279:1 › allow switching to embed view when linking to the other document with mode 46 passed (4.7m)
🎭 Playwright Run Summary
4 passed (2.0m)
🎭 Playwright Run Summary
2 skipped 6 passed (2.9m)
🎭 Playwright Run Summary
7 skipped 8 passed (3.1m)
🎭 Playwright Run Summary
11 passed (4.8m)
🎭 Playwright Run Summary
15 passed (4.9m)
🎭 Playwright Run Summary
1 skipped 14 passed (3.6m)

Artifacts

Produced during runtime
Name Size
affine.darwin-arm64.node Expired
1.92 MB
affine.darwin-x64.node Expired
2.04 MB
affine.linux-x64-gnu.node Expired
2.07 MB
affine.win32-x64-msvc.node Expired
2.44 MB
android Expired
61.3 MB
ios Expired
61.3 MB
server-native.node Expired
4.33 MB
web Expired
62.8 MB