@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
@@ -1,13 +1,25 @@
1
1
  import { createKind } from "../../kind.mjs";
2
- import { constructOption } from "../base.mjs";
2
+ import { findOptionToken, optionKind } from "../base.mjs";
3
+ import * as DArray from "@duplojs/lang/array";
3
4
  //#region scripts/command/options/defaults/boolean.ts
4
5
  const booleanOptionKind = createKind("command-boolean-option");
5
- const createBooleanOption = constructOption(booleanOptionKind, ({ init }) => (name, params) => init(name, (self, value, error) => {
6
- if (typeof value === "string") return error.addUnexpectedOptionValueIssue(self.name, value);
7
- return value !== null;
8
- }, {
9
- description: params?.description ?? null,
10
- aliases: params?.aliases ?? []
11
- }));
6
+ function createBooleanOption(name, params) {
7
+ const self = {
8
+ name,
9
+ description: params?.description ?? null,
10
+ aliases: params?.aliases ?? [],
11
+ execute: (args, error) => {
12
+ const token = findOptionToken(args, self);
13
+ if (token?.value !== void 0) return Promise.resolve(error.addUnexpectedOptionValueIssue(self.name, token.value));
14
+ return Promise.resolve({
15
+ result: token !== null,
16
+ argumentRest: token ? DArray.spliceDelete(args, token.index, 1) : args
17
+ });
18
+ },
19
+ [optionKind.runTimeKey]: null,
20
+ [booleanOptionKind.runTimeKey]: null
21
+ };
22
+ return self;
23
+ }
12
24
  //#endregion
13
25
  export { booleanOptionKind, createBooleanOption };
@@ -1,5 +1,5 @@
1
1
  import { Option } from '../base';
2
- import { EligibleType } from '../../types';
2
+ import { EligibleType, ForbiddenInvalidIdentifier } from '../../types';
3
3
  import type * as DCommon from "@duplojs/lang/common";
4
4
  import type * as DKind from "@duplojs/lang/kind";
5
5
  import type * as DDataStructure from "@duplojs/lang/dataStructure";
@@ -8,9 +8,11 @@ export interface SimpleOption<GenericName extends string = string, GenericValue
8
8
  readonly dataStructure: DDataStructure.Structure<GenericValue>;
9
9
  readonly required: boolean;
10
10
  }
