@needle-tools/engine 4.4.4-alpha → 4.4.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4,9 +4,12 @@ import { MeshBVH } from 'three-mesh-bvh';
4
4
  import { WorkerBase } from "three-mesh-bvh/src/workers/utils/WorkerBase.js";
5
5
  export class GenerateMeshBVHWorker extends WorkerBase {
6
6
  constructor() {
7
- super(new Worker(new URL("three-mesh-bvh/src/workers/generateMeshBVH.worker.js", import.meta.url), {
8
- type: 'module'
9
- }));
7
+ // Using a bit of an ugly syntax here so that the worker is inlined when bundling needle-engine
8
+ // https://linear.app/needle/issue/NE-6572
9
+ // Also we don't use toplevel imports to not completely fail to load needle-engine where loading the worker fails
10
+ const url = new URL('three-mesh-bvh/src/workers/generateMeshBVH.worker.js', import.meta.url);
11
+ const getWorker = () => new Worker(url, { type: 'module' });
12
+ super(getWorker(url));
10
13
  this.name = 'GenerateMeshBVHWorker';
11
14
  }
12
15
  runTask(worker, geometry, options = {}) {
@@ -1 +1 @@
1
- {"version":3,"file":"GenerateMeshBVHWorker.js","sourceRoot":"","sources":["../../../../../src/engine/physics/workers/mesh-bvh/GenerateMeshBVHWorker.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GenerateMeshBVHWorker.js","sourceRoot":"","sources":["../../../../../src/engine/physics/workers/mesh-bvh/GenerateMeshBVHWorker.js"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@needle-tools/engine",
3
- "version": "4.4.4-alpha",
3
+ "version": "4.4.4",
4
4
  "description": "Needle Engine is a web-based runtime for 3D apps. It runs on your machine for development with great integrations into editors like Unity or Blender - and can be deployed onto any device! It is flexible, extensible and networking and XR are built-in.",
5
5
  "main": "dist/needle-engine.min.js",
6
6
  "exports": {
@@ -194,49 +194,51 @@ export async function getPublicIdentifier(project_id, opts = undefined) {
194
194
  accessToken = process.env.NEEDLE_CLOUD_TOKEN;
195
195
  }
196
196
 
197
- const url = new URL(`${needleCloudApiEndpoint}/v1/account/public_key`);
198
- const body = {
199
- project_id: project_id || process.env.GITHUB_REPOSITORY || undefined,
200
- machine_id: process.env.GITHUB_REPOSITORY_ID || "unknown",
201
- }
202
- const timeout = AbortSignal.timeout(10_000);
203
- const res = await fetch(url, {
204
- method: "POST",
205
- signal: timeout,
206
- headers: {
207
- Authorization: `Bearer ${accessToken}`,
208
- "Content-Type": "application/json",
209
- "x-needle": "cli"
210
- },
211
- body: JSON.stringify(body),
212
- }).catch(err => {
213
- if (opts?.loglevel === "verbose") {
214
- console.error(err);
197
+ if (accessToken) {
198
+ const url = new URL(`${needleCloudApiEndpoint}/v1/account/public_key`);
199
+ const body = {
200
+ project_id: project_id || process.env.GITHUB_REPOSITORY || undefined,
201
+ machine_id: process.env.GITHUB_REPOSITORY_ID || "unknown",
215
202
  }
216
- return { ok: false, error: err.message };
217
- });
218
- if ("error" in res) {
219
- console.error(`[needle-identifier] Could not fetch project identifier from Needle Cloud API (${res.error})`);
220
- return null;
221
- }
222
- if (res.ok) {
223
- const text = await res.text();
224
- try {
225
- /** @type {{public_key:string}} */
226
- const json = JSON.parse(text);
227
- console.log(`[needle-identifier] INFO: Successfully received public project identifier`);
228
- return json.public_key;
203
+ const timeout = AbortSignal.timeout(10_000);
204
+ const res = await fetch(url, {
205
+ method: "POST",
206
+ signal: timeout,
207
+ headers: {
208
+ Authorization: `Bearer ${accessToken}`,
209
+ "Content-Type": "application/json",
210
+ "x-needle": "cli"
211
+ },
212
+ body: JSON.stringify(body),
213
+ }).catch(err => {
214
+ if (opts?.loglevel === "verbose") {
215
+ console.error(err);
216
+ }
217
+ return { ok: false, error: err.message };
218
+ });
219
+ if ("error" in res) {
220
+ console.error(`[needle-identifier] Could not fetch project identifier from Needle Cloud API (${res.error})`);
221
+ return null;
222
+ }
223
+ if (res.ok) {
224
+ const text = await res.text();
225
+ try {
226
+ /** @type {{public_key:string}} */
227
+ const json = JSON.parse(text);
228
+ console.log(`[needle-identifier] INFO: Successfully received public project identifier`);
229
+ return json.public_key;
230
+ }
231
+ catch (err) {
232
+ console.error("[needle-identifier] ERROR: Failed to parse project identifier response");
233
+ return null;
234
+ }
229
235
  }
230
- catch (err) {
231
- console.error("[needle-identifier] ERROR: Failed to parse project identifier response");
236
+ else {
237
+ const message = await res.text();
238
+ console.error(`[needle-identifier] Could not fetch project identifier from Needle Cloud API (${res.status}, ${res.statusText}, ${message})`);
232
239
  return null;
233
240
  }
234
241
  }
235
- else {
236
- const message = await res.text();
237
- console.error(`[needle-identifier] Could not fetch project identifier from Needle Cloud API (${res.status}, ${res.statusText}, ${message})`);
238
- return null;
239
- }
240
242
  }
241
243
  else if (!canRunCLI(opts)) {
242
244
  console.error("[needle-license] License server CLI is not available. Please use an access token for authorization.");
@@ -7,9 +7,12 @@ import { WorkerBase } from "three-mesh-bvh/src/workers/utils/WorkerBase.js";
7
7
  export class GenerateMeshBVHWorker extends WorkerBase {
8
8
 
9
9
  constructor() {
10
- super(new Worker(new URL("three-mesh-bvh/src/workers/generateMeshBVH.worker.js", import.meta.url), {
11
- type: 'module'
12
- }));
10
+ // Using a bit of an ugly syntax here so that the worker is inlined when bundling needle-engine
11
+ // https://linear.app/needle/issue/NE-6572
12
+ // Also we don't use toplevel imports to not completely fail to load needle-engine where loading the worker fails
13
+ const url = new URL('three-mesh-bvh/src/workers/generateMeshBVH.worker.js', import.meta.url)
14
+ const getWorker = () => new Worker(url, { type: 'module' })
15
+ super(getWorker(url))
13
16
  this.name = 'GenerateMeshBVHWorker';
14
17
 
15
18
  }