@holoscript/std 3.1.1 → 7.0.0

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 (142) hide show
  1. package/LICENSE +21 -0
  2. package/dist/__tests__/EconomicPrimitives.test.d.ts +2 -0
  3. package/dist/__tests__/EconomicTraits.test.d.ts +2 -0
  4. package/dist/__tests__/SimulationLabPrimitives.test.d.ts +2 -0
  5. package/dist/__tests__/collections.test.d.ts +2 -0
  6. package/dist/__tests__/events.test.d.ts +2 -0
  7. package/dist/__tests__/index.test.d.ts +2 -0
  8. package/dist/__tests__/index.test.d.ts.map +1 -0
  9. package/dist/__tests__/materials.test.d.ts +2 -0
  10. package/dist/__tests__/math.test.d.ts +2 -0
  11. package/dist/__tests__/physics.test.d.ts +2 -0
  12. package/dist/__tests__/spatial.test.d.ts +2 -0
  13. package/dist/__tests__/standard-library-fundamentals.test.d.ts +2 -0
  14. package/dist/__tests__/standard-library-fundamentals.test.d.ts.map +1 -0
  15. package/dist/__tests__/string-and-time-utilities.test.d.ts +2 -0
  16. package/dist/__tests__/string-and-time-utilities.test.d.ts.map +1 -0
  17. package/dist/__tests__/string-decoupled.test.d.ts +2 -0
  18. package/dist/__tests__/string.test.d.ts +2 -0
  19. package/dist/__tests__/time.test.d.ts +2 -0
  20. package/dist/chunk-DZHAVOCH.js +686 -0
  21. package/dist/chunk-DZHAVOCH.js.map +1 -0
  22. package/dist/chunk-P4O3WNG2.js +287 -0
  23. package/dist/chunk-P4O3WNG2.js.map +1 -0
  24. package/dist/chunk-PFX2JM4X.js +683 -0
  25. package/dist/chunk-PFX2JM4X.js.map +1 -0
  26. package/dist/chunk-PR4QN5HX.js +43 -0
  27. package/dist/chunk-PR4QN5HX.js.map +1 -0
  28. package/dist/chunk-WS6W35YC.js +443 -0
  29. package/dist/chunk-WS6W35YC.js.map +1 -0
  30. package/dist/chunk-XBA4ARST.js +9313 -0
  31. package/dist/chunk-XBA4ARST.js.map +1 -0
  32. package/dist/chunk-XJIFG7G3.js +348 -0
  33. package/dist/chunk-XJIFG7G3.js.map +1 -0
  34. package/dist/chunk-ZXVZAQCZ.js +470 -0
  35. package/dist/chunk-ZXVZAQCZ.js.map +1 -0
  36. package/dist/collections.cjs +715 -0
  37. package/dist/collections.cjs.map +1 -0
  38. package/dist/collections.d.ts +177 -0
  39. package/dist/collections.js +18 -0
  40. package/dist/collections.js.map +1 -0
  41. package/dist/events.d.ts +32 -0
  42. package/dist/fs/__tests__/file-watch-system.test.d.ts +2 -0
  43. package/dist/fs/__tests__/file-watch-system.test.d.ts.map +1 -0
  44. package/dist/fs/__tests__/path-utilities.test.d.ts +2 -0
  45. package/dist/fs/__tests__/path-utilities.test.d.ts.map +1 -0
  46. package/dist/fs/__tests__/path.test.d.ts +2 -0
  47. package/dist/fs/__tests__/path.test.d.ts.map +1 -0
  48. package/dist/fs/fs.d.ts +288 -0
  49. package/dist/fs/fs.d.ts.map +1 -0
  50. package/dist/fs/index.cjs +9338 -0
  51. package/dist/fs/index.cjs.map +1 -0
  52. package/dist/fs/index.d.ts +51 -0
  53. package/dist/fs/index.d.ts.map +1 -0
  54. package/dist/fs/index.js +204 -0
  55. package/dist/fs/index.js.map +1 -0
  56. package/dist/fs/path.d.ts +135 -0
  57. package/dist/fs/path.d.ts.map +1 -0
  58. package/dist/fs/watch.d.ts +133 -0
  59. package/dist/fs/watch.d.ts.map +1 -0
  60. package/dist/index.cjs +13326 -0
  61. package/dist/index.cjs.map +1 -0
  62. package/dist/index.d.ts +102 -0
  63. package/dist/index.d.ts.map +1 -1
  64. package/dist/index.js +1275 -190
  65. package/dist/index.js.map +1 -0
  66. package/dist/materials.d.ts +50 -0
  67. package/dist/math.cjs +595 -0
  68. package/dist/math.cjs.map +1 -0
  69. package/dist/math.d.ts +162 -0
  70. package/dist/math.js +54 -0
  71. package/dist/math.js.map +1 -0
  72. package/dist/physics.d.ts +59 -0
  73. package/dist/spatial.d.ts +82 -0
  74. package/dist/string.basic.test.d.ts +5 -0
  75. package/dist/string.basic.test.d.ts.map +1 -0
  76. package/dist/string.cjs +422 -0
  77. package/dist/string.cjs.map +1 -0
  78. package/dist/string.d.ts +212 -0
  79. package/dist/string.d.ts.map +1 -1
  80. package/dist/string.js +108 -0
  81. package/dist/string.js.map +1 -0
  82. package/dist/string.test.d.ts +5 -0
  83. package/dist/string.test.d.ts.map +1 -0
  84. package/dist/time.cjs +512 -0
  85. package/dist/time.cjs.map +1 -0
  86. package/dist/time.d.ts +215 -0
  87. package/dist/time.js +44 -0
  88. package/dist/time.js.map +1 -0
  89. package/dist/traits/ARTraits.d.ts +14 -0
  90. package/dist/traits/EconomicPrimitives.cjs +335 -0
  91. package/dist/traits/EconomicPrimitives.cjs.map +1 -0
  92. package/dist/traits/EconomicPrimitives.d.ts +345 -0
  93. package/dist/traits/EconomicPrimitives.js +56 -0
  94. package/dist/traits/EconomicPrimitives.js.map +1 -0
  95. package/dist/traits/EconomicTraits.cjs +471 -0
  96. package/dist/traits/EconomicTraits.cjs.map +1 -0
  97. package/dist/traits/EconomicTraits.d.ts +71 -0
  98. package/dist/traits/EconomicTraits.js +18 -0
  99. package/dist/traits/EconomicTraits.js.map +1 -0
  100. package/dist/traits/IoTTraits.d.ts +14 -0
  101. package/dist/traits/SimulationLabPrimitives.d.ts +187 -0
  102. package/dist/traits/SimulationLabTraits.d.ts +42 -0
  103. package/dist/traits/VRRTraits.d.ts +150 -0
  104. package/dist/traits/__tests__/ARTraits.test.d.ts +2 -0
  105. package/dist/traits/__tests__/ARTraits.test.d.ts.map +1 -0
  106. package/dist/traits/__tests__/EconomicPrimitives.test.d.ts +2 -0
  107. package/dist/traits/__tests__/EconomicPrimitives.test.d.ts.map +1 -0
  108. package/dist/traits/__tests__/EconomicTraits.test.d.ts +2 -0
  109. package/dist/traits/__tests__/EconomicTraits.test.d.ts.map +1 -0
  110. package/dist/types.d.ts +202 -0
  111. package/dist/types.d.ts.map +1 -1
  112. package/error-utf8.log +6 -0
  113. package/error.log +0 -0
  114. package/package.json +35 -18
  115. package/src/__tests__/index.test.ts +14 -0
  116. package/src/__tests__/{Sprint33.test.ts → standard-library-fundamentals.test.ts} +91 -74
  117. package/src/__tests__/{Sprint56.test.ts → string-and-time-utilities.test.ts} +64 -64
  118. package/src/__tests__/string-decoupled.test.ts +6 -9
  119. package/src/fs/__tests__/file-watch-system.test.ts +675 -0
  120. package/src/fs/__tests__/path-utilities.test.ts +375 -0
  121. package/src/fs/__tests__/path.test.ts +287 -0
  122. package/src/fs/fs.ts +692 -0
  123. package/src/fs/index.ts +194 -0
  124. package/src/fs/path.ts +310 -0
  125. package/src/fs/watch.ts +413 -0
  126. package/src/index.ts +3 -1
  127. package/src/math.ts +1 -1
  128. package/src/string.basic.test.ts +1 -1
  129. package/src/string.test.ts +4 -4
  130. package/src/string.ts +32 -17
  131. package/src/time.ts +1 -1
  132. package/src/traits/ARTraits.ts +2 -2
  133. package/src/traits/IoTTraits.ts +2 -2
  134. package/src/traits/VRRTraits.ts +2 -2
  135. package/src/traits/__tests__/ARTraits.test.ts +8 -0
  136. package/src/traits/__tests__/EconomicPrimitives.test.ts +14 -0
  137. package/src/traits/__tests__/EconomicTraits.test.ts +16 -0
  138. package/src/types.ts +10 -3
  139. package/std_error.log +5 -0
  140. package/tsup.config.ts +20 -0
  141. package/dist/__tests__/Sprint33.test.d.ts.map +0 -1
  142. package/dist/__tests__/Sprint56.test.d.ts.map +0 -1
