@duplojs/server 0.1.0-beta.1 → 0.1.0-beta.10

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 (198) hide show
  1. package/dist/_virtual/_rolldown/runtime.mjs +5 -1
  2. package/dist/command/argument.d.ts +2 -2
  3. package/dist/command/create.cjs +18 -10
  4. package/dist/command/create.d.ts +3 -3
  5. package/dist/command/create.mjs +18 -10
  6. package/dist/command/error.cjs +96 -43
  7. package/dist/command/error.d.ts +9 -1
  8. package/dist/command/error.mjs +95 -42
  9. package/dist/command/exec.d.ts +4 -3
  10. package/dist/command/help.cjs +28 -35
  11. package/dist/command/help.d.ts +1 -1
  12. package/dist/command/help.mjs +27 -34
  13. package/dist/command/index.cjs +4 -0
  14. package/dist/command/index.mjs +4 -2
  15. package/dist/command/options/base.cjs +21 -13
  16. package/dist/command/options/base.d.ts +6 -0
  17. package/dist/command/options/base.mjs +20 -14
  18. package/dist/command/options/defaults/array.d.ts +6 -4
  19. package/dist/command/options/defaults/boolean.cjs +21 -7
  20. package/dist/command/options/defaults/boolean.d.ts +6 -3
  21. package/dist/command/options/defaults/boolean.mjs +20 -8
  22. package/dist/command/options/defaults/simple.d.ts +6 -4
  23. package/dist/command/types/forbiddenInvalidIdentifier.d.ts +6 -0
  24. package/dist/command/types/index.d.ts +1 -0
  25. package/dist/common/environmentVariable/index.d.ts +1 -1
  26. package/dist/common/environmentVariable/overrideEnvironmentVariables.d.ts +1 -1
  27. package/dist/common/environmentVariable/parseEnvironmentFiles.d.ts +2 -1
  28. package/dist/common/index.cjs +3 -0
  29. package/dist/common/index.d.ts +1 -0
  30. package/dist/common/index.mjs +3 -1
  31. package/dist/common/meta/getCurrentDirectoryName.cjs +10 -0
  32. package/dist/common/meta/getCurrentDirectoryName.d.ts +7 -0
  33. package/dist/common/meta/getCurrentDirectoryName.mjs +7 -0
  34. package/dist/common/meta/index.d.ts +7 -0
  35. package/dist/dataStructure/common/codec/defaults/json.cjs +12 -1
  36. package/dist/dataStructure/common/codec/defaults/json.d.ts +2 -2
  37. package/dist/dataStructure/common/codec/defaults/json.mjs +12 -1
  38. package/dist/dataStructure/common/codec/defaults/string.cjs +12 -1
  39. package/dist/dataStructure/common/codec/defaults/string.d.ts +2 -2
  40. package/dist/dataStructure/common/codec/defaults/string.mjs +12 -1
  41. package/dist/dataStructure/common/error/defaultInterpreter.cjs +3 -1
  42. package/dist/dataStructure/common/error/defaultInterpreter.d.ts +7 -2
  43. package/dist/dataStructure/common/error/defaultInterpreter.mjs +3 -1
  44. package/dist/dataStructure/constraint/{exist.cjs → fileExist.cjs} +5 -5
  45. package/dist/dataStructure/constraint/fileExist.d.ts +10 -0
  46. package/dist/dataStructure/constraint/{exist.mjs → fileExist.mjs} +4 -4
  47. package/dist/dataStructure/constraint/folderExist.cjs +19 -0
  48. package/dist/dataStructure/constraint/folderExist.d.ts +10 -0
  49. package/dist/dataStructure/constraint/folderExist.mjs +15 -0
  50. package/dist/dataStructure/constraint/index.d.ts +2 -1
  51. package/dist/dataStructure/constraint/mimeType.cjs +1 -1
  52. package/dist/dataStructure/constraint/mimeType.mjs +1 -1
  53. package/dist/dataStructure/constraint/types/constraints.d.ts +4 -2
  54. package/dist/dataStructure/fundamentalType/folder.cjs +11 -0
  55. package/dist/dataStructure/fundamentalType/folder.d.ts +8 -0
  56. package/dist/dataStructure/fundamentalType/folder.mjs +8 -0
  57. package/dist/dataStructure/fundamentalType/index.d.ts +1 -0
  58. package/dist/dataStructure/fundamentalType/types/fundamentalTypes.d.ts +2 -0
  59. package/dist/dataStructure/helper/file.d.ts +1 -1
  60. package/dist/dataStructure/helper/fileExist.cjs +7 -0
  61. package/dist/dataStructure/helper/fileExist.d.ts +2 -0
  62. package/dist/dataStructure/helper/fileExist.mjs +7 -0
  63. package/dist/dataStructure/helper/folder.cjs +10 -0
  64. package/dist/dataStructure/helper/folder.d.ts +3 -0
  65. package/dist/dataStructure/helper/folder.mjs +8 -0
  66. package/dist/dataStructure/helper/folderExist.cjs +7 -0
  67. package/dist/dataStructure/helper/folderExist.d.ts +2 -0
  68. package/dist/dataStructure/helper/folderExist.mjs +7 -0
  69. package/dist/dataStructure/helper/index.d.ts +3 -1
  70. package/dist/dataStructure/index.cjs +29 -8
  71. package/dist/dataStructure/index.mjs +19 -6
  72. package/dist/dataStructure/type/folder.cjs +14 -0
  73. package/dist/dataStructure/type/folder.d.ts +11 -0
  74. package/dist/dataStructure/type/folder.mjs +11 -0
  75. package/dist/dataStructure/type/index.d.ts +1 -0
  76. package/dist/dataStructure/type/types/types.d.ts +2 -0
  77. package/dist/file/appendFile.cjs +46 -22
  78. package/dist/file/appendFile.d.ts +37 -5
  79. package/dist/file/appendFile.mjs +36 -23
  80. package/dist/file/appendTextFile.cjs +44 -20
  81. package/dist/file/appendTextFile.d.ts +37 -5
  82. package/dist/file/appendTextFile.mjs +34 -21
  83. package/dist/file/copy.cjs +36 -14
  84. package/dist/file/copy.d.ts +37 -5
  85. package/dist/file/copy.mjs +26 -15
  86. package/dist/file/createEntryInterface.cjs +6 -3
  87. package/dist/file/createEntryInterface.d.ts +1 -1
  88. package/dist/file/createEntryInterface.mjs +4 -2
  89. package/dist/file/ensureDirectory.cjs +37 -17
  90. package/dist/file/ensureDirectory.d.ts +30 -4
  91. package/dist/file/ensureDirectory.mjs +29 -18
  92. package/dist/file/ensureFile.cjs +41 -19
  93. package/dist/file/ensureFile.d.ts +33 -4
  94. package/dist/file/ensureFile.mjs +32 -20
  95. package/dist/file/exists.cjs +28 -14
  96. package/dist/file/exists.d.ts +21 -4
  97. package/dist/file/exists.mjs +23 -15
  98. package/dist/file/fileInterface.cjs +3 -1
  99. package/dist/file/fileInterface.d.ts +10 -9
  100. package/dist/file/fileInterface.mjs +3 -2
  101. package/dist/file/folderInterface.cjs +3 -1
  102. package/dist/file/folderInterface.d.ts +9 -8
  103. package/dist/file/folderInterface.mjs +3 -2
  104. package/dist/file/index.cjs +512 -0
  105. package/dist/file/index.d.ts +0 -1
  106. package/dist/file/index.mjs +291 -35
  107. package/dist/file/link.cjs +48 -22
  108. package/dist/file/link.d.ts +40 -5
  109. package/dist/file/link.mjs +37 -23
  110. package/dist/file/linkStat.cjs +29 -15
  111. package/dist/file/linkStat.d.ts +24 -4
  112. package/dist/file/linkStat.mjs +24 -16
  113. package/dist/file/makeDirectory.cjs +45 -21
  114. package/dist/file/makeDirectory.d.ts +35 -4
  115. package/dist/file/makeDirectory.mjs +35 -22
  116. package/dist/file/makeTemporaryDirectory.cjs +33 -15
  117. package/dist/file/makeTemporaryDirectory.d.ts +25 -2
  118. package/dist/file/makeTemporaryDirectory.mjs +26 -16
  119. package/dist/file/makeTemporaryFile.cjs +37 -20
  120. package/dist/file/makeTemporaryFile.d.ts +28 -2
  121. package/dist/file/makeTemporaryFile.mjs +30 -21
  122. package/dist/file/move.cjs +49 -23
  123. package/dist/file/move.d.ts +40 -5
  124. package/dist/file/move.mjs +38 -24
  125. package/dist/file/readDirectory.cjs +33 -9
  126. package/dist/file/readDirectory.d.ts +26 -5
  127. package/dist/file/readDirectory.mjs +25 -10
  128. package/dist/file/readFile.cjs +35 -17
  129. package/dist/file/readFile.d.ts +27 -4
  130. package/dist/file/readFile.mjs +28 -18
  131. package/dist/file/readJsonFile.cjs +35 -17
  132. package/dist/file/readJsonFile.d.ts +27 -5
  133. package/dist/file/readJsonFile.mjs +28 -18
  134. package/dist/file/readLink.cjs +31 -15
  135. package/dist/file/readLink.d.ts +24 -4
  136. package/dist/file/readLink.mjs +25 -16
  137. package/dist/file/readTextFile.cjs +35 -17
  138. package/dist/file/readTextFile.d.ts +27 -4
  139. package/dist/file/readTextFile.mjs +28 -18
  140. package/dist/file/realPath.cjs +27 -13
  141. package/dist/file/realPath.d.ts +21 -4
  142. package/dist/file/realPath.mjs +22 -14
  143. package/dist/file/relocate.cjs +52 -25
  144. package/dist/file/relocate.d.ts +40 -5
  145. package/dist/file/relocate.mjs +41 -26
  146. package/dist/file/remove.cjs +45 -23
  147. package/dist/file/remove.d.ts +32 -4
  148. package/dist/file/remove.mjs +36 -24
  149. package/dist/file/rename.cjs +52 -25
  150. package/dist/file/rename.d.ts +40 -5
  151. package/dist/file/rename.mjs +41 -26
  152. package/dist/file/setMode.cjs +29 -15
  153. package/dist/file/setMode.d.ts +24 -5
  154. package/dist/file/setMode.mjs +24 -16
  155. package/dist/file/setOwner.cjs +31 -15
  156. package/dist/file/setOwner.d.ts +25 -5
  157. package/dist/file/setOwner.mjs +25 -16
  158. package/dist/file/setTime.cjs +31 -15
  159. package/dist/file/setTime.d.ts +24 -5
  160. package/dist/file/setTime.mjs +25 -16
  161. package/dist/file/stat.cjs +29 -15
  162. package/dist/file/stat.d.ts +24 -4
  163. package/dist/file/stat.mjs +24 -16
  164. package/dist/file/symlink.cjs +42 -20
  165. package/dist/file/symlink.d.ts +34 -5
  166. package/dist/file/symlink.mjs +33 -21
  167. package/dist/file/truncate.cjs +43 -21
  168. package/dist/file/truncate.d.ts +36 -4
  169. package/dist/file/truncate.mjs +34 -22
  170. package/dist/file/unknownEntryInterface.cjs +5 -1
  171. package/dist/file/unknownEntryInterface.d.ts +8 -6
  172. package/dist/file/unknownEntryInterface.mjs +4 -2
  173. package/dist/file/walkDirectory.cjs +38 -15
  174. package/dist/file/walkDirectory.d.ts +25 -4
  175. package/dist/file/walkDirectory.mjs +32 -15
  176. package/dist/file/writeFile.cjs +45 -21
  177. package/dist/file/writeFile.d.ts +37 -5
  178. package/dist/file/writeFile.mjs +35 -22
  179. package/dist/file/writeJsonFile.cjs +48 -27
  180. package/dist/file/writeJsonFile.d.ts +37 -6
  181. package/dist/file/writeJsonFile.mjs +39 -28
  182. package/dist/file/writeTextFile.cjs +45 -21
  183. package/dist/file/writeTextFile.d.ts +37 -5
  184. package/dist/file/writeTextFile.mjs +35 -22
  185. package/dist/implementor.cjs +8 -5
  186. package/dist/implementor.d.ts +4 -4
  187. package/dist/implementor.mjs +8 -5
  188. package/dist/index.cjs +2 -0
  189. package/dist/index.mjs +2 -1
  190. package/dist/override.d.ts +8 -0
  191. package/package.json +4 -4
  192. package/dist/dataStructure/constraint/exist.d.ts +0 -10
  193. package/dist/dataStructure/helper/exist.cjs +0 -7
  194. package/dist/dataStructure/helper/exist.d.ts +0 -2
  195. package/dist/dataStructure/helper/exist.mjs +0 -7
  196. package/dist/file/types/fileSystemEither.d.ts +0 -2
  197. package/dist/file/types/index.d.ts +0 -1
  198. /package/{README → README.md} +0 -0
