@php-wasm/node 3.0.37 → 3.0.39

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 (3) hide show
  1. package/index.cjs +32 -29
  2. package/index.js +27 -25
  3. package/package.json +16 -16
package/index.cjs CHANGED
@@ -482,6 +482,7 @@ async function withXdebug(version = import_universal3.LatestSupportedPHPVersion,
482
482
  // packages/php-wasm/node/src/lib/extensions/intl/with-intl.ts
483
483
  var import_universal5 = require("@php-wasm/universal");
484
484
  var import_fs2 = __toESM(require("fs"), 1);
485
+ var import_path = __toESM(require("path"), 1);
485
486
 
486
487
  // packages/php-wasm/node/src/lib/extensions/intl/get-intl-extension-module.ts
487
488
  var import_universal4 = require("@php-wasm/universal");
@@ -510,12 +511,14 @@ async function getIntlExtensionModule(version = import_universal4.LatestSupporte
510
511
  }
511
512
 
512
513
  // packages/php-wasm/node/src/lib/extensions/intl/with-intl.ts
514
+ var import_meta = {};
513
515
  async function withIntl(version = import_universal5.LatestSupportedPHPVersion, options) {
514
516
  const extensionName = "intl.so";
515
517
  const extensionPath = await getIntlExtensionModule(version);
516
518
  const extension = import_fs2.default.readFileSync(extensionPath);
517
519
  const dataName = "icu.dat";
518
- const dataPath = `${__dirname}/shared/${dataName}`;
520
+ const moduleDir = typeof __dirname !== "undefined" ? __dirname : import_meta.dirname;
521
+ const dataPath = import_path.default.join(moduleDir, "shared", dataName);
519
522
  const ICUData = import_fs2.default.readFileSync(dataPath);
520
523
  return {
521
524
  ...options,
@@ -570,7 +573,7 @@ async function withIntl(version = import_universal5.LatestSupportedPHPVersion, o
570
573
 
571
574
  // packages/php-wasm/node/src/lib/load-runtime.ts
572
575
  var import_util = require("@php-wasm/util");
573
- var import_path = require("path");
576
+ var import_path2 = require("path");
574
577
  async function loadNodeRuntime(phpVersion, options = {}) {
575
578
  let emscriptenOptions = {
576
579
  /**
@@ -604,7 +607,7 @@ async function loadNodeRuntime(phpVersion, options = {}) {
604
607
  phpRuntime.FS.mkdirTree(symlinkMountPath);
605
608
  } else if (sourceStat.isFile()) {
606
609
  phpRuntime.FS.mkdirTree(
607
- (0, import_path.dirname)(symlinkMountPath)
610
+ (0, import_path2.dirname)(symlinkMountPath)
608
611
  );
609
612
  phpRuntime.FS.writeFile(symlinkMountPath, "");
610
613
  } else {
@@ -657,14 +660,14 @@ var import_node_fs = require("node:fs");
657
660
  var import_universal7 = require("@php-wasm/universal");
658
661
  var import_util2 = require("@php-wasm/util");
659
662
  var import_fs4 = require("fs");
660
- var import_path2 = require("path");
663
+ var import_path3 = require("path");
661
664
  function createNodeFsMountHandler(localPath) {
662
665
  return function(php, FS, vfsMountPoint) {
663
666
  let removeVfsNode = false;
664
667
  if (!import_universal7.FSHelpers.fileExists(FS, vfsMountPoint)) {
665
668
  const lstat = (0, import_fs4.lstatSync)(localPath);
666
669
  if (lstat.isFile() || lstat.isSymbolicLink()) {
667
- FS.mkdirTree((0, import_path2.dirname)(vfsMountPoint));
670
+ FS.mkdirTree((0, import_path3.dirname)(vfsMountPoint));
668
671
  FS.writeFile(vfsMountPoint, "");
669
672
  } else if (lstat.isDirectory()) {
670
673
  FS.mkdirTree(vfsMountPoint);
@@ -723,15 +726,15 @@ function useHostFilesystem(php) {
723
726
  }
724
727
  php.chdir(process.cwd());
725
728
  }
726
- function statPathFollowSymlinks(path) {
727
- let stat = (0, import_node_fs.lstatSync)(path);
729
+ function statPathFollowSymlinks(path2) {
730
+ let stat = (0, import_node_fs.lstatSync)(path2);
728
731
  if (stat.isSymbolicLink()) {
729
732
  const fs4 = require("fs");
730
- let target = path;
733
+ let target = path2;
731
734
  const seen = /* @__PURE__ */ new Set();
732
735
  while (true) {
733
736
  if (seen.has(target)) {
734
- throw new Error(`Symlink loop detected: ${path}`);
737
+ throw new Error(`Symlink loop detected: ${path2}`);
735
738
  }
736
739
  seen.add(target);
737
740
  const linkStat = (0, import_node_fs.lstatSync)(target);
@@ -769,24 +772,24 @@ var FileLockManagerForNode = class {
769
772
  * @param op The whole file lock operation to perform.
770
773
  * @returns True if the lock was granted, false otherwise.
771
774
  */
772
- lockWholeFile(path, op) {
773
- if (this.locks.get(path) === void 0) {
775
+ lockWholeFile(path2, op) {
776
+ if (this.locks.get(path2) === void 0) {
774
777
  if (op.type === "unlock") {
775
778
  return true;
776
779
  }
777
780
  const maybeLock = FileLock.maybeCreate(
778
- path,
781
+ path2,
779
782
  op.type,
780
783
  this.nativeFlockSync
781
784
  );
782
785
  if (maybeLock === void 0) {
783
786
  return false;
784
787
  }
785
- this.locks.set(path, maybeLock);
788
+ this.locks.set(path2, maybeLock);
786
789
  }
787
- const lock = this.locks.get(path);
790
+ const lock = this.locks.get(path2);
788
791
  const result = lock.lockWholeFile(op);
789
- this.forgetPathIfUnlocked(path);
792
+ this.forgetPathIfUnlocked(path2);
790
793
  return result;
791
794
  }
792
795
  /**
@@ -797,22 +800,22 @@ var FileLockManagerForNode = class {
797
800
  * @param requestedLock The byte range lock to perform.
798
801
  * @returns True if the lock was granted, false otherwise.
799
802
  */
800
- lockFileByteRange(path, requestedLock) {
801
- if (!this.locks.has(path)) {
803
+ lockFileByteRange(path2, requestedLock) {
804
+ if (!this.locks.has(path2)) {
802
805
  if (requestedLock.type === "unlocked") {
803
806
  return true;
804
807
  }
805
808
  const maybeLock = FileLock.maybeCreate(
806
- path,
809
+ path2,
807
810
  requestedLock.type,
808
811
  this.nativeFlockSync
809
812
  );
810
813
  if (maybeLock === void 0) {
811
814
  return false;
812
815
  }
813
- this.locks.set(path, maybeLock);
816
+ this.locks.set(path2, maybeLock);
814
817
  }
815
- const lock = this.locks.get(path);
818
+ const lock = this.locks.get(path2);
816
819
  return lock.lockFileByteRange(requestedLock);
817
820
  }
818
821
  /**
@@ -822,8 +825,8 @@ var FileLockManagerForNode = class {
822
825
  * @param desiredLock The desired byte range lock.
823
826
  * @returns The first conflicting byte range lock, or undefined if no conflicting lock exists.
824
827
  */
825
- findFirstConflictingByteRangeLock(path, desiredLock) {
826
- const lock = this.locks.get(path);
828
+ findFirstConflictingByteRangeLock(path2, desiredLock) {
829
+ const lock = this.locks.get(path2);
827
830
  if (lock === void 0) {
828
831
  return void 0;
829
832
  }
@@ -835,9 +838,9 @@ var FileLockManagerForNode = class {
835
838
  * @param pid The process ID to release locks for.
836
839
  */
837
840
  releaseLocksForProcess(pid) {
838
- for (const [path, lock] of this.locks.entries()) {
841
+ for (const [path2, lock] of this.locks.entries()) {
839
842
  lock.releaseLocksForProcess(pid);
840
- this.forgetPathIfUnlocked(path);
843
+ this.forgetPathIfUnlocked(path2);
841
844
  }
842
845
  }
843
846
  /**
@@ -860,14 +863,14 @@ var FileLockManagerForNode = class {
860
863
  *
861
864
  * @param path The path to the file to forget.
862
865
  */
863
- forgetPathIfUnlocked(path) {
864
- const lock = this.locks.get(path);
866
+ forgetPathIfUnlocked(path2) {
867
+ const lock = this.locks.get(path2);
865
868
  if (!lock) {
866
869
  return;
867
870
  }
868
871
  if (lock.isUnlocked()) {
869
872
  lock.dispose();
870
- this.locks.delete(path);
873
+ this.locks.delete(path2);
871
874
  }
872
875
  }
873
876
  };
@@ -880,10 +883,10 @@ var FileLock = class _FileLock {
880
883
  * @param mode The type of lock to acquire
881
884
  * @returns A FileLock instance if the lock was acquired, undefined otherwise
882
885
  */
883
- static maybeCreate(path, mode, nativeFlockSync) {
886
+ static maybeCreate(path2, mode, nativeFlockSync) {
884
887
  let fd;
885
888
  try {
886
- fd = (0, import_fs5.openSync)(path, "a+");
889
+ fd = (0, import_fs5.openSync)(path2, "a+");
887
890
  const flockFlags = mode === "exclusive" ? "exnb" : "shnb";
888
891
  nativeFlockSync(fd, flockFlags);
889
892
  const nativeLock = { fd, mode, nativeFlockSync };
package/index.js CHANGED
@@ -449,6 +449,7 @@ async function withXdebug(version = LatestSupportedPHPVersion3, options, xdebugO
449
449
  // packages/php-wasm/node/src/lib/extensions/intl/with-intl.ts
450
450
  import { LatestSupportedPHPVersion as LatestSupportedPHPVersion5, FSHelpers as FSHelpers2 } from "@php-wasm/universal";
451
451
  import fs2 from "fs";
452
+ import path from "path";
452
453
 
453
454
  // packages/php-wasm/node/src/lib/extensions/intl/get-intl-extension-module.ts
454
455
  import { LatestSupportedPHPVersion as LatestSupportedPHPVersion4 } from "@php-wasm/universal";
@@ -482,7 +483,8 @@ async function withIntl(version = LatestSupportedPHPVersion5, options) {
482
483
  const extensionPath = await getIntlExtensionModule(version);
483
484
  const extension = fs2.readFileSync(extensionPath);
484
485
  const dataName = "icu.dat";
485
- const dataPath = `${__dirname}/shared/${dataName}`;
486
+ const moduleDir = typeof __dirname !== "undefined" ? __dirname : import.meta.dirname;
487
+ const dataPath = path.join(moduleDir, "shared", dataName);
486
488
  const ICUData = fs2.readFileSync(dataPath);
487
489
  return {
488
490
  ...options,
@@ -692,15 +694,15 @@ function useHostFilesystem(php) {
692
694
  }
693
695
  php.chdir(process.cwd());
694
696
  }
695
- function statPathFollowSymlinks(path) {
696
- let stat = lstatSync2(path);
697
+ function statPathFollowSymlinks(path2) {
698
+ let stat = lstatSync2(path2);
697
699
  if (stat.isSymbolicLink()) {
698
700
  const fs4 = __require("fs");
699
- let target = path;
701
+ let target = path2;
700
702
  const seen = /* @__PURE__ */ new Set();
701
703
  while (true) {
702
704
  if (seen.has(target)) {
703
- throw new Error(`Symlink loop detected: ${path}`);
705
+ throw new Error(`Symlink loop detected: ${path2}`);
704
706
  }
705
707
  seen.add(target);
706
708
  const linkStat = lstatSync2(target);
@@ -738,24 +740,24 @@ var FileLockManagerForNode = class {
738
740
  * @param op The whole file lock operation to perform.
739
741
  * @returns True if the lock was granted, false otherwise.
740
742
  */
741
- lockWholeFile(path, op) {
742
- if (this.locks.get(path) === void 0) {
743
+ lockWholeFile(path2, op) {
744
+ if (this.locks.get(path2) === void 0) {
743
745
  if (op.type === "unlock") {
744
746
  return true;
745
747
  }
746
748
  const maybeLock = FileLock.maybeCreate(
747
- path,
749
+ path2,
748
750
  op.type,
749
751
  this.nativeFlockSync
750
752
  );
751
753
  if (maybeLock === void 0) {
752
754
  return false;
753
755
  }
754
- this.locks.set(path, maybeLock);
756
+ this.locks.set(path2, maybeLock);
755
757
  }
756
- const lock = this.locks.get(path);
758
+ const lock = this.locks.get(path2);
757
759
  const result = lock.lockWholeFile(op);
758
- this.forgetPathIfUnlocked(path);
760
+ this.forgetPathIfUnlocked(path2);
759
761
  return result;
760
762
  }
761
763
  /**
@@ -766,22 +768,22 @@ var FileLockManagerForNode = class {
766
768
  * @param requestedLock The byte range lock to perform.
767
769
  * @returns True if the lock was granted, false otherwise.
768
770
  */
769
- lockFileByteRange(path, requestedLock) {
770
- if (!this.locks.has(path)) {
771
+ lockFileByteRange(path2, requestedLock) {
772
+ if (!this.locks.has(path2)) {
771
773
  if (requestedLock.type === "unlocked") {
772
774
  return true;
773
775
  }
774
776
  const maybeLock = FileLock.maybeCreate(
775
- path,
777
+ path2,
776
778
  requestedLock.type,
777
779
  this.nativeFlockSync
778
780
  );
779
781
  if (maybeLock === void 0) {
780
782
  return false;
781
783
  }
782
- this.locks.set(path, maybeLock);
784
+ this.locks.set(path2, maybeLock);
783
785
  }
784
- const lock = this.locks.get(path);
786
+ const lock = this.locks.get(path2);
785
787
  return lock.lockFileByteRange(requestedLock);
786
788
  }
787
789
  /**
@@ -791,8 +793,8 @@ var FileLockManagerForNode = class {
791
793
  * @param desiredLock The desired byte range lock.
792
794
  * @returns The first conflicting byte range lock, or undefined if no conflicting lock exists.
793
795
  */
794
- findFirstConflictingByteRangeLock(path, desiredLock) {
795
- const lock = this.locks.get(path);
796
+ findFirstConflictingByteRangeLock(path2, desiredLock) {
797
+ const lock = this.locks.get(path2);
796
798
  if (lock === void 0) {
797
799
  return void 0;
798
800
  }
@@ -804,9 +806,9 @@ var FileLockManagerForNode = class {
804
806
  * @param pid The process ID to release locks for.
805
807
  */
806
808
  releaseLocksForProcess(pid) {
807
- for (const [path, lock] of this.locks.entries()) {
809
+ for (const [path2, lock] of this.locks.entries()) {
808
810
  lock.releaseLocksForProcess(pid);
809
- this.forgetPathIfUnlocked(path);
811
+ this.forgetPathIfUnlocked(path2);
810
812
  }
811
813
  }
812
814
  /**
@@ -829,14 +831,14 @@ var FileLockManagerForNode = class {
829
831
  *
830
832
  * @param path The path to the file to forget.
831
833
  */
832
- forgetPathIfUnlocked(path) {
833
- const lock = this.locks.get(path);
834
+ forgetPathIfUnlocked(path2) {
835
+ const lock = this.locks.get(path2);
834
836
  if (!lock) {
835
837
  return;
836
838
  }
837
839
  if (lock.isUnlocked()) {
838
840
  lock.dispose();
839
- this.locks.delete(path);
841
+ this.locks.delete(path2);
840
842
  }
841
843
  }
842
844
  };
@@ -849,10 +851,10 @@ var FileLock = class _FileLock {
849
851
  * @param mode The type of lock to acquire
850
852
  * @returns A FileLock instance if the lock was acquired, undefined otherwise
851
853
  */
852
- static maybeCreate(path, mode, nativeFlockSync) {
854
+ static maybeCreate(path2, mode, nativeFlockSync) {
853
855
  let fd;
854
856
  try {
855
- fd = openSync(path, "a+");
857
+ fd = openSync(path2, "a+");
856
858
  const flockFlags = mode === "exclusive" ? "exnb" : "shnb";
857
859
  nativeFlockSync(fd, flockFlags);
858
860
  const nativeLock = { fd, mode, nativeFlockSync };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@php-wasm/node",
3
- "version": "3.0.37",
3
+ "version": "3.0.39",
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": "1ac56b78f05f1c517f6b56beb527d6826b53aa82",
41
+ "gitHead": "ba92e55e300abaadb95b3a89e598af2cd6676951",
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.37",
53
- "@php-wasm/universal": "3.0.37",
54
- "@php-wasm/node-8-5": "3.0.37",
55
- "@php-wasm/node-8-4": "3.0.37",
56
- "@php-wasm/node-8-3": "3.0.37",
57
- "@php-wasm/node-8-2": "3.0.37",
58
- "@php-wasm/node-8-1": "3.0.37",
59
- "@php-wasm/node-8-0": "3.0.37",
60
- "@php-wasm/node-7-4": "3.0.37",
61
- "@php-wasm/node-7-3": "3.0.37",
62
- "@php-wasm/node-7-2": "3.0.37",
63
- "@php-wasm/logger": "3.0.37",
64
- "@php-wasm/util": "3.0.37",
65
- "@wp-playground/common": "3.0.37"
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"
66
66
  },
67
67
  "packageManager": "npm@10.9.2",
68
68
  "overrides": {