@@ -0,0 +1,51 @@
1
+ /**
2
+ * @holoscript/fs - File System Library for HoloScript Plus
3
+ *
4
+ * Provides file I/O, directory operations, path manipulation,
5
+ * and file watching for HoloScript Plus programs.
6
+ *
7
+ * @example
8
+ * ```hsplus
9
+ * import { readText, writeText, watch } from "@holoscript/fs";
10
+ * import { join } from "@holoscript/fs/path";
11
+ *
12
+ * async fn main() {
13
+ * // Read a config file
14
+ * let config = await readJson("config.json");
15
+ *
16
+ * // Watch for changes
17
+ * let watcher = watch("./src", { debounce: 100 });
18
+ * watcher.on("change", fn(event) {
19
+ * print("File changed:", event.path);
20
+ * });
21
+ * }
22
+ * ```
23
+ */
24
+ export { type Encoding, type FileStats, type DirEntry, type ReadOptions, type WriteOptions, type CopyOptions, readText, readTextSync, readBytes, readBytesSync, readJson, readJsonSync, readLines, readLinesSync, writeText, writeTextSync, writeBytes, writeBytesSync, writeJson, writeJsonSync, appendText, appendTextSync, appendLine, appendLineSync, exists, existsSync, isFile, isFileSync, isDirectory, isDirectorySync, stat, statSync, mkdir, mkdirSync, ensureDir, ensureDirSync, ensureFile, ensureFileSync, remove, removeSync, copy, copySync, move, moveSync, readDir, readDirSync, listFiles, listFilesSync, listDirs, listDirsSync, walk, glob, globSync, tempDir, createTempFile, createTempDir, fileSize, fileSizeSync, dirSize, formatSize, } from './fs.js';
25
+ export { sep, delimiter, join, resolve, relative, normalize, isAbsolute, dirname, basename, extname, type ParsedPath, parse, format, toPosix, toWindows, parent, segments, hasExtension, changeExtension, removeExtension, addSuffix, isChildOf, commonBase, expandHome, sanitize, matchesPattern, PathBuilder, path, } from './path.js';
26
+ export { type WatchEventType, type WatchEvent, type WatchOptions, type WatchCallback, FileWatcher, watch, watchCallback, watchFileTypes, watchFile, watchDebounced, watchOnce, watchBatched, watchFiltered, watchEvents, watchFiles, watchDirs, } from './watch.js';
27
+ /**
28
+ * Convenience: Get current working directory
29
+ */
30
+ export declare function cwd(): string;
31
+ /**
32
+ * Convenience: Change current working directory
33
+ */
34
+ export declare function chdir(path: string): void;
35
+ /**
36
+ * Convenience: Get home directory
37
+ */
38
+ export declare function homeDir(): string;
39
+ /**
40
+ * Convenience: Check if running on Windows
41
+ */
42
+ export declare function isWindows(): boolean;
43
+ /**
44
+ * Convenience: Check if running on macOS
45
+ */
46
+ export declare function isMacOS(): boolean;
47
+ /**
48
+ * Convenience: Check if running on Linux
49
+ */
50
+ export declare function isLinux(): boolean;
51
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/fs/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAGH,OAAO,EAEL,KAAK,QAAQ,EACb,KAAK,SAAS,EACd,KAAK,QAAQ,EACb,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,WAAW,EAGhB,QAAQ,EACR,YAAY,EACZ,SAAS,EACT,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,SAAS,EACT,aAAa,EAGb,SAAS,EACT,aAAa,EACb,UAAU,EACV,cAAc,EACd,SAAS,EACT,aAAa,EACb,UAAU,EACV,cAAc,EACd,UAAU,EACV,cAAc,EAGd,MAAM,EACN,UAAU,EACV,MAAM,EACN,UAAU,EACV,WAAW,EACX,eAAe,EACf,IAAI,EACJ,QAAQ,EACR,KAAK,EACL,SAAS,EACT,SAAS,EACT,aAAa,EACb,UAAU,EACV,cAAc,EACd,MAAM,EACN,UAAU,EACV,IAAI,EACJ,QAAQ,EACR,IAAI,EACJ,QAAQ,EAGR,OAAO,EACP,WAAW,EACX,SAAS,EACT,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,IAAI,EACJ,IAAI,EACJ,QAAQ,EAGR,OAAO,EACP,cAAc,EACd,aAAa,EAGb,QAAQ,EACR,YAAY,EACZ,OAAO,EACP,UAAU,GACX,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,GAAG,EACH,SAAS,EACT,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,SAAS,EACT,UAAU,EACV,OAAO,EACP,QAAQ,EACR,OAAO,EACP,KAAK,UAAU,EACf,KAAK,EACL,MAAM,EACN,OAAO,EACP,SAAS,EACT,MAAM,EACN,QAAQ,EACR,YAAY,EACZ,eAAe,EACf,eAAe,EACf,SAAS,EACT,SAAS,EACT,UAAU,EACV,UAAU,EACV,QAAQ,EACR,cAAc,EACd,WAAW,EACX,IAAI,GACL,MAAM,WAAW,CAAC;AAGnB,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,WAAW,EACX,KAAK,EACL,aAAa,EACb,cAAc,EACd,SAAS,EACT,cAAc,EACd,SAAS,EACT,YAAY,EACZ,aAAa,EACb,WAAW,EACX,UAAU,EACV,SAAS,GACV,MAAM,YAAY,CAAC;AAEpB;;GAEG;AACH,wBAAgB,GAAG,IAAI,MAAM,CAE5B;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAExC;AAED;;GAEG;AACH,wBAAgB,OAAO,IAAI,MAAM,CAEhC;AAED;;GAEG;AACH,wBAAgB,SAAS,IAAI,OAAO,CAEnC;AAED;;GAEG;AACH,wBAAgB,OAAO,IAAI,OAAO,CAEjC;AAED;;GAEG;AACH,wBAAgB,OAAO,IAAI,OAAO,CAEjC"}
@@ -0,0 +1,204 @@
1
+ import {
2
+ FileWatcher,
3
+ PathBuilder,
4
+ addSuffix,
5
+ appendLine,
6
+ appendLineSync,
7
+ appendText,
8
+ appendTextSync,
9
+ basename,
10
+ changeExtension,
11
+ chdir,
12
+ commonBase,
13
+ copy,
14
+ copySync,
15
+ createTempDir,
16
+ createTempFile,
17
+ cwd,
18
+ delimiter,
19
+ dirSize,
20
+ dirname,
21
+ ensureDir,
22
+ ensureDirSync,
23
+ ensureFile,
24
+ ensureFileSync,
25
+ exists,
26
+ existsSync,
27
+ expandHome,
28
+ extname,
29
+ fileSize,
30
+ fileSizeSync,
31
+ format,
32
+ formatSize,
33
+ glob,
34
+ globSync,
35
+ hasExtension,
36
+ homeDir,
37
+ isAbsolute,
38
+ isChildOf,
39
+ isDirectory,
40
+ isDirectorySync,
41
+ isFile,
42
+ isFileSync,
43
+ isLinux,
44
+ isMacOS,
45
+ isWindows,
46
+ join,
47
+ listDirs,
48
+ listDirsSync,
49
+ listFiles,
50
+ listFilesSync,
51
+ matchesPattern,
52
+ mkdir,
53
+ mkdirSync,
54
+ move,
55
+ moveSync,
56
+ normalize,
57
+ parent,
58
+ parse,
59
+ path,
60
+ readBytes,
61
+ readBytesSync,
62
+ readDir,
63
+ readDirSync,
64
+ readJson,
65
+ readJsonSync,
66
+ readLines,
67
+ readLinesSync,
68
+ readText,
69
+ readTextSync,
70
+ relative,
71
+ remove,
72
+ removeExtension,
73
+ removeSync,
74
+ resolve,
75
+ sanitize,
76
+ segments,
77
+ sep,
78
+ stat,
79
+ statSync,
80
+ tempDir,
81
+ toPosix,
82
+ toWindows,
83
+ walk,
84
+ watch,
85
+ watchBatched,
86
+ watchCallback,
87
+ watchDebounced,
88
+ watchDirs,
89
+ watchEvents,
90
+ watchFile,
91
+ watchFileTypes,
92
+ watchFiles,
93
+ watchFiltered,
94
+ watchOnce,
95
+ writeBytes,
96
+ writeBytesSync,
97
+ writeJson,
98
+ writeJsonSync,
99
+ writeText,
100
+ writeTextSync
101
+ } from "../chunk-XBA4ARST.js";
102
+ import "../chunk-PR4QN5HX.js";
103
+ export {
104
+ FileWatcher,
105
+ PathBuilder,
106
+ addSuffix,
107
+ appendLine,
108
+ appendLineSync,
109
+ appendText,
110
+ appendTextSync,
111
+ basename,
112
+ changeExtension,
113
+ chdir,
114
+ commonBase,
115
+ copy,
116
+ copySync,
117
+ createTempDir,
118
+ createTempFile,
119
+ cwd,
120
+ delimiter,
121
+ dirSize,
122
+ dirname,
123
+ ensureDir,
124
+ ensureDirSync,
125
+ ensureFile,
126
+ ensureFileSync,
127
+ exists,
128
+ existsSync,
129
+ expandHome,
130
+ extname,
131
+ fileSize,
132
+ fileSizeSync,
133
+ format,
134
+ formatSize,
135
+ glob,
136
+ globSync,
137
+ hasExtension,
138
+ homeDir,
139
+ isAbsolute,
140
+ isChildOf,
141
+ isDirectory,
142
+ isDirectorySync,
143
+ isFile,
144
+ isFileSync,
145
+ isLinux,
146
+ isMacOS,
147
+ isWindows,
148
+ join,
149
+ listDirs,
150
+ listDirsSync,
151
+ listFiles,
152
+ listFilesSync,
153
+ matchesPattern,
154
+ mkdir,
155
+ mkdirSync,
156
+ move,
157
+ moveSync,
158
+ normalize,
159
+ parent,
160
+ parse,
161
+ path,
162
+ readBytes,
163
+ readBytesSync,
164
+ readDir,
165
+ readDirSync,
166
+ readJson,
167
+ readJsonSync,
168
+ readLines,
169
+ readLinesSync,
170
+ readText,
171
+ readTextSync,
172
+ relative,
173
+ remove,
174
+ removeExtension,
175
+ removeSync,
176
+ resolve,
177
+ sanitize,
178
+ segments,
179
+ sep,
180
+ stat,
181
+ statSync,
182
+ tempDir,
183
+ toPosix,
184
+ toWindows,
185
+ walk,
186
+ watch,
187
+ watchBatched,
188
+ watchCallback,
189
+ watchDebounced,
190
+ watchDirs,
191
+ watchEvents,
192
+ watchFile,
193
+ watchFileTypes,
194
+ watchFiles,
195
+ watchFiltered,
196
+ watchOnce,
197
+ writeBytes,
198
+ writeBytesSync,
199
+ writeJson,
200
+ writeJsonSync,
201
+ writeText,
202
+ writeTextSync
203
+ };
204
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,135 @@
1
+ /**
2
+ * @holoscript/fs - Path Module
3
+ *
4
+ * Cross-platform path manipulation utilities for HoloScript Plus.
5
+ */
6
+ /**
7
+ * Path separator for the current platform
8
+ */
9
+ export declare const sep: "/" | "\\";
10
+ /**
11
+ * Path delimiter for environment variables
12
+ */
13
+ export declare const delimiter: ";" | ":";
14
+ /**
15
+ * Join path segments
16
+ */
17
+ export declare function join(...paths: string[]): string;
18
+ /**
19
+ * Resolve path segments to an absolute path
20
+ */
21
+ export declare function resolve(...paths: string[]): string;
22
+ /**
23
+ * Get the relative path from one path to another
24
+ */
25
+ export declare function relative(from: string, to: string): string;
26
+ /**
27
+ * Normalize a path (resolve . and .. segments)
28
+ */
29
+ export declare function normalize(p: string): string;
30
+ /**
31
+ * Check if a path is absolute
32
+ */
33
+ export declare function isAbsolute(p: string): boolean;
34
+ /**
35
+ * Get the directory name of a path
36
+ */
37
+ export declare function dirname(p: string): string;
38
+ /**
39
+ * Get the base name of a path
40
+ */
41
+ export declare function basename(p: string, ext?: string): string;
42
+ /**
43
+ * Get the extension of a path
44
+ */
45
+ export declare function extname(p: string): string;
46
+ /**
47
+ * Parse a path into components
48
+ */
49
+ export interface ParsedPath {
50
+ root: string;
51
+ dir: string;
52
+ base: string;
53
+ ext: string;
54
+ name: string;
55
+ }
56
+ export declare function parse(p: string): ParsedPath;
57
+ /**
58
+ * Format a parsed path back into a string
59
+ */
60
+ export declare function format(pathObject: Partial<ParsedPath>): string;
61
+ /**
62
+ * Convert path to POSIX format (forward slashes)
63
+ */
64
+ export declare function toPosix(p: string): string;
65
+ /**
66
+ * Convert path to Windows format (backslashes)
67
+ */
68
+ export declare function toWindows(p: string): string;
69
+ /**
70
+ * Get the parent directory
71
+ */
72
+ export declare function parent(p: string): string;
73
+ /**
74
+ * Get path segments as an array
75
+ */
76
+ export declare function segments(p: string): string[];
77
+ /**
78
+ * Check if a path has a specific extension
79
+ */
80
+ export declare function hasExtension(p: string, ext: string): boolean;
81
+ /**
82
+ * Change the extension of a path
83
+ */
84
+ export declare function changeExtension(p: string, newExt: string): string;
85
+ /**
86
+ * Remove the extension from a path
87
+ */
88
+ export declare function removeExtension(p: string): string;
89
+ /**
90
+ * Add a suffix before the extension
91
+ */
92
+ export declare function addSuffix(p: string, suffix: string): string;
93
+ /**
94
+ * Check if a path is a child of another path
95
+ */
96
+ export declare function isChildOf(child: string, parent: string): boolean;
97
+ /**
98
+ * Get the common base path of multiple paths
99
+ */
100
+ export declare function commonBase(...paths: string[]): string;
101
+ /**
102
+ * Expand tilde (~) to home directory
103
+ */
104
+ export declare function expandHome(p: string): string;
105
+ /**
106
+ * Make a path safe for use as a filename
107
+ */
108
+ export declare function sanitize(filename: string): string;
109
+ /**
110
+ * Check if a filename matches a glob pattern
111
+ */
112
+ export declare function matchesPattern(filename: string, pattern: string): boolean;
113
+ /**
114
+ * Path builder for fluent API
115
+ */
116
+ export declare class PathBuilder {
117
+ private path;
118
+ constructor(base?: string);
119
+ static from(base: string): PathBuilder;
120
+ static cwd(): PathBuilder;
121
+ join(...segments: string[]): PathBuilder;
122
+ parent(): PathBuilder;
123
+ sibling(name: string): PathBuilder;
124
+ withExtension(ext: string): PathBuilder;
125
+ withSuffix(suffix: string): PathBuilder;
126
+ normalize(): PathBuilder;
127
+ toString(): string;
128
+ get value(): string;
129
+ get dirname(): string;
130
+ get basename(): string;
131
+ get extname(): string;
132
+ get name(): string;
133
+ }
134
+ export declare function path(base?: string): PathBuilder;
135
+ //# sourceMappingURL=path.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path.d.ts","sourceRoot":"","sources":["../../src/fs/path.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,133 @@
1
+ /**
2
+ * @holoscript/fs - File Watch Module
3
+ *
4
+ * File and directory watching utilities for HoloScript Plus programs.
5
+ */
6
+ import { EventEmitter } from 'events';
7
+ /**
8
+ * Watch event types
9
+ */
10
+ export type WatchEventType = 'add' | 'change' | 'unlink' | 'addDir' | 'unlinkDir' | 'error' | 'ready';
11
+ /**
12
+ * Watch event
13
+ */
14
+ export interface WatchEvent {
15
+ type: WatchEventType;
16
+ path: string;
17
+ stats?: {
18
+ size: number;
19
+ mtime: Date;
20
+ };
21
+ }
22
+ /**
23
+ * Watch options
24
+ */
25
+ export interface WatchOptions {
26
+ /** Glob patterns to ignore */
27
+ ignored?: string | string[];
28
+ /** Use polling instead of native events */
29
+ usePolling?: boolean;
30
+ /** Polling interval in ms */
31
+ interval?: number;
32
+ /** Emit events for initial files */
33
+ emitInitial?: boolean;
34
+ /** Follow symlinks */
35
+ followSymlinks?: boolean;
36
+ /** Watch depth */
37
+ depth?: number;
38
+ /** Persistent watch */
39
+ persistent?: boolean;
40
+ /** Debounce delay in ms */
41
+ debounce?: number;
42
+ }
43
+ /**
44
+ * Watch callback
45
+ */
46
+ export type WatchCallback = (event: WatchEvent) => void | Promise<void>;
47
+ /**
48
+ * File watcher class
49
+ */
50
+ export declare class FileWatcher extends EventEmitter {
51
+ private watcher;
52
+ private paths;
53
+ private options;
54
+ private debounceTimers;
55
+ constructor(paths: string | string[], options?: WatchOptions);
56
+ /**
57
+ * Start watching
58
+ */
59
+ start(): this;
60
+ /**
61
+ * Stop watching
62
+ */
63
+ stop(): Promise<void>;
64
+ /**
65
+ * Add paths to watch
66
+ */
67
+ add(paths: string | string[]): this;
68
+ /**
69
+ * Remove paths from watch
70
+ */
71
+ unwatch(paths: string | string[]): this;
72
+ /**
73
+ * Get watched paths
74
+ */
75
+ getWatched(): Record<string, string[]>;
76
+ /**
77
+ * Check if watcher is ready
78
+ */
79
+ get isReady(): boolean;
80
+ /**
81
+ * Register event handler
82
+ */
83
+ on(event: 'add' | 'change' | 'unlink' | 'addDir' | 'unlinkDir' | 'all', listener: (event: WatchEvent) => void): this;
84
+ on(event: 'error', listener: (error: Error) => void): this;
85
+ on(event: 'ready', listener: () => void): this;
86
+ private handleEvent;
87
+ private emitEvent;
88
+ }
89
+ /**
90
+ * Watch files/directories
91
+ */
92
+ export declare function watch(paths: string | string[], options?: WatchOptions): FileWatcher;
93
+ /**
94
+ * Watch and run callback on changes
95
+ */
96
+ export declare function watchCallback(paths: string | string[], callback: WatchCallback, options?: WatchOptions): FileWatcher;
97
+ /**
98
+ * Watch for specific file types
99
+ */
100
+ export declare function watchFileTypes(dir: string, extensions: string[], callback: WatchCallback, options?: WatchOptions): FileWatcher;
101
+ /**
102
+ * Watch a single file
103
+ */
104
+ export declare function watchFile(path: string, callback: WatchCallback, options?: WatchOptions): FileWatcher;
105
+ /**
106
+ * Watch and debounce - only emit after changes have stopped for a duration
107
+ */
108
+ export declare function watchDebounced(paths: string | string[], callback: WatchCallback, debounceMs?: number, options?: WatchOptions): FileWatcher;
109
+ /**
110
+ * One-shot watch - stop after first event
111
+ */
112
+ export declare function watchOnce(paths: string | string[], options?: WatchOptions): Promise<WatchEvent>;
113
+ /**
114
+ * Watch with batching - collect events and emit in batches
115
+ */
116
+ export declare function watchBatched(paths: string | string[], callback: (events: WatchEvent[]) => void | Promise<void>, batchMs?: number, options?: WatchOptions): FileWatcher;
117
+ /**
118
+ * Watch with filtering
119
+ */
120
+ export declare function watchFiltered(paths: string | string[], filter: (event: WatchEvent) => boolean, callback: WatchCallback, options?: WatchOptions): FileWatcher;
121
+ /**
122
+ * Watch only for specific event types
123
+ */
124
+ export declare function watchEvents(paths: string | string[], eventTypes: WatchEventType[], callback: WatchCallback, options?: WatchOptions): FileWatcher;
125
+ /**
126
+ * Watch only for file changes (add, change, unlink)
127
+ */
128
+ export declare function watchFiles(paths: string | string[], callback: WatchCallback, options?: WatchOptions): FileWatcher;
129
+ /**
130
+ * Watch only for directory changes
131
+ */
132
+ export declare function watchDirs(paths: string | string[], callback: WatchCallback, options?: WatchOptions): FileWatcher;
133
+ //# sourceMappingURL=watch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"watch.d.ts","sourceRoot":"","sources":["../../src/fs/watch.ts"],"names":[],"mappings":"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"}