@@ -7,34 +7,43 @@ _duplojs_lang_either = require_runtime.__toESM(_duplojs_lang_either, 1);
7
7
  let _duplojs_lang_path = require("@duplojs/lang/path");
8
8
  _duplojs_lang_path = require_runtime.__toESM(_duplojs_lang_path, 1);
9
9
  //#region scripts/file/makeTemporaryFile.ts
10
+ var MakeTemporaryFileErrorPermissionDenied = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-make-temporary-file-permission-denied", Error) {};
11
+ var MakeTemporaryFileErrorAlreadyExists = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-make-temporary-file-already-exists", Error) {};
12
+ var MakeTemporaryFileErrorNotDirectory = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-make-temporary-file-not-directory", Error) {};
13
+ var MakeTemporaryFileErrorNoSpace = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-make-temporary-file-no-space", Error) {};
14
+ var MakeTemporaryFileErrorReadOnly = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-make-temporary-file-read-only", Error) {};
15
+ var MakeTemporaryFileErrorInvalidArgument = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-make-temporary-file-invalid-argument", Error) {};
16
+ var MakeTemporaryFileErrorTooManyOpenFiles = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-make-temporary-file-too-many-open-files", Error) {};
17
+ var MakeTemporaryFileError = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-make-temporary-file-error", Error) {};
10
18
  function handleNodeMakeTemporaryFileError(error) {
11
- if (typeof error === "object" && error !== null && "code" in error) {
12
- if (error.code === "EACCES" || error.code === "EPERM") return _duplojs_lang_either.left("file-system-make-temporary-file-permission-denied", error);
13
- else if (error.code === "EEXIST") return _duplojs_lang_either.left("file-system-make-temporary-file-already-exists", error);
14
- else if (error.code === "ENOTDIR") return _duplojs_lang_either.left("file-system-make-temporary-file-not-directory", error);
15
- else if (error.code === "ENOSPC") return _duplojs_lang_either.left("file-system-make-temporary-file-no-space", error);
16
- else if (error.code === "EROFS") return _duplojs_lang_either.left("file-system-make-temporary-file-read-only", error);
17
- else if (error.code === "EINVAL") return _duplojs_lang_either.left("file-system-make-temporary-file-invalid-argument", error);
18
- else if (error.code === "EMFILE" || error.code === "ENFILE") return _duplojs_lang_either.left("file-system-make-temporary-file-too-many-open-files", error);
19
+ let makeTemporaryFileError = void 0;
20
+ if ("code" in error) {
21
+ if (error.code === "EACCES" || error.code === "EPERM") makeTemporaryFileError = new MakeTemporaryFileErrorPermissionDenied(error);
22
+ else if (error.code === "EEXIST") makeTemporaryFileError = new MakeTemporaryFileErrorAlreadyExists(error);
23
+ else if (error.code === "ENOTDIR") makeTemporaryFileError = new MakeTemporaryFileErrorNotDirectory(error);
24
+ else if (error.code === "ENOSPC") makeTemporaryFileError = new MakeTemporaryFileErrorNoSpace(error);
25
+ else if (error.code === "EROFS") makeTemporaryFileError = new MakeTemporaryFileErrorReadOnly(error);
26
+ else if (error.code === "EINVAL") makeTemporaryFileError = new MakeTemporaryFileErrorInvalidArgument(error);
27
+ else if (error.code === "EMFILE" || error.code === "ENFILE") makeTemporaryFileError = new MakeTemporaryFileErrorTooManyOpenFiles(error);
19
28
  }
20
- return _duplojs_lang_either.left("file-system-make-temporary-file-error", error);
29
+ if (makeTemporaryFileError === void 0) makeTemporaryFileError = new MakeTemporaryFileError(error);
30
+ return _duplojs_lang_either.left("file-system-make-temporary-file-error", makeTemporaryFileError);
21
31
  }
22
32
  function handleDenoMakeTemporaryFileError(error) {
23
- if (error instanceof Deno.errors.PermissionDenied || error instanceof Deno.errors.NotCapable) return _duplojs_lang_either.left("file-system-make-temporary-file-permission-denied", error);
24
- if (error instanceof Deno.errors.AlreadyExists) return _duplojs_lang_either.left("file-system-make-temporary-file-already-exists", error);
25
- if (error instanceof Deno.errors.NotADirectory) return _duplojs_lang_either.left("file-system-make-temporary-file-not-directory", error);
26
- if (error instanceof Deno.errors.InvalidData) return _duplojs_lang_either.left("file-system-make-temporary-file-invalid-argument", error);
27
- return _duplojs_lang_either.left("file-system-make-temporary-file-error", error);
33
+ let makeTemporaryFileError = void 0;
34
+ if (error instanceof Deno.errors.PermissionDenied || error instanceof Deno.errors.NotCapable) makeTemporaryFileError = new MakeTemporaryFileErrorPermissionDenied(error);
35
+ else if (error instanceof Deno.errors.AlreadyExists) makeTemporaryFileError = new MakeTemporaryFileErrorAlreadyExists(error);
36
+ else if (error instanceof Deno.errors.NotADirectory) makeTemporaryFileError = new MakeTemporaryFileErrorNotDirectory(error);
37
+ else if (error instanceof Deno.errors.InvalidData) makeTemporaryFileError = new MakeTemporaryFileErrorInvalidArgument(error);
38
+ if (makeTemporaryFileError === void 0) makeTemporaryFileError = new MakeTemporaryFileError(error);
39
+ return _duplojs_lang_either.left("file-system-make-temporary-file-error", makeTemporaryFileError);
28
40
  }
29
41
  const makeTemporaryFile = require_implementor.implementFunction("makeTemporaryFile", {
30
42
  NODE: async (prefix, suffix) => {
31
- const fs = await require_implementor.nodeFileSystem.value;
32
- const os = await require_implementor.nodeOs.value;
33
- const crypto = await require_implementor.nodeCrypto.value;
34
- const tempPath = _duplojs_lang_common.forwardAsserts(os.tmpdir(), _duplojs_lang_path.is);
35
- const fileName = _duplojs_lang_common.forwardAsserts(`${prefix}${crypto.randomUUID()}${suffix ?? ""}`, _duplojs_lang_path.isSegment);
43
+ const tempPath = _duplojs_lang_common.forwardAsserts(require_implementor.nodeOs.value.tmpdir(), _duplojs_lang_path.is);
44
+ const fileName = _duplojs_lang_common.forwardAsserts(`${prefix}${require_implementor.nodeCrypto.value.randomUUID()}${suffix ?? ""}`, _duplojs_lang_path.isSegment);
36
45
  const fileTemporaryPath = _duplojs_lang_path.resolveRelative([tempPath, fileName]);
37
- return fs.open(fileTemporaryPath, "wx").then((fh) => fh.close()).then(() => _duplojs_lang_either.right("file-system-make-temporary-file", fileTemporaryPath)).catch(handleNodeMakeTemporaryFileError);
46
+ return require_implementor.nodeFileSystem.value.open(fileTemporaryPath, "wx").then((fh) => fh.close()).then(() => _duplojs_lang_either.right("file-system-make-temporary-file", fileTemporaryPath)).catch(handleNodeMakeTemporaryFileError);
38
47
  },
39
48
  DENO: (prefix, suffix) => Deno.makeTempFile({
40
49
  prefix,
@@ -42,4 +51,12 @@ const makeTemporaryFile = require_implementor.implementFunction("makeTemporaryFi
42
51
  }).then((value) => _duplojs_lang_either.right("file-system-make-temporary-file", value)).catch(handleDenoMakeTemporaryFileError)
43
52
  });
44
53
  //#endregion
54
+ exports.MakeTemporaryFileError = MakeTemporaryFileError;
55
+ exports.MakeTemporaryFileErrorAlreadyExists = MakeTemporaryFileErrorAlreadyExists;
56
+ exports.MakeTemporaryFileErrorInvalidArgument = MakeTemporaryFileErrorInvalidArgument;
57
+ exports.MakeTemporaryFileErrorNoSpace = MakeTemporaryFileErrorNoSpace;
58
+ exports.MakeTemporaryFileErrorNotDirectory = MakeTemporaryFileErrorNotDirectory;
59
+ exports.MakeTemporaryFileErrorPermissionDenied = MakeTemporaryFileErrorPermissionDenied;
60
+ exports.MakeTemporaryFileErrorReadOnly = MakeTemporaryFileErrorReadOnly;
61
+ exports.MakeTemporaryFileErrorTooManyOpenFiles = MakeTemporaryFileErrorTooManyOpenFiles;
45
62
  exports.makeTemporaryFile = makeTemporaryFile;
@@ -1,10 +1,36 @@
1
- import { FileSystemEither } from './types';
1
+ import * as DCommon from "@duplojs/lang/common";
2
2
  import * as DPath from "@duplojs/lang/path";
3
3
  import * as DEither from "@duplojs/lang/either";
4
- export type MakeTemporaryFileResult = FileSystemEither<DEither.Right<"make-temporary-file", string> | DEither.Left<"make-temporary-file-permission-denied", unknown> | DEither.Left<"make-temporary-file-already-exists", unknown> | DEither.Left<"make-temporary-file-not-directory", unknown> | DEither.Left<"make-temporary-file-no-space", unknown> | DEither.Left<"make-temporary-file-read-only", unknown> | DEither.Left<"make-temporary-file-invalid-argument", unknown> | DEither.Left<"make-temporary-file-too-many-open-files", unknown> | DEither.Left<"make-temporary-file-error", unknown>>;
4
+ declare const MakeTemporaryFileErrorPermissionDenied_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-make-temporary-file-permission-denied", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-make-temporary-file-permission-denied", unknown>>, unknown>;
5
+ export declare class MakeTemporaryFileErrorPermissionDenied extends MakeTemporaryFileErrorPermissionDenied_base {
6
+ }
7
+ declare const MakeTemporaryFileErrorAlreadyExists_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-make-temporary-file-already-exists", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-make-temporary-file-already-exists", unknown>>, unknown>;
8
+ export declare class MakeTemporaryFileErrorAlreadyExists extends MakeTemporaryFileErrorAlreadyExists_base {
9
+ }
10
+ declare const MakeTemporaryFileErrorNotDirectory_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-make-temporary-file-not-directory", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-make-temporary-file-not-directory", unknown>>, unknown>;
11
+ export declare class MakeTemporaryFileErrorNotDirectory extends MakeTemporaryFileErrorNotDirectory_base {
12
+ }
13
+ declare const MakeTemporaryFileErrorNoSpace_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-make-temporary-file-no-space", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-make-temporary-file-no-space", unknown>>, unknown>;
14
+ export declare class MakeTemporaryFileErrorNoSpace extends MakeTemporaryFileErrorNoSpace_base {
15
+ }
16
+ declare const MakeTemporaryFileErrorReadOnly_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-make-temporary-file-read-only", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-make-temporary-file-read-only", unknown>>, unknown>;
17
+ export declare class MakeTemporaryFileErrorReadOnly extends MakeTemporaryFileErrorReadOnly_base {
18
+ }
19
+ declare const MakeTemporaryFileErrorInvalidArgument_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-make-temporary-file-invalid-argument", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-make-temporary-file-invalid-argument", unknown>>, unknown>;
20
+ export declare class MakeTemporaryFileErrorInvalidArgument extends MakeTemporaryFileErrorInvalidArgument_base {
21
+ }
22
+ declare const MakeTemporaryFileErrorTooManyOpenFiles_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-make-temporary-file-too-many-open-files", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-make-temporary-file-too-many-open-files", unknown>>, unknown>;
23
+ export declare class MakeTemporaryFileErrorTooManyOpenFiles extends MakeTemporaryFileErrorTooManyOpenFiles_base {
24
+ }
25
+ declare const MakeTemporaryFileError_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-make-temporary-file-error", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-make-temporary-file-error", unknown>>, unknown>;
26
+ export declare class MakeTemporaryFileError extends MakeTemporaryFileError_base {
27
+ }
28
+ export type MakeTemporaryFileErrors = (MakeTemporaryFileErrorPermissionDenied | MakeTemporaryFileErrorAlreadyExists | MakeTemporaryFileErrorNotDirectory | MakeTemporaryFileErrorNoSpace | MakeTemporaryFileErrorReadOnly | MakeTemporaryFileErrorInvalidArgument | MakeTemporaryFileErrorTooManyOpenFiles | MakeTemporaryFileError);
29
+ export type MakeTemporaryFileResult = (DEither.Right<"file-system-make-temporary-file", string> | DEither.Left<"file-system-make-temporary-file-error", MakeTemporaryFileErrors>);
5
30
  declare module '../implementor' {
6
31
  interface ServerFunction {
7
32
  makeTemporaryFile(prefix: string & DPath.Segment, suffix?: string & DPath.Segment): Promise<MakeTemporaryFileResult>;
8
33
  }
9
34
  }
10
35
  export declare const makeTemporaryFile: (prefix: string & DPath.Segment, suffix?: string & DPath.Segment) => Promise<MakeTemporaryFileResult>;
36
+ export {};
@@ -3,34 +3,43 @@ import * as DCommon from "@duplojs/lang/common";
3
3
  import * as DEither from "@duplojs/lang/either";
4
4
  import * as DPath from "@duplojs/lang/path";
5
5
  //#region scripts/file/makeTemporaryFile.ts
6
+ var MakeTemporaryFileErrorPermissionDenied = class extends DCommon.DuploJSError.parentClass("file-system-make-temporary-file-permission-denied", Error) {};
7
+ var MakeTemporaryFileErrorAlreadyExists = class extends DCommon.DuploJSError.parentClass("file-system-make-temporary-file-already-exists", Error) {};
8
+ var MakeTemporaryFileErrorNotDirectory = class extends DCommon.DuploJSError.parentClass("file-system-make-temporary-file-not-directory", Error) {};
9
+ var MakeTemporaryFileErrorNoSpace = class extends DCommon.DuploJSError.parentClass("file-system-make-temporary-file-no-space", Error) {};
10
+ var MakeTemporaryFileErrorReadOnly = class extends DCommon.DuploJSError.parentClass("file-system-make-temporary-file-read-only", Error) {};
11
+ var MakeTemporaryFileErrorInvalidArgument = class extends DCommon.DuploJSError.parentClass("file-system-make-temporary-file-invalid-argument", Error) {};
12
+ var MakeTemporaryFileErrorTooManyOpenFiles = class extends DCommon.DuploJSError.parentClass("file-system-make-temporary-file-too-many-open-files", Error) {};
13
+ var MakeTemporaryFileError = class extends DCommon.DuploJSError.parentClass("file-system-make-temporary-file-error", Error) {};
6
14
  function handleNodeMakeTemporaryFileError(error) {
7
- if (typeof error === "object" && error !== null && "code" in error) {
8
- if (error.code === "EACCES" || error.code === "EPERM") return DEither.left("file-system-make-temporary-file-permission-denied", error);
9
- else if (error.code === "EEXIST") return DEither.left("file-system-make-temporary-file-already-exists", error);
10
- else if (error.code === "ENOTDIR") return DEither.left("file-system-make-temporary-file-not-directory", error);
11
- else if (error.code === "ENOSPC") return DEither.left("file-system-make-temporary-file-no-space", error);
12
- else if (error.code === "EROFS") return DEither.left("file-system-make-temporary-file-read-only", error);
13
- else if (error.code === "EINVAL") return DEither.left("file-system-make-temporary-file-invalid-argument", error);
14
- else if (error.code === "EMFILE" || error.code === "ENFILE") return DEither.left("file-system-make-temporary-file-too-many-open-files", error);
15
+ let makeTemporaryFileError = void 0;
16
+ if ("code" in error) {
17
+ if (error.code === "EACCES" || error.code === "EPERM") makeTemporaryFileError = new MakeTemporaryFileErrorPermissionDenied(error);
18
+ else if (error.code === "EEXIST") makeTemporaryFileError = new MakeTemporaryFileErrorAlreadyExists(error);
19
+ else if (error.code === "ENOTDIR") makeTemporaryFileError = new MakeTemporaryFileErrorNotDirectory(error);
20
+ else if (error.code === "ENOSPC") makeTemporaryFileError = new MakeTemporaryFileErrorNoSpace(error);
21
+ else if (error.code === "EROFS") makeTemporaryFileError = new MakeTemporaryFileErrorReadOnly(error);
22
+ else if (error.code === "EINVAL") makeTemporaryFileError = new MakeTemporaryFileErrorInvalidArgument(error);
23
+ else if (error.code === "EMFILE" || error.code === "ENFILE") makeTemporaryFileError = new MakeTemporaryFileErrorTooManyOpenFiles(error);
15
24
  }
16
- return DEither.left("file-system-make-temporary-file-error", error);
25
+ if (makeTemporaryFileError === void 0) makeTemporaryFileError = new MakeTemporaryFileError(error);
26
+ return DEither.left("file-system-make-temporary-file-error", makeTemporaryFileError);
17
27
  }
18
28
  function handleDenoMakeTemporaryFileError(error) {
19
- if (error instanceof Deno.errors.PermissionDenied || error instanceof Deno.errors.NotCapable) return DEither.left("file-system-make-temporary-file-permission-denied", error);
20
- if (error instanceof Deno.errors.AlreadyExists) return DEither.left("file-system-make-temporary-file-already-exists", error);
21
- if (error instanceof Deno.errors.NotADirectory) return DEither.left("file-system-make-temporary-file-not-directory", error);
22
- if (error instanceof Deno.errors.InvalidData) return DEither.left("file-system-make-temporary-file-invalid-argument", error);
23
- return DEither.left("file-system-make-temporary-file-error", error);
29
+ let makeTemporaryFileError = void 0;
30
+ if (error instanceof Deno.errors.PermissionDenied || error instanceof Deno.errors.NotCapable) makeTemporaryFileError = new MakeTemporaryFileErrorPermissionDenied(error);
31
+ else if (error instanceof Deno.errors.AlreadyExists) makeTemporaryFileError = new MakeTemporaryFileErrorAlreadyExists(error);
32
+ else if (error instanceof Deno.errors.NotADirectory) makeTemporaryFileError = new MakeTemporaryFileErrorNotDirectory(error);
33
+ else if (error instanceof Deno.errors.InvalidData) makeTemporaryFileError = new MakeTemporaryFileErrorInvalidArgument(error);
34
+ if (makeTemporaryFileError === void 0) makeTemporaryFileError = new MakeTemporaryFileError(error);
35
+ return DEither.left("file-system-make-temporary-file-error", makeTemporaryFileError);
24
36
  }
25
37
  const makeTemporaryFile = implementFunction("makeTemporaryFile", {
26
38
  NODE: async (prefix, suffix) => {
27
- const fs = await nodeFileSystem.value;
28
- const os = await nodeOs.value;
29
- const crypto = await nodeCrypto.value;
30
- const tempPath = DCommon.forwardAsserts(os.tmpdir(), DPath.is);
31
- const fileName = DCommon.forwardAsserts(`${prefix}${crypto.randomUUID()}${suffix ?? ""}`, DPath.isSegment);
39
+ const tempPath = DCommon.forwardAsserts(nodeOs.value.tmpdir(), DPath.is);
40
+ const fileName = DCommon.forwardAsserts(`${prefix}${nodeCrypto.value.randomUUID()}${suffix ?? ""}`, DPath.isSegment);
32
41
  const fileTemporaryPath = DPath.resolveRelative([tempPath, fileName]);
33
- return fs.open(fileTemporaryPath, "wx").then((fh) => fh.close()).then(() => DEither.right("file-system-make-temporary-file", fileTemporaryPath)).catch(handleNodeMakeTemporaryFileError);
42
+ return nodeFileSystem.value.open(fileTemporaryPath, "wx").then((fh) => fh.close()).then(() => DEither.right("file-system-make-temporary-file", fileTemporaryPath)).catch(handleNodeMakeTemporaryFileError);
34
43
  },
35
44
  DENO: (prefix, suffix) => Deno.makeTempFile({
36
45
  prefix,
@@ -38,4 +47,4 @@ const makeTemporaryFile = implementFunction("makeTemporaryFile", {
38
47
  }).then((value) => DEither.right("file-system-make-temporary-file", value)).catch(handleDenoMakeTemporaryFileError)
39
48
  });
40
49
  //#endregion
41
- export { makeTemporaryFile };
50
+ export { MakeTemporaryFileError, MakeTemporaryFileErrorAlreadyExists, MakeTemporaryFileErrorInvalidArgument, MakeTemporaryFileErrorNoSpace, MakeTemporaryFileErrorNotDirectory, MakeTemporaryFileErrorPermissionDenied, MakeTemporaryFileErrorReadOnly, MakeTemporaryFileErrorTooManyOpenFiles, makeTemporaryFile };
@@ -1,37 +1,52 @@
1
1
  const require_runtime = require("../_virtual/_rolldown/runtime.cjs");
2
2
  const require_implementor = require("../implementor.cjs");
3
+ let _duplojs_lang_common = require("@duplojs/lang/common");
4
+ _duplojs_lang_common = require_runtime.__toESM(_duplojs_lang_common, 1);
3
5
  let _duplojs_lang_either = require("@duplojs/lang/either");
4
6
  _duplojs_lang_either = require_runtime.__toESM(_duplojs_lang_either, 1);
5
7
  //#region scripts/file/move.ts
8
+ var MoveErrorNotFound = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-move-not-found", Error) {};
9
+ var MoveErrorPermissionDenied = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-move-permission-denied", Error) {};
10
+ var MoveErrorAlreadyExists = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-move-already-exists", Error) {};
11
+ var MoveErrorIsDirectory = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-move-is-directory", Error) {};
12
+ var MoveErrorNotDirectory = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-move-not-directory", Error) {};
13
+ var MoveErrorDirectoryNotEmpty = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-move-directory-not-empty", Error) {};
14
+ var MoveErrorReadOnly = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-move-read-only", Error) {};
15
+ var MoveErrorInvalidArgument = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-move-invalid-argument", Error) {};
16
+ var MoveErrorBusy = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-move-busy", Error) {};
17
+ var MoveErrorCrossDevice = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-move-cross-device", Error) {};
18
+ var MoveError = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-move-error", Error) {};
6
19
  function handleNodeMoveError(error) {
7
- if (typeof error === "object" && error !== null && "code" in error) {
8
- if (error.code === "ENOENT") return _duplojs_lang_either.left("file-system-move-not-found", error);
9
- else if (error.code === "EACCES" || error.code === "EPERM") return _duplojs_lang_either.left("file-system-move-permission-denied", error);
10
- else if (error.code === "EEXIST") return _duplojs_lang_either.left("file-system-move-already-exists", error);
11
- else if (error.code === "EISDIR") return _duplojs_lang_either.left("file-system-move-is-directory", error);
12
- else if (error.code === "ENOTDIR") return _duplojs_lang_either.left("file-system-move-not-directory", error);
13
- else if (error.code === "ENOTEMPTY") return _duplojs_lang_either.left("file-system-move-directory-not-empty", error);
14
- else if (error.code === "EROFS") return _duplojs_lang_either.left("file-system-move-read-only", error);
15
- else if (error.code === "EINVAL") return _duplojs_lang_either.left("file-system-move-invalid-argument", error);
16
- else if (error.code === "EBUSY") return _duplojs_lang_either.left("file-system-move-busy", error);
17
- else if (error.code === "EXDEV") return _duplojs_lang_either.left("file-system-move-cross-device", error);
20
+ let moveError = void 0;
21
+ if ("code" in error) {
22
+ if (error.code === "ENOENT") moveError = new MoveErrorNotFound(error);
23
+ else if (error.code === "EACCES" || error.code === "EPERM") moveError = new MoveErrorPermissionDenied(error);
24
+ else if (error.code === "EEXIST") moveError = new MoveErrorAlreadyExists(error);
25
+ else if (error.code === "EISDIR") moveError = new MoveErrorIsDirectory(error);
26
+ else if (error.code === "ENOTDIR") moveError = new MoveErrorNotDirectory(error);
27
+ else if (error.code === "ENOTEMPTY") moveError = new MoveErrorDirectoryNotEmpty(error);
28
+ else if (error.code === "EROFS") moveError = new MoveErrorReadOnly(error);
29
+ else if (error.code === "EINVAL") moveError = new MoveErrorInvalidArgument(error);
30
+ else if (error.code === "EBUSY") moveError = new MoveErrorBusy(error);
31
+ else if (error.code === "EXDEV") moveError = new MoveErrorCrossDevice(error);
18
32
  }
19
- return _duplojs_lang_either.left("file-system-move-error", error);
33
+ if (moveError === void 0) moveError = new MoveError(error);
34
+ return _duplojs_lang_either.left("file-system-move-error", moveError);
20
35
  }
21
36
  function handleDenoMoveError(error) {
22
- if (error instanceof Deno.errors.NotFound) return _duplojs_lang_either.left("file-system-move-not-found", error);
23
- if (error instanceof Deno.errors.PermissionDenied || error instanceof Deno.errors.NotCapable) return _duplojs_lang_either.left("file-system-move-permission-denied", error);
24
- if (error instanceof Deno.errors.AlreadyExists) return _duplojs_lang_either.left("file-system-move-already-exists", error);
25
- if (error instanceof Deno.errors.IsADirectory) return _duplojs_lang_either.left("file-system-move-is-directory", error);
26
- if (error instanceof Deno.errors.NotADirectory) return _duplojs_lang_either.left("file-system-move-not-directory", error);
27
- if (error instanceof Deno.errors.InvalidData) return _duplojs_lang_either.left("file-system-move-invalid-argument", error);
28
- if (error instanceof Deno.errors.Busy) return _duplojs_lang_either.left("file-system-move-busy", error);
29
- return _duplojs_lang_either.left("file-system-move-error", error);
37
+ let moveError = void 0;
38
+ if (error instanceof Deno.errors.NotFound) moveError = new MoveErrorNotFound(error);
39
+ else if (error instanceof Deno.errors.PermissionDenied || error instanceof Deno.errors.NotCapable) moveError = new MoveErrorPermissionDenied(error);
40
+ else if (error instanceof Deno.errors.AlreadyExists) moveError = new MoveErrorAlreadyExists(error);
41
+ else if (error instanceof Deno.errors.IsADirectory) moveError = new MoveErrorIsDirectory(error);
42
+ else if (error instanceof Deno.errors.NotADirectory) moveError = new MoveErrorNotDirectory(error);
43
+ else if (error instanceof Deno.errors.InvalidData) moveError = new MoveErrorInvalidArgument(error);
44
+ else if (error instanceof Deno.errors.Busy) moveError = new MoveErrorBusy(error);
45
+ if (moveError === void 0) moveError = new MoveError(error);
46
+ return _duplojs_lang_either.left("file-system-move-error", moveError);
30
47
  }
31
48
  const moveImplementation = require_implementor.implementFunction("move", {
32
- NODE: async (fromPath, toPath) => {
33
- return (await require_implementor.nodeFileSystem.value).rename(fromPath, toPath).then(() => _duplojs_lang_either.right("file-system-move")).catch(handleNodeMoveError);
34
- },
49
+ NODE: async (fromPath, toPath) => require_implementor.nodeFileSystem.value.rename(fromPath, toPath).then(() => _duplojs_lang_either.right("file-system-move")).catch(handleNodeMoveError),
35
50
  DENO: (fromPath, toPath) => Deno.rename(fromPath, toPath).then(() => _duplojs_lang_either.right("file-system-move")).catch(handleDenoMoveError)
36
51
  });
37
52
  function move(...args) {
@@ -42,4 +57,15 @@ function move(...args) {
42
57
  return moveImplementation(...args);
43
58
  }
44
59
  //#endregion
60
+ exports.MoveError = MoveError;
61
+ exports.MoveErrorAlreadyExists = MoveErrorAlreadyExists;
62
+ exports.MoveErrorBusy = MoveErrorBusy;
63
+ exports.MoveErrorCrossDevice = MoveErrorCrossDevice;
64
+ exports.MoveErrorDirectoryNotEmpty = MoveErrorDirectoryNotEmpty;
65
+ exports.MoveErrorInvalidArgument = MoveErrorInvalidArgument;
66
+ exports.MoveErrorIsDirectory = MoveErrorIsDirectory;
67
+ exports.MoveErrorNotDirectory = MoveErrorNotDirectory;
68
+ exports.MoveErrorNotFound = MoveErrorNotFound;
69
+ exports.MoveErrorPermissionDenied = MoveErrorPermissionDenied;
70
+ exports.MoveErrorReadOnly = MoveErrorReadOnly;
45
71
  exports.move = move;
@@ -1,11 +1,46 @@
1
- import { FileSystemEither } from './types';
2
1
  import type * as DPath from "@duplojs/lang/path";
3
2
  import * as DEither from "@duplojs/lang/either";
4
- export type MoveResult = FileSystemEither<DEither.Right<"move", void> | DEither.Left<"move-not-found", unknown> | DEither.Left<"move-permission-denied", unknown> | DEither.Left<"move-already-exists", unknown> | DEither.Left<"move-is-directory", unknown> | DEither.Left<"move-not-directory", unknown> | DEither.Left<"move-directory-not-empty", unknown> | DEither.Left<"move-read-only", unknown> | DEither.Left<"move-invalid-argument", unknown> | DEither.Left<"move-busy", unknown> | DEither.Left<"move-cross-device", unknown> | DEither.Left<"move-error", unknown>>;
3
+ import * as DCommon from "@duplojs/lang/common";
4
+ declare const MoveErrorNotFound_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-move-not-found", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-move-not-found", unknown>>, unknown>;
5
+ export declare class MoveErrorNotFound extends MoveErrorNotFound_base {
6
+ }
7
+ declare const MoveErrorPermissionDenied_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-move-permission-denied", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-move-permission-denied", unknown>>, unknown>;
8
+ export declare class MoveErrorPermissionDenied extends MoveErrorPermissionDenied_base {
9
+ }
10
+ declare const MoveErrorAlreadyExists_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-move-already-exists", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-move-already-exists", unknown>>, unknown>;
11
+ export declare class MoveErrorAlreadyExists extends MoveErrorAlreadyExists_base {
12
+ }
13
+ declare const MoveErrorIsDirectory_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-move-is-directory", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-move-is-directory", unknown>>, unknown>;
14
+ export declare class MoveErrorIsDirectory extends MoveErrorIsDirectory_base {
15
+ }
16
+ declare const MoveErrorNotDirectory_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-move-not-directory", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-move-not-directory", unknown>>, unknown>;
17
+ export declare class MoveErrorNotDirectory extends MoveErrorNotDirectory_base {
18
+ }
19
+ declare const MoveErrorDirectoryNotEmpty_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-move-directory-not-empty", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-move-directory-not-empty", unknown>>, unknown>;
20
+ export declare class MoveErrorDirectoryNotEmpty extends MoveErrorDirectoryNotEmpty_base {
21
+ }
22
+ declare const MoveErrorReadOnly_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-move-read-only", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-move-read-only", unknown>>, unknown>;
23
+ export declare class MoveErrorReadOnly extends MoveErrorReadOnly_base {
24
+ }
25
+ declare const MoveErrorInvalidArgument_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-move-invalid-argument", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-move-invalid-argument", unknown>>, unknown>;
26
+ export declare class MoveErrorInvalidArgument extends MoveErrorInvalidArgument_base {
27
+ }
28
+ declare const MoveErrorBusy_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-move-busy", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-move-busy", unknown>>, unknown>;
29
+ export declare class MoveErrorBusy extends MoveErrorBusy_base {
30
+ }
31
+ declare const MoveErrorCrossDevice_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-move-cross-device", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-move-cross-device", unknown>>, unknown>;
32
+ export declare class MoveErrorCrossDevice extends MoveErrorCrossDevice_base {
33
+ }
34
+ declare const MoveError_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-move-error", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-move-error", unknown>>, unknown>;
35
+ export declare class MoveError extends MoveError_base {
36
+ }
37
+ export type MoveErrors = (MoveErrorNotFound | MoveErrorPermissionDenied | MoveErrorAlreadyExists | MoveErrorIsDirectory | MoveErrorNotDirectory | MoveErrorDirectoryNotEmpty | MoveErrorReadOnly | MoveErrorInvalidArgument | MoveErrorBusy | MoveErrorCrossDevice | MoveError);
38
+ export type MoveResult = (DEither.Right<"file-system-move", void> | DEither.Left<"file-system-move-error", MoveErrors>);
5
39
  declare module '../implementor' {
6
40
  interface ServerFunction {
7
- move(fromPath: string & DPath.Path, toPath: string & DPath.Path): Promise<MoveResult>;
41
+ move(fromPath: DPath.AnyPath, toPath: DPath.AnyPath): Promise<MoveResult>;
8
42
  }
9
43
  }
10
- export declare function move(toPath: string & DPath.Path): (fromPath: string & DPath.Path) => Promise<MoveResult>;
11
- export declare function move(fromPath: string & DPath.Path, toPath: string & DPath.Path): Promise<MoveResult>;
44
+ export declare function move(toPath: DPath.AnyPath): (fromPath: DPath.AnyPath) => Promise<MoveResult>;
45
+ export declare function move(fromPath: DPath.AnyPath, toPath: DPath.AnyPath): Promise<MoveResult>;
46
+ export {};
@@ -1,35 +1,49 @@
1
1
  import { implementFunction, nodeFileSystem } from "../implementor.mjs";
2
+ import * as DCommon from "@duplojs/lang/common";
2
3
  import * as DEither from "@duplojs/lang/either";
3
4
  //#region scripts/file/move.ts
5
+ var MoveErrorNotFound = class extends DCommon.DuploJSError.parentClass("file-system-move-not-found", Error) {};
6
+ var MoveErrorPermissionDenied = class extends DCommon.DuploJSError.parentClass("file-system-move-permission-denied", Error) {};
7
+ var MoveErrorAlreadyExists = class extends DCommon.DuploJSError.parentClass("file-system-move-already-exists", Error) {};
8
+ var MoveErrorIsDirectory = class extends DCommon.DuploJSError.parentClass("file-system-move-is-directory", Error) {};
9
+ var MoveErrorNotDirectory = class extends DCommon.DuploJSError.parentClass("file-system-move-not-directory", Error) {};
10
+ var MoveErrorDirectoryNotEmpty = class extends DCommon.DuploJSError.parentClass("file-system-move-directory-not-empty", Error) {};
11
+ var MoveErrorReadOnly = class extends DCommon.DuploJSError.parentClass("file-system-move-read-only", Error) {};
12
+ var MoveErrorInvalidArgument = class extends DCommon.DuploJSError.parentClass("file-system-move-invalid-argument", Error) {};
13
+ var MoveErrorBusy = class extends DCommon.DuploJSError.parentClass("file-system-move-busy", Error) {};
14
+ var MoveErrorCrossDevice = class extends DCommon.DuploJSError.parentClass("file-system-move-cross-device", Error) {};
15
+ var MoveError = class extends DCommon.DuploJSError.parentClass("file-system-move-error", Error) {};
4
16
  function handleNodeMoveError(error) {
5
- if (typeof error === "object" && error !== null && "code" in error) {
6
- if (error.code === "ENOENT") return DEither.left("file-system-move-not-found", error);
7
- else if (error.code === "EACCES" || error.code === "EPERM") return DEither.left("file-system-move-permission-denied", error);
8
- else if (error.code === "EEXIST") return DEither.left("file-system-move-already-exists", error);
9
- else if (error.code === "EISDIR") return DEither.left("file-system-move-is-directory", error);
10
- else if (error.code === "ENOTDIR") return DEither.left("file-system-move-not-directory", error);
11
- else if (error.code === "ENOTEMPTY") return DEither.left("file-system-move-directory-not-empty", error);
12
- else if (error.code === "EROFS") return DEither.left("file-system-move-read-only", error);
13
- else if (error.code === "EINVAL") return DEither.left("file-system-move-invalid-argument", error);
14
- else if (error.code === "EBUSY") return DEither.left("file-system-move-busy", error);
15
- else if (error.code === "EXDEV") return DEither.left("file-system-move-cross-device", error);
17
+ let moveError = void 0;
18
+ if ("code" in error) {
19
+ if (error.code === "ENOENT") moveError = new MoveErrorNotFound(error);
20
+ else if (error.code === "EACCES" || error.code === "EPERM") moveError = new MoveErrorPermissionDenied(error);
21
+ else if (error.code === "EEXIST") moveError = new MoveErrorAlreadyExists(error);
22
+ else if (error.code === "EISDIR") moveError = new MoveErrorIsDirectory(error);
23
+ else if (error.code === "ENOTDIR") moveError = new MoveErrorNotDirectory(error);
24
+ else if (error.code === "ENOTEMPTY") moveError = new MoveErrorDirectoryNotEmpty(error);
25
+ else if (error.code === "EROFS") moveError = new MoveErrorReadOnly(error);
26
+ else if (error.code === "EINVAL") moveError = new MoveErrorInvalidArgument(error);
27
+ else if (error.code === "EBUSY") moveError = new MoveErrorBusy(error);
28
+ else if (error.code === "EXDEV") moveError = new MoveErrorCrossDevice(error);
16
29
  }
17
- return DEither.left("file-system-move-error", error);
30
+ if (moveError === void 0) moveError = new MoveError(error);
31
+ return DEither.left("file-system-move-error", moveError);
18
32
  }
19
33
  function handleDenoMoveError(error) {
20
- if (error instanceof Deno.errors.NotFound) return DEither.left("file-system-move-not-found", error);
21
- if (error instanceof Deno.errors.PermissionDenied || error instanceof Deno.errors.NotCapable) return DEither.left("file-system-move-permission-denied", error);
22
- if (error instanceof Deno.errors.AlreadyExists) return DEither.left("file-system-move-already-exists", error);
23
- if (error instanceof Deno.errors.IsADirectory) return DEither.left("file-system-move-is-directory", error);
24
- if (error instanceof Deno.errors.NotADirectory) return DEither.left("file-system-move-not-directory", error);
25
- if (error instanceof Deno.errors.InvalidData) return DEither.left("file-system-move-invalid-argument", error);
26
- if (error instanceof Deno.errors.Busy) return DEither.left("file-system-move-busy", error);
27
- return DEither.left("file-system-move-error", error);
34
+ let moveError = void 0;
35
+ if (error instanceof Deno.errors.NotFound) moveError = new MoveErrorNotFound(error);
36
+ else if (error instanceof Deno.errors.PermissionDenied || error instanceof Deno.errors.NotCapable) moveError = new MoveErrorPermissionDenied(error);
37
+ else if (error instanceof Deno.errors.AlreadyExists) moveError = new MoveErrorAlreadyExists(error);
38
+ else if (error instanceof Deno.errors.IsADirectory) moveError = new MoveErrorIsDirectory(error);
39
+ else if (error instanceof Deno.errors.NotADirectory) moveError = new MoveErrorNotDirectory(error);
40
+ else if (error instanceof Deno.errors.InvalidData) moveError = new MoveErrorInvalidArgument(error);
41
+ else if (error instanceof Deno.errors.Busy) moveError = new MoveErrorBusy(error);
42
+ if (moveError === void 0) moveError = new MoveError(error);
43
+ return DEither.left("file-system-move-error", moveError);
28
44
  }
29
45
  const moveImplementation = implementFunction("move", {
30
- NODE: async (fromPath, toPath) => {
31
- return (await nodeFileSystem.value).rename(fromPath, toPath).then(() => DEither.right("file-system-move")).catch(handleNodeMoveError);
32
- },
46
+ NODE: async (fromPath, toPath) => nodeFileSystem.value.rename(fromPath, toPath).then(() => DEither.right("file-system-move")).catch(handleNodeMoveError),
33
47
  DENO: (fromPath, toPath) => Deno.rename(fromPath, toPath).then(() => DEither.right("file-system-move")).catch(handleDenoMoveError)
34
48
  });
35
49
  function move(...args) {
@@ -40,4 +54,4 @@ function move(...args) {
40
54
  return moveImplementation(...args);
41
55
  }
42
56
  //#endregion
43
- export { move };
57
+ export { MoveError, MoveErrorAlreadyExists, MoveErrorBusy, MoveErrorCrossDevice, MoveErrorDirectoryNotEmpty, MoveErrorInvalidArgument, MoveErrorIsDirectory, MoveErrorNotDirectory, MoveErrorNotFound, MoveErrorPermissionDenied, MoveErrorReadOnly, move };
@@ -1,20 +1,44 @@
1
1
  const require_runtime = require("../_virtual/_rolldown/runtime.cjs");
2
2
  const require_implementor = require("../implementor.cjs");
3
+ const require_getCurrentWorkDirectoryOrThrow = require("../common/getCurrentWorkDirectoryOrThrow.cjs");
4
+ let _duplojs_lang_common = require("@duplojs/lang/common");
5
+ _duplojs_lang_common = require_runtime.__toESM(_duplojs_lang_common, 1);
3
6
  let _duplojs_lang_either = require("@duplojs/lang/either");
4
7
  _duplojs_lang_either = require_runtime.__toESM(_duplojs_lang_either, 1);
8
+ let _duplojs_lang_path = require("@duplojs/lang/path");
9
+ _duplojs_lang_path = require_runtime.__toESM(_duplojs_lang_path, 1);
10
+ let _duplojs_lang_array = require("@duplojs/lang/array");
11
+ _duplojs_lang_array = require_runtime.__toESM(_duplojs_lang_array, 1);
5
12
  //#region scripts/file/readDirectory.ts
13
+ var ReadDirectoryErrorNotFound = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-read-directory-not-found", Error) {};
14
+ var ReadDirectoryErrorPermissionDenied = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-read-directory-permission-denied", Error) {};
15
+ var ReadDirectoryErrorNotDirectory = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-read-directory-not-directory", Error) {};
16
+ var ReadDirectoryErrorTooManyOpenFiles = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-read-directory-too-many-open-files", Error) {};
17
+ var ReadDirectoryErrorBusy = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-read-directory-busy", Error) {};
18
+ var ReadDirectoryError = class extends _duplojs_lang_common.DuploJSError.parentClass("file-system-read-directory-error", Error) {};
6
19
  function handleNodeReadDirectoryError(error) {
7
- if (typeof error === "object" && error !== null && "code" in error) {
8
- if (error.code === "ENOENT") return _duplojs_lang_either.left("file-system-read-directory-not-found", error);
9
- else if (error.code === "EACCES" || error.code === "EPERM") return _duplojs_lang_either.left("file-system-read-directory-permission-denied", error);
10
- else if (error.code === "ENOTDIR") return _duplojs_lang_either.left("file-system-read-directory-not-directory", error);
11
- else if (error.code === "EMFILE" || error.code === "ENFILE") return _duplojs_lang_either.left("file-system-read-directory-too-many-open-files", error);
12
- else if (error.code === "EBUSY") return _duplojs_lang_either.left("file-system-read-directory-busy", error);
20
+ let readDirectoryError = void 0;
21
+ if ("code" in error) {
22
+ if (error.code === "ENOENT") readDirectoryError = new ReadDirectoryErrorNotFound(error);
23
+ else if (error.code === "EACCES" || error.code === "EPERM") readDirectoryError = new ReadDirectoryErrorPermissionDenied(error);
24
+ else if (error.code === "ENOTDIR") readDirectoryError = new ReadDirectoryErrorNotDirectory(error);
25
+ else if (error.code === "EMFILE" || error.code === "ENFILE") readDirectoryError = new ReadDirectoryErrorTooManyOpenFiles(error);
26
+ else if (error.code === "EBUSY") readDirectoryError = new ReadDirectoryErrorBusy(error);
13
27
  }
14
- return _duplojs_lang_either.left("file-system-read-directory-error", error);
28
+ if (readDirectoryError === void 0) readDirectoryError = new ReadDirectoryError(error);
29
+ return _duplojs_lang_either.left("file-system-read-directory-error", readDirectoryError);
15
30
  }
16
- const readDirectory = require_implementor.implementFunction("readDirectory", { NODE: async (path, params) => {
17
- return (await require_implementor.nodeFileSystem.value).readdir(path, { recursive: params?.recursive }).then((value) => _duplojs_lang_either.right("file-system-read-directory", value)).catch(handleNodeReadDirectoryError);
31
+ const readDirectory = require_implementor.implementFunction("readDirectory", { NODE: (path, params) => {
32
+ return (params?.absolute ? require_implementor.nodeFileSystem.value.readdir(path, {
33
+ recursive: params.recursive,
34
+ withFileTypes: true
35
+ }).then((value) => _duplojs_lang_array.map(value, ({ name, parentPath }) => _duplojs_lang_path.resolveFrom(require_getCurrentWorkDirectoryOrThrow.getCurrentWorkDirectoryOrThrow(), [_duplojs_lang_path.normalize(`${parentPath}/${name}`)]))) : require_implementor.nodeFileSystem.value.readdir(path, { recursive: params?.recursive }).then((value) => _duplojs_lang_array.map(value, (subPath) => _duplojs_lang_path.normalize(subPath)))).then(_duplojs_lang_common.innerPipe((paths) => params?.matcher ? _duplojs_lang_array.filter(paths, params.matcher) : paths, (value) => _duplojs_lang_either.right("file-system-read-directory", value))).catch(handleNodeReadDirectoryError);
18
36
  } });
19
37
  //#endregion
38
+ exports.ReadDirectoryError = ReadDirectoryError;
39
+ exports.ReadDirectoryErrorBusy = ReadDirectoryErrorBusy;
40
+ exports.ReadDirectoryErrorNotDirectory = ReadDirectoryErrorNotDirectory;
41
+ exports.ReadDirectoryErrorNotFound = ReadDirectoryErrorNotFound;
42
+ exports.ReadDirectoryErrorPermissionDenied = ReadDirectoryErrorPermissionDenied;
43
+ exports.ReadDirectoryErrorTooManyOpenFiles = ReadDirectoryErrorTooManyOpenFiles;
20
44
  exports.readDirectory = readDirectory;
@@ -1,14 +1,35 @@
1
- import { FileSystemEither } from './types';
2
- import type * as DPath from "@duplojs/lang/path";
1
+ import * as DPath from "@duplojs/lang/path";
3
2
  import * as DEither from "@duplojs/lang/either";
3
+ import * as DCommon from "@duplojs/lang/common";
4
+ declare const ReadDirectoryErrorNotFound_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-read-directory-not-found", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-read-directory-not-found", unknown>>, unknown>;
5
+ export declare class ReadDirectoryErrorNotFound extends ReadDirectoryErrorNotFound_base {
6
+ }
7
+ declare const ReadDirectoryErrorPermissionDenied_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-read-directory-permission-denied", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-read-directory-permission-denied", unknown>>, unknown>;
8
+ export declare class ReadDirectoryErrorPermissionDenied extends ReadDirectoryErrorPermissionDenied_base {
9
+ }
10
+ declare const ReadDirectoryErrorNotDirectory_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-read-directory-not-directory", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-read-directory-not-directory", unknown>>, unknown>;
11
+ export declare class ReadDirectoryErrorNotDirectory extends ReadDirectoryErrorNotDirectory_base {
12
+ }
13
+ declare const ReadDirectoryErrorTooManyOpenFiles_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-read-directory-too-many-open-files", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-read-directory-too-many-open-files", unknown>>, unknown>;
14
+ export declare class ReadDirectoryErrorTooManyOpenFiles extends ReadDirectoryErrorTooManyOpenFiles_base {
15
+ }
16
+ declare const ReadDirectoryErrorBusy_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-read-directory-busy", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-read-directory-busy", unknown>>, unknown>;
17
+ export declare class ReadDirectoryErrorBusy extends ReadDirectoryErrorBusy_base {
18
+ }
19
+ declare const ReadDirectoryError_base: abstract new (error: Error) => DCommon.DuploJSError<"file-system-read-directory-error", Error> & import('@duplojs/lang/kind').Kind<import('@duplojs/lang/kind').Handler<import('@duplojs/lang/kind').Definition<"@DuplojsLangCommon/duplojs-error-file-system-read-directory-error", unknown>>, unknown>;
20
+ export declare class ReadDirectoryError extends ReadDirectoryError_base {
21
+ }
22
+ export type ReadDirectoryErrors = (ReadDirectoryErrorNotFound | ReadDirectoryErrorPermissionDenied | ReadDirectoryErrorNotDirectory | ReadDirectoryErrorTooManyOpenFiles | ReadDirectoryErrorBusy | ReadDirectoryError);
4
23
  interface ReadDirectoryParams {
5
24
  recursive?: boolean;
25
+ absolute?: boolean;
26
+ matcher?: DPath.PathMatcher;
6
27
  }
7
- export type ReadDirectoryResult = FileSystemEither<DEither.Right<"read-directory", (string & DPath.Path)[]> | DEither.Left<"read-directory-not-found", unknown> | DEither.Left<"read-directory-permission-denied", unknown> | DEither.Left<"read-directory-not-directory", unknown> | DEither.Left<"read-directory-too-many-open-files", unknown> | DEither.Left<"read-directory-busy", unknown> | DEither.Left<"read-directory-error", unknown>>;
28
+ export type ReadDirectoryResult<GenericParams extends ReadDirectoryParams = ReadDirectoryParams> = (DEither.Right<"file-system-read-directory", readonly (string & DPath.Path & (DCommon.IsEqual<GenericParams["absolute"], true> extends true ? DPath.Absolute : unknown))[]> | DEither.Left<"file-system-read-directory-error", ReadDirectoryErrors>);
8
29
  declare module '../implementor' {
9
30
  interface ServerFunction {
10
- readDirectory(path: string & DPath.Path, params?: ReadDirectoryParams): Promise<ReadDirectoryResult>;
31
+ readDirectory<const GenericParams extends ReadDirectoryParams = {}>(path: DPath.AnyPath, params?: GenericParams): Promise<ReadDirectoryResult<GenericParams>>;
11
32
  }
12
33
  }
13
- export declare const readDirectory: (path: string & DPath.Path, params?: ReadDirectoryParams) => Promise<ReadDirectoryResult>;
34
+ export declare const readDirectory: <const GenericParams extends ReadDirectoryParams = {}>(path: DPath.AnyPath, params?: GenericParams) => Promise<ReadDirectoryResult<GenericParams>>;
14
35
  export {};