typescript-virtual-container 1.3.1 → 1.3.2

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 (59) hide show
  1. package/README.md +61 -1
  2. package/builds/self-standalone.js +481 -0
  3. package/builds/self-standalone.js.map +7 -0
  4. package/{standalone-wo-sftp.js → builds/standalone-wo-sftp.js} +137 -137
  5. package/{standalone-wo-sftp.js.map → builds/standalone-wo-sftp.js.map} +4 -4
  6. package/{standalone.js → builds/standalone.js} +176 -176
  7. package/{standalone.js.map → builds/standalone.js.map} +4 -4
  8. package/builds/web-full-api.min.js +13 -0
  9. package/builds/web-full-api.min.js.map +7 -0
  10. package/builds/web-iife.min.js +13 -0
  11. package/builds/web-iife.min.js.map +7 -0
  12. package/builds/web.min.js +13 -0
  13. package/builds/web.min.js.map +7 -0
  14. package/dist/SSHMimic/loginBanner.d.ts +7 -0
  15. package/dist/SSHMimic/loginBanner.d.ts.map +1 -0
  16. package/dist/SSHMimic/loginBanner.js +22 -0
  17. package/dist/VirtualShell/index.d.ts +21 -1
  18. package/dist/VirtualShell/index.d.ts.map +1 -1
  19. package/dist/VirtualShell/index.js +34 -2
  20. package/dist/VirtualShell/shell.d.ts.map +1 -1
  21. package/dist/VirtualShell/shell.js +2 -17
  22. package/dist/self-standalone.d.ts +2 -0
  23. package/dist/self-standalone.d.ts.map +1 -0
  24. package/dist/self-standalone.js +147 -0
  25. package/dist/web-api.d.ts +26 -0
  26. package/dist/web-api.d.ts.map +1 -0
  27. package/dist/web-api.js +46 -0
  28. package/dist/web-full.d.ts +4 -0
  29. package/dist/web-full.d.ts.map +1 -0
  30. package/dist/web-full.js +8 -0
  31. package/dist/web.d.ts +108 -0
  32. package/dist/web.d.ts.map +1 -0
  33. package/dist/web.js +773 -0
  34. package/examples/README.md +81 -3
  35. package/examples/app-iife.js +58 -0
  36. package/examples/app.js +28 -0
  37. package/examples/index-cf.html +27 -0
  38. package/examples/index.html +27 -0
  39. package/examples/server.js +55 -0
  40. package/examples/web-iife.min.js +13 -0
  41. package/examples/web.min.js +13 -0
  42. package/package.json +10 -3
  43. package/polyfills/node:child_process/index.js +2 -0
  44. package/polyfills/node:crypto/index.js +7 -0
  45. package/polyfills/node:events/index.js +9 -0
  46. package/polyfills/node:fs/index.js +8 -0
  47. package/polyfills/node:fs/promises.js +4 -0
  48. package/polyfills/node:os/index.js +9 -0
  49. package/polyfills/node:path/index.js +14 -0
  50. package/polyfills/node:vm/index.js +7 -0
  51. package/polyfills/node:zlib/index.js +3 -0
  52. package/src/SSHMimic/loginBanner.ts +36 -0
  53. package/src/VirtualShell/index.ts +60 -2
  54. package/src/VirtualShell/shell.ts +3 -31
  55. package/src/self-standalone.ts +183 -0
  56. package/src/web-api.ts +62 -0
  57. package/src/web-full.ts +11 -0
  58. package/src/web.ts +930 -0
  59. package/tests/web.test.ts +182 -0
