diff --git a/docs/api/intro.mdx b/docs/api/intro.mdx index cfd598090..4474c72a6 100644 --- a/docs/api/intro.mdx +++ b/docs/api/intro.mdx @@ -291,6 +291,14 @@ Full working examples are available in the open-source GitHub repo: Each example includes a complete server with API routes and a browser frontend for testing. +You can also scaffold any of these example architectures instantly using our CLI tool: + +```bash +npx @bitbybit-dev/create-app my-cloud-project +``` + +Select the **cloud** app type when prompted, then choose your preferred backend template (Hono + SDK, Hono + REST, Node.js + SDK, Node.js + REST, or .NET + REST). The CLI generates a ready-to-run project with a React + Three.js frontend, your chosen backend, and all configuration in place — just add your API key and start developing. + ## Next steps - [**Studio introduction**](/api/studio/intro) — explore the visual dashboard diff --git a/docs/api/sdk/typescript/intro.md b/docs/api/sdk/typescript/intro.md index 0a8326af0..3f6d76646 100644 --- a/docs/api/sdk/typescript/intro.md +++ b/docs/api/sdk/typescript/intro.md @@ -32,7 +32,7 @@ const client = new BitbybitClient({ | Option | Type | Default | Description | |--------|------|---------|-------------| -| `apiKey` | `string` | *required* | Your API key. Get one at [bitbybit.dev/auth/pick-plan](https://bitbybit.dev/auth/pick-plan). | +| `apiKey` | `string` | *required* | Your API key. Get one at [bitbybit.dev/auth/pick-plan](https://bitbybit.dev/auth/pick-plan?api-keys=true). | | `baseUrl` | `string` | `https://api.bitbybit.dev` | API base URL. | | `validate` | `boolean` | `true` | Validate request bodies before sending. See [Validation](./validation). | diff --git a/docs/blog/2026-01-14-create-bitbybit-app-cli.md b/docs/blog/2026-01-14-create-bitbybit-app-cli.md index 0dbc8a37d..3534fef84 100644 --- a/docs/blog/2026-01-14-create-bitbybit-app-cli.md +++ b/docs/blog/2026-01-14-create-bitbybit-app-cli.md @@ -71,6 +71,20 @@ PlayCanvas offers a fast and lightweight approach to WebGL development. It's des No matter which engine you choose, the Bitbybit geometry kernels work with all of them. You can create complex CAD geometry with OCCT and render it beautifully in any of these engines. +## Cloud Projects: Server-Side CAD + +The CLI isn't just for frontend apps anymore. You can now scaffold **cloud** projects that pair a backend server with a React + Three.js frontend, connecting to our [CAD Cloud API](/api/cloud-api) for server-side model generation, STEP-to-glTF conversion, and CAD pipelines. + +Run the CLI and select the **cloud** app type when prompted. Then pick from five backend templates: + +- **Hono + SDK** — TypeScript SDK on Cloudflare Workers +- **Hono + REST** — raw `fetch` on Cloudflare Workers +- **Node.js + SDK** — TypeScript SDK on Express 5 +- **Node.js + REST** — raw `fetch` on Express 5 +- **.NET + REST** — `HttpClient` on ASP.NET Core (.NET 10) + +Your API key stays on the server, and the frontend proxies all requests through your backend. Add your key, run `npm install`, and you're building a full-stack CAD application. + ## Why This Matters We believe that the future of CAD and 3D design is on the web. Browser-based tools are accessible to everyone, require no installation, and can run on virtually any device. But building these tools has been harder than it should be. diff --git a/docs/blog/2026-02-04-step-assembly-support.mdx b/docs/blog/2026-02-04-step-assembly-support.mdx index 77629f57a..2ac21176e 100644 --- a/docs/blog/2026-02-04-step-assembly-support.mdx +++ b/docs/blog/2026-02-04-step-assembly-support.mdx @@ -3,7 +3,7 @@ slug: step-assembly-support-v1-rc1 title: "STEP Assembly Support: Load, Parse, and Export Professional CAD Files" authors: [ubarevicius] tags: [occt, assembly, step, gltf, cad, freecad] -description: "Bitbybit v1.0.0-rc.2 introduces STEP assembly support - load complex CAD files, parse part hierarchies, extract components, preserve colors, and export to GLTF or STEP formats." +description: "Bitbybit v1.0.0 introduces STEP assembly support - load complex CAD files, parse part hierarchies, extract components, preserve colors, and export to GLTF or STEP formats." image: https://ik.imagekit.io/bitbybit/app/assets/blog/step-assembly-support/step-assembly-support-occt-bitbybit.webp --- @@ -14,7 +14,7 @@ import TabItem from '@theme/TabItem'; If you've ever tried to load, edit or create a complex STEP assembly in a web browser, you know how tricky it can be. STEP is the standard format engineers use to share CAD models, but browsers don't understand it natively. You usually need desktop software or a server to convert it. -With **Bitbybit v1.0.0-rc.2**, that changes. You can now load STEP assemblies directly in the browser, explore their structure, extract individual parts, and export to web-friendly formats. Everything runs locally using Bitbybit OCCT WebAssembly. +With **Bitbybit v1.0.0**, that changes. You can now load STEP assemblies directly in the browser, explore their structure, extract individual parts, and export to web-friendly formats. Everything runs locally using Bitbybit OCCT WebAssembly. diff --git a/docs/learn/about.md b/docs/learn/about.md index 96e1a4121..478584b56 100644 --- a/docs/learn/about.md +++ b/docs/learn/about.md @@ -27,7 +27,7 @@ We believe that for a true 3D metaverse to flourish, and for 3D literacy to beco **Our Mission:** We strongly believe that educated users of 3D experiences will become the next wave of creators and innovators. The knowledge of 3D programming needs to spread, and that's why "Bit By Bit Developers" exists. Our mission is to build the fundamental blocks of code that empower you to easily create 3D worlds with your own rules and forces of nature. -We don't aim to reinvent the web but to leverage its best parts and standards. This includes providing **open-source NPM packages and runners** that allow developers to integrate our powerful geometry engine directly into their own websites and custom applications, truly embodying the web's spirit of interoperability and pushing 3D education and creativity forward. +We don't aim to reinvent the web but to leverage its best parts and standards. This includes providing **open-source NPM packages and runners** that allow developers to integrate our powerful geometry engine directly into their own websites and custom applications, truly embodying the web's spirit of interoperability and pushing 3D education and creativity forward. We also provide managed **CAD Cloud infrastructure** so teams can run geometry operations server-side without maintaining their own compute, and a **3D Bits app for Shopify** that brings interactive 3D product experiences to e-commerce. ## Our Platform Components @@ -37,6 +37,8 @@ Our platform is designed to provide a comprehensive environment for 3D creation, 2. **Cloud Services for Collaboration and Sharing** 3. **Online School for Structured Learning** 4. **NPM Packages & Runners for Custom Integration** +5. **CAD Cloud API for Server-Side Geometry** +6. **3D Bits App for Shopify** ### 1. 3D Model Configurators & Parametric Editors @@ -94,6 +96,29 @@ Beyond our hosted platform, we empower developers to take our core technology in This extensibility ensures that Bitbybit can be a foundational layer for a wide array of web-based 3D solutions, from educational tools in **STEM classrooms** to bespoke configurators on e-commerce sites. +### 5. CAD Cloud API for Server-Side Geometry + +Not every 3D workflow belongs in the browser. Our **CAD Cloud API** provides fully managed compute infrastructure for running CAD kernel operations server-side. Submit a job via HTTP, poll for completion, and download the result — from any backend, in any programming language. + +* **Parametric Model Generation:** Generate 3D models on demand using our library of parametric templates. +* **File Conversion:** Convert STEP files to glTF and other formats at scale. +* **CAD Operations:** Run boolean operations, fillets, transforms, and full CAD pipelines without managing OCCT or WASM yourself. +* **Bitbybit Studio:** A browser-based dashboard at [**studio.bitbybit.dev**](https://studio.bitbybit.dev) for managing API keys, testing models, converting files, and monitoring tasks. +* **TypeScript SDK:** The [`@bitbybit-dev/cad-cloud-sdk`](https://www.npmjs.com/package/@bitbybit-dev/cad-cloud-sdk) package provides a convenient client for Node.js, Deno, Bun, and Cloudflare Workers. + +Learn more in our [**CAD Cloud API documentation**](/api/cloud-api). + +### 6. 3D Bits App for Shopify + +For Shopify merchants, our [**3D Bits app**](https://apps.shopify.com/3d-bits-1) brings interactive 3D experiences directly to product pages without any coding. + +* **3D Product Viewers:** Display GLTF models, Gaussian Splatting scans, and other 3D assets on your storefront. +* **Parametric Configurators:** Let customers customize products in real time using CAD-powered configurators you design in our editors. +* **Theme App Extensions:** Drop pre-built blocks — **BITBYBIT RUNNER**, **BITBYBIT VIEWER**, and **BITBYBIT PREVIEW** — into your Shopify theme. No code changes to your theme are required. +* **Variant Integration:** Connect 3D scene changes to Shopify product variants and custom option apps for a seamless shopping experience. + +Get started with our [**3D Bits tutorials**](/learn/3d-bits/tutorials/videos-tutorials/set-up) or install the app from the [**Shopify App Store**](https://apps.shopify.com/3d-bits-1). + --- We are committed to building an open, accessible, and powerful platform for the next generation of 3D creators, educators, and developers. Join us in this journey! \ No newline at end of file diff --git a/docs/learn/getting-started/overview.md b/docs/learn/getting-started/overview.md index 69e057ce7..25c91df32 100644 --- a/docs/learn/getting-started/overview.md +++ b/docs/learn/getting-started/overview.md @@ -2,8 +2,8 @@ sidebar_position: 1 title: Getting Started Overview sidebar_label: Overview -description: Learn about the different ways to use our platform, including 3D Model Configurators, Rete, Blockly, and Monaco (TypeScript) editors. -tags: [getting-started, typescript, occt, jscad, manifold, rete, blockly] +description: Learn about the different ways to use our platform, including 3D Model Configurators, Rete, Blockly, and Monaco (TypeScript) editors, CAD Cloud API, and 3D Bits for Shopify. +tags: [getting-started, typescript, occt, jscad, manifold, rete, blockly, cad-cloud, shopify] --- import Admonition from '@theme/Admonition'; @@ -96,6 +96,7 @@ npx @bitbybit-dev/create-app my-project --engine babylonjs # or --engine threejs # or --engine playcanvas ``` +The CLI also supports scaffolding **CAD Cloud** backend projects. Run it without arguments and select the **cloud** app type to generate a full-stack project with your choice of backend (Hono, Node.js, or .NET) and a React + Three.js frontend. See the [CAD Cloud API docs](/api/cloud-api) for details. @@ -111,6 +112,20 @@ npx @bitbybit-dev/create-app my-project --engine babylonjs For a comprehensive list of available NPM packages and more detailed guides, please visit our [**NPM Packages documentation page**](/learn/npm-packages/intro). +## CAD Cloud API + +If your workflow requires server-side CAD operations — for example, generating models on demand from a backend, converting STEP files to glTF at scale, or running boolean and fillet operations without shipping WASM to the browser — our **CAD Cloud API** handles the heavy lifting on managed infrastructure. + +Every request follows an asynchronous task model: submit a job, receive a task ID, poll for completion, and download the result in your preferred format (glTF, STEP, or decomposed mesh JSON). You can manage everything through the [**Bitbybit Studio**](https://studio.bitbybit.dev) dashboard or integrate programmatically using our [**TypeScript SDK**](https://www.npmjs.com/package/@bitbybit-dev/cad-cloud-sdk). + +For full details, see our [**CAD Cloud API documentation**](/api/cloud-api). + +## 3D Bits App for Shopify + +Selling physical products online? Our [**3D Bits app for Shopify**](https://apps.shopify.com/3d-bits-1) lets you embed interactive 3D product viewers, parametric configurators, and Gaussian Splatting scans directly into your Shopify storefront. Design your 3D experience in any of our editors, then drop it onto a product page using theme app extension blocks — no theme code changes needed. + +Learn how to set it up in our [**3D Bits tutorials**](/learn/3d-bits/tutorials/videos-tutorials/set-up). + ## API Documentation All our editors (Rete, Blockly, Monaco) are built upon the same core set of algorithms. This means that much of the underlying functionality overlaps between them. While each editor excels in its specific use cases, it's often possible to implement similar features across any of the editors. diff --git a/docs/learn/intro.md b/docs/learn/intro.md index a17a8ce5d..e58e07a07 100644 --- a/docs/learn/intro.md +++ b/docs/learn/intro.md @@ -36,10 +36,17 @@ To get started: * We offer [**NPM packages**](/learn/npm-packages/intro) that you can incorporate into your own websites. * *Note: These packages do not include our proprietary advanced algorithms or the models available in the 3D Models section.* * Check out how to set up our algorithms with [**Three.JS**](/learn/npm-packages/threejs), [**Babylon.JS**](/learn/npm-packages/babylonjs) or [**PlayCanvas**](/learn/npm-packages/playcanvas). We include some complete powerful demos with explanations. +* Need server-side CAD? Our [**CAD Cloud API**](/api/cloud-api) lets you generate parametric models, convert STEP files to glTF, and run CAD kernel operations via HTTP from any backend. A [**TypeScript SDK**](https://www.npmjs.com/package/@bitbybit-dev/cad-cloud-sdk) is available. * Also consider our course: [**Introduction To Programming 3D In TypeScript**](https://bitbybit.dev/school/courses/introduction-to-programming-3d-in-typescript). * Or, if you're familiar with BabylonJS: [**Bitbybit For BabylonJS Developers**](https://bitbybit.dev/school/courses/bitbybit-for-babylonjs-developers). These courses explore how our algorithms can create 3D CAD applications. +### Do you sell on Shopify? + +Our [**3D Bits app for Shopify**](https://apps.shopify.com/3d-bits-1) lets you add interactive 3D product viewers, parametric configurators, and even Gaussian Splatting scans directly to your Shopify product pages — no coding required. Design your 3D experience in our editors, export it, and paste it into a product metafield. The app's theme extension handles the rest. + +* Learn more in our [**3D Bits tutorials**](/learn/3d-bits/tutorials/videos-tutorials/set-up). + ### Are you looking for ready-made 3D models? Many of our standalone 3D model configurators require a subscription to our paid plans: Silver or Gold. diff --git a/docs/learn/npm-packages/babylonjs/start-with-babylon-js.md b/docs/learn/npm-packages/babylonjs/start-with-babylon-js.md index a2fe08f95..2e34e3920 100644 --- a/docs/learn/npm-packages/babylonjs/start-with-babylon-js.md +++ b/docs/learn/npm-packages/babylonjs/start-with-babylon-js.md @@ -27,8 +27,8 @@ npm run dev`} This creates a complete project with Vite, TypeScript, and all three CAD kernels (OCCT, JSCAD, Manifold) pre-configured. - -Check out the [Getting Started with BabylonJS](/learn/getting-started/engines/babylonjs) page for an overview of all integration approaches including visual editors and runners. + +The CLI can also scaffold **cloud** projects that pair a backend with a React + Three.js frontend for server-side CAD operations via our [CAD Cloud API](/api/cloud-api). Run it without `--engine` and select the **cloud** app type. --- diff --git a/docs/learn/npm-packages/intro.md b/docs/learn/npm-packages/intro.md index 5f4048aed..5bdc02d1a 100644 --- a/docs/learn/npm-packages/intro.md +++ b/docs/learn/npm-packages/intro.md @@ -14,21 +14,23 @@ When developing standalone applications in TypeScript or JavaScript, you often u ## Quick Start with CLI -The fastest way to get started is with our CLI tool. Scaffold a fully-configured 3D CAD project in seconds: +The fastest way to get started is with our CLI tool. Scaffold a fully-configured project in seconds: ```bash npx @bitbybit-dev/create-app my-awesome-project ``` -The CLI guides you through an interactive setup where you choose your preferred 3D engine (Three.js, Babylon.js, or PlayCanvas). You can also specify the engine directly: +The CLI guides you through an interactive setup where you first choose the **app type** — a browser-based **frontend** 3D app or a **cloud** project that pairs a backend with a frontend for server-side CAD via our [CAD Cloud API](/api/cloud-api). + +### Frontend Projects + +Choose your preferred 3D engine (Three.js, Babylon.js, or PlayCanvas). You can also specify it directly: ```bash npx @bitbybit-dev/create-app my-project --engine babylonjs ``` -### What You Get - -Your scaffolded project includes: +Your scaffolded frontend project includes: - **Vite** for fast development and optimized production builds - **TypeScript** configured out of the box @@ -38,6 +40,20 @@ Your scaffolded project includes: - **Manifold** for fast mesh boolean operations - **Starter code** demonstrating each kernel's capabilities +### Cloud (Backend + Frontend) Projects + +When you select the **cloud** app type, the CLI scaffolds a full-stack project with a backend server that communicates with the Bitbybit CAD Cloud API and a React + Three.js frontend for visualizing results. Choose from five backend templates: + +| Template | Framework | API Style | +|----------|-----------|----------| +| **Hono + SDK** | Hono (Cloudflare Workers) | TypeScript SDK | +| **Hono + REST** | Hono (Cloudflare Workers) | Raw REST | +| **Node.js + SDK** | Express 5 (Node.js) | TypeScript SDK | +| **Node.js + REST** | Express 5 (Node.js) | Raw REST | +| **.NET + REST** | ASP.NET Core (.NET 10) | Raw REST | + +Your API key stays on the server — the frontend proxies requests through your backend, so credentials are never exposed to the browser. Learn more in the [CAD Cloud API documentation](/api/cloud-api). + ### Development Workflow ```bash @@ -46,7 +62,7 @@ npm install npm run dev ``` -Your browser opens with a live 3D preview at `http://localhost:5173`. Changes appear instantly with hot reload. +For frontend projects, your browser opens with a live 3D preview at `http://localhost:5173`. Changes appear instantly with hot reload. For cloud projects, follow the backend-specific setup instructions in the generated README to configure your API key and start both the backend and frontend. --- @@ -148,4 +164,19 @@ Contains Manifold 3D algorithms. The Manifold geometry kernel was started by Emm - [NPM Package](https://www.npmjs.com/package/@bitbybit-dev/base) - [GitHub Source](https://github.com/bitbybit-dev/bitbybit/tree/master/packages/dev/base) -Contains foundational algorithms for the Bitbybit platform, used in all higher-level NPM packages. Includes utilities for vectors, math, text manipulation, and other basic operations. \ No newline at end of file +Contains foundational algorithms for the Bitbybit platform, used in all higher-level NPM packages. Includes utilities for vectors, math, text manipulation, and other basic operations. + +--- + +## CAD Cloud SDK + +If you need server-side CAD operations without managing your own infrastructure, our **CAD Cloud API** provides managed compute for generating parametric 3D models, converting STEP files to glTF, and running CAD kernel operations — all via HTTP from any backend, in any programming language. + +### @bitbybit-dev/cad-cloud-sdk + +- [NPM Package](https://www.npmjs.com/package/@bitbybit-dev/cad-cloud-sdk) +- [GitHub Source](https://github.com/bitbybit-dev/bitbybit/tree/master/packages/dev/cad-cloud-sdk) + +The official TypeScript SDK for the Bitbybit CAD Cloud API. Works in Node.js, Deno, Bun, and Cloudflare Workers. Submit CAD jobs, poll for completion, and download results in formats like glTF, STEP, and decomposed mesh JSON. + +To learn more about the CAD Cloud API, Bitbybit Studio dashboard, and full example projects, visit our [**CAD Cloud API documentation**](/api/cloud-api). \ No newline at end of file diff --git a/docs/learn/npm-packages/playcanvas/start-with-playcanvas.md b/docs/learn/npm-packages/playcanvas/start-with-playcanvas.md index e5a6c357e..f2454e93c 100644 --- a/docs/learn/npm-packages/playcanvas/start-with-playcanvas.md +++ b/docs/learn/npm-packages/playcanvas/start-with-playcanvas.md @@ -27,8 +27,8 @@ npm run dev`} This creates a complete project with Vite, TypeScript, and all three CAD kernels (OCCT, JSCAD, Manifold) pre-configured. - -Check out the [Getting Started with PlayCanvas](/learn/getting-started/engines/playcanvas) page for an overview of all integration approaches including runners. + +The CLI can also scaffold **cloud** projects that pair a backend with a React + Three.js frontend for server-side CAD operations via our [CAD Cloud API](/api/cloud-api). Run it without `--engine` and select the **cloud** app type. --- diff --git a/docs/learn/npm-packages/threejs/start-with-three-js.md b/docs/learn/npm-packages/threejs/start-with-three-js.md index 7bedeabac..1e81293e7 100644 --- a/docs/learn/npm-packages/threejs/start-with-three-js.md +++ b/docs/learn/npm-packages/threejs/start-with-three-js.md @@ -27,8 +27,8 @@ npm run dev`} This creates a complete project with Vite, TypeScript, and all three CAD kernels (OCCT, JSCAD, Manifold) pre-configured. - -Check out the [Getting Started with ThreeJS](/learn/getting-started/engines/threejs) page for an overview of all integration approaches including runners. + +The CLI can also scaffold **cloud** projects that pair a backend with a React + Three.js frontend for server-side CAD operations via our [CAD Cloud API](/api/cloud-api). Run it without `--engine` and select the **cloud** app type. --- diff --git a/docs/learn/runners/intro-blockly.mdx b/docs/learn/runners/intro-blockly.mdx index f86c15797..1072b8cce 100644 --- a/docs/learn/runners/intro-blockly.mdx +++ b/docs/learn/runners/intro-blockly.mdx @@ -126,7 +126,7 @@ async function changeSize(size) { window.changeSize = changeSize; function getInlineScript() { - return '{"type":"blockly","version":"1.0.0-rc.2","script":"async function(e,r,t,n,s){var c,o;(c=(()=>{const r={property:\\"size\\"};e.HS.handleBlock(e.blocklyWorkspace,\\"T}wb0d1H1WU4~rHqU6Z8\\",r);try{return s.getBitbybitRunnerInputs()[r.property]}catch(e){errorHandle(e,\\"T}wb0d1H1WU4~rHqU6Z8\\")}})())||(c=1),o=await(()=>{let t={promise:(()=>{const t={entity:(()=>{const t={shape:(()=>{const t={size:c,center:(()=>{const t={x:0,y:0,z:0};e.HS.handleBlock(e.blocklyWorkspace,\\"..HOv-y|X^q[[1Ktwe5h\\",t);try{return r.point.pointXYZ(t)}catch(e){errorHandle(e,\\"..HOv-y|X^q[[1Ktwe5h\\")}})()};return async function(){return await e.HS.inputAwaiter(t,e.blocklyWorkspace,\\"NjKMI;:*GYJ2).3M?yj6\\"),e.HS.handleBlock(e.blocklyWorkspace,\\"NjKMI;:*GYJ2).3M?yj6\\",t),e.HS.startedAsyncTask(e.blocklyWorkspace,\\"NjKMI;:*GYJ2).3M?yj6\\",\\"#ddddff\\"),r.occt.shapes.solid.createCube(t).then((r=>(e.HS.finishedAsyncTask(e.blocklyWorkspace,\\"NjKMI;:*GYJ2).3M?yj6\\"),r)),(e=>{errorHandle(e.substring?e.substring(0,1e3):e,\\"NjKMI;:*GYJ2).3M?yj6\\")}))}()})(),radius:.4};return async function(){return await e.HS.inputAwaiter(t,e.blocklyWorkspace,\\"6-?FxF/TH`00-Uh|_T12\\"),e.HS.handleBlock(e.blocklyWorkspace,\\"6-?FxF/TH`00-Uh|_T12\\",t),e.HS.startedAsyncTask(e.blocklyWorkspace,\\"6-?FxF/TH`00-Uh|_T12\\",\\"#ddddff\\"),r.occt.fillets.filletEdges(t).then((r=>(e.HS.finishedAsyncTask(e.blocklyWorkspace,\\"6-?FxF/TH`00-Uh|_T12\\"),r)),(e=>{errorHandle(e.substring?e.substring(0,1e3):e,\\"6-?FxF/TH`00-Uh|_T12\\")}))}()})(),options:(()=>{const t={precision:.005,drawFaces:!0,faceColour:\\"#000099\\",drawEdges:!0,edgeColour:\\"#ffffff\\",edgeWidth:1};e.HS.handleBlock(e.blocklyWorkspace,\\"D6NqR%pIp.xzBt?@?tV4\\",t);try{return r.draw.optionsOcctShapeSimple(t)}catch(e){errorHandle(e,\\"D6NqR%pIp.xzBt?@?tV4\\")}})()};return async function(){return await e.HS.inputAwaiter(t,e.blocklyWorkspace,\\"3n^@/8zZXkRWbQFt?[(m\\"),e.HS.handleBlock(e.blocklyWorkspace,\\"3n^@/8zZXkRWbQFt?[(m\\",t),e.HS.startedAsyncTask(e.blocklyWorkspace,\\"3n^@/8zZXkRWbQFt?[(m\\",\\"#ddddff\\"),r.draw.drawAnyAsync(t).then((r=>(e.HS.finishedAsyncTask(e.blocklyWorkspace,\\"3n^@/8zZXkRWbQFt?[(m\\"),r)),(e=>{errorHandle(e.substring?e.substring(0,1e3):e,\\"3n^@/8zZXkRWbQFt?[(m\\")}))}()})()}.promise;return Array.isArray(t)&&(t=Promise.all(t)),t})(),(()=>{const r={property:\\"cubeMesh\\",value:o};e.HS.handleBlock(e.blocklyWorkspace,\\"#sP(;i?@t;x-M0rw:m)B\\",r);try{s.setBitbybitRunnerResultValue(r.property,r.value)}catch(e){errorHandle(e,\\"#sP(;i?@t;x-M0rw:m)B\\")}})()}(BitByBit,bitbybit,bitbybitRunnerResult,bitbybitRunnerInputs,Bit);"}'; + return '{"type":"blockly","version":"1.0.0","script":"async function(e,r,t,n,s){var c,o;(c=(()=>{const r={property:\\"size\\"};e.HS.handleBlock(e.blocklyWorkspace,\\"T}wb0d1H1WU4~rHqU6Z8\\",r);try{return s.getBitbybitRunnerInputs()[r.property]}catch(e){errorHandle(e,\\"T}wb0d1H1WU4~rHqU6Z8\\")}})())||(c=1),o=await(()=>{let t={promise:(()=>{const t={entity:(()=>{const t={shape:(()=>{const t={size:c,center:(()=>{const t={x:0,y:0,z:0};e.HS.handleBlock(e.blocklyWorkspace,\\"..HOv-y|X^q[[1Ktwe5h\\",t);try{return r.point.pointXYZ(t)}catch(e){errorHandle(e,\\"..HOv-y|X^q[[1Ktwe5h\\")}})()};return async function(){return await e.HS.inputAwaiter(t,e.blocklyWorkspace,\\"NjKMI;:*GYJ2).3M?yj6\\"),e.HS.handleBlock(e.blocklyWorkspace,\\"NjKMI;:*GYJ2).3M?yj6\\",t),e.HS.startedAsyncTask(e.blocklyWorkspace,\\"NjKMI;:*GYJ2).3M?yj6\\",\\"#ddddff\\"),r.occt.shapes.solid.createCube(t).then((r=>(e.HS.finishedAsyncTask(e.blocklyWorkspace,\\"NjKMI;:*GYJ2).3M?yj6\\"),r)),(e=>{errorHandle(e.substring?e.substring(0,1e3):e,\\"NjKMI;:*GYJ2).3M?yj6\\")}))}()})(),radius:.4};return async function(){return await e.HS.inputAwaiter(t,e.blocklyWorkspace,\\"6-?FxF/TH`00-Uh|_T12\\"),e.HS.handleBlock(e.blocklyWorkspace,\\"6-?FxF/TH`00-Uh|_T12\\",t),e.HS.startedAsyncTask(e.blocklyWorkspace,\\"6-?FxF/TH`00-Uh|_T12\\",\\"#ddddff\\"),r.occt.fillets.filletEdges(t).then((r=>(e.HS.finishedAsyncTask(e.blocklyWorkspace,\\"6-?FxF/TH`00-Uh|_T12\\"),r)),(e=>{errorHandle(e.substring?e.substring(0,1e3):e,\\"6-?FxF/TH`00-Uh|_T12\\")}))}()})(),options:(()=>{const t={precision:.005,drawFaces:!0,faceColour:\\"#000099\\",drawEdges:!0,edgeColour:\\"#ffffff\\",edgeWidth:1};e.HS.handleBlock(e.blocklyWorkspace,\\"D6NqR%pIp.xzBt?@?tV4\\",t);try{return r.draw.optionsOcctShapeSimple(t)}catch(e){errorHandle(e,\\"D6NqR%pIp.xzBt?@?tV4\\")}})()};return async function(){return await e.HS.inputAwaiter(t,e.blocklyWorkspace,\\"3n^@/8zZXkRWbQFt?[(m\\"),e.HS.handleBlock(e.blocklyWorkspace,\\"3n^@/8zZXkRWbQFt?[(m\\",t),e.HS.startedAsyncTask(e.blocklyWorkspace,\\"3n^@/8zZXkRWbQFt?[(m\\",\\"#ddddff\\"),r.draw.drawAnyAsync(t).then((r=>(e.HS.finishedAsyncTask(e.blocklyWorkspace,\\"3n^@/8zZXkRWbQFt?[(m\\"),r)),(e=>{errorHandle(e.substring?e.substring(0,1e3):e,\\"3n^@/8zZXkRWbQFt?[(m\\")}))}()})()}.promise;return Array.isArray(t)&&(t=Promise.all(t)),t})(),(()=>{const r={property:\\"cubeMesh\\",value:o};e.HS.handleBlock(e.blocklyWorkspace,\\"#sP(;i?@t;x-M0rw:m)B\\",r);try{s.setBitbybitRunnerResultValue(r.property,r.value)}catch(e){errorHandle(e,\\"#sP(;i?@t;x-M0rw:m)B\\")}})()}(BitByBit,bitbybit,bitbybitRunnerResult,bitbybitRunnerInputs,Bit);"}'; } ``` diff --git a/docs/learn/runners/intro-rete.mdx b/docs/learn/runners/intro-rete.mdx index 198b5dd8e..583ca60bc 100644 --- a/docs/learn/runners/intro-rete.mdx +++ b/docs/learn/runners/intro-rete.mdx @@ -128,7 +128,7 @@ async function changeSize(size) { window.changeSize = changeSize; function getInlineScript() { - return '{"type":"rete","version":"1.0.0-rc.2","script":"(async function (BitByBit, bitbybit, bitbybitRunnerResult, bitbybitRunnerInputs, Bit) { const dataVarIDf383aaf1893995c7 = {property: [\\"size\\"]};let inputsVarIDf383aaf1893995c7 = {};inputsVarIDf383aaf1893995c7 = {...dataVarIDf383aaf1893995c7, ...inputsVarIDf383aaf1893995c7};const resultf383aaf1893995c7 = [{result: [bitbybitRunnerInputs[inputsVarIDf383aaf1893995c7.property[0]]]}];const dataVarIDcaa28d38f452b168 = {precision: [0.01], drawFaces: [true], faceColour: [\\"#1e00ff\\"], drawEdges: [true], edgeColour: [\\"#ffffff\\"], edgeWidth: [2]};let inputsVarIDcaa28d38f452b168 = {};inputsVarIDcaa28d38f452b168 = {...dataVarIDcaa28d38f452b168, ...inputsVarIDcaa28d38f452b168};const generatedVarIDcaa28d38f452b168 = BitByBit.HS.executeBasedOnType(inputsVarIDcaa28d38f452b168, false, (data) => bitbybit.draw.optionsOcctShapeSimple(data));const resultcaa28d38f452b168 = [{result: generatedVarIDcaa28d38f452b168, transformers: []}];const dataVarIDa9c61a71827d3e38 = {size: [1], center: [[0,0,0]]};let inputsVarIDa9c61a71827d3e38 = {};inputsVarIDa9c61a71827d3e38.size = resultf383aaf1893995c7;BitByBit.HS.updateListInputs(inputsVarIDa9c61a71827d3e38);inputsVarIDa9c61a71827d3e38 = {...dataVarIDa9c61a71827d3e38, ...inputsVarIDa9c61a71827d3e38};const generatedVarIDa9c61a71827d3e38 = await BitByBit.HS.executeBasedOnTypeAsync(inputsVarIDa9c61a71827d3e38, false, (data) => bitbybit.occt.shapes.solid.createCube(data));const resulta9c61a71827d3e38 = [{result: generatedVarIDa9c61a71827d3e38, transformers: []}]; const dataVarIDcd4c1f4de5199424 = {shape: [undefined], radius: [0.4], radiusList: [undefined], indexes: [undefined]};let inputsVarIDcd4c1f4de5199424 = {};inputsVarIDcd4c1f4de5199424.shape = resulta9c61a71827d3e38;BitByBit.HS.updateListInputs(inputsVarIDcd4c1f4de5199424);inputsVarIDcd4c1f4de5199424 = {...dataVarIDcd4c1f4de5199424, ...inputsVarIDcd4c1f4de5199424};const generatedVarIDcd4c1f4de5199424 = await BitByBit.HS.executeBasedOnTypeAsync(inputsVarIDcd4c1f4de5199424, false, (data) => bitbybit.occt.fillets.filletEdges(data));const resultcd4c1f4de5199424 = [{result: generatedVarIDcd4c1f4de5199424, transformers: []}]; const dataVarIDf2f8b4cf1de9ac4c = {entity: [undefined], options: [undefined], babylonMesh: [undefined]};let inputsVarIDf2f8b4cf1de9ac4c = {};inputsVarIDf2f8b4cf1de9ac4c.options = resultcaa28d38f452b168;inputsVarIDf2f8b4cf1de9ac4c.entity = resultcd4c1f4de5199424;BitByBit.HS.updateListInputs(inputsVarIDf2f8b4cf1de9ac4c);inputsVarIDf2f8b4cf1de9ac4c = {...dataVarIDf2f8b4cf1de9ac4c, ...inputsVarIDf2f8b4cf1de9ac4c};const generatedVarIDf2f8b4cf1de9ac4c = await BitByBit.HS.executeBasedOnTypeAsync(inputsVarIDf2f8b4cf1de9ac4c, false, (data) => bitbybit.draw.drawAnyAsync(data));const resultf2f8b4cf1de9ac4c = [{result: generatedVarIDf2f8b4cf1de9ac4c, transformers: []}]; const dataVarID613de15ba24c56db = {property: [\\"cubeMesh\\"]};let inputsVarID613de15ba24c56db = {};inputsVarID613de15ba24c56db.value = resultf2f8b4cf1de9ac4c;BitByBit.HS.updateListInputs(inputsVarID613de15ba24c56db);inputsVarID613de15ba24c56db = {...dataVarID613de15ba24c56db, ...inputsVarID613de15ba24c56db};setBitbybitRunnerResultValue(inputsVarID613de15ba24c56db.property[0], inputsVarID613de15ba24c56db.value[0]); })(BitByBit, bitbybit, bitbybitRunnerResult, bitbybitRunnerInputs, Bit);"}'; + return '{"type":"rete","version":"1.0.0","script":"(async function (BitByBit, bitbybit, bitbybitRunnerResult, bitbybitRunnerInputs, Bit) { const dataVarIDf383aaf1893995c7 = {property: [\\"size\\"]};let inputsVarIDf383aaf1893995c7 = {};inputsVarIDf383aaf1893995c7 = {...dataVarIDf383aaf1893995c7, ...inputsVarIDf383aaf1893995c7};const resultf383aaf1893995c7 = [{result: [bitbybitRunnerInputs[inputsVarIDf383aaf1893995c7.property[0]]]}];const dataVarIDcaa28d38f452b168 = {precision: [0.01], drawFaces: [true], faceColour: [\\"#1e00ff\\"], drawEdges: [true], edgeColour: [\\"#ffffff\\"], edgeWidth: [2]};let inputsVarIDcaa28d38f452b168 = {};inputsVarIDcaa28d38f452b168 = {...dataVarIDcaa28d38f452b168, ...inputsVarIDcaa28d38f452b168};const generatedVarIDcaa28d38f452b168 = BitByBit.HS.executeBasedOnType(inputsVarIDcaa28d38f452b168, false, (data) => bitbybit.draw.optionsOcctShapeSimple(data));const resultcaa28d38f452b168 = [{result: generatedVarIDcaa28d38f452b168, transformers: []}];const dataVarIDa9c61a71827d3e38 = {size: [1], center: [[0,0,0]]};let inputsVarIDa9c61a71827d3e38 = {};inputsVarIDa9c61a71827d3e38.size = resultf383aaf1893995c7;BitByBit.HS.updateListInputs(inputsVarIDa9c61a71827d3e38);inputsVarIDa9c61a71827d3e38 = {...dataVarIDa9c61a71827d3e38, ...inputsVarIDa9c61a71827d3e38};const generatedVarIDa9c61a71827d3e38 = await BitByBit.HS.executeBasedOnTypeAsync(inputsVarIDa9c61a71827d3e38, false, (data) => bitbybit.occt.shapes.solid.createCube(data));const resulta9c61a71827d3e38 = [{result: generatedVarIDa9c61a71827d3e38, transformers: []}]; const dataVarIDcd4c1f4de5199424 = {shape: [undefined], radius: [0.4], radiusList: [undefined], indexes: [undefined]};let inputsVarIDcd4c1f4de5199424 = {};inputsVarIDcd4c1f4de5199424.shape = resulta9c61a71827d3e38;BitByBit.HS.updateListInputs(inputsVarIDcd4c1f4de5199424);inputsVarIDcd4c1f4de5199424 = {...dataVarIDcd4c1f4de5199424, ...inputsVarIDcd4c1f4de5199424};const generatedVarIDcd4c1f4de5199424 = await BitByBit.HS.executeBasedOnTypeAsync(inputsVarIDcd4c1f4de5199424, false, (data) => bitbybit.occt.fillets.filletEdges(data));const resultcd4c1f4de5199424 = [{result: generatedVarIDcd4c1f4de5199424, transformers: []}]; const dataVarIDf2f8b4cf1de9ac4c = {entity: [undefined], options: [undefined], babylonMesh: [undefined]};let inputsVarIDf2f8b4cf1de9ac4c = {};inputsVarIDf2f8b4cf1de9ac4c.options = resultcaa28d38f452b168;inputsVarIDf2f8b4cf1de9ac4c.entity = resultcd4c1f4de5199424;BitByBit.HS.updateListInputs(inputsVarIDf2f8b4cf1de9ac4c);inputsVarIDf2f8b4cf1de9ac4c = {...dataVarIDf2f8b4cf1de9ac4c, ...inputsVarIDf2f8b4cf1de9ac4c};const generatedVarIDf2f8b4cf1de9ac4c = await BitByBit.HS.executeBasedOnTypeAsync(inputsVarIDf2f8b4cf1de9ac4c, false, (data) => bitbybit.draw.drawAnyAsync(data));const resultf2f8b4cf1de9ac4c = [{result: generatedVarIDf2f8b4cf1de9ac4c, transformers: []}]; const dataVarID613de15ba24c56db = {property: [\\"cubeMesh\\"]};let inputsVarID613de15ba24c56db = {};inputsVarID613de15ba24c56db.value = resultf2f8b4cf1de9ac4c;BitByBit.HS.updateListInputs(inputsVarID613de15ba24c56db);inputsVarID613de15ba24c56db = {...dataVarID613de15ba24c56db, ...inputsVarID613de15ba24c56db};setBitbybitRunnerResultValue(inputsVarID613de15ba24c56db.property[0], inputsVarID613de15ba24c56db.value[0]); })(BitByBit, bitbybit, bitbybitRunnerResult, bitbybitRunnerInputs, Bit);"}'; } ``` diff --git a/docs/learn/runners/intro-typescript.mdx b/docs/learn/runners/intro-typescript.mdx index d110da381..1465e3508 100644 --- a/docs/learn/runners/intro-typescript.mdx +++ b/docs/learn/runners/intro-typescript.mdx @@ -123,7 +123,7 @@ async function changeSize(size) { window.changeSize = changeSize; function getInlineScript() { - return '{"type":"typescript","version":"1.0.0-rc.2","script":"async function(t,e,i,n,s){s.mockBitbybitRunnerInputs({size:1});const a=s.getBitbybitRunnerInputs(),{occt:b}=e,u=(async()=>{const t=await b.shapes.solid.createCube({size:a.size,center:[0,0,0]}),i=await b.fillets.filletEdges({shape:t,radius:.4}),n=new s.Inputs.Draw.DrawOcctShapeSimpleOptions;n.faceColour=\\"#0000ff\\",n.edgeWidth=1,n.precision=.005;return{cubeMesh:await e.draw.drawAnyAsync({entity:i,options:n})}})();s.setBitbybitRunnerResult(u)}(BitByBit,bitbybit,bitbybitRunnerResult,bitbybitRunnerInputs,Bit);"}'; + return '{"type":"typescript","version":"1.0.0","script":"async function(t,e,i,n,s){s.mockBitbybitRunnerInputs({size:1});const a=s.getBitbybitRunnerInputs(),{occt:b}=e,u=(async()=>{const t=await b.shapes.solid.createCube({size:a.size,center:[0,0,0]}),i=await b.fillets.filletEdges({shape:t,radius:.4}),n=new s.Inputs.Draw.DrawOcctShapeSimpleOptions;n.faceColour=\\"#0000ff\\",n.edgeWidth=1,n.precision=.005;return{cubeMesh:await e.draw.drawAnyAsync({entity:i,options:n})}})();s.setBitbybitRunnerResult(u)}(BitByBit,bitbybit,bitbybitRunnerResult,bitbybitRunnerInputs,Bit);"}'; } ``` diff --git a/docs/learn/runners/table-configurator-blockly.mdx b/docs/learn/runners/table-configurator-blockly.mdx index a278b40a9..56a4deba2 100644 --- a/docs/learn/runners/table-configurator-blockly.mdx +++ b/docs/learn/runners/table-configurator-blockly.mdx @@ -176,7 +176,7 @@ Below are the `index.html` and `script.js` files you would use on StackBlitz or window.changeModel = changeModel; function getInlineScript() { - return '{\"type\":\"rete\",\"version\":\"1.0.0-rc.2\",\"script\":\"async function(e,t,s,r,n){let a={};a={property:[\\"width\\"],...a};const o=[{result:[r[a.property[0]]]}];let i={};i={property:[\\"length\\"],...i};const u=[{result:[r[i.property[0]]]}];let l={};l={property:[\\"height\\"],...l};const c=[{result:[r[l.property[0]]]}];let p={};p={property:[\\"thickness\\"],...p};const d=[{result:[r[p.property[0]]]}];let f={};f={precision:[.01],drawFaces:[!0],faceColour:[\\"#7984b9\\"],drawEdges:[!0],edgeColour:[\\"#ffffff\\"],edgeWidth:[1],...f};const y=[{result:e.HS.executeBasedOnType(f,!1,(e=>t.draw.optionsOcctShapeSimple(e))),transformers:[]}];let h={};h={skybox:[\\"clearSky\\"],size:[1e3],blur:[.1],environmentIntensity:[.7],...h};e.HS.executeBasedOnType(h,!1,(e=>t.babylon.scene.enableSkybox(e)));let S={};S={radius:[2],center:[[0,0,0]],direction:[[0,1,0]],...S};const H=[{result:await e.HS.executeBasedOnTypeAsync(S,!1,(e=>t.occt.shapes.face.createCircleFace(e))),transformers:[]}];let m={};m={direction:[[-100,-100,-100]],intensity:[3],diffuse:[\\"#ffffff\\"],specular:[\\"#ffffff\\"],shadowGeneratorMapSize:[1024],enableShadows:[!0],shadowDarkness:[0],...m};e.HS.executeBasedOnType(m,!1,(e=>t.babylon.scene.drawDirectionalLight(e)));const v={value1:[void 0],value2:[void 0]};let w={};w.value1=o,w.value2=[{result:[.7],transformers:[]}],e.HS.updateListInputs(w),w={...v,...w};const O=[{result:e.HS.executeBasedOnType(w,!1,(e=>t.logic.firstDefinedValueGate(e))),transformers:[]}],B={value1:[void 0],value2:[void 0]};let x={};x.value1=u,x.value2=[{result:[1.4],transformers:[]}],e.HS.updateListInputs(x),x={...B,...x};const b=[{result:e.HS.executeBasedOnType(x,!1,(e=>t.logic.firstDefinedValueGate(e))),transformers:[]}],L={value1:[void 0],value2:[void 0]};let g={};g.value1=c,g.value2=[{result:[.6],transformers:[]}],e.HS.updateListInputs(g),g={...L,...g};const I=[{result:e.HS.executeBasedOnType(g,!1,(e=>t.logic.firstDefinedValueGate(e))),transformers:[]}],T={value1:[void 0],value2:[void 0]};let A={};A.value1=d,A.value2=[{result:[.1],transformers:[]}],e.HS.updateListInputs(A),A={...T,...A};const k=[{result:e.HS.executeBasedOnType(A,!1,(e=>t.logic.firstDefinedValueGate(e))),transformers:[]}];let D={};D.first=I,D.second=k,e.HS.updateListInputs(D),D={first:[1],second:[1],operation:[\\"subtract\\"],...D};const N=[{result:e.HS.executeBasedOnType(D,!1,(e=>t.math.twoNrOperation(e))),transformers:[]}];let R={};R.first=k,e.HS.updateListInputs(R),R={first:[1],second:[2],operation:[\\"divide\\"],...R};const C=[{result:e.HS.executeBasedOnType(R,!1,(e=>t.math.twoNrOperation(e))),transformers:[]}];let E={};E.first=O,E.second=k,e.HS.updateListInputs(E),E={first:[1],second:[2],operation:[\\"subtract\\"],...E};const G=[{result:e.HS.executeBasedOnType(E,!1,(e=>t.math.twoNrOperation(e))),transformers:[]}];let V={};V.second=k,V.first=b,e.HS.updateListInputs(V),V={first:[1],second:[2],operation:[\\"subtract\\"],...V};const z=[{result:e.HS.executeBasedOnType(V,!1,(e=>t.math.twoNrOperation(e))),transformers:[]}];let F={};F.first=N,e.HS.updateListInputs(F),F={first:[1],second:[2],operation:[\\"divide\\"],...F};const M=[{result:e.HS.executeBasedOnType(F,!1,(e=>t.math.twoNrOperation(e))),transformers:[]}];let W={};W.first=I,W.second=C,e.HS.updateListInputs(W),W={first:[1],second:[1],operation:[\\"subtract\\"],...W};const X=[{result:e.HS.executeBasedOnType(W,!1,(e=>t.math.twoNrOperation(e))),transformers:[]}];let Y={};Y.width=G,Y.length=z,e.HS.updateListInputs(Y),Y={width:[1],length:[2],center:[[0,0,0]],direction:[[0,1,0]],...Y};const Z=[{result:await e.HS.executeBasedOnTypeAsync(Y,!1,(e=>t.occt.shapes.wire.createRectangleWire(e))),transformers:[]}];let P={};P.y=X,e.HS.updateListInputs(P),P={x:[0],y:[0],z:[0],...P};const j=[{result:e.HS.executeBasedOnType(P,!1,(e=>t.vector.vectorXYZ(e))),transformers:[]}];let q={};q.y=M,e.HS.updateListInputs(q),q={x:[0],y:[0],z:[0],...q};const J=[{result:e.HS.executeBasedOnType(q,!1,(e=>t.vector.vectorXYZ(e))),transformers:[]}],K={shape:[void 0]};let Q={};Q.shape=Z,e.HS.updateListInputs(Q),Q={...K,...Q};const U=[{result:await e.HS.executeBasedOnTypeAsync(Q,!1,(e=>t.occt.shapes.edge.getCornerPointsOfEdgesForShape(e))),transformers:[]}];let $={};$.width=k,$.length=k,$.height=N,$.center=J,e.HS.updateListInputs($),$={width:[1],length:[2],height:[3],center:[[0,0,0]],...$};const _=[{result:await e.HS.executeBasedOnTypeAsync($,!1,(e=>t.occt.shapes.solid.createBox(e))),transformers:[]}];let ee={};ee.width=O,ee.length=b,ee.height=k,ee.center=j,e.HS.updateListInputs(ee),ee={width:[1],length:[2],height:[3],center:[[0,0,0]],...ee};const te=[{result:await e.HS.executeBasedOnTypeAsync(ee,!1,(e=>t.occt.shapes.solid.createBox(e))),transformers:[]}];let se={};se.list=U,e.HS.updateListInputs(se),se={nrLevels:[1],...se};const re=[];for(let e=0;et.occt.transforms.translate(e))),transformers:[]}];let ue={};ue.listElements=[te[0],ie[0],H[0]],e.HS.updateListInputs(ue),ue={...ue};const le=[{result:[ue.listElements?ue.listElements:[]]}],ce={shapes:[void 0]};let pe={};pe.shapes=le,e.HS.updateListInputs(pe),pe={...ce,...pe};const de=[{result:await e.HS.executeBasedOnTypeAsync(pe,!1,(e=>t.occt.shapes.compound.makeCompound(e))),transformers:[]}],fe={entity:[void 0],options:[void 0],babylonMesh:[void 0]};let ye={};ye.options=y,ye.entity=de,e.HS.updateListInputs(ye),ye={...fe,...ye};const he=[{result:await e.HS.executeBasedOnTypeAsync(ye,!1,(e=>t.draw.drawAnyAsync(e))),transformers:[]}];let Se={};Se.value=he,e.HS.updateListInputs(Se),Se={property:[\\"table\\"],...Se},setBitbybitRunnerResultValue(Se.property[0],Se.value[0])}(BitByBit,bitbybit,bitbybitRunnerResult,bitbybitRunnerInputs,Bit);\"}'; + return '{\"type\":\"rete\",\"version\":\"1.0.0\",\"script\":\"async function(e,t,s,r,n){let a={};a={property:[\\"width\\"],...a};const o=[{result:[r[a.property[0]]]}];let i={};i={property:[\\"length\\"],...i};const u=[{result:[r[i.property[0]]]}];let l={};l={property:[\\"height\\"],...l};const c=[{result:[r[l.property[0]]]}];let p={};p={property:[\\"thickness\\"],...p};const d=[{result:[r[p.property[0]]]}];let f={};f={precision:[.01],drawFaces:[!0],faceColour:[\\"#7984b9\\"],drawEdges:[!0],edgeColour:[\\"#ffffff\\"],edgeWidth:[1],...f};const y=[{result:e.HS.executeBasedOnType(f,!1,(e=>t.draw.optionsOcctShapeSimple(e))),transformers:[]}];let h={};h={skybox:[\\"clearSky\\"],size:[1e3],blur:[.1],environmentIntensity:[.7],...h};e.HS.executeBasedOnType(h,!1,(e=>t.babylon.scene.enableSkybox(e)));let S={};S={radius:[2],center:[[0,0,0]],direction:[[0,1,0]],...S};const H=[{result:await e.HS.executeBasedOnTypeAsync(S,!1,(e=>t.occt.shapes.face.createCircleFace(e))),transformers:[]}];let m={};m={direction:[[-100,-100,-100]],intensity:[3],diffuse:[\\"#ffffff\\"],specular:[\\"#ffffff\\"],shadowGeneratorMapSize:[1024],enableShadows:[!0],shadowDarkness:[0],...m};e.HS.executeBasedOnType(m,!1,(e=>t.babylon.scene.drawDirectionalLight(e)));const v={value1:[void 0],value2:[void 0]};let w={};w.value1=o,w.value2=[{result:[.7],transformers:[]}],e.HS.updateListInputs(w),w={...v,...w};const O=[{result:e.HS.executeBasedOnType(w,!1,(e=>t.logic.firstDefinedValueGate(e))),transformers:[]}],B={value1:[void 0],value2:[void 0]};let x={};x.value1=u,x.value2=[{result:[1.4],transformers:[]}],e.HS.updateListInputs(x),x={...B,...x};const b=[{result:e.HS.executeBasedOnType(x,!1,(e=>t.logic.firstDefinedValueGate(e))),transformers:[]}],L={value1:[void 0],value2:[void 0]};let g={};g.value1=c,g.value2=[{result:[.6],transformers:[]}],e.HS.updateListInputs(g),g={...L,...g};const I=[{result:e.HS.executeBasedOnType(g,!1,(e=>t.logic.firstDefinedValueGate(e))),transformers:[]}],T={value1:[void 0],value2:[void 0]};let A={};A.value1=d,A.value2=[{result:[.1],transformers:[]}],e.HS.updateListInputs(A),A={...T,...A};const k=[{result:e.HS.executeBasedOnType(A,!1,(e=>t.logic.firstDefinedValueGate(e))),transformers:[]}];let D={};D.first=I,D.second=k,e.HS.updateListInputs(D),D={first:[1],second:[1],operation:[\\"subtract\\"],...D};const N=[{result:e.HS.executeBasedOnType(D,!1,(e=>t.math.twoNrOperation(e))),transformers:[]}];let R={};R.first=k,e.HS.updateListInputs(R),R={first:[1],second:[2],operation:[\\"divide\\"],...R};const C=[{result:e.HS.executeBasedOnType(R,!1,(e=>t.math.twoNrOperation(e))),transformers:[]}];let E={};E.first=O,E.second=k,e.HS.updateListInputs(E),E={first:[1],second:[2],operation:[\\"subtract\\"],...E};const G=[{result:e.HS.executeBasedOnType(E,!1,(e=>t.math.twoNrOperation(e))),transformers:[]}];let V={};V.second=k,V.first=b,e.HS.updateListInputs(V),V={first:[1],second:[2],operation:[\\"subtract\\"],...V};const z=[{result:e.HS.executeBasedOnType(V,!1,(e=>t.math.twoNrOperation(e))),transformers:[]}];let F={};F.first=N,e.HS.updateListInputs(F),F={first:[1],second:[2],operation:[\\"divide\\"],...F};const M=[{result:e.HS.executeBasedOnType(F,!1,(e=>t.math.twoNrOperation(e))),transformers:[]}];let W={};W.first=I,W.second=C,e.HS.updateListInputs(W),W={first:[1],second:[1],operation:[\\"subtract\\"],...W};const X=[{result:e.HS.executeBasedOnType(W,!1,(e=>t.math.twoNrOperation(e))),transformers:[]}];let Y={};Y.width=G,Y.length=z,e.HS.updateListInputs(Y),Y={width:[1],length:[2],center:[[0,0,0]],direction:[[0,1,0]],...Y};const Z=[{result:await e.HS.executeBasedOnTypeAsync(Y,!1,(e=>t.occt.shapes.wire.createRectangleWire(e))),transformers:[]}];let P={};P.y=X,e.HS.updateListInputs(P),P={x:[0],y:[0],z:[0],...P};const j=[{result:e.HS.executeBasedOnType(P,!1,(e=>t.vector.vectorXYZ(e))),transformers:[]}];let q={};q.y=M,e.HS.updateListInputs(q),q={x:[0],y:[0],z:[0],...q};const J=[{result:e.HS.executeBasedOnType(q,!1,(e=>t.vector.vectorXYZ(e))),transformers:[]}],K={shape:[void 0]};let Q={};Q.shape=Z,e.HS.updateListInputs(Q),Q={...K,...Q};const U=[{result:await e.HS.executeBasedOnTypeAsync(Q,!1,(e=>t.occt.shapes.edge.getCornerPointsOfEdgesForShape(e))),transformers:[]}];let $={};$.width=k,$.length=k,$.height=N,$.center=J,e.HS.updateListInputs($),$={width:[1],length:[2],height:[3],center:[[0,0,0]],...$};const _=[{result:await e.HS.executeBasedOnTypeAsync($,!1,(e=>t.occt.shapes.solid.createBox(e))),transformers:[]}];let ee={};ee.width=O,ee.length=b,ee.height=k,ee.center=j,e.HS.updateListInputs(ee),ee={width:[1],length:[2],height:[3],center:[[0,0,0]],...ee};const te=[{result:await e.HS.executeBasedOnTypeAsync(ee,!1,(e=>t.occt.shapes.solid.createBox(e))),transformers:[]}];let se={};se.list=U,e.HS.updateListInputs(se),se={nrLevels:[1],...se};const re=[];for(let e=0;et.occt.transforms.translate(e))),transformers:[]}];let ue={};ue.listElements=[te[0],ie[0],H[0]],e.HS.updateListInputs(ue),ue={...ue};const le=[{result:[ue.listElements?ue.listElements:[]]}],ce={shapes:[void 0]};let pe={};pe.shapes=le,e.HS.updateListInputs(pe),pe={...ce,...pe};const de=[{result:await e.HS.executeBasedOnTypeAsync(pe,!1,(e=>t.occt.shapes.compound.makeCompound(e))),transformers:[]}],fe={entity:[void 0],options:[void 0],babylonMesh:[void 0]};let ye={};ye.options=y,ye.entity=de,e.HS.updateListInputs(ye),ye={...fe,...ye};const he=[{result:await e.HS.executeBasedOnTypeAsync(ye,!1,(e=>t.draw.drawAnyAsync(e))),transformers:[]}];let Se={};Se.value=he,e.HS.updateListInputs(Se),Se={property:[\\"table\\"],...Se},setBitbybitRunnerResultValue(Se.property[0],Se.value[0])}(BitByBit,bitbybit,bitbybitRunnerResult,bitbybitRunnerInputs,Bit);\"}'; } ``` diff --git a/docs/learn/runners/table-configurator-rete.mdx b/docs/learn/runners/table-configurator-rete.mdx index c3d7ef4a0..72ea49806 100644 --- a/docs/learn/runners/table-configurator-rete.mdx +++ b/docs/learn/runners/table-configurator-rete.mdx @@ -66,7 +66,7 @@ Below are the `index.html` and `script.js` files you would use on StackBlitz or - + @@ -175,7 +175,7 @@ async function changeModel(value, name) { window.changeModel = changeModel; function getInlineScript() { - return '{"type":"rete","version":"1.0.0-rc.2","script":"async function(e,t,s,r,n){let a={};a={property:[\\"width\\"],...a};const o=[{result:[r[a.property[0]]]}];let i={};i={property:[\\"length\\"],...i};const u=[{result:[r[i.property[0]]]}];let l={};l={property:[\\"height\\"],...l};const c=[{result:[r[l.property[0]]]}];let p={};p={property:[\\"thickness\\"],...p};const d=[{result:[r[p.property[0]]]}];let f={};f={precision:[.01],drawFaces:[!0],faceColour:[\\"#7984b9\\"],drawEdges:[!0],edgeColour:[\\"#ffffff\\"],edgeWidth:[1],...f};const y=[{result:e.HS.executeBasedOnType(f,!1,(e=>t.draw.optionsOcctShapeSimple(e))),transformers:[]}];let h={};h={skybox:[\\"clearSky\\"],size:[1e3],blur:[.1],environmentIntensity:[.7],...h};e.HS.executeBasedOnType(h,!1,(e=>t.babylon.scene.enableSkybox(e)));let S={};S={radius:[2],center:[[0,0,0]],direction:[[0,1,0]],...S};const H=[{result:await e.HS.executeBasedOnTypeAsync(S,!1,(e=>t.occt.shapes.face.createCircleFace(e))),transformers:[]}];let m={};m={direction:[[-100,-100,-100]],intensity:[3],diffuse:[\\"#ffffff\\"],specular:[\\"#ffffff\\"],shadowGeneratorMapSize:[1024],enableShadows:[!0],shadowDarkness:[0],...m};e.HS.executeBasedOnType(m,!1,(e=>t.babylon.scene.drawDirectionalLight(e)));const v={value1:[void 0],value2:[void 0]};let w={};w.value1=o,w.value2=[{result:[.7],transformers:[]}],e.HS.updateListInputs(w),w={...v,...w};const O=[{result:e.HS.executeBasedOnType(w,!1,(e=>t.logic.firstDefinedValueGate(e))),transformers:[]}],B={value1:[void 0],value2:[void 0]};let x={};x.value1=u,x.value2=[{result:[1.4],transformers:[]}],e.HS.updateListInputs(x),x={...B,...x};const b=[{result:e.HS.executeBasedOnType(x,!1,(e=>t.logic.firstDefinedValueGate(e))),transformers:[]}],L={value1:[void 0],value2:[void 0]};let g={};g.value1=c,g.value2=[{result:[.6],transformers:[]}],e.HS.updateListInputs(g),g={...L,...g};const I=[{result:e.HS.executeBasedOnType(g,!1,(e=>t.logic.firstDefinedValueGate(e))),transformers:[]}],T={value1:[void 0],value2:[void 0]};let A={};A.value1=d,A.value2=[{result:[.1],transformers:[]}],e.HS.updateListInputs(A),A={...T,...A};const k=[{result:e.HS.executeBasedOnType(A,!1,(e=>t.logic.firstDefinedValueGate(e))),transformers:[]}];let D={};D.first=I,D.second=k,e.HS.updateListInputs(D),D={first:[1],second:[1],operation:[\\"subtract\\"],...D};const N=[{result:e.HS.executeBasedOnType(D,!1,(e=>t.math.twoNrOperation(e))),transformers:[]}];let R={};R.first=k,e.HS.updateListInputs(R),R={first:[1],second:[2],operation:[\\"divide\\"],...R};const C=[{result:e.HS.executeBasedOnType(R,!1,(e=>t.math.twoNrOperation(e))),transformers:[]}];let E={};E.first=O,E.second=k,e.HS.updateListInputs(E),E={first:[1],second:[2],operation:[\\"subtract\\"],...E};const G=[{result:e.HS.executeBasedOnType(E,!1,(e=>t.math.twoNrOperation(e))),transformers:[]}];let V={};V.second=k,V.first=b,e.HS.updateListInputs(V),V={first:[1],second:[2],operation:[\\"subtract\\"],...V};const z=[{result:e.HS.executeBasedOnType(V,!1,(e=>t.math.twoNrOperation(e))),transformers:[]}];let F={};F.first=N,e.HS.updateListInputs(F),F={first:[1],second:[2],operation:[\\"divide\\"],...F};const M=[{result:e.HS.executeBasedOnType(F,!1,(e=>t.math.twoNrOperation(e))),transformers:[]}];let W={};W.first=I,W.second=C,e.HS.updateListInputs(W),W={first:[1],second:[1],operation:[\\"subtract\\"],...W};const X=[{result:e.HS.executeBasedOnType(W,!1,(e=>t.math.twoNrOperation(e))),transformers:[]}];let Y={};Y.width=G,Y.length=z,e.HS.updateListInputs(Y),Y={width:[1],length:[2],center:[[0,0,0]],direction:[[0,1,0]],...Y};const Z=[{result:await e.HS.executeBasedOnTypeAsync(Y,!1,(e=>t.occt.shapes.wire.createRectangleWire(e))),transformers:[]}];let P={};P.y=X,e.HS.updateListInputs(P),P={x:[0],y:[0],z:[0],...P};const j=[{result:e.HS.executeBasedOnType(P,!1,(e=>t.vector.vectorXYZ(e))),transformers:[]}];let q={};q.y=M,e.HS.updateListInputs(q),q={x:[0],y:[0],z:[0],...q};const J=[{result:e.HS.executeBasedOnType(q,!1,(e=>t.vector.vectorXYZ(e))),transformers:[]}],K={shape:[void 0]};let Q={};Q.shape=Z,e.HS.updateListInputs(Q),Q={...K,...Q};const U=[{result:await e.HS.executeBasedOnTypeAsync(Q,!1,(e=>t.occt.shapes.edge.getCornerPointsOfEdgesForShape(e))),transformers:[]}];let $={};$.width=k,$.length=k,$.height=N,$.center=J,e.HS.updateListInputs($),$={width:[1],length:[2],height:[3],center:[[0,0,0]],...$};const _=[{result:await e.HS.executeBasedOnTypeAsync($,!1,(e=>t.occt.shapes.solid.createBox(e))),transformers:[]}];let ee={};ee.width=O,ee.length=b,ee.height=k,ee.center=j,e.HS.updateListInputs(ee),ee={width:[1],length:[2],height:[3],center:[[0,0,0]],...ee};const te=[{result:await e.HS.executeBasedOnTypeAsync(ee,!1,(e=>t.occt.shapes.solid.createBox(e))),transformers:[]}];let se={};se.list=U,e.HS.updateListInputs(se),se={nrLevels:[1],...se};const re=[];for(let e=0;et.occt.transforms.translate(e))),transformers:[]}];let ue={};ue.listElements=[te[0],ie[0],H[0]],e.HS.updateListInputs(ue),ue={...ue};const le=[{result:[ue.listElements?ue.listElements:[]]}],ce={shapes:[void 0]};let pe={};pe.shapes=le,e.HS.updateListInputs(pe),pe={...ce,...pe};const de=[{result:await e.HS.executeBasedOnTypeAsync(pe,!1,(e=>t.occt.shapes.compound.makeCompound(e))),transformers:[]}],fe={entity:[void 0],options:[void 0],babylonMesh:[void 0]};let ye={};ye.options=y,ye.entity=de,e.HS.updateListInputs(ye),ye={...fe,...ye};const he=[{result:await e.HS.executeBasedOnTypeAsync(ye,!1,(e=>t.draw.drawAnyAsync(e))),transformers:[]}];let Se={};Se.value=he,e.HS.updateListInputs(Se),Se={property:[\\"table\\"],...Se},setBitbybitRunnerResultValue(Se.property[0],Se.value[0])}(BitByBit,bitbybit,bitbybitRunnerResult,bitbybitRunnerInputs,Bit);"}'; + return '{"type":"rete","version":"1.0.0","script":"async function(e,t,s,r,n){let a={};a={property:[\\"width\\"],...a};const o=[{result:[r[a.property[0]]]}];let i={};i={property:[\\"length\\"],...i};const u=[{result:[r[i.property[0]]]}];let l={};l={property:[\\"height\\"],...l};const c=[{result:[r[l.property[0]]]}];let p={};p={property:[\\"thickness\\"],...p};const d=[{result:[r[p.property[0]]]}];let f={};f={precision:[.01],drawFaces:[!0],faceColour:[\\"#7984b9\\"],drawEdges:[!0],edgeColour:[\\"#ffffff\\"],edgeWidth:[1],...f};const y=[{result:e.HS.executeBasedOnType(f,!1,(e=>t.draw.optionsOcctShapeSimple(e))),transformers:[]}];let h={};h={skybox:[\\"clearSky\\"],size:[1e3],blur:[.1],environmentIntensity:[.7],...h};e.HS.executeBasedOnType(h,!1,(e=>t.babylon.scene.enableSkybox(e)));let S={};S={radius:[2],center:[[0,0,0]],direction:[[0,1,0]],...S};const H=[{result:await e.HS.executeBasedOnTypeAsync(S,!1,(e=>t.occt.shapes.face.createCircleFace(e))),transformers:[]}];let m={};m={direction:[[-100,-100,-100]],intensity:[3],diffuse:[\\"#ffffff\\"],specular:[\\"#ffffff\\"],shadowGeneratorMapSize:[1024],enableShadows:[!0],shadowDarkness:[0],...m};e.HS.executeBasedOnType(m,!1,(e=>t.babylon.scene.drawDirectionalLight(e)));const v={value1:[void 0],value2:[void 0]};let w={};w.value1=o,w.value2=[{result:[.7],transformers:[]}],e.HS.updateListInputs(w),w={...v,...w};const O=[{result:e.HS.executeBasedOnType(w,!1,(e=>t.logic.firstDefinedValueGate(e))),transformers:[]}],B={value1:[void 0],value2:[void 0]};let x={};x.value1=u,x.value2=[{result:[1.4],transformers:[]}],e.HS.updateListInputs(x),x={...B,...x};const b=[{result:e.HS.executeBasedOnType(x,!1,(e=>t.logic.firstDefinedValueGate(e))),transformers:[]}],L={value1:[void 0],value2:[void 0]};let g={};g.value1=c,g.value2=[{result:[.6],transformers:[]}],e.HS.updateListInputs(g),g={...L,...g};const I=[{result:e.HS.executeBasedOnType(g,!1,(e=>t.logic.firstDefinedValueGate(e))),transformers:[]}],T={value1:[void 0],value2:[void 0]};let A={};A.value1=d,A.value2=[{result:[.1],transformers:[]}],e.HS.updateListInputs(A),A={...T,...A};const k=[{result:e.HS.executeBasedOnType(A,!1,(e=>t.logic.firstDefinedValueGate(e))),transformers:[]}];let D={};D.first=I,D.second=k,e.HS.updateListInputs(D),D={first:[1],second:[1],operation:[\\"subtract\\"],...D};const N=[{result:e.HS.executeBasedOnType(D,!1,(e=>t.math.twoNrOperation(e))),transformers:[]}];let R={};R.first=k,e.HS.updateListInputs(R),R={first:[1],second:[2],operation:[\\"divide\\"],...R};const C=[{result:e.HS.executeBasedOnType(R,!1,(e=>t.math.twoNrOperation(e))),transformers:[]}];let E={};E.first=O,E.second=k,e.HS.updateListInputs(E),E={first:[1],second:[2],operation:[\\"subtract\\"],...E};const G=[{result:e.HS.executeBasedOnType(E,!1,(e=>t.math.twoNrOperation(e))),transformers:[]}];let V={};V.second=k,V.first=b,e.HS.updateListInputs(V),V={first:[1],second:[2],operation:[\\"subtract\\"],...V};const z=[{result:e.HS.executeBasedOnType(V,!1,(e=>t.math.twoNrOperation(e))),transformers:[]}];let F={};F.first=N,e.HS.updateListInputs(F),F={first:[1],second:[2],operation:[\\"divide\\"],...F};const M=[{result:e.HS.executeBasedOnType(F,!1,(e=>t.math.twoNrOperation(e))),transformers:[]}];let W={};W.first=I,W.second=C,e.HS.updateListInputs(W),W={first:[1],second:[1],operation:[\\"subtract\\"],...W};const X=[{result:e.HS.executeBasedOnType(W,!1,(e=>t.math.twoNrOperation(e))),transformers:[]}];let Y={};Y.width=G,Y.length=z,e.HS.updateListInputs(Y),Y={width:[1],length:[2],center:[[0,0,0]],direction:[[0,1,0]],...Y};const Z=[{result:await e.HS.executeBasedOnTypeAsync(Y,!1,(e=>t.occt.shapes.wire.createRectangleWire(e))),transformers:[]}];let P={};P.y=X,e.HS.updateListInputs(P),P={x:[0],y:[0],z:[0],...P};const j=[{result:e.HS.executeBasedOnType(P,!1,(e=>t.vector.vectorXYZ(e))),transformers:[]}];let q={};q.y=M,e.HS.updateListInputs(q),q={x:[0],y:[0],z:[0],...q};const J=[{result:e.HS.executeBasedOnType(q,!1,(e=>t.vector.vectorXYZ(e))),transformers:[]}],K={shape:[void 0]};let Q={};Q.shape=Z,e.HS.updateListInputs(Q),Q={...K,...Q};const U=[{result:await e.HS.executeBasedOnTypeAsync(Q,!1,(e=>t.occt.shapes.edge.getCornerPointsOfEdgesForShape(e))),transformers:[]}];let $={};$.width=k,$.length=k,$.height=N,$.center=J,e.HS.updateListInputs($),$={width:[1],length:[2],height:[3],center:[[0,0,0]],...$};const _=[{result:await e.HS.executeBasedOnTypeAsync($,!1,(e=>t.occt.shapes.solid.createBox(e))),transformers:[]}];let ee={};ee.width=O,ee.length=b,ee.height=k,ee.center=j,e.HS.updateListInputs(ee),ee={width:[1],length:[2],height:[3],center:[[0,0,0]],...ee};const te=[{result:await e.HS.executeBasedOnTypeAsync(ee,!1,(e=>t.occt.shapes.solid.createBox(e))),transformers:[]}];let se={};se.list=U,e.HS.updateListInputs(se),se={nrLevels:[1],...se};const re=[];for(let e=0;et.occt.transforms.translate(e))),transformers:[]}];let ue={};ue.listElements=[te[0],ie[0],H[0]],e.HS.updateListInputs(ue),ue={...ue};const le=[{result:[ue.listElements?ue.listElements:[]]}],ce={shapes:[void 0]};let pe={};pe.shapes=le,e.HS.updateListInputs(pe),pe={...ce,...pe};const de=[{result:await e.HS.executeBasedOnTypeAsync(pe,!1,(e=>t.occt.shapes.compound.makeCompound(e))),transformers:[]}],fe={entity:[void 0],options:[void 0],babylonMesh:[void 0]};let ye={};ye.options=y,ye.entity=de,e.HS.updateListInputs(ye),ye={...fe,...ye};const he=[{result:await e.HS.executeBasedOnTypeAsync(ye,!1,(e=>t.draw.drawAnyAsync(e))),transformers:[]}];let Se={};Se.value=he,e.HS.updateListInputs(Se),Se={property:[\\"table\\"],...Se},setBitbybitRunnerResultValue(Se.property[0],Se.value[0])}(BitByBit,bitbybit,bitbybitRunnerResult,bitbybitRunnerInputs,Bit);"}'; } ``` diff --git a/docs/learn/runners/table-configurator-typescript.mdx b/docs/learn/runners/table-configurator-typescript.mdx index ffba39be1..78dd38c8c 100644 --- a/docs/learn/runners/table-configurator-typescript.mdx +++ b/docs/learn/runners/table-configurator-typescript.mdx @@ -71,7 +71,7 @@ Below are the `index.html` and `script.js` files you would use on StackBlitz or - + @@ -181,7 +181,7 @@ Below are the `index.html` and `script.js` files you would use on StackBlitz or window.changeModel = changeModel; function getInlineScript() { - return '{"type":"rete","version":"1.0.0-rc.2","script":"async function(e,t,s,r,n){let a={};a={property:[\\"width\\"],...a};const o=[{result:[r[a.property[0]]]}];let i={};i={property:[\\"length\\"],...i};const u=[{result:[r[i.property[0]]]}];let l={};l={property:[\\"height\\"],...l};const c=[{result:[r[l.property[0]]]}];let p={};p={property:[\\"thickness\\"],...p};const d=[{result:[r[p.property[0]]]}];let f={};f={precision:[.01],drawFaces:[!0],faceColour:[\\"#7984b9\\"],drawEdges:[!0],edgeColour:[\\"#ffffff\\"],edgeWidth:[1],...f};const y=[{result:e.HS.executeBasedOnType(f,!1,(e=>t.draw.optionsOcctShapeSimple(e))),transformers:[]}];let h={};h={skybox:[\\"clearSky\\"],size:[1e3],blur:[.1],environmentIntensity:[.7],...h};e.HS.executeBasedOnType(h,!1,(e=>t.babylon.scene.enableSkybox(e)));let S={};S={radius:[2],center:[[0,0,0]],direction:[[0,1,0]],...S};const H=[{result:await e.HS.executeBasedOnTypeAsync(S,!1,(e=>t.occt.shapes.face.createCircleFace(e))),transformers:[]}];let m={};m={direction:[[-100,-100,-100]],intensity:[3],diffuse:[\\"#ffffff\\"],specular:[\\"#ffffff\\"],shadowGeneratorMapSize:[1024],enableShadows:[!0],shadowDarkness:[0],...m};e.HS.executeBasedOnType(m,!1,(e=>t.babylon.scene.drawDirectionalLight(e)));const v={value1:[void 0],value2:[void 0]};let w={};w.value1=o,w.value2=[{result:[.7],transformers:[]}],e.HS.updateListInputs(w),w={...v,...w};const O=[{result:e.HS.executeBasedOnType(w,!1,(e=>t.logic.firstDefinedValueGate(e))),transformers:[]}],B={value1:[void 0],value2:[void 0]};let x={};x.value1=u,x.value2=[{result:[1.4],transformers:[]}],e.HS.updateListInputs(x),x={...B,...x};const b=[{result:e.HS.executeBasedOnType(x,!1,(e=>t.logic.firstDefinedValueGate(e))),transformers:[]}],L={value1:[void 0],value2:[void 0]};let g={};g.value1=c,g.value2=[{result:[.6],transformers:[]}],e.HS.updateListInputs(g),g={...L,...g};const I=[{result:e.HS.executeBasedOnType(g,!1,(e=>t.logic.firstDefinedValueGate(e))),transformers:[]}],T={value1:[void 0],value2:[void 0]};let A={};A.value1=d,A.value2=[{result:[.1],transformers:[]}],e.HS.updateListInputs(A),A={...T,...A};const k=[{result:e.HS.executeBasedOnType(A,!1,(e=>t.logic.firstDefinedValueGate(e))),transformers:[]}];let D={};D.first=I,D.second=k,e.HS.updateListInputs(D),D={first:[1],second:[1],operation:[\\"subtract\\"],...D};const N=[{result:e.HS.executeBasedOnType(D,!1,(e=>t.math.twoNrOperation(e))),transformers:[]}];let R={};R.first=k,e.HS.updateListInputs(R),R={first:[1],second:[2],operation:[\\"divide\\"],...R};const C=[{result:e.HS.executeBasedOnType(R,!1,(e=>t.math.twoNrOperation(e))),transformers:[]}];let E={};E.first=O,E.second=k,e.HS.updateListInputs(E),E={first:[1],second:[2],operation:[\\"subtract\\"],...E};const G=[{result:e.HS.executeBasedOnType(E,!1,(e=>t.math.twoNrOperation(e))),transformers:[]}];let V={};V.second=k,V.first=b,e.HS.updateListInputs(V),V={first:[1],second:[2],operation:[\\"subtract\\"],...V};const z=[{result:e.HS.executeBasedOnType(V,!1,(e=>t.math.twoNrOperation(e))),transformers:[]}];let F={};F.first=N,e.HS.updateListInputs(F),F={first:[1],second:[2],operation:[\\"divide\\"],...F};const M=[{result:e.HS.executeBasedOnType(F,!1,(e=>t.math.twoNrOperation(e))),transformers:[]}];let W={};W.first=I,W.second=C,e.HS.updateListInputs(W),W={first:[1],second:[1],operation:[\\"subtract\\"],...W};const X=[{result:e.HS.executeBasedOnType(W,!1,(e=>t.math.twoNrOperation(e))),transformers:[]}];let Y={};Y.width=G,Y.length=z,e.HS.updateListInputs(Y),Y={width:[1],length:[2],center:[[0,0,0]],direction:[[0,1,0]],...Y};const Z=[{result:await e.HS.executeBasedOnTypeAsync(Y,!1,(e=>t.occt.shapes.wire.createRectangleWire(e))),transformers:[]}];let P={};P.y=X,e.HS.updateListInputs(P),P={x:[0],y:[0],z:[0],...P};const j=[{result:e.HS.executeBasedOnType(P,!1,(e=>t.vector.vectorXYZ(e))),transformers:[]}];let q={};q.y=M,e.HS.updateListInputs(q),q={x:[0],y:[0],z:[0],...q};const J=[{result:e.HS.executeBasedOnType(q,!1,(e=>t.vector.vectorXYZ(e))),transformers:[]}],K={shape:[void 0]};let Q={};Q.shape=Z,e.HS.updateListInputs(Q),Q={...K,...Q};const U=[{result:await e.HS.executeBasedOnTypeAsync(Q,!1,(e=>t.occt.shapes.edge.getCornerPointsOfEdgesForShape(e))),transformers:[]}];let $={};$.width=k,$.length=k,$.height=N,$.center=J,e.HS.updateListInputs($),$={width:[1],length:[2],height:[3],center:[[0,0,0]],...$};const _=[{result:await e.HS.executeBasedOnTypeAsync($,!1,(e=>t.occt.shapes.solid.createBox(e))),transformers:[]}];let ee={};ee.width=O,ee.length=b,ee.height=k,ee.center=j,e.HS.updateListInputs(ee),ee={width:[1],length:[2],height:[3],center:[[0,0,0]],...ee};const te=[{result:await e.HS.executeBasedOnTypeAsync(ee,!1,(e=>t.occt.shapes.solid.createBox(e))),transformers:[]}];let se={};se.list=U,e.HS.updateListInputs(se),se={nrLevels:[1],...se};const re=[];for(let e=0;et.occt.transforms.translate(e))),transformers:[]}];let ue={};ue.listElements=[te[0],ie[0],H[0]],e.HS.updateListInputs(ue),ue={...ue};const le=[{result:[ue.listElements?ue.listElements:[]]}],ce={shapes:[void 0]};let pe={};pe.shapes=le,e.HS.updateListInputs(pe),pe={...ce,...pe};const de=[{result:await e.HS.executeBasedOnTypeAsync(pe,!1,(e=>t.occt.shapes.compound.makeCompound(e))),transformers:[]}],fe={entity:[void 0],options:[void 0],babylonMesh:[void 0]};let ye={};ye.options=y,ye.entity=de,e.HS.updateListInputs(ye),ye={...fe,...ye};const he=[{result:await e.HS.executeBasedOnTypeAsync(ye,!1,(e=>t.draw.drawAnyAsync(e))),transformers:[]}];let Se={};Se.value=he,e.HS.updateListInputs(Se),Se={property:[\\"table\\"],...Se},setBitbybitRunnerResultValue(Se.property[0],Se.value[0])}(BitByBit,bitbybit,bitbybitRunnerResult,bitbybitRunnerInputs,Bit);"}'; + return '{"type":"rete","version":"1.0.0","script":"async function(e,t,s,r,n){let a={};a={property:[\\"width\\"],...a};const o=[{result:[r[a.property[0]]]}];let i={};i={property:[\\"length\\"],...i};const u=[{result:[r[i.property[0]]]}];let l={};l={property:[\\"height\\"],...l};const c=[{result:[r[l.property[0]]]}];let p={};p={property:[\\"thickness\\"],...p};const d=[{result:[r[p.property[0]]]}];let f={};f={precision:[.01],drawFaces:[!0],faceColour:[\\"#7984b9\\"],drawEdges:[!0],edgeColour:[\\"#ffffff\\"],edgeWidth:[1],...f};const y=[{result:e.HS.executeBasedOnType(f,!1,(e=>t.draw.optionsOcctShapeSimple(e))),transformers:[]}];let h={};h={skybox:[\\"clearSky\\"],size:[1e3],blur:[.1],environmentIntensity:[.7],...h};e.HS.executeBasedOnType(h,!1,(e=>t.babylon.scene.enableSkybox(e)));let S={};S={radius:[2],center:[[0,0,0]],direction:[[0,1,0]],...S};const H=[{result:await e.HS.executeBasedOnTypeAsync(S,!1,(e=>t.occt.shapes.face.createCircleFace(e))),transformers:[]}];let m={};m={direction:[[-100,-100,-100]],intensity:[3],diffuse:[\\"#ffffff\\"],specular:[\\"#ffffff\\"],shadowGeneratorMapSize:[1024],enableShadows:[!0],shadowDarkness:[0],...m};e.HS.executeBasedOnType(m,!1,(e=>t.babylon.scene.drawDirectionalLight(e)));const v={value1:[void 0],value2:[void 0]};let w={};w.value1=o,w.value2=[{result:[.7],transformers:[]}],e.HS.updateListInputs(w),w={...v,...w};const O=[{result:e.HS.executeBasedOnType(w,!1,(e=>t.logic.firstDefinedValueGate(e))),transformers:[]}],B={value1:[void 0],value2:[void 0]};let x={};x.value1=u,x.value2=[{result:[1.4],transformers:[]}],e.HS.updateListInputs(x),x={...B,...x};const b=[{result:e.HS.executeBasedOnType(x,!1,(e=>t.logic.firstDefinedValueGate(e))),transformers:[]}],L={value1:[void 0],value2:[void 0]};let g={};g.value1=c,g.value2=[{result:[.6],transformers:[]}],e.HS.updateListInputs(g),g={...L,...g};const I=[{result:e.HS.executeBasedOnType(g,!1,(e=>t.logic.firstDefinedValueGate(e))),transformers:[]}],T={value1:[void 0],value2:[void 0]};let A={};A.value1=d,A.value2=[{result:[.1],transformers:[]}],e.HS.updateListInputs(A),A={...T,...A};const k=[{result:e.HS.executeBasedOnType(A,!1,(e=>t.logic.firstDefinedValueGate(e))),transformers:[]}];let D={};D.first=I,D.second=k,e.HS.updateListInputs(D),D={first:[1],second:[1],operation:[\\"subtract\\"],...D};const N=[{result:e.HS.executeBasedOnType(D,!1,(e=>t.math.twoNrOperation(e))),transformers:[]}];let R={};R.first=k,e.HS.updateListInputs(R),R={first:[1],second:[2],operation:[\\"divide\\"],...R};const C=[{result:e.HS.executeBasedOnType(R,!1,(e=>t.math.twoNrOperation(e))),transformers:[]}];let E={};E.first=O,E.second=k,e.HS.updateListInputs(E),E={first:[1],second:[2],operation:[\\"subtract\\"],...E};const G=[{result:e.HS.executeBasedOnType(E,!1,(e=>t.math.twoNrOperation(e))),transformers:[]}];let V={};V.second=k,V.first=b,e.HS.updateListInputs(V),V={first:[1],second:[2],operation:[\\"subtract\\"],...V};const z=[{result:e.HS.executeBasedOnType(V,!1,(e=>t.math.twoNrOperation(e))),transformers:[]}];let F={};F.first=N,e.HS.updateListInputs(F),F={first:[1],second:[2],operation:[\\"divide\\"],...F};const M=[{result:e.HS.executeBasedOnType(F,!1,(e=>t.math.twoNrOperation(e))),transformers:[]}];let W={};W.first=I,W.second=C,e.HS.updateListInputs(W),W={first:[1],second:[1],operation:[\\"subtract\\"],...W};const X=[{result:e.HS.executeBasedOnType(W,!1,(e=>t.math.twoNrOperation(e))),transformers:[]}];let Y={};Y.width=G,Y.length=z,e.HS.updateListInputs(Y),Y={width:[1],length:[2],center:[[0,0,0]],direction:[[0,1,0]],...Y};const Z=[{result:await e.HS.executeBasedOnTypeAsync(Y,!1,(e=>t.occt.shapes.wire.createRectangleWire(e))),transformers:[]}];let P={};P.y=X,e.HS.updateListInputs(P),P={x:[0],y:[0],z:[0],...P};const j=[{result:e.HS.executeBasedOnType(P,!1,(e=>t.vector.vectorXYZ(e))),transformers:[]}];let q={};q.y=M,e.HS.updateListInputs(q),q={x:[0],y:[0],z:[0],...q};const J=[{result:e.HS.executeBasedOnType(q,!1,(e=>t.vector.vectorXYZ(e))),transformers:[]}],K={shape:[void 0]};let Q={};Q.shape=Z,e.HS.updateListInputs(Q),Q={...K,...Q};const U=[{result:await e.HS.executeBasedOnTypeAsync(Q,!1,(e=>t.occt.shapes.edge.getCornerPointsOfEdgesForShape(e))),transformers:[]}];let $={};$.width=k,$.length=k,$.height=N,$.center=J,e.HS.updateListInputs($),$={width:[1],length:[2],height:[3],center:[[0,0,0]],...$};const _=[{result:await e.HS.executeBasedOnTypeAsync($,!1,(e=>t.occt.shapes.solid.createBox(e))),transformers:[]}];let ee={};ee.width=O,ee.length=b,ee.height=k,ee.center=j,e.HS.updateListInputs(ee),ee={width:[1],length:[2],height:[3],center:[[0,0,0]],...ee};const te=[{result:await e.HS.executeBasedOnTypeAsync(ee,!1,(e=>t.occt.shapes.solid.createBox(e))),transformers:[]}];let se={};se.list=U,e.HS.updateListInputs(se),se={nrLevels:[1],...se};const re=[];for(let e=0;et.occt.transforms.translate(e))),transformers:[]}];let ue={};ue.listElements=[te[0],ie[0],H[0]],e.HS.updateListInputs(ue),ue={...ue};const le=[{result:[ue.listElements?ue.listElements:[]]}],ce={shapes:[void 0]};let pe={};pe.shapes=le,e.HS.updateListInputs(pe),pe={...ce,...pe};const de=[{result:await e.HS.executeBasedOnTypeAsync(pe,!1,(e=>t.occt.shapes.compound.makeCompound(e))),transformers:[]}],fe={entity:[void 0],options:[void 0],babylonMesh:[void 0]};let ye={};ye.options=y,ye.entity=de,e.HS.updateListInputs(ye),ye={...fe,...ye};const he=[{result:await e.HS.executeBasedOnTypeAsync(ye,!1,(e=>t.draw.drawAnyAsync(e))),transformers:[]}];let Se={};Se.value=he,e.HS.updateListInputs(Se),Se={property:[\\"table\\"],...Se},setBitbybitRunnerResultValue(Se.property[0],Se.value[0])}(BitByBit,bitbybit,bitbybitRunnerResult,bitbybitRunnerInputs,Bit);"}'; } ``` diff --git a/docs/package.json b/docs/package.json index 7f5f226aa..671316346 100644 --- a/docs/package.json +++ b/docs/package.json @@ -1,6 +1,6 @@ { "name": "docs", - "version": "1.0.0-rc.2", + "version": "1.0.0", "private": true, "scripts": { "docusaurus": "docusaurus", diff --git a/docs/src/components/BitByBitRenderCanvas/index.tsx b/docs/src/components/BitByBitRenderCanvas/index.tsx index 25a272957..6080e9199 100644 --- a/docs/src/components/BitByBitRenderCanvas/index.tsx +++ b/docs/src/components/BitByBitRenderCanvas/index.tsx @@ -64,7 +64,7 @@ const BitByBitRenderCanvas: React.FC = React.memo(({ const canvasContainerRef = useRef(null); const uniqueId = useId(); const { siteConfig } = useDocusaurusContext(); - const defaultVersion = siteConfig.customFields?.bitbybitVersion as string || "1.0.0-rc.2"; + const defaultVersion = siteConfig.customFields?.bitbybitVersion as string || "1.0.0"; const [isIframeReady, setIsIframeReady] = useState(false); const [loadIframe, setLoadIframe] = useState(!requireManualStart); diff --git a/docs/src/components/Version/index.tsx b/docs/src/components/Version/index.tsx index 5af2ad636..1c137c923 100644 --- a/docs/src/components/Version/index.tsx +++ b/docs/src/components/Version/index.tsx @@ -2,7 +2,7 @@ import React, { type ReactNode } from "react"; import useDocusaurusContext from "@docusaurus/useDocusaurusContext"; interface VersionProps { - /** Optional prefix to add before the version (e.g., "v" for "v1.0.0-rc.2") */ + /** Optional prefix to add before the version (e.g., "v" for "v1.0.0") */ prefix?: string; /** Optional suffix to add after the version */ suffix?: string; @@ -12,8 +12,8 @@ interface VersionProps { * A component that displays the current Bitbybit version from package.json. * * Usage in MDX files: - * - Just the version: → "1.0.0-rc.2" - * - With v prefix: → "v1.0.0-rc.2" + * - Just the version: → "1.0.0" + * - With v prefix: → "v1.0.0" * - In a link: [Download](https://example.com//file.md) */ export default function Version({ prefix = "", suffix = "" }: VersionProps): ReactNode { diff --git a/docs/static/_headers b/docs/static/_headers new file mode 100644 index 000000000..b1baa1d10 --- /dev/null +++ b/docs/static/_headers @@ -0,0 +1,25 @@ +# Cloudflare Pages headers for learn.bitbybit.dev + +# ── Global: security headers + noindex by default ── +# All responses get noindex. HTML pages override this below. +/* + X-Content-Type-Options: nosniff + X-Frame-Options: DENY + Referrer-Policy: strict-origin-when-cross-origin + X-Robots-Tag: noindex, nofollow + +# ── HTML pages should be indexable ── +/*.html + ! X-Robots-Tag + +/ + ! X-Robots-Tag + +/learn/* + ! X-Robots-Tag + +/blog/* + ! X-Robots-Tag + +/api/* + ! X-Robots-Tag diff --git a/docs/static/llms.txt b/docs/static/llms.txt index 8dbdcedad..b4aafe68b 100644 --- a/docs/static/llms.txt +++ b/docs/static/llms.txt @@ -206,29 +206,29 @@ VS Code MCP Setup: } ``` -### AI Context Files (v1.0.0-rc.2) +### AI Context Files (v1.0.0) Attach these files to your AI coding assistant for Bitbybit API knowledge. #### Beginner Context (Monaco Editor) For online TypeScript editor at bitbybit.dev: -- Full Context (116k tokens): https://app.bitbybit.dev/assets/ai-prompt-context/v1.0.0-rc.2/bitbybit-babylon-monaco-ai-context-v1.0.0-rc.2.md +- Full Context (116k tokens): https://app.bitbybit.dev/assets/ai-prompt-context/v1.0.0/bitbybit-babylon-monaco-ai-context-v1.0.0.md #### BabylonJS Context -- Full (116k tokens): https://app.bitbybit.dev/assets/ai-prompt-context/v1.0.0-rc.2/bitbybit-babylon-ai-context-v1.0.0-rc.2.md -- Lite (114k tokens): https://app.bitbybit.dev/assets/ai-prompt-context/v1.0.0-rc.2/bitbybit-babylon-no-comment-min-ai-v1.0.0-rc.2.md +- Full (116k tokens): https://app.bitbybit.dev/assets/ai-prompt-context/v1.0.0/bitbybit-babylon-ai-context-v1.0.0.md +- Lite (114k tokens): https://app.bitbybit.dev/assets/ai-prompt-context/v1.0.0/bitbybit-babylon-no-comment-min-ai-v1.0.0.md #### Three.js Context -- Full (95k tokens): https://app.bitbybit.dev/assets/ai-prompt-context/v1.0.0-rc.2/bitbybit-three-ai-context-v1.0.0-rc.2.md -- Lite (82k tokens): https://app.bitbybit.dev/assets/ai-prompt-context/v1.0.0-rc.2/bitbybit-three-no-comment-min-ai-v1.0.0-rc.2.md +- Full (95k tokens): https://app.bitbybit.dev/assets/ai-prompt-context/v1.0.0/bitbybit-three-ai-context-v1.0.0.md +- Lite (82k tokens): https://app.bitbybit.dev/assets/ai-prompt-context/v1.0.0/bitbybit-three-no-comment-min-ai-v1.0.0.md #### PlayCanvas Context -- Full (94k tokens): https://app.bitbybit.dev/assets/ai-prompt-context/v1.0.0-rc.2/bitbybit-playcanvas-ai-context-v1.0.0-rc.2.md -- Lite (82k tokens): https://app.bitbybit.dev/assets/ai-prompt-context/v1.0.0-rc.2/bitbybit-playcanvas-no-comment-min-ai-v1.0.0-rc.2.md +- Full (94k tokens): https://app.bitbybit.dev/assets/ai-prompt-context/v1.0.0/bitbybit-playcanvas-ai-context-v1.0.0.md +- Lite (82k tokens): https://app.bitbybit.dev/assets/ai-prompt-context/v1.0.0/bitbybit-playcanvas-no-comment-min-ai-v1.0.0.md ### Full API on Github - API with short explanations: https://github.com/bitbybit-dev/bitbybit/blob/master/docs/API.md diff --git a/docs/static/robots.txt b/docs/static/robots.txt index eef3bf1cb..72f3c4e87 100644 --- a/docs/static/robots.txt +++ b/docs/static/robots.txt @@ -1,6 +1,12 @@ User-agent: * Allow: / +# Prevent crawling of static asset bundles (saves crawl budget). +# Googlebot can still render pages from cache; these hashed files +# rarely change and are not content pages. +Disallow: /assets/js/ +Disallow: /assets/css/ + Sitemap: https://learn.bitbybit.dev/sitemap.xml # LLM Context diff --git a/examples/angular/babylonjs/laptop-holder/package-lock.json b/examples/angular/babylonjs/laptop-holder/package-lock.json index fe1261feb..fcc0a3f7d 100644 --- a/examples/angular/babylonjs/laptop-holder/package-lock.json +++ b/examples/angular/babylonjs/laptop-holder/package-lock.json @@ -15,7 +15,7 @@ "@angular/material": "21.1.0", "@angular/platform-browser": "21.1.0", "@angular/router": "21.1.0", - "@bitbybit-dev/babylonjs": "1.0.0-rc.2", + "@bitbybit-dev/babylonjs": "1.0.0", "rxjs": "^7.8.1", "tslib": "^2.8.0", "zone.js": "~0.15.0" @@ -948,16 +948,16 @@ } }, "node_modules/@babylonjs/core": { - "version": "9.5.1", - "resolved": "https://registry.npmjs.org/@babylonjs/core/-/core-9.5.1.tgz", - "integrity": "sha512-T3qzihiGqwKZitQgLxqjLhNDRmaQe/Fp8lxinw1ZMaZeErSdWNDgmHtReuxG1/X2XZ0cbYkJkZF/99flNzlX4Q==", + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/@babylonjs/core/-/core-9.6.0.tgz", + "integrity": "sha512-4WoYkdrStnszS2qKy44sDRQA8ibVlJ9YbbO9mFrOZYAAY0p2VWfQaC/qwwQJ7hrHXpoayltaaXhkK3aNiol5aA==", "license": "Apache-2.0", "peer": true }, "node_modules/@babylonjs/gui": { - "version": "9.5.1", - "resolved": "https://registry.npmjs.org/@babylonjs/gui/-/gui-9.5.1.tgz", - "integrity": "sha512-ygIWyzkjbRWDGXH+ZbmrOGyLcg8dr78do9cFQQ41C+pTZQrVssjk1pNSRyAIIylxs9WKnxjzPJ7ufMnoUiwHaw==", + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/@babylonjs/gui/-/gui-9.6.0.tgz", + "integrity": "sha512-xf47iJfa+IyALzOeFvjPaa9W1DyJwcrut0/0fCYwFL0sOHiuROgzGKIxvl4+c9LwvJa67t+P+cOnC2aSkhSCcg==", "license": "Apache-2.0", "peerDependencies": { "@babylonjs/core": "^9.0.0" @@ -973,9 +973,9 @@ } }, "node_modules/@babylonjs/loaders": { - "version": "9.5.1", - "resolved": "https://registry.npmjs.org/@babylonjs/loaders/-/loaders-9.5.1.tgz", - "integrity": "sha512-Si22HIUlWyP5EuzN1MIEOLSY6K07yjEvFeO3GwZA5v+nGzU/MbVCPKtIKasQ72D0WLABfFHEO6cu24XhjkPGHQ==", + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/@babylonjs/loaders/-/loaders-9.6.0.tgz", + "integrity": "sha512-f4JmYlkxwtS5NYHqwjGeX9fI1TjMA8IhMLQwGMt2D7V+AgBlwVPnPzhSCEzOMGD6Qe+1z+97DYtgHhasWRHAHw==", "license": "Apache-2.0", "peerDependencies": { "@babylonjs/core": "^9.0.0", @@ -983,18 +983,18 @@ } }, "node_modules/@babylonjs/materials": { - "version": "9.5.1", - "resolved": "https://registry.npmjs.org/@babylonjs/materials/-/materials-9.5.1.tgz", - "integrity": "sha512-jVtuZxKP7PGolJiC3REKEK/1dFz+Qf8y7YWOuQ//GlWYYBCXwz+3C6asCCvmuLOA6aRIRWEm8oElj/8pqE8+PQ==", + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/@babylonjs/materials/-/materials-9.6.0.tgz", + "integrity": "sha512-wm9LRhD6/v/xUNmbOQWosLDzVYxihO5Zsza7WBV8S4PB6lRYsh+tjqA73OKMNIVefM533rphQoSZ3i/mnxw7IA==", "license": "Apache-2.0", "peerDependencies": { "@babylonjs/core": "^9.0.0" } }, "node_modules/@babylonjs/serializers": { - "version": "9.5.1", - "resolved": "https://registry.npmjs.org/@babylonjs/serializers/-/serializers-9.5.1.tgz", - "integrity": "sha512-8XilBJoTDnM26++qqH0Ly9TtODJC6xdlUBU90yXH220VJAchfFl+Dr5DHuxniEzj0hBrYZi1vg7ZUYVUxvUfbQ==", + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/@babylonjs/serializers/-/serializers-9.6.0.tgz", + "integrity": "sha512-GBKlL8zlrEu7w9O2HtJTKem1bF0+lnf5EDuJm/RGgkKYU6cZjEJJw+P2S8UCL90394p6eQtEN1n7eHnvhYslGQ==", "license": "Apache-2.0", "peerDependencies": { "@babylonjs/core": "^9.0.0", @@ -1002,49 +1002,49 @@ } }, "node_modules/@bitbybit-dev/babylonjs": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/babylonjs/-/babylonjs-1.0.0-rc.2.tgz", - "integrity": "sha512-QABFW+BF3zQbZgFJ/IxV75ZWfvQc/scAPugpFTONeoe1gp6yblzTv/hNJ4Q31SrDGFDGT3gbvB1IJ0KqaVEV5g==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/babylonjs/-/babylonjs-1.0.0.tgz", + "integrity": "sha512-VbGijxJQJ410vnhLAXcMEJ0ekq6pECWrxisXKCxG9vfXDjK1sJ5/Hi+Eae7AeuYWuRILYi32mrU3fIMJTNogyw==", "license": "MIT", "dependencies": { - "@babylonjs/core": "9.5.1", - "@babylonjs/gui": "9.5.1", + "@babylonjs/core": "9.6.0", + "@babylonjs/gui": "9.6.0", "@babylonjs/havok": "1.3.12", - "@babylonjs/loaders": "9.5.1", - "@babylonjs/materials": "9.5.1", - "@babylonjs/serializers": "9.5.1", - "@bitbybit-dev/core": "1.0.0-rc.2", + "@babylonjs/loaders": "9.6.0", + "@babylonjs/materials": "9.6.0", + "@babylonjs/serializers": "9.6.0", + "@bitbybit-dev/core": "1.0.0", "earcut": "3.0.2" } }, "node_modules/@bitbybit-dev/base": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/base/-/base-1.0.0-rc.2.tgz", - "integrity": "sha512-pS0VAXUCyJlCzx/ei13QEgI2Pj9cSAMZ7sBLnUl8WYjwV1Y0hc1VMkQXaQQAABXS00/rTEvLqa27g6Dq3UlYKg==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/base/-/base-1.0.0.tgz", + "integrity": "sha512-dZCP1MynP8LSV379BzIoQUTT0x3vkvtdmKagC+giIWBlnVEwhzxnnNnCUWqyoB+GcPEVgmEJ0MEBtCT2JTRNuQ==", "license": "MIT" }, "node_modules/@bitbybit-dev/core": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/core/-/core-1.0.0-rc.2.tgz", - "integrity": "sha512-ieHl4IF4r7YEEZOhR1ZzyAaBvSG3u6OQ2EMQZqdNRRCLdPzf4hfl2NzP4E9iVIKvak7Rg0bDUHFPRC1chslsmA==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/core/-/core-1.0.0.tgz", + "integrity": "sha512-x6No4alyAmPFLoCZ8m0ykxtU627CMqzFpmfh+C61SNHAzQ2QiTckCau2Owsv2yNUmBuZkYozJHOG6o+uKYjdpA==", "license": "MIT", "dependencies": { - "@bitbybit-dev/base": "1.0.0-rc.2", - "@bitbybit-dev/jscad-worker": "1.0.0-rc.2", - "@bitbybit-dev/manifold-worker": "1.0.0-rc.2", - "@bitbybit-dev/occt-worker": "1.0.0-rc.2", + "@bitbybit-dev/base": "1.0.0", + "@bitbybit-dev/jscad-worker": "1.0.0", + "@bitbybit-dev/manifold-worker": "1.0.0", + "@bitbybit-dev/occt-worker": "1.0.0", "jsonpath-plus": "10.3.0", "rxjs": "7.8.2", "verb-nurbs-web": "2.1.3" } }, "node_modules/@bitbybit-dev/jscad": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/jscad/-/jscad-1.0.0-rc.2.tgz", - "integrity": "sha512-xBu5kZ1rRkGmt2vnxpXPOkDKi1G7SS/t3ckgPf5u7qm/UZEFxEXTogqI6KSc+vbktFUeuPVdeiMfqYPi70r8NQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/jscad/-/jscad-1.0.0.tgz", + "integrity": "sha512-LPfl/uf+mygPsGzkvNK7QxwYEfYAYgOEDSPrCxyqf42DgEgx5FOkopUlwacbHPdY/R24tSDx1vFiGI0IvcYqDA==", "license": "MIT", "dependencies": { - "@bitbybit-dev/base": "1.0.0-rc.2", + "@bitbybit-dev/base": "1.0.0", "@jscad/3mf-serializer": "2.1.12", "@jscad/dxf-serializer": "2.1.18", "@jscad/io-utils": "2.0.28", @@ -1053,51 +1053,51 @@ } }, "node_modules/@bitbybit-dev/jscad-worker": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/jscad-worker/-/jscad-worker-1.0.0-rc.2.tgz", - "integrity": "sha512-ELGobFwgDlx31ZCp4PoRzC9ap15aDqisFeH9HVoJq9w7WM7XwiDiArc+UUg8iH3q3H7SmZd3+U0vUeLGLAO1hA==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/jscad-worker/-/jscad-worker-1.0.0.tgz", + "integrity": "sha512-AeUZwZ4hlH5zQABfvUer0k1lMskSNyDaY0wqXghclPdktgcYGLhvRNdg/tnpA8YwY8HKQuRl37K2WyfUUwU08A==", "license": "MIT", "dependencies": { - "@bitbybit-dev/jscad": "1.0.0-rc.2", + "@bitbybit-dev/jscad": "1.0.0", "rxjs": "7.8.2" } }, "node_modules/@bitbybit-dev/manifold": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/manifold/-/manifold-1.0.0-rc.2.tgz", - "integrity": "sha512-G88cUGijBkWoW/Yotm0JdPVicOGR4vJYaqML53Kaz4vK08ZnvlshjJVEasaxmCRg5KqxLvho4thb+Wj+smFDkQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/manifold/-/manifold-1.0.0.tgz", + "integrity": "sha512-VlDmyq4eennwRnxquc7SwoBOhPob46D0/OppaEc6vJGMFghQFALZwfMZDwY5Xkv7+YbiD5Z0ODT6S0Z+X5xcAA==", "license": "MIT", "dependencies": { - "@bitbybit-dev/base": "1.0.0-rc.2", + "@bitbybit-dev/base": "1.0.0", "manifold-3d": "3.3.2" } }, "node_modules/@bitbybit-dev/manifold-worker": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/manifold-worker/-/manifold-worker-1.0.0-rc.2.tgz", - "integrity": "sha512-sFzSoqCaLy3OKIbJwZJf/ORpn1/z40mAx4x7AopP6szUmNDnE6gTl+I+50GyonJRJV3qsEG7YNFVKAhZUm3y5Q==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/manifold-worker/-/manifold-worker-1.0.0.tgz", + "integrity": "sha512-gWcndSk6GB0/c0G1ESzYOHRN1iWXdswaz10OVmXXxlPD4ScZZSeI7q/nyLfOflRiH0+4HmPIueS5bMqL49vR+Q==", "license": "MIT", "dependencies": { - "@bitbybit-dev/manifold": "1.0.0-rc.2", + "@bitbybit-dev/manifold": "1.0.0", "rxjs": "7.8.2" } }, "node_modules/@bitbybit-dev/occt": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/occt/-/occt-1.0.0-rc.2.tgz", - "integrity": "sha512-S4IQ7EGWc5RPNLTel3pdbY00+yD4BgB1Oj7nA3n7i7bveyOU2gxEXGXzWYJx5nkJ77jFiKxCreYV86FOFytOog==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/occt/-/occt-1.0.0.tgz", + "integrity": "sha512-r66+yt0jFiYhUJcCmxGDZe/SucUklKCPLz8C+8BI9udLDIgEHlzGI8QbMUpG6ZG5hMIsX+FFcEzBS3q7e/hQMw==", "license": "MIT", "dependencies": { - "@bitbybit-dev/base": "1.0.0-rc.2" + "@bitbybit-dev/base": "1.0.0" } }, "node_modules/@bitbybit-dev/occt-worker": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/occt-worker/-/occt-worker-1.0.0-rc.2.tgz", - "integrity": "sha512-v5f6vijvxpm7Mg3XHYsD3kjXy4Akwa5LK9fASQwNIizYSqfK/pfFEplqcmtl+qxJ4ArFNwN+1z2NZB4svbBLmQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/occt-worker/-/occt-worker-1.0.0.tgz", + "integrity": "sha512-k8aP3v/PF6HivkdqKILeAN1Ybj1O/yLx7a25g7rB62yQSm4IT6cUVLE8adG/UO5WFRyesllEpnj6bR1yVAc55Q==", "license": "MIT", "dependencies": { - "@bitbybit-dev/occt": "1.0.0-rc.2", + "@bitbybit-dev/occt": "1.0.0", "rxjs": "7.8.2" } }, @@ -4655,9 +4655,9 @@ } }, "node_modules/babylonjs-gltf2interface": { - "version": "9.5.1", - "resolved": "https://registry.npmjs.org/babylonjs-gltf2interface/-/babylonjs-gltf2interface-9.5.1.tgz", - "integrity": "sha512-S5rcLxIKu4f55beeuvAK01YnWfo8EIIMmJV2RIXQcl3OF2+kNd6jCNv1KfMN0QbrtC921iGNSAJVp3dMAxLKaQ==", + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/babylonjs-gltf2interface/-/babylonjs-gltf2interface-9.6.0.tgz", + "integrity": "sha512-eGj774aq8TEsgcxZQHI39uGoQ83pDGjSpwx1Bf0cgDg6tS+XJJIU0Mt2ABO2Vc0CGxAlv73kVUGaG0gyyCSo4Q==", "license": "Apache-2.0", "peer": true }, diff --git a/examples/angular/babylonjs/laptop-holder/package.json b/examples/angular/babylonjs/laptop-holder/package.json index c5bd5fd8e..67cd93908 100644 --- a/examples/angular/babylonjs/laptop-holder/package.json +++ b/examples/angular/babylonjs/laptop-holder/package.json @@ -16,7 +16,7 @@ "@angular/material":"21.1.0", "@angular/platform-browser": "21.1.0", "@angular/router": "21.1.0", - "@bitbybit-dev/babylonjs": "1.0.0-rc.2", + "@bitbybit-dev/babylonjs": "1.0.0", "rxjs": "^7.8.1", "tslib": "^2.8.0", "zone.js": "~0.15.0" diff --git a/examples/angular/threejs/vite-basic-example/package-lock.json b/examples/angular/threejs/vite-basic-example/package-lock.json index cc84d57d5..2e499fbcd 100644 --- a/examples/angular/threejs/vite-basic-example/package-lock.json +++ b/examples/angular/threejs/vite-basic-example/package-lock.json @@ -13,7 +13,7 @@ "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@bitbybit-dev/threejs": "1.0.0-rc.2", + "@bitbybit-dev/threejs": "1.0.0", "rxjs": "7.8.2", "tslib": "^2.5.0", "zone.js": "~0.15.0" @@ -906,33 +906,33 @@ } }, "node_modules/@bitbybit-dev/base": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/base/-/base-1.0.0-rc.2.tgz", - "integrity": "sha512-pS0VAXUCyJlCzx/ei13QEgI2Pj9cSAMZ7sBLnUl8WYjwV1Y0hc1VMkQXaQQAABXS00/rTEvLqa27g6Dq3UlYKg==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/base/-/base-1.0.0.tgz", + "integrity": "sha512-dZCP1MynP8LSV379BzIoQUTT0x3vkvtdmKagC+giIWBlnVEwhzxnnNnCUWqyoB+GcPEVgmEJ0MEBtCT2JTRNuQ==", "license": "MIT" }, "node_modules/@bitbybit-dev/core": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/core/-/core-1.0.0-rc.2.tgz", - "integrity": "sha512-ieHl4IF4r7YEEZOhR1ZzyAaBvSG3u6OQ2EMQZqdNRRCLdPzf4hfl2NzP4E9iVIKvak7Rg0bDUHFPRC1chslsmA==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/core/-/core-1.0.0.tgz", + "integrity": "sha512-x6No4alyAmPFLoCZ8m0ykxtU627CMqzFpmfh+C61SNHAzQ2QiTckCau2Owsv2yNUmBuZkYozJHOG6o+uKYjdpA==", "license": "MIT", "dependencies": { - "@bitbybit-dev/base": "1.0.0-rc.2", - "@bitbybit-dev/jscad-worker": "1.0.0-rc.2", - "@bitbybit-dev/manifold-worker": "1.0.0-rc.2", - "@bitbybit-dev/occt-worker": "1.0.0-rc.2", + "@bitbybit-dev/base": "1.0.0", + "@bitbybit-dev/jscad-worker": "1.0.0", + "@bitbybit-dev/manifold-worker": "1.0.0", + "@bitbybit-dev/occt-worker": "1.0.0", "jsonpath-plus": "10.3.0", "rxjs": "7.8.2", "verb-nurbs-web": "2.1.3" } }, "node_modules/@bitbybit-dev/jscad": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/jscad/-/jscad-1.0.0-rc.2.tgz", - "integrity": "sha512-xBu5kZ1rRkGmt2vnxpXPOkDKi1G7SS/t3ckgPf5u7qm/UZEFxEXTogqI6KSc+vbktFUeuPVdeiMfqYPi70r8NQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/jscad/-/jscad-1.0.0.tgz", + "integrity": "sha512-LPfl/uf+mygPsGzkvNK7QxwYEfYAYgOEDSPrCxyqf42DgEgx5FOkopUlwacbHPdY/R24tSDx1vFiGI0IvcYqDA==", "license": "MIT", "dependencies": { - "@bitbybit-dev/base": "1.0.0-rc.2", + "@bitbybit-dev/base": "1.0.0", "@jscad/3mf-serializer": "2.1.12", "@jscad/dxf-serializer": "2.1.18", "@jscad/io-utils": "2.0.28", @@ -941,61 +941,61 @@ } }, "node_modules/@bitbybit-dev/jscad-worker": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/jscad-worker/-/jscad-worker-1.0.0-rc.2.tgz", - "integrity": "sha512-ELGobFwgDlx31ZCp4PoRzC9ap15aDqisFeH9HVoJq9w7WM7XwiDiArc+UUg8iH3q3H7SmZd3+U0vUeLGLAO1hA==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/jscad-worker/-/jscad-worker-1.0.0.tgz", + "integrity": "sha512-AeUZwZ4hlH5zQABfvUer0k1lMskSNyDaY0wqXghclPdktgcYGLhvRNdg/tnpA8YwY8HKQuRl37K2WyfUUwU08A==", "license": "MIT", "dependencies": { - "@bitbybit-dev/jscad": "1.0.0-rc.2", + "@bitbybit-dev/jscad": "1.0.0", "rxjs": "7.8.2" } }, "node_modules/@bitbybit-dev/manifold": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/manifold/-/manifold-1.0.0-rc.2.tgz", - "integrity": "sha512-G88cUGijBkWoW/Yotm0JdPVicOGR4vJYaqML53Kaz4vK08ZnvlshjJVEasaxmCRg5KqxLvho4thb+Wj+smFDkQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/manifold/-/manifold-1.0.0.tgz", + "integrity": "sha512-VlDmyq4eennwRnxquc7SwoBOhPob46D0/OppaEc6vJGMFghQFALZwfMZDwY5Xkv7+YbiD5Z0ODT6S0Z+X5xcAA==", "license": "MIT", "dependencies": { - "@bitbybit-dev/base": "1.0.0-rc.2", + "@bitbybit-dev/base": "1.0.0", "manifold-3d": "3.3.2" } }, "node_modules/@bitbybit-dev/manifold-worker": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/manifold-worker/-/manifold-worker-1.0.0-rc.2.tgz", - "integrity": "sha512-sFzSoqCaLy3OKIbJwZJf/ORpn1/z40mAx4x7AopP6szUmNDnE6gTl+I+50GyonJRJV3qsEG7YNFVKAhZUm3y5Q==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/manifold-worker/-/manifold-worker-1.0.0.tgz", + "integrity": "sha512-gWcndSk6GB0/c0G1ESzYOHRN1iWXdswaz10OVmXXxlPD4ScZZSeI7q/nyLfOflRiH0+4HmPIueS5bMqL49vR+Q==", "license": "MIT", "dependencies": { - "@bitbybit-dev/manifold": "1.0.0-rc.2", + "@bitbybit-dev/manifold": "1.0.0", "rxjs": "7.8.2" } }, "node_modules/@bitbybit-dev/occt": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/occt/-/occt-1.0.0-rc.2.tgz", - "integrity": "sha512-S4IQ7EGWc5RPNLTel3pdbY00+yD4BgB1Oj7nA3n7i7bveyOU2gxEXGXzWYJx5nkJ77jFiKxCreYV86FOFytOog==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/occt/-/occt-1.0.0.tgz", + "integrity": "sha512-r66+yt0jFiYhUJcCmxGDZe/SucUklKCPLz8C+8BI9udLDIgEHlzGI8QbMUpG6ZG5hMIsX+FFcEzBS3q7e/hQMw==", "license": "MIT", "dependencies": { - "@bitbybit-dev/base": "1.0.0-rc.2" + "@bitbybit-dev/base": "1.0.0" } }, "node_modules/@bitbybit-dev/occt-worker": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/occt-worker/-/occt-worker-1.0.0-rc.2.tgz", - "integrity": "sha512-v5f6vijvxpm7Mg3XHYsD3kjXy4Akwa5LK9fASQwNIizYSqfK/pfFEplqcmtl+qxJ4ArFNwN+1z2NZB4svbBLmQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/occt-worker/-/occt-worker-1.0.0.tgz", + "integrity": "sha512-k8aP3v/PF6HivkdqKILeAN1Ybj1O/yLx7a25g7rB62yQSm4IT6cUVLE8adG/UO5WFRyesllEpnj6bR1yVAc55Q==", "license": "MIT", "dependencies": { - "@bitbybit-dev/occt": "1.0.0-rc.2", + "@bitbybit-dev/occt": "1.0.0", "rxjs": "7.8.2" } }, "node_modules/@bitbybit-dev/threejs": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/threejs/-/threejs-1.0.0-rc.2.tgz", - "integrity": "sha512-SNh95FCQ/wZ78ZWPgnmp8rpdD5Uy8cOgI/u++LkKWXKtTzdyZjIgr1FkSqLS1HL97WkGzu1/b7o4IVab9zrYwQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/threejs/-/threejs-1.0.0.tgz", + "integrity": "sha512-uklU2xtXO9oEFDJldGsdiluTW02K+tWyIMvN2vZTzQwjSs3x1irCb98V4VG0ZAnz1SFudfi3zbzyPbKf0QenWQ==", "license": "MIT", "dependencies": { - "@bitbybit-dev/core": "1.0.0-rc.2", + "@bitbybit-dev/core": "1.0.0", "three": "0.184.0" } }, diff --git a/examples/angular/threejs/vite-basic-example/package.json b/examples/angular/threejs/vite-basic-example/package.json index 26028dba7..e0dd3a466 100644 --- a/examples/angular/threejs/vite-basic-example/package.json +++ b/examples/angular/threejs/vite-basic-example/package.json @@ -14,7 +14,7 @@ "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@bitbybit-dev/threejs": "1.0.0-rc.2", + "@bitbybit-dev/threejs": "1.0.0", "rxjs": "7.8.2", "tslib": "^2.5.0", "zone.js": "~0.15.0" diff --git a/examples/angular/threejs/vite-basic-example/src/workers/manifold.worker.ts b/examples/angular/threejs/vite-basic-example/src/workers/manifold.worker.ts index 2803172d4..fb60a8f2b 100644 --- a/examples/angular/threejs/vite-basic-example/src/workers/manifold.worker.ts +++ b/examples/angular/threejs/vite-basic-example/src/workers/manifold.worker.ts @@ -7,7 +7,7 @@ import Module from "manifold-3d"; const init = async () => { const wasm = await Module({ locateFile: () => { - return "https://git-cdn.bitbybit.dev/v1.0.0-rc.2/wasm/manifold-3-3-2.wasm"; + return "https://git-cdn.bitbybit.dev/v1.0.0/wasm/manifold-3-3-2.wasm"; }, }); wasm.setup(); diff --git a/examples/api/dotnet-rest/BitbybitClient.cs b/examples/api/dotnet-rest/BitbybitClient.cs index d1a2ea77d..ebdb16e93 100644 --- a/examples/api/dotnet-rest/BitbybitClient.cs +++ b/examples/api/dotnet-rest/BitbybitClient.cs @@ -17,7 +17,12 @@ public class BitbybitClient public BitbybitClient(HttpClient http, IConfiguration config) { _http = http; - _apiKey = config["Bitbybit:ApiKey"] ?? throw new InvalidOperationException("Bitbybit:ApiKey is required"); + _apiKey = config["Bitbybit:ApiKey"] ?? throw new InvalidOperationException( + "Bitbybit:ApiKey is not configured. " + + "You need a Bitbybit API key to run this server. " + + "Create an account on https://bitbybit.dev and purchase an API key plan at " + + "https://bitbybit.dev/auth/pick-plan?api-keys=true to get access to managed CAD cloud servers. " + + "Then add your key to appsettings.Development.json under Bitbybit:ApiKey."); _apiUrl = config["Bitbybit:ApiUrl"] ?? "https://api.bitbybit.dev"; } diff --git a/examples/api/frontend/src/App.tsx b/examples/api/frontend/src/App.tsx index bec5a4f12..f57a835e0 100644 --- a/examples/api/frontend/src/App.tsx +++ b/examples/api/frontend/src/App.tsx @@ -4,6 +4,7 @@ import { Tabs } from "./components/Tabs"; import { ModelsPanel } from "./panels/ModelsPanel"; import { PipelinesPanel } from "./panels/PipelinesPanel"; import { Viewer } from "./components/Viewer"; +import { ApiKeyWarning } from "./components/ApiKeyWarning"; export type TabId = "models" | "pipelines"; @@ -31,6 +32,7 @@ export function App() { return ( <>
+ { clearViewer(); setActiveTab(tab); }} /> diff --git a/examples/api/frontend/src/components/ApiKeyWarning.tsx b/examples/api/frontend/src/components/ApiKeyWarning.tsx new file mode 100644 index 000000000..d79ef4b1c --- /dev/null +++ b/examples/api/frontend/src/components/ApiKeyWarning.tsx @@ -0,0 +1,41 @@ +import { useEffect, useState } from "react"; + +export function ApiKeyWarning() { + const [visible, setVisible] = useState(false); + + useEffect(() => { + // Probe the backend to check if the API key is configured + fetch("/api/generate", { method: "POST" }) + .then(async (res) => { + // 503 = API key not configured, 502/504 = backend not reachable + if (res.status === 503 || res.status === 502 || res.status === 504) { + setVisible(true); + } + }) + .catch(() => { + // Backend not reachable — show generic warning + setVisible(true); + }); + }, []); + + if (!visible) return null; + + return ( +
+
⚠️
+
+ API Key Not Configured +

+ You need a Bitbybit API key to use this application. + Create an account on{" "} + bitbybit.dev{" "} + and purchase an API key plan at{" "} + + bitbybit.dev/auth/pick-plan + {" "} + to get access to managed CAD cloud servers. +

+
+
+ ); +} diff --git a/examples/api/frontend/src/styles.css b/examples/api/frontend/src/styles.css index d72893a45..b592c1275 100644 --- a/examples/api/frontend/src/styles.css +++ b/examples/api/frontend/src/styles.css @@ -187,6 +187,31 @@ body { color: #ff6b6b; } +.api-key-warning { + position: fixed; + top: 65px; left: 0; right: 0; + z-index: 25; + display: flex; + align-items: flex-start; + gap: 12px; + padding: 14px 24px; + background: rgba(180, 80, 20, 0.92); + backdrop-filter: blur(10px); + border-bottom: 1px solid rgba(255, 160, 60, 0.4); + color: #fff; + font-size: 14px; + line-height: 1.5; +} + +.api-key-warning-icon { font-size: 20px; flex-shrink: 0; } + +.api-key-warning-content strong { display: block; margin-bottom: 4px; } + +.api-key-warning-content a { + color: #ffe0a0; + text-decoration: underline; +} + .json-preview { margin-top: 12px; max-width: 600px; diff --git a/examples/api/hono-rest/src/index.ts b/examples/api/hono-rest/src/index.ts index 76aaa4d8d..5319761bc 100644 --- a/examples/api/hono-rest/src/index.ts +++ b/examples/api/hono-rest/src/index.ts @@ -4,6 +4,17 @@ import { createDragonCup, createDragonCupBatch, getTaskResult, runTranslateUnion const app = new Hono<{ Bindings: Env }>(); +// Check for missing API key and return a helpful error +app.use("/api/*", async (c, next) => { + if (!c.env.BITBYBIT_API_KEY) { + return c.json({ + error: "BITBYBIT_API_KEY is not configured.", + help: "You need a Bitbybit API key to use this service. Create an account on https://bitbybit.dev and purchase an API key plan at https://bitbybit.dev/auth/pick-plan?api-keys=true to get access to managed CAD cloud servers.", + }, 503); + } + await next(); +}); + // Backend endpoint — calls bitbybit API with server-side API key app.post("/api/generate", async (c) => { try { diff --git a/examples/api/hono-sdk/package.json b/examples/api/hono-sdk/package.json index 66e52a3b8..54d142b49 100644 --- a/examples/api/hono-sdk/package.json +++ b/examples/api/hono-sdk/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "hono": "^4.7.0", - "@bitbybit-dev/cad-cloud-sdk": "1.0.0-rc.2" + "@bitbybit-dev/cad-cloud-sdk": "1.0.0" }, "devDependencies": { "@cloudflare/workers-types": "^4.20250410.0", diff --git a/examples/api/hono-sdk/src/index.ts b/examples/api/hono-sdk/src/index.ts index c6fe1763e..388f2304d 100644 --- a/examples/api/hono-sdk/src/index.ts +++ b/examples/api/hono-sdk/src/index.ts @@ -5,6 +5,17 @@ import { createDragonCup, createDragonCupBatch, createInvalidCup, getTaskResult, const app = new Hono<{ Bindings: Env }>(); +// Check for missing API key and return a helpful error +app.use("/api/*", async (c, next) => { + if (!c.env.BITBYBIT_API_KEY) { + return c.json({ + error: "BITBYBIT_API_KEY is not configured.", + help: "You need a Bitbybit API key to use this service. Create an account on https://bitbybit.dev and purchase an API key plan at https://bitbybit.dev/auth/pick-plan?api-keys=true to get access to managed CAD cloud servers.", + }, 503); + } + await next(); +}); + // Backend endpoint — calls bitbybit API with server-side API key app.post("/api/generate", async (c) => { try { diff --git a/examples/api/nodejs-rest/src/index.ts b/examples/api/nodejs-rest/src/index.ts index f169f8d35..f15e330c3 100644 --- a/examples/api/nodejs-rest/src/index.ts +++ b/examples/api/nodejs-rest/src/index.ts @@ -12,10 +12,17 @@ const env: Env = { BITBYBIT_API_URL: process.env.BITBYBIT_API_URL ?? "https://api.bitbybit.dev", }; -if (!env.BITBYBIT_API_KEY) { - console.error("BITBYBIT_API_KEY environment variable is required"); - process.exit(1); -} +// Check for missing API key and return a helpful error +app.use("/api", (_req, res, next) => { + if (!env.BITBYBIT_API_KEY) { + res.status(503).json({ + error: "BITBYBIT_API_KEY is not configured.", + help: "You need a Bitbybit API key to use this service. Create an account on https://bitbybit.dev and purchase an API key plan at https://bitbybit.dev/auth/pick-plan?api-keys=true to get access to managed CAD cloud servers.", + }); + return; + } + next(); +}); // Backend endpoint — calls bitbybit API with server-side API key app.post("/api/generate", async (_req, res) => { diff --git a/examples/api/nodejs-sdk/package.json b/examples/api/nodejs-sdk/package.json index 8c8955ce3..3a2e4d918 100644 --- a/examples/api/nodejs-sdk/package.json +++ b/examples/api/nodejs-sdk/package.json @@ -11,7 +11,7 @@ "dependencies": { "express": "^5.1.0", "multer": "^1.4.5-lts.2", - "@bitbybit-dev/cad-cloud-sdk": "1.0.0-rc.2" + "@bitbybit-dev/cad-cloud-sdk": "1.0.0" }, "devDependencies": { "@types/express": "^5.0.2", diff --git a/examples/api/nodejs-sdk/src/index.ts b/examples/api/nodejs-sdk/src/index.ts index be2cad938..359046658 100644 --- a/examples/api/nodejs-sdk/src/index.ts +++ b/examples/api/nodejs-sdk/src/index.ts @@ -7,10 +7,17 @@ const upload = multer({ storage: multer.memoryStorage(), limits: { fileSize: 50 const app = express(); app.use(express.json()); -if (!process.env.BITBYBIT_API_KEY) { - console.error("BITBYBIT_API_KEY environment variable is required"); - process.exit(1); -} +// Check for missing API key and return a helpful error +app.use("/api", (_req, res, next) => { + if (!process.env.BITBYBIT_API_KEY) { + res.status(503).json({ + error: "BITBYBIT_API_KEY is not configured.", + help: "You need a Bitbybit API key to use this service. Create an account on https://bitbybit.dev and purchase an API key plan at https://bitbybit.dev/auth/pick-plan?api-keys=true to get access to managed CAD cloud servers.", + }); + return; + } + next(); +}); // Backend endpoint — calls bitbybit API with server-side API key app.post("/api/generate", async (_req, res) => { diff --git a/examples/nextjs/babylonjs/simple/package-lock.json b/examples/nextjs/babylonjs/simple/package-lock.json index 59cc9e731..da8a2800a 100644 --- a/examples/nextjs/babylonjs/simple/package-lock.json +++ b/examples/nextjs/babylonjs/simple/package-lock.json @@ -8,7 +8,7 @@ "name": "simple", "version": "0.1.0", "dependencies": { - "@bitbybit-dev/babylonjs": "1.0.0-rc.2", + "@bitbybit-dev/babylonjs": "1.0.0", "file-loader": "6.2.0", "next": "15.0.1", "react": "19.0.0-rc-69d4b800-20241021", @@ -38,16 +38,16 @@ } }, "node_modules/@babylonjs/core": { - "version": "9.5.1", - "resolved": "https://registry.npmjs.org/@babylonjs/core/-/core-9.5.1.tgz", - "integrity": "sha512-T3qzihiGqwKZitQgLxqjLhNDRmaQe/Fp8lxinw1ZMaZeErSdWNDgmHtReuxG1/X2XZ0cbYkJkZF/99flNzlX4Q==", + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/@babylonjs/core/-/core-9.6.0.tgz", + "integrity": "sha512-4WoYkdrStnszS2qKy44sDRQA8ibVlJ9YbbO9mFrOZYAAY0p2VWfQaC/qwwQJ7hrHXpoayltaaXhkK3aNiol5aA==", "license": "Apache-2.0", "peer": true }, "node_modules/@babylonjs/gui": { - "version": "9.5.1", - "resolved": "https://registry.npmjs.org/@babylonjs/gui/-/gui-9.5.1.tgz", - "integrity": "sha512-ygIWyzkjbRWDGXH+ZbmrOGyLcg8dr78do9cFQQ41C+pTZQrVssjk1pNSRyAIIylxs9WKnxjzPJ7ufMnoUiwHaw==", + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/@babylonjs/gui/-/gui-9.6.0.tgz", + "integrity": "sha512-xf47iJfa+IyALzOeFvjPaa9W1DyJwcrut0/0fCYwFL0sOHiuROgzGKIxvl4+c9LwvJa67t+P+cOnC2aSkhSCcg==", "license": "Apache-2.0", "peerDependencies": { "@babylonjs/core": "^9.0.0" @@ -63,9 +63,9 @@ } }, "node_modules/@babylonjs/loaders": { - "version": "9.5.1", - "resolved": "https://registry.npmjs.org/@babylonjs/loaders/-/loaders-9.5.1.tgz", - "integrity": "sha512-Si22HIUlWyP5EuzN1MIEOLSY6K07yjEvFeO3GwZA5v+nGzU/MbVCPKtIKasQ72D0WLABfFHEO6cu24XhjkPGHQ==", + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/@babylonjs/loaders/-/loaders-9.6.0.tgz", + "integrity": "sha512-f4JmYlkxwtS5NYHqwjGeX9fI1TjMA8IhMLQwGMt2D7V+AgBlwVPnPzhSCEzOMGD6Qe+1z+97DYtgHhasWRHAHw==", "license": "Apache-2.0", "peerDependencies": { "@babylonjs/core": "^9.0.0", @@ -73,18 +73,18 @@ } }, "node_modules/@babylonjs/materials": { - "version": "9.5.1", - "resolved": "https://registry.npmjs.org/@babylonjs/materials/-/materials-9.5.1.tgz", - "integrity": "sha512-jVtuZxKP7PGolJiC3REKEK/1dFz+Qf8y7YWOuQ//GlWYYBCXwz+3C6asCCvmuLOA6aRIRWEm8oElj/8pqE8+PQ==", + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/@babylonjs/materials/-/materials-9.6.0.tgz", + "integrity": "sha512-wm9LRhD6/v/xUNmbOQWosLDzVYxihO5Zsza7WBV8S4PB6lRYsh+tjqA73OKMNIVefM533rphQoSZ3i/mnxw7IA==", "license": "Apache-2.0", "peerDependencies": { "@babylonjs/core": "^9.0.0" } }, "node_modules/@babylonjs/serializers": { - "version": "9.5.1", - "resolved": "https://registry.npmjs.org/@babylonjs/serializers/-/serializers-9.5.1.tgz", - "integrity": "sha512-8XilBJoTDnM26++qqH0Ly9TtODJC6xdlUBU90yXH220VJAchfFl+Dr5DHuxniEzj0hBrYZi1vg7ZUYVUxvUfbQ==", + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/@babylonjs/serializers/-/serializers-9.6.0.tgz", + "integrity": "sha512-GBKlL8zlrEu7w9O2HtJTKem1bF0+lnf5EDuJm/RGgkKYU6cZjEJJw+P2S8UCL90394p6eQtEN1n7eHnvhYslGQ==", "license": "Apache-2.0", "peerDependencies": { "@babylonjs/core": "^9.0.0", @@ -92,49 +92,49 @@ } }, "node_modules/@bitbybit-dev/babylonjs": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/babylonjs/-/babylonjs-1.0.0-rc.2.tgz", - "integrity": "sha512-QABFW+BF3zQbZgFJ/IxV75ZWfvQc/scAPugpFTONeoe1gp6yblzTv/hNJ4Q31SrDGFDGT3gbvB1IJ0KqaVEV5g==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/babylonjs/-/babylonjs-1.0.0.tgz", + "integrity": "sha512-VbGijxJQJ410vnhLAXcMEJ0ekq6pECWrxisXKCxG9vfXDjK1sJ5/Hi+Eae7AeuYWuRILYi32mrU3fIMJTNogyw==", "license": "MIT", "dependencies": { - "@babylonjs/core": "9.5.1", - "@babylonjs/gui": "9.5.1", + "@babylonjs/core": "9.6.0", + "@babylonjs/gui": "9.6.0", "@babylonjs/havok": "1.3.12", - "@babylonjs/loaders": "9.5.1", - "@babylonjs/materials": "9.5.1", - "@babylonjs/serializers": "9.5.1", - "@bitbybit-dev/core": "1.0.0-rc.2", + "@babylonjs/loaders": "9.6.0", + "@babylonjs/materials": "9.6.0", + "@babylonjs/serializers": "9.6.0", + "@bitbybit-dev/core": "1.0.0", "earcut": "3.0.2" } }, "node_modules/@bitbybit-dev/base": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/base/-/base-1.0.0-rc.2.tgz", - "integrity": "sha512-pS0VAXUCyJlCzx/ei13QEgI2Pj9cSAMZ7sBLnUl8WYjwV1Y0hc1VMkQXaQQAABXS00/rTEvLqa27g6Dq3UlYKg==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/base/-/base-1.0.0.tgz", + "integrity": "sha512-dZCP1MynP8LSV379BzIoQUTT0x3vkvtdmKagC+giIWBlnVEwhzxnnNnCUWqyoB+GcPEVgmEJ0MEBtCT2JTRNuQ==", "license": "MIT" }, "node_modules/@bitbybit-dev/core": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/core/-/core-1.0.0-rc.2.tgz", - "integrity": "sha512-ieHl4IF4r7YEEZOhR1ZzyAaBvSG3u6OQ2EMQZqdNRRCLdPzf4hfl2NzP4E9iVIKvak7Rg0bDUHFPRC1chslsmA==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/core/-/core-1.0.0.tgz", + "integrity": "sha512-x6No4alyAmPFLoCZ8m0ykxtU627CMqzFpmfh+C61SNHAzQ2QiTckCau2Owsv2yNUmBuZkYozJHOG6o+uKYjdpA==", "license": "MIT", "dependencies": { - "@bitbybit-dev/base": "1.0.0-rc.2", - "@bitbybit-dev/jscad-worker": "1.0.0-rc.2", - "@bitbybit-dev/manifold-worker": "1.0.0-rc.2", - "@bitbybit-dev/occt-worker": "1.0.0-rc.2", + "@bitbybit-dev/base": "1.0.0", + "@bitbybit-dev/jscad-worker": "1.0.0", + "@bitbybit-dev/manifold-worker": "1.0.0", + "@bitbybit-dev/occt-worker": "1.0.0", "jsonpath-plus": "10.3.0", "rxjs": "7.8.2", "verb-nurbs-web": "2.1.3" } }, "node_modules/@bitbybit-dev/jscad": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/jscad/-/jscad-1.0.0-rc.2.tgz", - "integrity": "sha512-xBu5kZ1rRkGmt2vnxpXPOkDKi1G7SS/t3ckgPf5u7qm/UZEFxEXTogqI6KSc+vbktFUeuPVdeiMfqYPi70r8NQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/jscad/-/jscad-1.0.0.tgz", + "integrity": "sha512-LPfl/uf+mygPsGzkvNK7QxwYEfYAYgOEDSPrCxyqf42DgEgx5FOkopUlwacbHPdY/R24tSDx1vFiGI0IvcYqDA==", "license": "MIT", "dependencies": { - "@bitbybit-dev/base": "1.0.0-rc.2", + "@bitbybit-dev/base": "1.0.0", "@jscad/3mf-serializer": "2.1.12", "@jscad/dxf-serializer": "2.1.18", "@jscad/io-utils": "2.0.28", @@ -143,51 +143,51 @@ } }, "node_modules/@bitbybit-dev/jscad-worker": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/jscad-worker/-/jscad-worker-1.0.0-rc.2.tgz", - "integrity": "sha512-ELGobFwgDlx31ZCp4PoRzC9ap15aDqisFeH9HVoJq9w7WM7XwiDiArc+UUg8iH3q3H7SmZd3+U0vUeLGLAO1hA==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/jscad-worker/-/jscad-worker-1.0.0.tgz", + "integrity": "sha512-AeUZwZ4hlH5zQABfvUer0k1lMskSNyDaY0wqXghclPdktgcYGLhvRNdg/tnpA8YwY8HKQuRl37K2WyfUUwU08A==", "license": "MIT", "dependencies": { - "@bitbybit-dev/jscad": "1.0.0-rc.2", + "@bitbybit-dev/jscad": "1.0.0", "rxjs": "7.8.2" } }, "node_modules/@bitbybit-dev/manifold": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/manifold/-/manifold-1.0.0-rc.2.tgz", - "integrity": "sha512-G88cUGijBkWoW/Yotm0JdPVicOGR4vJYaqML53Kaz4vK08ZnvlshjJVEasaxmCRg5KqxLvho4thb+Wj+smFDkQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/manifold/-/manifold-1.0.0.tgz", + "integrity": "sha512-VlDmyq4eennwRnxquc7SwoBOhPob46D0/OppaEc6vJGMFghQFALZwfMZDwY5Xkv7+YbiD5Z0ODT6S0Z+X5xcAA==", "license": "MIT", "dependencies": { - "@bitbybit-dev/base": "1.0.0-rc.2", + "@bitbybit-dev/base": "1.0.0", "manifold-3d": "3.3.2" } }, "node_modules/@bitbybit-dev/manifold-worker": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/manifold-worker/-/manifold-worker-1.0.0-rc.2.tgz", - "integrity": "sha512-sFzSoqCaLy3OKIbJwZJf/ORpn1/z40mAx4x7AopP6szUmNDnE6gTl+I+50GyonJRJV3qsEG7YNFVKAhZUm3y5Q==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/manifold-worker/-/manifold-worker-1.0.0.tgz", + "integrity": "sha512-gWcndSk6GB0/c0G1ESzYOHRN1iWXdswaz10OVmXXxlPD4ScZZSeI7q/nyLfOflRiH0+4HmPIueS5bMqL49vR+Q==", "license": "MIT", "dependencies": { - "@bitbybit-dev/manifold": "1.0.0-rc.2", + "@bitbybit-dev/manifold": "1.0.0", "rxjs": "7.8.2" } }, "node_modules/@bitbybit-dev/occt": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/occt/-/occt-1.0.0-rc.2.tgz", - "integrity": "sha512-S4IQ7EGWc5RPNLTel3pdbY00+yD4BgB1Oj7nA3n7i7bveyOU2gxEXGXzWYJx5nkJ77jFiKxCreYV86FOFytOog==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/occt/-/occt-1.0.0.tgz", + "integrity": "sha512-r66+yt0jFiYhUJcCmxGDZe/SucUklKCPLz8C+8BI9udLDIgEHlzGI8QbMUpG6ZG5hMIsX+FFcEzBS3q7e/hQMw==", "license": "MIT", "dependencies": { - "@bitbybit-dev/base": "1.0.0-rc.2" + "@bitbybit-dev/base": "1.0.0" } }, "node_modules/@bitbybit-dev/occt-worker": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/occt-worker/-/occt-worker-1.0.0-rc.2.tgz", - "integrity": "sha512-v5f6vijvxpm7Mg3XHYsD3kjXy4Akwa5LK9fASQwNIizYSqfK/pfFEplqcmtl+qxJ4ArFNwN+1z2NZB4svbBLmQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/occt-worker/-/occt-worker-1.0.0.tgz", + "integrity": "sha512-k8aP3v/PF6HivkdqKILeAN1Ybj1O/yLx7a25g7rB62yQSm4IT6cUVLE8adG/UO5WFRyesllEpnj6bR1yVAc55Q==", "license": "MIT", "dependencies": { - "@bitbybit-dev/occt": "1.0.0-rc.2", + "@bitbybit-dev/occt": "1.0.0", "rxjs": "7.8.2" } }, @@ -1920,9 +1920,9 @@ } }, "node_modules/babylonjs-gltf2interface": { - "version": "9.5.1", - "resolved": "https://registry.npmjs.org/babylonjs-gltf2interface/-/babylonjs-gltf2interface-9.5.1.tgz", - "integrity": "sha512-S5rcLxIKu4f55beeuvAK01YnWfo8EIIMmJV2RIXQcl3OF2+kNd6jCNv1KfMN0QbrtC921iGNSAJVp3dMAxLKaQ==", + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/babylonjs-gltf2interface/-/babylonjs-gltf2interface-9.6.0.tgz", + "integrity": "sha512-eGj774aq8TEsgcxZQHI39uGoQ83pDGjSpwx1Bf0cgDg6tS+XJJIU0Mt2ABO2Vc0CGxAlv73kVUGaG0gyyCSo4Q==", "license": "Apache-2.0", "peer": true }, diff --git a/examples/nextjs/babylonjs/simple/package.json b/examples/nextjs/babylonjs/simple/package.json index f660f3e29..19bbda31c 100644 --- a/examples/nextjs/babylonjs/simple/package.json +++ b/examples/nextjs/babylonjs/simple/package.json @@ -9,7 +9,7 @@ "lint": "next lint" }, "dependencies": { - "@bitbybit-dev/babylonjs": "1.0.0-rc.2", + "@bitbybit-dev/babylonjs": "1.0.0", "react": "19.0.0-rc-69d4b800-20241021", "react-dom": "19.0.0-rc-69d4b800-20241021", "next": "15.0.1", diff --git a/examples/node/basic/index.ts b/examples/node/basic/index.ts index f9207262a..f5bc6f171 100644 --- a/examples/node/basic/index.ts +++ b/examples/node/basic/index.ts @@ -11,7 +11,7 @@ async function run() { console.log("initializing..."); // For Node.js, we need to specify the path to the WASM file - const wasmPath = require.resolve("@bitbybit-dev/occt/bitbybit-dev-occt/bitbybit-dev-occt.f6d9fd19.wasm"); + const wasmPath = require.resolve("@bitbybit-dev/occt/bitbybit-dev-occt/bitbybit-dev-occt.9b6220e2.wasm"); const occ = await initOpenCascade({ locateFile: (path: string) => { diff --git a/examples/node/basic/package-lock.json b/examples/node/basic/package-lock.json index 834cb7715..bb09e189e 100644 --- a/examples/node/basic/package-lock.json +++ b/examples/node/basic/package-lock.json @@ -9,7 +9,7 @@ "version": "1.0.0", "license": "MIT", "dependencies": { - "@bitbybit-dev/occt": "1.0.0-rc.2" + "@bitbybit-dev/occt": "1.0.0" }, "devDependencies": { "concurrently": "^7.6.0", @@ -34,18 +34,18 @@ } }, "node_modules/@bitbybit-dev/base": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/base/-/base-1.0.0-rc.2.tgz", - "integrity": "sha512-pS0VAXUCyJlCzx/ei13QEgI2Pj9cSAMZ7sBLnUl8WYjwV1Y0hc1VMkQXaQQAABXS00/rTEvLqa27g6Dq3UlYKg==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/base/-/base-1.0.0.tgz", + "integrity": "sha512-dZCP1MynP8LSV379BzIoQUTT0x3vkvtdmKagC+giIWBlnVEwhzxnnNnCUWqyoB+GcPEVgmEJ0MEBtCT2JTRNuQ==", "license": "MIT" }, "node_modules/@bitbybit-dev/occt": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/occt/-/occt-1.0.0-rc.2.tgz", - "integrity": "sha512-S4IQ7EGWc5RPNLTel3pdbY00+yD4BgB1Oj7nA3n7i7bveyOU2gxEXGXzWYJx5nkJ77jFiKxCreYV86FOFytOog==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/occt/-/occt-1.0.0.tgz", + "integrity": "sha512-r66+yt0jFiYhUJcCmxGDZe/SucUklKCPLz8C+8BI9udLDIgEHlzGI8QbMUpG6ZG5hMIsX+FFcEzBS3q7e/hQMw==", "license": "MIT", "dependencies": { - "@bitbybit-dev/base": "1.0.0-rc.2" + "@bitbybit-dev/base": "1.0.0" } }, "node_modules/ansi-regex": { diff --git a/examples/node/basic/package.json b/examples/node/basic/package.json index 480b7807a..1a87685f0 100644 --- a/examples/node/basic/package.json +++ b/examples/node/basic/package.json @@ -15,7 +15,7 @@ "node": ">=20.19.4" }, "dependencies": { - "@bitbybit-dev/occt": "1.0.0-rc.2" + "@bitbybit-dev/occt": "1.0.0" }, "devDependencies": { "extensionless": "1.9.9", diff --git a/examples/node/express-app/bitbybit.ts b/examples/node/express-app/bitbybit.ts index 4cee25b82..cf86cd044 100644 --- a/examples/node/express-app/bitbybit.ts +++ b/examples/node/express-app/bitbybit.ts @@ -64,7 +64,7 @@ export class BitByBitBase { async init() { // Initialize OCCT (OpenCascade) with locateFile for Node.js WASM loading - const wasmPath = require.resolve("@bitbybit-dev/occt/bitbybit-dev-occt/bitbybit-dev-occt.f6d9fd19.wasm"); + const wasmPath = require.resolve("@bitbybit-dev/occt/bitbybit-dev-occt/bitbybit-dev-occt.9b6220e2.wasm"); const occ = await (initOpenCascade as (options?: { locateFile?: (path: string) => string }) => Promise)({ locateFile: (path: string) => { if (path.endsWith(".wasm")) { diff --git a/examples/node/express-app/package-lock.json b/examples/node/express-app/package-lock.json index 7e29c47d4..1ce500704 100644 --- a/examples/node/express-app/package-lock.json +++ b/examples/node/express-app/package-lock.json @@ -9,11 +9,11 @@ "version": "1.0.0", "license": "MIT", "dependencies": { - "@bitbybit-dev/base": "1.0.0-rc.2", - "@bitbybit-dev/core": "1.0.0-rc.2", - "@bitbybit-dev/jscad": "1.0.0-rc.2", - "@bitbybit-dev/manifold": "1.0.0-rc.2", - "@bitbybit-dev/occt": "1.0.0-rc.2", + "@bitbybit-dev/base": "1.0.0", + "@bitbybit-dev/core": "1.0.0", + "@bitbybit-dev/jscad": "1.0.0", + "@bitbybit-dev/manifold": "1.0.0", + "@bitbybit-dev/occt": "1.0.0", "dotenv": "^16.0.3", "express": "^4.18.2", "jsonpath-plus": "^10.3.0", @@ -31,33 +31,33 @@ } }, "node_modules/@bitbybit-dev/base": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/base/-/base-1.0.0-rc.2.tgz", - "integrity": "sha512-pS0VAXUCyJlCzx/ei13QEgI2Pj9cSAMZ7sBLnUl8WYjwV1Y0hc1VMkQXaQQAABXS00/rTEvLqa27g6Dq3UlYKg==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/base/-/base-1.0.0.tgz", + "integrity": "sha512-dZCP1MynP8LSV379BzIoQUTT0x3vkvtdmKagC+giIWBlnVEwhzxnnNnCUWqyoB+GcPEVgmEJ0MEBtCT2JTRNuQ==", "license": "MIT" }, "node_modules/@bitbybit-dev/core": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/core/-/core-1.0.0-rc.2.tgz", - "integrity": "sha512-ieHl4IF4r7YEEZOhR1ZzyAaBvSG3u6OQ2EMQZqdNRRCLdPzf4hfl2NzP4E9iVIKvak7Rg0bDUHFPRC1chslsmA==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/core/-/core-1.0.0.tgz", + "integrity": "sha512-x6No4alyAmPFLoCZ8m0ykxtU627CMqzFpmfh+C61SNHAzQ2QiTckCau2Owsv2yNUmBuZkYozJHOG6o+uKYjdpA==", "license": "MIT", "dependencies": { - "@bitbybit-dev/base": "1.0.0-rc.2", - "@bitbybit-dev/jscad-worker": "1.0.0-rc.2", - "@bitbybit-dev/manifold-worker": "1.0.0-rc.2", - "@bitbybit-dev/occt-worker": "1.0.0-rc.2", + "@bitbybit-dev/base": "1.0.0", + "@bitbybit-dev/jscad-worker": "1.0.0", + "@bitbybit-dev/manifold-worker": "1.0.0", + "@bitbybit-dev/occt-worker": "1.0.0", "jsonpath-plus": "10.3.0", "rxjs": "7.8.2", "verb-nurbs-web": "2.1.3" } }, "node_modules/@bitbybit-dev/jscad": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/jscad/-/jscad-1.0.0-rc.2.tgz", - "integrity": "sha512-xBu5kZ1rRkGmt2vnxpXPOkDKi1G7SS/t3ckgPf5u7qm/UZEFxEXTogqI6KSc+vbktFUeuPVdeiMfqYPi70r8NQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/jscad/-/jscad-1.0.0.tgz", + "integrity": "sha512-LPfl/uf+mygPsGzkvNK7QxwYEfYAYgOEDSPrCxyqf42DgEgx5FOkopUlwacbHPdY/R24tSDx1vFiGI0IvcYqDA==", "license": "MIT", "dependencies": { - "@bitbybit-dev/base": "1.0.0-rc.2", + "@bitbybit-dev/base": "1.0.0", "@jscad/3mf-serializer": "2.1.12", "@jscad/dxf-serializer": "2.1.18", "@jscad/io-utils": "2.0.28", @@ -66,51 +66,51 @@ } }, "node_modules/@bitbybit-dev/jscad-worker": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/jscad-worker/-/jscad-worker-1.0.0-rc.2.tgz", - "integrity": "sha512-ELGobFwgDlx31ZCp4PoRzC9ap15aDqisFeH9HVoJq9w7WM7XwiDiArc+UUg8iH3q3H7SmZd3+U0vUeLGLAO1hA==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/jscad-worker/-/jscad-worker-1.0.0.tgz", + "integrity": "sha512-AeUZwZ4hlH5zQABfvUer0k1lMskSNyDaY0wqXghclPdktgcYGLhvRNdg/tnpA8YwY8HKQuRl37K2WyfUUwU08A==", "license": "MIT", "dependencies": { - "@bitbybit-dev/jscad": "1.0.0-rc.2", + "@bitbybit-dev/jscad": "1.0.0", "rxjs": "7.8.2" } }, "node_modules/@bitbybit-dev/manifold": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/manifold/-/manifold-1.0.0-rc.2.tgz", - "integrity": "sha512-G88cUGijBkWoW/Yotm0JdPVicOGR4vJYaqML53Kaz4vK08ZnvlshjJVEasaxmCRg5KqxLvho4thb+Wj+smFDkQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/manifold/-/manifold-1.0.0.tgz", + "integrity": "sha512-VlDmyq4eennwRnxquc7SwoBOhPob46D0/OppaEc6vJGMFghQFALZwfMZDwY5Xkv7+YbiD5Z0ODT6S0Z+X5xcAA==", "license": "MIT", "dependencies": { - "@bitbybit-dev/base": "1.0.0-rc.2", + "@bitbybit-dev/base": "1.0.0", "manifold-3d": "3.3.2" } }, "node_modules/@bitbybit-dev/manifold-worker": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/manifold-worker/-/manifold-worker-1.0.0-rc.2.tgz", - "integrity": "sha512-sFzSoqCaLy3OKIbJwZJf/ORpn1/z40mAx4x7AopP6szUmNDnE6gTl+I+50GyonJRJV3qsEG7YNFVKAhZUm3y5Q==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/manifold-worker/-/manifold-worker-1.0.0.tgz", + "integrity": "sha512-gWcndSk6GB0/c0G1ESzYOHRN1iWXdswaz10OVmXXxlPD4ScZZSeI7q/nyLfOflRiH0+4HmPIueS5bMqL49vR+Q==", "license": "MIT", "dependencies": { - "@bitbybit-dev/manifold": "1.0.0-rc.2", + "@bitbybit-dev/manifold": "1.0.0", "rxjs": "7.8.2" } }, "node_modules/@bitbybit-dev/occt": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/occt/-/occt-1.0.0-rc.2.tgz", - "integrity": "sha512-S4IQ7EGWc5RPNLTel3pdbY00+yD4BgB1Oj7nA3n7i7bveyOU2gxEXGXzWYJx5nkJ77jFiKxCreYV86FOFytOog==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/occt/-/occt-1.0.0.tgz", + "integrity": "sha512-r66+yt0jFiYhUJcCmxGDZe/SucUklKCPLz8C+8BI9udLDIgEHlzGI8QbMUpG6ZG5hMIsX+FFcEzBS3q7e/hQMw==", "license": "MIT", "dependencies": { - "@bitbybit-dev/base": "1.0.0-rc.2" + "@bitbybit-dev/base": "1.0.0" } }, "node_modules/@bitbybit-dev/occt-worker": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/occt-worker/-/occt-worker-1.0.0-rc.2.tgz", - "integrity": "sha512-v5f6vijvxpm7Mg3XHYsD3kjXy4Akwa5LK9fASQwNIizYSqfK/pfFEplqcmtl+qxJ4ArFNwN+1z2NZB4svbBLmQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/occt-worker/-/occt-worker-1.0.0.tgz", + "integrity": "sha512-k8aP3v/PF6HivkdqKILeAN1Ybj1O/yLx7a25g7rB62yQSm4IT6cUVLE8adG/UO5WFRyesllEpnj6bR1yVAc55Q==", "license": "MIT", "dependencies": { - "@bitbybit-dev/occt": "1.0.0-rc.2", + "@bitbybit-dev/occt": "1.0.0", "rxjs": "7.8.2" } }, @@ -2437,30 +2437,30 @@ }, "dependencies": { "@bitbybit-dev/base": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/base/-/base-1.0.0-rc.2.tgz", - "integrity": "sha512-pS0VAXUCyJlCzx/ei13QEgI2Pj9cSAMZ7sBLnUl8WYjwV1Y0hc1VMkQXaQQAABXS00/rTEvLqa27g6Dq3UlYKg==" + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/base/-/base-1.0.0.tgz", + "integrity": "sha512-dZCP1MynP8LSV379BzIoQUTT0x3vkvtdmKagC+giIWBlnVEwhzxnnNnCUWqyoB+GcPEVgmEJ0MEBtCT2JTRNuQ==" }, "@bitbybit-dev/core": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/core/-/core-1.0.0-rc.2.tgz", - "integrity": "sha512-ieHl4IF4r7YEEZOhR1ZzyAaBvSG3u6OQ2EMQZqdNRRCLdPzf4hfl2NzP4E9iVIKvak7Rg0bDUHFPRC1chslsmA==", - "requires": { - "@bitbybit-dev/base": "1.0.0-rc.2", - "@bitbybit-dev/jscad-worker": "1.0.0-rc.2", - "@bitbybit-dev/manifold-worker": "1.0.0-rc.2", - "@bitbybit-dev/occt-worker": "1.0.0-rc.2", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/core/-/core-1.0.0.tgz", + "integrity": "sha512-x6No4alyAmPFLoCZ8m0ykxtU627CMqzFpmfh+C61SNHAzQ2QiTckCau2Owsv2yNUmBuZkYozJHOG6o+uKYjdpA==", + "requires": { + "@bitbybit-dev/base": "1.0.0", + "@bitbybit-dev/jscad-worker": "1.0.0", + "@bitbybit-dev/manifold-worker": "1.0.0", + "@bitbybit-dev/occt-worker": "1.0.0", "jsonpath-plus": "10.3.0", "rxjs": "7.8.2", "verb-nurbs-web": "2.1.3" } }, "@bitbybit-dev/jscad": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/jscad/-/jscad-1.0.0-rc.2.tgz", - "integrity": "sha512-xBu5kZ1rRkGmt2vnxpXPOkDKi1G7SS/t3ckgPf5u7qm/UZEFxEXTogqI6KSc+vbktFUeuPVdeiMfqYPi70r8NQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/jscad/-/jscad-1.0.0.tgz", + "integrity": "sha512-LPfl/uf+mygPsGzkvNK7QxwYEfYAYgOEDSPrCxyqf42DgEgx5FOkopUlwacbHPdY/R24tSDx1vFiGI0IvcYqDA==", "requires": { - "@bitbybit-dev/base": "1.0.0-rc.2", + "@bitbybit-dev/base": "1.0.0", "@jscad/3mf-serializer": "2.1.12", "@jscad/dxf-serializer": "2.1.18", "@jscad/io-utils": "2.0.28", @@ -2469,46 +2469,46 @@ } }, "@bitbybit-dev/jscad-worker": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/jscad-worker/-/jscad-worker-1.0.0-rc.2.tgz", - "integrity": "sha512-ELGobFwgDlx31ZCp4PoRzC9ap15aDqisFeH9HVoJq9w7WM7XwiDiArc+UUg8iH3q3H7SmZd3+U0vUeLGLAO1hA==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/jscad-worker/-/jscad-worker-1.0.0.tgz", + "integrity": "sha512-AeUZwZ4hlH5zQABfvUer0k1lMskSNyDaY0wqXghclPdktgcYGLhvRNdg/tnpA8YwY8HKQuRl37K2WyfUUwU08A==", "requires": { - "@bitbybit-dev/jscad": "1.0.0-rc.2", + "@bitbybit-dev/jscad": "1.0.0", "rxjs": "7.8.2" } }, "@bitbybit-dev/manifold": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/manifold/-/manifold-1.0.0-rc.2.tgz", - "integrity": "sha512-G88cUGijBkWoW/Yotm0JdPVicOGR4vJYaqML53Kaz4vK08ZnvlshjJVEasaxmCRg5KqxLvho4thb+Wj+smFDkQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/manifold/-/manifold-1.0.0.tgz", + "integrity": "sha512-VlDmyq4eennwRnxquc7SwoBOhPob46D0/OppaEc6vJGMFghQFALZwfMZDwY5Xkv7+YbiD5Z0ODT6S0Z+X5xcAA==", "requires": { - "@bitbybit-dev/base": "1.0.0-rc.2", + "@bitbybit-dev/base": "1.0.0", "manifold-3d": "3.3.2" } }, "@bitbybit-dev/manifold-worker": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/manifold-worker/-/manifold-worker-1.0.0-rc.2.tgz", - "integrity": "sha512-sFzSoqCaLy3OKIbJwZJf/ORpn1/z40mAx4x7AopP6szUmNDnE6gTl+I+50GyonJRJV3qsEG7YNFVKAhZUm3y5Q==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/manifold-worker/-/manifold-worker-1.0.0.tgz", + "integrity": "sha512-gWcndSk6GB0/c0G1ESzYOHRN1iWXdswaz10OVmXXxlPD4ScZZSeI7q/nyLfOflRiH0+4HmPIueS5bMqL49vR+Q==", "requires": { - "@bitbybit-dev/manifold": "1.0.0-rc.2", + "@bitbybit-dev/manifold": "1.0.0", "rxjs": "7.8.2" } }, "@bitbybit-dev/occt": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/occt/-/occt-1.0.0-rc.2.tgz", - "integrity": "sha512-S4IQ7EGWc5RPNLTel3pdbY00+yD4BgB1Oj7nA3n7i7bveyOU2gxEXGXzWYJx5nkJ77jFiKxCreYV86FOFytOog==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/occt/-/occt-1.0.0.tgz", + "integrity": "sha512-r66+yt0jFiYhUJcCmxGDZe/SucUklKCPLz8C+8BI9udLDIgEHlzGI8QbMUpG6ZG5hMIsX+FFcEzBS3q7e/hQMw==", "requires": { - "@bitbybit-dev/base": "1.0.0-rc.2" + "@bitbybit-dev/base": "1.0.0" } }, "@bitbybit-dev/occt-worker": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/occt-worker/-/occt-worker-1.0.0-rc.2.tgz", - "integrity": "sha512-v5f6vijvxpm7Mg3XHYsD3kjXy4Akwa5LK9fASQwNIizYSqfK/pfFEplqcmtl+qxJ4ArFNwN+1z2NZB4svbBLmQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/occt-worker/-/occt-worker-1.0.0.tgz", + "integrity": "sha512-k8aP3v/PF6HivkdqKILeAN1Ybj1O/yLx7a25g7rB62yQSm4IT6cUVLE8adG/UO5WFRyesllEpnj6bR1yVAc55Q==", "requires": { - "@bitbybit-dev/occt": "1.0.0-rc.2", + "@bitbybit-dev/occt": "1.0.0", "rxjs": "7.8.2" } }, diff --git a/examples/node/express-app/package.json b/examples/node/express-app/package.json index a804c7735..fa5a9a845 100644 --- a/examples/node/express-app/package.json +++ b/examples/node/express-app/package.json @@ -12,11 +12,11 @@ "author": "Bit By Bit Developers", "license": "MIT", "dependencies": { - "@bitbybit-dev/base": "1.0.0-rc.2", - "@bitbybit-dev/core": "1.0.0-rc.2", - "@bitbybit-dev/jscad": "1.0.0-rc.2", - "@bitbybit-dev/manifold": "1.0.0-rc.2", - "@bitbybit-dev/occt": "1.0.0-rc.2", + "@bitbybit-dev/base": "1.0.0", + "@bitbybit-dev/core": "1.0.0", + "@bitbybit-dev/jscad": "1.0.0", + "@bitbybit-dev/manifold": "1.0.0", + "@bitbybit-dev/occt": "1.0.0", "dotenv": "^16.0.3", "express": "^4.18.2", "jsonpath-plus": "^10.3.0", diff --git a/examples/nuxt/babylonjs/basic/package-lock.json b/examples/nuxt/babylonjs/basic/package-lock.json index 0bbd6bff6..58a19d612 100644 --- a/examples/nuxt/babylonjs/basic/package-lock.json +++ b/examples/nuxt/babylonjs/basic/package-lock.json @@ -8,7 +8,7 @@ "hasInstallScript": true, "license": "MIT", "dependencies": { - "@bitbybit-dev/babylonjs": "1.0.0-rc.2", + "@bitbybit-dev/babylonjs": "1.0.0", "@pinia/nuxt": "^0.5.4", "nuxt": "^3.13.0", "pinia": "^2.2.2", @@ -487,16 +487,16 @@ } }, "node_modules/@babylonjs/core": { - "version": "9.5.1", - "resolved": "https://registry.npmjs.org/@babylonjs/core/-/core-9.5.1.tgz", - "integrity": "sha512-T3qzihiGqwKZitQgLxqjLhNDRmaQe/Fp8lxinw1ZMaZeErSdWNDgmHtReuxG1/X2XZ0cbYkJkZF/99flNzlX4Q==", + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/@babylonjs/core/-/core-9.6.0.tgz", + "integrity": "sha512-4WoYkdrStnszS2qKy44sDRQA8ibVlJ9YbbO9mFrOZYAAY0p2VWfQaC/qwwQJ7hrHXpoayltaaXhkK3aNiol5aA==", "license": "Apache-2.0", "peer": true }, "node_modules/@babylonjs/gui": { - "version": "9.5.1", - "resolved": "https://registry.npmjs.org/@babylonjs/gui/-/gui-9.5.1.tgz", - "integrity": "sha512-ygIWyzkjbRWDGXH+ZbmrOGyLcg8dr78do9cFQQ41C+pTZQrVssjk1pNSRyAIIylxs9WKnxjzPJ7ufMnoUiwHaw==", + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/@babylonjs/gui/-/gui-9.6.0.tgz", + "integrity": "sha512-xf47iJfa+IyALzOeFvjPaa9W1DyJwcrut0/0fCYwFL0sOHiuROgzGKIxvl4+c9LwvJa67t+P+cOnC2aSkhSCcg==", "license": "Apache-2.0", "peerDependencies": { "@babylonjs/core": "^9.0.0" @@ -512,9 +512,9 @@ } }, "node_modules/@babylonjs/loaders": { - "version": "9.5.1", - "resolved": "https://registry.npmjs.org/@babylonjs/loaders/-/loaders-9.5.1.tgz", - "integrity": "sha512-Si22HIUlWyP5EuzN1MIEOLSY6K07yjEvFeO3GwZA5v+nGzU/MbVCPKtIKasQ72D0WLABfFHEO6cu24XhjkPGHQ==", + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/@babylonjs/loaders/-/loaders-9.6.0.tgz", + "integrity": "sha512-f4JmYlkxwtS5NYHqwjGeX9fI1TjMA8IhMLQwGMt2D7V+AgBlwVPnPzhSCEzOMGD6Qe+1z+97DYtgHhasWRHAHw==", "license": "Apache-2.0", "peerDependencies": { "@babylonjs/core": "^9.0.0", @@ -522,18 +522,18 @@ } }, "node_modules/@babylonjs/materials": { - "version": "9.5.1", - "resolved": "https://registry.npmjs.org/@babylonjs/materials/-/materials-9.5.1.tgz", - "integrity": "sha512-jVtuZxKP7PGolJiC3REKEK/1dFz+Qf8y7YWOuQ//GlWYYBCXwz+3C6asCCvmuLOA6aRIRWEm8oElj/8pqE8+PQ==", + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/@babylonjs/materials/-/materials-9.6.0.tgz", + "integrity": "sha512-wm9LRhD6/v/xUNmbOQWosLDzVYxihO5Zsza7WBV8S4PB6lRYsh+tjqA73OKMNIVefM533rphQoSZ3i/mnxw7IA==", "license": "Apache-2.0", "peerDependencies": { "@babylonjs/core": "^9.0.0" } }, "node_modules/@babylonjs/serializers": { - "version": "9.5.1", - "resolved": "https://registry.npmjs.org/@babylonjs/serializers/-/serializers-9.5.1.tgz", - "integrity": "sha512-8XilBJoTDnM26++qqH0Ly9TtODJC6xdlUBU90yXH220VJAchfFl+Dr5DHuxniEzj0hBrYZi1vg7ZUYVUxvUfbQ==", + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/@babylonjs/serializers/-/serializers-9.6.0.tgz", + "integrity": "sha512-GBKlL8zlrEu7w9O2HtJTKem1bF0+lnf5EDuJm/RGgkKYU6cZjEJJw+P2S8UCL90394p6eQtEN1n7eHnvhYslGQ==", "license": "Apache-2.0", "peerDependencies": { "@babylonjs/core": "^9.0.0", @@ -541,49 +541,49 @@ } }, "node_modules/@bitbybit-dev/babylonjs": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/babylonjs/-/babylonjs-1.0.0-rc.2.tgz", - "integrity": "sha512-QABFW+BF3zQbZgFJ/IxV75ZWfvQc/scAPugpFTONeoe1gp6yblzTv/hNJ4Q31SrDGFDGT3gbvB1IJ0KqaVEV5g==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/babylonjs/-/babylonjs-1.0.0.tgz", + "integrity": "sha512-VbGijxJQJ410vnhLAXcMEJ0ekq6pECWrxisXKCxG9vfXDjK1sJ5/Hi+Eae7AeuYWuRILYi32mrU3fIMJTNogyw==", "license": "MIT", "dependencies": { - "@babylonjs/core": "9.5.1", - "@babylonjs/gui": "9.5.1", + "@babylonjs/core": "9.6.0", + "@babylonjs/gui": "9.6.0", "@babylonjs/havok": "1.3.12", - "@babylonjs/loaders": "9.5.1", - "@babylonjs/materials": "9.5.1", - "@babylonjs/serializers": "9.5.1", - "@bitbybit-dev/core": "1.0.0-rc.2", + "@babylonjs/loaders": "9.6.0", + "@babylonjs/materials": "9.6.0", + "@babylonjs/serializers": "9.6.0", + "@bitbybit-dev/core": "1.0.0", "earcut": "3.0.2" } }, "node_modules/@bitbybit-dev/base": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/base/-/base-1.0.0-rc.2.tgz", - "integrity": "sha512-pS0VAXUCyJlCzx/ei13QEgI2Pj9cSAMZ7sBLnUl8WYjwV1Y0hc1VMkQXaQQAABXS00/rTEvLqa27g6Dq3UlYKg==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/base/-/base-1.0.0.tgz", + "integrity": "sha512-dZCP1MynP8LSV379BzIoQUTT0x3vkvtdmKagC+giIWBlnVEwhzxnnNnCUWqyoB+GcPEVgmEJ0MEBtCT2JTRNuQ==", "license": "MIT" }, "node_modules/@bitbybit-dev/core": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/core/-/core-1.0.0-rc.2.tgz", - "integrity": "sha512-ieHl4IF4r7YEEZOhR1ZzyAaBvSG3u6OQ2EMQZqdNRRCLdPzf4hfl2NzP4E9iVIKvak7Rg0bDUHFPRC1chslsmA==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/core/-/core-1.0.0.tgz", + "integrity": "sha512-x6No4alyAmPFLoCZ8m0ykxtU627CMqzFpmfh+C61SNHAzQ2QiTckCau2Owsv2yNUmBuZkYozJHOG6o+uKYjdpA==", "license": "MIT", "dependencies": { - "@bitbybit-dev/base": "1.0.0-rc.2", - "@bitbybit-dev/jscad-worker": "1.0.0-rc.2", - "@bitbybit-dev/manifold-worker": "1.0.0-rc.2", - "@bitbybit-dev/occt-worker": "1.0.0-rc.2", + "@bitbybit-dev/base": "1.0.0", + "@bitbybit-dev/jscad-worker": "1.0.0", + "@bitbybit-dev/manifold-worker": "1.0.0", + "@bitbybit-dev/occt-worker": "1.0.0", "jsonpath-plus": "10.3.0", "rxjs": "7.8.2", "verb-nurbs-web": "2.1.3" } }, "node_modules/@bitbybit-dev/jscad": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/jscad/-/jscad-1.0.0-rc.2.tgz", - "integrity": "sha512-xBu5kZ1rRkGmt2vnxpXPOkDKi1G7SS/t3ckgPf5u7qm/UZEFxEXTogqI6KSc+vbktFUeuPVdeiMfqYPi70r8NQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/jscad/-/jscad-1.0.0.tgz", + "integrity": "sha512-LPfl/uf+mygPsGzkvNK7QxwYEfYAYgOEDSPrCxyqf42DgEgx5FOkopUlwacbHPdY/R24tSDx1vFiGI0IvcYqDA==", "license": "MIT", "dependencies": { - "@bitbybit-dev/base": "1.0.0-rc.2", + "@bitbybit-dev/base": "1.0.0", "@jscad/3mf-serializer": "2.1.12", "@jscad/dxf-serializer": "2.1.18", "@jscad/io-utils": "2.0.28", @@ -592,51 +592,51 @@ } }, "node_modules/@bitbybit-dev/jscad-worker": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/jscad-worker/-/jscad-worker-1.0.0-rc.2.tgz", - "integrity": "sha512-ELGobFwgDlx31ZCp4PoRzC9ap15aDqisFeH9HVoJq9w7WM7XwiDiArc+UUg8iH3q3H7SmZd3+U0vUeLGLAO1hA==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/jscad-worker/-/jscad-worker-1.0.0.tgz", + "integrity": "sha512-AeUZwZ4hlH5zQABfvUer0k1lMskSNyDaY0wqXghclPdktgcYGLhvRNdg/tnpA8YwY8HKQuRl37K2WyfUUwU08A==", "license": "MIT", "dependencies": { - "@bitbybit-dev/jscad": "1.0.0-rc.2", + "@bitbybit-dev/jscad": "1.0.0", "rxjs": "7.8.2" } }, "node_modules/@bitbybit-dev/manifold": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/manifold/-/manifold-1.0.0-rc.2.tgz", - "integrity": "sha512-G88cUGijBkWoW/Yotm0JdPVicOGR4vJYaqML53Kaz4vK08ZnvlshjJVEasaxmCRg5KqxLvho4thb+Wj+smFDkQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/manifold/-/manifold-1.0.0.tgz", + "integrity": "sha512-VlDmyq4eennwRnxquc7SwoBOhPob46D0/OppaEc6vJGMFghQFALZwfMZDwY5Xkv7+YbiD5Z0ODT6S0Z+X5xcAA==", "license": "MIT", "dependencies": { - "@bitbybit-dev/base": "1.0.0-rc.2", + "@bitbybit-dev/base": "1.0.0", "manifold-3d": "3.3.2" } }, "node_modules/@bitbybit-dev/manifold-worker": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/manifold-worker/-/manifold-worker-1.0.0-rc.2.tgz", - "integrity": "sha512-sFzSoqCaLy3OKIbJwZJf/ORpn1/z40mAx4x7AopP6szUmNDnE6gTl+I+50GyonJRJV3qsEG7YNFVKAhZUm3y5Q==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/manifold-worker/-/manifold-worker-1.0.0.tgz", + "integrity": "sha512-gWcndSk6GB0/c0G1ESzYOHRN1iWXdswaz10OVmXXxlPD4ScZZSeI7q/nyLfOflRiH0+4HmPIueS5bMqL49vR+Q==", "license": "MIT", "dependencies": { - "@bitbybit-dev/manifold": "1.0.0-rc.2", + "@bitbybit-dev/manifold": "1.0.0", "rxjs": "7.8.2" } }, "node_modules/@bitbybit-dev/occt": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/occt/-/occt-1.0.0-rc.2.tgz", - "integrity": "sha512-S4IQ7EGWc5RPNLTel3pdbY00+yD4BgB1Oj7nA3n7i7bveyOU2gxEXGXzWYJx5nkJ77jFiKxCreYV86FOFytOog==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/occt/-/occt-1.0.0.tgz", + "integrity": "sha512-r66+yt0jFiYhUJcCmxGDZe/SucUklKCPLz8C+8BI9udLDIgEHlzGI8QbMUpG6ZG5hMIsX+FFcEzBS3q7e/hQMw==", "license": "MIT", "dependencies": { - "@bitbybit-dev/base": "1.0.0-rc.2" + "@bitbybit-dev/base": "1.0.0" } }, "node_modules/@bitbybit-dev/occt-worker": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/occt-worker/-/occt-worker-1.0.0-rc.2.tgz", - "integrity": "sha512-v5f6vijvxpm7Mg3XHYsD3kjXy4Akwa5LK9fASQwNIizYSqfK/pfFEplqcmtl+qxJ4ArFNwN+1z2NZB4svbBLmQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/occt-worker/-/occt-worker-1.0.0.tgz", + "integrity": "sha512-k8aP3v/PF6HivkdqKILeAN1Ybj1O/yLx7a25g7rB62yQSm4IT6cUVLE8adG/UO5WFRyesllEpnj6bR1yVAc55Q==", "license": "MIT", "dependencies": { - "@bitbybit-dev/occt": "1.0.0-rc.2", + "@bitbybit-dev/occt": "1.0.0", "rxjs": "7.8.2" } }, @@ -3565,9 +3565,9 @@ "integrity": "sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==" }, "node_modules/babylonjs-gltf2interface": { - "version": "9.5.1", - "resolved": "https://registry.npmjs.org/babylonjs-gltf2interface/-/babylonjs-gltf2interface-9.5.1.tgz", - "integrity": "sha512-S5rcLxIKu4f55beeuvAK01YnWfo8EIIMmJV2RIXQcl3OF2+kNd6jCNv1KfMN0QbrtC921iGNSAJVp3dMAxLKaQ==", + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/babylonjs-gltf2interface/-/babylonjs-gltf2interface-9.6.0.tgz", + "integrity": "sha512-eGj774aq8TEsgcxZQHI39uGoQ83pDGjSpwx1Bf0cgDg6tS+XJJIU0Mt2ABO2Vc0CGxAlv73kVUGaG0gyyCSo4Q==", "license": "Apache-2.0", "peer": true }, @@ -4412,12 +4412,6 @@ } } }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "optional": true - }, "node_modules/deepmerge": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", @@ -4844,12 +4838,6 @@ "node": ">=8.6.0" } }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "optional": true - }, "node_modules/fast-npm-meta": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/fast-npm-meta/-/fast-npm-meta-0.2.2.tgz", @@ -5801,19 +5789,6 @@ "safe-buffer": "~5.1.0" } }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "optional": true, - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, "node_modules/lilconfig": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", @@ -7766,15 +7741,6 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "optional": true, - "engines": { - "node": ">= 0.8.0" - } - }, "node_modules/pretty-bytes": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-6.1.1.tgz", @@ -8807,18 +8773,6 @@ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "license": "0BSD" }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "optional": true, - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, "node_modules/type-fest": { "version": "3.13.1", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.13.1.tgz", @@ -10055,15 +10009,6 @@ "string-width": "^1.0.2 || 2 || 3 || 4" } }, - "node_modules/word-wrap": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", - "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", diff --git a/examples/nuxt/babylonjs/basic/package.json b/examples/nuxt/babylonjs/basic/package.json index b918909a7..12bf9f716 100644 --- a/examples/nuxt/babylonjs/basic/package.json +++ b/examples/nuxt/babylonjs/basic/package.json @@ -11,7 +11,7 @@ "postinstall": "nuxt prepare" }, "dependencies": { - "@bitbybit-dev/babylonjs": "1.0.0-rc.2", + "@bitbybit-dev/babylonjs": "1.0.0", "@pinia/nuxt": "^0.5.4", "nuxt": "^3.13.0", "pinia": "^2.2.2", diff --git a/examples/nuxt/babylonjs/basic/public/robots.txt b/examples/nuxt/babylonjs/basic/public/robots.txt index 8b1378917..1ec9a3bed 100644 --- a/examples/nuxt/babylonjs/basic/public/robots.txt +++ b/examples/nuxt/babylonjs/basic/public/robots.txt @@ -1 +1,5 @@ +User-agent: * +Disallow: / + +# Demo app — not meant for indexing. diff --git a/examples/package-lock.json b/examples/package-lock.json index 9b83986ec..80741d93d 100644 --- a/examples/package-lock.json +++ b/examples/package-lock.json @@ -1,12 +1,12 @@ { "name": "bitbybit-examples", - "version": "1.0.0-rc.2", + "version": "1.0.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "bitbybit-examples", - "version": "1.0.0-rc.2", + "version": "1.0.0", "license": "MIT", "devDependencies": { "shx": "^0.4.0", diff --git a/examples/package.json b/examples/package.json index 05d94f8c8..ef4356220 100644 --- a/examples/package.json +++ b/examples/package.json @@ -1,6 +1,6 @@ { "name": "bitbybit-examples", - "version": "1.0.0-rc.2", + "version": "1.0.0", "description": "Monorepo for browser CAD which holds bitbybit.dev npm packages", "main": "index.js", "scripts": { diff --git a/examples/react/babylonjs/cup/package-lock.json b/examples/react/babylonjs/cup/package-lock.json index 2177190e0..f15621f59 100644 --- a/examples/react/babylonjs/cup/package-lock.json +++ b/examples/react/babylonjs/cup/package-lock.json @@ -8,7 +8,7 @@ "name": "cup", "version": "0.1.0", "dependencies": { - "@bitbybit-dev/babylonjs": "1.0.0-rc.2", + "@bitbybit-dev/babylonjs": "1.0.0", "@emotion/react": "11.9.0", "@emotion/styled": "11.8.1", "@mui/icons-material": "5.6.2", @@ -1812,16 +1812,16 @@ } }, "node_modules/@babylonjs/core": { - "version": "9.5.1", - "resolved": "https://registry.npmjs.org/@babylonjs/core/-/core-9.5.1.tgz", - "integrity": "sha512-T3qzihiGqwKZitQgLxqjLhNDRmaQe/Fp8lxinw1ZMaZeErSdWNDgmHtReuxG1/X2XZ0cbYkJkZF/99flNzlX4Q==", + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/@babylonjs/core/-/core-9.6.0.tgz", + "integrity": "sha512-4WoYkdrStnszS2qKy44sDRQA8ibVlJ9YbbO9mFrOZYAAY0p2VWfQaC/qwwQJ7hrHXpoayltaaXhkK3aNiol5aA==", "license": "Apache-2.0", "peer": true }, "node_modules/@babylonjs/gui": { - "version": "9.5.1", - "resolved": "https://registry.npmjs.org/@babylonjs/gui/-/gui-9.5.1.tgz", - "integrity": "sha512-ygIWyzkjbRWDGXH+ZbmrOGyLcg8dr78do9cFQQ41C+pTZQrVssjk1pNSRyAIIylxs9WKnxjzPJ7ufMnoUiwHaw==", + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/@babylonjs/gui/-/gui-9.6.0.tgz", + "integrity": "sha512-xf47iJfa+IyALzOeFvjPaa9W1DyJwcrut0/0fCYwFL0sOHiuROgzGKIxvl4+c9LwvJa67t+P+cOnC2aSkhSCcg==", "license": "Apache-2.0", "peerDependencies": { "@babylonjs/core": "^9.0.0" @@ -1837,9 +1837,9 @@ } }, "node_modules/@babylonjs/loaders": { - "version": "9.5.1", - "resolved": "https://registry.npmjs.org/@babylonjs/loaders/-/loaders-9.5.1.tgz", - "integrity": "sha512-Si22HIUlWyP5EuzN1MIEOLSY6K07yjEvFeO3GwZA5v+nGzU/MbVCPKtIKasQ72D0WLABfFHEO6cu24XhjkPGHQ==", + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/@babylonjs/loaders/-/loaders-9.6.0.tgz", + "integrity": "sha512-f4JmYlkxwtS5NYHqwjGeX9fI1TjMA8IhMLQwGMt2D7V+AgBlwVPnPzhSCEzOMGD6Qe+1z+97DYtgHhasWRHAHw==", "license": "Apache-2.0", "peerDependencies": { "@babylonjs/core": "^9.0.0", @@ -1847,18 +1847,18 @@ } }, "node_modules/@babylonjs/materials": { - "version": "9.5.1", - "resolved": "https://registry.npmjs.org/@babylonjs/materials/-/materials-9.5.1.tgz", - "integrity": "sha512-jVtuZxKP7PGolJiC3REKEK/1dFz+Qf8y7YWOuQ//GlWYYBCXwz+3C6asCCvmuLOA6aRIRWEm8oElj/8pqE8+PQ==", + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/@babylonjs/materials/-/materials-9.6.0.tgz", + "integrity": "sha512-wm9LRhD6/v/xUNmbOQWosLDzVYxihO5Zsza7WBV8S4PB6lRYsh+tjqA73OKMNIVefM533rphQoSZ3i/mnxw7IA==", "license": "Apache-2.0", "peerDependencies": { "@babylonjs/core": "^9.0.0" } }, "node_modules/@babylonjs/serializers": { - "version": "9.5.1", - "resolved": "https://registry.npmjs.org/@babylonjs/serializers/-/serializers-9.5.1.tgz", - "integrity": "sha512-8XilBJoTDnM26++qqH0Ly9TtODJC6xdlUBU90yXH220VJAchfFl+Dr5DHuxniEzj0hBrYZi1vg7ZUYVUxvUfbQ==", + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/@babylonjs/serializers/-/serializers-9.6.0.tgz", + "integrity": "sha512-GBKlL8zlrEu7w9O2HtJTKem1bF0+lnf5EDuJm/RGgkKYU6cZjEJJw+P2S8UCL90394p6eQtEN1n7eHnvhYslGQ==", "license": "Apache-2.0", "peerDependencies": { "@babylonjs/core": "^9.0.0", @@ -1871,49 +1871,49 @@ "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==" }, "node_modules/@bitbybit-dev/babylonjs": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/babylonjs/-/babylonjs-1.0.0-rc.2.tgz", - "integrity": "sha512-QABFW+BF3zQbZgFJ/IxV75ZWfvQc/scAPugpFTONeoe1gp6yblzTv/hNJ4Q31SrDGFDGT3gbvB1IJ0KqaVEV5g==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/babylonjs/-/babylonjs-1.0.0.tgz", + "integrity": "sha512-VbGijxJQJ410vnhLAXcMEJ0ekq6pECWrxisXKCxG9vfXDjK1sJ5/Hi+Eae7AeuYWuRILYi32mrU3fIMJTNogyw==", "license": "MIT", "dependencies": { - "@babylonjs/core": "9.5.1", - "@babylonjs/gui": "9.5.1", + "@babylonjs/core": "9.6.0", + "@babylonjs/gui": "9.6.0", "@babylonjs/havok": "1.3.12", - "@babylonjs/loaders": "9.5.1", - "@babylonjs/materials": "9.5.1", - "@babylonjs/serializers": "9.5.1", - "@bitbybit-dev/core": "1.0.0-rc.2", + "@babylonjs/loaders": "9.6.0", + "@babylonjs/materials": "9.6.0", + "@babylonjs/serializers": "9.6.0", + "@bitbybit-dev/core": "1.0.0", "earcut": "3.0.2" } }, "node_modules/@bitbybit-dev/base": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/base/-/base-1.0.0-rc.2.tgz", - "integrity": "sha512-pS0VAXUCyJlCzx/ei13QEgI2Pj9cSAMZ7sBLnUl8WYjwV1Y0hc1VMkQXaQQAABXS00/rTEvLqa27g6Dq3UlYKg==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/base/-/base-1.0.0.tgz", + "integrity": "sha512-dZCP1MynP8LSV379BzIoQUTT0x3vkvtdmKagC+giIWBlnVEwhzxnnNnCUWqyoB+GcPEVgmEJ0MEBtCT2JTRNuQ==", "license": "MIT" }, "node_modules/@bitbybit-dev/core": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/core/-/core-1.0.0-rc.2.tgz", - "integrity": "sha512-ieHl4IF4r7YEEZOhR1ZzyAaBvSG3u6OQ2EMQZqdNRRCLdPzf4hfl2NzP4E9iVIKvak7Rg0bDUHFPRC1chslsmA==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/core/-/core-1.0.0.tgz", + "integrity": "sha512-x6No4alyAmPFLoCZ8m0ykxtU627CMqzFpmfh+C61SNHAzQ2QiTckCau2Owsv2yNUmBuZkYozJHOG6o+uKYjdpA==", "license": "MIT", "dependencies": { - "@bitbybit-dev/base": "1.0.0-rc.2", - "@bitbybit-dev/jscad-worker": "1.0.0-rc.2", - "@bitbybit-dev/manifold-worker": "1.0.0-rc.2", - "@bitbybit-dev/occt-worker": "1.0.0-rc.2", + "@bitbybit-dev/base": "1.0.0", + "@bitbybit-dev/jscad-worker": "1.0.0", + "@bitbybit-dev/manifold-worker": "1.0.0", + "@bitbybit-dev/occt-worker": "1.0.0", "jsonpath-plus": "10.3.0", "rxjs": "7.8.2", "verb-nurbs-web": "2.1.3" } }, "node_modules/@bitbybit-dev/jscad": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/jscad/-/jscad-1.0.0-rc.2.tgz", - "integrity": "sha512-xBu5kZ1rRkGmt2vnxpXPOkDKi1G7SS/t3ckgPf5u7qm/UZEFxEXTogqI6KSc+vbktFUeuPVdeiMfqYPi70r8NQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/jscad/-/jscad-1.0.0.tgz", + "integrity": "sha512-LPfl/uf+mygPsGzkvNK7QxwYEfYAYgOEDSPrCxyqf42DgEgx5FOkopUlwacbHPdY/R24tSDx1vFiGI0IvcYqDA==", "license": "MIT", "dependencies": { - "@bitbybit-dev/base": "1.0.0-rc.2", + "@bitbybit-dev/base": "1.0.0", "@jscad/3mf-serializer": "2.1.12", "@jscad/dxf-serializer": "2.1.18", "@jscad/io-utils": "2.0.28", @@ -1922,51 +1922,51 @@ } }, "node_modules/@bitbybit-dev/jscad-worker": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/jscad-worker/-/jscad-worker-1.0.0-rc.2.tgz", - "integrity": "sha512-ELGobFwgDlx31ZCp4PoRzC9ap15aDqisFeH9HVoJq9w7WM7XwiDiArc+UUg8iH3q3H7SmZd3+U0vUeLGLAO1hA==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/jscad-worker/-/jscad-worker-1.0.0.tgz", + "integrity": "sha512-AeUZwZ4hlH5zQABfvUer0k1lMskSNyDaY0wqXghclPdktgcYGLhvRNdg/tnpA8YwY8HKQuRl37K2WyfUUwU08A==", "license": "MIT", "dependencies": { - "@bitbybit-dev/jscad": "1.0.0-rc.2", + "@bitbybit-dev/jscad": "1.0.0", "rxjs": "7.8.2" } }, "node_modules/@bitbybit-dev/manifold": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/manifold/-/manifold-1.0.0-rc.2.tgz", - "integrity": "sha512-G88cUGijBkWoW/Yotm0JdPVicOGR4vJYaqML53Kaz4vK08ZnvlshjJVEasaxmCRg5KqxLvho4thb+Wj+smFDkQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/manifold/-/manifold-1.0.0.tgz", + "integrity": "sha512-VlDmyq4eennwRnxquc7SwoBOhPob46D0/OppaEc6vJGMFghQFALZwfMZDwY5Xkv7+YbiD5Z0ODT6S0Z+X5xcAA==", "license": "MIT", "dependencies": { - "@bitbybit-dev/base": "1.0.0-rc.2", + "@bitbybit-dev/base": "1.0.0", "manifold-3d": "3.3.2" } }, "node_modules/@bitbybit-dev/manifold-worker": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/manifold-worker/-/manifold-worker-1.0.0-rc.2.tgz", - "integrity": "sha512-sFzSoqCaLy3OKIbJwZJf/ORpn1/z40mAx4x7AopP6szUmNDnE6gTl+I+50GyonJRJV3qsEG7YNFVKAhZUm3y5Q==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/manifold-worker/-/manifold-worker-1.0.0.tgz", + "integrity": "sha512-gWcndSk6GB0/c0G1ESzYOHRN1iWXdswaz10OVmXXxlPD4ScZZSeI7q/nyLfOflRiH0+4HmPIueS5bMqL49vR+Q==", "license": "MIT", "dependencies": { - "@bitbybit-dev/manifold": "1.0.0-rc.2", + "@bitbybit-dev/manifold": "1.0.0", "rxjs": "7.8.2" } }, "node_modules/@bitbybit-dev/occt": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/occt/-/occt-1.0.0-rc.2.tgz", - "integrity": "sha512-S4IQ7EGWc5RPNLTel3pdbY00+yD4BgB1Oj7nA3n7i7bveyOU2gxEXGXzWYJx5nkJ77jFiKxCreYV86FOFytOog==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/occt/-/occt-1.0.0.tgz", + "integrity": "sha512-r66+yt0jFiYhUJcCmxGDZe/SucUklKCPLz8C+8BI9udLDIgEHlzGI8QbMUpG6ZG5hMIsX+FFcEzBS3q7e/hQMw==", "license": "MIT", "dependencies": { - "@bitbybit-dev/base": "1.0.0-rc.2" + "@bitbybit-dev/base": "1.0.0" } }, "node_modules/@bitbybit-dev/occt-worker": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/occt-worker/-/occt-worker-1.0.0-rc.2.tgz", - "integrity": "sha512-v5f6vijvxpm7Mg3XHYsD3kjXy4Akwa5LK9fASQwNIizYSqfK/pfFEplqcmtl+qxJ4ArFNwN+1z2NZB4svbBLmQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/occt-worker/-/occt-worker-1.0.0.tgz", + "integrity": "sha512-k8aP3v/PF6HivkdqKILeAN1Ybj1O/yLx7a25g7rB62yQSm4IT6cUVLE8adG/UO5WFRyesllEpnj6bR1yVAc55Q==", "license": "MIT", "dependencies": { - "@bitbybit-dev/occt": "1.0.0-rc.2", + "@bitbybit-dev/occt": "1.0.0", "rxjs": "7.8.2" } }, @@ -6238,9 +6238,9 @@ } }, "node_modules/babylonjs-gltf2interface": { - "version": "9.5.1", - "resolved": "https://registry.npmjs.org/babylonjs-gltf2interface/-/babylonjs-gltf2interface-9.5.1.tgz", - "integrity": "sha512-S5rcLxIKu4f55beeuvAK01YnWfo8EIIMmJV2RIXQcl3OF2+kNd6jCNv1KfMN0QbrtC921iGNSAJVp3dMAxLKaQ==", + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/babylonjs-gltf2interface/-/babylonjs-gltf2interface-9.6.0.tgz", + "integrity": "sha512-eGj774aq8TEsgcxZQHI39uGoQ83pDGjSpwx1Bf0cgDg6tS+XJJIU0Mt2ABO2Vc0CGxAlv73kVUGaG0gyyCSo4Q==", "license": "Apache-2.0", "peer": true }, @@ -19857,15 +19857,15 @@ } }, "@babylonjs/core": { - "version": "9.5.1", - "resolved": "https://registry.npmjs.org/@babylonjs/core/-/core-9.5.1.tgz", - "integrity": "sha512-T3qzihiGqwKZitQgLxqjLhNDRmaQe/Fp8lxinw1ZMaZeErSdWNDgmHtReuxG1/X2XZ0cbYkJkZF/99flNzlX4Q==", + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/@babylonjs/core/-/core-9.6.0.tgz", + "integrity": "sha512-4WoYkdrStnszS2qKy44sDRQA8ibVlJ9YbbO9mFrOZYAAY0p2VWfQaC/qwwQJ7hrHXpoayltaaXhkK3aNiol5aA==", "peer": true }, "@babylonjs/gui": { - "version": "9.5.1", - "resolved": "https://registry.npmjs.org/@babylonjs/gui/-/gui-9.5.1.tgz", - "integrity": "sha512-ygIWyzkjbRWDGXH+ZbmrOGyLcg8dr78do9cFQQ41C+pTZQrVssjk1pNSRyAIIylxs9WKnxjzPJ7ufMnoUiwHaw==", + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/@babylonjs/gui/-/gui-9.6.0.tgz", + "integrity": "sha512-xf47iJfa+IyALzOeFvjPaa9W1DyJwcrut0/0fCYwFL0sOHiuROgzGKIxvl4+c9LwvJa67t+P+cOnC2aSkhSCcg==", "requires": {} }, "@babylonjs/havok": { @@ -19877,21 +19877,21 @@ } }, "@babylonjs/loaders": { - "version": "9.5.1", - "resolved": "https://registry.npmjs.org/@babylonjs/loaders/-/loaders-9.5.1.tgz", - "integrity": "sha512-Si22HIUlWyP5EuzN1MIEOLSY6K07yjEvFeO3GwZA5v+nGzU/MbVCPKtIKasQ72D0WLABfFHEO6cu24XhjkPGHQ==", + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/@babylonjs/loaders/-/loaders-9.6.0.tgz", + "integrity": "sha512-f4JmYlkxwtS5NYHqwjGeX9fI1TjMA8IhMLQwGMt2D7V+AgBlwVPnPzhSCEzOMGD6Qe+1z+97DYtgHhasWRHAHw==", "requires": {} }, "@babylonjs/materials": { - "version": "9.5.1", - "resolved": "https://registry.npmjs.org/@babylonjs/materials/-/materials-9.5.1.tgz", - "integrity": "sha512-jVtuZxKP7PGolJiC3REKEK/1dFz+Qf8y7YWOuQ//GlWYYBCXwz+3C6asCCvmuLOA6aRIRWEm8oElj/8pqE8+PQ==", + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/@babylonjs/materials/-/materials-9.6.0.tgz", + "integrity": "sha512-wm9LRhD6/v/xUNmbOQWosLDzVYxihO5Zsza7WBV8S4PB6lRYsh+tjqA73OKMNIVefM533rphQoSZ3i/mnxw7IA==", "requires": {} }, "@babylonjs/serializers": { - "version": "9.5.1", - "resolved": "https://registry.npmjs.org/@babylonjs/serializers/-/serializers-9.5.1.tgz", - "integrity": "sha512-8XilBJoTDnM26++qqH0Ly9TtODJC6xdlUBU90yXH220VJAchfFl+Dr5DHuxniEzj0hBrYZi1vg7ZUYVUxvUfbQ==", + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/@babylonjs/serializers/-/serializers-9.6.0.tgz", + "integrity": "sha512-GBKlL8zlrEu7w9O2HtJTKem1bF0+lnf5EDuJm/RGgkKYU6cZjEJJw+P2S8UCL90394p6eQtEN1n7eHnvhYslGQ==", "requires": {} }, "@bcoe/v8-coverage": { @@ -19900,45 +19900,45 @@ "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==" }, "@bitbybit-dev/babylonjs": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/babylonjs/-/babylonjs-1.0.0-rc.2.tgz", - "integrity": "sha512-QABFW+BF3zQbZgFJ/IxV75ZWfvQc/scAPugpFTONeoe1gp6yblzTv/hNJ4Q31SrDGFDGT3gbvB1IJ0KqaVEV5g==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/babylonjs/-/babylonjs-1.0.0.tgz", + "integrity": "sha512-VbGijxJQJ410vnhLAXcMEJ0ekq6pECWrxisXKCxG9vfXDjK1sJ5/Hi+Eae7AeuYWuRILYi32mrU3fIMJTNogyw==", "requires": { - "@babylonjs/core": "9.5.1", - "@babylonjs/gui": "9.5.1", + "@babylonjs/core": "9.6.0", + "@babylonjs/gui": "9.6.0", "@babylonjs/havok": "1.3.12", - "@babylonjs/loaders": "9.5.1", - "@babylonjs/materials": "9.5.1", - "@babylonjs/serializers": "9.5.1", - "@bitbybit-dev/core": "1.0.0-rc.2", + "@babylonjs/loaders": "9.6.0", + "@babylonjs/materials": "9.6.0", + "@babylonjs/serializers": "9.6.0", + "@bitbybit-dev/core": "1.0.0", "earcut": "3.0.2" } }, "@bitbybit-dev/base": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/base/-/base-1.0.0-rc.2.tgz", - "integrity": "sha512-pS0VAXUCyJlCzx/ei13QEgI2Pj9cSAMZ7sBLnUl8WYjwV1Y0hc1VMkQXaQQAABXS00/rTEvLqa27g6Dq3UlYKg==" + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/base/-/base-1.0.0.tgz", + "integrity": "sha512-dZCP1MynP8LSV379BzIoQUTT0x3vkvtdmKagC+giIWBlnVEwhzxnnNnCUWqyoB+GcPEVgmEJ0MEBtCT2JTRNuQ==" }, "@bitbybit-dev/core": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/core/-/core-1.0.0-rc.2.tgz", - "integrity": "sha512-ieHl4IF4r7YEEZOhR1ZzyAaBvSG3u6OQ2EMQZqdNRRCLdPzf4hfl2NzP4E9iVIKvak7Rg0bDUHFPRC1chslsmA==", - "requires": { - "@bitbybit-dev/base": "1.0.0-rc.2", - "@bitbybit-dev/jscad-worker": "1.0.0-rc.2", - "@bitbybit-dev/manifold-worker": "1.0.0-rc.2", - "@bitbybit-dev/occt-worker": "1.0.0-rc.2", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/core/-/core-1.0.0.tgz", + "integrity": "sha512-x6No4alyAmPFLoCZ8m0ykxtU627CMqzFpmfh+C61SNHAzQ2QiTckCau2Owsv2yNUmBuZkYozJHOG6o+uKYjdpA==", + "requires": { + "@bitbybit-dev/base": "1.0.0", + "@bitbybit-dev/jscad-worker": "1.0.0", + "@bitbybit-dev/manifold-worker": "1.0.0", + "@bitbybit-dev/occt-worker": "1.0.0", "jsonpath-plus": "10.3.0", "rxjs": "7.8.2", "verb-nurbs-web": "2.1.3" } }, "@bitbybit-dev/jscad": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/jscad/-/jscad-1.0.0-rc.2.tgz", - "integrity": "sha512-xBu5kZ1rRkGmt2vnxpXPOkDKi1G7SS/t3ckgPf5u7qm/UZEFxEXTogqI6KSc+vbktFUeuPVdeiMfqYPi70r8NQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/jscad/-/jscad-1.0.0.tgz", + "integrity": "sha512-LPfl/uf+mygPsGzkvNK7QxwYEfYAYgOEDSPrCxyqf42DgEgx5FOkopUlwacbHPdY/R24tSDx1vFiGI0IvcYqDA==", "requires": { - "@bitbybit-dev/base": "1.0.0-rc.2", + "@bitbybit-dev/base": "1.0.0", "@jscad/3mf-serializer": "2.1.12", "@jscad/dxf-serializer": "2.1.18", "@jscad/io-utils": "2.0.28", @@ -19947,46 +19947,46 @@ } }, "@bitbybit-dev/jscad-worker": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/jscad-worker/-/jscad-worker-1.0.0-rc.2.tgz", - "integrity": "sha512-ELGobFwgDlx31ZCp4PoRzC9ap15aDqisFeH9HVoJq9w7WM7XwiDiArc+UUg8iH3q3H7SmZd3+U0vUeLGLAO1hA==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/jscad-worker/-/jscad-worker-1.0.0.tgz", + "integrity": "sha512-AeUZwZ4hlH5zQABfvUer0k1lMskSNyDaY0wqXghclPdktgcYGLhvRNdg/tnpA8YwY8HKQuRl37K2WyfUUwU08A==", "requires": { - "@bitbybit-dev/jscad": "1.0.0-rc.2", + "@bitbybit-dev/jscad": "1.0.0", "rxjs": "7.8.2" } }, "@bitbybit-dev/manifold": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/manifold/-/manifold-1.0.0-rc.2.tgz", - "integrity": "sha512-G88cUGijBkWoW/Yotm0JdPVicOGR4vJYaqML53Kaz4vK08ZnvlshjJVEasaxmCRg5KqxLvho4thb+Wj+smFDkQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/manifold/-/manifold-1.0.0.tgz", + "integrity": "sha512-VlDmyq4eennwRnxquc7SwoBOhPob46D0/OppaEc6vJGMFghQFALZwfMZDwY5Xkv7+YbiD5Z0ODT6S0Z+X5xcAA==", "requires": { - "@bitbybit-dev/base": "1.0.0-rc.2", + "@bitbybit-dev/base": "1.0.0", "manifold-3d": "3.3.2" } }, "@bitbybit-dev/manifold-worker": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/manifold-worker/-/manifold-worker-1.0.0-rc.2.tgz", - "integrity": "sha512-sFzSoqCaLy3OKIbJwZJf/ORpn1/z40mAx4x7AopP6szUmNDnE6gTl+I+50GyonJRJV3qsEG7YNFVKAhZUm3y5Q==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/manifold-worker/-/manifold-worker-1.0.0.tgz", + "integrity": "sha512-gWcndSk6GB0/c0G1ESzYOHRN1iWXdswaz10OVmXXxlPD4ScZZSeI7q/nyLfOflRiH0+4HmPIueS5bMqL49vR+Q==", "requires": { - "@bitbybit-dev/manifold": "1.0.0-rc.2", + "@bitbybit-dev/manifold": "1.0.0", "rxjs": "7.8.2" } }, "@bitbybit-dev/occt": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/occt/-/occt-1.0.0-rc.2.tgz", - "integrity": "sha512-S4IQ7EGWc5RPNLTel3pdbY00+yD4BgB1Oj7nA3n7i7bveyOU2gxEXGXzWYJx5nkJ77jFiKxCreYV86FOFytOog==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/occt/-/occt-1.0.0.tgz", + "integrity": "sha512-r66+yt0jFiYhUJcCmxGDZe/SucUklKCPLz8C+8BI9udLDIgEHlzGI8QbMUpG6ZG5hMIsX+FFcEzBS3q7e/hQMw==", "requires": { - "@bitbybit-dev/base": "1.0.0-rc.2" + "@bitbybit-dev/base": "1.0.0" } }, "@bitbybit-dev/occt-worker": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/occt-worker/-/occt-worker-1.0.0-rc.2.tgz", - "integrity": "sha512-v5f6vijvxpm7Mg3XHYsD3kjXy4Akwa5LK9fASQwNIizYSqfK/pfFEplqcmtl+qxJ4ArFNwN+1z2NZB4svbBLmQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/occt-worker/-/occt-worker-1.0.0.tgz", + "integrity": "sha512-k8aP3v/PF6HivkdqKILeAN1Ybj1O/yLx7a25g7rB62yQSm4IT6cUVLE8adG/UO5WFRyesllEpnj6bR1yVAc55Q==", "requires": { - "@bitbybit-dev/occt": "1.0.0-rc.2", + "@bitbybit-dev/occt": "1.0.0", "rxjs": "7.8.2" } }, @@ -22853,9 +22853,9 @@ } }, "babylonjs-gltf2interface": { - "version": "9.5.1", - "resolved": "https://registry.npmjs.org/babylonjs-gltf2interface/-/babylonjs-gltf2interface-9.5.1.tgz", - "integrity": "sha512-S5rcLxIKu4f55beeuvAK01YnWfo8EIIMmJV2RIXQcl3OF2+kNd6jCNv1KfMN0QbrtC921iGNSAJVp3dMAxLKaQ==", + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/babylonjs-gltf2interface/-/babylonjs-gltf2interface-9.6.0.tgz", + "integrity": "sha512-eGj774aq8TEsgcxZQHI39uGoQ83pDGjSpwx1Bf0cgDg6tS+XJJIU0Mt2ABO2Vc0CGxAlv73kVUGaG0gyyCSo4Q==", "peer": true }, "balanced-match": { diff --git a/examples/react/babylonjs/cup/package.json b/examples/react/babylonjs/cup/package.json index 7d13d5c15..adabe5bfa 100644 --- a/examples/react/babylonjs/cup/package.json +++ b/examples/react/babylonjs/cup/package.json @@ -4,7 +4,7 @@ "private": true, "homepage": "https://app-store.bitbybit.dev/cup", "dependencies": { - "@bitbybit-dev/babylonjs": "1.0.0-rc.2", + "@bitbybit-dev/babylonjs": "1.0.0", "@emotion/react": "11.9.0", "@emotion/styled": "11.8.1", "web-ifc": "0.0.68", diff --git a/examples/react/babylonjs/cup/public/robots.txt b/examples/react/babylonjs/cup/public/robots.txt index e9e57dc4d..80e6ee17d 100644 --- a/examples/react/babylonjs/cup/public/robots.txt +++ b/examples/react/babylonjs/cup/public/robots.txt @@ -1,3 +1,4 @@ -# https://www.robotstxt.org/robotstxt.html User-agent: * -Disallow: +Disallow: / + +# Demo app embedded in iframes — not meant for indexing. diff --git a/examples/react/babylonjs/iframe-link/public/robots.txt b/examples/react/babylonjs/iframe-link/public/robots.txt index e9e57dc4d..80e6ee17d 100644 --- a/examples/react/babylonjs/iframe-link/public/robots.txt +++ b/examples/react/babylonjs/iframe-link/public/robots.txt @@ -1,3 +1,4 @@ -# https://www.robotstxt.org/robotstxt.html User-agent: * -Disallow: +Disallow: / + +# Demo app embedded in iframes — not meant for indexing. diff --git a/examples/react/babylonjs/laptop-holder/package-lock.json b/examples/react/babylonjs/laptop-holder/package-lock.json index 8a0ed24bd..a59813fe3 100644 --- a/examples/react/babylonjs/laptop-holder/package-lock.json +++ b/examples/react/babylonjs/laptop-holder/package-lock.json @@ -8,7 +8,7 @@ "name": "laptop-holder", "version": "0.1.0", "dependencies": { - "@bitbybit-dev/babylonjs": "1.0.0-rc.2", + "@bitbybit-dev/babylonjs": "1.0.0", "@emotion/react": "11.9.0", "@emotion/styled": "11.8.1", "@mui/icons-material": "5.6.2", @@ -1850,16 +1850,16 @@ } }, "node_modules/@babylonjs/core": { - "version": "9.5.1", - "resolved": "https://registry.npmjs.org/@babylonjs/core/-/core-9.5.1.tgz", - "integrity": "sha512-T3qzihiGqwKZitQgLxqjLhNDRmaQe/Fp8lxinw1ZMaZeErSdWNDgmHtReuxG1/X2XZ0cbYkJkZF/99flNzlX4Q==", + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/@babylonjs/core/-/core-9.6.0.tgz", + "integrity": "sha512-4WoYkdrStnszS2qKy44sDRQA8ibVlJ9YbbO9mFrOZYAAY0p2VWfQaC/qwwQJ7hrHXpoayltaaXhkK3aNiol5aA==", "license": "Apache-2.0", "peer": true }, "node_modules/@babylonjs/gui": { - "version": "9.5.1", - "resolved": "https://registry.npmjs.org/@babylonjs/gui/-/gui-9.5.1.tgz", - "integrity": "sha512-ygIWyzkjbRWDGXH+ZbmrOGyLcg8dr78do9cFQQ41C+pTZQrVssjk1pNSRyAIIylxs9WKnxjzPJ7ufMnoUiwHaw==", + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/@babylonjs/gui/-/gui-9.6.0.tgz", + "integrity": "sha512-xf47iJfa+IyALzOeFvjPaa9W1DyJwcrut0/0fCYwFL0sOHiuROgzGKIxvl4+c9LwvJa67t+P+cOnC2aSkhSCcg==", "license": "Apache-2.0", "peerDependencies": { "@babylonjs/core": "^9.0.0" @@ -1875,9 +1875,9 @@ } }, "node_modules/@babylonjs/loaders": { - "version": "9.5.1", - "resolved": "https://registry.npmjs.org/@babylonjs/loaders/-/loaders-9.5.1.tgz", - "integrity": "sha512-Si22HIUlWyP5EuzN1MIEOLSY6K07yjEvFeO3GwZA5v+nGzU/MbVCPKtIKasQ72D0WLABfFHEO6cu24XhjkPGHQ==", + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/@babylonjs/loaders/-/loaders-9.6.0.tgz", + "integrity": "sha512-f4JmYlkxwtS5NYHqwjGeX9fI1TjMA8IhMLQwGMt2D7V+AgBlwVPnPzhSCEzOMGD6Qe+1z+97DYtgHhasWRHAHw==", "license": "Apache-2.0", "peerDependencies": { "@babylonjs/core": "^9.0.0", @@ -1885,18 +1885,18 @@ } }, "node_modules/@babylonjs/materials": { - "version": "9.5.1", - "resolved": "https://registry.npmjs.org/@babylonjs/materials/-/materials-9.5.1.tgz", - "integrity": "sha512-jVtuZxKP7PGolJiC3REKEK/1dFz+Qf8y7YWOuQ//GlWYYBCXwz+3C6asCCvmuLOA6aRIRWEm8oElj/8pqE8+PQ==", + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/@babylonjs/materials/-/materials-9.6.0.tgz", + "integrity": "sha512-wm9LRhD6/v/xUNmbOQWosLDzVYxihO5Zsza7WBV8S4PB6lRYsh+tjqA73OKMNIVefM533rphQoSZ3i/mnxw7IA==", "license": "Apache-2.0", "peerDependencies": { "@babylonjs/core": "^9.0.0" } }, "node_modules/@babylonjs/serializers": { - "version": "9.5.1", - "resolved": "https://registry.npmjs.org/@babylonjs/serializers/-/serializers-9.5.1.tgz", - "integrity": "sha512-8XilBJoTDnM26++qqH0Ly9TtODJC6xdlUBU90yXH220VJAchfFl+Dr5DHuxniEzj0hBrYZi1vg7ZUYVUxvUfbQ==", + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/@babylonjs/serializers/-/serializers-9.6.0.tgz", + "integrity": "sha512-GBKlL8zlrEu7w9O2HtJTKem1bF0+lnf5EDuJm/RGgkKYU6cZjEJJw+P2S8UCL90394p6eQtEN1n7eHnvhYslGQ==", "license": "Apache-2.0", "peerDependencies": { "@babylonjs/core": "^9.0.0", @@ -1909,49 +1909,49 @@ "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==" }, "node_modules/@bitbybit-dev/babylonjs": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/babylonjs/-/babylonjs-1.0.0-rc.2.tgz", - "integrity": "sha512-QABFW+BF3zQbZgFJ/IxV75ZWfvQc/scAPugpFTONeoe1gp6yblzTv/hNJ4Q31SrDGFDGT3gbvB1IJ0KqaVEV5g==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/babylonjs/-/babylonjs-1.0.0.tgz", + "integrity": "sha512-VbGijxJQJ410vnhLAXcMEJ0ekq6pECWrxisXKCxG9vfXDjK1sJ5/Hi+Eae7AeuYWuRILYi32mrU3fIMJTNogyw==", "license": "MIT", "dependencies": { - "@babylonjs/core": "9.5.1", - "@babylonjs/gui": "9.5.1", + "@babylonjs/core": "9.6.0", + "@babylonjs/gui": "9.6.0", "@babylonjs/havok": "1.3.12", - "@babylonjs/loaders": "9.5.1", - "@babylonjs/materials": "9.5.1", - "@babylonjs/serializers": "9.5.1", - "@bitbybit-dev/core": "1.0.0-rc.2", + "@babylonjs/loaders": "9.6.0", + "@babylonjs/materials": "9.6.0", + "@babylonjs/serializers": "9.6.0", + "@bitbybit-dev/core": "1.0.0", "earcut": "3.0.2" } }, "node_modules/@bitbybit-dev/base": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/base/-/base-1.0.0-rc.2.tgz", - "integrity": "sha512-pS0VAXUCyJlCzx/ei13QEgI2Pj9cSAMZ7sBLnUl8WYjwV1Y0hc1VMkQXaQQAABXS00/rTEvLqa27g6Dq3UlYKg==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/base/-/base-1.0.0.tgz", + "integrity": "sha512-dZCP1MynP8LSV379BzIoQUTT0x3vkvtdmKagC+giIWBlnVEwhzxnnNnCUWqyoB+GcPEVgmEJ0MEBtCT2JTRNuQ==", "license": "MIT" }, "node_modules/@bitbybit-dev/core": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/core/-/core-1.0.0-rc.2.tgz", - "integrity": "sha512-ieHl4IF4r7YEEZOhR1ZzyAaBvSG3u6OQ2EMQZqdNRRCLdPzf4hfl2NzP4E9iVIKvak7Rg0bDUHFPRC1chslsmA==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/core/-/core-1.0.0.tgz", + "integrity": "sha512-x6No4alyAmPFLoCZ8m0ykxtU627CMqzFpmfh+C61SNHAzQ2QiTckCau2Owsv2yNUmBuZkYozJHOG6o+uKYjdpA==", "license": "MIT", "dependencies": { - "@bitbybit-dev/base": "1.0.0-rc.2", - "@bitbybit-dev/jscad-worker": "1.0.0-rc.2", - "@bitbybit-dev/manifold-worker": "1.0.0-rc.2", - "@bitbybit-dev/occt-worker": "1.0.0-rc.2", + "@bitbybit-dev/base": "1.0.0", + "@bitbybit-dev/jscad-worker": "1.0.0", + "@bitbybit-dev/manifold-worker": "1.0.0", + "@bitbybit-dev/occt-worker": "1.0.0", "jsonpath-plus": "10.3.0", "rxjs": "7.8.2", "verb-nurbs-web": "2.1.3" } }, "node_modules/@bitbybit-dev/jscad": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/jscad/-/jscad-1.0.0-rc.2.tgz", - "integrity": "sha512-xBu5kZ1rRkGmt2vnxpXPOkDKi1G7SS/t3ckgPf5u7qm/UZEFxEXTogqI6KSc+vbktFUeuPVdeiMfqYPi70r8NQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/jscad/-/jscad-1.0.0.tgz", + "integrity": "sha512-LPfl/uf+mygPsGzkvNK7QxwYEfYAYgOEDSPrCxyqf42DgEgx5FOkopUlwacbHPdY/R24tSDx1vFiGI0IvcYqDA==", "license": "MIT", "dependencies": { - "@bitbybit-dev/base": "1.0.0-rc.2", + "@bitbybit-dev/base": "1.0.0", "@jscad/3mf-serializer": "2.1.12", "@jscad/dxf-serializer": "2.1.18", "@jscad/io-utils": "2.0.28", @@ -1960,51 +1960,51 @@ } }, "node_modules/@bitbybit-dev/jscad-worker": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/jscad-worker/-/jscad-worker-1.0.0-rc.2.tgz", - "integrity": "sha512-ELGobFwgDlx31ZCp4PoRzC9ap15aDqisFeH9HVoJq9w7WM7XwiDiArc+UUg8iH3q3H7SmZd3+U0vUeLGLAO1hA==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/jscad-worker/-/jscad-worker-1.0.0.tgz", + "integrity": "sha512-AeUZwZ4hlH5zQABfvUer0k1lMskSNyDaY0wqXghclPdktgcYGLhvRNdg/tnpA8YwY8HKQuRl37K2WyfUUwU08A==", "license": "MIT", "dependencies": { - "@bitbybit-dev/jscad": "1.0.0-rc.2", + "@bitbybit-dev/jscad": "1.0.0", "rxjs": "7.8.2" } }, "node_modules/@bitbybit-dev/manifold": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/manifold/-/manifold-1.0.0-rc.2.tgz", - "integrity": "sha512-G88cUGijBkWoW/Yotm0JdPVicOGR4vJYaqML53Kaz4vK08ZnvlshjJVEasaxmCRg5KqxLvho4thb+Wj+smFDkQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/manifold/-/manifold-1.0.0.tgz", + "integrity": "sha512-VlDmyq4eennwRnxquc7SwoBOhPob46D0/OppaEc6vJGMFghQFALZwfMZDwY5Xkv7+YbiD5Z0ODT6S0Z+X5xcAA==", "license": "MIT", "dependencies": { - "@bitbybit-dev/base": "1.0.0-rc.2", + "@bitbybit-dev/base": "1.0.0", "manifold-3d": "3.3.2" } }, "node_modules/@bitbybit-dev/manifold-worker": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/manifold-worker/-/manifold-worker-1.0.0-rc.2.tgz", - "integrity": "sha512-sFzSoqCaLy3OKIbJwZJf/ORpn1/z40mAx4x7AopP6szUmNDnE6gTl+I+50GyonJRJV3qsEG7YNFVKAhZUm3y5Q==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/manifold-worker/-/manifold-worker-1.0.0.tgz", + "integrity": "sha512-gWcndSk6GB0/c0G1ESzYOHRN1iWXdswaz10OVmXXxlPD4ScZZSeI7q/nyLfOflRiH0+4HmPIueS5bMqL49vR+Q==", "license": "MIT", "dependencies": { - "@bitbybit-dev/manifold": "1.0.0-rc.2", + "@bitbybit-dev/manifold": "1.0.0", "rxjs": "7.8.2" } }, "node_modules/@bitbybit-dev/occt": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/occt/-/occt-1.0.0-rc.2.tgz", - "integrity": "sha512-S4IQ7EGWc5RPNLTel3pdbY00+yD4BgB1Oj7nA3n7i7bveyOU2gxEXGXzWYJx5nkJ77jFiKxCreYV86FOFytOog==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/occt/-/occt-1.0.0.tgz", + "integrity": "sha512-r66+yt0jFiYhUJcCmxGDZe/SucUklKCPLz8C+8BI9udLDIgEHlzGI8QbMUpG6ZG5hMIsX+FFcEzBS3q7e/hQMw==", "license": "MIT", "dependencies": { - "@bitbybit-dev/base": "1.0.0-rc.2" + "@bitbybit-dev/base": "1.0.0" } }, "node_modules/@bitbybit-dev/occt-worker": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/occt-worker/-/occt-worker-1.0.0-rc.2.tgz", - "integrity": "sha512-v5f6vijvxpm7Mg3XHYsD3kjXy4Akwa5LK9fASQwNIizYSqfK/pfFEplqcmtl+qxJ4ArFNwN+1z2NZB4svbBLmQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/occt-worker/-/occt-worker-1.0.0.tgz", + "integrity": "sha512-k8aP3v/PF6HivkdqKILeAN1Ybj1O/yLx7a25g7rB62yQSm4IT6cUVLE8adG/UO5WFRyesllEpnj6bR1yVAc55Q==", "license": "MIT", "dependencies": { - "@bitbybit-dev/occt": "1.0.0-rc.2", + "@bitbybit-dev/occt": "1.0.0", "rxjs": "7.8.2" } }, @@ -5947,9 +5947,9 @@ } }, "node_modules/babylonjs-gltf2interface": { - "version": "9.5.1", - "resolved": "https://registry.npmjs.org/babylonjs-gltf2interface/-/babylonjs-gltf2interface-9.5.1.tgz", - "integrity": "sha512-S5rcLxIKu4f55beeuvAK01YnWfo8EIIMmJV2RIXQcl3OF2+kNd6jCNv1KfMN0QbrtC921iGNSAJVp3dMAxLKaQ==", + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/babylonjs-gltf2interface/-/babylonjs-gltf2interface-9.6.0.tgz", + "integrity": "sha512-eGj774aq8TEsgcxZQHI39uGoQ83pDGjSpwx1Bf0cgDg6tS+XJJIU0Mt2ABO2Vc0CGxAlv73kVUGaG0gyyCSo4Q==", "license": "Apache-2.0", "peer": true }, @@ -18934,15 +18934,15 @@ } }, "@babylonjs/core": { - "version": "9.5.1", - "resolved": "https://registry.npmjs.org/@babylonjs/core/-/core-9.5.1.tgz", - "integrity": "sha512-T3qzihiGqwKZitQgLxqjLhNDRmaQe/Fp8lxinw1ZMaZeErSdWNDgmHtReuxG1/X2XZ0cbYkJkZF/99flNzlX4Q==", + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/@babylonjs/core/-/core-9.6.0.tgz", + "integrity": "sha512-4WoYkdrStnszS2qKy44sDRQA8ibVlJ9YbbO9mFrOZYAAY0p2VWfQaC/qwwQJ7hrHXpoayltaaXhkK3aNiol5aA==", "peer": true }, "@babylonjs/gui": { - "version": "9.5.1", - "resolved": "https://registry.npmjs.org/@babylonjs/gui/-/gui-9.5.1.tgz", - "integrity": "sha512-ygIWyzkjbRWDGXH+ZbmrOGyLcg8dr78do9cFQQ41C+pTZQrVssjk1pNSRyAIIylxs9WKnxjzPJ7ufMnoUiwHaw==", + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/@babylonjs/gui/-/gui-9.6.0.tgz", + "integrity": "sha512-xf47iJfa+IyALzOeFvjPaa9W1DyJwcrut0/0fCYwFL0sOHiuROgzGKIxvl4+c9LwvJa67t+P+cOnC2aSkhSCcg==", "requires": {} }, "@babylonjs/havok": { @@ -18954,21 +18954,21 @@ } }, "@babylonjs/loaders": { - "version": "9.5.1", - "resolved": "https://registry.npmjs.org/@babylonjs/loaders/-/loaders-9.5.1.tgz", - "integrity": "sha512-Si22HIUlWyP5EuzN1MIEOLSY6K07yjEvFeO3GwZA5v+nGzU/MbVCPKtIKasQ72D0WLABfFHEO6cu24XhjkPGHQ==", + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/@babylonjs/loaders/-/loaders-9.6.0.tgz", + "integrity": "sha512-f4JmYlkxwtS5NYHqwjGeX9fI1TjMA8IhMLQwGMt2D7V+AgBlwVPnPzhSCEzOMGD6Qe+1z+97DYtgHhasWRHAHw==", "requires": {} }, "@babylonjs/materials": { - "version": "9.5.1", - "resolved": "https://registry.npmjs.org/@babylonjs/materials/-/materials-9.5.1.tgz", - "integrity": "sha512-jVtuZxKP7PGolJiC3REKEK/1dFz+Qf8y7YWOuQ//GlWYYBCXwz+3C6asCCvmuLOA6aRIRWEm8oElj/8pqE8+PQ==", + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/@babylonjs/materials/-/materials-9.6.0.tgz", + "integrity": "sha512-wm9LRhD6/v/xUNmbOQWosLDzVYxihO5Zsza7WBV8S4PB6lRYsh+tjqA73OKMNIVefM533rphQoSZ3i/mnxw7IA==", "requires": {} }, "@babylonjs/serializers": { - "version": "9.5.1", - "resolved": "https://registry.npmjs.org/@babylonjs/serializers/-/serializers-9.5.1.tgz", - "integrity": "sha512-8XilBJoTDnM26++qqH0Ly9TtODJC6xdlUBU90yXH220VJAchfFl+Dr5DHuxniEzj0hBrYZi1vg7ZUYVUxvUfbQ==", + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/@babylonjs/serializers/-/serializers-9.6.0.tgz", + "integrity": "sha512-GBKlL8zlrEu7w9O2HtJTKem1bF0+lnf5EDuJm/RGgkKYU6cZjEJJw+P2S8UCL90394p6eQtEN1n7eHnvhYslGQ==", "requires": {} }, "@bcoe/v8-coverage": { @@ -18977,45 +18977,45 @@ "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==" }, "@bitbybit-dev/babylonjs": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/babylonjs/-/babylonjs-1.0.0-rc.2.tgz", - "integrity": "sha512-QABFW+BF3zQbZgFJ/IxV75ZWfvQc/scAPugpFTONeoe1gp6yblzTv/hNJ4Q31SrDGFDGT3gbvB1IJ0KqaVEV5g==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/babylonjs/-/babylonjs-1.0.0.tgz", + "integrity": "sha512-VbGijxJQJ410vnhLAXcMEJ0ekq6pECWrxisXKCxG9vfXDjK1sJ5/Hi+Eae7AeuYWuRILYi32mrU3fIMJTNogyw==", "requires": { - "@babylonjs/core": "9.5.1", - "@babylonjs/gui": "9.5.1", + "@babylonjs/core": "9.6.0", + "@babylonjs/gui": "9.6.0", "@babylonjs/havok": "1.3.12", - "@babylonjs/loaders": "9.5.1", - "@babylonjs/materials": "9.5.1", - "@babylonjs/serializers": "9.5.1", - "@bitbybit-dev/core": "1.0.0-rc.2", + "@babylonjs/loaders": "9.6.0", + "@babylonjs/materials": "9.6.0", + "@babylonjs/serializers": "9.6.0", + "@bitbybit-dev/core": "1.0.0", "earcut": "3.0.2" } }, "@bitbybit-dev/base": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/base/-/base-1.0.0-rc.2.tgz", - "integrity": "sha512-pS0VAXUCyJlCzx/ei13QEgI2Pj9cSAMZ7sBLnUl8WYjwV1Y0hc1VMkQXaQQAABXS00/rTEvLqa27g6Dq3UlYKg==" + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/base/-/base-1.0.0.tgz", + "integrity": "sha512-dZCP1MynP8LSV379BzIoQUTT0x3vkvtdmKagC+giIWBlnVEwhzxnnNnCUWqyoB+GcPEVgmEJ0MEBtCT2JTRNuQ==" }, "@bitbybit-dev/core": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/core/-/core-1.0.0-rc.2.tgz", - "integrity": "sha512-ieHl4IF4r7YEEZOhR1ZzyAaBvSG3u6OQ2EMQZqdNRRCLdPzf4hfl2NzP4E9iVIKvak7Rg0bDUHFPRC1chslsmA==", - "requires": { - "@bitbybit-dev/base": "1.0.0-rc.2", - "@bitbybit-dev/jscad-worker": "1.0.0-rc.2", - "@bitbybit-dev/manifold-worker": "1.0.0-rc.2", - "@bitbybit-dev/occt-worker": "1.0.0-rc.2", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/core/-/core-1.0.0.tgz", + "integrity": "sha512-x6No4alyAmPFLoCZ8m0ykxtU627CMqzFpmfh+C61SNHAzQ2QiTckCau2Owsv2yNUmBuZkYozJHOG6o+uKYjdpA==", + "requires": { + "@bitbybit-dev/base": "1.0.0", + "@bitbybit-dev/jscad-worker": "1.0.0", + "@bitbybit-dev/manifold-worker": "1.0.0", + "@bitbybit-dev/occt-worker": "1.0.0", "jsonpath-plus": "10.3.0", "rxjs": "7.8.2", "verb-nurbs-web": "2.1.3" } }, "@bitbybit-dev/jscad": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/jscad/-/jscad-1.0.0-rc.2.tgz", - "integrity": "sha512-xBu5kZ1rRkGmt2vnxpXPOkDKi1G7SS/t3ckgPf5u7qm/UZEFxEXTogqI6KSc+vbktFUeuPVdeiMfqYPi70r8NQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/jscad/-/jscad-1.0.0.tgz", + "integrity": "sha512-LPfl/uf+mygPsGzkvNK7QxwYEfYAYgOEDSPrCxyqf42DgEgx5FOkopUlwacbHPdY/R24tSDx1vFiGI0IvcYqDA==", "requires": { - "@bitbybit-dev/base": "1.0.0-rc.2", + "@bitbybit-dev/base": "1.0.0", "@jscad/3mf-serializer": "2.1.12", "@jscad/dxf-serializer": "2.1.18", "@jscad/io-utils": "2.0.28", @@ -19024,46 +19024,46 @@ } }, "@bitbybit-dev/jscad-worker": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/jscad-worker/-/jscad-worker-1.0.0-rc.2.tgz", - "integrity": "sha512-ELGobFwgDlx31ZCp4PoRzC9ap15aDqisFeH9HVoJq9w7WM7XwiDiArc+UUg8iH3q3H7SmZd3+U0vUeLGLAO1hA==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/jscad-worker/-/jscad-worker-1.0.0.tgz", + "integrity": "sha512-AeUZwZ4hlH5zQABfvUer0k1lMskSNyDaY0wqXghclPdktgcYGLhvRNdg/tnpA8YwY8HKQuRl37K2WyfUUwU08A==", "requires": { - "@bitbybit-dev/jscad": "1.0.0-rc.2", + "@bitbybit-dev/jscad": "1.0.0", "rxjs": "7.8.2" } }, "@bitbybit-dev/manifold": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/manifold/-/manifold-1.0.0-rc.2.tgz", - "integrity": "sha512-G88cUGijBkWoW/Yotm0JdPVicOGR4vJYaqML53Kaz4vK08ZnvlshjJVEasaxmCRg5KqxLvho4thb+Wj+smFDkQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/manifold/-/manifold-1.0.0.tgz", + "integrity": "sha512-VlDmyq4eennwRnxquc7SwoBOhPob46D0/OppaEc6vJGMFghQFALZwfMZDwY5Xkv7+YbiD5Z0ODT6S0Z+X5xcAA==", "requires": { - "@bitbybit-dev/base": "1.0.0-rc.2", + "@bitbybit-dev/base": "1.0.0", "manifold-3d": "3.3.2" } }, "@bitbybit-dev/manifold-worker": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/manifold-worker/-/manifold-worker-1.0.0-rc.2.tgz", - "integrity": "sha512-sFzSoqCaLy3OKIbJwZJf/ORpn1/z40mAx4x7AopP6szUmNDnE6gTl+I+50GyonJRJV3qsEG7YNFVKAhZUm3y5Q==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/manifold-worker/-/manifold-worker-1.0.0.tgz", + "integrity": "sha512-gWcndSk6GB0/c0G1ESzYOHRN1iWXdswaz10OVmXXxlPD4ScZZSeI7q/nyLfOflRiH0+4HmPIueS5bMqL49vR+Q==", "requires": { - "@bitbybit-dev/manifold": "1.0.0-rc.2", + "@bitbybit-dev/manifold": "1.0.0", "rxjs": "7.8.2" } }, "@bitbybit-dev/occt": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/occt/-/occt-1.0.0-rc.2.tgz", - "integrity": "sha512-S4IQ7EGWc5RPNLTel3pdbY00+yD4BgB1Oj7nA3n7i7bveyOU2gxEXGXzWYJx5nkJ77jFiKxCreYV86FOFytOog==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/occt/-/occt-1.0.0.tgz", + "integrity": "sha512-r66+yt0jFiYhUJcCmxGDZe/SucUklKCPLz8C+8BI9udLDIgEHlzGI8QbMUpG6ZG5hMIsX+FFcEzBS3q7e/hQMw==", "requires": { - "@bitbybit-dev/base": "1.0.0-rc.2" + "@bitbybit-dev/base": "1.0.0" } }, "@bitbybit-dev/occt-worker": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/occt-worker/-/occt-worker-1.0.0-rc.2.tgz", - "integrity": "sha512-v5f6vijvxpm7Mg3XHYsD3kjXy4Akwa5LK9fASQwNIizYSqfK/pfFEplqcmtl+qxJ4ArFNwN+1z2NZB4svbBLmQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/occt-worker/-/occt-worker-1.0.0.tgz", + "integrity": "sha512-k8aP3v/PF6HivkdqKILeAN1Ybj1O/yLx7a25g7rB62yQSm4IT6cUVLE8adG/UO5WFRyesllEpnj6bR1yVAc55Q==", "requires": { - "@bitbybit-dev/occt": "1.0.0-rc.2", + "@bitbybit-dev/occt": "1.0.0", "rxjs": "7.8.2" } }, @@ -21734,9 +21734,9 @@ } }, "babylonjs-gltf2interface": { - "version": "9.5.1", - "resolved": "https://registry.npmjs.org/babylonjs-gltf2interface/-/babylonjs-gltf2interface-9.5.1.tgz", - "integrity": "sha512-S5rcLxIKu4f55beeuvAK01YnWfo8EIIMmJV2RIXQcl3OF2+kNd6jCNv1KfMN0QbrtC921iGNSAJVp3dMAxLKaQ==", + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/babylonjs-gltf2interface/-/babylonjs-gltf2interface-9.6.0.tgz", + "integrity": "sha512-eGj774aq8TEsgcxZQHI39uGoQ83pDGjSpwx1Bf0cgDg6tS+XJJIU0Mt2ABO2Vc0CGxAlv73kVUGaG0gyyCSo4Q==", "peer": true }, "balanced-match": { diff --git a/examples/react/babylonjs/laptop-holder/package.json b/examples/react/babylonjs/laptop-holder/package.json index 580455abb..3e64f1790 100644 --- a/examples/react/babylonjs/laptop-holder/package.json +++ b/examples/react/babylonjs/laptop-holder/package.json @@ -16,7 +16,7 @@ "react-scripts": "5.0.1", "typescript": "^4.6.2", "web-vitals": "^2.1.4", - "@bitbybit-dev/babylonjs": "1.0.0-rc.2", + "@bitbybit-dev/babylonjs": "1.0.0", "file-loader": "6.2.0", "@mui/icons-material": "5.6.2", "@mui/material": "5.6.4", diff --git a/examples/react/babylonjs/laptop-holder/public/robots.txt b/examples/react/babylonjs/laptop-holder/public/robots.txt index e9e57dc4d..80e6ee17d 100644 --- a/examples/react/babylonjs/laptop-holder/public/robots.txt +++ b/examples/react/babylonjs/laptop-holder/public/robots.txt @@ -1,3 +1,4 @@ -# https://www.robotstxt.org/robotstxt.html User-agent: * -Disallow: +Disallow: / + +# Demo app embedded in iframes — not meant for indexing. diff --git a/examples/react/threejs/vase/package-lock.json b/examples/react/threejs/vase/package-lock.json index cc1036698..18fe61be9 100644 --- a/examples/react/threejs/vase/package-lock.json +++ b/examples/react/threejs/vase/package-lock.json @@ -9,7 +9,7 @@ "version": "0.1.0", "dependencies": { "@babel/plugin-proposal-private-property-in-object": "7.21.11", - "@bitbybit-dev/threejs": "1.0.0-rc.2", + "@bitbybit-dev/threejs": "1.0.0", "@emotion/react": "11.11.0", "@emotion/styled": "11.11.0", "@mui/icons-material": "5.11.16", @@ -1998,33 +1998,33 @@ "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==" }, "node_modules/@bitbybit-dev/base": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/base/-/base-1.0.0-rc.2.tgz", - "integrity": "sha512-pS0VAXUCyJlCzx/ei13QEgI2Pj9cSAMZ7sBLnUl8WYjwV1Y0hc1VMkQXaQQAABXS00/rTEvLqa27g6Dq3UlYKg==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/base/-/base-1.0.0.tgz", + "integrity": "sha512-dZCP1MynP8LSV379BzIoQUTT0x3vkvtdmKagC+giIWBlnVEwhzxnnNnCUWqyoB+GcPEVgmEJ0MEBtCT2JTRNuQ==", "license": "MIT" }, "node_modules/@bitbybit-dev/core": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/core/-/core-1.0.0-rc.2.tgz", - "integrity": "sha512-ieHl4IF4r7YEEZOhR1ZzyAaBvSG3u6OQ2EMQZqdNRRCLdPzf4hfl2NzP4E9iVIKvak7Rg0bDUHFPRC1chslsmA==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/core/-/core-1.0.0.tgz", + "integrity": "sha512-x6No4alyAmPFLoCZ8m0ykxtU627CMqzFpmfh+C61SNHAzQ2QiTckCau2Owsv2yNUmBuZkYozJHOG6o+uKYjdpA==", "license": "MIT", "dependencies": { - "@bitbybit-dev/base": "1.0.0-rc.2", - "@bitbybit-dev/jscad-worker": "1.0.0-rc.2", - "@bitbybit-dev/manifold-worker": "1.0.0-rc.2", - "@bitbybit-dev/occt-worker": "1.0.0-rc.2", + "@bitbybit-dev/base": "1.0.0", + "@bitbybit-dev/jscad-worker": "1.0.0", + "@bitbybit-dev/manifold-worker": "1.0.0", + "@bitbybit-dev/occt-worker": "1.0.0", "jsonpath-plus": "10.3.0", "rxjs": "7.8.2", "verb-nurbs-web": "2.1.3" } }, "node_modules/@bitbybit-dev/jscad": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/jscad/-/jscad-1.0.0-rc.2.tgz", - "integrity": "sha512-xBu5kZ1rRkGmt2vnxpXPOkDKi1G7SS/t3ckgPf5u7qm/UZEFxEXTogqI6KSc+vbktFUeuPVdeiMfqYPi70r8NQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/jscad/-/jscad-1.0.0.tgz", + "integrity": "sha512-LPfl/uf+mygPsGzkvNK7QxwYEfYAYgOEDSPrCxyqf42DgEgx5FOkopUlwacbHPdY/R24tSDx1vFiGI0IvcYqDA==", "license": "MIT", "dependencies": { - "@bitbybit-dev/base": "1.0.0-rc.2", + "@bitbybit-dev/base": "1.0.0", "@jscad/3mf-serializer": "2.1.12", "@jscad/dxf-serializer": "2.1.18", "@jscad/io-utils": "2.0.28", @@ -2033,61 +2033,61 @@ } }, "node_modules/@bitbybit-dev/jscad-worker": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/jscad-worker/-/jscad-worker-1.0.0-rc.2.tgz", - "integrity": "sha512-ELGobFwgDlx31ZCp4PoRzC9ap15aDqisFeH9HVoJq9w7WM7XwiDiArc+UUg8iH3q3H7SmZd3+U0vUeLGLAO1hA==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/jscad-worker/-/jscad-worker-1.0.0.tgz", + "integrity": "sha512-AeUZwZ4hlH5zQABfvUer0k1lMskSNyDaY0wqXghclPdktgcYGLhvRNdg/tnpA8YwY8HKQuRl37K2WyfUUwU08A==", "license": "MIT", "dependencies": { - "@bitbybit-dev/jscad": "1.0.0-rc.2", + "@bitbybit-dev/jscad": "1.0.0", "rxjs": "7.8.2" } }, "node_modules/@bitbybit-dev/manifold": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/manifold/-/manifold-1.0.0-rc.2.tgz", - "integrity": "sha512-G88cUGijBkWoW/Yotm0JdPVicOGR4vJYaqML53Kaz4vK08ZnvlshjJVEasaxmCRg5KqxLvho4thb+Wj+smFDkQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/manifold/-/manifold-1.0.0.tgz", + "integrity": "sha512-VlDmyq4eennwRnxquc7SwoBOhPob46D0/OppaEc6vJGMFghQFALZwfMZDwY5Xkv7+YbiD5Z0ODT6S0Z+X5xcAA==", "license": "MIT", "dependencies": { - "@bitbybit-dev/base": "1.0.0-rc.2", + "@bitbybit-dev/base": "1.0.0", "manifold-3d": "3.3.2" } }, "node_modules/@bitbybit-dev/manifold-worker": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/manifold-worker/-/manifold-worker-1.0.0-rc.2.tgz", - "integrity": "sha512-sFzSoqCaLy3OKIbJwZJf/ORpn1/z40mAx4x7AopP6szUmNDnE6gTl+I+50GyonJRJV3qsEG7YNFVKAhZUm3y5Q==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/manifold-worker/-/manifold-worker-1.0.0.tgz", + "integrity": "sha512-gWcndSk6GB0/c0G1ESzYOHRN1iWXdswaz10OVmXXxlPD4ScZZSeI7q/nyLfOflRiH0+4HmPIueS5bMqL49vR+Q==", "license": "MIT", "dependencies": { - "@bitbybit-dev/manifold": "1.0.0-rc.2", + "@bitbybit-dev/manifold": "1.0.0", "rxjs": "7.8.2" } }, "node_modules/@bitbybit-dev/occt": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/occt/-/occt-1.0.0-rc.2.tgz", - "integrity": "sha512-S4IQ7EGWc5RPNLTel3pdbY00+yD4BgB1Oj7nA3n7i7bveyOU2gxEXGXzWYJx5nkJ77jFiKxCreYV86FOFytOog==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/occt/-/occt-1.0.0.tgz", + "integrity": "sha512-r66+yt0jFiYhUJcCmxGDZe/SucUklKCPLz8C+8BI9udLDIgEHlzGI8QbMUpG6ZG5hMIsX+FFcEzBS3q7e/hQMw==", "license": "MIT", "dependencies": { - "@bitbybit-dev/base": "1.0.0-rc.2" + "@bitbybit-dev/base": "1.0.0" } }, "node_modules/@bitbybit-dev/occt-worker": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/occt-worker/-/occt-worker-1.0.0-rc.2.tgz", - "integrity": "sha512-v5f6vijvxpm7Mg3XHYsD3kjXy4Akwa5LK9fASQwNIizYSqfK/pfFEplqcmtl+qxJ4ArFNwN+1z2NZB4svbBLmQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/occt-worker/-/occt-worker-1.0.0.tgz", + "integrity": "sha512-k8aP3v/PF6HivkdqKILeAN1Ybj1O/yLx7a25g7rB62yQSm4IT6cUVLE8adG/UO5WFRyesllEpnj6bR1yVAc55Q==", "license": "MIT", "dependencies": { - "@bitbybit-dev/occt": "1.0.0-rc.2", + "@bitbybit-dev/occt": "1.0.0", "rxjs": "7.8.2" } }, "node_modules/@bitbybit-dev/threejs": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@bitbybit-dev/threejs/-/threejs-1.0.0-rc.2.tgz", - "integrity": "sha512-SNh95FCQ/wZ78ZWPgnmp8rpdD5Uy8cOgI/u++LkKWXKtTzdyZjIgr1FkSqLS1HL97WkGzu1/b7o4IVab9zrYwQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/threejs/-/threejs-1.0.0.tgz", + "integrity": "sha512-uklU2xtXO9oEFDJldGsdiluTW02K+tWyIMvN2vZTzQwjSs3x1irCb98V4VG0ZAnz1SFudfi3zbzyPbKf0QenWQ==", "license": "MIT", "dependencies": { - "@bitbybit-dev/core": "1.0.0-rc.2", + "@bitbybit-dev/core": "1.0.0", "three": "0.184.0" } }, diff --git a/examples/react/threejs/vase/package.json b/examples/react/threejs/vase/package.json index 41888120f..12b7338cc 100644 --- a/examples/react/threejs/vase/package.json +++ b/examples/react/threejs/vase/package.json @@ -4,7 +4,7 @@ "private": true, "homepage": "https://app-store.bitbybit.dev/bitbybit-threejs", "dependencies": { - "@bitbybit-dev/threejs": "1.0.0-rc.2", + "@bitbybit-dev/threejs": "1.0.0", "@testing-library/jest-dom": "5.16.5", "@testing-library/react": "14.0.0", "@testing-library/user-event": "14.4.3", diff --git a/examples/react/threejs/vase/public/robots.txt b/examples/react/threejs/vase/public/robots.txt index e9e57dc4d..80e6ee17d 100644 --- a/examples/react/threejs/vase/public/robots.txt +++ b/examples/react/threejs/vase/public/robots.txt @@ -1,3 +1,4 @@ -# https://www.robotstxt.org/robotstxt.html User-agent: * -Disallow: +Disallow: / + +# Demo app embedded in iframes — not meant for indexing. diff --git a/examples/runner/babylon/full/inline-include/index.html b/examples/runner/babylon/full/inline-include/index.html index 571d8e3ac..40522b0e6 100644 --- a/examples/runner/babylon/full/inline-include/index.html +++ b/examples/runner/babylon/full/inline-include/index.html @@ -34,7 +34,7 @@ // This function simply outputs the script that was exported from the Rete editor by clicking "Export to Runner" and selecting Minify option. function exportedScript() { - return '{\"type\":\"rete\",\"version\":\"1.0.0-rc.2\",\"script\":\"!async function(e,t,s,n,r){let a={};a={x:[0],y:[0],z:[1],...a};const o=[{result:e.HS.executeBasedOnType(a,!1,(e=>t.vector.vectorXYZ(e))),transformers:[]}];let i={};i={text:[\\"[true,false]\\"],...i};const c=[{result:e.HS.executeBasedOnType(i,!1,(e=>t.json.parse(e))),transformers:[]}];let p={};p={text:[\\"[false,true]\\"],...p};const u=[{result:e.HS.executeBasedOnType(p,!1,(e=>t.json.parse(e))),transformers:[]}],l=[{result:[5],transformers:[]}];let d={};d={x:[1],y:[0],z:[0],...d};const m=[{result:e.HS.executeBasedOnType(d,!1,(e=>t.vector.vectorXYZ(e))),transformers:[]}],y=[{result:[12],transformers:[]}],S=[{result:[7],transformers:[]}];let H={};H={x:[0],y:[1],z:[0],...H};const f=[{result:e.HS.executeBasedOnType(H,!1,(e=>t.vector.vectorXYZ(e))),transformers:[]}];let h={};h={x:[0],y:[0],z:[1],...h};const x=[{result:e.HS.executeBasedOnType(h,!1,(e=>t.vector.vectorXYZ(e))),transformers:[]}];let v={};v={number:[.4],...v};const O=[{result:e.HS.executeBasedOnType(v,!1,(e=>t.math.number(e))),transformers:[]}];let I={};I={x:[0],y:[0],z:[-1],...I};const L=[{result:e.HS.executeBasedOnType(I,!1,(e=>t.vector.vectorXYZ(e))),transformers:[]}];let B={};B={x:[0],y:[0],z:[-2],...B};const w=[{result:e.HS.executeBasedOnType(B,!1,(e=>t.vector.vectorXYZ(e))),transformers:[]}];let T={};T={x:[0],y:[0],z:[1],...T};const g=[{result:e.HS.executeBasedOnType(T,!1,(e=>t.vector.vectorXYZ(e))),transformers:[]}];let A={};A={x:[0],y:[1.5],z:[0],...A};const E=[{result:e.HS.executeBasedOnType(A,!1,(e=>t.vector.vectorXYZ(e))),transformers:[]}];let b={};b={...{faceOpacity:[.5],edgeOpacity:[.5],edgeColour:[\\"#000000\\"],faceColour:[\\"#212121\\"],vertexColour:[\\"#ff00ff\\"],faceMaterial:[void 0],edgeWidth:[2],vertexSize:[.03],drawEdges:[!0],drawFaces:[!0],drawVertices:[!1],precision:[.02],drawEdgeIndexes:[!1],edgeIndexHeight:[.06],edgeIndexColour:[\\"ff00ff\\"],drawFaceIndexes:[!1],faceIndexHeight:[.06],faceIndexColour:[\\"#0000ff\\"]},...b};const z=[{result:e.HS.executeBasedOnType(b,!1,(e=>t.draw.optionsOcctShape(e))),transformers:[]}];let W={};W={name:[\\"Custom Material\\"],baseColor:[\\"#9c9cba\\"],emissiveColor:[\\"#000000\\"],metallic:[.9],roughness:[.1],alpha:[1],backFaceCulling:[!1],zOffset:[2],...W};const C=[{result:e.HS.executeBasedOnType(W,!1,(e=>t.babylon.material.pbrMetallicRoughness.create(e))),transformers:[]}];let P={};P={x:[0],y:[0],z:[-1],...P};const X=[{result:e.HS.executeBasedOnType(P,!1,(e=>t.vector.vectorXYZ(e))),transformers:[]}];let Y={};Y={x:[0],y:[0],z:[-1.5],...Y};const Z=[{result:e.HS.executeBasedOnType(Y,!1,(e=>t.vector.vectorXYZ(e))),transformers:[]}];let N={};N={x:[0],y:[0],z:[1],...N};const k=[{result:e.HS.executeBasedOnType(N,!1,(e=>t.vector.vectorXYZ(e))),transformers:[]}];let M={};M={skybox:[\\"city\\"],size:[1e3],blur:[.4],environmentIntensity:[.4],...M};e.HS.executeBasedOnType(M,!1,(e=>t.babylon.scene.enableSkybox(e)));let F={number:[{result:[20],transformers:[]}]};e.HS.updateListInputs(F),F={number:[20],...F};const D=[{result:e.HS.executeBasedOnType(F,!1,(e=>t.math.number(e))),transformers:[]}];let R={};R.y=y,e.HS.updateListInputs(R),R={x:[0],y:[0],z:[0],...R};const j=[{result:e.HS.executeBasedOnType(R,!1,(e=>t.vector.vectorXYZ(e))),transformers:[]}];let q={};q.item=y,e.HS.updateListInputs(q),q={...q};const V=[{result:q.item}];let G={};G.first=S,e.HS.updateListInputs(G),G={first:[1],second:[-2],operation:[\\"divide\\"],...G};const J=[{result:e.HS.executeBasedOnType(G,!1,(e=>t.math.twoNrOperation(e))),transformers:[]}];let K={};K.first=S,e.HS.updateListInputs(K),K={first:[1],second:[-4],operation:[\\"divide\\"],...K};const Q=[{result:e.HS.executeBasedOnType(K,!1,(e=>t.math.twoNrOperation(e))),transformers:[]}];let U={};U.first=y,U.second=O,e.HS.updateListInputs(U),U={first:[1],second:[.4],operation:[\\"add\\"],...U};const $=[{result:e.HS.executeBasedOnType(U,!1,(e=>t.math.twoNrOperation(e))),transformers:[]}];let _={};_.item=S,e.HS.updateListInputs(_),_={..._};const ee=[{result:_.item}],te={faceOpacity:[1],edgeOpacity:[1],edgeColour:[\\"#1c1c1c\\"],faceColour:[\\"#bdbdbd\\"],vertexColour:[\\"#ff00ff\\"],faceMaterial:[void 0],edgeWidth:[2],vertexSize:[.03],drawEdges:[!0],drawFaces:[!0],drawVertices:[!1],precision:[.01],drawEdgeIndexes:[!1],edgeIndexHeight:[.06],edgeIndexColour:[\\"ff00ff\\"],drawFaceIndexes:[!1],faceIndexHeight:[.06],faceIndexColour:[\\"#0000ff\\"]};let se={};se.faceMaterial=C,e.HS.updateListInputs(se),se={...te,...se};const ne=[{result:e.HS.executeBasedOnType(se,!1,(e=>t.draw.optionsOcctShape(e))),transformers:[]}];let re={};re.center=Z,re.direction=X,e.HS.updateListInputs(re),re={radius:[3],height:[1.9],center:[[0,0,0]],direction:[[0,1,0]],...re};const ae=[{result:await e.HS.executeBasedOnTypeAsync(re,!1,(e=>t.occt.shapes.solid.createCylinder(e))),transformers:[]}];let oe={};oe.y=$,e.HS.updateListInputs(oe),oe={x:[0],y:[12],z:[0],...oe};const ie=[{result:e.HS.executeBasedOnType(oe,!1,(e=>t.vector.vectorXYZ(e))),transformers:[]}];let ce={};ce.first=D,e.HS.updateListInputs(ce),ce={first:[1],second:[3],operation:[\\"multiply\\"],...ce};const pe=[{result:e.HS.executeBasedOnType(ce,!1,(e=>t.math.twoNrOperation(e))),transformers:[]}];let ue={};ue.first=V,ue.second=O,e.HS.updateListInputs(ue),ue={first:[1],second:[.4],operation:[\\"add\\"],...ue};const le=[{result:e.HS.executeBasedOnType(ue,!1,(e=>t.math.twoNrOperation(e))),transformers:[]}];let de={};de.first=V,de.second=O,e.HS.updateListInputs(de),de={first:[1],second:[.4],operation:[\\"subtract\\"],...de};const me=[{result:e.HS.executeBasedOnType(de,!1,(e=>t.math.twoNrOperation(e))),transformers:[]}];let ye={};ye.first=ee,e.HS.updateListInputs(ye),ye={first:[1],second:[-.2],operation:[\\"multiply\\"],...ye};const Se=[{result:e.HS.executeBasedOnType(ye,!1,(e=>t.math.twoNrOperation(e))),transformers:[]}];let He={};He.second=D,e.HS.updateListInputs(He),He={first:[360],second:[1],operation:[\\"divide\\"],...He};const fe=[{result:e.HS.executeBasedOnType(He,!1,(e=>t.math.twoNrOperation(e))),transformers:[]}],he={shape:[void 0],radius:[.3],radiusList:[void 0],indexes:[void 0]};let xe={};xe.shape=ae,e.HS.updateListInputs(xe),xe={...he,...xe};const ve=[{result:await e.HS.executeBasedOnTypeAsync(xe,!1,(e=>t.occt.fillets.filletEdges(e))),transformers:[]}];let Oe={};Oe.start=L,Oe.end=ie,e.HS.updateListInputs(Oe),Oe={start:[[0,0,0]],end:[[0,1,0]],...Oe};const Ie=[{result:await e.HS.executeBasedOnTypeAsync(Oe,!1,(e=>t.occt.shapes.wire.createLineWire(e))),transformers:[]}];let Le={};Le.second=pe,e.HS.updateListInputs(Le),Le={first:[360],second:[1],operation:[\\"divide\\"],...Le};const Be=[{result:e.HS.executeBasedOnType(Le,!1,(e=>t.math.twoNrOperation(e))),transformers:[]}];let we={};we.start=w,we.end=ie,e.HS.updateListInputs(we),we={start:[[0,0,0]],end:[[0,1,0]],...we};const Te=[{result:await e.HS.executeBasedOnTypeAsync(we,!1,(e=>t.occt.shapes.wire.createLineWire(e))),transformers:[]}];let ge={};ge.y=le,e.HS.updateListInputs(ge),ge={x:[0],y:[0],z:[.05],...ge};const Ae=[{result:e.HS.executeBasedOnType(ge,!1,(e=>t.vector.vectorXYZ(e))),transformers:[]}];let Ee={};Ee.y=me,Ee.z=Q,e.HS.updateListInputs(Ee),Ee={x:[0],y:[0],z:[-1],...Ee};const be=[{result:e.HS.executeBasedOnType(Ee,!1,(e=>t.vector.vectorXYZ(e))),transformers:[]}];let ze={};ze.y=me,ze.z=J,e.HS.updateListInputs(ze),ze={x:[0],y:[0],z:[0],...ze};const We=[{result:e.HS.executeBasedOnType(ze,!1,(e=>t.vector.vectorXYZ(e))),transformers:[]}];let Ce={};Ce.z=Se,e.HS.updateListInputs(Ce),Ce={x:[0],y:[0],z:[0],...Ce};const Pe=[{result:e.HS.executeBasedOnType(Ce,!1,(e=>t.vector.vectorXYZ(e))),transformers:[]}];let Xe={};Xe.step=fe,e.HS.updateListInputs(Xe),Xe={step:[.1],min:[0],max:[360],...Xe};const Ye=e.HS.executeBasedOnType(Xe,!1,(e=>t.vector.span(e))),Ze=[];for(let e=0;e<1;e++)Ze.push({type:\\"flat\\"});const Ne=[{result:Ye,transformers:Ze}];let ke={};ke.first=Se,e.HS.updateListInputs(ke),ke={first:[2],second:[-2],operation:[\\"multiply\\"],...ke};e.HS.executeBasedOnType(ke,!1,(e=>t.math.twoNrOperation(e)));let Me={};Me.listElements=ve,e.HS.updateListInputs(Me),Me={...Me};const Fe=[{result:[Me.listElements?Me.listElements:[]]}],De={shape:[void 0],axis:[[0,0,1]],angle:[0]};let Re={};Re.shape=Ie,Re.axis=o,Re.angle=Be,e.HS.updateListInputs(Re),Re={...De,...Re};const je=[{result:await e.HS.executeBasedOnTypeAsync(Re,!1,(e=>t.occt.transforms.rotate(e))),transformers:[]}];let qe={};qe.first=Be,e.HS.updateListInputs(qe),qe={first:[1],second:[.4],operation:[\\"multiply\\"],...qe};const Ve=[{result:e.HS.executeBasedOnType(qe,!1,(e=>t.math.twoNrOperation(e))),transformers:[]}];let Ge={};Ge.first=Be,e.HS.updateListInputs(Ge),Ge={first:[1],second:[.6],operation:[\\"multiply\\"],...Ge};const Je=[{result:e.HS.executeBasedOnType(Ge,!1,(e=>t.math.twoNrOperation(e))),transformers:[]}];let Ke={};Ke.listElements=[Ae[0],j[0],be[0],We[0]],e.HS.updateListInputs(Ke),Ke={...Ke};const Qe=[{result:[Ke.listElements?Ke.listElements:[]]}];let Ue={};Ue.item=Ne,e.HS.updateListInputs(Ue),Ue={...Ue};const $e=[{result:Ue.item}],_e={shape:[void 0],nrOfDivisions:[11],removeStartPoint:[!1],removeEndPoint:[!1]};let et={};et.shape=je,et.nrOfDivisions=l,e.HS.updateListInputs(et),et={..._e,...et};const tt=[{result:await e.HS.executeBasedOnTypeAsync(et,!1,(e=>t.occt.shapes.wire.divideWireByEqualDistanceToPoints(e))),transformers:[]}],st={shape:[void 0],axis:[[0,0,1]],angle:[0]};let nt={};nt.shape=Te,nt.axis=o,nt.angle=[Ve[0],Je[0]],e.HS.updateListInputs(nt),nt={...st,...nt};const rt=[{result:await e.HS.executeBasedOnTypeAsync(nt,!1,(e=>t.occt.transforms.rotate(e))),transformers:[]}];let at={};at.number=Ve,e.HS.updateListInputs(at),at={number:[1],operation:[\\"negate\\"],...at};const ot=[{result:e.HS.executeBasedOnType(at,!1,(e=>t.math.oneNrOperation(e))),transformers:[]}],it={points:[void 0]};let ct={};ct.points=Qe,e.HS.updateListInputs(ct),ct={...it,...ct};const pt=[{result:await e.HS.executeBasedOnTypeAsync(ct,!1,(e=>t.occt.shapes.wire.createPolylineWire(e))),transformers:[]}];e.HS.drawNodeMeshes(pt,t);const ut={list:[void 0],pattern:[[!0,!0,!1]]};let lt={};lt.list=tt,lt.pattern=u,e.HS.updateListInputs(lt),lt={...ut,...lt};const dt=[{result:e.HS.executeBasedOnType(lt,!0,(e=>t.lists.getByPattern(e))),transformers:[]}];let mt={};mt.listElements=rt,e.HS.updateListInputs(mt),mt={...mt};const yt=[{result:[mt.listElements?mt.listElements:[]]}],St={shape:[void 0],origin:[[0,0,0]],direction:[[0,0,1]]};let Ht={};Ht.shape=pt,Ht.origin=We,Ht.direction=f,e.HS.updateListInputs(Ht),Ht={...St,...Ht};const ft=[{result:await e.HS.executeBasedOnTypeAsync(Ht,!1,(e=>t.occt.transforms.mirror(e))),transformers:[]}],ht={shape:[void 0]};let xt={};xt.shape=pt,e.HS.updateListInputs(xt),xt={...ht,...xt};const vt=await e.HS.executeBasedOnTypeAsync(xt,!1,(e=>t.occt.shapes.edge.getCornerPointsOfEdgesForShape(e))),Ot=[];for(let e=0;e<1;e++)Ot.push({type:\\"flat\\"});const It=[{result:vt,transformers:Ot}],Lt={list:[void 0],index:[0],clone:[!0]};let Bt={};Bt.list=yt,e.HS.updateListInputs(Bt),Bt={...Lt,...Bt};const wt=[{result:e.HS.executeBasedOnType(Bt,!1,(e=>t.lists.getItem(e))),transformers:[]}],Tt={shape:[void 0]};let gt={};gt.shape=ft,e.HS.updateListInputs(gt),gt={...Tt,...gt};const At=[{result:await e.HS.executeBasedOnTypeAsync(gt,!1,(e=>t.occt.shapes.edge.getCornerPointsOfEdgesForShape(e))),transformers:[]}],Et={shape:[void 0],nrOfDivisions:[11],removeStartPoint:[!1],removeEndPoint:[!1]};let bt={};bt.shape=wt,bt.nrOfDivisions=l,e.HS.updateListInputs(bt),bt={...Et,...bt};const zt=[{result:await e.HS.executeBasedOnTypeAsync(bt,!1,(e=>t.occt.shapes.wire.divideWireByEqualDistanceToPoints(e))),transformers:[]}],Wt={list:[void 0],index:[3],clone:[!0]};let Ct={};Ct.list=At,e.HS.updateListInputs(Ct),Ct={...Wt,...Ct};const Pt=[{result:e.HS.executeBasedOnType(Ct,!1,(e=>t.lists.removeItemAtIndex(e))),transformers:[]}],Xt={list:[void 0],pattern:[[!0,!0,!1]]};let Yt={};Yt.list=zt,Yt.pattern=c,e.HS.updateListInputs(Yt),Yt={...Xt,...Yt};const Zt=[{result:e.HS.executeBasedOnType(Yt,!1,(e=>t.lists.getByPattern(e))),transformers:[]}],Nt={list:[void 0],clone:[!0]};let kt={};kt.list=Pt,e.HS.updateListInputs(kt),kt={...Nt,...kt};const Mt=e.HS.executeBasedOnType(kt,!1,(e=>t.lists.reverse(e))),Ft=[];for(let e=0;e<1;e++)Ft.push({type:\\"flat\\"});const Dt=[{result:Mt,transformers:Ft}];let Rt={};Rt.listElements=[Zt[0],dt[0]],e.HS.updateListInputs(Rt),Rt={...Rt};const jt=[{result:[Rt.listElements?Rt.listElements:[]]}];let qt={};qt.listElements=[It[0],Dt[0]],e.HS.updateListInputs(qt),qt={...qt};const Vt=[{result:[qt.listElements?qt.listElements:[]]}],Gt={list:[void 0],clone:[!0]};let Jt={};Jt.list=jt,e.HS.updateListInputs(Jt),Jt={...Gt,...Jt};const Kt=e.HS.executeBasedOnType(Jt,!1,(e=>t.lists.flipLists(e))),Qt=[];for(let e=0;e<2;e++)Qt.push({type:\\"flat\\"});const Ut=[{result:Kt,transformers:Qt}],$t={points:[void 0]};let _t={};_t.points=Vt,e.HS.updateListInputs(_t),_t={...$t,..._t};const es=[{result:await e.HS.executeBasedOnTypeAsync(_t,!1,(e=>t.occt.shapes.wire.createPolylineWire(e))),transformers:[]}];let ts={};ts.listElements=Ut,e.HS.updateListInputs(ts),ts={...ts};const ss=[{result:[ts.listElements?ts.listElements:[]]}],ns={shape:[void 0],radius:[.3],radiusList:[void 0],indexes:[void 0]};let rs={};rs.shape=es,e.HS.updateListInputs(rs),rs={...ns,...rs};const as=[{result:await e.HS.executeBasedOnTypeAsync(rs,!1,(e=>t.occt.fillets.fillet2d(e))),transformers:[]}],os={points:[void 0]};let is={};is.points=ss,e.HS.updateListInputs(is),is={...os,...is};const cs=[{result:await e.HS.executeBasedOnTypeAsync(is,!1,(e=>t.occt.shapes.wire.createPolylineWire(e))),transformers:[]}],ps={shape:[void 0],angle:[360],direction:[[0,1,0]],copy:[!1]};let us={};us.shape=as,us.direction=x,e.HS.updateListInputs(us),us={...ps,...us};const ls=[{result:await e.HS.executeBasedOnTypeAsync(us,!1,(e=>t.occt.operations.revolve(e))),transformers:[]}],ds={shape:[void 0]};let ms={};ms.shape=as,e.HS.updateListInputs(ms),ms={...ds,...ms};const ys=[{result:await e.HS.executeBasedOnTypeAsync(ms,!1,(e=>t.occt.shapes.wire.startPointOnWire(e))),transformers:[]}],Ss={shape:[void 0]};let Hs={};Hs.shape=as,e.HS.updateListInputs(Hs),Hs={...Ss,...Hs};const fs=[{result:await e.HS.executeBasedOnTypeAsync(Hs,!1,(e=>t.occt.shapes.wire.endPointOnWire(e))),transformers:[]}],hs={shape:[void 0]};let xs={};xs.shape=as,e.HS.updateListInputs(xs),xs={...hs,...xs};const vs=[{result:await e.HS.executeBasedOnTypeAsync(xs,!1,(e=>t.occt.shapes.wire.closeOpenWire(e))),transformers:[]}],Os={shape:[void 0],angle:[360],direction:[[0,1,0]],copy:[!1]};let Is={};Is.shape=vs,Is.direction=x,e.HS.updateListInputs(Is),Is={...Os,...Is};const Ls=[{result:await e.HS.executeBasedOnTypeAsync(Is,!1,(e=>t.occt.operations.revolve(e))),transformers:[]}],Bs={shape:[void 0],radius:[1],radiusList:[void 0],indexes:[void 0],direction:[[0,1,0]]};let ws={};ws.shape=cs,ws.direction=g,e.HS.updateListInputs(ws),ws={...Bs,...ws};const Ts=[{result:await e.HS.executeBasedOnTypeAsync(ws,!1,(e=>t.occt.fillets.fillet3DWire(e))),transformers:[]}],gs={shape:[void 0],face:[void 0],distance:[-.2],tolerance:[.1]};let As={};As.shape=ls,e.HS.updateListInputs(As),As={...gs,...As};const Es=[{result:await e.HS.executeBasedOnTypeAsync(As,!1,(e=>t.occt.operations.offset(e))),transformers:[]}],bs={shape:[void 0],index:[0]};let zs={};zs.shape=ls,e.HS.updateListInputs(zs),zs={...bs,...zs};const Ws=[{result:await e.HS.executeBasedOnTypeAsync(zs,!1,(e=>t.occt.shapes.wire.getWire(e))),transformers:[]}];let Cs={};Cs.item=ys,e.HS.updateListInputs(Cs),Cs={...Cs};const Ps=[{result:Cs.item}];let Xs={};Xs.item=fs,e.HS.updateListInputs(Xs),Xs={...Xs};const Ys=[{result:Xs.item}];let Zs={};Zs.start=fs,Zs.end=ys,e.HS.updateListInputs(Zs),Zs={start:[[0,0,0]],end:[[0,1,0]],...Zs};const Ns=[{result:await e.HS.executeBasedOnTypeAsync(Zs,!1,(e=>t.occt.shapes.wire.createLineWire(e))),transformers:[]}];e.HS.drawNodeMeshes(Ns,t);const ks={shape:[void 0],angle:[360],direction:[[0,1,0]],copy:[!1]};let Ms={};Ms.shape=Ts,Ms.angle=ot,Ms.direction=o,e.HS.updateListInputs(Ms),Ms={...ks,...Ms};const Fs=[{result:await e.HS.executeBasedOnTypeAsync(Ms,!1,(e=>t.occt.operations.revolve(e))),transformers:[]}],Ds={shape:[void 0]};let Rs={};Rs.shape=Ls,e.HS.updateListInputs(Rs),Rs={...Ds,...Rs};const js=[{result:await e.HS.executeBasedOnTypeAsync(Rs,!1,(e=>t.occt.shapes.solid.fromClosedShell(e))),transformers:[]}],qs={shape:[void 0],index:[1]};let Vs={};Vs.shape=Ws,e.HS.updateListInputs(Vs),Vs={...qs,...Vs};const Gs=[{result:await e.HS.executeBasedOnTypeAsync(Vs,!1,(e=>t.occt.shapes.edge.getEdge(e))),transformers:[]}],Js={shape:[void 0],index:[0]};let Ks={};Ks.shape=Es,e.HS.updateListInputs(Ks),Ks={...Js,...Ks};const Qs=[{result:await e.HS.executeBasedOnTypeAsync(Ks,!1,(e=>t.occt.shapes.wire.getWire(e))),transformers:[]}],Us={shape:[void 0],translation:[[0,0,0]]};let $s={};$s.shape=Ns,$s.translation=E,e.HS.updateListInputs($s),$s={...Us,...$s};const _s=[{result:await e.HS.executeBasedOnTypeAsync($s,!1,(e=>t.occt.transforms.translate(e))),transformers:[]}],en={shape:[void 0],direction:[[0,1,0]]};let tn={};tn.shape=Fs,tn.direction=Pe,e.HS.updateListInputs(tn),tn={...en,...tn};const sn=[{result:await e.HS.executeBasedOnTypeAsync(tn,!1,(e=>t.occt.operations.extrude(e))),transformers:[]}];let nn={};nn.listElements=js,e.HS.updateListInputs(nn),nn={...nn};const rn=[{result:[nn.listElements?nn.listElements:[]]}],an={shape:[void 0],index:[1]};let on={};on.shape=Qs,e.HS.updateListInputs(on),on={...an,...on};const cn=[{result:await e.HS.executeBasedOnTypeAsync(on,!1,(e=>t.occt.shapes.edge.getEdge(e))),transformers:[]}];let pn={};pn.listElements=Gs,e.HS.updateListInputs(pn),pn={...pn};const un=[{result:[pn.listElements?pn.listElements:[]]}],ln={shape:[void 0]};let dn={};dn.shape=_s,e.HS.updateListInputs(dn),dn={...ln,...dn};const mn=[{result:await e.HS.executeBasedOnTypeAsync(dn,!1,(e=>t.occt.shapes.wire.startPointOnWire(e))),transformers:[]}],yn={shape:[void 0]};let Sn={};Sn.shape=_s,e.HS.updateListInputs(Sn),Sn={...yn,...Sn};const Hn=[{result:await e.HS.executeBasedOnTypeAsync(Sn,!1,(e=>t.occt.shapes.wire.endPointOnWire(e))),transformers:[]}],fn={shapes:[void 0]};let hn={};hn.shapes=un,e.HS.updateListInputs(hn),hn={...fn,...hn};const xn=[{result:await e.HS.executeBasedOnTypeAsync(hn,!1,(e=>t.occt.shapes.wire.combineEdgesAndWiresIntoAWire(e))),transformers:[]}];let vn={};vn.listElements=cn,e.HS.updateListInputs(vn),vn={...vn};const On=[{result:[vn.listElements?vn.listElements:[]]}],In={shape:[void 0],shapes:[void 0],keepEdges:[!1]};let Ln={};Ln.shape=sn,Ln.shapes=Fe,e.HS.updateListInputs(Ln),Ln={...In,...Ln};const Bn=[{result:await e.HS.executeBasedOnTypeAsync(Ln,!1,(e=>t.occt.booleans.difference(e))),transformers:[]}];let wn={};wn.item=Hn,e.HS.updateListInputs(wn),wn={...wn};const Tn=[{result:wn.item}];let gn={};gn.item=mn,e.HS.updateListInputs(gn),gn={...gn};const An=[{result:gn.item}],En={shape:[void 0],shapes:[void 0],keepEdges:[!1]};let bn={};bn.shape=Bn,bn.shapes=rn,e.HS.updateListInputs(bn),bn={...En,...bn};const zn=[{result:await e.HS.executeBasedOnTypeAsync(bn,!1,(e=>t.occt.booleans.difference(e))),transformers:[]}],Wn={shapes:[void 0]};let Cn={};Cn.shapes=On,e.HS.updateListInputs(Cn),Cn={...Wn,...Cn};const Pn=[{result:await e.HS.executeBasedOnTypeAsync(Cn,!1,(e=>t.occt.shapes.wire.combineEdgesAndWiresIntoAWire(e))),transformers:[]}];let Xn={};Xn.listElements=[Ps[0],Tn[0],An[0],Ys[0]],e.HS.updateListInputs(Xn),Xn={...Xn};const Yn=[{result:[Xn.listElements?Xn.listElements:[]]}],Zn={shape:[void 0],origin:[[0,0,0]],normal:[[0,0,1]]};let Nn={};Nn.shape=zn,Nn.normal=m,e.HS.updateListInputs(Nn),Nn={...Zn,...Nn};const kn=[{result:await e.HS.executeBasedOnTypeAsync(Nn,!1,(e=>t.occt.transforms.mirrorAlongNormal(e))),transformers:[]}];let Mn={};Mn.listElements=[xn[0],Pn[0]],e.HS.updateListInputs(Mn),Mn={...Mn};const Fn=[{result:[Mn.listElements?Mn.listElements:[]]}],Dn={points:[void 0]};let Rn={};Rn.points=Yn,e.HS.updateListInputs(Rn),Rn={...Dn,...Rn};const jn=[{result:await e.HS.executeBasedOnTypeAsync(Rn,!1,(e=>t.occt.shapes.wire.createPolylineWire(e))),transformers:[]}];let qn={};qn.listElements=[kn[0],zn[0]],e.HS.updateListInputs(qn),qn={...qn};const Vn=[{result:[qn.listElements?qn.listElements:[]]}],Gn={shapes:[void 0],makeSolid:[!1]};let Jn={};Jn.shapes=Fn,e.HS.updateListInputs(Jn),Jn={...Gn,...Jn};const Kn=[{result:await e.HS.executeBasedOnTypeAsync(Jn,!1,(e=>t.occt.operations.loft(e))),transformers:[]}],Qn={shape:[void 0],radius:[.5],radiusList:[void 0],indexes:[void 0]};let Un={};Un.shape=jn,e.HS.updateListInputs(Un),Un={...Qn,...Un};const $n=[{result:await e.HS.executeBasedOnTypeAsync(Un,!1,(e=>t.occt.fillets.fillet2d(e))),transformers:[]}],_n={shapes:[void 0]};let er={};er.shapes=Vn,e.HS.updateListInputs(er),er={..._n,...er};const tr=[{result:await e.HS.executeBasedOnTypeAsync(er,!1,(e=>t.occt.shapes.compound.makeCompound(e))),transformers:[]}],sr={shape:[void 0],origin:[[0,0,0]],direction:[[0,0,1]]};let nr={};nr.shape=Kn,nr.origin=We,nr.direction=f,e.HS.updateListInputs(nr),nr={...sr,...nr};const rr=[{result:await e.HS.executeBasedOnTypeAsync(nr,!1,(e=>t.occt.transforms.mirror(e))),transformers:[]}],ar={shape:[void 0],angle:[360],direction:[[0,1,0]],copy:[!1]};let or={};or.shape=$n,or.direction=x,e.HS.updateListInputs(or),or={...ar,...or};const ir=[{result:await e.HS.executeBasedOnTypeAsync(or,!1,(e=>t.occt.operations.revolve(e))),transformers:[]}];let cr={};cr.listElements=[ls[0],Es[0],Kn[0],rr[0]],e.HS.updateListInputs(cr),cr={...cr};const pr=[{result:[cr.listElements?cr.listElements:[]]}],ur={shape:[void 0],offset:[-.1]};let lr={};lr.shape=ir,e.HS.updateListInputs(lr),lr={...ur,...lr};const dr=[{result:await e.HS.executeBasedOnTypeAsync(lr,!1,(e=>t.occt.operations.makeThickSolidSimple(e))),transformers:[]}],mr={shape:[void 0],angle:[0],center:[[0,0,0]],axis:[[0,0,1]]};let yr={};yr.shape=tr,yr.angle=$e,yr.axis=k,e.HS.updateListInputs(yr),yr={...mr,...yr};const Sr=[{result:await e.HS.executeBasedOnTypeAsync(yr,!1,(e=>t.occt.transforms.rotateAroundCenter(e))),transformers:[]}],Hr={shapes:[void 0],tolerance:[1e-7]};let fr={};fr.shapes=pr,e.HS.updateListInputs(fr),fr={...Hr,...fr};const hr=[{result:await e.HS.executeBasedOnTypeAsync(fr,!1,(e=>t.occt.shapes.shell.sewFaces(e))),transformers:[]}],xr={entity:[void 0],options:[void 0],babylonMesh:[void 0]};let vr={};vr.entity=dr,vr.options=z,e.HS.updateListInputs(vr),vr={...xr,...vr};await e.HS.executeBasedOnTypeAsync(vr,!1,(e=>t.draw.drawAnyAsync(e)));let Or={};Or.listElements=Sr,e.HS.updateListInputs(Or),Or={...Or};const Ir=[{result:[Or.listElements?Or.listElements:[]]}],Lr={shapes:[void 0]};let Br={};Br.shapes=Ir,e.HS.updateListInputs(Br),Br={...Lr,...Br};const wr=[{result:await e.HS.executeBasedOnTypeAsync(Br,!1,(e=>t.occt.shapes.compound.makeCompound(e))),transformers:[]}];let Tr={};Tr.listElements=[hr[0],ve[0],wr[0]],e.HS.updateListInputs(Tr),Tr={...Tr};const gr=[{result:[Tr.listElements?Tr.listElements:[]]}],Ar={shapes:[void 0]};let Er={};Er.shapes=gr,e.HS.updateListInputs(Er),Er={...Ar,...Er};const br=[{result:await e.HS.executeBasedOnTypeAsync(Er,!1,(e=>t.occt.shapes.compound.makeCompound(e))),transformers:[]}],zr={entity:[void 0],options:[void 0],babylonMesh:[void 0]};let Wr={};Wr.entity=br,Wr.options=ne,e.HS.updateListInputs(Wr),Wr={...zr,...Wr};await e.HS.executeBasedOnTypeAsync(Wr,!1,(e=>t.draw.drawAnyAsync(e)))}(BitByBit,bitbybit,bitbybitRunnerResult,bitbybitRunnerInputs,Bit);\"}' + return '{\"type\":\"rete\",\"version\":\"1.0.0\",\"script\":\"!async function(e,t,s,n,r){let a={};a={x:[0],y:[0],z:[1],...a};const o=[{result:e.HS.executeBasedOnType(a,!1,(e=>t.vector.vectorXYZ(e))),transformers:[]}];let i={};i={text:[\\"[true,false]\\"],...i};const c=[{result:e.HS.executeBasedOnType(i,!1,(e=>t.json.parse(e))),transformers:[]}];let p={};p={text:[\\"[false,true]\\"],...p};const u=[{result:e.HS.executeBasedOnType(p,!1,(e=>t.json.parse(e))),transformers:[]}],l=[{result:[5],transformers:[]}];let d={};d={x:[1],y:[0],z:[0],...d};const m=[{result:e.HS.executeBasedOnType(d,!1,(e=>t.vector.vectorXYZ(e))),transformers:[]}],y=[{result:[12],transformers:[]}],S=[{result:[7],transformers:[]}];let H={};H={x:[0],y:[1],z:[0],...H};const f=[{result:e.HS.executeBasedOnType(H,!1,(e=>t.vector.vectorXYZ(e))),transformers:[]}];let h={};h={x:[0],y:[0],z:[1],...h};const x=[{result:e.HS.executeBasedOnType(h,!1,(e=>t.vector.vectorXYZ(e))),transformers:[]}];let v={};v={number:[.4],...v};const O=[{result:e.HS.executeBasedOnType(v,!1,(e=>t.math.number(e))),transformers:[]}];let I={};I={x:[0],y:[0],z:[-1],...I};const L=[{result:e.HS.executeBasedOnType(I,!1,(e=>t.vector.vectorXYZ(e))),transformers:[]}];let B={};B={x:[0],y:[0],z:[-2],...B};const w=[{result:e.HS.executeBasedOnType(B,!1,(e=>t.vector.vectorXYZ(e))),transformers:[]}];let T={};T={x:[0],y:[0],z:[1],...T};const g=[{result:e.HS.executeBasedOnType(T,!1,(e=>t.vector.vectorXYZ(e))),transformers:[]}];let A={};A={x:[0],y:[1.5],z:[0],...A};const E=[{result:e.HS.executeBasedOnType(A,!1,(e=>t.vector.vectorXYZ(e))),transformers:[]}];let b={};b={...{faceOpacity:[.5],edgeOpacity:[.5],edgeColour:[\\"#000000\\"],faceColour:[\\"#212121\\"],vertexColour:[\\"#ff00ff\\"],faceMaterial:[void 0],edgeWidth:[2],vertexSize:[.03],drawEdges:[!0],drawFaces:[!0],drawVertices:[!1],precision:[.02],drawEdgeIndexes:[!1],edgeIndexHeight:[.06],edgeIndexColour:[\\"ff00ff\\"],drawFaceIndexes:[!1],faceIndexHeight:[.06],faceIndexColour:[\\"#0000ff\\"]},...b};const z=[{result:e.HS.executeBasedOnType(b,!1,(e=>t.draw.optionsOcctShape(e))),transformers:[]}];let W={};W={name:[\\"Custom Material\\"],baseColor:[\\"#9c9cba\\"],emissiveColor:[\\"#000000\\"],metallic:[.9],roughness:[.1],alpha:[1],backFaceCulling:[!1],zOffset:[2],...W};const C=[{result:e.HS.executeBasedOnType(W,!1,(e=>t.babylon.material.pbrMetallicRoughness.create(e))),transformers:[]}];let P={};P={x:[0],y:[0],z:[-1],...P};const X=[{result:e.HS.executeBasedOnType(P,!1,(e=>t.vector.vectorXYZ(e))),transformers:[]}];let Y={};Y={x:[0],y:[0],z:[-1.5],...Y};const Z=[{result:e.HS.executeBasedOnType(Y,!1,(e=>t.vector.vectorXYZ(e))),transformers:[]}];let N={};N={x:[0],y:[0],z:[1],...N};const k=[{result:e.HS.executeBasedOnType(N,!1,(e=>t.vector.vectorXYZ(e))),transformers:[]}];let M={};M={skybox:[\\"city\\"],size:[1e3],blur:[.4],environmentIntensity:[.4],...M};e.HS.executeBasedOnType(M,!1,(e=>t.babylon.scene.enableSkybox(e)));let F={number:[{result:[20],transformers:[]}]};e.HS.updateListInputs(F),F={number:[20],...F};const D=[{result:e.HS.executeBasedOnType(F,!1,(e=>t.math.number(e))),transformers:[]}];let R={};R.y=y,e.HS.updateListInputs(R),R={x:[0],y:[0],z:[0],...R};const j=[{result:e.HS.executeBasedOnType(R,!1,(e=>t.vector.vectorXYZ(e))),transformers:[]}];let q={};q.item=y,e.HS.updateListInputs(q),q={...q};const V=[{result:q.item}];let G={};G.first=S,e.HS.updateListInputs(G),G={first:[1],second:[-2],operation:[\\"divide\\"],...G};const J=[{result:e.HS.executeBasedOnType(G,!1,(e=>t.math.twoNrOperation(e))),transformers:[]}];let K={};K.first=S,e.HS.updateListInputs(K),K={first:[1],second:[-4],operation:[\\"divide\\"],...K};const Q=[{result:e.HS.executeBasedOnType(K,!1,(e=>t.math.twoNrOperation(e))),transformers:[]}];let U={};U.first=y,U.second=O,e.HS.updateListInputs(U),U={first:[1],second:[.4],operation:[\\"add\\"],...U};const $=[{result:e.HS.executeBasedOnType(U,!1,(e=>t.math.twoNrOperation(e))),transformers:[]}];let _={};_.item=S,e.HS.updateListInputs(_),_={..._};const ee=[{result:_.item}],te={faceOpacity:[1],edgeOpacity:[1],edgeColour:[\\"#1c1c1c\\"],faceColour:[\\"#bdbdbd\\"],vertexColour:[\\"#ff00ff\\"],faceMaterial:[void 0],edgeWidth:[2],vertexSize:[.03],drawEdges:[!0],drawFaces:[!0],drawVertices:[!1],precision:[.01],drawEdgeIndexes:[!1],edgeIndexHeight:[.06],edgeIndexColour:[\\"ff00ff\\"],drawFaceIndexes:[!1],faceIndexHeight:[.06],faceIndexColour:[\\"#0000ff\\"]};let se={};se.faceMaterial=C,e.HS.updateListInputs(se),se={...te,...se};const ne=[{result:e.HS.executeBasedOnType(se,!1,(e=>t.draw.optionsOcctShape(e))),transformers:[]}];let re={};re.center=Z,re.direction=X,e.HS.updateListInputs(re),re={radius:[3],height:[1.9],center:[[0,0,0]],direction:[[0,1,0]],...re};const ae=[{result:await e.HS.executeBasedOnTypeAsync(re,!1,(e=>t.occt.shapes.solid.createCylinder(e))),transformers:[]}];let oe={};oe.y=$,e.HS.updateListInputs(oe),oe={x:[0],y:[12],z:[0],...oe};const ie=[{result:e.HS.executeBasedOnType(oe,!1,(e=>t.vector.vectorXYZ(e))),transformers:[]}];let ce={};ce.first=D,e.HS.updateListInputs(ce),ce={first:[1],second:[3],operation:[\\"multiply\\"],...ce};const pe=[{result:e.HS.executeBasedOnType(ce,!1,(e=>t.math.twoNrOperation(e))),transformers:[]}];let ue={};ue.first=V,ue.second=O,e.HS.updateListInputs(ue),ue={first:[1],second:[.4],operation:[\\"add\\"],...ue};const le=[{result:e.HS.executeBasedOnType(ue,!1,(e=>t.math.twoNrOperation(e))),transformers:[]}];let de={};de.first=V,de.second=O,e.HS.updateListInputs(de),de={first:[1],second:[.4],operation:[\\"subtract\\"],...de};const me=[{result:e.HS.executeBasedOnType(de,!1,(e=>t.math.twoNrOperation(e))),transformers:[]}];let ye={};ye.first=ee,e.HS.updateListInputs(ye),ye={first:[1],second:[-.2],operation:[\\"multiply\\"],...ye};const Se=[{result:e.HS.executeBasedOnType(ye,!1,(e=>t.math.twoNrOperation(e))),transformers:[]}];let He={};He.second=D,e.HS.updateListInputs(He),He={first:[360],second:[1],operation:[\\"divide\\"],...He};const fe=[{result:e.HS.executeBasedOnType(He,!1,(e=>t.math.twoNrOperation(e))),transformers:[]}],he={shape:[void 0],radius:[.3],radiusList:[void 0],indexes:[void 0]};let xe={};xe.shape=ae,e.HS.updateListInputs(xe),xe={...he,...xe};const ve=[{result:await e.HS.executeBasedOnTypeAsync(xe,!1,(e=>t.occt.fillets.filletEdges(e))),transformers:[]}];let Oe={};Oe.start=L,Oe.end=ie,e.HS.updateListInputs(Oe),Oe={start:[[0,0,0]],end:[[0,1,0]],...Oe};const Ie=[{result:await e.HS.executeBasedOnTypeAsync(Oe,!1,(e=>t.occt.shapes.wire.createLineWire(e))),transformers:[]}];let Le={};Le.second=pe,e.HS.updateListInputs(Le),Le={first:[360],second:[1],operation:[\\"divide\\"],...Le};const Be=[{result:e.HS.executeBasedOnType(Le,!1,(e=>t.math.twoNrOperation(e))),transformers:[]}];let we={};we.start=w,we.end=ie,e.HS.updateListInputs(we),we={start:[[0,0,0]],end:[[0,1,0]],...we};const Te=[{result:await e.HS.executeBasedOnTypeAsync(we,!1,(e=>t.occt.shapes.wire.createLineWire(e))),transformers:[]}];let ge={};ge.y=le,e.HS.updateListInputs(ge),ge={x:[0],y:[0],z:[.05],...ge};const Ae=[{result:e.HS.executeBasedOnType(ge,!1,(e=>t.vector.vectorXYZ(e))),transformers:[]}];let Ee={};Ee.y=me,Ee.z=Q,e.HS.updateListInputs(Ee),Ee={x:[0],y:[0],z:[-1],...Ee};const be=[{result:e.HS.executeBasedOnType(Ee,!1,(e=>t.vector.vectorXYZ(e))),transformers:[]}];let ze={};ze.y=me,ze.z=J,e.HS.updateListInputs(ze),ze={x:[0],y:[0],z:[0],...ze};const We=[{result:e.HS.executeBasedOnType(ze,!1,(e=>t.vector.vectorXYZ(e))),transformers:[]}];let Ce={};Ce.z=Se,e.HS.updateListInputs(Ce),Ce={x:[0],y:[0],z:[0],...Ce};const Pe=[{result:e.HS.executeBasedOnType(Ce,!1,(e=>t.vector.vectorXYZ(e))),transformers:[]}];let Xe={};Xe.step=fe,e.HS.updateListInputs(Xe),Xe={step:[.1],min:[0],max:[360],...Xe};const Ye=e.HS.executeBasedOnType(Xe,!1,(e=>t.vector.span(e))),Ze=[];for(let e=0;e<1;e++)Ze.push({type:\\"flat\\"});const Ne=[{result:Ye,transformers:Ze}];let ke={};ke.first=Se,e.HS.updateListInputs(ke),ke={first:[2],second:[-2],operation:[\\"multiply\\"],...ke};e.HS.executeBasedOnType(ke,!1,(e=>t.math.twoNrOperation(e)));let Me={};Me.listElements=ve,e.HS.updateListInputs(Me),Me={...Me};const Fe=[{result:[Me.listElements?Me.listElements:[]]}],De={shape:[void 0],axis:[[0,0,1]],angle:[0]};let Re={};Re.shape=Ie,Re.axis=o,Re.angle=Be,e.HS.updateListInputs(Re),Re={...De,...Re};const je=[{result:await e.HS.executeBasedOnTypeAsync(Re,!1,(e=>t.occt.transforms.rotate(e))),transformers:[]}];let qe={};qe.first=Be,e.HS.updateListInputs(qe),qe={first:[1],second:[.4],operation:[\\"multiply\\"],...qe};const Ve=[{result:e.HS.executeBasedOnType(qe,!1,(e=>t.math.twoNrOperation(e))),transformers:[]}];let Ge={};Ge.first=Be,e.HS.updateListInputs(Ge),Ge={first:[1],second:[.6],operation:[\\"multiply\\"],...Ge};const Je=[{result:e.HS.executeBasedOnType(Ge,!1,(e=>t.math.twoNrOperation(e))),transformers:[]}];let Ke={};Ke.listElements=[Ae[0],j[0],be[0],We[0]],e.HS.updateListInputs(Ke),Ke={...Ke};const Qe=[{result:[Ke.listElements?Ke.listElements:[]]}];let Ue={};Ue.item=Ne,e.HS.updateListInputs(Ue),Ue={...Ue};const $e=[{result:Ue.item}],_e={shape:[void 0],nrOfDivisions:[11],removeStartPoint:[!1],removeEndPoint:[!1]};let et={};et.shape=je,et.nrOfDivisions=l,e.HS.updateListInputs(et),et={..._e,...et};const tt=[{result:await e.HS.executeBasedOnTypeAsync(et,!1,(e=>t.occt.shapes.wire.divideWireByEqualDistanceToPoints(e))),transformers:[]}],st={shape:[void 0],axis:[[0,0,1]],angle:[0]};let nt={};nt.shape=Te,nt.axis=o,nt.angle=[Ve[0],Je[0]],e.HS.updateListInputs(nt),nt={...st,...nt};const rt=[{result:await e.HS.executeBasedOnTypeAsync(nt,!1,(e=>t.occt.transforms.rotate(e))),transformers:[]}];let at={};at.number=Ve,e.HS.updateListInputs(at),at={number:[1],operation:[\\"negate\\"],...at};const ot=[{result:e.HS.executeBasedOnType(at,!1,(e=>t.math.oneNrOperation(e))),transformers:[]}],it={points:[void 0]};let ct={};ct.points=Qe,e.HS.updateListInputs(ct),ct={...it,...ct};const pt=[{result:await e.HS.executeBasedOnTypeAsync(ct,!1,(e=>t.occt.shapes.wire.createPolylineWire(e))),transformers:[]}];e.HS.drawNodeMeshes(pt,t);const ut={list:[void 0],pattern:[[!0,!0,!1]]};let lt={};lt.list=tt,lt.pattern=u,e.HS.updateListInputs(lt),lt={...ut,...lt};const dt=[{result:e.HS.executeBasedOnType(lt,!0,(e=>t.lists.getByPattern(e))),transformers:[]}];let mt={};mt.listElements=rt,e.HS.updateListInputs(mt),mt={...mt};const yt=[{result:[mt.listElements?mt.listElements:[]]}],St={shape:[void 0],origin:[[0,0,0]],direction:[[0,0,1]]};let Ht={};Ht.shape=pt,Ht.origin=We,Ht.direction=f,e.HS.updateListInputs(Ht),Ht={...St,...Ht};const ft=[{result:await e.HS.executeBasedOnTypeAsync(Ht,!1,(e=>t.occt.transforms.mirror(e))),transformers:[]}],ht={shape:[void 0]};let xt={};xt.shape=pt,e.HS.updateListInputs(xt),xt={...ht,...xt};const vt=await e.HS.executeBasedOnTypeAsync(xt,!1,(e=>t.occt.shapes.edge.getCornerPointsOfEdgesForShape(e))),Ot=[];for(let e=0;e<1;e++)Ot.push({type:\\"flat\\"});const It=[{result:vt,transformers:Ot}],Lt={list:[void 0],index:[0],clone:[!0]};let Bt={};Bt.list=yt,e.HS.updateListInputs(Bt),Bt={...Lt,...Bt};const wt=[{result:e.HS.executeBasedOnType(Bt,!1,(e=>t.lists.getItem(e))),transformers:[]}],Tt={shape:[void 0]};let gt={};gt.shape=ft,e.HS.updateListInputs(gt),gt={...Tt,...gt};const At=[{result:await e.HS.executeBasedOnTypeAsync(gt,!1,(e=>t.occt.shapes.edge.getCornerPointsOfEdgesForShape(e))),transformers:[]}],Et={shape:[void 0],nrOfDivisions:[11],removeStartPoint:[!1],removeEndPoint:[!1]};let bt={};bt.shape=wt,bt.nrOfDivisions=l,e.HS.updateListInputs(bt),bt={...Et,...bt};const zt=[{result:await e.HS.executeBasedOnTypeAsync(bt,!1,(e=>t.occt.shapes.wire.divideWireByEqualDistanceToPoints(e))),transformers:[]}],Wt={list:[void 0],index:[3],clone:[!0]};let Ct={};Ct.list=At,e.HS.updateListInputs(Ct),Ct={...Wt,...Ct};const Pt=[{result:e.HS.executeBasedOnType(Ct,!1,(e=>t.lists.removeItemAtIndex(e))),transformers:[]}],Xt={list:[void 0],pattern:[[!0,!0,!1]]};let Yt={};Yt.list=zt,Yt.pattern=c,e.HS.updateListInputs(Yt),Yt={...Xt,...Yt};const Zt=[{result:e.HS.executeBasedOnType(Yt,!1,(e=>t.lists.getByPattern(e))),transformers:[]}],Nt={list:[void 0],clone:[!0]};let kt={};kt.list=Pt,e.HS.updateListInputs(kt),kt={...Nt,...kt};const Mt=e.HS.executeBasedOnType(kt,!1,(e=>t.lists.reverse(e))),Ft=[];for(let e=0;e<1;e++)Ft.push({type:\\"flat\\"});const Dt=[{result:Mt,transformers:Ft}];let Rt={};Rt.listElements=[Zt[0],dt[0]],e.HS.updateListInputs(Rt),Rt={...Rt};const jt=[{result:[Rt.listElements?Rt.listElements:[]]}];let qt={};qt.listElements=[It[0],Dt[0]],e.HS.updateListInputs(qt),qt={...qt};const Vt=[{result:[qt.listElements?qt.listElements:[]]}],Gt={list:[void 0],clone:[!0]};let Jt={};Jt.list=jt,e.HS.updateListInputs(Jt),Jt={...Gt,...Jt};const Kt=e.HS.executeBasedOnType(Jt,!1,(e=>t.lists.flipLists(e))),Qt=[];for(let e=0;e<2;e++)Qt.push({type:\\"flat\\"});const Ut=[{result:Kt,transformers:Qt}],$t={points:[void 0]};let _t={};_t.points=Vt,e.HS.updateListInputs(_t),_t={...$t,..._t};const es=[{result:await e.HS.executeBasedOnTypeAsync(_t,!1,(e=>t.occt.shapes.wire.createPolylineWire(e))),transformers:[]}];let ts={};ts.listElements=Ut,e.HS.updateListInputs(ts),ts={...ts};const ss=[{result:[ts.listElements?ts.listElements:[]]}],ns={shape:[void 0],radius:[.3],radiusList:[void 0],indexes:[void 0]};let rs={};rs.shape=es,e.HS.updateListInputs(rs),rs={...ns,...rs};const as=[{result:await e.HS.executeBasedOnTypeAsync(rs,!1,(e=>t.occt.fillets.fillet2d(e))),transformers:[]}],os={points:[void 0]};let is={};is.points=ss,e.HS.updateListInputs(is),is={...os,...is};const cs=[{result:await e.HS.executeBasedOnTypeAsync(is,!1,(e=>t.occt.shapes.wire.createPolylineWire(e))),transformers:[]}],ps={shape:[void 0],angle:[360],direction:[[0,1,0]],copy:[!1]};let us={};us.shape=as,us.direction=x,e.HS.updateListInputs(us),us={...ps,...us};const ls=[{result:await e.HS.executeBasedOnTypeAsync(us,!1,(e=>t.occt.operations.revolve(e))),transformers:[]}],ds={shape:[void 0]};let ms={};ms.shape=as,e.HS.updateListInputs(ms),ms={...ds,...ms};const ys=[{result:await e.HS.executeBasedOnTypeAsync(ms,!1,(e=>t.occt.shapes.wire.startPointOnWire(e))),transformers:[]}],Ss={shape:[void 0]};let Hs={};Hs.shape=as,e.HS.updateListInputs(Hs),Hs={...Ss,...Hs};const fs=[{result:await e.HS.executeBasedOnTypeAsync(Hs,!1,(e=>t.occt.shapes.wire.endPointOnWire(e))),transformers:[]}],hs={shape:[void 0]};let xs={};xs.shape=as,e.HS.updateListInputs(xs),xs={...hs,...xs};const vs=[{result:await e.HS.executeBasedOnTypeAsync(xs,!1,(e=>t.occt.shapes.wire.closeOpenWire(e))),transformers:[]}],Os={shape:[void 0],angle:[360],direction:[[0,1,0]],copy:[!1]};let Is={};Is.shape=vs,Is.direction=x,e.HS.updateListInputs(Is),Is={...Os,...Is};const Ls=[{result:await e.HS.executeBasedOnTypeAsync(Is,!1,(e=>t.occt.operations.revolve(e))),transformers:[]}],Bs={shape:[void 0],radius:[1],radiusList:[void 0],indexes:[void 0],direction:[[0,1,0]]};let ws={};ws.shape=cs,ws.direction=g,e.HS.updateListInputs(ws),ws={...Bs,...ws};const Ts=[{result:await e.HS.executeBasedOnTypeAsync(ws,!1,(e=>t.occt.fillets.fillet3DWire(e))),transformers:[]}],gs={shape:[void 0],face:[void 0],distance:[-.2],tolerance:[.1]};let As={};As.shape=ls,e.HS.updateListInputs(As),As={...gs,...As};const Es=[{result:await e.HS.executeBasedOnTypeAsync(As,!1,(e=>t.occt.operations.offset(e))),transformers:[]}],bs={shape:[void 0],index:[0]};let zs={};zs.shape=ls,e.HS.updateListInputs(zs),zs={...bs,...zs};const Ws=[{result:await e.HS.executeBasedOnTypeAsync(zs,!1,(e=>t.occt.shapes.wire.getWire(e))),transformers:[]}];let Cs={};Cs.item=ys,e.HS.updateListInputs(Cs),Cs={...Cs};const Ps=[{result:Cs.item}];let Xs={};Xs.item=fs,e.HS.updateListInputs(Xs),Xs={...Xs};const Ys=[{result:Xs.item}];let Zs={};Zs.start=fs,Zs.end=ys,e.HS.updateListInputs(Zs),Zs={start:[[0,0,0]],end:[[0,1,0]],...Zs};const Ns=[{result:await e.HS.executeBasedOnTypeAsync(Zs,!1,(e=>t.occt.shapes.wire.createLineWire(e))),transformers:[]}];e.HS.drawNodeMeshes(Ns,t);const ks={shape:[void 0],angle:[360],direction:[[0,1,0]],copy:[!1]};let Ms={};Ms.shape=Ts,Ms.angle=ot,Ms.direction=o,e.HS.updateListInputs(Ms),Ms={...ks,...Ms};const Fs=[{result:await e.HS.executeBasedOnTypeAsync(Ms,!1,(e=>t.occt.operations.revolve(e))),transformers:[]}],Ds={shape:[void 0]};let Rs={};Rs.shape=Ls,e.HS.updateListInputs(Rs),Rs={...Ds,...Rs};const js=[{result:await e.HS.executeBasedOnTypeAsync(Rs,!1,(e=>t.occt.shapes.solid.fromClosedShell(e))),transformers:[]}],qs={shape:[void 0],index:[1]};let Vs={};Vs.shape=Ws,e.HS.updateListInputs(Vs),Vs={...qs,...Vs};const Gs=[{result:await e.HS.executeBasedOnTypeAsync(Vs,!1,(e=>t.occt.shapes.edge.getEdge(e))),transformers:[]}],Js={shape:[void 0],index:[0]};let Ks={};Ks.shape=Es,e.HS.updateListInputs(Ks),Ks={...Js,...Ks};const Qs=[{result:await e.HS.executeBasedOnTypeAsync(Ks,!1,(e=>t.occt.shapes.wire.getWire(e))),transformers:[]}],Us={shape:[void 0],translation:[[0,0,0]]};let $s={};$s.shape=Ns,$s.translation=E,e.HS.updateListInputs($s),$s={...Us,...$s};const _s=[{result:await e.HS.executeBasedOnTypeAsync($s,!1,(e=>t.occt.transforms.translate(e))),transformers:[]}],en={shape:[void 0],direction:[[0,1,0]]};let tn={};tn.shape=Fs,tn.direction=Pe,e.HS.updateListInputs(tn),tn={...en,...tn};const sn=[{result:await e.HS.executeBasedOnTypeAsync(tn,!1,(e=>t.occt.operations.extrude(e))),transformers:[]}];let nn={};nn.listElements=js,e.HS.updateListInputs(nn),nn={...nn};const rn=[{result:[nn.listElements?nn.listElements:[]]}],an={shape:[void 0],index:[1]};let on={};on.shape=Qs,e.HS.updateListInputs(on),on={...an,...on};const cn=[{result:await e.HS.executeBasedOnTypeAsync(on,!1,(e=>t.occt.shapes.edge.getEdge(e))),transformers:[]}];let pn={};pn.listElements=Gs,e.HS.updateListInputs(pn),pn={...pn};const un=[{result:[pn.listElements?pn.listElements:[]]}],ln={shape:[void 0]};let dn={};dn.shape=_s,e.HS.updateListInputs(dn),dn={...ln,...dn};const mn=[{result:await e.HS.executeBasedOnTypeAsync(dn,!1,(e=>t.occt.shapes.wire.startPointOnWire(e))),transformers:[]}],yn={shape:[void 0]};let Sn={};Sn.shape=_s,e.HS.updateListInputs(Sn),Sn={...yn,...Sn};const Hn=[{result:await e.HS.executeBasedOnTypeAsync(Sn,!1,(e=>t.occt.shapes.wire.endPointOnWire(e))),transformers:[]}],fn={shapes:[void 0]};let hn={};hn.shapes=un,e.HS.updateListInputs(hn),hn={...fn,...hn};const xn=[{result:await e.HS.executeBasedOnTypeAsync(hn,!1,(e=>t.occt.shapes.wire.combineEdgesAndWiresIntoAWire(e))),transformers:[]}];let vn={};vn.listElements=cn,e.HS.updateListInputs(vn),vn={...vn};const On=[{result:[vn.listElements?vn.listElements:[]]}],In={shape:[void 0],shapes:[void 0],keepEdges:[!1]};let Ln={};Ln.shape=sn,Ln.shapes=Fe,e.HS.updateListInputs(Ln),Ln={...In,...Ln};const Bn=[{result:await e.HS.executeBasedOnTypeAsync(Ln,!1,(e=>t.occt.booleans.difference(e))),transformers:[]}];let wn={};wn.item=Hn,e.HS.updateListInputs(wn),wn={...wn};const Tn=[{result:wn.item}];let gn={};gn.item=mn,e.HS.updateListInputs(gn),gn={...gn};const An=[{result:gn.item}],En={shape:[void 0],shapes:[void 0],keepEdges:[!1]};let bn={};bn.shape=Bn,bn.shapes=rn,e.HS.updateListInputs(bn),bn={...En,...bn};const zn=[{result:await e.HS.executeBasedOnTypeAsync(bn,!1,(e=>t.occt.booleans.difference(e))),transformers:[]}],Wn={shapes:[void 0]};let Cn={};Cn.shapes=On,e.HS.updateListInputs(Cn),Cn={...Wn,...Cn};const Pn=[{result:await e.HS.executeBasedOnTypeAsync(Cn,!1,(e=>t.occt.shapes.wire.combineEdgesAndWiresIntoAWire(e))),transformers:[]}];let Xn={};Xn.listElements=[Ps[0],Tn[0],An[0],Ys[0]],e.HS.updateListInputs(Xn),Xn={...Xn};const Yn=[{result:[Xn.listElements?Xn.listElements:[]]}],Zn={shape:[void 0],origin:[[0,0,0]],normal:[[0,0,1]]};let Nn={};Nn.shape=zn,Nn.normal=m,e.HS.updateListInputs(Nn),Nn={...Zn,...Nn};const kn=[{result:await e.HS.executeBasedOnTypeAsync(Nn,!1,(e=>t.occt.transforms.mirrorAlongNormal(e))),transformers:[]}];let Mn={};Mn.listElements=[xn[0],Pn[0]],e.HS.updateListInputs(Mn),Mn={...Mn};const Fn=[{result:[Mn.listElements?Mn.listElements:[]]}],Dn={points:[void 0]};let Rn={};Rn.points=Yn,e.HS.updateListInputs(Rn),Rn={...Dn,...Rn};const jn=[{result:await e.HS.executeBasedOnTypeAsync(Rn,!1,(e=>t.occt.shapes.wire.createPolylineWire(e))),transformers:[]}];let qn={};qn.listElements=[kn[0],zn[0]],e.HS.updateListInputs(qn),qn={...qn};const Vn=[{result:[qn.listElements?qn.listElements:[]]}],Gn={shapes:[void 0],makeSolid:[!1]};let Jn={};Jn.shapes=Fn,e.HS.updateListInputs(Jn),Jn={...Gn,...Jn};const Kn=[{result:await e.HS.executeBasedOnTypeAsync(Jn,!1,(e=>t.occt.operations.loft(e))),transformers:[]}],Qn={shape:[void 0],radius:[.5],radiusList:[void 0],indexes:[void 0]};let Un={};Un.shape=jn,e.HS.updateListInputs(Un),Un={...Qn,...Un};const $n=[{result:await e.HS.executeBasedOnTypeAsync(Un,!1,(e=>t.occt.fillets.fillet2d(e))),transformers:[]}],_n={shapes:[void 0]};let er={};er.shapes=Vn,e.HS.updateListInputs(er),er={..._n,...er};const tr=[{result:await e.HS.executeBasedOnTypeAsync(er,!1,(e=>t.occt.shapes.compound.makeCompound(e))),transformers:[]}],sr={shape:[void 0],origin:[[0,0,0]],direction:[[0,0,1]]};let nr={};nr.shape=Kn,nr.origin=We,nr.direction=f,e.HS.updateListInputs(nr),nr={...sr,...nr};const rr=[{result:await e.HS.executeBasedOnTypeAsync(nr,!1,(e=>t.occt.transforms.mirror(e))),transformers:[]}],ar={shape:[void 0],angle:[360],direction:[[0,1,0]],copy:[!1]};let or={};or.shape=$n,or.direction=x,e.HS.updateListInputs(or),or={...ar,...or};const ir=[{result:await e.HS.executeBasedOnTypeAsync(or,!1,(e=>t.occt.operations.revolve(e))),transformers:[]}];let cr={};cr.listElements=[ls[0],Es[0],Kn[0],rr[0]],e.HS.updateListInputs(cr),cr={...cr};const pr=[{result:[cr.listElements?cr.listElements:[]]}],ur={shape:[void 0],offset:[-.1]};let lr={};lr.shape=ir,e.HS.updateListInputs(lr),lr={...ur,...lr};const dr=[{result:await e.HS.executeBasedOnTypeAsync(lr,!1,(e=>t.occt.operations.makeThickSolidSimple(e))),transformers:[]}],mr={shape:[void 0],angle:[0],center:[[0,0,0]],axis:[[0,0,1]]};let yr={};yr.shape=tr,yr.angle=$e,yr.axis=k,e.HS.updateListInputs(yr),yr={...mr,...yr};const Sr=[{result:await e.HS.executeBasedOnTypeAsync(yr,!1,(e=>t.occt.transforms.rotateAroundCenter(e))),transformers:[]}],Hr={shapes:[void 0],tolerance:[1e-7]};let fr={};fr.shapes=pr,e.HS.updateListInputs(fr),fr={...Hr,...fr};const hr=[{result:await e.HS.executeBasedOnTypeAsync(fr,!1,(e=>t.occt.shapes.shell.sewFaces(e))),transformers:[]}],xr={entity:[void 0],options:[void 0],babylonMesh:[void 0]};let vr={};vr.entity=dr,vr.options=z,e.HS.updateListInputs(vr),vr={...xr,...vr};await e.HS.executeBasedOnTypeAsync(vr,!1,(e=>t.draw.drawAnyAsync(e)));let Or={};Or.listElements=Sr,e.HS.updateListInputs(Or),Or={...Or};const Ir=[{result:[Or.listElements?Or.listElements:[]]}],Lr={shapes:[void 0]};let Br={};Br.shapes=Ir,e.HS.updateListInputs(Br),Br={...Lr,...Br};const wr=[{result:await e.HS.executeBasedOnTypeAsync(Br,!1,(e=>t.occt.shapes.compound.makeCompound(e))),transformers:[]}];let Tr={};Tr.listElements=[hr[0],ve[0],wr[0]],e.HS.updateListInputs(Tr),Tr={...Tr};const gr=[{result:[Tr.listElements?Tr.listElements:[]]}],Ar={shapes:[void 0]};let Er={};Er.shapes=gr,e.HS.updateListInputs(Er),Er={...Ar,...Er};const br=[{result:await e.HS.executeBasedOnTypeAsync(Er,!1,(e=>t.occt.shapes.compound.makeCompound(e))),transformers:[]}],zr={entity:[void 0],options:[void 0],babylonMesh:[void 0]};let Wr={};Wr.entity=br,Wr.options=ne,e.HS.updateListInputs(Wr),Wr={...zr,...Wr};await e.HS.executeBasedOnTypeAsync(Wr,!1,(e=>t.draw.drawAnyAsync(e)))}(BitByBit,bitbybit,bitbybitRunnerResult,bitbybitRunnerInputs,Bit);\"}' };