@makano/rew 1.1.73 → 1.2.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/coffeescript/browser.js +144 -139
- package/lib/coffeescript/cake.js +132 -133
- package/lib/coffeescript/coffeescript.js +437 -381
- package/lib/coffeescript/command.js +806 -724
- package/lib/coffeescript/grammar.js +1908 -2474
- package/lib/coffeescript/helpers.js +509 -473
- package/lib/coffeescript/index.js +228 -215
- package/lib/coffeescript/lexer.js +2282 -1909
- package/lib/coffeescript/nodes.js +9782 -9202
- package/lib/coffeescript/optparse.js +255 -227
- package/lib/coffeescript/parser.js +20305 -1265
- package/lib/coffeescript/register.js +107 -87
- package/lib/coffeescript/repl.js +307 -284
- package/lib/coffeescript/rewriter.js +1389 -1079
- package/lib/coffeescript/scope.js +176 -172
- package/lib/coffeescript/sourcemap.js +242 -227
- package/lib/rew/cli/cli.js +288 -186
- package/lib/rew/cli/log.js +31 -32
- package/lib/rew/cli/run.js +10 -12
- package/lib/rew/cli/utils.js +344 -176
- package/lib/rew/const/config_path.js +4 -0
- package/lib/rew/const/default.js +38 -35
- package/lib/rew/const/files.js +9 -9
- package/lib/rew/const/opt.js +8 -8
- package/lib/rew/css/theme.css +2 -2
- package/lib/rew/functions/core.js +55 -57
- package/lib/rew/functions/curl.js +23 -0
- package/lib/rew/functions/emitter.js +52 -55
- package/lib/rew/functions/exec.js +25 -21
- package/lib/rew/functions/export.js +18 -20
- package/lib/rew/functions/fs.js +55 -54
- package/lib/rew/functions/future.js +29 -21
- package/lib/rew/functions/id.js +8 -9
- package/lib/rew/functions/import.js +107 -93
- package/lib/rew/functions/map.js +13 -16
- package/lib/rew/functions/match.js +35 -26
- package/lib/rew/functions/path.js +8 -8
- package/lib/rew/functions/require.js +32 -33
- package/lib/rew/functions/sleep.js +2 -2
- package/lib/rew/functions/stdout.js +20 -20
- package/lib/rew/functions/types.js +96 -95
- package/lib/rew/html/ui.html +12 -13
- package/lib/rew/html/ui.js +205 -168
- package/lib/rew/main.js +14 -14
- package/lib/rew/misc/bin.js +37 -0
- package/lib/rew/misc/findAppInfo.js +16 -0
- package/lib/rew/misc/findAppPath.js +21 -0
- package/lib/rew/misc/req.js +7 -0
- package/lib/rew/misc/seededid.js +13 -0
- package/lib/rew/models/enum.js +12 -12
- package/lib/rew/models/struct.js +30 -32
- package/lib/rew/modules/compiler.js +237 -177
- package/lib/rew/modules/context.js +35 -22
- package/lib/rew/modules/fs.js +10 -10
- package/lib/rew/modules/runtime.js +17 -21
- package/lib/rew/modules/yaml.js +27 -30
- package/lib/rew/pkgs/conf.js +82 -75
- package/lib/rew/pkgs/data.js +12 -7
- package/lib/rew/pkgs/date.js +27 -28
- package/lib/rew/pkgs/env.js +6 -8
- package/lib/rew/pkgs/modules/data/bintree.js +52 -52
- package/lib/rew/pkgs/modules/data/doublylinked.js +85 -85
- package/lib/rew/pkgs/modules/data/linkedList.js +73 -73
- package/lib/rew/pkgs/modules/data/queue.js +19 -20
- package/lib/rew/pkgs/modules/data/stack.js +19 -19
- package/lib/rew/pkgs/modules/threads/worker.js +36 -26
- package/lib/rew/pkgs/modules/ui/classes.js +182 -178
- package/lib/rew/pkgs/pkgs.js +9 -10
- package/lib/rew/pkgs/rune.js +400 -0
- package/lib/rew/pkgs/threads.js +57 -53
- package/lib/rew/pkgs/ui.js +148 -136
- package/lib/rew/qrew/compile.js +12 -0
- package/package.json +11 -4
@@ -1,112 +1,126 @@
|
|
1
|
-
const path = require(
|
2
|
-
const { getFile, file } = require(
|
3
|
-
const { importYaml } = require(
|
4
|
-
const { findPackage, getPackage } = require(
|
5
|
-
const { existsSync, readFileSync } = require(
|
6
|
-
const conf = require(
|
7
|
-
const jsYaml = require(
|
8
|
-
const { execOptions } = require(
|
1
|
+
const path = require('path');
|
2
|
+
const { getFile, file } = require('../modules/fs');
|
3
|
+
const { importYaml } = require('../modules/yaml');
|
4
|
+
const { findPackage, getPackage } = require('../pkgs/pkgs');
|
5
|
+
const { existsSync, readFileSync } = require('fs');
|
6
|
+
const conf = require('../pkgs/conf');
|
7
|
+
const jsYaml = require('js-yaml');
|
8
|
+
const { execOptions } = require('../const/opt');
|
9
9
|
|
10
10
|
const cachedFiles = [];
|
11
11
|
|
12
12
|
const lookUpInOtherApps = (fullPath) => {
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
13
|
+
const con = conf({});
|
14
|
+
const name = fullPath.indexOf('/') ? fullPath.split('/')[0] : fullPath;
|
15
|
+
let dpath = fullPath.indexOf('/') ? fullPath.split('/')[1] : '';
|
16
|
+
let ppath = path.join(con.CONFIG_PATH, name, 'app');
|
17
|
+
const config = jsYaml.load(readFileSync(path.join(ppath, 'app.yaml'), 'utf-8'));
|
18
|
+
if (!existsSync(ppath)) return null;
|
19
|
+
if (!dpath) {
|
20
|
+
dpath = config.entry;
|
21
|
+
}
|
22
|
+
if(config.private == true) return null;
|
23
|
+
const pepath = path.join(ppath, dpath);
|
24
|
+
if(Array.isArray(config.private)){
|
25
|
+
if(config.private.find(f => pepath == path.join(ppath, f))) return null;
|
26
|
+
}
|
27
|
+
if (existsSync(pepath)) return pepath;
|
28
|
+
else return null;
|
29
|
+
};
|
25
30
|
|
26
31
|
module.exports.imp = function (runPath, context) {
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
+
return function (filename, options = {}) {
|
33
|
+
if (!options) options = {};
|
34
|
+
let type = options.type || 'coffee';
|
35
|
+
let exports,
|
36
|
+
ispkg = findPackage(filename);
|
32
37
|
|
33
|
-
|
38
|
+
if (filename.startsWith('@') && context.app) {
|
39
|
+
filename = filename.replace('@', context.app.path);
|
40
|
+
}
|
34
41
|
|
35
|
-
|
42
|
+
let filepath = path.resolve(path.dirname(context.module.filepath), filename);
|
43
|
+
if(path.extname(filepath) == '.qrew') options.qrew = true;
|
36
44
|
|
37
|
-
|
38
|
-
const otherPath = lookUpInOtherApps(filename);
|
39
|
-
if (!otherPath) throw new Error('Module "' + filename + '" not found');
|
40
|
-
else filepath = otherPath;
|
41
|
-
}
|
45
|
+
// console.log(typeof runPath);
|
42
46
|
|
43
|
-
|
47
|
+
const lookUp = () => {
|
48
|
+
const otherPath = lookUpInOtherApps(filename);
|
49
|
+
if (!otherPath) throw new Error('Module "' + filename + '" not found');
|
50
|
+
else filepath = otherPath;
|
51
|
+
};
|
44
52
|
|
45
|
-
|
46
|
-
exports = foundCache.exports;
|
47
|
-
}
|
53
|
+
const foundCache = cachedFiles.find((f) => f.filepath == filepath);
|
48
54
|
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
if (resolve) {
|
53
|
-
filepath += typeof resolve == "string" ? resolve : resolve.ext;
|
54
|
-
if (typeof resolve == "object" && resolve.options) {
|
55
|
-
if (resolve.options.type) type = resolve.options.type;
|
56
|
-
for (let i in resolve.options) options[i] = resolve.options[i];
|
57
|
-
}
|
58
|
-
} else lookUp();
|
59
|
-
} else lookUp();
|
60
|
-
}
|
55
|
+
if (!ispkg && foundCache) {
|
56
|
+
exports = foundCache.exports;
|
57
|
+
}
|
61
58
|
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
59
|
+
if (!ispkg && !existsSync(filepath)) {
|
60
|
+
if (Array.isArray(execOptions.resolveExtensions) && execOptions.resolveExtensions.length) {
|
61
|
+
const resolve = execOptions.resolveExtensions.find((ext) =>
|
62
|
+
typeof ext == 'string' ? existsSync(filepath + ext) : existsSync(filepath + (ext.ext || '')),
|
63
|
+
);
|
64
|
+
if (resolve) {
|
65
|
+
filepath += typeof resolve == 'string' ? resolve : resolve.ext;
|
66
|
+
if (typeof resolve == 'object' && resolve.options) {
|
67
|
+
if (resolve.options.type) type = resolve.options.type;
|
68
|
+
for (let i in resolve.options) options[i] = resolve.options[i];
|
69
|
+
}
|
70
|
+
} else lookUp();
|
71
|
+
} else lookUp();
|
72
|
+
}
|
75
73
|
|
76
|
-
|
77
|
-
|
78
|
-
|
74
|
+
const exec = (coptions = {}) =>
|
75
|
+
runPath(
|
76
|
+
filepath,
|
77
|
+
{
|
78
|
+
import: options,
|
79
|
+
main: false,
|
80
|
+
useContext: execOptions.sharedContext == false ? false : !(options.context && options.context == 'new'),
|
81
|
+
...coptions,
|
82
|
+
as: options.as == 'main' ? (context.module.main ? 'main' : 'parent') : options.as == 'parent' ? 'parent' : 'child',
|
83
|
+
fromMain: context.module.main,
|
84
|
+
qrew: options.qrew,
|
85
|
+
package: context.app ? context.app.config.package : path.basename(filepath)
|
86
|
+
},
|
87
|
+
execOptions.sharedContext == false ? {} : options.context && options.context == 'new' ? {} : context,
|
88
|
+
).context.module.exports;
|
79
89
|
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
90
|
+
if (ispkg) {
|
91
|
+
const pkg = getPackage(filename)(context);
|
92
|
+
exports = pkg._onImport ? pkg._onImport() : pkg;
|
93
|
+
} else if (foundCache) {
|
94
|
+
} else if (type == 'coffee') {
|
95
|
+
exports = exec({});
|
96
|
+
} else if (type == 'js') {
|
97
|
+
exports = exec({ compile: false });
|
98
|
+
} else if (type == 'yaml' || type == 'json' || type == 'text') {
|
99
|
+
const f = getFile(filepath);
|
100
|
+
if (type == 'yaml') {
|
101
|
+
exports = importYaml(f.path, f);
|
102
|
+
} else if (type == 'json') {
|
103
|
+
try {
|
104
|
+
exports = JSON.parse(f.content);
|
105
|
+
} catch (e) {
|
106
|
+
exports = {};
|
107
|
+
}
|
108
|
+
} else {
|
109
|
+
exports = f.content;
|
110
|
+
}
|
111
|
+
}
|
98
112
|
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
113
|
+
if (options.save && (type == 'js' || type == 'coffee')) {
|
114
|
+
if (typeof options.save == 'string') context[options.save] = exports[i];
|
115
|
+
else
|
116
|
+
for (let i in exports) {
|
117
|
+
context[i] = exports[i];
|
118
|
+
}
|
119
|
+
}
|
106
120
|
|
107
|
-
|
108
|
-
|
121
|
+
if (!ispkg) context.module.imports.push(filepath);
|
122
|
+
if (!ispkg) cachedFiles.push({ filepath, exports });
|
109
123
|
|
110
|
-
|
111
|
-
|
124
|
+
return exports;
|
125
|
+
};
|
112
126
|
};
|
package/lib/rew/functions/map.js
CHANGED
@@ -1,17 +1,14 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
1
|
module.exports.map = function map(...args) {
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
};
|
2
|
+
if (args.length % 2 !== 0) {
|
3
|
+
throw new Error('Arguments must be in key-value pairs');
|
4
|
+
}
|
5
|
+
|
6
|
+
const result = new Map();
|
7
|
+
for (let i = 0; i < args.length; i += 2) {
|
8
|
+
const key = args[i];
|
9
|
+
const value = args[i + 1];
|
10
|
+
result.set(key, value);
|
11
|
+
}
|
12
|
+
|
13
|
+
return result;
|
14
|
+
};
|
@@ -1,34 +1,43 @@
|
|
1
|
-
|
2
|
-
const SerializableData = ["string", "number", "boolean"];
|
1
|
+
const SerializableData = ['string', 'number', 'boolean'];
|
3
2
|
|
4
3
|
const isRegExp = (obj) => Object.prototype.toString.call(obj) === '[object RegExp]';
|
5
4
|
|
6
5
|
module.exports.match = function match(value, templates, props) {
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
6
|
+
const matchProps = (pattern, value) => {
|
7
|
+
if (!props) return false;
|
8
|
+
if (typeof props === 'object') {
|
9
|
+
let t = true;
|
10
|
+
for (let i in props) {
|
11
|
+
t = t && pattern[i] == value[i];
|
12
|
+
if (!t) break;
|
13
|
+
}
|
14
|
+
return t;
|
15
|
+
} else if (typeof props === 'function') {
|
16
|
+
return props(pattern, value);
|
17
|
+
} else {
|
18
|
+
return false;
|
19
|
+
}
|
20
|
+
};
|
22
21
|
|
23
|
-
|
22
|
+
const matchRegex = (pattern, value) => pattern.test(value);
|
24
23
|
|
25
|
-
|
24
|
+
const entries = templates instanceof Map ? templates.entries() : Array.isArray(templates) ? templates : Object.entries(templates);
|
26
25
|
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
26
|
+
for (const [pattern, callback] of entries) {
|
27
|
+
if (
|
28
|
+
isRegExp(pattern)
|
29
|
+
? matchRegex(pattern, value)
|
30
|
+
: SerializableData.includes(typeof value)
|
31
|
+
? pattern == value
|
32
|
+
: isRegExp(pattern)
|
33
|
+
? matchRegex(pattern, value)
|
34
|
+
: typeof pattern === 'function'
|
35
|
+
? value instanceof pattern || value?.__proto__?.['@instance'] === pattern
|
36
|
+
: matchProps(pattern, value)
|
37
|
+
) {
|
38
|
+
return callback(...(isRegExp(pattern) ? pattern.exec(value) : [value]));
|
39
|
+
}
|
40
|
+
}
|
32
41
|
|
33
|
-
|
34
|
-
};
|
42
|
+
return null;
|
43
|
+
};
|
@@ -1,13 +1,13 @@
|
|
1
1
|
const path = require('path');
|
2
2
|
|
3
3
|
module.exports = (currentFile) => {
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
4
|
+
const e = {};
|
5
|
+
e.basename = (pathname, suffix) => path.basename(pathname, suffix);
|
6
|
+
e.dirname = (pathname) => path.dirname(pathname);
|
7
|
+
e.extname = (pathname) => path.extname(pathname);
|
8
8
|
|
9
|
-
|
10
|
-
|
9
|
+
e.pjoin = (...paths) => path.join(...paths);
|
10
|
+
e.presolve = (...paths) => path.resolve(...paths);
|
11
11
|
|
12
|
-
|
13
|
-
}
|
12
|
+
return e;
|
13
|
+
};
|
@@ -1,41 +1,40 @@
|
|
1
1
|
const fs = require('fs');
|
2
2
|
const path = require('path');
|
3
3
|
|
4
|
-
|
5
4
|
module.exports.customRequire = function customRequire(modulePath, filePath) {
|
6
|
-
|
7
|
-
|
8
|
-
}
|
5
|
+
const resolvedPath = resolveModulePath(modulePath, filePath);
|
6
|
+
return require(resolvedPath);
|
7
|
+
};
|
9
8
|
|
10
9
|
function resolveModulePath(modulePath, filePath) {
|
11
|
-
|
12
|
-
|
13
|
-
|
10
|
+
if (modulePath.startsWith('./') || modulePath.startsWith('../') || path.isAbsolute(modulePath)) {
|
11
|
+
return path.resolve(modulePath);
|
12
|
+
}
|
14
13
|
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
14
|
+
const paths = module.constructor._nodeModulePaths(path.dirname(filePath));
|
15
|
+
for (const basePath of paths) {
|
16
|
+
const fullPath = path.join(basePath, modulePath);
|
17
|
+
if (fs.existsSync(fullPath + '.js')) {
|
18
|
+
return fullPath + '.js';
|
19
|
+
}
|
20
|
+
if (fs.existsSync(fullPath + '.json')) {
|
21
|
+
return fullPath + '.json';
|
22
|
+
}
|
23
|
+
if (fs.existsSync(fullPath) && fs.statSync(fullPath).isDirectory()) {
|
24
|
+
const packageJsonPath = path.join(fullPath, 'package.json');
|
25
|
+
if (fs.existsSync(packageJsonPath)) {
|
26
|
+
const main = require(packageJsonPath).main || 'index.js';
|
27
|
+
const mainPath = path.join(fullPath, main);
|
28
|
+
if (fs.existsSync(mainPath)) {
|
29
|
+
return mainPath;
|
30
|
+
}
|
31
|
+
}
|
32
|
+
const indexPath = path.join(fullPath, 'index.js');
|
33
|
+
if (fs.existsSync(indexPath)) {
|
34
|
+
return indexPath;
|
35
|
+
}
|
36
|
+
}
|
37
|
+
}
|
39
38
|
|
40
|
-
|
41
|
-
}
|
39
|
+
throw new Error(`Cannot find module '${modulePath}'`);
|
40
|
+
}
|
@@ -1,30 +1,30 @@
|
|
1
1
|
const { execSync, spawnSync } = require('child_process');
|
2
2
|
const fs = require('fs');
|
3
3
|
|
4
|
-
const print = module.exports.print = function print(...arguments) {
|
5
|
-
|
6
|
-
};
|
4
|
+
const print = (module.exports.print = function print(...arguments) {
|
5
|
+
return console.log(...arguments);
|
6
|
+
});
|
7
7
|
|
8
8
|
print.stdout = process.stdout;
|
9
9
|
print.stdin = process.stdin;
|
10
10
|
|
11
11
|
module.exports.input = function input(prompt) {
|
12
|
-
|
12
|
+
process.stdout.write(prompt);
|
13
|
+
|
14
|
+
let cmd;
|
15
|
+
let args;
|
16
|
+
if ('null' == 'win32') {
|
17
|
+
cmd = 'cmd';
|
18
|
+
args = ['/V:ON', '/C', 'set /p response= && echo !response!'];
|
19
|
+
} else {
|
20
|
+
cmd = 'bash';
|
21
|
+
args = ['-c', 'read response; echo "$response"'];
|
22
|
+
}
|
13
23
|
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
args = ['/V:ON', '/C', 'set /p response= && echo !response!'];
|
19
|
-
} else {
|
20
|
-
cmd = 'bash';
|
21
|
-
args = ['-c', 'read response; echo "$response"'];
|
22
|
-
}
|
24
|
+
let opts = {
|
25
|
+
stdio: ['inherit', 'pipe'],
|
26
|
+
shell: false,
|
27
|
+
};
|
23
28
|
|
24
|
-
|
25
|
-
|
26
|
-
shell: false,
|
27
|
-
};
|
28
|
-
|
29
|
-
return spawnSync(cmd, args, opts).stdout.toString().trim();
|
30
|
-
}
|
29
|
+
return spawnSync(cmd, args, opts).stdout.toString().trim();
|
30
|
+
};
|