11
- export interface CreateSimpleOptionParams {
11
+ export interface CreateSimpleOptionParams<GenericAliases extends readonly string[] = readonly string[]> {
12
12
  description?: string;
13
- aliases?: readonly string[];
13
+ aliases?: (GenericAliases & {
14
+ readonly [Index in keyof GenericAliases]: ForbiddenInvalidIdentifier<GenericAliases[Index]>;
15
+ });
14
16
  required?: boolean;
15
17
  }
16
- export declare const createOption: <GenericName extends string, GenericStructure extends DDataStructure.Structure<EligibleType>, GenericValue extends DDataStructure.StructureValue<GenericStructure>, const GenericParams extends CreateSimpleOptionParams = {}>(name: GenericName, dataStructure: GenericStructure, params?: GenericParams & CreateSimpleOptionParams) => SimpleOption<GenericName, (GenericValue | (DCommon.IsEqual<GenericParams["required"], true> extends true ? never : undefined))>;
18
+ export declare const createOption: <GenericName extends string, GenericStructure extends DDataStructure.Structure<EligibleType>, GenericValue extends DDataStructure.StructureValue<GenericStructure>, const GenericAliases extends readonly string[] = readonly string[], const GenericParams extends CreateSimpleOptionParams<GenericAliases> = {}>(name: GenericName & ForbiddenInvalidIdentifier<GenericName>, dataStructure: GenericStructure, params?: GenericParams & CreateSimpleOptionParams<GenericAliases>) => SimpleOption<GenericName, (GenericValue | (DCommon.IsEqual<GenericParams["required"], true> extends true ? never : undefined))>;
@@ -0,0 +1,6 @@
1
+ import type * as DCommon from "@duplojs/lang/common";
2
+ import type * as DString from "@duplojs/lang/string";
3
+ type AlphanumericCharacter = (DString.CharactersRangeStore["a-z" | "A-Z"] | DString.Digit);
4
+ type AllowedIdentifierCharacter = (AlphanumericCharacter | "_" | "-");
5
+ export type ForbiddenInvalidIdentifier<GenericName extends string> = DCommon.ContainExtends<GenericName, DCommon.BaseConstraint> extends true ? DCommon.ComputedTypeError<"Identifier cannot be a constrained string."> : DString.IsLiteral<GenericName> extends true ? DCommon.IsUnion<GenericName> extends true ? DCommon.ComputedTypeError<"Identifier must be a single string literal."> : DCommon.IsEqual<GenericName, ""> extends true ? DCommon.ComputedTypeError<"Identifier cannot be empty."> : DString.StartsWith<GenericName, AlphanumericCharacter> extends true ? DString.IsAllowedString<GenericName, AllowedIdentifierCharacter> extends true ? DString.IsAllowedString<GenericName, DString.Digit> extends false ? unknown : DCommon.ComputedTypeError<`Identifier "${GenericName}" cannot contain only digits.`> : DCommon.ComputedTypeError<`Identifier "${GenericName}" contains invalid characters (allowed: A-Z, a-z, 0-9, "_" and "-").`> : DCommon.ComputedTypeError<`Identifier "${GenericName}" must start with a letter or digit.`> : DCommon.ComputedTypeError<"Identifier must be a known string literal.">;
6
+ export {};
@@ -1,2 +1,3 @@
1
1
  export type * from './eligibleType';
2
2
  export type * from './forbiddenDuplicateName';
3
+ export type * from './forbiddenInvalidIdentifier';
@@ -3,7 +3,7 @@ import * as DEither from "@duplojs/lang/either";
3
3
  import type * as DPath from "@duplojs/lang/path";
4
4
  import type * as DSFile from '../../file';
5
5
  export interface EnvironmentVariableFileParams {
6
- includedEnvironmentFiles?: (string & DPath.Path)[];
6
+ includedEnvironmentFiles?: DPath.AnyPath[];
7
7
  override?: boolean;
8
8
  justRead?: boolean;
9
9
  codecs?: DDataStructure.Codecs;
@@ -1,3 +1,3 @@
1
- export declare function overrideEnvironmentVariables(arrayEnv: Record<string, string>[], override: boolean): {
1
+ export declare function overrideEnvironmentVariables(arrayEnv: readonly Record<string, string>[], override: boolean): {
2
2
  [x: string]: string;
3
3
  };
@@ -1,4 +1,5 @@
1
1
  import type * as DPath from "@duplojs/lang/path";
2
2
  import * as DEither from "@duplojs/lang/either";
3
+ import * as DSFile from '../../file';
3
4
  export declare function parseEnvironmentLine(line: string): Record<string, string>;
4
- export declare function parseEnvironmentFiles(baseEnv: Record<string, string>, paths: (string & DPath.Path)[]): Promise<DEither.Left<"file-system-read-text-file-not-found", unknown> | DEither.Left<"file-system-read-text-file-permission-denied", unknown> | DEither.Left<"file-system-read-text-file-is-directory", unknown> | DEither.Left<"file-system-read-text-file-not-directory", unknown> | DEither.Left<"file-system-read-text-file-too-many-open-files", unknown> | DEither.Left<"file-system-read-text-file-busy", unknown> | DEither.Left<"file-system-read-text-file-error", unknown> | Record<string, string>[]>;
5
+ export declare function parseEnvironmentFiles(baseEnv: Record<string, string>, paths: DPath.AnyPath[]): Promise<DEither.Left<"file-system-read-text-file-error", DSFile.ReadTextFileErrors> | readonly Record<string, string>[]>;
@@ -7,6 +7,7 @@ const require_index = require("./environmentVariable/index.cjs");
7
7
  const require_environmentVariableOrThrow = require("./environmentVariableOrThrow.cjs");
8
8
  const require_exitProcess = require("./exitProcess.cjs");
9
9
  const require_getProcessArguments = require("./getProcessArguments.cjs");
10
+ const require_getCurrentDirectoryName = require("./meta/getCurrentDirectoryName.cjs");
10
11
  //#region scripts/common/index.ts
11
12
  var common_exports = /* @__PURE__ */ require_runtime.__exportAll({
12
13
  EnvironmentVariableError: () => require_environmentVariableOrThrow.EnvironmentVariableError,
@@ -15,6 +16,7 @@ var common_exports = /* @__PURE__ */ require_runtime.__exportAll({
15
16
  environmentVariable: () => require_index.environmentVariable,
16
17
  environmentVariableOrThrow: () => require_environmentVariableOrThrow.environmentVariableOrThrow,
17
18
  exitProcess: () => require_exitProcess.exitProcess,
19
+ getCurrentDirectoryName: () => require_getCurrentDirectoryName.getCurrentDirectoryName,
18
20
  getCurrentWorkDirectory: () => require_getCurrentWorkDirectory.getCurrentWorkDirectory,
19
21
  getCurrentWorkDirectoryOrThrow: () => require_getCurrentWorkDirectoryOrThrow.getCurrentWorkDirectoryOrThrow,
20
22
  getProcessArguments: () => require_getProcessArguments.getProcessArguments,
@@ -34,6 +36,7 @@ Object.defineProperty(exports, "common_exports", {
34
36
  exports.environmentVariable = require_index.environmentVariable;
35
37
  exports.environmentVariableOrThrow = require_environmentVariableOrThrow.environmentVariableOrThrow;
36
38
  exports.exitProcess = require_exitProcess.exitProcess;
39
+ exports.getCurrentDirectoryName = require_getCurrentDirectoryName.getCurrentDirectoryName;
37
40
  exports.getCurrentWorkDirectory = require_getCurrentWorkDirectory.getCurrentWorkDirectory;
38
41
  exports.getCurrentWorkDirectoryOrThrow = require_getCurrentWorkDirectoryOrThrow.getCurrentWorkDirectoryOrThrow;
39
42
  exports.getProcessArguments = require_getProcessArguments.getProcessArguments;
@@ -6,3 +6,4 @@ export * from './environmentVariable';
6
6
  export * from './environmentVariableOrThrow';
7
7
  export * from './exitProcess';
8
8
  export * from './getProcessArguments';
9
+ export * from './meta';
@@ -7,6 +7,7 @@ import { environmentVariable } from "./environmentVariable/index.mjs";
7
7
  import { EnvironmentVariableError, environmentVariableOrThrow } from "./environmentVariableOrThrow.mjs";
8
8
  import { exitProcess } from "./exitProcess.mjs";
9
9
  import { getProcessArguments } from "./getProcessArguments.mjs";
10
+ import { getCurrentDirectoryName } from "./meta/getCurrentDirectoryName.mjs";
10
11
  //#region scripts/common/index.ts
11
12
  var common_exports = /* @__PURE__ */ __exportAll({
12
13
  EnvironmentVariableError: () => EnvironmentVariableError,
@@ -15,6 +16,7 @@ var common_exports = /* @__PURE__ */ __exportAll({
15
16
  environmentVariable: () => environmentVariable,
16
17
  environmentVariableOrThrow: () => environmentVariableOrThrow,
17
18
  exitProcess: () => exitProcess,
19
+ getCurrentDirectoryName: () => getCurrentDirectoryName,
18
20
  getCurrentWorkDirectory: () => getCurrentWorkDirectory,
19
21
  getCurrentWorkDirectoryOrThrow: () => getCurrentWorkDirectoryOrThrow,
20
22
  getProcessArguments: () => getProcessArguments,
@@ -22,4 +24,4 @@ var common_exports = /* @__PURE__ */ __exportAll({
22
24
  setCurrentWorkingDirectoryOrThrow: () => setCurrentWorkingDirectoryOrThrow
23
25
  });
24
26
  //#endregion
25
- export { EnvironmentVariableError, GetCurrentWorkDirectoryError, SetCurrentWorkingDirectoryError, common_exports, environmentVariable, environmentVariableOrThrow, exitProcess, getCurrentWorkDirectory, getCurrentWorkDirectoryOrThrow, getProcessArguments, setCurrentWorkingDirectory, setCurrentWorkingDirectoryOrThrow };
27
+ export { EnvironmentVariableError, GetCurrentWorkDirectoryError, SetCurrentWorkingDirectoryError, common_exports, environmentVariable, environmentVariableOrThrow, exitProcess, getCurrentDirectoryName, getCurrentWorkDirectory, getCurrentWorkDirectoryOrThrow, getProcessArguments, setCurrentWorkingDirectory, setCurrentWorkingDirectoryOrThrow };
@@ -0,0 +1,10 @@
1
+ const require_runtime = require("../../_virtual/_rolldown/runtime.cjs");
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);
5
+ let _duplojs_lang_path = require("@duplojs/lang/path");
6
+ _duplojs_lang_path = require_runtime.__toESM(_duplojs_lang_path, 1);
7
+ //#region scripts/common/meta/getCurrentDirectoryName.ts
8
+ const getCurrentDirectoryName = require_implementor.implementFunction("getCurrentDirectoryName", { NODE: (importMeta) => _duplojs_lang_common.pipe(importMeta.dirname, _duplojs_lang_path.createAbsoluteOrThrow) });
9
+ //#endregion
10
+ exports.getCurrentDirectoryName = getCurrentDirectoryName;
@@ -0,0 +1,7 @@
1
+ import * as DPath from "@duplojs/lang/path";
2
+ declare module '../../implementor' {
3
+ interface ServerFunction {
4
+ getCurrentDirectoryName(importMeta: ImportMeta): string & DPath.Absolute;
5
+ }
6
+ }
7
+ export declare const getCurrentDirectoryName: (importMeta: ImportMeta) => string & DPath.Absolute;
@@ -0,0 +1,7 @@
1
+ import { implementFunction } from "../../implementor.mjs";
2
+ import * as DCommon from "@duplojs/lang/common";
3
+ import * as DPath from "@duplojs/lang/path";
4
+ //#region scripts/common/meta/getCurrentDirectoryName.ts
5
+ const getCurrentDirectoryName = implementFunction("getCurrentDirectoryName", { NODE: (importMeta) => DCommon.pipe(importMeta.dirname, DPath.createAbsoluteOrThrow) });
6
+ //#endregion
7
+ export { getCurrentDirectoryName };
@@ -0,0 +1,7 @@
1
+ import type * as DKind from "@duplojs/lang/kind";
2
+ declare const importMetaKind: DKind.Handler<DKind.Definition<"@DuplojsServer/import-meta", unknown>>;
3
+ declare global {
4
+ interface ImportMeta extends DKind.Kind<typeof importMetaKind> {
5
+ }
6
+ }
7
+ export * from './getCurrentDirectoryName';
@@ -1,6 +1,8 @@
1
1
  const require_runtime = require("../../../../_virtual/_rolldown/runtime.cjs");
2
2
  const require_fileInterface = require("../../../../file/fileInterface.cjs");
3
+ const require_folderInterface = require("../../../../file/folderInterface.cjs");
3
4
  const require_file = require("../../../fundamentalType/file.cjs");
5
+ const require_folder = require("../../../fundamentalType/folder.cjs");
4
6
  let _duplojs_lang_path = require("@duplojs/lang/path");
5
7
  _duplojs_lang_path = require_runtime.__toESM(_duplojs_lang_path, 1);
6
8
  let _duplojs_lang_dataStructure = require("@duplojs/lang/dataStructure");
@@ -8,7 +10,16 @@ _duplojs_lang_dataStructure = require_runtime.__toESM(_duplojs_lang_dataStructur
8
10
  //#region scripts/dataStructure/common/codec/defaults/json.ts
9
11
  const codecsJson = _duplojs_lang_dataStructure.createCodecs({
10
12
  ..._duplojs_lang_dataStructure.codecsJson.definition,
11
- file: _duplojs_lang_dataStructure.createCodec(require_file.TheFile, (data) => typeof data === "string" && _duplojs_lang_path.is(data), (data) => data.path, (data) => require_fileInterface.createFileInterface(data))
13
+ file: _duplojs_lang_dataStructure.createCodec(require_file.TheFile, (data) => typeof data === "string", (data) => data.path, (data) => {
14
+ const result = _duplojs_lang_path.normalize(data);
15
+ if (!result) return _duplojs_lang_dataStructure.ErrorSymbol;
16
+ return require_fileInterface.createFileInterface(result);
17
+ }),
18
+ folder: _duplojs_lang_dataStructure.createCodec(require_folder.TheFolder, (data) => typeof data === "string", (data) => data.path, (data) => {
19
+ const result = _duplojs_lang_path.normalize(data);
20
+ if (!result) return _duplojs_lang_dataStructure.ErrorSymbol;
21
+ return require_folderInterface.createFolderInterface(result);
22
+ })
12
23
  });
13
24
  //#endregion
14
25
  exports.codecsJson = codecsJson;
@@ -1,8 +1,8 @@
1
- import * as DPath from "@duplojs/lang/path";
2
1
  import * as DDataStructure from "@duplojs/lang/dataStructure";
3
2
  import * as FundamentalType from "../../../fundamentalType";
4
3
  export declare const codecsJson: DDataStructure.Codecs<{
5
- file: DDataStructure.Codec<FundamentalType.TheFile, string & DPath.Path>;
4
+ file: DDataStructure.Codec<FundamentalType.TheFile, string>;
5
+ folder: DDataStructure.Codec<FundamentalType.TheFolder, string>;
6
6
  bigint: import('@duplojs/lang/dataStructure').Codec<DDataStructure.TheBigint, string>;
7
7
  date: import('@duplojs/lang/dataStructure').Codec<DDataStructure.TheDate, string>;
8
8
  time: import('@duplojs/lang/dataStructure').Codec<DDataStructure.TheTime, string>;
@@ -1,11 +1,22 @@
1
1
  import { createFileInterface } from "../../../../file/fileInterface.mjs";
2
+ import { createFolderInterface } from "../../../../file/folderInterface.mjs";
2
3
  import { TheFile } from "../../../fundamentalType/file.mjs";
4
+ import { TheFolder } from "../../../fundamentalType/folder.mjs";
3
5
  import * as DPath from "@duplojs/lang/path";
4
6
  import * as DDataStructure from "@duplojs/lang/dataStructure";
5
7
  //#region scripts/dataStructure/common/codec/defaults/json.ts
6
8
  const codecsJson = DDataStructure.createCodecs({
7
9
  ...DDataStructure.codecsJson.definition,
8
- file: DDataStructure.createCodec(TheFile, (data) => typeof data === "string" && DPath.is(data), (data) => data.path, (data) => createFileInterface(data))
10
+ file: DDataStructure.createCodec(TheFile, (data) => typeof data === "string", (data) => data.path, (data) => {
11
+ const result = DPath.normalize(data);
12
+ if (!result) return DDataStructure.ErrorSymbol;
13
+ return createFileInterface(result);
14
+ }),
15
+ folder: DDataStructure.createCodec(TheFolder, (data) => typeof data === "string", (data) => data.path, (data) => {
16
+ const result = DPath.normalize(data);
17
+ if (!result) return DDataStructure.ErrorSymbol;
18
+ return createFolderInterface(result);
19
+ })
9
20
  });
10
21
  //#endregion
11
22
  export { codecsJson };
@@ -1,6 +1,8 @@
1
1
  const require_runtime = require("../../../../_virtual/_rolldown/runtime.cjs");
2
2
  const require_fileInterface = require("../../../../file/fileInterface.cjs");
3
+ const require_folderInterface = require("../../../../file/folderInterface.cjs");
3
4
  const require_file = require("../../../fundamentalType/file.cjs");
5
+ const require_folder = require("../../../fundamentalType/folder.cjs");
4
6
  let _duplojs_lang_path = require("@duplojs/lang/path");
5
7
  _duplojs_lang_path = require_runtime.__toESM(_duplojs_lang_path, 1);
6
8
  let _duplojs_lang_dataStructure = require("@duplojs/lang/dataStructure");
@@ -8,7 +10,16 @@ _duplojs_lang_dataStructure = require_runtime.__toESM(_duplojs_lang_dataStructur
8
10
  //#region scripts/dataStructure/common/codec/defaults/string.ts
9
11
  const codecsString = _duplojs_lang_dataStructure.createCodecs({
10
12
  ..._duplojs_lang_dataStructure.codecsString.definition,
11
- file: _duplojs_lang_dataStructure.createCodec(require_file.TheFile, (data) => typeof data === "string" && _duplojs_lang_path.is(data), (data) => data.path, (data) => require_fileInterface.createFileInterface(data))
13
+ file: _duplojs_lang_dataStructure.createCodec(require_file.TheFile, (data) => typeof data === "string", (data) => data.path, (data) => {
14
+ const result = _duplojs_lang_path.normalize(data);
15
+ if (!result) return _duplojs_lang_dataStructure.ErrorSymbol;
16
+ return require_fileInterface.createFileInterface(result);
17
+ }),
18
+ folder: _duplojs_lang_dataStructure.createCodec(require_folder.TheFolder, (data) => typeof data === "string", (data) => data.path, (data) => {
19
+ const result = _duplojs_lang_path.normalize(data);
20
+ if (!result) return _duplojs_lang_dataStructure.ErrorSymbol;
21
+ return require_folderInterface.createFolderInterface(result);
22
+ })
12
23
  });
13
24
  //#endregion
14
25
  exports.codecsString = codecsString;
@@ -1,8 +1,8 @@
1
- import * as DPath from "@duplojs/lang/path";
2
1
  import * as DDataStructure from "@duplojs/lang/dataStructure";
3
2
  import * as FundamentalType from "../../../fundamentalType";
4
3
  export declare const codecsString: DDataStructure.Codecs<{
5
- file: DDataStructure.Codec<FundamentalType.TheFile, string & DPath.Path>;
4
+ file: DDataStructure.Codec<FundamentalType.TheFile, string>;
5
+ folder: DDataStructure.Codec<FundamentalType.TheFolder, string>;
6
6
  bigint: import('@duplojs/lang/dataStructure').Codec<DDataStructure.TheBigint, string>;
7
7
  boolean: import('@duplojs/lang/dataStructure').Codec<DDataStructure.TheBoolean, "true" | "false">;
8
8
  date: import('@duplojs/lang/dataStructure').Codec<DDataStructure.TheDate, string>;
@@ -1,11 +1,22 @@
1
1
  import { createFileInterface } from "../../../../file/fileInterface.mjs";
2
+ import { createFolderInterface } from "../../../../file/folderInterface.mjs";
2
3
  import { TheFile } from "../../../fundamentalType/file.mjs";
4
+ import { TheFolder } from "../../../fundamentalType/folder.mjs";
3
5
  import * as DPath from "@duplojs/lang/path";
4
6
  import * as DDataStructure from "@duplojs/lang/dataStructure";
5
7
  //#region scripts/dataStructure/common/codec/defaults/string.ts
6
8
  const codecsString = DDataStructure.createCodecs({
7
9
  ...DDataStructure.codecsString.definition,
8
- file: DDataStructure.createCodec(TheFile, (data) => typeof data === "string" && DPath.is(data), (data) => data.path, (data) => createFileInterface(data))
10
+ file: DDataStructure.createCodec(TheFile, (data) => typeof data === "string", (data) => data.path, (data) => {
11
+ const result = DPath.normalize(data);
12
+ if (!result) return DDataStructure.ErrorSymbol;
13
+ return createFileInterface(result);
14
+ }),
15
+ folder: DDataStructure.createCodec(TheFolder, (data) => typeof data === "string", (data) => data.path, (data) => {
16
+ const result = DPath.normalize(data);
17
+ if (!result) return DDataStructure.ErrorSymbol;
18
+ return createFolderInterface(result);
19
+ })
9
20
  });
10
21
  //#endregion
11
22
  export { codecsString };
@@ -6,6 +6,7 @@ _duplojs_lang_dataStructure = require_runtime.__toESM(_duplojs_lang_dataStructur
6
6
  const defaultErrorInterpreterDataStructureDictionary = {
7
7
  ..._duplojs_lang_dataStructure.defaultErrorInterpreterDataStructureDictionary,
8
8
  "@DuplojsServerDataStructure/file-type": () => "Expected a valid file.",
9
+ "@DuplojsServerDataStructure/folder-type": () => "Expected a valid folder.",
9
10
  "@DuplojsServerDataStructure/size-constraint": (source) => {
10
11
  const { min, max } = source.definition;
11
12
  if (min !== void 0 && max !== void 0) return `Expected a file size between ${min} and ${max} bytes.`;
@@ -14,7 +15,8 @@ const defaultErrorInterpreterDataStructureDictionary = {
14
15
  return "Expected a valid file size.";
15
16
  },
16
17
  "@DuplojsServerDataStructure/mime-type-constraint": (source) => `Expected a file with a MIME type matching ${source.definition.regex.toString()}.`,
17
- "@DuplojsServerDataStructure/exist-constraint": () => "Expected the file to exist."
18
+ "@DuplojsServerDataStructure/file-exist-constraint": () => "Expected the file to exist.",
19
+ "@DuplojsServerDataStructure/folder-exist-constraint": () => "Expected the folder to exist."
18
20
  };
19
21
  const defaultErrorInterpreterCodecDictionary = [..._duplojs_lang_dataStructure.defaultErrorInterpreterCodecDictionary, [require_json.codecsJson.definition.file, (_codec, issue) => {
20
22
  if (issue.from === "predicate") return _duplojs_lang_dataStructure.encodeIssueKind.has(issue) ? "The JSON file codec must produce a valid file path string." : "Expected a valid file path string for the JSON file codec.";
@@ -1,9 +1,11 @@
1
1
  import * as DDataStructure from "@duplojs/lang/dataStructure";
2
2
  export declare const defaultErrorInterpreterDataStructureDictionary: {
3
3
  readonly "@DuplojsServerDataStructure/file-type": () => string;
4
+ readonly "@DuplojsServerDataStructure/folder-type": () => string;
4
5
  readonly "@DuplojsServerDataStructure/size-constraint": (source: import('../..').SizeConstraint) => string;
5
6
  readonly "@DuplojsServerDataStructure/mime-type-constraint": (source: import('../..').MimeTypeConstraint) => string;
6
- readonly "@DuplojsServerDataStructure/exist-constraint": () => string;
7
+ readonly "@DuplojsServerDataStructure/file-exist-constraint": () => string;
8
+ readonly "@DuplojsServerDataStructure/folder-exist-constraint": () => string;
7
9
  readonly "@DuplojsLangDataStructure/array-structure": () => string;
8
10
  readonly "@DuplojsLangDataStructure/lazy-structure": () => string;
9
11
  readonly "@DuplojsLangDataStructure/non-encodable-string-structure": (source: import('@duplojs/lang/dataStructure').NonEncodableStringStructure) => string;
@@ -29,9 +31,11 @@ export declare const defaultErrorInterpreterDataStructureDictionary: {
29
31
  readonly "@DuplojsLangDataStructure/between-than-constraint": (source: import('@duplojs/lang/dataStructure').BetweenThanConstraint<number, number>) => string;
30
32
  readonly "@DuplojsLangDataStructure/between-than-or-equal-constraint": (source: import('@duplojs/lang/dataStructure').BetweenThanOrEqualConstraint<number, number>) => string;
31
33
  readonly "@DuplojsLangDataStructure/email-constraint": () => string;
34
+ readonly "@DuplojsLangDataStructure/ends-with-constraint": (source: import('@duplojs/lang/dataStructure').EndsWithConstraint<string>) => string;
32
35
  readonly "@DuplojsLangDataStructure/even-constraint": () => string;
33
36
  readonly "@DuplojsLangDataStructure/greater-than-constraint": (source: import('@duplojs/lang/dataStructure').GreaterThanConstraint<number>) => string;
34
37
  readonly "@DuplojsLangDataStructure/greater-than-or-equal-constraint": (source: import('@duplojs/lang/dataStructure').GreaterThanOrEqualConstraint<number>) => string;
38
+ readonly "@DuplojsLangDataStructure/include-constraint": (source: import('@duplojs/lang/dataStructure').IncludeConstraint<string>) => string;
35
39
  readonly "@DuplojsLangDataStructure/integer-constraint": () => string;
36
40
  readonly "@DuplojsLangDataStructure/less-than-constraint": (source: import('@duplojs/lang/dataStructure').LessThanConstraint<number>) => string;
37
41
  readonly "@DuplojsLangDataStructure/less-than-or-equal-constraint": (source: import('@duplojs/lang/dataStructure').LessThanOrEqualConstraint<number>) => string;
@@ -51,6 +55,7 @@ export declare const defaultErrorInterpreterDataStructureDictionary: {
51
55
  readonly "@DuplojsLangDataStructure/regex-constraint": (source: import('@duplojs/lang/dataStructure').RegexConstraint) => string;
52
56
  readonly "@DuplojsLangDataStructure/safe-constraint": () => string;
53
57
  readonly "@DuplojsLangDataStructure/segment-path-constraint": () => string;
58
+ readonly "@DuplojsLangDataStructure/starts-with-constraint": (source: import('@duplojs/lang/dataStructure').StartsWithConstraint<string>) => string;
54
59
  readonly "@DuplojsLangDataStructure/strict-negative-constraint": () => string;
55
60
  readonly "@DuplojsLangDataStructure/strict-positive-constraint": () => string;
56
61
  readonly "@DuplojsLangDataStructure/string-length-equal-constraint": (source: import('@duplojs/lang/dataStructure').StringLengthEqualConstraint<number>) => string;
@@ -61,4 +66,4 @@ export declare const defaultErrorInterpreterDataStructureDictionary: {
61
66
  readonly "@DuplojsLangModeling/new-type-structure": () => string;
62
67
  readonly "@DuplojsLangModeling/tagged-object-structure": (source: import('@duplojs/lang/modeling').TaggedObjectStructure<import('@duplojs/lang/modeling').ObjectTag<string>>) => string;
63
68
  };
64
- export declare const defaultErrorInterpreterCodecDictionary: [[DDataStructure.Codec<DDataStructure.TheBigint, string>, (codec: import('@duplojs/lang/dataStructure').Codec, issue: import('@duplojs/lang/dataStructure').EncodeIssue | import('@duplojs/lang/dataStructure').DecodeIssue) => string], [DDataStructure.Codec<DDataStructure.TheDate, string>, (codec: import('@duplojs/lang/dataStructure').Codec, issue: import('@duplojs/lang/dataStructure').EncodeIssue | import('@duplojs/lang/dataStructure').DecodeIssue) => string], [DDataStructure.Codec<DDataStructure.TheTime, string>, (codec: import('@duplojs/lang/dataStructure').Codec, issue: import('@duplojs/lang/dataStructure').EncodeIssue | import('@duplojs/lang/dataStructure').DecodeIssue) => string], [DDataStructure.Codec<DDataStructure.TheBigint, string>, (codec: import('@duplojs/lang/dataStructure').Codec, issue: import('@duplojs/lang/dataStructure').EncodeIssue | import('@duplojs/lang/dataStructure').DecodeIssue) => string], [DDataStructure.Codec<DDataStructure.TheBoolean, "true" | "false">, (codec: import('@duplojs/lang/dataStructure').Codec, issue: import('@duplojs/lang/dataStructure').EncodeIssue | import('@duplojs/lang/dataStructure').DecodeIssue) => string], [DDataStructure.Codec<DDataStructure.TheDate, string>, (codec: import('@duplojs/lang/dataStructure').Codec, issue: import('@duplojs/lang/dataStructure').EncodeIssue | import('@duplojs/lang/dataStructure').DecodeIssue) => string], [DDataStructure.Codec<DDataStructure.TheNull, "null">, (codec: import('@duplojs/lang/dataStructure').Codec, issue: import('@duplojs/lang/dataStructure').EncodeIssue | import('@duplojs/lang/dataStructure').DecodeIssue) => string], [DDataStructure.Codec<DDataStructure.TheNumber, string & import('@duplojs/lang/string').Number>, (codec: import('@duplojs/lang/dataStructure').Codec, issue: import('@duplojs/lang/dataStructure').EncodeIssue | import('@duplojs/lang/dataStructure').DecodeIssue) => string], [DDataStructure.Codec<DDataStructure.TheTime, string>, (codec: import('@duplojs/lang/dataStructure').Codec, issue: import('@duplojs/lang/dataStructure').EncodeIssue | import('@duplojs/lang/dataStructure').DecodeIssue) => string], [DDataStructure.Codec<DDataStructure.TheUndefined, "undefined" | undefined>, (codec: import('@duplojs/lang/dataStructure').Codec, issue: import('@duplojs/lang/dataStructure').EncodeIssue | import('@duplojs/lang/dataStructure').DecodeIssue) => string], [DDataStructure.Codec<import('../..').TheFile, string & import('@duplojs/lang/path').Path>, (_codec: DDataStructure.Codec<DDataStructure.FundamentalType<unknown>, unknown>, issue: DDataStructure.EncodeIssue | DDataStructure.DecodeIssue) => string]];
69
+ export declare const defaultErrorInterpreterCodecDictionary: [[DDataStructure.Codec<DDataStructure.TheBigint, string>, (codec: import('@duplojs/lang/dataStructure').Codec, issue: import('@duplojs/lang/dataStructure').EncodeIssue | import('@duplojs/lang/dataStructure').DecodeIssue) => string], [DDataStructure.Codec<DDataStructure.TheDate, string>, (codec: import('@duplojs/lang/dataStructure').Codec, issue: import('@duplojs/lang/dataStructure').EncodeIssue | import('@duplojs/lang/dataStructure').DecodeIssue) => string], [DDataStructure.Codec<DDataStructure.TheTime, string>, (codec: import('@duplojs/lang/dataStructure').Codec, issue: import('@duplojs/lang/dataStructure').EncodeIssue | import('@duplojs/lang/dataStructure').DecodeIssue) => string], [DDataStructure.Codec<DDataStructure.TheBigint, string>, (codec: import('@duplojs/lang/dataStructure').Codec, issue: import('@duplojs/lang/dataStructure').EncodeIssue | import('@duplojs/lang/dataStructure').DecodeIssue) => string], [DDataStructure.Codec<DDataStructure.TheBoolean, "true" | "false">, (codec: import('@duplojs/lang/dataStructure').Codec, issue: import('@duplojs/lang/dataStructure').EncodeIssue | import('@duplojs/lang/dataStructure').DecodeIssue) => string], [DDataStructure.Codec<DDataStructure.TheDate, string>, (codec: import('@duplojs/lang/dataStructure').Codec, issue: import('@duplojs/lang/dataStructure').EncodeIssue | import('@duplojs/lang/dataStructure').DecodeIssue) => string], [DDataStructure.Codec<DDataStructure.TheNull, "null">, (codec: import('@duplojs/lang/dataStructure').Codec, issue: import('@duplojs/lang/dataStructure').EncodeIssue | import('@duplojs/lang/dataStructure').DecodeIssue) => string], [DDataStructure.Codec<DDataStructure.TheNumber, string & import('@duplojs/lang/string').Number>, (codec: import('@duplojs/lang/dataStructure').Codec, issue: import('@duplojs/lang/dataStructure').EncodeIssue | import('@duplojs/lang/dataStructure').DecodeIssue) => string], [DDataStructure.Codec<DDataStructure.TheTime, string>, (codec: import('@duplojs/lang/dataStructure').Codec, issue: import('@duplojs/lang/dataStructure').EncodeIssue | import('@duplojs/lang/dataStructure').DecodeIssue) => string], [DDataStructure.Codec<DDataStructure.TheUndefined, "undefined" | undefined>, (codec: import('@duplojs/lang/dataStructure').Codec, issue: import('@duplojs/lang/dataStructure').EncodeIssue | import('@duplojs/lang/dataStructure').DecodeIssue) => string], [DDataStructure.Codec<import('../..').TheFile, string>, (_codec: DDataStructure.Codec<DDataStructure.FundamentalType<unknown>, unknown>, issue: DDataStructure.EncodeIssue | DDataStructure.DecodeIssue) => string]];
@@ -4,6 +4,7 @@ import * as DDataStructure from "@duplojs/lang/dataStructure";
4
4
  const defaultErrorInterpreterDataStructureDictionary = {
5
5
  ...DDataStructure.defaultErrorInterpreterDataStructureDictionary,
6
6
  "@DuplojsServerDataStructure/file-type": () => "Expected a valid file.",
7
+ "@DuplojsServerDataStructure/folder-type": () => "Expected a valid folder.",
7
8
  "@DuplojsServerDataStructure/size-constraint": (source) => {
8
9
  const { min, max } = source.definition;
9
10
  if (min !== void 0 && max !== void 0) return `Expected a file size between ${min} and ${max} bytes.`;
@@ -12,7 +13,8 @@ const defaultErrorInterpreterDataStructureDictionary = {
12
13
  return "Expected a valid file size.";
13
14
  },
14
15
  "@DuplojsServerDataStructure/mime-type-constraint": (source) => `Expected a file with a MIME type matching ${source.definition.regex.toString()}.`,
15
- "@DuplojsServerDataStructure/exist-constraint": () => "Expected the file to exist."
16
+ "@DuplojsServerDataStructure/file-exist-constraint": () => "Expected the file to exist.",
17
+ "@DuplojsServerDataStructure/folder-exist-constraint": () => "Expected the folder to exist."
16
18
  };
17
19
  const defaultErrorInterpreterCodecDictionary = [...DDataStructure.defaultErrorInterpreterCodecDictionary, [codecsJson.definition.file, (_codec, issue) => {
18
20
  if (issue.from === "predicate") return DDataStructure.encodeIssueKind.has(issue) ? "The JSON file codec must produce a valid file path string." : "Expected a valid file path string for the JSON file codec.";
@@ -4,9 +4,9 @@ let _duplojs_lang_either = require("@duplojs/lang/either");
4
4
  _duplojs_lang_either = require_runtime.__toESM(_duplojs_lang_either, 1);
5
5
  let _duplojs_lang_dataStructure = require("@duplojs/lang/dataStructure");
6
6
  _duplojs_lang_dataStructure = require_runtime.__toESM(_duplojs_lang_dataStructure, 1);
7
- //#region scripts/dataStructure/constraint/exist.ts
8
- const existConstraintKind = require_kind.createKind("exist-constraint");
9
- const ExistConstraint = _duplojs_lang_dataStructure.createConstraint(existConstraintKind, ({ init }) => () => init({}, {
7
+ //#region scripts/dataStructure/constraint/fileExist.ts
8
+ const fileExistConstraintKind = require_kind.createKind("file-exist-constraint");
9
+ const FileExistConstraint = _duplojs_lang_dataStructure.createConstraint(fileExistConstraintKind, ({ init }) => () => init({}, {
10
10
  executeCheck: async (_self, data) => {
11
11
  const result = _duplojs_lang_either.rightPipe(await data.stat(), (stat) => stat.isFile ? stat : _duplojs_lang_either.fail());
12
12
  if (_duplojs_lang_either.isLeft(result)) return _duplojs_lang_dataStructure.ErrorSymbol;
@@ -15,5 +15,5 @@ const ExistConstraint = _duplojs_lang_dataStructure.createConstraint(existConstr
15
15
  isAsynchronous: () => true
16
16
  }));
17
17
  //#endregion
18
- exports.ExistConstraint = ExistConstraint;
19
- exports.existConstraintKind = existConstraintKind;
18
+ exports.FileExistConstraint = FileExistConstraint;
19
+ exports.fileExistConstraintKind = fileExistConstraintKind;
@@ -0,0 +1,10 @@
1
+ import type * as DCommon from "@duplojs/lang/common";
2
+ import type * as DKind from "@duplojs/lang/kind";
3
+ import * as DDataStructure from "@duplojs/lang/dataStructure";
4
+ import type * as DSFile from '../../file';
5
+ export declare const fileExistConstraintKind: DKind.Handler<DKind.Definition<"@DuplojsServerDataStructure/file-exist-constraint", unknown>>;
6
+ export interface FileExistConstraintDefinition extends DDataStructure.ConstraintDefinition {
7
+ }
8
+ export interface FileExistConstraint extends DCommon.UnionToIntersection<DDataStructure.Constraint<DSFile.FileInterface, DSFile.FileInterface, FileExistConstraintDefinition> & DKind.Kind<typeof fileExistConstraintKind>> {
9
+ }
10
+ export declare const FileExistConstraint: () => FileExistConstraint;
@@ -1,9 +1,9 @@
1
1
  import { createKind } from "../kind.mjs";
2
2
  import * as DEither from "@duplojs/lang/either";
3
3
  import * as DDataStructure from "@duplojs/lang/dataStructure";
4
- //#region scripts/dataStructure/constraint/exist.ts
5
- const existConstraintKind = createKind("exist-constraint");
6
- const ExistConstraint = DDataStructure.createConstraint(existConstraintKind, ({ init }) => () => init({}, {
4
+ //#region scripts/dataStructure/constraint/fileExist.ts
5
+ const fileExistConstraintKind = createKind("file-exist-constraint");
6
+ const FileExistConstraint = DDataStructure.createConstraint(fileExistConstraintKind, ({ init }) => () => init({}, {
7
7
  executeCheck: async (_self, data) => {
8
8
  const result = DEither.rightPipe(await data.stat(), (stat) => stat.isFile ? stat : DEither.fail());
9
9
  if (DEither.isLeft(result)) return DDataStructure.ErrorSymbol;
@@ -12,4 +12,4 @@ const ExistConstraint = DDataStructure.createConstraint(existConstraintKind, ({
12
12
  isAsynchronous: () => true
13
13
  }));
14
14
  //#endregion
15
- export { ExistConstraint, existConstraintKind };
15
+ export { FileExistConstraint, fileExistConstraintKind };
@@ -0,0 +1,19 @@
1
+ const require_runtime = require("../../_virtual/_rolldown/runtime.cjs");
2
+ const require_kind = require("../kind.cjs");
3
+ let _duplojs_lang_either = require("@duplojs/lang/either");
4
+ _duplojs_lang_either = require_runtime.__toESM(_duplojs_lang_either, 1);
5
+ let _duplojs_lang_dataStructure = require("@duplojs/lang/dataStructure");
6
+ _duplojs_lang_dataStructure = require_runtime.__toESM(_duplojs_lang_dataStructure, 1);
7
+ //#region scripts/dataStructure/constraint/folderExist.ts
8
+ const folderExistConstraintKind = require_kind.createKind("folder-exist-constraint");
9
+ const FolderExistConstraint = _duplojs_lang_dataStructure.createConstraint(folderExistConstraintKind, ({ init }) => () => init({}, {
10
+ executeCheck: async (_self, data) => {
11
+ const result = _duplojs_lang_either.rightPipe(await data.stat(), (stat) => stat.isDirectory ? stat : _duplojs_lang_either.fail());
12
+ if (_duplojs_lang_either.isLeft(result)) return _duplojs_lang_dataStructure.ErrorSymbol;
13
+ return _duplojs_lang_dataStructure.SuccessSymbol;
14
+ },
15
+ isAsynchronous: () => true
16
+ }));
17
+ //#endregion
18
+ exports.FolderExistConstraint = FolderExistConstraint;
19
+ exports.folderExistConstraintKind = folderExistConstraintKind;
@@ -0,0 +1,10 @@
1
+ import type * as DCommon from "@duplojs/lang/common";
2
+ import type * as DKind from "@duplojs/lang/kind";
3
+ import * as DDataStructure from "@duplojs/lang/dataStructure";
4
+ import type * as DSFile from '../../file';
5
+ export declare const folderExistConstraintKind: DKind.Handler<DKind.Definition<"@DuplojsServerDataStructure/folder-exist-constraint", unknown>>;
6
+ export interface FolderExistConstraintDefinition extends DDataStructure.ConstraintDefinition {
7
+ }
8
+ export interface FolderExistConstraint extends DCommon.UnionToIntersection<DDataStructure.Constraint<DSFile.FolderInterface, DSFile.FolderInterface, FolderExistConstraintDefinition> & DKind.Kind<typeof folderExistConstraintKind>> {
9
+ }
10
+ export declare const FolderExistConstraint: () => FolderExistConstraint;
@@ -0,0 +1,15 @@
1
+ import { createKind } from "../kind.mjs";
2
+ import * as DEither from "@duplojs/lang/either";
3
+ import * as DDataStructure from "@duplojs/lang/dataStructure";
4
+ //#region scripts/dataStructure/constraint/folderExist.ts
5
+ const folderExistConstraintKind = createKind("folder-exist-constraint");
6
+ const FolderExistConstraint = DDataStructure.createConstraint(folderExistConstraintKind, ({ init }) => () => init({}, {
7
+ executeCheck: async (_self, data) => {
8
+ const result = DEither.rightPipe(await data.stat(), (stat) => stat.isDirectory ? stat : DEither.fail());
9
+ if (DEither.isLeft(result)) return DDataStructure.ErrorSymbol;
10
+ return DDataStructure.SuccessSymbol;
11
+ },
12
+ isAsynchronous: () => true
13
+ }));
14
+ //#endregion
15
+ export { FolderExistConstraint, folderExistConstraintKind };
@@ -1,4 +1,5 @@
1
- export * from './exist';
1
+ export * from './fileExist';
2
+ export * from './folderExist';
2
3
  export * from './mimeType';
3
4
  export * from './size';
4
5
  export type * from './types';
@@ -8,7 +8,7 @@ _duplojs_lang_dataStructure = require_runtime.__toESM(_duplojs_lang_dataStructur
8
8
  const mimeTypeConstraintKind = require_kind.createKind("mime-type-constraint");
9
9
  const MimeTypeConstraint = _duplojs_lang_dataStructure.createConstraint(mimeTypeConstraintKind, ({ init }) => (mimeType) => init({ regex: _duplojs_lang_common.toRegExp(mimeType) }, {
10
10
  executeCheck: (self, data) => {
11
- if (self.definition.regex.test(data.getMimeType() ?? "")) return _duplojs_lang_dataStructure.ErrorSymbol;
11
+ if (!self.definition.regex.test(data.getMimeType() ?? "")) return _duplojs_lang_dataStructure.ErrorSymbol;
12
12
  return _duplojs_lang_dataStructure.SuccessSymbol;
13
13
  },
14
14
  isAsynchronous: () => false
@@ -5,7 +5,7 @@ import * as DDataStructure from "@duplojs/lang/dataStructure";
5
5
  const mimeTypeConstraintKind = createKind("mime-type-constraint");
6
6
  const MimeTypeConstraint = DDataStructure.createConstraint(mimeTypeConstraintKind, ({ init }) => (mimeType) => init({ regex: DCommon.toRegExp(mimeType) }, {
7
7
  executeCheck: (self, data) => {
8
- if (self.definition.regex.test(data.getMimeType() ?? "")) return DDataStructure.ErrorSymbol;
8
+ if (!self.definition.regex.test(data.getMimeType() ?? "")) return DDataStructure.ErrorSymbol;
9
9
  return DDataStructure.SuccessSymbol;
10
10
  },
11
11
  isAsynchronous: () => false
@@ -1,9 +1,11 @@
1
- import { ExistConstraint } from '../exist';
1
+ import { FileExistConstraint } from '../fileExist';
2
+ import { FolderExistConstraint } from '../folderExist';
2
3
  import { MimeTypeConstraint } from '../mimeType';
3
4
  import { SizeConstraint } from '../size';
4
5
  declare module "@duplojs/lang/dataStructure" {
5
6
  interface ConstraintsStore {
6
- exist: ExistConstraint;
7
+ fileExist: FileExistConstraint;
8
+ folderExist: FolderExistConstraint;
7
9
  size: SizeConstraint;
8
10
  mimeType: MimeTypeConstraint;
9
11
  }
@@ -0,0 +1,11 @@
1
+ const require_runtime = require("../../_virtual/_rolldown/runtime.cjs");
2
+ const require_folderInterface = require("../../file/folderInterface.cjs");
3
+ const require_kind = require("../kind.cjs");
4
+ let _duplojs_lang_dataStructure = require("@duplojs/lang/dataStructure");
5
+ _duplojs_lang_dataStructure = require_runtime.__toESM(_duplojs_lang_dataStructure, 1);
6
+ //#region scripts/dataStructure/fundamentalType/folder.ts
7
+ const folderFundamentalTypeKind = require_kind.createKind("folder-fundamental-type");
8
+ const TheFolder = _duplojs_lang_dataStructure.createFundamentalType(folderFundamentalTypeKind, (self, data) => require_folderInterface.isFolderInterface(data) ? _duplojs_lang_dataStructure.SuccessSymbol : _duplojs_lang_dataStructure.ErrorSymbol);
9
+ //#endregion
10
+ exports.TheFolder = TheFolder;
11
+ exports.folderFundamentalTypeKind = folderFundamentalTypeKind;
@@ -0,0 +1,8 @@
1
+ import type * as DCommon from "@duplojs/lang/common";
2
+ import type * as DKind from "@duplojs/lang/kind";
3
+ import * as DDataStructure from "@duplojs/lang/dataStructure";
4
+ import * as DSFile from '../../file';
5
+ export declare const folderFundamentalTypeKind: DKind.Handler<DKind.Definition<"@DuplojsServerDataStructure/folder-fundamental-type", unknown>>;
6
+ export interface TheFolder extends DCommon.UnionToIntersection<DDataStructure.FundamentalType<DSFile.FolderInterface> & DKind.Kind<typeof folderFundamentalTypeKind>> {
7
+ }
8
+ export declare const TheFolder: TheFolder;
@@ -0,0 +1,8 @@
1
+ import { isFolderInterface } from "../../file/folderInterface.mjs";
2
+ import { createKind } from "../kind.mjs";
3
+ import * as DDataStructure from "@duplojs/lang/dataStructure";
4
+ //#region scripts/dataStructure/fundamentalType/folder.ts
5
+ const folderFundamentalTypeKind = createKind("folder-fundamental-type");
6
+ const TheFolder = DDataStructure.createFundamentalType(folderFundamentalTypeKind, (self, data) => isFolderInterface(data) ? DDataStructure.SuccessSymbol : DDataStructure.ErrorSymbol);
7
+ //#endregion
8
+ export { TheFolder, folderFundamentalTypeKind };
@@ -1,2 +1,3 @@
1
1
  export * from './file';
2
+ export * from './folder';
2
3
  export type * from './types';