hackmud-script-manager 0.21.1-979c2a3 → 0.21.1-afae871
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 +2 -0
 - package/bin/hsm.js +2 -2
 - package/env.d.ts +19 -21
 - package/generateTypeDeclaration.js +20 -18
 - package/package.json +4 -2
 - package/processScript/index.js +3 -2
 - package/processScript/transform.js +8 -6
 - package/push.js +3 -1
 
    
        package/README.md
    CHANGED
    
    | 
         @@ -1,6 +1,8 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # Hackmud Script Manager
         
     | 
| 
       2 
2 
     | 
    
         
             
            Command made for [Hackmud Scripting Environment](https://github.com/samualtnorman/hackmud-environment), which is a scripting environment for hackmud with minification, autocompletes / intellisense, and TypeScript support.
         
     | 
| 
       3 
3 
     | 
    
         | 
| 
      
 4 
     | 
    
         
            +
            Join [our Discord server](https://discord.gg/RSa4Sc6pNA)!
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
       4 
6 
     | 
    
         
             
            [](https://ko-fi.com/R6R0XN5CX)
         
     | 
| 
       5 
7 
     | 
    
         | 
| 
       6 
8 
     | 
    
         
             
            You can read about how HSM works [in my blog post](https://samual.uk/blog/js-code-transformation-niche-environment/).
         
     | 
    
        package/bin/hsm.js
    CHANGED
    
    | 
         @@ -64,7 +64,7 @@ if (process.version.startsWith("v21.")) { 
     | 
|
| 
       64 
64 
     | 
    
         
             
            	)
         
     | 
| 
       65 
65 
     | 
    
         
             
            }
         
     | 
| 
       66 
66 
     | 
    
         
             
            if ("v" == commands[0] || "version" == commands[0] || popOption("version", "v")?.value) {
         
     | 
| 
       67 
     | 
    
         
            -
            	console.log("0.21.1- 
     | 
| 
      
 67 
     | 
    
         
            +
            	console.log("0.21.1-afae871")
         
     | 
| 
       68 
68 
     | 
    
         
             
            	process.exit()
         
     | 
| 
       69 
69 
     | 
    
         
             
            }
         
     | 
| 
       70 
70 
     | 
    
         
             
            let warnedDeprecatedEmitDtsAlias = !1
         
     | 
| 
         @@ -412,7 +412,7 @@ function logHelp() { 
     | 
|
| 
       412 
412 
     | 
    
         
             
            		default:
         
     | 
| 
       413 
413 
     | 
    
         
             
            			console.log(
         
     | 
| 
       414 
414 
     | 
    
         
             
            				colourS(
         
     | 
| 
       415 
     | 
    
         
            -
            					`${colourJ("Hackmud Script Manager")}\n${colourN("Version") + colourS(": ") + colourV("0.21.1- 
     | 
| 
      
 415 
     | 
    
         
            +
            					`${colourJ("Hackmud Script Manager")}\n${colourN("Version") + colourS(": ") + colourV("0.21.1-afae871")}\n\n${colourA("Commands:")}\n${colourL("push")}\n    ${pushCommandDescription}\n${colourL("minify")}\n    Minify a script file on the spot\n${colourL("emit-dts")}\n    Generate a type declaration file for a directory of scripts\n${colourL("sync-macros")}\n    Sync macros across all hackmud users\n${colourL("pull")}\n    Pull a script a from a hackmud user's script directory\n\n${colourA("Options:")}\n${colourN("--help")}\n    Can be used on any command e.g. ${colourC("hsm")} ${colourL("push")} ${colourN("--help")} to show helpful information`
         
     | 
| 
       416 
416 
     | 
    
         
             
            				)
         
     | 
| 
       417 
417 
     | 
    
         
             
            			)
         
     | 
| 
       418 
418 
     | 
    
         
             
            	}
         
     | 
    
        package/env.d.ts
    CHANGED
    
    | 
         @@ -189,7 +189,7 @@ type Fullsec = Subscripts & PlayerFullsec & { 
     | 
|
| 
       189 
189 
     | 
    
         | 
| 
       190 
190 
     | 
    
         
             
            			/** @returns A random element from `array`, selected with a random number generated using `rng`
         
     | 
| 
       191 
191 
     | 
    
         
             
            			  * (defaults to `Math.random`). */
         
     | 
| 
       192 
     | 
    
         
            -
            			sample: (array:  
     | 
| 
      
 192 
     | 
    
         
            +
            			sample: <T>(array: T[], rng?: ()=>number) => T
         
     | 
| 
       193 
193 
     | 
    
         | 
| 
       194 
194 
     | 
    
         
             
            			/** @returns Whether two MongoDB `ObjectId`s are equivalent. */ are_ids_eq: (id1: any, id2: any) => boolean
         
     | 
| 
       195 
195 
     | 
    
         
             
            			/** Convert a MongoDB `ObjectId` to a string. */ id_to_str: (id: string | {$oid: string}) => any
         
     | 
| 
         @@ -270,7 +270,7 @@ type Fullsec = Subscripts & PlayerFullsec & { 
     | 
|
| 
       270 
270 
     | 
    
         
             
            			map: <T, U>(array: T[], callback: (index: number, value: T) => U) => U[]
         
     | 
| 
       271 
271 
     | 
    
         | 
| 
       272 
272 
     | 
    
         
             
            			/** @returns A new object derived from `obj` with only the keys specified in `keys`. */
         
     | 
| 
       273 
     | 
    
         
            -
            			pick: (obj:  
     | 
| 
      
 273 
     | 
    
         
            +
            			pick: <TObj extends object, TKeys extends keyof TObj>(obj: TObj, keys: TKeys[]) => { [K in TKeys]: TObj[K] }
         
     | 
| 
       274 
274 
     | 
    
         | 
| 
       275 
275 
     | 
    
         
             
            			/** @returns An array with the elements from `array` in a random order. */ shuffle: <T>(array: T[]) => T[]
         
     | 
| 
       276 
276 
     | 
    
         | 
| 
         @@ -298,7 +298,7 @@ type Fullsec = Subscripts & PlayerFullsec & { 
     | 
|
| 
       298 
298 
     | 
    
         
             
            			security_level_names: [ "NULLSEC", "LOWSEC", "MIDSEC", "HIGHSEC", "FULLSEC" ]
         
     | 
| 
       299 
299 
     | 
    
         | 
| 
       300 
300 
     | 
    
         
             
            			/** @returns The string name of a numeric security level. */
         
     | 
| 
       301 
     | 
    
         
            -
            			get_security_level_name: (security_level: number) =>  
     | 
| 
      
 301 
     | 
    
         
            +
            			get_security_level_name: (security_level: number) => string
         
     | 
| 
       302 
302 
     | 
    
         | 
| 
       303 
303 
     | 
    
         
             
            			/** @param result The return value of a call to `$db.i()` or `$db.r()`.
         
     | 
| 
       304 
304 
     | 
    
         
             
            			  * @param nModified The expected value of `result.nModified`.
         
     | 
| 
         @@ -699,7 +699,7 @@ type Nullsec = Lowsec & PlayerNullsec & { 
     | 
|
| 
       699 
699 
     | 
    
         
             
            // database
         
     | 
| 
       700 
700 
     | 
    
         
             
            type MongoPrimitive = null | boolean | number | Date | string
         
     | 
| 
       701 
701 
     | 
    
         
             
            type MongoValue = MongoPrimitive | MongoValue[] | MongoObject
         
     | 
| 
       702 
     | 
    
         
            -
            type MongoObject = { [k: string]: MongoValue 
     | 
| 
      
 702 
     | 
    
         
            +
            type MongoObject = { [k: string]: MongoValue }
         
     | 
| 
       703 
703 
     | 
    
         
             
            type MongoQueryValue = MongoPrimitive | MongoQueryValue[] | MongoQueryObject
         
     | 
| 
       704 
704 
     | 
    
         | 
| 
       705 
705 
     | 
    
         
             
            type MongoQueryObject =
         
     | 
| 
         @@ -710,7 +710,7 @@ type MongoTypeStringsToTypes = { 
     | 
|
| 
       710 
710 
     | 
    
         
             
            	string: string
         
     | 
| 
       711 
711 
     | 
    
         
             
            	object: MongoObject
         
     | 
| 
       712 
712 
     | 
    
         
             
            	array: MongoValue[]
         
     | 
| 
       713 
     | 
    
         
            -
            	objectId:  
     | 
| 
      
 713 
     | 
    
         
            +
            	objectId: MongoObjectId
         
     | 
| 
       714 
714 
     | 
    
         
             
            	bool: boolean
         
     | 
| 
       715 
715 
     | 
    
         
             
            	date: Date
         
     | 
| 
       716 
716 
     | 
    
         
             
            	null: null
         
     | 
| 
         @@ -720,8 +720,8 @@ type MongoTypeStringsToTypes = { 
     | 
|
| 
       720 
720 
     | 
    
         | 
| 
       721 
721 
     | 
    
         
             
            type MongoTypeString = keyof MongoTypeStringsToTypes
         
     | 
| 
       722 
722 
     | 
    
         
             
            type MongoTypeNumber = -1 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 16 | 17 | 18 | 19 | 127
         
     | 
| 
       723 
     | 
    
         
            -
            type MongoId = Exclude<MongoPrimitive, null | false> |  
     | 
| 
       724 
     | 
    
         
            -
            type MongoQueryId = Exclude<MongoPrimitive, null | false> |  
     | 
| 
      
 723 
     | 
    
         
            +
            type MongoId = Exclude<MongoPrimitive, null | false> | MongoObjectId | MongoObject
         
     | 
| 
      
 724 
     | 
    
         
            +
            type MongoQueryId = Exclude<MongoPrimitive, null | false> | MongoObjectId | MongoQueryObject
         
     | 
| 
       725 
725 
     | 
    
         
             
            type MongoDocument = MongoObject & { _id?: MongoId }
         
     | 
| 
       726 
726 
     | 
    
         | 
| 
       727 
727 
     | 
    
         
             
            type MongoQueryType<TQuery extends MongoQueryObject> = {
         
     | 
| 
         @@ -755,11 +755,16 @@ type MongoQuerySelector<T extends MongoValue> = Partial< 
     | 
|
| 
       755 
755 
     | 
    
         | 
| 
       756 
756 
     | 
    
         
             
            type MongoQuery<T extends MongoObject> = { [K in keyof T]?: T[K] | MongoQuerySelector<T[K]> } & { _id?: MongoId }
         
     | 
| 
       757 
757 
     | 
    
         | 
| 
       758 
     | 
    
         
            -
            type  
     | 
| 
      
 758 
     | 
    
         
            +
            type MongoUpdateArrayOperatorUniversalModifiers<T> = { $each?: T extends [] ? T : T[] }
         
     | 
| 
      
 759 
     | 
    
         
            +
             
     | 
| 
      
 760 
     | 
    
         
            +
            type MongoUpdateArrayOperatorModifiers<T> = MongoUpdateArrayOperatorUniversalModifiers<T> &
         
     | 
| 
      
 761 
     | 
    
         
            +
            	{ $position?: number, $slice?: number, $sort?: 1 | -1 }
         
     | 
| 
      
 762 
     | 
    
         
            +
             
     | 
| 
      
 763 
     | 
    
         
            +
            type MongoUpdateCommand<T extends MongoObject> = Partial<{
         
     | 
| 
       759 
764 
     | 
    
         
             
            	/* Universal operators */
         
     | 
| 
       760 
     | 
    
         
            -
            	$set: Partial<Record<string 
     | 
| 
       761 
     | 
    
         
            -
            	$setOnInsert: Partial<Record<string 
     | 
| 
       762 
     | 
    
         
            -
            	$unset: Partial<Record<string, "" 
     | 
| 
      
 765 
     | 
    
         
            +
            	$set: Partial<Record<(string & {}) | keyof T, MongoCommandValue>>
         
     | 
| 
      
 766 
     | 
    
         
            +
            	$setOnInsert: Partial<Record<(string & {}) | keyof T, MongoCommandValue>>
         
     | 
| 
      
 767 
     | 
    
         
            +
            	$unset: Partial<Record<(string & {}) | keyof T, "">>
         
     | 
| 
       763 
768 
     | 
    
         | 
| 
       764 
769 
     | 
    
         
             
            	$rename: Partial<Record<string, string> & { [key in keyof T]: string }>
         
     | 
| 
       765 
770 
     | 
    
         | 
| 
         @@ -792,13 +797,6 @@ type MongoUpdateOperators<T extends MongoObject> = Partial<{ 
     | 
|
| 
       792 
797 
     | 
    
         
             
            	$pullAll: Record<string, MongoCommandValue> & { [K in keyof T as T[K] extends [] ? K : never]?: T[K] }
         
     | 
| 
       793 
798 
     | 
    
         
             
            }>
         
     | 
| 
       794 
799 
     | 
    
         | 
| 
       795 
     | 
    
         
            -
            type MongoUpdateArrayOperatorUniversalModifiers<T> = { $each?: T extends [] ? T : T[] }
         
     | 
| 
       796 
     | 
    
         
            -
             
     | 
| 
       797 
     | 
    
         
            -
            type MongoUpdateArrayOperatorModifiers<T> = MongoUpdateArrayOperatorUniversalModifiers<T> &
         
     | 
| 
       798 
     | 
    
         
            -
            	{ $position?: number, $slice?: number, $sort?: 1 | -1 }
         
     | 
| 
       799 
     | 
    
         
            -
             
     | 
| 
       800 
     | 
    
         
            -
            type MongoUpdateCommand<Schema extends MongoObject> = MongoUpdateOperators<Schema>
         
     | 
| 
       801 
     | 
    
         
            -
             
     | 
| 
       802 
800 
     | 
    
         
             
            type SortOrder = { [key: string]: 1 | -1 | SortOrder }
         
     | 
| 
       803 
801 
     | 
    
         | 
| 
       804 
802 
     | 
    
         
             
            type Cursor<T> = {
         
     | 
| 
         @@ -886,9 +884,9 @@ declare global { 
     | 
|
| 
       886 
884 
     | 
    
         
             
            	type ScriptSuccess<T = unknown> = { ok: true } & T
         
     | 
| 
       887 
885 
     | 
    
         
             
            	type ScriptFailure = { ok: false, msg?: string }
         
     | 
| 
       888 
886 
     | 
    
         
             
            	type ScriptResponse<T = unknown> = ScriptSuccess<T> | ScriptFailure
         
     | 
| 
       889 
     | 
    
         
            -
            	type Scriptor<TArgs  
     | 
| 
      
 887 
     | 
    
         
            +
            	type Scriptor<TArgs = any> = { name: string, call: (args: TArgs) => unknown }
         
     | 
| 
       890 
888 
     | 
    
         
             
            	type Context = CliContext | SubscriptContext | ScriptorContext | BrainContext
         
     | 
| 
       891 
     | 
    
         
            -
            	type  
     | 
| 
      
 889 
     | 
    
         
            +
            	type MongoObjectId = { $oid: string }
         
     | 
| 
       892 
890 
     | 
    
         | 
| 
       893 
891 
     | 
    
         
             
            	interface PlayerFullsec {}
         
     | 
| 
       894 
892 
     | 
    
         
             
            	interface PlayerHighsec {}
         
     | 
| 
         @@ -979,7 +977,7 @@ declare global { 
     | 
|
| 
       979 
977 
     | 
    
         
             
            		us: <T extends MongoDocument>(query: MongoQuery<T> | MongoQuery<T>[], command: MongoUpdateCommand<T>) =>
         
     | 
| 
       980 
978 
     | 
    
         
             
            			{ n: number, ok: 0 | 1, opTime: { t: number }, nModified: number }[]
         
     | 
| 
       981 
979 
     | 
    
         | 
| 
       982 
     | 
    
         
            -
            		ObjectId: () =>  
     | 
| 
      
 980 
     | 
    
         
            +
            		ObjectId: () => MongoObjectId
         
     | 
| 
       983 
981 
     | 
    
         
             
            	}
         
     | 
| 
       984 
982 
     | 
    
         | 
| 
       985 
983 
     | 
    
         
             
            	/** Debug Log.
         
     | 
| 
         @@ -11,24 +11,26 @@ async function generateTypeDeclaration(sourceDirectory, hackmudPath) { 
     | 
|
| 
       11 
11 
     | 
    
         
             
            		allScripts = {},
         
     | 
| 
       12 
12 
     | 
    
         
             
            		allAnyScripts = {}
         
     | 
| 
       13 
13 
     | 
    
         
             
            	await Promise.all(
         
     | 
| 
       14 
     | 
    
         
            -
            		(await readDirectoryWithStats(sourceDirectory)) 
     | 
| 
       15 
     | 
    
         
            -
            			 
     | 
| 
       16 
     | 
    
         
            -
             
     | 
| 
       17 
     | 
    
         
            -
             
     | 
| 
       18 
     | 
    
         
            -
            					 
     | 
| 
       19 
     | 
    
         
            -
             
     | 
| 
       20 
     | 
    
         
            -
             
     | 
| 
       21 
     | 
    
         
            -
             
     | 
| 
       22 
     | 
    
         
            -
             
     | 
| 
       23 
     | 
    
         
            -
             
     | 
| 
       24 
     | 
    
         
            -
             
     | 
| 
       25 
     | 
    
         
            -
             
     | 
| 
       26 
     | 
    
         
            -
            					 
     | 
| 
       27 
     | 
    
         
            -
             
     | 
| 
       28 
     | 
    
         
            -
             
     | 
| 
       29 
     | 
    
         
            -
            							 
     | 
| 
       30 
     | 
    
         
            -
             
     | 
| 
       31 
     | 
    
         
            -
             
     | 
| 
      
 14 
     | 
    
         
            +
            		(await readDirectoryWithStats(sourceDirectory))
         
     | 
| 
      
 15 
     | 
    
         
            +
            			.filter(({ stats, name }) => !stats.isDirectory() || /^[a-z_][a-z\d_]{0,24}$/.test(name))
         
     | 
| 
      
 16 
     | 
    
         
            +
            			.map(async ({ stats, name }) => {
         
     | 
| 
      
 17 
     | 
    
         
            +
            				if (stats.isFile())
         
     | 
| 
      
 18 
     | 
    
         
            +
            					name.endsWith(".ts")
         
     | 
| 
      
 19 
     | 
    
         
            +
            						? name.endsWith(".d.ts") || wildScripts.push(basename(name, ".ts"))
         
     | 
| 
      
 20 
     | 
    
         
            +
            						: name.endsWith(".js") && wildAnyScripts.push(basename(name, ".js"))
         
     | 
| 
      
 21 
     | 
    
         
            +
            				else if (stats.isDirectory()) {
         
     | 
| 
      
 22 
     | 
    
         
            +
            					const scripts = [],
         
     | 
| 
      
 23 
     | 
    
         
            +
            						anyScripts = []
         
     | 
| 
      
 24 
     | 
    
         
            +
            					allScripts[name] = scripts
         
     | 
| 
      
 25 
     | 
    
         
            +
            					allAnyScripts[name] = anyScripts
         
     | 
| 
      
 26 
     | 
    
         
            +
            					users.add(name)
         
     | 
| 
      
 27 
     | 
    
         
            +
            					for (const child of await readDirectoryWithStats(resolve(sourceDirectory, name)))
         
     | 
| 
      
 28 
     | 
    
         
            +
            						child.stats.isFile() &&
         
     | 
| 
      
 29 
     | 
    
         
            +
            							(child.name.endsWith(".ts")
         
     | 
| 
      
 30 
     | 
    
         
            +
            								? name.endsWith(".d.ts") || scripts.push(basename(child.name, ".ts"))
         
     | 
| 
      
 31 
     | 
    
         
            +
            								: child.name.endsWith(".js") && anyScripts.push(basename(child.name, ".js")))
         
     | 
| 
      
 32 
     | 
    
         
            +
            				}
         
     | 
| 
      
 33 
     | 
    
         
            +
            			})
         
     | 
| 
       32 
34 
     | 
    
         
             
            	)
         
     | 
| 
       33 
35 
     | 
    
         
             
            	sourceDirectory = PathPosix.resolve(sourceDirectory)
         
     | 
| 
       34 
36 
     | 
    
         
             
            	let o = ""
         
     | 
    
        package/package.json
    CHANGED
    
    | 
         @@ -1,6 +1,6 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            {
         
     | 
| 
       2 
2 
     | 
    
         
             
              "name": "hackmud-script-manager",
         
     | 
| 
       3 
     | 
    
         
            -
              "version": "0.21.1- 
     | 
| 
      
 3 
     | 
    
         
            +
              "version": "0.21.1-afae871",
         
     | 
| 
       4 
4 
     | 
    
         
             
              "description": "Script manager for game hackmud, with minification, TypeScript support, and player script type definition generation.",
         
     | 
| 
       5 
5 
     | 
    
         
             
              "keywords": [
         
     | 
| 
       6 
6 
     | 
    
         
             
                "api",
         
     | 
| 
         @@ -23,7 +23,9 @@ 
     | 
|
| 
       23 
23 
     | 
    
         
             
              "author": "Samual Norman <me@samual.uk> (https://samual.uk/)",
         
     | 
| 
       24 
24 
     | 
    
         
             
              "contributors": [
         
     | 
| 
       25 
25 
     | 
    
         
             
                "Daniel Swann (https://github.com/danswann)",
         
     | 
| 
       26 
     | 
    
         
            -
                "Longboyy"
         
     | 
| 
      
 26 
     | 
    
         
            +
                "Longboyy",
         
     | 
| 
      
 27 
     | 
    
         
            +
                "Helloman892",
         
     | 
| 
      
 28 
     | 
    
         
            +
                "Sarah Klocke (https://sarahisweird.dev/)"
         
     | 
| 
       27 
29 
     | 
    
         
             
              ],
         
     | 
| 
       28 
30 
     | 
    
         
             
              "main": "index.js",
         
     | 
| 
       29 
31 
     | 
    
         
             
              "repository": {
         
     | 
    
        package/processScript/index.js
    CHANGED
    
    | 
         @@ -23,7 +23,7 @@ import rollupPluginCommonJS from "@rollup/plugin-commonjs" 
     | 
|
| 
       23 
23 
     | 
    
         
             
            import rollupPluginJSON from "@rollup/plugin-json"
         
     | 
| 
       24 
24 
     | 
    
         
             
            import rollupPluginNodeResolve from "@rollup/plugin-node-resolve"
         
     | 
| 
       25 
25 
     | 
    
         
             
            import { assert } from "@samual/lib/assert"
         
     | 
| 
       26 
     | 
    
         
            -
            import { relative } from "path"
         
     | 
| 
      
 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"
         
     | 
| 
         @@ -210,7 +210,8 @@ async function processScript( 
     | 
|
| 
       210 
210 
     | 
    
         
             
            				{
         
     | 
| 
       211 
211 
     | 
    
         
             
            					name: "hackmud-script-manager",
         
     | 
| 
       212 
212 
     | 
    
         
             
            					async transform(code, id) {
         
     | 
| 
       213 
     | 
    
         
            -
            						if (!id.includes( 
     | 
| 
      
 213 
     | 
    
         
            +
            						if (isAbsolute(id) && !id.includes(`${sep}node_modules${sep}`))
         
     | 
| 
      
 214 
     | 
    
         
            +
            							return (await preprocess(code, { uniqueId })).code
         
     | 
| 
       214 
215 
     | 
    
         
             
            						let program
         
     | 
| 
       215 
216 
     | 
    
         
             
            						traverse(parse(code, { sourceType: "module" }), {
         
     | 
| 
       216 
217 
     | 
    
         
             
            							Program(path) {
         
     | 
| 
         @@ -595,7 +595,9 @@ function transform(file, sourceCode, { uniqueId = "00000000000", scriptUser, scr 
     | 
|
| 
       595 
595 
     | 
    
         
             
            							thisIsReferenced = !0
         
     | 
| 
       596 
596 
     | 
    
         
             
            							path.replaceWith(t.identifier(`_${uniqueId}_THIS_`))
         
     | 
| 
       597 
597 
     | 
    
         
             
            						},
         
     | 
| 
       598 
     | 
    
         
            -
            						Function 
     | 
| 
      
 598 
     | 
    
         
            +
            						Function(path) {
         
     | 
| 
      
 599 
     | 
    
         
            +
            							"ArrowFunctionExpression" != path.node.type && path.skip()
         
     | 
| 
      
 600 
     | 
    
         
            +
            						}
         
     | 
| 
       599 
601 
     | 
    
         
             
            					},
         
     | 
| 
       600 
602 
     | 
    
         
             
            					scope
         
     | 
| 
       601 
603 
     | 
    
         
             
            				)
         
     | 
| 
         @@ -682,23 +684,23 @@ function transform(file, sourceCode, { uniqueId = "00000000000", scriptUser, scr 
     | 
|
| 
       682 
684 
     | 
    
         
             
            	}
         
     | 
| 
       683 
685 
     | 
    
         
             
            	function processFakeSubscriptObject(fakeSubscriptObjectName, seclevel) {
         
     | 
| 
       684 
686 
     | 
    
         
             
            		for (const referencePath of getReferencePathsToGlobal(fakeSubscriptObjectName, program)) {
         
     | 
| 
       685 
     | 
    
         
            -
            			assert("MemberExpression" == referencePath.parent.type, "src/processScript/transform.ts: 
     | 
| 
      
 687 
     | 
    
         
            +
            			assert("MemberExpression" == referencePath.parent.type, "src/processScript/transform.ts:811:60")
         
     | 
| 
       686 
688 
     | 
    
         
             
            			assert("Identifier" == referencePath.parent.property.type)
         
     | 
| 
       687 
689 
     | 
    
         
             
            			assert(
         
     | 
| 
       688 
690 
     | 
    
         
             
            				"MemberExpression" == referencePath.parentPath.parentPath?.node.type,
         
     | 
| 
       689 
     | 
    
         
            -
            				"src/processScript/transform.ts: 
     | 
| 
      
 691 
     | 
    
         
            +
            				"src/processScript/transform.ts:813:81"
         
     | 
| 
       690 
692 
     | 
    
         
             
            			)
         
     | 
| 
       691 
693 
     | 
    
         
             
            			assert(
         
     | 
| 
       692 
694 
     | 
    
         
             
            				"Identifier" == referencePath.parentPath.parentPath.node.property.type,
         
     | 
| 
       693 
     | 
    
         
            -
            				"src/processScript/transform.ts: 
     | 
| 
      
 695 
     | 
    
         
            +
            				"src/processScript/transform.ts:814:83"
         
     | 
| 
       694 
696 
     | 
    
         
             
            			)
         
     | 
| 
       695 
697 
     | 
    
         
             
            			assert(
         
     | 
| 
       696 
698 
     | 
    
         
             
            				/^[_a-z][\d_a-z]{0,24}$/.test(referencePath.parent.property.name),
         
     | 
| 
       697 
     | 
    
         
            -
            				`src/processScript/transform.ts: 
     | 
| 
      
 699 
     | 
    
         
            +
            				`src/processScript/transform.ts:818:8 invalid user "${referencePath.parent.property.name}" in subscript`
         
     | 
| 
       698 
700 
     | 
    
         
             
            			)
         
     | 
| 
       699 
701 
     | 
    
         
             
            			assert(
         
     | 
| 
       700 
702 
     | 
    
         
             
            				/^[_a-z][\d_a-z]{0,24}$/.test(referencePath.parentPath.parentPath.node.property.name),
         
     | 
| 
       701 
     | 
    
         
            -
            				`src/processScript/transform.ts: 
     | 
| 
      
 703 
     | 
    
         
            +
            				`src/processScript/transform.ts:823:8 invalid script name "${referencePath.parentPath.parentPath.node.property.name}" in subscript`
         
     | 
| 
       702 
704 
     | 
    
         
             
            			)
         
     | 
| 
       703 
705 
     | 
    
         
             
            			if ("CallExpression" == referencePath.parentPath.parentPath.parentPath?.type)
         
     | 
| 
       704 
706 
     | 
    
         
             
            				referencePath.parentPath.parentPath.replaceWith(
         
     | 
    
        package/push.js
    CHANGED
    
    | 
         @@ -70,7 +70,9 @@ async function push( 
     | 
|
| 
       70 
70 
     | 
    
         
             
            	])
         
     | 
| 
       71 
71 
     | 
    
         
             
            	if (sourceFolder instanceof Error) return sourceFolder
         
     | 
| 
       72 
72 
     | 
    
         
             
            	if (hackmudFolder instanceof Error) return hackmudFolder
         
     | 
| 
       73 
     | 
    
         
            -
            	const sourceFolderFolders = sourceFolder.filter( 
     | 
| 
      
 73 
     | 
    
         
            +
            	const sourceFolderFolders = sourceFolder.filter(
         
     | 
| 
      
 74 
     | 
    
         
            +
            			({ name, stats }) => stats.isDirectory() && /^[a-z_][a-z\d_]{0,24}$/.test(name)
         
     | 
| 
      
 75 
     | 
    
         
            +
            		),
         
     | 
| 
       74 
76 
     | 
    
         
             
            		allUsers = new Set([
         
     | 
| 
       75 
77 
     | 
    
         
             
            			...scripts
         
     | 
| 
       76 
78 
     | 
    
         
             
            				.map(scriptName => ensure(scriptName.split(".")[0], "src/push.ts:85:65"))
         
     |