@needle-tools/engine 4.16.1 → 4.16.3

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.
Files changed (100) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/components.needle.json +1 -1
  3. package/dist/{needle-engine.bundle-CKIxz09L.js → needle-engine.bundle-BE9apg0j.js} +5358 -5343
  4. package/dist/{needle-engine.bundle-DSHShuiJ.umd.cjs → needle-engine.bundle-CYtylxkF.umd.cjs} +131 -131
  5. package/dist/{needle-engine.bundle-C3aSGlMn.min.js → needle-engine.bundle-eJXdUwvK.min.js} +132 -132
  6. package/dist/needle-engine.d.ts +31 -9
  7. package/dist/needle-engine.js +2 -2
  8. package/dist/needle-engine.min.js +1 -1
  9. package/dist/needle-engine.umd.cjs +1 -1
  10. package/lib/engine-components/EventType.d.ts +1 -13
  11. package/lib/engine-components/EventType.js +13 -12
  12. package/lib/engine-components/EventType.js.map +1 -1
  13. package/lib/engine-components/ReflectionProbe.d.ts +31 -8
  14. package/lib/engine-components/ReflectionProbe.js +57 -15
  15. package/lib/engine-components/ReflectionProbe.js.map +1 -1
  16. package/lib/engine-components/VideoPlayer.d.ts +1 -1
  17. package/lib/engine-components/VideoPlayer.js +1 -1
  18. package/lib/engine-components/VideoPlayer.js.map +1 -1
  19. package/package.json +15 -6
  20. package/plugins/next/next.d.ts +8 -0
  21. package/plugins/next/next.js +7 -6
  22. package/plugins/types/userconfig.d.ts +4 -6
  23. package/plugins/vite/ai.d.ts +17 -0
  24. package/plugins/vite/ai.js +2 -2
  25. package/plugins/vite/alias.d.ts +8 -0
  26. package/plugins/vite/alias.js +5 -2
  27. package/plugins/vite/asap.d.ts +7 -0
  28. package/plugins/vite/asap.js +3 -3
  29. package/plugins/vite/build-pipeline.d.ts +15 -0
  30. package/plugins/vite/build-pipeline.js +5 -6
  31. package/plugins/vite/build.d.ts +7 -0
  32. package/plugins/vite/build.js +5 -2
  33. package/plugins/vite/buildinfo.d.ts +7 -0
  34. package/plugins/vite/buildinfo.js +4 -2
  35. package/plugins/vite/config.d.ts +13 -0
  36. package/plugins/vite/config.js +1 -1
  37. package/plugins/vite/copyfiles.d.ts +7 -0
  38. package/plugins/vite/copyfiles.js +4 -2
  39. package/plugins/vite/custom-element-data.d.ts +25 -0
  40. package/plugins/vite/custom-element-data.js +2 -1
  41. package/plugins/vite/defines.d.ts +10 -0
  42. package/plugins/vite/defines.js +4 -3
  43. package/plugins/vite/dependencies.d.ts +21 -0
  44. package/plugins/vite/dependencies.js +3 -1
  45. package/plugins/vite/dependency-watcher.d.ts +11 -0
  46. package/plugins/vite/dependency-watcher.js +2 -1
  47. package/plugins/vite/drop-client.d.ts +1 -0
  48. package/plugins/vite/drop.d.ts +7 -0
  49. package/plugins/vite/drop.js +4 -4
  50. package/plugins/vite/editor-connection.d.ts +8 -0
  51. package/plugins/vite/editor-connection.js +6 -2
  52. package/plugins/vite/facebook-instant-games.d.ts +7 -0
  53. package/plugins/vite/facebook-instant-games.js +4 -2
  54. package/plugins/vite/gzip.d.ts +6 -0
  55. package/plugins/vite/gzip.js +5 -0
  56. package/plugins/vite/imports-logger.d.ts +13 -0
  57. package/plugins/vite/imports-logger.js +2 -1
  58. package/plugins/vite/index.d.ts +54 -0
  59. package/plugins/vite/index.js +16 -15
  60. package/plugins/vite/license.d.ts +7 -0
  61. package/plugins/vite/license.js +6 -6
  62. package/plugins/vite/local-files-analysis.d.ts +95 -0
  63. package/plugins/vite/local-files-analysis.js +2 -1
  64. package/plugins/vite/local-files-core.d.ts +51 -0
  65. package/plugins/vite/local-files-core.js +2 -2
  66. package/plugins/vite/local-files-internals.d.ts +3 -0
  67. package/plugins/vite/local-files-utils.d.ts +77 -0
  68. package/plugins/vite/local-files.d.ts +2 -0
  69. package/plugins/vite/logger.d.ts +8 -0
  70. package/plugins/vite/logger.js +1 -1
  71. package/plugins/vite/logging.d.ts +31 -0
  72. package/plugins/vite/meta.d.ts +7 -0
  73. package/plugins/vite/meta.js +4 -3
  74. package/plugins/vite/needle-app.d.ts +7 -0
  75. package/plugins/vite/needle-app.js +1 -1
  76. package/plugins/vite/npm.d.ts +4 -0
  77. package/plugins/vite/npm.js +1 -1
  78. package/plugins/vite/peer.d.ts +7 -0
  79. package/plugins/vite/peer.js +3 -1
  80. package/plugins/vite/poster-client.d.ts +1 -0
  81. package/plugins/vite/poster.d.ts +8 -0
  82. package/plugins/vite/poster.js +5 -2
  83. package/plugins/vite/pwa.d.ts +7 -0
  84. package/plugins/vite/pwa.js +4 -4
  85. package/plugins/vite/reload-client.d.ts +1 -0
  86. package/plugins/vite/reload.d.ts +7 -0
  87. package/plugins/vite/reload.js +7 -6
  88. package/plugins/vite/server.d.ts +7 -0
  89. package/plugins/vite/server.js +5 -5
  90. package/plugins/vite/transform-codegen.d.ts +8 -0
  91. package/plugins/vite/transform-codegen.js +6 -4
  92. package/plugins/vite/transform.d.ts +5 -0
  93. package/plugins/vite/transform.js +1 -1
  94. package/plugins/vite/vite-4.4-hack.d.ts +8 -0
  95. package/plugins/vite/vite-4.4-hack.js +1 -1
  96. package/src/engine-components/EventType.ts +13 -12
  97. package/src/engine-components/ReflectionProbe.ts +65 -20
  98. package/src/engine-components/VideoPlayer.ts +1 -1
  99. package/plugins/types/next.d.ts +0 -3
  100. package/plugins/types/vite.d.ts +0 -14
