fake-node 0.2.0 → 0.4.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.
package/lib/index.js ADDED
@@ -0,0 +1,311 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.FakeNode = exports.Process = exports.fs = void 0;
40
+ const baseProcessObject = __importStar(require("./process"));
41
+ const _fs_1 = require("./_fs");
42
+ const module_os = __importStar(require("./os"));
43
+ const module_util = __importStar(require("./util"));
44
+ const module_querystring = __importStar(require("./querystring"));
45
+ const module_punycode = __importStar(require("punycode/"));
46
+ const module_path = __importStar(require("./path"));
47
+ const module_buffer = __importStar(require("./buffer"));
48
+ const module_fs = __importStar(require("./fs"));
49
+ const web_only_globals_json_1 = __importDefault(require("./web_only_globals.json"));
50
+ exports.fs = __importStar(require("./_fs"));
51
+ const IS_BROWSER = (('window' in globalThis && window === globalThis && 'document' in window && 'navigator' in window && 'window' in window && window.window === window) || ('self' in globalThis && self === globalThis && typeof self.postMessage === 'function' && 'self' in self && self.self === self));
52
+ const BUILTIN_MODULES = [
53
+ ['os', module_os],
54
+ ['util', module_util],
55
+ ['querystring', module_querystring],
56
+ ['punycode', module_punycode],
57
+ ['path', module_path],
58
+ ['buffer', module_buffer],
59
+ ['fs', module_fs],
60
+ ];
61
+ const DEFAULT_ENV = {
62
+ PATH: '/usr/local/bin:/usr/bin:/bin',
63
+ SHLVL: '1',
64
+ SHELL: '/bin/bash',
65
+ TERM: 'none',
66
+ PS1: '',
67
+ PS2: '> ',
68
+ HISTFILE: '~/.bash_history',
69
+ EDITOR: 'vim',
70
+ VISUAL: 'vim',
71
+ LANG: 'en_US.utf8',
72
+ HOSTNAME: 'fake-node',
73
+ TMPDIR: '/tmp',
74
+ };
75
+ class Process {
76
+ fakeNode;
77
+ pid;
78
+ priority = 0;
79
+ uid = 0;
80
+ gid = 0;
81
+ groups = [];
82
+ cwd;
83
+ umask = 0o6440;
84
+ argv = [];
85
+ argv0 = '';
86
+ execArgv = [];
87
+ execPath = '/usr/bin/local/node';
88
+ path;
89
+ module;
90
+ code;
91
+ constructor(fakeNode, { path = '<anonymous>', code, module = false }) {
92
+ this.fakeNode = fakeNode;
93
+ this.pid = fakeNode.nextPid;
94
+ fakeNode.nextPid++;
95
+ fakeNode.processes.set(this.pid, this);
96
+ this.path = path;
97
+ this.cwd = path.split('/').slice(0, -1).join('/');
98
+ this.module = module;
99
+ this.code = code;
100
+ }
101
+ get env() {
102
+ return this.fakeNode.getenv(this.pid);
103
+ }
104
+ run() {
105
+ let code = this.code;
106
+ if (code === undefined) {
107
+ code = this.fakeNode.fs.readFrom(this.path);
108
+ }
109
+ let injectCode;
110
+ if (this.module) {
111
+ injectCode = `with(${this.fakeNode.globalName}.getGlobals(${this.pid})){__fakeNode__.modules.set('${this.module},(function(){${code};return module.exports;})());}`;
112
+ }
113
+ else {
114
+ injectCode = `with(${this.fakeNode.globalName}.getGlobals(${this.pid})){(function(){${code}})();}`;
115
+ }
116
+ let elt = document.createElement('script');
117
+ elt.textContent = injectCode;
118
+ document.body.appendChild(elt);
119
+ }
120
+ }
121
+ exports.Process = Process;
122
+ if (!('__fakeNode_next_instance_id__' in globalThis)) {
123
+ // @ts-ignore
124
+ globalThis.__fakeNode_next_instance_id__ = 0;
125
+ }
126
+ class FakeNode {
127
+ version = '0.3.0';
128
+ versions = {
129
+ 'fake-node': '0.3.0',
130
+ 'punycode': '2.3.1',
131
+ };
132
+ id;
133
+ globalName;
134
+ fs;
135
+ processes = new Map();
136
+ nextPid = 3;
137
+ globalenv = DEFAULT_ENV;
138
+ modules = new Map();
139
+ // @ts-ignore
140
+ window;
141
+ errorCallbacks = [];
142
+ constructor() {
143
+ // @ts-ignore
144
+ this.id = globalThis.__fakeNode_next_instance_id;
145
+ // @ts-ignore
146
+ globalThis.__fakeNode_next_instance_id++;
147
+ this.globalName = '__fakeNode_' + this.id + '__';
148
+ // @ts-ignore
149
+ globalThis[this.globalName] = this;
150
+ if (IS_BROWSER) {
151
+ this.window = window;
152
+ }
153
+ else {
154
+ Object.defineProperty(this, 'window', { get() { throw new ReferenceError('fake-node is not running in a browser'); } });
155
+ }
156
+ this.fs = new _fs_1.FileSystem();
157
+ window.addEventListener('error', ({ error }) => this.onError(error));
158
+ window.addEventListener('unhandledrejection', ({ reason }) => reason instanceof Error ? this.onError(reason) : this.onError(new Error(String(reason))));
159
+ for (const [name, module] of BUILTIN_MODULES) {
160
+ this.addModuleFromValue(name, module);
161
+ this.addModuleFromValue('node:' + name, module);
162
+ this.addModuleFromValue('fake-node:' + name, module);
163
+ }
164
+ }
165
+ require(module, pid) {
166
+ if (module.startsWith('/') || module.startsWith('./') || module.startsWith('../')) {
167
+ const process = this.processes.get(pid);
168
+ if (process === undefined) {
169
+ throw new TypeError(`nonexistent PID in FakeNode.getProcessObject call: ${pid}. If you do not know why this occured, it is probably a bug in fake-node.`);
170
+ }
171
+ module = module_path.resolve(process.cwd, module);
172
+ }
173
+ if (this.modules.has(module)) {
174
+ return this.modules.get(module);
175
+ }
176
+ else if (module === 'process' || module === 'node:process' || module === 'fake-node:process') {
177
+ return this.getProcessObject(pid);
178
+ }
179
+ else {
180
+ throw new Error(`cannot find module '${module}'`);
181
+ }
182
+ }
183
+ addModuleFromValue(name, module) {
184
+ this.modules.set(name, module);
185
+ }
186
+ eval(code) {
187
+ (new Process(this, { code, path: '/' })).run();
188
+ }
189
+ evalModule(name, code) {
190
+ (new Process(this, { code, path: '/', module: name })).run();
191
+ }
192
+ addModule(path, data) {
193
+ this.fs.writeTo(path, data);
194
+ (new Process(this, { path, module: path }));
195
+ }
196
+ getProcessObject(pid) {
197
+ let out = Object.create(baseProcessObject);
198
+ const process = this.processes.get(pid);
199
+ if (process === undefined) {
200
+ throw new TypeError(`nonexistent PID in FakeNode.getProcessObject call: ${pid}. If you do not know why this occured, it is probably a bug in fake-node.`);
201
+ }
202
+ out.argv = process.argv;
203
+ out.argv0 = process.argv0;
204
+ out.env = process.env;
205
+ out.execArgv = process.execArgv;
206
+ out.execPath = process.execPath;
207
+ out.mainModule = '';
208
+ out.platform = this.getPlatform();
209
+ out.version = this.version;
210
+ out.versions = this.versions;
211
+ return out;
212
+ }
213
+ getGlobals(pid) {
214
+ const process = this.processes.get(pid);
215
+ if (process === undefined) {
216
+ throw new TypeError(`nonexistent PID in FakeNode.getGlobals call: ${pid}. If you do not know why this occured, it is probably a bug in fake-node.`);
217
+ }
218
+ let scope = Object.assign({
219
+ __fakeNode__: this,
220
+ __fakeNode_process__: process,
221
+ require: ((module) => this.require(module, pid)).bind(this)
222
+ }, Object.defineProperties({}, Object.fromEntries(web_only_globals_json_1.default.map((name) => [name, { get() { throw new ReferenceError(`${name} is not defined`); } }]))));
223
+ scope.global = scope;
224
+ scope.globalThis = scope;
225
+ if (process.path !== '') {
226
+ const pathParts = process.path.split('/');
227
+ scope.__dirname = pathParts.slice(0, -1).join('/');
228
+ scope.__filename = pathParts[pathParts.length - 1];
229
+ }
230
+ if (process.module !== false) {
231
+ scope.module = {
232
+ exports: {},
233
+ };
234
+ // @ts-ignore
235
+ scope.exports = scope.module.exports;
236
+ }
237
+ return scope;
238
+ }
239
+ getenv(pid) {
240
+ let env = Object.create(this.globalenv);
241
+ const process = this.processes.get(pid);
242
+ if (process === undefined) {
243
+ throw new TypeError(`invalid PID: ${pid}`);
244
+ }
245
+ env.USER = this.getUserFromUID(process.uid);
246
+ return env;
247
+ }
248
+ getUserFromUID(uid) {
249
+ if (typeof uid === 'string') {
250
+ return uid;
251
+ }
252
+ else {
253
+ return 'root';
254
+ }
255
+ }
256
+ getUserFromGID(gid) {
257
+ if (typeof gid === 'string') {
258
+ return gid;
259
+ }
260
+ else {
261
+ return 'root';
262
+ }
263
+ }
264
+ getUIDFromUser(user) {
265
+ if (typeof user === 'number') {
266
+ return user;
267
+ }
268
+ else {
269
+ return 0;
270
+ }
271
+ }
272
+ getGIDFromGroup(group) {
273
+ if (typeof group === 'number') {
274
+ return group;
275
+ }
276
+ else {
277
+ return 0;
278
+ }
279
+ }
280
+ onError(error) {
281
+ for (const callback of this.errorCallbacks) {
282
+ if (callback !== undefined) {
283
+ callback(error);
284
+ }
285
+ }
286
+ }
287
+ addErrorCallback(callback) {
288
+ this.errorCallbacks.push(callback);
289
+ return this.errorCallbacks.length - 1;
290
+ }
291
+ removeErrorCallback(callbackID) {
292
+ this.errorCallbacks[callbackID] = undefined;
293
+ }
294
+ getPlatform() {
295
+ const data = navigator.userAgent.slice('Mozilla/5.0 ('.length, navigator.userAgent.indexOf(')'));
296
+ if (data.includes('Windows')) {
297
+ return 'win32';
298
+ }
299
+ else if (data.includes('Linux')) {
300
+ return 'linux';
301
+ }
302
+ else if (data.includes('Mac')) {
303
+ return 'darwin';
304
+ }
305
+ else {
306
+ return 'unknown';
307
+ }
308
+ }
309
+ }
310
+ exports.FakeNode = FakeNode;
311
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/lib/os.d.ts ADDED
@@ -0,0 +1,191 @@
1
+ export declare const EOL = "\n";
2
+ export declare function availableParallelism(): number;
3
+ export declare function arch(): string;
4
+ declare enum signals {
5
+ SIGHUP = 1,
6
+ SIGINT = 2,
7
+ SIGQUIT = 3,
8
+ SIGILL = 4,
9
+ SIGTRAP = 5,
10
+ SIGABRT = 6,
11
+ SIGIOT = 6,
12
+ SIGBUS = 7,
13
+ SIGFPE = 8,
14
+ SIGKILL = 9,
15
+ SIGUSR1 = 10,
16
+ SIGUSR2 = 11,
17
+ SIGSEGV = 12,
18
+ SIGPIPE = 13,
19
+ SIGALRM = 14,
20
+ SIGTERM = 15,
21
+ SIGCHLD = 16,
22
+ SIGSTKFLT = 17,
23
+ SIGCONT = 18,
24
+ SIGSTOP = 19,
25
+ SIGTSTP = 20,
26
+ SIGBREAK = 21,
27
+ SIGTTIN = 22,
28
+ SIGTTOU = 23,
29
+ SIGURG = 24,
30
+ SIGXCPU = 25,
31
+ SIGXFSZ = 26,
32
+ SIGVTALRM = 27,
33
+ SIGPROF = 28,
34
+ SIGWINCH = 29,
35
+ SIGIO = 30,
36
+ SIGPOLL = 30,
37
+ SIGLOST = 31,
38
+ SIGPWR = 32,
39
+ SIGINFO = 32,
40
+ SIGSYS = 33,
41
+ SIGUNUSED = 33
42
+ }
43
+ declare enum errno {
44
+ E2BIG = 0,
45
+ EACCES = 1,
46
+ EADDRINUSE = 2,
47
+ EADDRNONOTAVAIL = 3,
48
+ EAFNOSUPPORT = 4,
49
+ EAGAIN = 5,
50
+ EALREADY = 6,
51
+ EBADF = 7,
52
+ EBADMSG = 8,
53
+ EBUSY = 9,
54
+ ECANCELED = 10,
55
+ ECHILD = 11,
56
+ ECONNABORTED = 12,
57
+ ECONNREFUSED = 13,
58
+ ECONNRESET = 14,
59
+ EDEADLK = 15,
60
+ EDESTADDRREQ = 16,
61
+ EDOM = 17,
62
+ EDQUOT = 18,
63
+ EEXIST = 19,
64
+ EFAULT = 20,
65
+ EFBIG = 21,
66
+ EHOSTUNREACH = 22,
67
+ EIDRM = 23,
68
+ EILSEQ = 24,
69
+ EINPROGRESS = 25,
70
+ EINTR = 26,
71
+ EINVAL = 27,
72
+ EIO = 28,
73
+ EISCONN = 29,
74
+ EISDIR = 30,
75
+ ELOOP = 31,
76
+ EMFILE = 32,
77
+ EMLINK = 33,
78
+ EMGSIZE = 34,
79
+ EMULTIHOP = 35,
80
+ ENAMETOOLONG = 36,
81
+ ENETDOWN = 37,
82
+ ENETRESET = 38,
83
+ ENETUNREACH = 39,
84
+ ENFILE = 40,
85
+ ENOBUFS = 41,
86
+ ENODATA = 42,
87
+ ENODEV = 43,
88
+ ENOENT = 44,
89
+ ENOEXEC = 45,
90
+ ENOLCK = 46,
91
+ ENOLINK = 47,
92
+ ENOMEM = 48,
93
+ ENOMSG = 49,
94
+ ENOPROTOOPT = 50,
95
+ ENOSPC = 51,
96
+ ENOSR = 52,
97
+ ENOSTR = 53,
98
+ ENOSYS = 54,
99
+ ENOTCONN = 55,
100
+ ENOTDIR = 56,
101
+ ENOTEMPTY = 57,
102
+ ENOTSOCK = 58,
103
+ ENOTSUP = 59,
104
+ ENOTTY = 60,
105
+ ENXIO = 61,
106
+ EOPNOTSUPP = 62,
107
+ EOVERFLOW = 63,
108
+ EPERM = 64,
109
+ EPIPE = 65,
110
+ EPROTO = 66,
111
+ EPROTONOSUPPORT = 67,
112
+ EPROTOTYPE = 68,
113
+ ERANGE = 69,
114
+ EROFS = 70,
115
+ ESPIPE = 71,
116
+ ESRCH = 72,
117
+ ESTALE = 73,
118
+ ETIME = 74,
119
+ ETIMEDOUT = 75,
120
+ ETXTBSY = 76,
121
+ EWOULDBLOCK = 77,
122
+ EXDEV = 78
123
+ }
124
+ declare enum dlopen {
125
+ RTLD_LAZY = 1,
126
+ RTLD_NOW = 2,
127
+ RTLD_GLOBAL = 3,
128
+ RTLD_LOCAL = 4,
129
+ RTLD_DEEPBIND = 5
130
+ }
131
+ declare enum priority {
132
+ PRIORITY_LOW = 1,
133
+ PRIORITY_BELOW_NORMAL = 2,
134
+ PRIORITY_NORMAL = 3,
135
+ PRIORITY_ABOVE_NORMAL = 4,
136
+ PRIORITY_HIGH = 5,
137
+ PRIORITY_HIGHEST = 6
138
+ }
139
+ export declare const constants: {
140
+ signals: typeof signals;
141
+ errno: typeof errno;
142
+ dlopen: typeof dlopen;
143
+ priority: typeof priority;
144
+ };
145
+ export declare function cpus(): {
146
+ model: string;
147
+ speed: number;
148
+ times: {
149
+ user: number;
150
+ nice: number;
151
+ sys: number;
152
+ idle: number;
153
+ irq: number;
154
+ };
155
+ }[];
156
+ export declare const devNull = "/dev/null";
157
+ export declare function endianness(): string;
158
+ export declare function freemem(): number;
159
+ export declare function getPriority(pid?: number): number;
160
+ export declare function homedir(): string;
161
+ export declare function hostname(): string;
162
+ export declare function loadavg(): [number, number, number];
163
+ export declare function machine(): string;
164
+ export declare function networkInterfaces(): {
165
+ [key: string]: {
166
+ address: string;
167
+ netmask: string;
168
+ family: 'IPV4' | 'IPV6';
169
+ mac: string;
170
+ internal: boolean;
171
+ scopeid: number;
172
+ cidr: string;
173
+ };
174
+ };
175
+ export declare function platform(): string;
176
+ export declare function release(): string;
177
+ export declare function setPriority(priority: number): void;
178
+ export declare function setPriority(pid: number, priority: number): void;
179
+ export declare function tmpdir(): string;
180
+ export declare function totalmem(): number;
181
+ export declare function type(): string;
182
+ export declare function uptime(): number;
183
+ export declare function userInfo(): {
184
+ username: string;
185
+ uid: number;
186
+ gid: number;
187
+ shell: string;
188
+ homedir: string;
189
+ };
190
+ export declare function version(): string;
191
+ export {};