Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,3 +29,6 @@ jobs:

- name: Test
run: bun run test

- name: Build
run: bun run build
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ Thanks for your interest in contributing! We welcome all kinds of contributions

### Prerequisites

- [Bun](https://bun.sh/) 1.3+ (or Node.js 18+)
- [Bun](https://bun.sh/) 1.3+ and Node.js 20.9+

### Setup

Expand Down
2 changes: 1 addition & 1 deletion SETUP.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

## Prerequisites

- [Bun](https://bun.sh/) 1.3+ (or Node.js 18+)
- [Bun](https://bun.sh/) 1.3+ and Node.js 20.9+

## Quick Start

Expand Down
9 changes: 9 additions & 0 deletions apps/editor/AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<!-- BEGIN:nextjs-agent-rules -->

# This is NOT the Next.js you know

This version has breaking changes — APIs, conventions, and file structure may all differ from your training data. Read the relevant guide in `node_modules/next/dist/docs/` (resolved from this file's directory; in monorepos the `next` package may not be visible from the repo root) before writing any code. Heed deprecation notices.

This block is written and re-added by `next dev` — verify at `node_modules/next/dist/server/lib/generate-agent-files.js`. Removing it from a diff only re-creates the uncommitted change; committing it with your work keeps the tree clean.

<!-- END:nextjs-agent-rules -->
1 change: 1 addition & 0 deletions apps/editor/CLAUDE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
@AGENTS.md
6 changes: 3 additions & 3 deletions apps/editor/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
"build": "dotenv -e ../../.env.local -- next build",
"start": "next start",
"lint": "biome lint",
"check-types": "next typegen && tsgo --noEmit",
"check-types": "next typegen && tsc --noEmit",
"test": "bun test lib"
},
"dependencies": {
Expand All @@ -27,7 +27,7 @@
"clsx": "^2.1.1",
"geist": "^1.7.0",
"lucide-react": "^1.7.0",
"next": "16.2.9",
"next": "16.3.0",
"postcss": "^8.5.6",
"react": "^19.2.4",
"react-dom": "^19.2.4",
Expand All @@ -46,6 +46,6 @@
"react-grab": "^0.1.50",
"react-scan": "^0.5.7",
"tw-animate-css": "^1.4.0",
"typescript": "6.0.3"
"typescript": "7.0.2"
}
}
9 changes: 9 additions & 0 deletions apps/ifc-converter/AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<!-- BEGIN:nextjs-agent-rules -->

# This is NOT the Next.js you know

This version has breaking changes — APIs, conventions, and file structure may all differ from your training data. Read the relevant guide in `node_modules/next/dist/docs/` (resolved from this file's directory; in monorepos the `next` package may not be visible from the repo root) before writing any code. Heed deprecation notices.

This block is written and re-added by `next dev` — verify at `node_modules/next/dist/server/lib/generate-agent-files.js`. Removing it from a diff only re-creates the uncommitted change; committing it with your work keeps the tree clean.

<!-- END:nextjs-agent-rules -->
1 change: 1 addition & 0 deletions apps/ifc-converter/CLAUDE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
@AGENTS.md
6 changes: 3 additions & 3 deletions apps/ifc-converter/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
"build": "next build",
"start": "next start",
"lint": "biome lint",
"check-types": "next typegen && tsgo --noEmit"
"check-types": "next typegen && tsc --noEmit"
},
"dependencies": {
"@pascal-app/core": "*",
Expand All @@ -23,7 +23,7 @@
"@react-three/fiber": "^9.5.0",
"@tailwindcss/postcss": "^4.2.1",
"clsx": "^2.1.1",
"next": "16.2.9",
"next": "16.3.0",
"postcss": "^8.5.6",
"react": "^19.2.4",
"react-dom": "^19.2.4",
Expand All @@ -39,6 +39,6 @@
"@types/react": "^19.2.2",
"@types/react-dom": "^19.2.3",
"@types/three": "^0.184.0",
"typescript": "6.0.3"
"typescript": "7.0.2"
}
}
18 changes: 12 additions & 6 deletions apps/ifc-converter/scripts/copy-web-ifc-wasm.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,8 @@
// copy. Idempotent: skips files that already match by size.

import { copyFileSync, existsSync, mkdirSync, statSync } from 'node:fs'
import { join, resolve } from 'node:path'
import { dirname, join, resolve } from 'node:path'
import { fileURLToPath } from 'node:url'

// web-ifc's package.json doesn't expose subpath exports, so we can't use
// require.resolve('web-ifc/package.json'). Walk up the script directory
Expand All @@ -24,16 +25,18 @@ function findWebIfcDir(startDir) {
return null
}

const webIfcDir = findWebIfcDir(import.meta.dirname)
const scriptDir = dirname(fileURLToPath(import.meta.url))
const webIfcDir = findWebIfcDir(scriptDir)
if (!webIfcDir) {
console.warn('[ifc-converter] web-ifc package not found — wasm copy skipped.')
process.exit(0)
console.error('[ifc-converter] web-ifc package not found — cannot copy required WASM files.')
process.exit(1)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

WASM lookup hangs on Windows

Low Severity

findWebIfcDir only stops when the directory is /, so on Windows a missing web-ifc install never reaches the new fail-closed process.exit(1). path.resolve settles on a drive root like C:\, the loop never ends, and postinstall / prebuild can hang instead of failing closed.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 854c81d. Configure here.

}
const publicDir = join(import.meta.dirname, '..', 'public')
const publicDir = join(scriptDir, '..', 'public')

mkdirSync(publicDir, { recursive: true })

const files = ['web-ifc.wasm', 'web-ifc-mt.wasm', 'web-ifc-node.wasm']
let copyFailed = false
for (const name of files) {
const src = join(webIfcDir, name)
const dst = join(publicDir, name)
Expand All @@ -51,6 +54,9 @@ for (const name of files) {
copyFileSync(src, dst)
console.log(`[ifc-converter] copied ${name} (${(srcSize / 1024).toFixed(0)} KB)`)
} catch (err) {
console.warn(`[ifc-converter] could not copy ${name}:`, err.message)
console.error(`[ifc-converter] could not copy ${name}:`, err.message)
copyFailed = true
}
}

if (copyFailed) process.exit(1)
Loading
Loading