@@ -213,7 +213,7 @@ function recordLocalizedAsset(stats, url, sizeBytes, mimeType) {
213
213
  * @param {import('../types').userSettings} userSettings
214
214
  * @returns {import('vite').Plugin | null}
215
215
  */
216
- export const needleMakeFilesLocal = (command, _config, userSettings) => {
216
+ export function needleMakeFilesLocal(command, _config, userSettings) {
217
217
  if (!makeFilesLocalIsEnabled(userSettings)) {
218
218
  return null;
219
219
  }
@@ -373,7 +373,7 @@ export const needleMakeFilesLocal = (command, _config, userSettings) => {
373
373
  }
374
374
  });
375
375
  return plugin;
376
- };
376
+ }
377
377
 
378
378
  /**
379
379
  * @param {LocalizationOptions} options
@@ -0,0 +1,3 @@
1
+ export { getActiveHandlers, getFeatureBasePath, handleWebXRProfiles, makeLocal, makeLocalHtml } from "./local-files-core.js";
2
+ export { analyzeProjectGlbs, buildAutoPolicy, collectAssetGlbs, collectIndexHtmlSkyboxUrls, collectNeedleComponentExtensionBlobs, detectAutoPolicy, getWebXRProfilesForMode, hasAutoFeatureSelection, readGlbJsonChunk, resolveSkyboxSelectionUrls, resolveSkyboxValueToUrl, shouldHandleUrlInAutoMode } from "./local-files-analysis.js";
3
+ export { fixDracoRangeQueryProbe, fixRelativeNewURL, getRelativeToBasePath } from "./local-files-utils.js";
@@ -0,0 +1,77 @@
1
+ export function finishMakeLocalProgress(): void;
2
+ /**
3
+ * @param {string} src
4
+ * @param {string} search
5
+ * @param {string} replacement
6
+ * @returns {string}
7
+ */
8
+ export function replaceAll(src: string, search: string, replacement: string): string;
9
+ /**
10
+ * @param {string} path
11
+ * @param {string} basePath
12
+ * @returns {string}
13
+ */
14
+ export function getRelativeToBasePath(path: string, basePath: string): string;
15
+ /**
16
+ * @param {string} path
17
+ * @returns {string}
18
+ */
19
+ export function normalizeWebPath(path: string): string;
20
+ /**
21
+ * @param {string} path
22
+ * @returns {string}
23
+ */
24
+ export function ensureTrailingSlash(path: string): string;
25
+ /**
26
+ * @param {string} src
27
+ * @returns {string}
28
+ */
29
+ export function fixRelativeNewURL(src: string): string;
30
+ /**
31
+ * @param {string} src
32
+ * @returns {string}
33
+ */
34
+ export function fixDracoRangeQueryProbe(src: string): string;
35
+ /**
36
+ * @param {string} path
37
+ * @param {string|Buffer} content
38
+ * @returns {string}
39
+ */
40
+ export function getValidFilename(path: string, content: string | Buffer): string;
41
+ /**
42
+ * @param {string} url
43
+ * @returns {Promise<string>}
44
+ */
45
+ export function downloadText(url: string): Promise<string>;
46
+ /**
47
+ * @param {string} url
48
+ * @returns {Promise<Buffer>}
49
+ */
50
+ export function downloadBinary(url: string): Promise<Buffer>;
51
+ /**
52
+ * @param {LocalizationContext} context
53
+ * @param {string} url
54
+ * @param {unknown} err
55
+ */
56
+ export function recordFailedDownload(context: LocalizationContext, url: string, err: unknown): void;
57
+ /**
58
+ * @param {string} url
59
+ * @returns {string}
60
+ */
61
+ export function getShortUrlName(url: string): string;
62
+ export class Cache {
63
+ /** @type {Map<string, Buffer|string>} */
64
+ __cache: Map<string, Buffer | string>;
65
+ /**
66
+ * @param {string} key
67
+ * @param {Buffer|string} value
68
+ */
69
+ addToCache(key: string, value: Buffer | string): void;
70
+ /**
71
+ * @param {string} key
72
+ * @returns {Buffer|string|null}
73
+ */
74
+ getFromCache(key: string): Buffer | string | null;
75
+ get map(): Map<string, string | Buffer<ArrayBufferLike>>;
76
+ }
77
+ export type LocalizationContext = import("./local-files-types.js").LocalizationContext;
@@ -0,0 +1,2 @@
1
+ export { needleLocalFilesSceneAnalysis } from "./local-files-analysis.js";
2
+ export { needleMakeFilesLocal, makeFilesLocalIsEnabled } from "./local-files-core.js";
@@ -0,0 +1,8 @@
1
+ /**
2
+ * write logs to local file
3
+ * @param {string} command
4
+ * @param {unknown} _config
5
+ * @param {import('../types/userconfig.js').userSettings} userSettings
6
+ * @returns {import('vite').Plugin | null}
7
+ */
8
+ export function needleLogger(command: string, _config: unknown, userSettings: import("../types/userconfig.js").userSettings): import("vite").Plugin | null;
@@ -15,7 +15,7 @@ const __dirname = path.dirname(__filename);
15
15
  * @param {import('../types/userconfig.js').userSettings} userSettings
