@php-wasm/node 3.0.39 → 3.0.41

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.
package/index.cjs CHANGED
@@ -45,27 +45,56 @@ var import_node_polyfills = require("@php-wasm/node-polyfills");
45
45
  // packages/php-wasm/node/src/lib/get-php-loader-module.ts
46
46
  var import_universal = require("@php-wasm/universal");
47
47
  async function getPHPLoaderModule(version = import_universal.LatestSupportedPHPVersion) {
48
- switch (version) {
49
- case "8.5":
50
- return (await import("@php-wasm/node-8-5")).getPHPLoaderModule();
51
- case "8.4":
52
- return (await import("@php-wasm/node-8-4")).getPHPLoaderModule();
53
- case "8.3":
54
- return (await import("@php-wasm/node-8-3")).getPHPLoaderModule();
55
- case "8.2":
56
- return (await import("@php-wasm/node-8-2")).getPHPLoaderModule();
57
- case "8.1":
58
- return (await import("@php-wasm/node-8-1")).getPHPLoaderModule();
59
- case "8.0":
60
- return (await import("@php-wasm/node-8-0")).getPHPLoaderModule();
61
- case "7.4":
62
- return (await import("@php-wasm/node-7-4")).getPHPLoaderModule();
63
- case "7.3":
64
- return (await import("@php-wasm/node-7-3")).getPHPLoaderModule();
65
- case "7.2":
66
- return (await import("@php-wasm/node-7-2")).getPHPLoaderModule();
48
+ try {
49
+ switch (version) {
50
+ case "8.5":
51
+ return (await import("@php-wasm/node-8-5")).getPHPLoaderModule();
52
+ case "8.4":
53
+ return (await import("@php-wasm/node-8-4")).getPHPLoaderModule();
54
+ case "8.3":
55
+ return (await import("@php-wasm/node-8-3")).getPHPLoaderModule();
56
+ case "8.2":
57
+ return (await import("@php-wasm/node-8-2")).getPHPLoaderModule();
58
+ case "8.1":
59
+ return (await import("@php-wasm/node-8-1")).getPHPLoaderModule();
60
+ case "8.0":
61
+ return (await import("@php-wasm/node-8-0")).getPHPLoaderModule();
62
+ case "7.4":
63
+ return (await import("@php-wasm/node-7-4")).getPHPLoaderModule();
64
+ case "7.3":
65
+ return (await import("@php-wasm/node-7-3")).getPHPLoaderModule();
66
+ case "7.2":
67
+ return (await import("@php-wasm/node-7-2")).getPHPLoaderModule();
68
+ }
69
+ throw new Error(`Unsupported PHP version ${version}`);
70
+ } catch (errorCandidate) {
71
+ if (!errorCandidate || typeof errorCandidate !== "object") {
72
+ throw errorCandidate;
73
+ }
74
+ const error = errorCandidate;
75
+ if (error.message?.includes(
76
+ `SyntaxError: Cannot use 'import.meta' outside a module`
77
+ )) {
78
+ throw new Error(
79
+ `Node.js crashed on a 'import.meta' statement. This happens when running in a node:vm context. Some testing libraries like Jest use heavily customized runtime contexts, involving node:vm, jest-runtime, and custom require() implementations. These contexts do not support 'import.meta' statements and, by extension, cannot run the @php-wasm/node package. Consider using the --experimental-vm-modules flag or switching to a different test runner such as vitest.`,
80
+ {
81
+ cause: error
82
+ }
83
+ );
84
+ } else if (error?.code === `ERR_VM_DYNAMIC_IMPORT_CALLBACK_MISSING` || error?.code === `ERR_VM_DYNAMIC_IMPORT_CALLBACK_MISSING_FLAG` || error?.message?.includes(
85
+ `A dynamic import callback was invoked without --experimental-vm-modules`
86
+ ) || error?.message?.includes(
87
+ `A dynamic import callback was not specified`
88
+ ) || error?.message?.includes(`Must use import to load ES Module`)) {
89
+ throw new Error(
90
+ `Node.js crashed on a 'import()' statement. This happens when running in a node:vm context. Some testing libraries like Jest use runtime contexts, involving node:vm, jest-runtime, or other custom require() implementations. These contexts do not support import() statements and, by extension, cannot run the @php-wasm/node package. Consider using the --experimental-vm-modules flag or switching to a different test runner such as vitest.`,
91
+ {
92
+ cause: error
93
+ }
94
+ );
95
+ }
96
+ throw error;
67
97
  }
68
- throw new Error(`Unsupported PHP version ${version}`);
69
98
  }
70
99
 
71
100
  // packages/php-wasm/node/src/lib/networking/outbound-ws-to-tcp-proxy.ts
package/index.js CHANGED
@@ -12,27 +12,56 @@ import "@php-wasm/node-polyfills";
12
12
  // packages/php-wasm/node/src/lib/get-php-loader-module.ts
13
13
  import { LatestSupportedPHPVersion } from "@php-wasm/universal";
14
14
  async function getPHPLoaderModule(version = LatestSupportedPHPVersion) {
15
- switch (version) {
16
- case "8.5":
17
- return (await import("@php-wasm/node-8-5")).getPHPLoaderModule();
18
- case "8.4":
19
- return (await import("@php-wasm/node-8-4")).getPHPLoaderModule();
20
- case "8.3":
21
- return (await import("@php-wasm/node-8-3")).getPHPLoaderModule();
22
- case "8.2":
23
- return (await import("@php-wasm/node-8-2")).getPHPLoaderModule();
24
- case "8.1":
25
- return (await import("@php-wasm/node-8-1")).getPHPLoaderModule();
26
- case "8.0":
27
- return (await import("@php-wasm/node-8-0")).getPHPLoaderModule();
28
- case "7.4":
29
- return (await import("@php-wasm/node-7-4")).getPHPLoaderModule();
30
- case "7.3":
31
- return (await import("@php-wasm/node-7-3")).getPHPLoaderModule();
32
- case "7.2":
33
- return (await import("@php-wasm/node-7-2")).getPHPLoaderModule();
15
+ try {
16
+ switch (version) {
17
+ case "8.5":
18
+ return (await import("@php-wasm/node-8-5")).getPHPLoaderModule();
19
+ case "8.4":
20
+ return (await import("@php-wasm/node-8-4")).getPHPLoaderModule();
21
+ case "8.3":
22
+ return (await import("@php-wasm/node-8-3")).getPHPLoaderModule();
23
+ case "8.2":
24
+ return (await import("@php-wasm/node-8-2")).getPHPLoaderModule();
25
+ case "8.1":
26
+ return (await import("@php-wasm/node-8-1")).getPHPLoaderModule();
27
+ case "8.0":
28
+ return (await import("@php-wasm/node-8-0")).getPHPLoaderModule();
29
+ case "7.4":
30
+ return (await import("@php-wasm/node-7-4")).getPHPLoaderModule();
31
+ case "7.3":
32
+ return (await import("@php-wasm/node-7-3")).getPHPLoaderModule();
33
+ case "7.2":
34
+ return (await import("@php-wasm/node-7-2")).getPHPLoaderModule();
35
+ }
36
+ throw new Error(`Unsupported PHP version ${version}`);
37
+ } catch (errorCandidate) {
38
+ if (!errorCandidate || typeof errorCandidate !== "object") {
39
+ throw errorCandidate;
40
+ }
41
+ const error = errorCandidate;
42
+ if (error.message?.includes(
43
+ `SyntaxError: Cannot use 'import.meta' outside a module`
44
+ )) {
45
+ throw new Error(
46
+ `Node.js crashed on a 'import.meta' statement. This happens when running in a node:vm context. Some testing libraries like Jest use heavily customized runtime contexts, involving node:vm, jest-runtime, and custom require() implementations. These contexts do not support 'import.meta' statements and, by extension, cannot run the @php-wasm/node package. Consider using the --experimental-vm-modules flag or switching to a different test runner such as vitest.`,
47
+ {
48
+ cause: error
49
+ }
50
+ );
51
+ } else if (error?.code === `ERR_VM_DYNAMIC_IMPORT_CALLBACK_MISSING` || error?.code === `ERR_VM_DYNAMIC_IMPORT_CALLBACK_MISSING_FLAG` || error?.message?.includes(
52
+ `A dynamic import callback was invoked without --experimental-vm-modules`
53
+ ) || error?.message?.includes(
54
+ `A dynamic import callback was not specified`
55
+ ) || error?.message?.includes(`Must use import to load ES Module`)) {
56
+ throw new Error(
57
+ `Node.js crashed on a 'import()' statement. This happens when running in a node:vm context. Some testing libraries like Jest use runtime contexts, involving node:vm, jest-runtime, or other custom require() implementations. These contexts do not support import() statements and, by extension, cannot run the @php-wasm/node package. Consider using the --experimental-vm-modules flag or switching to a different test runner such as vitest.`,
58
+ {
59
+ cause: error
60
+ }
61
+ );
62
+ }
63
+ throw error;
34
64
  }
35
- throw new Error(`Unsupported PHP version ${version}`);
36
65
  }
37
66
 
38
67
  // packages/php-wasm/node/src/lib/networking/outbound-ws-to-tcp-proxy.ts
@@ -11,4 +11,4 @@ import type { PHPLoaderModule, SupportedPHPVersion } from '@php-wasm/universal';
11
11
  * @param version The PHP version to load.
12
12
  * @returns The PHP loader module.
13
13
  */
14
- export declare function getPHPLoaderModule(version?: SupportedPHPVersion): Promise<PHPLoaderModule>;
14
+ export declare function getPHPLoaderModule(version?: SupportedPHPVersion | string): Promise<PHPLoaderModule>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@php-wasm/node",
3
- "version": "3.0.39",
3
+ "version": "3.0.41",
4
4
  "description": "PHP.wasm for Node.js",
5
5
  "repository": {
6
6
  "type": "git",
@@ -38,7 +38,7 @@
38
38
  },
39
39
  "license": "GPL-2.0-or-later",
40
40
  "types": "index.d.ts",
41
- "gitHead": "ba92e55e300abaadb95b3a89e598af2cd6676951",
41
+ "gitHead": "638b025343c1cfee4f1b1732c0e05d286e67e136",
42
42
  "engines": {
43
43
  "node": ">=20.18.3",
44
44
  "npm": ">=10.1.0"
@@ -49,20 +49,20 @@
49
49
  "wasm-feature-detect": "1.8.0",
50
50
  "ws": "8.18.3",
51
51
  "yargs": "17.7.2",
52
- "@php-wasm/node-polyfills": "3.0.39",
53
- "@php-wasm/universal": "3.0.39",
54
- "@php-wasm/node-8-5": "3.0.39",
55
- "@php-wasm/node-8-4": "3.0.39",
56
- "@php-wasm/node-8-3": "3.0.39",
57
- "@php-wasm/node-8-2": "3.0.39",
58
- "@php-wasm/node-8-1": "3.0.39",
59
- "@php-wasm/node-8-0": "3.0.39",
60
- "@php-wasm/node-7-4": "3.0.39",
61
- "@php-wasm/node-7-3": "3.0.39",
62
- "@php-wasm/node-7-2": "3.0.39",
63
- "@php-wasm/logger": "3.0.39",
64
- "@php-wasm/util": "3.0.39",
65
- "@wp-playground/common": "3.0.39"
52
+ "@php-wasm/node-polyfills": "3.0.41",
53
+ "@php-wasm/universal": "3.0.41",
54
+ "@php-wasm/node-8-5": "3.0.41",
55
+ "@php-wasm/node-8-4": "3.0.41",
56
+ "@php-wasm/node-8-3": "3.0.41",
57
+ "@php-wasm/node-8-2": "3.0.41",
58
+ "@php-wasm/node-8-1": "3.0.41",
59
+ "@php-wasm/node-8-0": "3.0.41",
60
+ "@php-wasm/node-7-4": "3.0.41",
61
+ "@php-wasm/node-7-3": "3.0.41",
62
+ "@php-wasm/node-7-2": "3.0.41",
63
+ "@php-wasm/logger": "3.0.41",
64
+ "@php-wasm/util": "3.0.41",
65
+ "@wp-playground/common": "3.0.41"
66
66
  },
67
67
  "packageManager": "npm@10.9.2",
68
68
  "overrides": {