package/dist/web.d.ts ADDED
@@ -0,0 +1,108 @@
1
+ import type { CommandResult, ShellEnv } from "./types/commands";
2
+ type WebCommandContext = {
3
+ args: string[];
4
+ stdin?: string;
5
+ cwd: string;
6
+ env: ShellEnv;
7
+ rawInput: string;
8
+ shell: WebShell;
9
+ };
10
+ type WebCommandHandler = (context: WebCommandContext) => CommandResult | Promise<CommandResult>;
11
+ interface WebCommand {
12
+ name: string;
13
+ description: string;
14
+ params: string[];
15
+ run: WebCommandHandler;
16
+ aliases?: string[];
17
+ }
18
+ type WebFileNode = {
19
+ type: "file";
20
+ name: string;
21
+ mode: number;
22
+ createdAt: string;
23
+ updatedAt: string;
24
+ contentBase64: string;
25
+ };
26
+ type WebDirectoryNode = {
27
+ type: "directory";
28
+ name: string;
29
+ mode: number;
30
+ createdAt: string;
31
+ updatedAt: string;
32
+ children: WebNode[];
33
+ };
34
+ type WebNode = WebFileNode | WebDirectoryNode;
35
+ interface WebVfsSnapshot {
36
+ root: WebDirectoryNode;
37
+ }
38
+ interface WebVfsOptions {
39
+ databaseName?: string;
40
+ storeName?: string;
41
+ key?: string;
42
+ }
43
+ interface WebShellOptions {
44
+ cwd?: string;
45
+ vfs?: WebVfsOptions;
46
+ }
47
+ declare class IndexedDbMirrorVfs {
48
+ private readonly databaseName;
49
+ private readonly storeName;
50
+ private readonly key;
51
+ private root;
52
+ constructor(options?: WebVfsOptions);
53
+ private openDatabase;
54
+ private readSnapshot;
55
+ private writeSnapshot;
56
+ private serializeNode;
57
+ private deserializeNode;
58
+ private getNode;
59
+ private ensureDirectory;
60
+ private removeNode;
61
+ private copyNode;
62
+ restoreMirror(): Promise<void>;
63
+ flushMirror(): Promise<void>;
64
+ exists(targetPath: string): boolean;
65
+ list(targetPath: string): string[];
66
+ stat(targetPath: string): {
67
+ type: "file" | "directory";
68
+ mode: number;
69
+ size: number;
70
+ name: string;
71
+ };
72
+ readFile(targetPath: string): string;
73
+ writeFile(targetPath: string, content: string | Uint8Array, mode?: number): void;
74
+ mkdir(targetPath: string, mode?: number): void;
75
+ touch(targetPath: string): void;
76
+ move(fromPath: string, toPath: string): void;
77
+ copy(fromPath: string, toPath: string): void;
78
+ remove(targetPath: string, options?: {
79
+ recursive?: boolean;
80
+ }): void;
81
+ exportSnapshot(): WebVfsSnapshot;
82
+ importSnapshot(snapshot: WebVfsSnapshot): void;
83
+ }
84
+ declare class WebShell {
85
+ readonly hostname: string;
86
+ readonly vfs: IndexedDbMirrorVfs;
87
+ readonly env: ShellEnv;
88
+ private cwd;
89
+ private readonly commands;
90
+ private initialized;
91
+ constructor(hostname: string, options?: WebShellOptions);
92
+ private register;
93
+ private registerBuiltins;
94
+ private listCommands;
95
+ private resolveCommand;
96
+ ensureInitialized(): Promise<void>;
97
+ getCurrentWorkingDirectory(): string;
98
+ executeCommandLine(rawInput: string, persist?: boolean): Promise<CommandResult>;
99
+ private executeStatements;
100
+ private executePipeline;
101
+ private executeSingleCommandWithRedirections;
102
+ private executePipelineChain;
103
+ private executeCommand;
104
+ }
105
+ export { IndexedDbMirrorVfs, WebShell };
106
+ export declare function createWebShell(hostname?: string, options?: WebShellOptions): WebShell;
107
+ export type { WebCommand, WebCommandContext, WebShellOptions, WebVfsOptions };
108
+ //# sourceMappingURL=web.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web.d.ts","sourceRoot":"","sources":["../src/web.ts"],"names":[],"mappings":"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"}