hackmud-script-manager 0.21.1-d4bf990 → 0.21.1-e3e8246
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/README.md +44 -38
- package/bin/hsm.js +252 -245
- package/env.d.ts +301 -244
- package/generateTypeDeclaration.js +1 -1
- package/index.js +2 -2
- package/package.json +26 -26
- package/processScript/index.d.ts +12 -9
- package/processScript/index.js +46 -39
- package/processScript/minify.d.ts +11 -8
- package/processScript/minify.js +10 -10
- package/processScript/preprocess.d.ts +4 -2
- package/processScript/preprocess.js +7 -7
- package/processScript/transform.d.ts +8 -6
- package/processScript/transform.js +32 -32
- package/pull.d.ts +6 -4
- package/pull.js +1 -1
- package/push.d.ts +23 -18
- package/push.js +6 -6
- package/syncMacros.js +14 -15
- package/watch.d.ts +11 -7
- package/watch.js +6 -6
@@ -1,5 +1,5 @@
|
|
1
|
-
import { readDirectoryWithStats } from "@samual/lib/readDirectoryWithStats"
|
2
1
|
import { basename, resolve } from "path"
|
2
|
+
import { readDirectoryWithStats } from "@samual/lib/readDirectoryWithStats"
|
3
3
|
async function generateTypeDeclaration(sourceDirectory, hackmudPath) {
|
4
4
|
const users = new Set()
|
5
5
|
if (hackmudPath)
|
package/index.js
CHANGED
@@ -5,8 +5,8 @@ export { pull } from "./pull.js"
|
|
5
5
|
export { push } from "./push.js"
|
6
6
|
export { syncMacros } from "./syncMacros.js"
|
7
7
|
export { watch } from "./watch.js"
|
8
|
-
import "@samual/lib/readDirectoryWithStats"
|
9
8
|
import "path"
|
9
|
+
import "@samual/lib/readDirectoryWithStats"
|
10
10
|
import "@babel/generator"
|
11
11
|
import "@babel/parser"
|
12
12
|
import "@babel/plugin-proposal-decorators"
|
@@ -46,7 +46,7 @@ import "import-meta-resolve"
|
|
46
46
|
import "./processScript/transform.js"
|
47
47
|
import "@samual/lib/clearObject"
|
48
48
|
import "@samual/lib/copyFilePersistent"
|
49
|
+
import "fs/promises"
|
49
50
|
import "@samual/lib/AutoMap"
|
50
51
|
import "@samual/lib/writeFilePersistent"
|
51
|
-
import "fs/promises"
|
52
52
|
import "chokidar"
|
package/package.json
CHANGED
@@ -1,7 +1,22 @@
|
|
1
1
|
{
|
2
2
|
"name": "hackmud-script-manager",
|
3
|
-
"
|
3
|
+
"type": "module",
|
4
|
+
"version": "0.21.1-e3e8246",
|
4
5
|
"description": "Script manager for game hackmud, with minification, TypeScript support, and player script type definition generation.",
|
6
|
+
"author": "Samual Norman <me@samual.uk> (https://samual.uk/)",
|
7
|
+
"contributors": [
|
8
|
+
"Daniel Swann (https://github.com/danswann)",
|
9
|
+
"Longboyy",
|
10
|
+
"Helloman892",
|
11
|
+
"Sarah Klocke (https://sarahisweird.dev/)"
|
12
|
+
],
|
13
|
+
"license": "MIT",
|
14
|
+
"homepage": "https://github.com/samualtnorman/hackmud-script-manager#readme",
|
15
|
+
"repository": {
|
16
|
+
"type": "git",
|
17
|
+
"url": "https://github.com/samualtnorman/hackmud-script-manager.git"
|
18
|
+
},
|
19
|
+
"bugs": "https://github.com/samualtnorman/hackmud-script-manager/issues",
|
5
20
|
"keywords": [
|
6
21
|
"api",
|
7
22
|
"command-line",
|
@@ -17,20 +32,17 @@
|
|
17
32
|
"golf",
|
18
33
|
"golfer"
|
19
34
|
],
|
20
|
-
"
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
"Daniel Swann (https://github.com/danswann)",
|
26
|
-
"Longboyy",
|
27
|
-
"Helloman892",
|
28
|
-
"Sarah Klocke (https://sarahisweird.dev/)"
|
29
|
-
],
|
35
|
+
"exports": {
|
36
|
+
".": "./index.js",
|
37
|
+
"./*": "./*.js",
|
38
|
+
"./*.js": "./*.js"
|
39
|
+
},
|
30
40
|
"main": "index.js",
|
31
|
-
"
|
32
|
-
"
|
33
|
-
|
41
|
+
"bin": {
|
42
|
+
"hsm": "bin/hsm.js"
|
43
|
+
},
|
44
|
+
"peerDependencies": {
|
45
|
+
"typescript": "^5.4.5"
|
34
46
|
},
|
35
47
|
"dependencies": {
|
36
48
|
"@babel/generator": "^7.26.2",
|
@@ -76,18 +88,6 @@
|
|
76
88
|
"rollup": "^4.27.4",
|
77
89
|
"terser": "^5.36.0"
|
78
90
|
},
|
79
|
-
"peerDependencies": {
|
80
|
-
"typescript": "^5.4.5"
|
81
|
-
},
|
82
|
-
"type": "module",
|
83
|
-
"exports": {
|
84
|
-
".": "./index.js",
|
85
|
-
"./*": "./*.js",
|
86
|
-
"./*.js": "./*.js"
|
87
|
-
},
|
88
|
-
"bin": {
|
89
|
-
"hsm": "bin/hsm.js"
|
90
|
-
},
|
91
91
|
"engines": {
|
92
92
|
"node": "^18 || >=20"
|
93
93
|
}
|
package/processScript/index.d.ts
CHANGED
@@ -9,20 +9,23 @@ export type ProcessOptions = LaxPartial<{
|
|
9
9
|
/** the user going to be hosting this script (or set to `true` if not yet known) */ scriptUser: string | true;
|
10
10
|
filePath: string;
|
11
11
|
/** whether to mangle function and class names (defaults to `false`) */ mangleNames: boolean;
|
12
|
-
/**
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
12
|
+
/**
|
13
|
+
* when set to `true` forces use of quine cheats
|
14
|
+
*
|
15
|
+
* when set to `false` forces quine cheats not to be used
|
16
|
+
*
|
17
|
+
* when left unset or set to `undefined`, automatically uses or doesn't use quine cheats based on character count
|
18
|
+
*/
|
18
19
|
forceQuineCheats: boolean;
|
19
20
|
rootFolderPath: string;
|
20
21
|
}> & {
|
21
22
|
scriptName: string | true;
|
22
23
|
};
|
23
|
-
/**
|
24
|
-
|
25
|
-
|
24
|
+
/**
|
25
|
+
* Minifies a given script
|
26
|
+
* @param code JavaScript or TypeScript code
|
27
|
+
* @param options {@link ProcessOptions details}
|
28
|
+
*/
|
26
29
|
export declare function processScript(code: string, { minify: shouldMinify, uniqueId, scriptUser, scriptName, filePath, mangleNames, forceQuineCheats, rootFolderPath }: ProcessOptions): Promise<{
|
27
30
|
script: string;
|
28
31
|
warnings: {
|
package/processScript/index.js
CHANGED
@@ -1,21 +1,22 @@
|
|
1
|
-
import
|
1
|
+
import { relative, isAbsolute, sep } from "path"
|
2
|
+
import n3ha3edvh5zk1ro8veo8wvy2 from "@babel/generator"
|
2
3
|
import { parse } from "@babel/parser"
|
3
|
-
import
|
4
|
-
import
|
5
|
-
import
|
6
|
-
import
|
7
|
-
import
|
8
|
-
import
|
9
|
-
import
|
10
|
-
import
|
11
|
-
import
|
12
|
-
import
|
13
|
-
import
|
14
|
-
import
|
15
|
-
import
|
16
|
-
import
|
17
|
-
import
|
18
|
-
import
|
4
|
+
import je9pzbbof1st6boak6d6crsm from "@babel/plugin-proposal-decorators"
|
5
|
+
import lwclo4xmm1gq7llijvl8grh6 from "@babel/plugin-proposal-destructuring-private"
|
6
|
+
import lh8vcuevzb86egw39i6x76dq from "@babel/plugin-proposal-explicit-resource-management"
|
7
|
+
import sxewr76clr9u1q17stritg0q from "@babel/plugin-transform-class-properties"
|
8
|
+
import w6byfi8co37l9dijjqtjhfhr from "@babel/plugin-transform-class-static-block"
|
9
|
+
import mvg1lyd8g0iisgneo8zt29v7 from "@babel/plugin-transform-exponentiation-operator"
|
10
|
+
import wiq63d0b3jzmtftmi5tuy94k from "@babel/plugin-transform-json-strings"
|
11
|
+
import rc0486b8bqf6tbxnw4g39i6x from "@babel/plugin-transform-logical-assignment-operators"
|
12
|
+
import s232f7y5ripv8oyf5f2bx1qi from "@babel/plugin-transform-nullish-coalescing-operator"
|
13
|
+
import f9ajkvv5ikiihcmh8ccayzlb from "@babel/plugin-transform-numeric-separator"
|
14
|
+
import txw5yspnpyviihdg8s33iz0s from "@babel/plugin-transform-object-rest-spread"
|
15
|
+
import hsvriafkupocvvxakbzsaf3o from "@babel/plugin-transform-optional-catch-binding"
|
16
|
+
import kovmcpnhh7cttg1pxob2wz9o from "@babel/plugin-transform-optional-chaining"
|
17
|
+
import ax3pa6k08o1mieqfjlhn3sp7 from "@babel/plugin-transform-private-property-in-object"
|
18
|
+
import vnpgmdb3g8bdstmihe50nrap from "@babel/plugin-transform-unicode-sets-regex"
|
19
|
+
import kwmn7lp0r5s0ul58gd0l3ldw from "@babel/traverse"
|
19
20
|
import t from "@babel/types"
|
20
21
|
import rollupPluginAlias from "@rollup/plugin-alias"
|
21
22
|
import { babel } from "@rollup/plugin-babel"
|
@@ -23,7 +24,6 @@ import rollupPluginCommonJS from "@rollup/plugin-commonjs"
|
|
23
24
|
import rollupPluginJSON from "@rollup/plugin-json"
|
24
25
|
import rollupPluginNodeResolve from "@rollup/plugin-node-resolve"
|
25
26
|
import { assert } from "@samual/lib/assert"
|
26
|
-
import { relative, isAbsolute, sep } from "path"
|
27
27
|
import prettier from "prettier"
|
28
28
|
import { rollup } from "rollup"
|
29
29
|
import { supportedExtensions } from "../constants.js"
|
@@ -38,23 +38,23 @@ import "acorn"
|
|
38
38
|
import "terser"
|
39
39
|
import "import-meta-resolve"
|
40
40
|
import "@samual/lib/clearObject"
|
41
|
-
const generate =
|
42
|
-
babelPluginProposalDecorators =
|
43
|
-
babelPluginProposalDestructuringPrivate =
|
44
|
-
babelPluginProposalExplicitResourceManagement =
|
45
|
-
babelPluginTransformClassProperties =
|
46
|
-
babelPluginTransformClassStaticBlock =
|
47
|
-
babelPluginTransformExponentiationOperator =
|
48
|
-
babelPluginTransformJsonStrings =
|
49
|
-
babelPluginTransformLogicalAssignmentOperators =
|
50
|
-
babelPluginTransformNullishCoalescingOperator =
|
51
|
-
babelPluginTransformNumericSeparator =
|
52
|
-
babelPluginTransformObjectRestSpread =
|
53
|
-
babelPluginTransformOptionalCatchBinding =
|
54
|
-
babelPluginTransformOptionalChaining =
|
55
|
-
babelPluginTransformPrivatePropertyInObject =
|
56
|
-
babelPluginTransformUnicodeSetsRegex =
|
57
|
-
traverse =
|
41
|
+
const generate = n3ha3edvh5zk1ro8veo8wvy2.default,
|
42
|
+
babelPluginProposalDecorators = je9pzbbof1st6boak6d6crsm.default,
|
43
|
+
babelPluginProposalDestructuringPrivate = lwclo4xmm1gq7llijvl8grh6.default,
|
44
|
+
babelPluginProposalExplicitResourceManagement = lh8vcuevzb86egw39i6x76dq.default,
|
45
|
+
babelPluginTransformClassProperties = sxewr76clr9u1q17stritg0q.default,
|
46
|
+
babelPluginTransformClassStaticBlock = w6byfi8co37l9dijjqtjhfhr.default,
|
47
|
+
babelPluginTransformExponentiationOperator = mvg1lyd8g0iisgneo8zt29v7.default,
|
48
|
+
babelPluginTransformJsonStrings = wiq63d0b3jzmtftmi5tuy94k.default,
|
49
|
+
babelPluginTransformLogicalAssignmentOperators = rc0486b8bqf6tbxnw4g39i6x.default,
|
50
|
+
babelPluginTransformNullishCoalescingOperator = s232f7y5ripv8oyf5f2bx1qi.default,
|
51
|
+
babelPluginTransformNumericSeparator = f9ajkvv5ikiihcmh8ccayzlb.default,
|
52
|
+
babelPluginTransformObjectRestSpread = txw5yspnpyviihdg8s33iz0s.default,
|
53
|
+
babelPluginTransformOptionalCatchBinding = hsvriafkupocvvxakbzsaf3o.default,
|
54
|
+
babelPluginTransformOptionalChaining = kovmcpnhh7cttg1pxob2wz9o.default,
|
55
|
+
babelPluginTransformPrivatePropertyInObject = ax3pa6k08o1mieqfjlhn3sp7.default,
|
56
|
+
babelPluginTransformUnicodeSetsRegex = vnpgmdb3g8bdstmihe50nrap.default,
|
57
|
+
traverse = kwmn7lp0r5s0ul58gd0l3ldw.default,
|
58
58
|
{ format } = prettier
|
59
59
|
async function processScript(
|
60
60
|
code,
|
@@ -71,7 +71,7 @@ async function processScript(
|
|
71
71
|
rootFolderPath
|
72
72
|
}
|
73
73
|
) {
|
74
|
-
assert(/^\w{11}$/.exec(uniqueId), "src/processScript/index.ts:
|
74
|
+
assert(/^\w{11}$/.exec(uniqueId), "src/processScript/index.ts:82:36")
|
75
75
|
const sourceCode = code
|
76
76
|
let autocomplete, statedSeclevel
|
77
77
|
const autocompleteMatch = /^function\s*\(.+\/\/(?<autocomplete>.+)/.exec(code)
|
@@ -132,7 +132,7 @@ async function processScript(
|
|
132
132
|
}
|
133
133
|
}
|
134
134
|
}
|
135
|
-
assert(/^\w{11}$/.exec(uniqueId), "src/processScript/index.ts:
|
135
|
+
assert(/^\w{11}$/.exec(uniqueId), "src/processScript/index.ts:161:36")
|
136
136
|
const plugins = [
|
137
137
|
[babelPluginProposalDecorators, { decoratorsBeforeExport: !0 }],
|
138
138
|
[babelPluginTransformClassProperties],
|
@@ -224,7 +224,14 @@ async function processScript(
|
|
224
224
|
rollupPluginJSON({ preferConst: !0 }),
|
225
225
|
{
|
226
226
|
name: "hackmud-script-manager",
|
227
|
+
resolveId(source) {
|
228
|
+
if (source == filePathResolved) return filePathResolved
|
229
|
+
},
|
230
|
+
async load(id) {
|
231
|
+
if (id == filePathResolved) return (await preprocess(code, { uniqueId })).code
|
232
|
+
},
|
227
233
|
async transform(code, id) {
|
234
|
+
if (id == filePathResolved) return
|
228
235
|
if (isAbsolute(id) && !id.includes(`${sep}node_modules${sep}`))
|
229
236
|
return (await preprocess(code, { uniqueId })).code
|
230
237
|
let program
|
@@ -268,7 +275,7 @@ async function processScript(
|
|
268
275
|
traverse(file, {
|
269
276
|
MemberExpression({ node: memberExpression }) {
|
270
277
|
if (!memberExpression.computed) {
|
271
|
-
assert("Identifier" == memberExpression.property.type, "src/processScript/index.ts:
|
278
|
+
assert("Identifier" == memberExpression.property.type, "src/processScript/index.ts:336:60")
|
272
279
|
if ("prototype" == memberExpression.property.name) {
|
273
280
|
memberExpression.computed = !0
|
274
281
|
memberExpression.property = t.stringLiteral("prototype")
|
@@ -298,7 +305,7 @@ async function processScript(
|
|
298
305
|
break
|
299
306
|
case "ObjectPattern":
|
300
307
|
for (const property of lValue.properties) {
|
301
|
-
assert("ObjectProperty" == property.type, "src/processScript/index.ts:
|
308
|
+
assert("ObjectProperty" == property.type, "src/processScript/index.ts:367:51")
|
302
309
|
renameVariables(property.value)
|
303
310
|
}
|
304
311
|
break
|
@@ -3,16 +3,19 @@ import type { LaxPartial } from "@samual/lib";
|
|
3
3
|
type MinifyOptions = LaxPartial<{
|
4
4
|
/** 11 a-z 0-9 characters */ uniqueId: string;
|
5
5
|
/** whether to mangle function and class names (defaults to `false`) */ mangleNames: boolean;
|
6
|
-
/**
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
6
|
+
/**
|
7
|
+
* when set to `true` forces use of quine cheats
|
8
|
+
*
|
9
|
+
* when set to `false` forces quine cheats not to be used
|
10
|
+
*
|
11
|
+
* when left unset or set to `undefined`, automatically uses or doesn't use quine cheats based on character count
|
12
|
+
*/
|
12
13
|
forceQuineCheats: boolean;
|
13
14
|
/** the comment inserted after the function signature */ autocomplete: string;
|
14
15
|
}>;
|
15
|
-
/**
|
16
|
-
|
16
|
+
/**
|
17
|
+
* @param file babel ast node representing a file containing transformed code
|
18
|
+
* @param options {@link MinifyOptions details}
|
19
|
+
*/
|
17
20
|
export declare function minify(file: File, { uniqueId, mangleNames, forceQuineCheats, autocomplete }?: MinifyOptions): Promise<string>;
|
18
21
|
export {};
|
package/processScript/minify.js
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
-
import
|
2
|
-
import
|
1
|
+
import n3ha3edvh5zk1ro8veo8wvy2 from "@babel/generator"
|
2
|
+
import kwmn7lp0r5s0ul58gd0l3ldw from "@babel/traverse"
|
3
3
|
import t from "@babel/types"
|
4
4
|
import { assert } from "@samual/lib/assert"
|
5
5
|
import { countHackmudCharacters } from "@samual/lib/countHackmudCharacters"
|
@@ -7,12 +7,12 @@ import { spliceString } from "@samual/lib/spliceString"
|
|
7
7
|
import { tokenizer, tokTypes } from "acorn"
|
8
8
|
import * as terser from "terser"
|
9
9
|
import { getReferencePathsToGlobal, includesIllegalString, replaceUnsafeStrings } from "./shared.js"
|
10
|
-
const generate =
|
11
|
-
traverse =
|
10
|
+
const generate = n3ha3edvh5zk1ro8veo8wvy2.default,
|
11
|
+
traverse = kwmn7lp0r5s0ul58gd0l3ldw.default,
|
12
12
|
minifyNumber = async number =>
|
13
13
|
/\$\((?<number>.+)\)/.exec((await terser.minify(`$(${number})`, { ecma: 2015 })).code).groups.number
|
14
14
|
async function minify(file, { uniqueId = "00000000000", mangleNames = !1, forceQuineCheats, autocomplete } = {}) {
|
15
|
-
assert(/^\w{11}$/.exec(uniqueId), "src/processScript/minify.ts:
|
15
|
+
assert(/^\w{11}$/.exec(uniqueId), "src/processScript/minify.ts:45:36")
|
16
16
|
let program
|
17
17
|
traverse(file, {
|
18
18
|
Program(path) {
|
@@ -52,7 +52,7 @@ async function minify(file, { uniqueId = "00000000000", mangleNames = !1, forceQ
|
|
52
52
|
traverse(fileBeforeJSONValueReplacement, {
|
53
53
|
MemberExpression({ node: memberExpression }) {
|
54
54
|
if (!memberExpression.computed) {
|
55
|
-
assert("Identifier" == memberExpression.property.type, "src/processScript/minify.ts:
|
55
|
+
assert("Identifier" == memberExpression.property.type, "src/processScript/minify.ts:113:60")
|
56
56
|
if ("prototype" == memberExpression.property.name) {
|
57
57
|
memberExpression.computed = !0
|
58
58
|
memberExpression.property = t.identifier(`_${uniqueId}_PROTOTYPE_PROPERTY_`)
|
@@ -164,7 +164,7 @@ async function minify(file, { uniqueId = "00000000000", mangleNames = !1, forceQ
|
|
164
164
|
},
|
165
165
|
MemberExpression({ node: memberExpression }) {
|
166
166
|
if (!memberExpression.computed) {
|
167
|
-
assert("Identifier" == memberExpression.property.type, "src/processScript/minify.ts:
|
167
|
+
assert("Identifier" == memberExpression.property.type, "src/processScript/minify.ts:248:62")
|
168
168
|
if (!(memberExpression.property.name.length < 3)) {
|
169
169
|
memberExpression.computed = !0
|
170
170
|
memberExpression.property = t.stringLiteral(memberExpression.property.name)
|
@@ -238,7 +238,7 @@ async function minify(file, { uniqueId = "00000000000", mangleNames = !1, forceQ
|
|
238
238
|
})
|
239
239
|
await Promise.all(promises)
|
240
240
|
const functionDeclaration = file.program.body[0]
|
241
|
-
assert("FunctionDeclaration" == functionDeclaration.type, "src/processScript/minify.ts:
|
241
|
+
assert("FunctionDeclaration" == functionDeclaration.type, "src/processScript/minify.ts:350:61")
|
242
242
|
if (jsonValues.length) {
|
243
243
|
hasComment = !0
|
244
244
|
if (1 == jsonValues.length)
|
@@ -358,7 +358,7 @@ async function minify(file, { uniqueId = "00000000000", mangleNames = !1, forceQ
|
|
358
358
|
)
|
359
359
|
}
|
360
360
|
if (1 == forceQuineCheats) return code
|
361
|
-
assert(scriptBeforeJSONValueReplacement, "src/processScript/minify.ts:
|
361
|
+
assert(scriptBeforeJSONValueReplacement, "src/processScript/minify.ts:481:43")
|
362
362
|
return countHackmudCharacters(scriptBeforeJSONValueReplacement) <= countHackmudCharacters(code) + Number(hasComment)
|
363
363
|
? scriptBeforeJSONValueReplacement
|
364
364
|
: code
|
@@ -371,7 +371,7 @@ function parseObjectExpression(node, o) {
|
|
371
371
|
"Identifier" == property.key.type ||
|
372
372
|
"NumericLiteral" == property.key.type ||
|
373
373
|
"StringLiteral" == property.key.type,
|
374
|
-
"src/processScript/minify.ts:
|
374
|
+
"src/processScript/minify.ts:503:4"
|
375
375
|
)
|
376
376
|
if ("ArrayExpression" == property.value.type) {
|
377
377
|
const childArray = []
|
@@ -2,8 +2,10 @@ import type { LaxPartial } from "@samual/lib";
|
|
2
2
|
export type PreprocessOptions = LaxPartial<{
|
3
3
|
uniqueId: string;
|
4
4
|
}>;
|
5
|
-
/**
|
6
|
-
|
5
|
+
/**
|
6
|
+
* @param code source code for preprocessing
|
7
|
+
* @param options {@link PreprocessOptions details}
|
8
|
+
*/
|
7
9
|
export declare function preprocess(code: string, { uniqueId }?: PreprocessOptions): Promise<{
|
8
10
|
code: string;
|
9
11
|
}>;
|
@@ -1,14 +1,14 @@
|
|
1
|
-
import
|
1
|
+
import n3ha3edvh5zk1ro8veo8wvy2 from "@babel/generator"
|
2
2
|
import { parse } from "@babel/parser"
|
3
|
-
import
|
3
|
+
import kwmn7lp0r5s0ul58gd0l3ldw from "@babel/traverse"
|
4
4
|
import t from "@babel/types"
|
5
5
|
import { assert } from "@samual/lib/assert"
|
6
6
|
import { spliceString } from "@samual/lib/spliceString"
|
7
7
|
import { resolve } from "import-meta-resolve"
|
8
|
-
const generate =
|
9
|
-
traverse =
|
8
|
+
const generate = n3ha3edvh5zk1ro8veo8wvy2.default,
|
9
|
+
traverse = kwmn7lp0r5s0ul58gd0l3ldw.default
|
10
10
|
async function preprocess(code, { uniqueId = "00000000000" } = {}) {
|
11
|
-
assert(/^\w{11}$/.test(uniqueId), "src/processScript/preprocess.ts:
|
11
|
+
assert(/^\w{11}$/.test(uniqueId), "src/processScript/preprocess.ts:20:36")
|
12
12
|
const sourceCode = code
|
13
13
|
let lengthBefore, file, program
|
14
14
|
do {
|
@@ -47,11 +47,11 @@ async function preprocess(code, { uniqueId = "00000000000" } = {}) {
|
|
47
47
|
})
|
48
48
|
break
|
49
49
|
} catch (error_) {
|
50
|
-
assert(error_ instanceof SyntaxError, "src/processScript/preprocess.ts:
|
50
|
+
assert(error_ instanceof SyntaxError, "src/processScript/preprocess.ts:64:42")
|
51
51
|
error = error_
|
52
52
|
}
|
53
53
|
if ("BABEL_PARSER_SYNTAX_ERROR" != error.code || "PrivateInExpectedIn" != error.reasonCode) {
|
54
|
-
console.
|
54
|
+
console.error(/.+/.exec(code.slice(error.pos))?.[0])
|
55
55
|
throw error
|
56
56
|
}
|
57
57
|
const codeSlice = code.slice(error.pos)
|
@@ -7,12 +7,14 @@ export type TransformOptions = LaxPartial<{
|
|
7
7
|
}> & {
|
8
8
|
scriptName: string | true;
|
9
9
|
};
|
10
|
-
/**
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
10
|
+
/**
|
11
|
+
* transform a given babel `File` to be hackmud compatible
|
12
|
+
*
|
13
|
+
* (returned File will need `postprocess()`ing)
|
14
|
+
* @param file babel ast node representing a file containing preprocessed code
|
15
|
+
* @param sourceCode the original untouched source code
|
16
|
+
* @param options {@link TransformOptions details}
|
17
|
+
*/
|
16
18
|
export declare function transform(file: File, sourceCode: string, { uniqueId, scriptUser, scriptName, seclevel }: TransformOptions): {
|
17
19
|
file: File;
|
18
20
|
seclevel: number;
|