16
16
  * @returns {import('vite').Plugin | null}
17
17
  */
18
- export const needleLogger = (command, _config, userSettings) => {
18
+ export function needleLogger(command, _config, userSettings) {
19
19
 
20
20
  if (userSettings?.disableLogging === true) {
21
21
  return null;
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Resets the sticky-header state so the next needleLog call always emits its
3
+ * [plugin-name] header. Call this at the start of a new build or any logical
4
+ * output section where you want a guaranteed fresh header.
5
+ */
6
+ export function resetLastLoggedPlugin(): void;
7
+ /**
8
+ * @param {string} pluginName
9
+ * @param {string | string[]} message
10
+ * @param {'log' | 'warn' | 'error'} [level='log']
11
+ * @param {{ dimBody?: boolean, leadingNewline?: boolean, showHeader?: boolean }} [options]
12
+ */
13
+ export function needleLog(pluginName: string, message: string | string[], level?: "log" | "warn" | "error", options?: {
14
+ dimBody?: boolean;
15
+ leadingNewline?: boolean;
16
+ showHeader?: boolean;
17
+ }): void;
18
+ /**
19
+ * @param {string} pluginName
20
+ * @param {string[]} lines
21
+ * @param {'log' | 'warn' | 'error'} [level='log']
22
+ */
23
+ export function needleLogLines(pluginName: string, lines: string[], level?: "log" | "warn" | "error"): void;
24
+ export function needleSupportsColor(): boolean;
25
+ export function needleBlue(text: any): string;
26
+ export function needleDim(text: any): string;
27
+ export function needleGreenBold(text: any): string;
28
+ /**
29
+ * @param {(() => void) | null} cleaner
30
+ */
31
+ export function setTransientLogLineCleaner(cleaner: (() => void) | null): void;
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @param {"build" | "serve"} command
3
+ * @param {import('../types/needleConfig').needleMeta | null} config
4
+ * @param {import('../types').userSettings} userSettings
5
+ * @returns {import('vite').Plugin}
6
+ */
7
+ export function needleMeta(command: "build" | "serve", config: import("../types/needleConfig").needleMeta | null, userSettings: import("../types").userSettings): import("vite").Plugin;
@@ -6,11 +6,12 @@ import { getPosterPath } from './poster.js';
6
6
  import { needleGreenBold, needleLog } from './logging.js';
7
7
 
8
8
  /**
9
- * @param {string} command
10
- * @param {import('../types').needleMeta | null} config
9
+ * @param {"build" | "serve"} command
10
+ * @param {import('../types/needleConfig').needleMeta | null} config
11
11
  * @param {import('../types').userSettings} userSettings
12
+ * @returns {import('vite').Plugin}
12
13
  */
13
- export const needleMeta = (command, config, userSettings) => {
14
+ export function needleMeta(command, config, userSettings) {
14
15
 
15
16
  // we can check if this is a build
16
17
  const isBuild = command === 'build';
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @param {'serve' | 'build'} command
3
+ * @param {{} | undefined | null} config
4
+ * @param {import('../types').userSettings} userSettings
5
+ * @returns {import('vite').Plugin[] | null}
6
+ */
7
+ export function needleApp(command: "serve" | "build", config: {} | undefined | null, userSettings: import("../types").userSettings): import("vite").Plugin[] | null;
@@ -10,7 +10,7 @@ import { needleLog } from './logging.js';
10
10
  * @param {import('../types').userSettings} userSettings
11
11
  * @returns {import('vite').Plugin[] | null}
12
12
  */
13
- export const needleApp = (command, config, userSettings) => {
13
+ export function needleApp(command, config, userSettings) {
14
14
 
15
15
  if (command !== "build") {
16
16
  return null;
@@ -0,0 +1,4 @@
1
+ /**
2
+ * @param {import('../types').userSettings} userSettings
3
+ */
4
+ export function needleNPM(command: any, config: any, userSettings: import("../types").userSettings): void;
@@ -3,6 +3,6 @@ import { ensureNpmDirectoryExists } from '../common/npm.js';
3
3
  /**
4
4
  * @param {import('../types').userSettings} userSettings
5
5
  */
6
- export const needleNPM = (command, config, userSettings) => {
6
+ export function needleNPM(command, config, userSettings) {
7
7
  ensureNpmDirectoryExists();
8
8
  }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @param {"build" | "serve"} command
3
+ * @param {import('../types/needleConfig').needleMeta | null | undefined} config
4
+ * @param {import('../types').userSettings} userSettings
5
+ * @returns {import("vite").Plugin | undefined}
6
+ */
7
+ export function needlePeerjs(command: "build" | "serve", config: import("../types/needleConfig").needleMeta | null | undefined, userSettings: import("../types").userSettings): import("vite").Plugin | undefined;
@@ -2,10 +2,12 @@ const peerjsString = `/* needle: fix for peerjs */ window.global = window; var p
2
2
  import { needleLog } from './logging.js';
3
3
 
4
4
  /**
5
+ * @param {"build" | "serve"} command
6
+ * @param {import('../types/needleConfig').needleMeta | null | undefined} config
5
7
  * @param {import('../types').userSettings} userSettings
6
8
  * @returns {import("vite").Plugin | undefined}
7
9
  */
8
- export const needlePeerjs = (command, config, userSettings) => {
10
+ export function needlePeerjs(command, config, userSettings) {
9
11
 
10
12
  if (userSettings.noPeer === true) return;
11
13
 
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,8 @@
1
+ export function getPosterPath(): string;
2
+ /**
3
+ * @param {"build" | "serve"} command
4
+ * @param {import('../types/needleConfig').needleMeta | null | undefined} config
5
+ * @param {import('../types').userSettings} userSettings
6
+ * @returns {import('vite').Plugin | undefined}
7
+ */
8
+ export function needlePoster(command: "build" | "serve", config: import("../types/needleConfig").needleMeta | null | undefined, userSettings: import("../types").userSettings): import("vite").Plugin | undefined;
@@ -10,9 +10,12 @@ export function getPosterPath() {
10
10
  }
11
11
 
12
12
  /**
13
+ * @param {"build" | "serve"} command
14
+ * @param {import('../types/needleConfig').needleMeta | null | undefined} config
13
15
  * @param {import('../types').userSettings} userSettings
16
+ * @returns {import('vite').Plugin | undefined}
14
17
  */
15
- export const needlePoster = (command, config, userSettings) => {
18
+ export function needlePoster(command, config, userSettings) {
16
19
  // only relevant for local development
17
20
  if (command === 'build') return [];
18
21
 
@@ -76,4 +79,4 @@ export const needlePoster = (command, config, userSettings) => {
76
79
  },
77
80
  },
78
81
  }
79
- };
82
+ }
@@ -0,0 +1,7 @@
1
+ /** Provides reasonable defaults for a PWA manifest and workbox settings.
2
+ * @param {"build" | "serve"} command
3
+ * @param {import("../types/needleConfig").needleMeta | null} config
4
+ * @param {import('../types').userSettings} userSettings
5
+ * @returns {import('vite').Plugin | undefined}
6
+ */
7
+ export function needlePWA(command: "build" | "serve", config: import("../types/needleConfig").needleMeta | null, userSettings: import("../types").userSettings): import("vite").Plugin | undefined;
@@ -8,12 +8,12 @@ import { needleLog } from './logging.js';
8
8
  const pwaErrorWithInstructions = "It seems that you're trying to build a PWA using 'vite-plugin-pwa'!\nNeedle can manage PWA settings for you – just pass the same 'pwaOptions' to the needlePlugins and VitePWA plugins:\n\n1. Install the vite PWA plugin: npm install vite-plugin-pwa --save-dev\n\n2. Then update your vite.config.js:\n\n import { VitePWA } from 'vite-plugin-pwa';\n ...\n needlePlugins(command, needleConfig, { pwa: pwaOptions }),\n VitePWA(pwaOptions),\n\nIf you want to manage PWA building yourself and skip this check, please pass '{ pwa: false }' to needlePlugins.";
9
9
 
10
10
  /** Provides reasonable defaults for a PWA manifest and workbox settings.
11
- * @param {string} command
12
- * @param {import('../types').userSettings} userSettings
11
+ * @param {"build" | "serve"} command
13
12
  * @param {import("../types/needleConfig").needleMeta | null} config
14
- * @returns {import('vite').Plugin | void}
13
+ * @param {import('../types').userSettings} userSettings
14
+ * @returns {import('vite').Plugin | undefined}
15
15
  */
16
- export const needlePWA = (command, config, userSettings) => {
16
+ export function needlePWA(command, config, userSettings) {
17
17
  // @ts-ignore // TODO correctly type the userSettings.pwaOptions object
18
18
  /** @type {import("vite-plugin-pwa").VitePWAOptions | false} */
19
19
  const pwaOptions = userSettings.pwa === true
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @param {"build" | "serve"} command
3
+ * @param {import('../types/needleConfig').needleMeta | null} config
4
+ * @param {import('../types').userSettings} userSettings
5
+ * @returns {import('vite').Plugin | undefined}
6
+ */
7
+ export function needleReload(command: "build" | "serve", config: import("../types/needleConfig").needleMeta | null, userSettings: import("../types").userSettings): import("vite").Plugin | undefined;
@@ -16,10 +16,11 @@ let assetsDirectory = "";
16
16
 
17
17
  /**
18
18
  * @param {"build" | "serve"} command
19
- * @param {import('../types').userSettings | null} config
19
+ * @param {import('../types/needleConfig').needleMeta | null} config
20
20
  * @param {import('../types').userSettings} userSettings
21
+ * @returns {import('vite').Plugin | undefined}
21
22
  */
22
- export const needleReload = (command, config, userSettings) => {
23
+ export function needleReload(command, config, userSettings) {
23
24
  if (command === "build") return undefined;
24
25
 
25
26
  if (userSettings?.noReload === true) return undefined;
@@ -31,7 +32,7 @@ export const needleReload = (command, config, userSettings) => {
31
32
  isUpdatingConfig = true;
32
33
  const res = await loadConfig();
33
34
  isUpdatingConfig = false;
34
- if (res) config = /** @type {import('../types').userSettings} */ (res);
35
+ if (res) config = /** @type {import('../types/needleConfig').needleMeta} */ (res);
35
36
  }
36
37
 
37
38
  const projectConfig = tryLoadProjectConfig();
@@ -61,7 +62,7 @@ export const needleReload = (command, config, userSettings) => {
61
62
  if (userSettings?.debug === true)
62
63
  setTimeout(() => needleLog("needle-reload", "Updated server ignore patterns: " + JSON.stringify(config.server?.watch?.ignored)), 100);
63
64
  },
64
- /** @param {{file: string, server: import('vite').ViteDevServer, modules: unknown[], read: (file?: string) => Promise<string>, buildDirectory?: string}} args */
65
+ /** @param {import('vite').HmrContext & {buildDirectory?: string}} args */
65
66
  handleHotUpdate(args) {
66
67
  args.buildDirectory = buildDirectory;
67
68
  return handleReload(args);
@@ -118,7 +119,7 @@ function notifyClientWillReload(server, file) {
118
119
  }
119
120
 
120
121
  /**
121
- * @param {{file: string, server: import('vite').ViteDevServer, modules: unknown[], read: (file?: string) => Promise<string>, buildDirectory?: string}} param0
122
+ * @param {import('vite').HmrContext & {buildDirectory?: string}} param0
122
123
  * @returns {Promise<any>}
123
124
  */
124
125
  async function handleReload({ file, server, modules: _modules, read, buildDirectory }) {
@@ -255,7 +256,7 @@ function getFileNameLog(file) {
255
256
  const hashes = new Map();
256
257
  const hash256 = crypto.createHash('sha256');
257
258
 
258
- /** @param {string} file @param {(file?: string) => Promise<string>} read @returns {Promise<boolean>} */
259
+ /** @param {string} file @param {(file?: string) => string | Promise<string>} read @returns {Promise<boolean>} */
259
260
  async function testIfFileContentChanged(file, read) {
260
261
  let content = await read(file);
261
262
  content = removeVersionQueryArgument(content);
@@ -0,0 +1,7 @@
1
+ /** Can open the network server in the browser.
2
+ * @param {"build" | "serve"} command
3
+ * @param {import('../types').needleMeta | null} config
4
+ * @param {import('../types').userSettings} userSettings
5
+ * @returns {import('vite').Plugin}
6
+ */
7
+ export function needleServer(command: "build" | "serve", config: import("../types").needleMeta | null, userSettings: import("../types").userSettings): import("vite").Plugin;
@@ -1,10 +1,10 @@
1
- /**
2
- * Can open the network server in the browser
3
- * @param {string} command
1
+ /** Can open the network server in the browser.
2
+ * @param {"build" | "serve"} command
4
3
  * @param {import('../types').needleMeta | null} config
5
4
  * @param {import('../types').userSettings} userSettings
5
+ * @returns {import('vite').Plugin}
6
6
  */
7
- export const needleServer = (command, config, userSettings) => {
7
+ export function needleServer(command, config, userSettings) {
8
8
 
9
9
  const shouldOpenBrowser = userSettings.openBrowser === true;
10
10
 
@@ -64,4 +64,4 @@ export const needleServer = (command, config, userSettings) => {
64
64
  }
65
65
  },
66
66
  }
67
- };
67
+ }
@@ -0,0 +1,8 @@
1
+ /** Modify the glb load path in codegen files.
2
+ * This is necessary if the assets directory is not the default (changed by the user in needle.config.json).
3
+ * @param {"build" | "serve"} command
4
+ * @param {import('../types/needleConfig').needleMeta | null | undefined} config
5
+ * @param {import('../types').userSettings} userSettings
6
+ * @returns {import('vite').Plugin | undefined}
7
+ */
8
+ export function needleTransformCodegen(command: "build" | "serve", config: import("../types/needleConfig").needleMeta | null | undefined, userSettings: import("../types").userSettings): import("vite").Plugin | undefined;
@@ -1,11 +1,13 @@
1
1
  import { builtAssetsDirectory, tryLoadProjectConfig } from './config.js';
2
2
 
3
- /**
4
- * modify the glb load path in codegen files
5
- * this is necessary if the assets directory is not the default (changed by the user in needle.config.json)
3
+ /** Modify the glb load path in codegen files.
4
+ * This is necessary if the assets directory is not the default (changed by the user in needle.config.json).
5
+ * @param {"build" | "serve"} command
6
+ * @param {import('../types/needleConfig').needleMeta | null | undefined} config
6
7
  * @param {import('../types').userSettings} userSettings
8
+ * @returns {import('vite').Plugin | undefined}
7
9
  */
8
- export const needleTransformCodegen = (command, config, userSettings) => {
10
+ export function needleTransformCodegen(command, config, userSettings) {
9
11
 
10
12
  if (config?.noCodegenTransform === true || userSettings?.noCodegenTransform === true) {
11
13
  return;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * @param {import('../types').userSettings} userSettings
3
+ * @returns {import('vite').Plugin[]}
4
+ */
5
+ export function needleTransformCode(command: any, config: any, userSettings: import("../types").userSettings): import("vite").Plugin[];
@@ -5,7 +5,7 @@
5
5
  * @param {import('../types').userSettings} userSettings
6
6
  * @returns {import('vite').Plugin[]}
7
7
  */
8
- export const needleTransformCode = (command, config, userSettings) => {
8
+ export function needleTransformCode(command, config, userSettings) {
9
9
 
10
10
  return [
11
11
  {
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Make sure we dont have vite 4.4.x installed when needle engine is used locally
3
+ * @param {import('../types').userSettings} userSettings
4
+ */
5
+ export function vite_4_4_hack(command: any, config: any, userSettings: import("../types").userSettings): {
6
+ name: string;
7
+ configureServer(server: any): Promise<void>;
8
+ };
@@ -6,7 +6,7 @@ import { execSync } from 'child_process';
6
6
  * Make sure we dont have vite 4.4.x installed when needle engine is used locally
7
7
  * @param {import('../types').userSettings} userSettings
8
8
  */
9
- export const vite_4_4_hack = (command, config, userSettings) => {
9
+ export function vite_4_4_hack(command, config, userSettings) {
10
10
  if (userSettings.vite44Hack === false) return;
11
11
  return {
12
12
  name: "needle-vite-4.4-hack",
@@ -8,16 +8,17 @@ export enum EventType {
8
8
  PointerDown = 2,
9
9
  PointerUp = 3,
10
10
  PointerClick = 4,
11
- Drag = 5,
12
- Drop = 6,
13
- Scroll = 7,
14
- UpdateSelected = 8,
15
- Select = 9,
16
- Deselect = 10,
17
- Move = 11,
18
- InitializePotentialDrag = 12,
19
- BeginDrag = 13,
20
- EndDrag = 14,
21
- Submit = 15,
22
- Cancel = 16
11
+ // Unity Events, not currently supported:
12
+ //Drag = 5,
13
+ //Drop = 6,
14
+ //Scroll = 7,
15
+ //UpdateSelected = 8,
16
+ //Select = 9,
17
+ //Deselect = 10,
18
+ //Move = 11,
19
+ //InitializePotentialDrag = 12,
20
+ //BeginDrag = 13,
21
+ //EndDrag = 14,
22
+ //Submit = 15,
23
+ //Cancel = 16
23
24
  }