hackmud-script-manager 0.19.1-98e81f8 → 0.19.1-b720a68
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 +1 -1
 - package/bin/hsm.d.ts +0 -0
 - package/bin/hsm.js +146 -300
 - package/generateTypeDeclaration.d.ts +1 -2
 - package/generateTypeDeclaration.js +19 -19
 - package/index.js +2 -1
 - package/package.json +6 -7
 - package/processScript/index.d.ts +15 -25
 - package/processScript/index.js +258 -241
 - package/processScript/minify.d.ts +13 -19
 - package/processScript/minify.js +381 -395
 - package/processScript/postprocess.d.ts +0 -1
 - package/processScript/postprocess.js +1 -1
 - package/processScript/preprocess.d.ts +4 -8
 - package/processScript/preprocess.js +94 -94
 - package/processScript/shared.d.ts +1 -1
 - package/processScript/shared.js +11 -11
 - package/processScript/transform.d.ts +11 -17
 - package/processScript/transform.js +597 -551
 - package/pull.d.ts +5 -9
 - package/pull.js +2 -2
 - package/push.d.ts +22 -31
 - package/push.js +46 -40
 - package/syncMacros.d.ts +1 -2
 - package/syncMacros.js +6 -5
 - package/watch.d.ts +8 -14
 - package/watch.js +22 -23
 - package/tsconfig.tsbuildinfo +0 -1
 
| 
         @@ -17,4 +17,4 @@ const postprocess = (code, seclevel, uniqueID) => 
     | 
|
| 
       17 
17 
     | 
    
         
             
            		.replace(RegExp(`\\$${uniqueID}\\$NOT_A_DEBUG_CALL\\$`, "g"), "#D\\(")
         
     | 
| 
       18 
18 
     | 
    
         
             
            		.replace(RegExp(`\\$${uniqueID}\\$NOT_FMCL\\$`, "g"), "#\\FMCL")
         
     | 
| 
       19 
19 
     | 
    
         
             
            		.replace(RegExp(`\\$${uniqueID}\\$NOT_G\\$`, "g"), "#\\G")
         
     | 
| 
       20 
     | 
    
         
            -
            export { postprocess  
     | 
| 
      
 20 
     | 
    
         
            +
            export { postprocess }
         
     | 
| 
         @@ -1,12 +1,8 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            export type PreprocessOptions = {
         
     | 
| 
       2 
     | 
    
         
            -
                /** 11 a-z 0-9 characters */
         
     | 
| 
       3 
     | 
    
         
            -
                uniqueID: string;
         
     | 
| 
      
 2 
     | 
    
         
            +
                /** 11 a-z 0-9 characters */ uniqueID: string;
         
     | 
| 
       4 
3 
     | 
    
         
             
            };
         
     | 
| 
       5 
     | 
    
         
            -
            /**
         
     | 
| 
       6 
     | 
    
         
            -
             
     | 
| 
       7 
     | 
    
         
            -
              
     | 
| 
       8 
     | 
    
         
            -
             */
         
     | 
| 
       9 
     | 
    
         
            -
            export declare const preprocess: (code: string, { uniqueID }?: Partial<PreprocessOptions>) => Promise<{
         
     | 
| 
      
 4 
     | 
    
         
            +
            /** @param code source code for preprocessing
         
     | 
| 
      
 5 
     | 
    
         
            +
              * @param options {@link PreprocessOptions details} */
         
     | 
| 
      
 6 
     | 
    
         
            +
            export declare function preprocess(code: string, { uniqueID }?: Partial<PreprocessOptions>): Promise<{
         
     | 
| 
       10 
7 
     | 
    
         
             
                code: string;
         
     | 
| 
       11 
8 
     | 
    
         
             
            }>;
         
     | 
| 
       12 
     | 
    
         
            -
            export default preprocess;
         
     | 
| 
         @@ -6,100 +6,100 @@ import { assert } from "@samual/lib/assert" 
     | 
|
| 
       6 
6 
     | 
    
         
             
            import { spliceString } from "@samual/lib/spliceString"
         
     | 
| 
       7 
7 
     | 
    
         
             
            import { resolve } from "import-meta-resolve"
         
     | 
| 
       8 
8 
     | 
    
         
             
            const { default: traverse } = babelTraverse,
         
     | 
| 
       9 
     | 
    
         
            -
            	{ default: generate } = babelGenerator 
     | 
| 
       10 
     | 
    
         
            -
             
     | 
| 
       11 
     | 
    
         
            -
             
     | 
| 
       12 
     | 
    
         
            -
             
     | 
| 
       13 
     | 
    
         
            -
             
     | 
| 
       14 
     | 
    
         
            -
             
     | 
| 
       15 
     | 
    
         
            -
             
     | 
| 
       16 
     | 
    
         
            -
             
     | 
| 
       17 
     | 
    
         
            -
             
     | 
| 
       18 
     | 
    
         
            -
             
     | 
| 
       19 
     | 
    
         
            -
             
     | 
| 
       20 
     | 
    
         
            -
             
     | 
| 
       21 
     | 
    
         
            -
             
     | 
| 
       22 
     | 
    
         
            -
             
     | 
| 
       23 
     | 
    
         
            -
             
     | 
| 
       24 
     | 
    
         
            -
             
     | 
| 
       25 
     | 
    
         
            -
             
     | 
| 
       26 
     | 
    
         
            -
             
     | 
| 
       27 
     | 
    
         
            -
             
     | 
| 
       28 
     | 
    
         
            -
             
     | 
| 
       29 
     | 
    
         
            -
             
     | 
| 
       30 
     | 
    
         
            -
             
     | 
| 
       31 
     | 
    
         
            -
             
     | 
| 
       32 
     | 
    
         
            -
             
     | 
| 
       33 
     | 
    
         
            -
             
     | 
| 
       34 
     | 
    
         
            -
             
     | 
| 
       35 
     | 
    
         
            -
             
     | 
| 
       36 
     | 
    
         
            -
             
     | 
| 
       37 
     | 
    
         
            -
             
     | 
| 
       38 
     | 
    
         
            -
             
     | 
| 
       39 
     | 
    
         
            -
             
     | 
| 
       40 
     | 
    
         
            -
             
     | 
| 
       41 
     | 
    
         
            -
             
     | 
| 
       42 
     | 
    
         
            -
             
     | 
| 
       43 
     | 
    
         
            -
             
     | 
| 
       44 
     | 
    
         
            -
             
     | 
| 
       45 
     | 
    
         
            -
             
     | 
| 
       46 
     | 
    
         
            -
             
     | 
| 
       47 
     | 
    
         
            -
             
     | 
| 
       48 
     | 
    
         
            -
             
     | 
| 
       49 
     | 
    
         
            -
             
     | 
| 
       50 
     | 
    
         
            -
             
     | 
| 
       51 
     | 
    
         
            -
             
     | 
| 
       52 
     | 
    
         
            -
            			}
         
     | 
| 
       53 
     | 
    
         
            -
            			if ("BABEL_PARSER_SYNTAX_ERROR" != error.code || "PrivateInExpectedIn" != error.reasonCode) {
         
     | 
| 
       54 
     | 
    
         
            -
            				console.log(/.+/.exec(code.slice(error.pos))?.[0])
         
     | 
| 
       55 
     | 
    
         
            -
            				throw error
         
     | 
| 
       56 
     | 
    
         
            -
            			}
         
     | 
| 
       57 
     | 
    
         
            -
            			const codeSlice = code.slice(error.pos)
         
     | 
| 
       58 
     | 
    
         
            -
            			let match
         
     | 
| 
       59 
     | 
    
         
            -
            			if ((match = /^#[0-4fhmln]s\.scripts\.quine\(\)/.exec(codeSlice)))
         
     | 
| 
       60 
     | 
    
         
            -
            				code = spliceString(code, JSON.stringify(sourceCode), error.pos, match[0].length)
         
     | 
| 
       61 
     | 
    
         
            -
            			else if ((match = /^#[0-4fhmln]?s\./.exec(codeSlice))) code = spliceString(code, "$", error.pos, 1)
         
     | 
| 
       62 
     | 
    
         
            -
            			else if ((match = /^#D[^\w$]/.exec(codeSlice))) code = spliceString(code, "$", error.pos, 1)
         
     | 
| 
       63 
     | 
    
         
            -
            			else if ((match = /^#FMCL/.exec(codeSlice)))
         
     | 
| 
       64 
     | 
    
         
            -
            				code = spliceString(code, `$${uniqueID}$FMCL$`, error.pos, match[0].length)
         
     | 
| 
       65 
     | 
    
         
            -
            			else if ((match = /^#G/.exec(codeSlice)))
         
     | 
| 
       66 
     | 
    
         
            -
            				code = spliceString(code, `$${uniqueID}$GLOBAL$`, error.pos, match[0].length)
         
     | 
| 
       67 
     | 
    
         
            -
            			else {
         
     | 
| 
       68 
     | 
    
         
            -
            				if (!(match = /^#db\./.exec(codeSlice))) throw error
         
     | 
| 
       69 
     | 
    
         
            -
            				code = spliceString(code, "$", error.pos, 1)
         
     | 
| 
       70 
     | 
    
         
            -
            			}
         
     | 
| 
      
 9 
     | 
    
         
            +
            	{ default: generate } = babelGenerator
         
     | 
| 
      
 10 
     | 
    
         
            +
            async function preprocess(code, { uniqueID = "00000000000" } = {}) {
         
     | 
| 
      
 11 
     | 
    
         
            +
            	assert(/^\w{11}$/.test(uniqueID), "src/processScript/preprocess.ts:23:36")
         
     | 
| 
      
 12 
     | 
    
         
            +
            	const sourceCode = code
         
     | 
| 
      
 13 
     | 
    
         
            +
            	let lengthBefore, file, program
         
     | 
| 
      
 14 
     | 
    
         
            +
            	do {
         
     | 
| 
      
 15 
     | 
    
         
            +
            		lengthBefore = code.length
         
     | 
| 
      
 16 
     | 
    
         
            +
            		code = code
         
     | 
| 
      
 17 
     | 
    
         
            +
            			.replace(/^\s+/, "")
         
     | 
| 
      
 18 
     | 
    
         
            +
            			.replace(/^\/\/.*/, "")
         
     | 
| 
      
 19 
     | 
    
         
            +
            			.replace(/^\/\*[\s\S]*?\*\//, "")
         
     | 
| 
      
 20 
     | 
    
         
            +
            	} while (code.length != lengthBefore)
         
     | 
| 
      
 21 
     | 
    
         
            +
            	code = code.replace(/^function\s*\(/, "export default function (")
         
     | 
| 
      
 22 
     | 
    
         
            +
            	for (;;) {
         
     | 
| 
      
 23 
     | 
    
         
            +
            		let error
         
     | 
| 
      
 24 
     | 
    
         
            +
            		try {
         
     | 
| 
      
 25 
     | 
    
         
            +
            			file = parse(code, {
         
     | 
| 
      
 26 
     | 
    
         
            +
            				plugins: [
         
     | 
| 
      
 27 
     | 
    
         
            +
            					"typescript",
         
     | 
| 
      
 28 
     | 
    
         
            +
            					["decorators", { decoratorsBeforeExport: !0 }],
         
     | 
| 
      
 29 
     | 
    
         
            +
            					"doExpressions",
         
     | 
| 
      
 30 
     | 
    
         
            +
            					"functionBind",
         
     | 
| 
      
 31 
     | 
    
         
            +
            					"functionSent",
         
     | 
| 
      
 32 
     | 
    
         
            +
            					"partialApplication",
         
     | 
| 
      
 33 
     | 
    
         
            +
            					["pipelineOperator", { proposal: "hack", topicToken: "%" }],
         
     | 
| 
      
 34 
     | 
    
         
            +
            					"throwExpressions",
         
     | 
| 
      
 35 
     | 
    
         
            +
            					["recordAndTuple", { syntaxType: "hash" }],
         
     | 
| 
      
 36 
     | 
    
         
            +
            					"classProperties",
         
     | 
| 
      
 37 
     | 
    
         
            +
            					"classPrivateProperties",
         
     | 
| 
      
 38 
     | 
    
         
            +
            					"classPrivateMethods",
         
     | 
| 
      
 39 
     | 
    
         
            +
            					"logicalAssignment",
         
     | 
| 
      
 40 
     | 
    
         
            +
            					"numericSeparator",
         
     | 
| 
      
 41 
     | 
    
         
            +
            					"nullishCoalescingOperator",
         
     | 
| 
      
 42 
     | 
    
         
            +
            					"optionalChaining",
         
     | 
| 
      
 43 
     | 
    
         
            +
            					"optionalCatchBinding",
         
     | 
| 
      
 44 
     | 
    
         
            +
            					"objectRestSpread"
         
     | 
| 
      
 45 
     | 
    
         
            +
            				],
         
     | 
| 
      
 46 
     | 
    
         
            +
            				sourceType: "module"
         
     | 
| 
      
 47 
     | 
    
         
            +
            			})
         
     | 
| 
      
 48 
     | 
    
         
            +
            			break
         
     | 
| 
      
 49 
     | 
    
         
            +
            		} catch (error_) {
         
     | 
| 
      
 50 
     | 
    
         
            +
            			assert(error_ instanceof SyntaxError, "src/processScript/preprocess.ts:67:42")
         
     | 
| 
      
 51 
     | 
    
         
            +
            			error = error_
         
     | 
| 
       71 
52 
     | 
    
         
             
            		}
         
     | 
| 
       72 
     | 
    
         
            -
            		 
     | 
| 
       73 
     | 
    
         
            -
            			 
     | 
| 
       74 
     | 
    
         
            -
             
     | 
| 
       75 
     | 
    
         
            -
             
     | 
| 
       76 
     | 
    
         
            -
             
     | 
| 
       77 
     | 
    
         
            -
            		 
     | 
| 
       78 
     | 
    
         
            -
            		 
     | 
| 
       79 
     | 
    
         
            -
            			 
     | 
| 
       80 
     | 
    
         
            -
            		 
     | 
| 
       81 
     | 
    
         
            -
             
     | 
| 
       82 
     | 
    
         
            -
             
     | 
| 
       83 
     | 
    
         
            -
             
     | 
| 
       84 
     | 
    
         
            -
             
     | 
| 
       85 
     | 
    
         
            -
             
     | 
| 
       86 
     | 
    
         
            -
             
     | 
| 
       87 
     | 
    
         
            -
             
     | 
| 
       88 
     | 
    
         
            -
             
     | 
| 
       89 
     | 
    
         
            -
             
     | 
| 
       90 
     | 
    
         
            -
             
     | 
| 
       91 
     | 
    
         
            -
             
     | 
| 
       92 
     | 
    
         
            -
             
     | 
| 
      
 53 
     | 
    
         
            +
            		if ("BABEL_PARSER_SYNTAX_ERROR" != error.code || "PrivateInExpectedIn" != error.reasonCode) {
         
     | 
| 
      
 54 
     | 
    
         
            +
            			console.log(/.+/.exec(code.slice(error.pos))?.[0])
         
     | 
| 
      
 55 
     | 
    
         
            +
            			throw error
         
     | 
| 
      
 56 
     | 
    
         
            +
            		}
         
     | 
| 
      
 57 
     | 
    
         
            +
            		const codeSlice = code.slice(error.pos)
         
     | 
| 
      
 58 
     | 
    
         
            +
            		let match
         
     | 
| 
      
 59 
     | 
    
         
            +
            		if ((match = /^#[0-4fhmln]s\.scripts\.quine\(\)/.exec(codeSlice)))
         
     | 
| 
      
 60 
     | 
    
         
            +
            			code = spliceString(code, JSON.stringify(sourceCode), error.pos, match[0].length)
         
     | 
| 
      
 61 
     | 
    
         
            +
            		else if ((match = /^#[0-4fhmln]?s\./.exec(codeSlice))) code = spliceString(code, "$", error.pos, 1)
         
     | 
| 
      
 62 
     | 
    
         
            +
            		else if ((match = /^#D[^\w$]/.exec(codeSlice))) code = spliceString(code, "$", error.pos, 1)
         
     | 
| 
      
 63 
     | 
    
         
            +
            		else if ((match = /^#FMCL/.exec(codeSlice)))
         
     | 
| 
      
 64 
     | 
    
         
            +
            			code = spliceString(code, `$${uniqueID}$FMCL$`, error.pos, match[0].length)
         
     | 
| 
      
 65 
     | 
    
         
            +
            		else if ((match = /^#G/.exec(codeSlice)))
         
     | 
| 
      
 66 
     | 
    
         
            +
            			code = spliceString(code, `$${uniqueID}$GLOBAL$`, error.pos, match[0].length)
         
     | 
| 
      
 67 
     | 
    
         
            +
            		else {
         
     | 
| 
      
 68 
     | 
    
         
            +
            			if (!(match = /^#db\./.exec(codeSlice))) throw error
         
     | 
| 
      
 69 
     | 
    
         
            +
            			code = spliceString(code, "$", error.pos, 1)
         
     | 
| 
      
 70 
     | 
    
         
            +
            		}
         
     | 
| 
      
 71 
     | 
    
         
            +
            	}
         
     | 
| 
      
 72 
     | 
    
         
            +
            	traverse(file, {
         
     | 
| 
      
 73 
     | 
    
         
            +
            		Program(path) {
         
     | 
| 
      
 74 
     | 
    
         
            +
            			program = path
         
     | 
| 
      
 75 
     | 
    
         
            +
            			path.skip()
         
     | 
| 
      
 76 
     | 
    
         
            +
            		}
         
     | 
| 
      
 77 
     | 
    
         
            +
            	})
         
     | 
| 
      
 78 
     | 
    
         
            +
            	const needRecord = program.scope.hasGlobal("Record"),
         
     | 
| 
      
 79 
     | 
    
         
            +
            		needTuple = program.scope.hasGlobal("Tuple")
         
     | 
| 
      
 80 
     | 
    
         
            +
            	;(needRecord || needTuple) &&
         
     | 
| 
      
 81 
     | 
    
         
            +
            		file.program.body.unshift(
         
     | 
| 
      
 82 
     | 
    
         
            +
            			t.importDeclaration(
         
     | 
| 
      
 83 
     | 
    
         
            +
            				needRecord ?
         
     | 
| 
      
 84 
     | 
    
         
            +
            					needTuple ?
         
     | 
| 
      
 85 
     | 
    
         
            +
            						[
         
     | 
| 
      
 86 
     | 
    
         
            +
            							t.importSpecifier(t.identifier("Record"), t.identifier("Record")),
         
     | 
| 
      
 87 
     | 
    
         
            +
            							t.importSpecifier(t.identifier("Tuple"), t.identifier("Tuple"))
         
     | 
| 
      
 88 
     | 
    
         
            +
            						]
         
     | 
| 
      
 89 
     | 
    
         
            +
            					:	[t.importSpecifier(t.identifier("Record"), t.identifier("Record"))]
         
     | 
| 
      
 90 
     | 
    
         
            +
            				:	[t.importSpecifier(t.identifier("Tuple"), t.identifier("Tuple"))],
         
     | 
| 
      
 91 
     | 
    
         
            +
            				t.stringLiteral("@bloomberg/record-tuple-polyfill")
         
     | 
| 
       93 
92 
     | 
    
         
             
            			)
         
     | 
| 
       94 
     | 
    
         
            -
            		 
     | 
| 
       95 
     | 
    
         
            -
             
     | 
| 
       96 
     | 
    
         
            -
             
     | 
| 
       97 
     | 
    
         
            -
             
     | 
| 
       98 
     | 
    
         
            -
             
     | 
| 
       99 
     | 
    
         
            -
            				)
         
     | 
| 
      
 93 
     | 
    
         
            +
            		)
         
     | 
| 
      
 94 
     | 
    
         
            +
            	program.scope.hasGlobal("Proxy") &&
         
     | 
| 
      
 95 
     | 
    
         
            +
            		file.program.body.unshift(
         
     | 
| 
      
 96 
     | 
    
         
            +
            			t.importDeclaration(
         
     | 
| 
      
 97 
     | 
    
         
            +
            				[t.importDefaultSpecifier(t.identifier("Proxy"))],
         
     | 
| 
      
 98 
     | 
    
         
            +
            				t.stringLiteral(resolve("proxy-polyfill/src/proxy.js", import.meta.url).slice(7))
         
     | 
| 
       100 
99 
     | 
    
         
             
            			)
         
     | 
| 
       101 
     | 
    
         
            -
            		 
     | 
| 
       102 
     | 
    
         
            -
             
     | 
| 
       103 
     | 
    
         
            -
            			 
     | 
| 
       104 
     | 
    
         
            -
            	}
         
     | 
| 
       105 
     | 
    
         
            -
             
     | 
| 
      
 100 
     | 
    
         
            +
            		)
         
     | 
| 
      
 101 
     | 
    
         
            +
            	return 1 == program.node.body.length && "FunctionDeclaration" == program.node.body[0].type ?
         
     | 
| 
      
 102 
     | 
    
         
            +
            			{ code: "export default " + generate(file).code }
         
     | 
| 
      
 103 
     | 
    
         
            +
            		:	{ code: generate(file).code }
         
     | 
| 
      
 104 
     | 
    
         
            +
            }
         
     | 
| 
      
 105 
     | 
    
         
            +
            export { preprocess }
         
     | 
| 
         @@ -1,5 +1,5 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            import type { NodePath } from "@babel/traverse";
         
     | 
| 
       2 
2 
     | 
    
         
             
            import type { Identifier, Program } from "@babel/types";
         
     | 
| 
       3 
     | 
    
         
            -
            export declare  
     | 
| 
      
 3 
     | 
    
         
            +
            export declare function getReferencePathsToGlobal(name: string, program: NodePath<Program>): NodePath<Identifier>[];
         
     | 
| 
       4 
4 
     | 
    
         
             
            export declare const includesIllegalString: (toCheck: string) => boolean;
         
     | 
| 
       5 
5 
     | 
    
         
             
            export declare const replaceUnsafeStrings: (uniqueID: string, toReplace: string) => string;
         
     | 
    
        package/processScript/shared.js
    CHANGED
    
    | 
         @@ -1,16 +1,16 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            import t from "@babel/types"
         
     | 
| 
       2 
2 
     | 
    
         
             
            import { ensure } from "@samual/lib/assert"
         
     | 
| 
       3 
     | 
    
         
            -
             
     | 
| 
       4 
     | 
    
         
            -
             
     | 
| 
       5 
     | 
    
         
            -
             
     | 
| 
       6 
     | 
    
         
            -
             
     | 
| 
       7 
     | 
    
         
            -
             
     | 
| 
       8 
     | 
    
         
            -
             
     | 
| 
       9 
     | 
    
         
            -
             
     | 
| 
       10 
     | 
    
         
            -
             
     | 
| 
       11 
     | 
    
         
            -
             
     | 
| 
       12 
     | 
    
         
            -
             
     | 
| 
       13 
     | 
    
         
            -
             
     | 
| 
      
 3 
     | 
    
         
            +
            function getReferencePathsToGlobal(name, program) {
         
     | 
| 
      
 4 
     | 
    
         
            +
            	const [variableDeclaration] = program.unshiftContainer(
         
     | 
| 
      
 5 
     | 
    
         
            +
            		"body",
         
     | 
| 
      
 6 
     | 
    
         
            +
            		t.variableDeclaration("let", [t.variableDeclarator(t.identifier(name))])
         
     | 
| 
      
 7 
     | 
    
         
            +
            	)
         
     | 
| 
      
 8 
     | 
    
         
            +
            	program.scope.crawl()
         
     | 
| 
      
 9 
     | 
    
         
            +
            	const binding = ensure(program.scope.getBinding(name), "src/processScript/shared.ts:12:57")
         
     | 
| 
      
 10 
     | 
    
         
            +
            	variableDeclaration.remove()
         
     | 
| 
      
 11 
     | 
    
         
            +
            	return binding.referencePaths
         
     | 
| 
      
 12 
     | 
    
         
            +
            }
         
     | 
| 
      
 13 
     | 
    
         
            +
            const includesIllegalString = toCheck =>
         
     | 
| 
       14 
14 
     | 
    
         
             
            		toCheck.includes("SC$") ||
         
     | 
| 
       15 
15 
     | 
    
         
             
            		toCheck.includes("DB$") ||
         
     | 
| 
       16 
16 
     | 
    
         
             
            		toCheck.includes("__D_S") ||
         
     | 
| 
         @@ -1,24 +1,18 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            import type { File } from "@babel/types";
         
     | 
| 
      
 2 
     | 
    
         
            +
            import type { LaxPartial } from "@samual/lib";
         
     | 
| 
       2 
3 
     | 
    
         
             
            export type TransformOptions = {
         
     | 
| 
       3 
     | 
    
         
            -
                /** 11 a-z 0-9 characters */
         
     | 
| 
       4 
     | 
    
         
            -
                 
     | 
| 
       5 
     | 
    
         
            -
                /** the  
     | 
| 
       6 
     | 
    
         
            -
                scriptUser: string | true;
         
     | 
| 
       7 
     | 
    
         
            -
                /** the name of this script (or set to `true` if not yet known) */
         
     | 
| 
       8 
     | 
    
         
            -
                scriptName: string | true;
         
     | 
| 
      
 4 
     | 
    
         
            +
                /** 11 a-z 0-9 characters */ uniqueID: string;
         
     | 
| 
      
 5 
     | 
    
         
            +
                /** the user going to be hosting this script (or set to `true` if not yet known) */ scriptUser: string | true;
         
     | 
| 
      
 6 
     | 
    
         
            +
                /** the name of this script (or set to `true` if not yet known) */ scriptName: string | true;
         
     | 
| 
       9 
7 
     | 
    
         
             
                seclevel: number;
         
     | 
| 
       10 
8 
     | 
    
         
             
            };
         
     | 
| 
       11 
     | 
    
         
            -
            /**
         
     | 
| 
       12 
     | 
    
         
            -
             
     | 
| 
       13 
     | 
    
         
            -
              
     | 
| 
       14 
     | 
    
         
            -
             
     | 
| 
       15 
     | 
    
         
            -
              
     | 
| 
       16 
     | 
    
         
            -
             
     | 
| 
       17 
     | 
    
         
            -
              
     | 
| 
       18 
     | 
    
         
            -
             * @param options {@link TransformOptions details}
         
     | 
| 
       19 
     | 
    
         
            -
             */
         
     | 
| 
       20 
     | 
    
         
            -
            export declare const transform: (file: File, sourceCode: string, { uniqueID, scriptUser, scriptName, seclevel }?: Partial<TransformOptions>) => {
         
     | 
| 
      
 9 
     | 
    
         
            +
            /** transform a given babel `File` to be hackmud compatible
         
     | 
| 
      
 10 
     | 
    
         
            +
              *
         
     | 
| 
      
 11 
     | 
    
         
            +
              * (returned File will need `postprocess()`ing)
         
     | 
| 
      
 12 
     | 
    
         
            +
              * @param file babel ast node representing a file containing preprocessed code
         
     | 
| 
      
 13 
     | 
    
         
            +
              * @param sourceCode the original untouched source code
         
     | 
| 
      
 14 
     | 
    
         
            +
              * @param options {@link TransformOptions details} */
         
     | 
| 
      
 15 
     | 
    
         
            +
            export declare function transform(file: File, sourceCode: string, { uniqueID, scriptUser, scriptName, seclevel }?: LaxPartial<TransformOptions>): {
         
     | 
| 
       21 
16 
     | 
    
         
             
                file: File;
         
     | 
| 
       22 
17 
     | 
    
         
             
                seclevel: number;
         
     | 
| 
       23 
18 
     | 
    
         
             
            };
         
     | 
| 
       24 
     | 
    
         
            -
            export default transform;
         
     |