hackmud-script-manager 0.20.4-769c77c → 0.20.4-7c74974
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.js +16 -7
- package/env.d.ts +709 -1293
- package/package.json +6 -2
- package/processScript/minify.js +11 -8
- package/processScript/transform.js +8 -6
- package/push.d.ts +9 -1
- package/push.js +33 -11
- package/syncMacros.js +1 -1
    
        package/env.d.ts
    CHANGED
    
    | @@ -1,118 +1,80 @@ | |
| 1 | 
            -
            type Replace< | 
| 2 | 
            -
            	Omit<
         | 
| 3 | 
            -
            		T,
         | 
| 4 | 
            -
            		Extract<keyof R, keyof T>
         | 
| 5 | 
            -
            	> & R
         | 
| 6 | 
            -
             | 
| 1 | 
            +
            type Replace<A, B> = Omit<A, keyof B> & B
         | 
| 7 2 | 
             
            type ScriptSuccess<T = object> = { ok: true } & T
         | 
| 8 | 
            -
             | 
| 9 | 
            -
            type ScriptFailure = {
         | 
| 10 | 
            -
            	ok: false
         | 
| 11 | 
            -
            	msg?: string
         | 
| 12 | 
            -
            }
         | 
| 13 | 
            -
             | 
| 3 | 
            +
            type ScriptFailure = { ok: false, msg?: string }
         | 
| 14 4 | 
             
            type ScriptResponse<T = object> = ScriptSuccess<T> | ScriptFailure
         | 
| 15 5 | 
             
            type ErrorScripts = Record<string, () => ScriptFailure>
         | 
| 16 6 |  | 
| 17 | 
            -
            type  | 
| 18 | 
            -
            	Record<
         | 
| 19 | 
            -
            		string,
         | 
| 20 | 
            -
            		Record<string, (...args: any) => any>
         | 
| 21 | 
            -
            	> & {
         | 
| 22 | 
            -
            		accts: ErrorScripts
         | 
| 23 | 
            -
            		autos: ErrorScripts
         | 
| 24 | 
            -
            		bbs: ErrorScripts
         | 
| 25 | 
            -
            		chats: ErrorScripts
         | 
| 26 | 
            -
            		corps: ErrorScripts
         | 
| 27 | 
            -
            		escrow: ErrorScripts
         | 
| 28 | 
            -
            		gui: ErrorScripts
         | 
| 29 | 
            -
            		kernel: ErrorScripts
         | 
| 30 | 
            -
            		market: ErrorScripts
         | 
| 31 | 
            -
            		scripts: ErrorScripts
         | 
| 32 | 
            -
            		sys: ErrorScripts
         | 
| 33 | 
            -
            		trust: ErrorScripts
         | 
| 34 | 
            -
            		users: ErrorScripts
         | 
| 35 | 
            -
            	}
         | 
| 7 | 
            +
            type AllOptional<T> = { [K in keyof T]-?: {} extends Pick<T, K> ? true : false }[keyof T]
         | 
| 36 8 |  | 
| 37 | 
            -
             | 
| 9 | 
            +
            type Scriptor<Args = unknown, Ret = unknown> = {
         | 
| 10 | 
            +
            	name: string
         | 
| 11 | 
            +
            	call: AllOptional<Args> extends true ? (args?: Args) => Ret : (args: Args) => Ret
         | 
| 12 | 
            +
            }
         | 
| 38 13 |  | 
| 39 | 
            -
             | 
| 14 | 
            +
            type Subscripts = Record<string, Record<string, (...args: any) => any>> & {
         | 
| 15 | 
            +
            	accts: ErrorScripts
         | 
| 16 | 
            +
            	autos: ErrorScripts
         | 
| 17 | 
            +
            	bbs: ErrorScripts
         | 
| 18 | 
            +
            	chats: ErrorScripts
         | 
| 19 | 
            +
            	corps: ErrorScripts
         | 
| 20 | 
            +
            	escrow: ErrorScripts
         | 
| 21 | 
            +
            	gui: ErrorScripts
         | 
| 22 | 
            +
            	kernel: ErrorScripts
         | 
| 23 | 
            +
            	market: ErrorScripts
         | 
| 24 | 
            +
            	scripts: ErrorScripts
         | 
| 25 | 
            +
            	sys: ErrorScripts
         | 
| 26 | 
            +
            	trust: ErrorScripts
         | 
| 27 | 
            +
            	users: ErrorScripts
         | 
| 28 | 
            +
            }
         | 
| 40 29 |  | 
| 30 | 
            +
            interface PlayerFullsec {}
         | 
| 31 | 
            +
            interface PlayerHighsec {}
         | 
| 41 32 | 
             
            interface PlayerMidsec {}
         | 
| 42 | 
            -
             | 
| 43 33 | 
             
            interface PlayerLowsec {}
         | 
| 44 | 
            -
             | 
| 45 34 | 
             
            interface PlayerNullsec {}
         | 
| 46 35 |  | 
| 47 | 
            -
            type  | 
| 36 | 
            +
            type UpgradeRarityString = "`0noob`" | "`1kiddie`" | "`2h4x0r`" | "`3h4rdc0r3`" | "`4|_|b3|2`" | "`531337`"
         | 
| 37 | 
            +
            type UpgradeRarityNumber = 0 | 1 | 2 | 3 | 4 | 5;
         | 
| 38 | 
            +
            type UpgradeRarity = UpgradeRarityString | UpgradeRarityNumber;
         | 
| 39 | 
            +
             | 
| 40 | 
            +
            type UpgradeBase = {
         | 
| 48 41 | 
             
            	name: string
         | 
| 49 42 | 
             
            	type: "lock" | "script_space" | "chat" | "script" | "tool" | "bot_brain" | "glam"
         | 
| 50 43 | 
             
            	up_class?: -1 | 0 | 1 | 2 | 3
         | 
| 51 44 | 
             
            	tier: 1 | 2 | 3 | 4
         | 
| 52 | 
            -
            	rarity:  | 
| 45 | 
            +
            	rarity: UpgradeRarityNumber
         | 
| 53 46 | 
             
            	i: number
         | 
| 54 47 | 
             
            	loaded: boolean
         | 
| 55 48 | 
             
            	sn: string
         | 
| 56 49 | 
             
            	description: string
         | 
| 57 50 | 
             
            }
         | 
| 58 51 |  | 
| 59 | 
            -
            type Upgrade =  | 
| 52 | 
            +
            type Upgrade = UpgradeBase & Record<string, null | boolean | number | string>
         | 
| 60 53 |  | 
| 61 | 
            -
            type  | 
| 54 | 
            +
            type CliUpgrade = Omit<UpgradeBase, `rarity`> & {
         | 
| 62 55 | 
             
            	[x: string]: null | boolean | number | string
         | 
| 63 | 
            -
            	rarity:  | 
| 56 | 
            +
            	rarity: UpgradeRarityString
         | 
| 64 57 | 
             
            }
         | 
| 65 58 |  | 
| 66 | 
            -
            type UsersTopItem<R> = {
         | 
| 67 | 
            -
             | 
| 68 | 
            -
            	name: string
         | 
| 69 | 
            -
            	last_activity: string
         | 
| 70 | 
            -
            	balance: string
         | 
| 71 | 
            -
            }
         | 
| 72 | 
            -
             | 
| 73 | 
            -
            type CorpsTopItem<R> = {
         | 
| 74 | 
            -
            	rank: R
         | 
| 75 | 
            -
            	name: string
         | 
| 76 | 
            -
            	worth: string
         | 
| 77 | 
            -
            }
         | 
| 59 | 
            +
            type UsersTopItem<R> = { rank: R, name: string, last_activity: string, balance: string }
         | 
| 60 | 
            +
            type CorpsTopItem<R> = { rank: R, name: string, worth: string }
         | 
| 78 61 |  | 
| 79 62 | 
             
            type CorpsTop = [
         | 
| 80 | 
            -
            	CorpsTopItem<1>,
         | 
| 81 | 
            -
            	CorpsTopItem< | 
| 82 | 
            -
            	CorpsTopItem<3>,
         | 
| 83 | 
            -
            	CorpsTopItem<4>,
         | 
| 84 | 
            -
            	CorpsTopItem<5>,
         | 
| 85 | 
            -
            	CorpsTopItem<6>,
         | 
| 86 | 
            -
            	CorpsTopItem<7>,
         | 
| 87 | 
            -
            	CorpsTopItem<8>,
         | 
| 88 | 
            -
            	CorpsTopItem<9>,
         | 
| 89 | 
            -
            	CorpsTopItem<10>
         | 
| 63 | 
            +
            	CorpsTopItem<1>, CorpsTopItem<2>, CorpsTopItem<3>, CorpsTopItem<4>, CorpsTopItem<5>,
         | 
| 64 | 
            +
            	CorpsTopItem<6>,CorpsTopItem<7>, CorpsTopItem<8>, CorpsTopItem<9>, CorpsTopItem<10>
         | 
| 90 65 | 
             
            ]
         | 
| 91 66 |  | 
| 92 67 | 
             
            type Fullsec = Subscripts & PlayerFullsec & {
         | 
| 93 68 | 
             
            	accts: {
         | 
| 94 | 
            -
            		/**
         | 
| 95 | 
            -
             | 
| 96 | 
            -
             | 
| 97 | 
            -
             | 
| 98 | 
            -
            		 */
         | 
| 99 | 
            -
            		balance_of_owner: () => number
         | 
| 100 | 
            -
             | 
| 101 | 
            -
            		/**
         | 
| 102 | 
            -
            		 * **FULLSEC**
         | 
| 103 | 
            -
            		 */
         | 
| 104 | 
            -
            		xfer_gc_to_caller: (args: {
         | 
| 105 | 
            -
            			amount: number | string
         | 
| 106 | 
            -
            			memo?: string | undefined
         | 
| 107 | 
            -
            		}) => ScriptResponse
         | 
| 69 | 
            +
            		/** **FULLSEC** @returns GC balance of script owner. */ balance_of_owner: () => number
         | 
| 70 | 
            +
             | 
| 71 | 
            +
            		/** **FULLSEC** */
         | 
| 72 | 
            +
            		xfer_gc_to_caller: (args: { amount: number | string, memo?: string | undefined }) => ScriptResponse
         | 
| 108 73 | 
             
            	}
         | 
| 109 74 |  | 
| 110 75 | 
             
            	bbs: {
         | 
| 111 76 | 
             
            		read: () => {
         | 
| 112 | 
            -
            			boards: {
         | 
| 113 | 
            -
            				title: string
         | 
| 114 | 
            -
            				slug: string
         | 
| 115 | 
            -
            			}[]
         | 
| 77 | 
            +
            			boards: { title: string, slug: string }[]
         | 
| 116 78 |  | 
| 117 79 | 
             
            			posts: {
         | 
| 118 80 | 
             
            				vote_count: number
         | 
| @@ -134,84 +96,43 @@ type Fullsec = Subscripts & PlayerFullsec & { | |
| 134 96 | 
             
            	}
         | 
| 135 97 |  | 
| 136 98 | 
             
            	chats: {
         | 
| 137 | 
            -
            		/**
         | 
| 138 | 
            -
             | 
| 139 | 
            -
             | 
| 140 | 
            -
             | 
| 141 | 
            -
             | 
| 142 | 
            -
             | 
| 143 | 
            -
            		 * You cannot create a channel that already exists (including any of the default ports from `0000` to `FFFF`).
         | 
| 144 | 
            -
            		 * If you do not supply a password, anyone can join your channel (but the channel name is not displayed anywhere, so they would have to discover it in some way first).
         | 
| 145 | 
            -
            		 */
         | 
| 99 | 
            +
            		/** **FULLSEC**
         | 
| 100 | 
            +
            		  * @summary Create a new chat channel.
         | 
| 101 | 
            +
            		  * @description This script lets you create a new chat channel.
         | 
| 102 | 
            +
            		  * You cannot create a channel that already exists (including any of the default ports from `0000` to `FFFF`).
         | 
| 103 | 
            +
            		  * If you do not supply a password, anyone can join your channel (but the channel name is not displayed
         | 
| 104 | 
            +
            		  * anywhere, so they would have to discover it in some way first). */
         | 
| 146 105 | 
             
            		create: ((args: {
         | 
| 147 | 
            -
            			/**
         | 
| 148 | 
            -
             | 
| 149 | 
            -
            			 */
         | 
| 150 | 
            -
            			name: string
         | 
| 151 | 
            -
             | 
| 152 | 
            -
            			/**
         | 
| 153 | 
            -
            			 * The password to secure the channel with
         | 
| 154 | 
            -
            			 */
         | 
| 155 | 
            -
            			password?: string
         | 
| 106 | 
            +
            			/** The name of the channel to create. */ name: string
         | 
| 107 | 
            +
            			/** The password to secure the channel with. */ password?: string
         | 
| 156 108 | 
             
            		}) => ScriptResponse) & ((args: {
         | 
| 157 | 
            -
            			/**
         | 
| 158 | 
            -
             | 
| 159 | 
            -
            			 */
         | 
| 160 | 
            -
            			c: string
         | 
| 161 | 
            -
             | 
| 162 | 
            -
            			/**
         | 
| 163 | 
            -
            			 * The password to secure the channel with
         | 
| 164 | 
            -
            			 */
         | 
| 165 | 
            -
            			password?: string
         | 
| 109 | 
            +
            			/** The name of the channel to create. */ c: string
         | 
| 110 | 
            +
            			/** The password to secure the channel with. */ password?: string
         | 
| 166 111 | 
             
            		}) => ScriptResponse)
         | 
| 167 112 |  | 
| 168 | 
            -
            		/**
         | 
| 169 | 
            -
             | 
| 170 | 
            -
             | 
| 171 | 
            -
             | 
| 172 | 
            -
            		 *
         | 
| 173 | 
            -
            		 * @description This script lets you send a message to the specified channel.
         | 
| 174 | 
            -
            		 * You must have joined the channel, and you will see your own message (unlike chats.tell).
         | 
| 175 | 
            -
            		 */
         | 
| 113 | 
            +
            		/** **FULLSEC**
         | 
| 114 | 
            +
            		  * @summary Send a chat message to a channel.
         | 
| 115 | 
            +
            		  * @description This script lets you send a message to the specified channel.
         | 
| 116 | 
            +
            		  * You must have joined the channel, and you will see your own message (unlike chats.tell). */
         | 
| 176 117 | 
             
            		send: (args: {
         | 
| 177 | 
            -
            			/**
         | 
| 178 | 
            -
             | 
| 179 | 
            -
            			 */
         | 
| 180 | 
            -
            			channel: string
         | 
| 181 | 
            -
             | 
| 182 | 
            -
            			/**
         | 
| 183 | 
            -
            			 * The message to send
         | 
| 184 | 
            -
            			 */
         | 
| 185 | 
            -
            			msg: string
         | 
| 118 | 
            +
            			/** The channel to send the message to. */ channel: string
         | 
| 119 | 
            +
            			/** The message to send. */ msg: string
         | 
| 186 120 | 
             
            		}) => ScriptResponse
         | 
| 187 121 |  | 
| 188 | 
            -
            		/**
         | 
| 189 | 
            -
             | 
| 190 | 
            -
             | 
| 191 | 
            -
             | 
| 192 | 
            -
             | 
| 193 | 
            -
             | 
| 194 | 
            -
            		 * You can message any user, you only need their username.
         | 
| 195 | 
            -
            		 * Note that you will not be able to see your message after it is sent (though many chat scripts based on chats.tell also send the message to you to work around this limitation).
         | 
| 196 | 
            -
            		 */
         | 
| 122 | 
            +
            		/** **FULLSEC**
         | 
| 123 | 
            +
            		  * @summary Send a chat message to a specific user.
         | 
| 124 | 
            +
            		  * @description This script lets you send a message to the specified user directly.
         | 
| 125 | 
            +
            		  * You can message any user, you only need their username.
         | 
| 126 | 
            +
            		  * Note that you will not be able to see your message after it is sent (though many chat scripts based on
         | 
| 127 | 
            +
            		  * chats.tell also send the message to you to work around this limitation). */
         | 
| 197 128 | 
             
            		tell: (args: {
         | 
| 198 | 
            -
            			/**
         | 
| 199 | 
            -
             | 
| 200 | 
            -
            			 */
         | 
| 201 | 
            -
            			to: string
         | 
| 202 | 
            -
             | 
| 203 | 
            -
            			/**
         | 
| 204 | 
            -
            			 * The message to send
         | 
| 205 | 
            -
            			 */
         | 
| 206 | 
            -
            			msg: string
         | 
| 129 | 
            +
            			/** The username to send the message to. */ to: string
         | 
| 130 | 
            +
            			/** The message to send. */ msg: string
         | 
| 207 131 | 
             
            		}) => ScriptResponse
         | 
| 208 132 | 
             
            	}
         | 
| 209 133 |  | 
| 210 134 | 
             
            	escrow: {
         | 
| 211 | 
            -
            		/**
         | 
| 212 | 
            -
            		 * **FULLSEC**
         | 
| 213 | 
            -
            		 */
         | 
| 214 | 
            -
            		charge: (args: {
         | 
| 135 | 
            +
            		/** **FULLSEC** */ charge: (args: {
         | 
| 215 136 | 
             
            			cost: number | string
         | 
| 216 137 | 
             
            			is_unlim?: boolean
         | 
| 217 138 | 
             
            		}) => null | ScriptFailure
         | 
| @@ -228,405 +149,266 @@ type Fullsec = Subscripts & PlayerFullsec & { | |
| 228 149 | 
             
            	}
         | 
| 229 150 |  | 
| 230 151 | 
             
            	market: {
         | 
| 231 | 
            -
            		/**
         | 
| 232 | 
            -
             | 
| 233 | 
            -
             | 
| 234 | 
            -
             | 
| 235 | 
            -
             | 
| 236 | 
            -
             | 
| 237 | 
            -
             | 
| 238 | 
            -
             | 
| 239 | 
            -
             | 
| 240 | 
            -
             | 
| 241 | 
            -
             | 
| 242 | 
            -
             | 
| 243 | 
            -
            			cost: number
         | 
| 244 | 
            -
             | 
| 245 | 
            -
            			i: I
         | 
| 246 | 
            -
             | 
| 247 | 
            -
             | 
| 248 | 
            -
             | 
| 249 | 
            -
             | 
| 250 | 
            -
             | 
| 251 | 
            -
             | 
| 252 | 
            -
             | 
| 253 | 
            -
            			 | 
| 254 | 
            -
             | 
| 255 | 
            -
            			 | 
| 256 | 
            -
             | 
| 257 | 
            -
             | 
| 258 | 
            -
             | 
| 259 | 
            -
             | 
| 260 | 
            -
             | 
| 152 | 
            +
            		/** **FULLSEC** */ browse: {
         | 
| 153 | 
            +
            			(args:
         | 
| 154 | 
            +
            				Partial<{
         | 
| 155 | 
            +
            					seller: string | MongoQuerySelector<string>,
         | 
| 156 | 
            +
            					listed_before: number | MongoQuerySelector<number>,
         | 
| 157 | 
            +
            					listed_after: number,
         | 
| 158 | 
            +
            					cost: number | MongoQuerySelector<number> | string,
         | 
| 159 | 
            +
            					rarity: UpgradeRarityNumber | MongoQuerySelector<UpgradeRarityNumber>,
         | 
| 160 | 
            +
            					name: string | MongoQuerySelector<string>
         | 
| 161 | 
            +
            				} & Omit<{
         | 
| 162 | 
            +
            					[k in keyof CliUpgrade]: CliUpgrade[k] | MongoQuerySelector<CliUpgrade[k]>
         | 
| 163 | 
            +
            				}, "rarity">>
         | 
| 164 | 
            +
            			): { i: string, name: string, rarity: Upgrade["rarity"], cost: number }[] | ScriptFailure
         | 
| 165 | 
            +
             | 
| 166 | 
            +
            			<I extends string>(args: { i: I }): {
         | 
| 167 | 
            +
            				i: I
         | 
| 168 | 
            +
            				seller: string
         | 
| 169 | 
            +
            				cost: number
         | 
| 170 | 
            +
            				count: number
         | 
| 171 | 
            +
            				description: string
         | 
| 172 | 
            +
            				upgrade: Upgrade
         | 
| 173 | 
            +
            				no_notify: boolean
         | 
| 174 | 
            +
            			} | ScriptFailure
         | 
| 175 | 
            +
             | 
| 176 | 
            +
            			<I extends string[]>(args: { i: I }): {
         | 
| 177 | 
            +
            				i: I
         | 
| 178 | 
            +
            				seller: string
         | 
| 179 | 
            +
            				cost: number
         | 
| 180 | 
            +
            				count: number
         | 
| 181 | 
            +
            				description: string
         | 
| 182 | 
            +
            				upgrade: Upgrade
         | 
| 183 | 
            +
            				no_notify: boolean
         | 
| 184 | 
            +
            			}[] | ScriptFailure
         | 
| 185 | 
            +
            		}
         | 
| 261 186 | 
             
            	}
         | 
| 262 187 |  | 
| 263 188 | 
             
            	scripts: {
         | 
| 264 | 
            -
            		/**
         | 
| 265 | 
            -
             | 
| 266 | 
            -
             | 
| 267 | 
            -
            		 | 
| 268 | 
            -
             | 
| 269 | 
            -
            		/**
         | 
| 270 | 
            -
             | 
| 271 | 
            -
             | 
| 272 | 
            -
            		 | 
| 273 | 
            -
             | 
| 274 | 
            -
             | 
| 275 | 
            -
             | 
| 276 | 
            -
             | 
| 277 | 
            -
             | 
| 278 | 
            -
            		/**
         | 
| 279 | 
            -
            		 * **FULLSEC**
         | 
| 280 | 
            -
            		 */
         | 
| 281 | 
            -
            		get_level: (args: { name: string }) => 0 | 1 | 2 | 3 | 4 | ScriptFailure
         | 
| 282 | 
            -
             | 
| 283 | 
            -
            		/**
         | 
| 284 | 
            -
            		 * **FULLSEC**
         | 
| 285 | 
            -
            		 */
         | 
| 286 | 
            -
            		highsec: ((args?: object) => string[]) & ((args: { sector: string }) => string[] | ScriptFailure)
         | 
| 287 | 
            -
             | 
| 288 | 
            -
            		/**
         | 
| 289 | 
            -
            		 * **FULLSEC**
         | 
| 290 | 
            -
            		 */
         | 
| 291 | 
            -
            		lowsec: ((args?: object) => string[]) & ((args: { sector: string }) => string[] | ScriptFailure)
         | 
| 292 | 
            -
             | 
| 293 | 
            -
            		/**
         | 
| 294 | 
            -
            		 * **FULLSEC**
         | 
| 295 | 
            -
            		 */
         | 
| 296 | 
            -
            		midsec: ((args?: object) => string[]) & ((args: { sector: string }) => string[] | ScriptFailure)
         | 
| 297 | 
            -
             | 
| 298 | 
            -
            		/**
         | 
| 299 | 
            -
            		 * **FULLSEC**
         | 
| 300 | 
            -
            		 */
         | 
| 301 | 
            -
            		nullsec: ((args?: object) => string[]) & ((args: { sector: string }) => string[] | ScriptFailure)
         | 
| 302 | 
            -
             | 
| 303 | 
            -
            		/**
         | 
| 304 | 
            -
            		 * **FULLSEC**
         | 
| 305 | 
            -
            		 */
         | 
| 306 | 
            -
            		trust: () => string[]
         | 
| 307 | 
            -
             | 
| 308 | 
            -
            		/**
         | 
| 309 | 
            -
            		 * FULLSEC
         | 
| 310 | 
            -
            		 *
         | 
| 311 | 
            -
            		 * @returns a code library containing useful helper functions you can use in your scripts.
         | 
| 312 | 
            -
            		 */
         | 
| 189 | 
            +
            		/** **FULLSEC** */ get_access_level: (args: { name: string }) =>
         | 
| 190 | 
            +
            			{ public: boolean, hidden: boolean, trust: boolean } | ScriptFailure
         | 
| 191 | 
            +
             | 
| 192 | 
            +
            		/** **FULLSEC** */ get_level: (args: { name: string }) => 0 | 1 | 2 | 3 | 4 | ScriptFailure
         | 
| 193 | 
            +
            		/** **FULLSEC** */ fullsec: { (): string[], (args: { sector: string }): string[] | ScriptFailure }
         | 
| 194 | 
            +
            		/** **FULLSEC** */ highsec: Fullsec["scripts"]["fullsec"]
         | 
| 195 | 
            +
            		/** **FULLSEC** */ lowsec: Fullsec["scripts"]["fullsec"]
         | 
| 196 | 
            +
            		/** **FULLSEC** */ midsec: Fullsec["scripts"]["fullsec"]
         | 
| 197 | 
            +
            		/** **FULLSEC** */ nullsec: Fullsec["scripts"]["fullsec"]
         | 
| 198 | 
            +
            		/** **FULLSEC** */ trust: () => string[]
         | 
| 199 | 
            +
             | 
| 200 | 
            +
            		/** FULLSEC
         | 
| 201 | 
            +
            		  * @returns A code library containing useful helper functions you can use in your scripts. */
         | 
| 313 202 | 
             
            		lib: () => {
         | 
| 314 203 | 
             
            			ok: () => ScriptSuccess
         | 
| 204 | 
            +
            			not_impl: () => { ok: false, msg: "Not Implemented." }
         | 
| 205 | 
            +
            			/** Append `message` to the current script run's log. */ log: (message: any) => void
         | 
| 206 | 
            +
            			/** @returns All messages added using `scripts.lib().log` during this script run. */ get_log: () => string[]
         | 
| 315 207 |  | 
| 316 | 
            -
            			 | 
| 317 | 
            -
            				ok: false
         | 
| 318 | 
            -
            				msg: "Not Implemented."
         | 
| 319 | 
            -
            			}
         | 
| 320 | 
            -
            			/**
         | 
| 321 | 
            -
            			 * Append `message` to the current script run's log.
         | 
| 322 | 
            -
            			 */
         | 
| 323 | 
            -
            			log: (message: any) => void
         | 
| 324 | 
            -
            			/**
         | 
| 325 | 
            -
            			 * @returns all messages added using `scripts.lib().log` during this script run
         | 
| 326 | 
            -
            			 */
         | 
| 327 | 
            -
            			get_log: () => string[]
         | 
| 328 | 
            -
            			/**
         | 
| 329 | 
            -
            			 * @returns a random integer in the range [min, max) generated using `rng` (defaults to `Math.random`)
         | 
| 330 | 
            -
            			 */
         | 
| 208 | 
            +
            			/** @returns A random integer in the range [min, max) generated using `rng` (defaults to `Math.random`). */
         | 
| 331 209 | 
             
            			rand_int: (min: number, max: number, rng?:()=>number) => number
         | 
| 332 | 
            -
             | 
| 333 | 
            -
             | 
| 334 | 
            -
             | 
| 210 | 
            +
             | 
| 211 | 
            +
            			/** @returns `floor` if `value` is less than `floor`, `ceil` if `value` is more than `ceil`, otherwise
         | 
| 212 | 
            +
            			  * `value`. */
         | 
| 335 213 | 
             
            			clamp: (value: number, floor: number, ceil: number) => number
         | 
| 336 | 
            -
             | 
| 337 | 
            -
             | 
| 338 | 
            -
             | 
| 339 | 
            -
            			 */
         | 
| 214 | 
            +
             | 
| 215 | 
            +
            			/** Linear interpolation function.
         | 
| 216 | 
            +
            			  * @returns A number between `start` and `stop` using `amount` as a percent. */
         | 
| 340 217 | 
             
            			lerp: (amount: number, start: number, stop: number) => number
         | 
| 341 | 
            -
             | 
| 342 | 
            -
             | 
| 343 | 
            -
             | 
| 218 | 
            +
             | 
| 219 | 
            +
            			/** @returns A random element from `array`, selected with a random number generated using `rng`
         | 
| 220 | 
            +
            			  * (defaults to `Math.random`). */
         | 
| 344 221 | 
             
            			sample: (array: any[], rng?: ()=>number) => any
         | 
| 345 | 
            -
             | 
| 346 | 
            -
             | 
| 347 | 
            -
             | 
| 348 | 
            -
            			 | 
| 349 | 
            -
            			/**
         | 
| 350 | 
            -
            			 * Convert a MongoDB ObjectId to a string
         | 
| 351 | 
            -
            			 */
         | 
| 352 | 
            -
            			id_to_str: (id: string | {$oid: string}) => any
         | 
| 353 | 
            -
            			/**
         | 
| 354 | 
            -
            			 * @returns whether `value` is a boolean primitive
         | 
| 355 | 
            -
            			 */
         | 
| 356 | 
            -
            			is_bool: (value: any) => value is boolean
         | 
| 357 | 
            -
            			/**
         | 
| 358 | 
            -
            			 * @returns whether `value` is an object or `null`
         | 
| 359 | 
            -
            			 */
         | 
| 222 | 
            +
             | 
| 223 | 
            +
            			/** @returns Whether two MongoDB `ObjectId`s are equivalent. */ are_ids_eq: (id1: any, id2: any) => boolean
         | 
| 224 | 
            +
            			/** Convert a MongoDB `ObjectId` to a string. */ id_to_str: (id: string | {$oid: string}) => any
         | 
| 225 | 
            +
            			/** @returns Whether `value` is a boolean primitive. */ is_bool: (value: any) => value is boolean
         | 
| 226 | 
            +
            			/** @returns Whether `value` is an object or `null`. */
         | 
| 360 227 | 
             
            			is_obj: (value: any) => value is Record<string, unknown> | null
         | 
| 361 | 
            -
            			/**
         | 
| 362 | 
            -
             | 
| 363 | 
            -
             | 
| 364 | 
            -
            			 | 
| 365 | 
            -
            			/**
         | 
| 366 | 
            -
             | 
| 367 | 
            -
             | 
| 368 | 
            -
            			 | 
| 369 | 
            -
            			/**
         | 
| 370 | 
            -
             | 
| 371 | 
            -
             | 
| 372 | 
            -
            			 | 
| 373 | 
            -
            			/**
         | 
| 374 | 
            -
            			 * @returns whether `value` is a negative number
         | 
| 375 | 
            -
            			 */
         | 
| 376 | 
            -
            			is_neg: (value: any) => value is number
         | 
| 377 | 
            -
            			/**
         | 
| 378 | 
            -
            			 * @returns whether `value` is an array
         | 
| 379 | 
            -
            			 */
         | 
| 380 | 
            -
            			is_arr: (value: any) => value is unknown[]
         | 
| 381 | 
            -
            			/**
         | 
| 382 | 
            -
            			 * @returns whether `value` is a function
         | 
| 383 | 
            -
            			 */
         | 
| 384 | 
            -
            			is_func: (value: any) => value is (...args: any[]) => unknown
         | 
| 385 | 
            -
            			/**
         | 
| 386 | 
            -
            			 * @returns whether `value` is not `undefined`
         | 
| 387 | 
            -
            			 */
         | 
| 388 | 
            -
            			is_def: (value: any) => boolean
         | 
| 389 | 
            -
            			/**
         | 
| 390 | 
            -
            			 * @returns whether `name` is a valid in-game username
         | 
| 391 | 
            -
            			 */
         | 
| 392 | 
            -
            			is_valid_name: (name: string) => boolean
         | 
| 393 | 
            -
            			/**
         | 
| 394 | 
            -
            			 * @returns the string representation of `value`
         | 
| 395 | 
            -
            			 */
         | 
| 396 | 
            -
            			dump: (value: { toString: () => string }) => string
         | 
| 397 | 
            -
            			/**
         | 
| 398 | 
            -
            			 * @returns a deep clone of `object`
         | 
| 399 | 
            -
            			 */
         | 
| 400 | 
            -
            			clone: <T extends object>(object: T) => T
         | 
| 401 | 
            -
            			/**
         | 
| 402 | 
            -
            			 * Applies all key-value pairs from `obj2` to `obj1`, overwriting if necessary.
         | 
| 403 | 
            -
            			 */
         | 
| 228 | 
            +
            			/** @returns Whether `value` is a string. */ is_str: (value: any) => value is string
         | 
| 229 | 
            +
            			/** @returns Whether `value` is a number. */ is_num: (value: any) => value is number
         | 
| 230 | 
            +
            			/** @returns Whether `value` is an integer. */ is_int: (value: any) => value is number
         | 
| 231 | 
            +
            			/** @returns Whether `value` is a negative number. */ is_neg: (value: any) => value is number
         | 
| 232 | 
            +
            			/** @returns Whether `value` is an array. */ is_arr: (value: any) => value is unknown[]
         | 
| 233 | 
            +
            			/** @returns Whether `value` is a function. */ is_func: (value: any) => value is (...args: any[]) => unknown
         | 
| 234 | 
            +
            			/** @returns Whether `value` is not `undefined`. */ is_def: (value: any) => boolean
         | 
| 235 | 
            +
            			/** @returns Whether `name` is a valid in-game username. */ is_valid_name: (name: string) => boolean
         | 
| 236 | 
            +
            			/** @returns The string representation of `value`. */ dump: (value: { toString: () => string }) => string
         | 
| 237 | 
            +
            			/** @returns A deep clone of `object`. */ clone: <T extends object>(object: T) => T
         | 
| 238 | 
            +
             | 
| 239 | 
            +
            			/** Applies all key-value pairs from `obj2` to `obj1`, overwriting if necessary. */
         | 
| 404 240 | 
             
            			merge: <F extends object, S extends object>(obj1: F, obj2: S) => F & S
         | 
| 405 | 
            -
             | 
| 406 | 
            -
             | 
| 407 | 
            -
             | 
| 408 | 
            -
             | 
| 409 | 
            -
            			/**
         | 
| 410 | 
            -
             | 
| 411 | 
            -
             | 
| 412 | 
            -
            			hash_code: (string: string) => number
         | 
| 413 | 
            -
            			/**
         | 
| 414 | 
            -
            			 * @returns a numeric hash of `string`
         | 
| 415 | 
            -
            			 */
         | 
| 416 | 
            -
            			xmur3: (string: string) => number
         | 
| 417 | 
            -
            			/**
         | 
| 418 | 
            -
            			 * @returns function that generates random floats in the range [0,1] based on the numerical seeds
         | 
| 419 | 
            -
            			 */
         | 
| 241 | 
            +
             | 
| 242 | 
            +
            			/** @returns An array of `object`'s values */ get_values: (object: object) => any[]
         | 
| 243 | 
            +
            			/** @returns A numeric hash of `string`. */ hash_code: (string: string) => number
         | 
| 244 | 
            +
             | 
| 245 | 
            +
            			/** @returns A numeric hash of `string`. */ xmur3: (string: string) => number
         | 
| 246 | 
            +
             | 
| 247 | 
            +
            			/** @returns Function that generates random floats in the range 0-1 based on the numerical seeds. */
         | 
| 420 248 | 
             
            			sfc32: (seed1: number, seed2: number, seed3: number, seed4: number) => () => number
         | 
| 421 | 
            -
             | 
| 422 | 
            -
             | 
| 423 | 
            -
            			 */
         | 
| 249 | 
            +
             | 
| 250 | 
            +
            			/** @returns Function that generates random floats in the range 0-1 based on the numerical seed. */
         | 
| 424 251 | 
             
            			mulberry32: (seed: number) => () => number
         | 
| 425 | 
            -
             | 
| 426 | 
            -
             | 
| 427 | 
            -
            			 */
         | 
| 252 | 
            +
             | 
| 253 | 
            +
            			/** @returns Function that generates random floats in the range 0-1 based on the numerical seeds. */
         | 
| 428 254 | 
             
            			xoshiro128ss: (seed1: number, seed2: number, seed3: number, seed4: number) => () => number
         | 
| 429 | 
            -
             | 
| 430 | 
            -
             | 
| 431 | 
            -
            			 */
         | 
| 255 | 
            +
             | 
| 256 | 
            +
            			/** @returns Function that generates random floats in the range 0-1 based on the numerical seed. */
         | 
| 432 257 | 
             
            			JSF: (seed: number) => () => number
         | 
| 433 | 
            -
             | 
| 434 | 
            -
             | 
| 435 | 
            -
            			 */
         | 
| 258 | 
            +
             | 
| 259 | 
            +
            			/** @returns Function that generates random floats in the range 0-1 based on the numerical seed. */
         | 
| 436 260 | 
             
            			LCG: (seed: number) => () => number
         | 
| 437 | 
            -
             | 
| 438 | 
            -
             | 
| 439 | 
            -
             | 
| 440 | 
            -
            			 | 
| 441 | 
            -
            			/**
         | 
| 442 | 
            -
            			 * Converts a string similar to `"1M5K20GC"` to an equivalent numerical representation.
         | 
| 443 | 
            -
            			 */
         | 
| 261 | 
            +
             | 
| 262 | 
            +
            			/** Converts a number to a GC string of the form `"1M5K20GC"`. */ to_gc_str: (number: number) => string
         | 
| 263 | 
            +
             | 
| 264 | 
            +
            			/** Converts a string similar to `"1M5K20GC"` to an equivalent numerical representation. */
         | 
| 444 265 | 
             
            			to_gc_num: (string: string) => number | ScriptFailure
         | 
| 445 | 
            -
             | 
| 446 | 
            -
             | 
| 447 | 
            -
             | 
| 448 | 
            -
            			to_game_timestr: (date: Date) => string
         | 
| 266 | 
            +
             | 
| 267 | 
            +
            			/** @returns A string of the form YYMMDD.HHMM derived from `date`. */ to_game_timestr: (date: Date) => string
         | 
| 268 | 
            +
             | 
| 449 269 | 
             
            			corruption_chars: "¡¢Á¤Ã¦§¨©ª"
         | 
| 450 | 
            -
             | 
| 451 | 
            -
             | 
| 452 | 
            -
             | 
| 453 | 
            -
            			 */
         | 
| 270 | 
            +
             | 
| 271 | 
            +
            			/** A list of unique color codes to be used with hackmud's color formatting syntax.
         | 
| 272 | 
            +
            			  * Does not include numeric codes, which are duplicates of some alphabetic codes. */
         | 
| 454 273 | 
             
            			colors: "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
         | 
| 455 | 
            -
             | 
| 456 | 
            -
             | 
| 457 | 
            -
            			 */
         | 
| 274 | 
            +
             | 
| 275 | 
            +
            			/** Used by `$fs.scripts.lib().corrupt()` to determine the frequency of corruption. */
         | 
| 458 276 | 
             
            			corruptions: [ 0, 1, 1.5, 2.5, 5 ]
         | 
| 459 | 
            -
             | 
| 460 | 
            -
             | 
| 461 | 
            -
            			 */
         | 
| 277 | 
            +
             | 
| 278 | 
            +
            			/** Adds colored corruption characters to `text`, with frequency determined by `amount`. */
         | 
| 462 279 | 
             
            			corrupt: (text: string | string[], amount: 0 | 1 | 2 | 3 | 4) => string
         | 
| 463 | 
            -
             | 
| 464 | 
            -
             | 
| 465 | 
            -
             | 
| 280 | 
            +
             | 
| 281 | 
            +
            			/** @returns The first `length` characters of `string`, or the original string if it is shorter than
         | 
| 282 | 
            +
            			  * `length`. */
         | 
| 466 283 | 
             
            			cap_str_len: (string: string, length: number) => string
         | 
| 467 | 
            -
             | 
| 468 | 
            -
             | 
| 469 | 
            -
             | 
| 470 | 
            -
             | 
| 471 | 
            -
            			/**
         | 
| 472 | 
            -
             | 
| 473 | 
            -
             | 
| 474 | 
            -
            			 | 
| 475 | 
            -
            			 | 
| 476 | 
            -
             | 
| 477 | 
            -
             | 
| 478 | 
            -
            			 | 
| 479 | 
            -
             | 
| 480 | 
            -
             | 
| 481 | 
            -
             | 
| 482 | 
            -
            			 | 
| 483 | 
            -
             | 
| 484 | 
            -
             | 
| 485 | 
            -
            			 */
         | 
| 486 | 
            -
            			map: <T, U>(array: T[], func: (index: number, value: T) => U) => U[]
         | 
| 487 | 
            -
            			/**
         | 
| 488 | 
            -
            			 * @returns a new object derived from `obj` with only the keys specified in `keys`
         | 
| 489 | 
            -
            			 */
         | 
| 284 | 
            +
             | 
| 285 | 
            +
            			/** Applies `callback` to each element in `array` and returns the original array. */
         | 
| 286 | 
            +
            			each: <T>(array: T[], callback: (index: number, value: T) => void) => T[]
         | 
| 287 | 
            +
             | 
| 288 | 
            +
            			/** @returns A new array containing the elments of `array` for which `callback` returns `true`. */
         | 
| 289 | 
            +
            			select: <T>(array: T[], callback: (index: number, value: T) => boolean) => T[]
         | 
| 290 | 
            +
             | 
| 291 | 
            +
            			/** @returns The number of elements in `array` for which `callback` returns `true`. */
         | 
| 292 | 
            +
            			count: <T>(array: T[], callback: (index: number, value: T) => boolean) => number
         | 
| 293 | 
            +
             | 
| 294 | 
            +
            			/** @returns The first element in `array` for which `callback` returns `true`. */
         | 
| 295 | 
            +
            			select_one: <T>(array: T[], callback: (index: number, value: T) => boolean) => T
         | 
| 296 | 
            +
             | 
| 297 | 
            +
            			/** @returns A new array composed of the result of applying `callback` to each element of the original array
         | 
| 298 | 
            +
            			  * in order. */
         | 
| 299 | 
            +
            			map: <T, U>(array: T[], callback: (index: number, value: T) => U) => U[]
         | 
| 300 | 
            +
             | 
| 301 | 
            +
            			/** @returns A new object derived from `obj` with only the keys specified in `keys`. */
         | 
| 490 302 | 
             
            			pick: (obj: object, keys: string[]) => any
         | 
| 491 | 
            -
             | 
| 492 | 
            -
             | 
| 493 | 
            -
             | 
| 494 | 
            -
            			 | 
| 495 | 
            -
             | 
| 496 | 
            -
            			 * Comparison function for sorting arbitrary values in ascending order using builtin comparison operators.
         | 
| 497 | 
            -
            			 */
         | 
| 303 | 
            +
             | 
| 304 | 
            +
            			/** @returns An array with the elements from `array` in a random order. */ shuffle: <T>(array: T[]) => T[]
         | 
| 305 | 
            +
             | 
| 306 | 
            +
            			/** Comparison function for sorting arbitrary values in ascending order using builtin comparison operators.
         | 
| 307 | 
            +
            			  */
         | 
| 498 308 | 
             
            			sort_asc: (one: any, two: any) => 1 | -1 | 0
         | 
| 499 | 
            -
             | 
| 500 | 
            -
             | 
| 501 | 
            -
             | 
| 309 | 
            +
             | 
| 310 | 
            +
            			/** Comparison function for sorting arbitrary values in descending order using builtin comparison operators.
         | 
| 311 | 
            +
            			  */
         | 
| 502 312 | 
             
            			sort_desc: (one: any, two: any) => 1 | -1 | 0
         | 
| 503 | 
            -
             | 
| 504 | 
            -
             | 
| 505 | 
            -
            			 */
         | 
| 313 | 
            +
             | 
| 314 | 
            +
            			/** Comparison function for sorting numbers in ascending order. */
         | 
| 506 315 | 
             
            			num_sort_asc: (one: number, two: number) => 1 | -1 | 0
         | 
| 507 | 
            -
             | 
| 508 | 
            -
             | 
| 509 | 
            -
            			 */
         | 
| 316 | 
            +
             | 
| 317 | 
            +
            			/** Comparison function for sorting numbers in descending order. */
         | 
| 510 318 | 
             
            			num_sort_desc: (one: number, two: number) => 1 | -1 | 0
         | 
| 511 | 
            -
             | 
| 512 | 
            -
             | 
| 513 | 
            -
             | 
| 514 | 
            -
             | 
| 515 | 
            -
            			/**
         | 
| 516 | 
            -
            			 * @returns a new `Date` equivalent to `date.getTime() + add_ms`
         | 
| 517 | 
            -
            			 */
         | 
| 319 | 
            +
             | 
| 320 | 
            +
            			/** @returns The value and the index of the largest number in `array`. */
         | 
| 321 | 
            +
            			max_val_index: (array: number[]) => [ largestValue: number, index: number ]
         | 
| 322 | 
            +
             | 
| 323 | 
            +
            			/** @returns A new `Date` equivalent to `date.getTime() + add_ms`. */
         | 
| 518 324 | 
             
            			add_time: (date: Date, add_ms: number) => Date
         | 
| 519 | 
            -
             | 
| 520 | 
            -
             | 
| 521 | 
            -
            			 */
         | 
| 325 | 
            +
             | 
| 326 | 
            +
            			/** Array of strings representing seclevels. */
         | 
| 522 327 | 
             
            			security_level_names: [ "NULLSEC", "LOWSEC", "MIDSEC", "HIGHSEC", "FULLSEC" ]
         | 
| 523 | 
            -
             | 
| 524 | 
            -
             | 
| 525 | 
            -
            			 */
         | 
| 328 | 
            +
             | 
| 329 | 
            +
            			/** @returns The string name of a numeric security level. */
         | 
| 526 330 | 
             
            			get_security_level_name: (security_level: number) => any
         | 
| 527 | 
            -
             | 
| 528 | 
            -
             | 
| 529 | 
            -
             | 
| 530 | 
            -
             | 
| 531 | 
            -
             | 
| 532 | 
            -
             | 
| 533 | 
            -
             | 
| 534 | 
            -
             | 
| 535 | 
            -
             | 
| 536 | 
            -
             | 
| 537 | 
            -
            			 */
         | 
| 331 | 
            +
             | 
| 332 | 
            +
            			/** @param result The return value of a call to `$db.i()` or `$db.r()`.
         | 
| 333 | 
            +
            			  * @param nModified The expected value of `result.nModified`.
         | 
| 334 | 
            +
            			  * @returns Whether the database operation failed. */
         | 
| 335 | 
            +
            			dbu_result_failed: (result: ReturnType<typeof $db.u | typeof $db.u1 | typeof $db.us>, nModified?: number) =>
         | 
| 336 | 
            +
            				boolean
         | 
| 337 | 
            +
             | 
| 338 | 
            +
            			/** @param result The return value of a call to `$db.i()` or `$db.r()`.
         | 
| 339 | 
            +
            			  * @param n The expected value of `result.n`.
         | 
| 340 | 
            +
            			  * @returns Whether the database operation failed. */
         | 
| 538 341 | 
             
            			dbir_result_failed: (result: ReturnType<typeof $db.i | typeof $db.r>, n?: number) => boolean
         | 
| 539 | 
            -
             | 
| 540 | 
            -
             | 
| 541 | 
            -
            			 */
         | 
| 342 | 
            +
             | 
| 343 | 
            +
            			/** @returns A random string of length `length` using lowercase letters and numbers. */
         | 
| 542 344 | 
             
            			create_rand_string: (length: number) => string
         | 
| 543 | 
            -
             | 
| 544 | 
            -
             | 
| 545 | 
            -
            			 */
         | 
| 345 | 
            +
             | 
| 346 | 
            +
            			/** @returns The user half `x` of a fully-qualified script name `x.y`. */
         | 
| 546 347 | 
             
            			get_user_from_script: (script_name: string) => string
         | 
| 547 | 
            -
             | 
| 548 | 
            -
             | 
| 549 | 
            -
            			 */
         | 
| 348 | 
            +
             | 
| 349 | 
            +
            			/** @returns The script half `y` of a fully-qualified script name `x.y`. */
         | 
| 550 350 | 
             
            			get_scriptname_from_script: (name: string) => string
         | 
| 551 | 
            -
             | 
| 552 | 
            -
             | 
| 553 | 
            -
             | 
| 554 | 
            -
            			 */
         | 
| 351 | 
            +
             | 
| 352 | 
            +
            			/** Determines whether to treat this run as a subscript, based either on the presence of `calling_script` in
         | 
| 353 | 
            +
            			  * `context`, or the explicit passing of `is_script: true` in `args`. */
         | 
| 555 354 | 
             
            			is_script: (context: Context, args: any) => boolean
         | 
| 556 | 
            -
             | 
| 557 | 
            -
             | 
| 558 | 
            -
            			 */
         | 
| 355 | 
            +
             | 
| 356 | 
            +
            			/** @returns Whether the script is being called by its owner. */
         | 
| 559 357 | 
             
            			caller_is_owner: (context: Context) => boolean
         | 
| 560 | 
            -
             | 
| 561 | 
            -
             | 
| 562 | 
            -
             | 
| 563 | 
            -
             | 
| 564 | 
            -
             | 
| 565 | 
            -
             | 
| 566 | 
            -
             | 
| 567 | 
            -
             | 
| 568 | 
            -
             | 
| 569 | 
            -
            			 | 
| 570 | 
            -
            			/**
         | 
| 571 | 
            -
            			 * Sorts an array of numbers or number-coercible strings in descending order.
         | 
| 572 | 
            -
            			 */
         | 
| 358 | 
            +
             | 
| 359 | 
            +
            			/** Removes consecutive duplicate elements from an array.
         | 
| 360 | 
            +
            			  * @example
         | 
| 361 | 
            +
            			  * const { uniq } = $fs.scripts.lib()
         | 
| 362 | 
            +
            			  * const arr = [ 1, 2, 2, 3, 2 ]
         | 
| 363 | 
            +
            			  *
         | 
| 364 | 
            +
            			  * $D(uniq(arr)) // [ 1, 2, 3, 2 ] */
         | 
| 365 | 
            +
            			uniq: <T>(array: T[]) => T[]
         | 
| 366 | 
            +
             | 
| 367 | 
            +
            			/** Sorts an array of numbers or number-coercible strings in descending order. */
         | 
| 573 368 | 
             
            			u_sort_num_arr_desc: <T>(array: T[]) => T[]
         | 
| 574 | 
            -
             | 
| 575 | 
            -
             | 
| 576 | 
            -
            			 */
         | 
| 369 | 
            +
             | 
| 370 | 
            +
            			/** BUGGED: Creates a new string of length `length` by repeating `pad_char`. */
         | 
| 577 371 | 
             
            			ljust: (input: string, length: number, pad_char?: string) => string
         | 
| 578 | 
            -
             | 
| 579 | 
            -
             | 
| 580 | 
            -
            			 */
         | 
| 372 | 
            +
             | 
| 373 | 
            +
            			/** Add characters from `pad_char` to the left of `input` until it reaches length `length`. */
         | 
| 581 374 | 
             
            			rjust: (input: string, length: number, pad_char?: string) => string
         | 
| 582 | 
            -
             | 
| 583 | 
            -
             | 
| 584 | 
            -
             | 
| 585 | 
            -
            			 */
         | 
| 375 | 
            +
             | 
| 376 | 
            +
            			/** @returns A string with the entries from `strings` split into evenly spaced columns, organized donward
         | 
| 377 | 
            +
            			  * and then rightward, to fit the current user's terminal. */
         | 
| 586 378 | 
             
            			columnize: (strings: string[]) => string
         | 
| 587 | 
            -
             | 
| 588 | 
            -
             | 
| 589 | 
            -
             | 
| 590 | 
            -
             | 
| 591 | 
            -
             | 
| 592 | 
            -
             | 
| 593 | 
            -
             | 
| 594 | 
            -
             | 
| 595 | 
            -
             | 
| 596 | 
            -
             | 
| 597 | 
            -
             | 
| 598 | 
            -
             | 
| 599 | 
            -
            			side_by_side: (str1: string, str2: string, space?:string) => string
         | 
| 600 | 
            -
             | 
| 601 | 
            -
             | 
| 602 | 
            -
            			 */
         | 
| 379 | 
            +
             | 
| 380 | 
            +
            			/** Takes two newline-separated strings and formats a new string where they appear in columns, separated by
         | 
| 381 | 
            +
            			  * `space`.
         | 
| 382 | 
            +
            			  * @example
         | 
| 383 | 
            +
            			  * const { side_by_side } = $fs.scripts.lib()
         | 
| 384 | 
            +
            			  * const str1 = "one\ntwo\nthree"
         | 
| 385 | 
            +
            			  * const str2 = "four\nfive\nsix"
         | 
| 386 | 
            +
            			  *
         | 
| 387 | 
            +
            			  * $D(side_by_side(str1, str2, "|"))
         | 
| 388 | 
            +
            			  * // one|four\n
         | 
| 389 | 
            +
            			  * // two|five\n
         | 
| 390 | 
            +
            			  * // three|six */
         | 
| 391 | 
            +
            			side_by_side: (str1: string, str2: string, space?: string) => string
         | 
| 392 | 
            +
             | 
| 393 | 
            +
            			/** @returns Whether enough time remains in the script execution window to satisfy `time_left`. */
         | 
| 603 394 | 
             
            			can_continue_execution: (time_left: number) => boolean
         | 
| 604 | 
            -
             | 
| 605 | 
            -
             | 
| 606 | 
            -
             | 
| 607 | 
            -
            			can_continue_execution_error: (time_left: number, name?:string) => {ok:false, msg: string}
         | 
| 608 | 
            -
             | 
| 609 | 
            -
            			/**
         | 
| 610 | 
            -
             | 
| 611 | 
            -
             | 
| 612 | 
            -
             | 
| 613 | 
            -
            			/**
         | 
| 614 | 
            -
            			 * @returns time since the epoch, equivalent to `Date.now()`
         | 
| 615 | 
            -
            			 */
         | 
| 616 | 
            -
            			get_date_utcsecs: () => number
         | 
| 617 | 
            -
            			/**
         | 
| 618 | 
            -
            			 * The amount of milliseconds in a single day.
         | 
| 619 | 
            -
            			 */
         | 
| 620 | 
            -
            			one_day_ms: 86_400_000
         | 
| 395 | 
            +
             | 
| 396 | 
            +
            			/** @returns A human-readable error object when not enough time remains in the script execution window to
         | 
| 397 | 
            +
            			  * satisfy `time_left`. */
         | 
| 398 | 
            +
            			can_continue_execution_error: (time_left: number, name?: string) => { ok:false, msg: string }
         | 
| 399 | 
            +
             | 
| 400 | 
            +
            			/** @returns Current date, equivalent to `new Date()`. */ get_date: () => Date
         | 
| 401 | 
            +
            			/** @returns time since the epoch, equivalent to `Date.now()`. */ get_date_utcsecs: () => number
         | 
| 402 | 
            +
            			/** The amount of milliseconds in a single day. */ one_day_ms: 86_400_000
         | 
| 403 | 
            +
             | 
| 621 404 | 
             
            			is_not_today: (date: Date) => boolean
         | 
| 622 | 
            -
             | 
| 623 | 
            -
             | 
| 624 | 
            -
            			 */
         | 
| 405 | 
            +
             | 
| 406 | 
            +
            			/** @returns The number of days that have passed between `d2` and `d1` */
         | 
| 625 407 | 
             
            			utc_day_diff: (d1: Date, d2: Date) => number
         | 
| 626 | 
            -
             | 
| 627 | 
            -
             | 
| 628 | 
            -
            			 */
         | 
| 408 | 
            +
             | 
| 409 | 
            +
            			/** @returns The number of days elapsed since `date` as a string, e.g. "<n> days" */
         | 
| 629 410 | 
             
            			utc_days_ago_str: (date: Date) => string
         | 
| 411 | 
            +
             | 
| 630 412 | 
             
            			math: typeof Math
         | 
| 631 413 | 
             
            			array: typeof Array
         | 
| 632 414 | 
             
            			parse_int: typeof parseInt
         | 
| @@ -634,361 +416,200 @@ type Fullsec = Subscripts & PlayerFullsec & { | |
| 634 416 | 
             
            			json: typeof JSON
         | 
| 635 417 | 
             
            			number: typeof Number
         | 
| 636 418 | 
             
            			object: typeof Object
         | 
| 419 | 
            +
            			date: typeof Date
         | 
| 637 420 | 
             
            		}
         | 
| 638 421 |  | 
| 639 | 
            -
            		/**
         | 
| 640 | 
            -
            		 * **FULLSEC**
         | 
| 641 | 
            -
            		 */
         | 
| 642 | 
            -
            		quine: () => string
         | 
| 422 | 
            +
            		/** **FULLSEC** */ quine: () => string
         | 
| 643 423 | 
             
            	}
         | 
| 644 424 |  | 
| 645 425 | 
             
            	sys: {
         | 
| 646 426 | 
             
            		init: never
         | 
| 647 427 |  | 
| 648 | 
            -
            		/**
         | 
| 649 | 
            -
             | 
| 650 | 
            -
             | 
| 651 | 
            -
             | 
| 652 | 
            -
             | 
| 653 | 
            -
             | 
| 654 | 
            -
             | 
| 655 | 
            -
             | 
| 656 | 
            -
             | 
| 657 | 
            -
            			 | 
| 658 | 
            -
             | 
| 659 | 
            -
            			 | 
| 660 | 
            -
             | 
| 661 | 
            -
            			 | 
| 662 | 
            -
             | 
| 663 | 
            -
            			 | 
| 664 | 
            -
            		 | 
| 665 | 
            -
             | 
| 666 | 
            -
            		/**
         | 
| 667 | 
            -
             | 
| 668 | 
            -
             | 
| 669 | 
            -
            		xfer_upgrade_to_caller: ((args: {
         | 
| 670 | 
            -
            			i: number | number[]
         | 
| 671 | 
            -
            			memo?: string
         | 
| 672 | 
            -
            		}) => ScriptResponse) & ((args: {
         | 
| 673 | 
            -
            			sn: string | string[]
         | 
| 674 | 
            -
            			memo?: string
         | 
| 675 | 
            -
            		}) => ScriptResponse)
         | 
| 428 | 
            +
            		/** **FULLSEC** */
         | 
| 429 | 
            +
            		upgrades_of_owner: {
         | 
| 430 | 
            +
            			<F extends Partial<Upgrade & { loaded: boolean }> = object>(args?: { filter?: F, full?: false }): (
         | 
| 431 | 
            +
            				Omit<
         | 
| 432 | 
            +
            					Pick<UpgradeBase, "tier" | "rarity" | "name" | "type" | "i" | "loaded">,
         | 
| 433 | 
            +
            					keyof F
         | 
| 434 | 
            +
            				> & Pick<F, "tier" | "rarity" | "name" | "type" | "i" | "loaded">
         | 
| 435 | 
            +
            			)[] | ScriptFailure
         | 
| 436 | 
            +
             | 
| 437 | 
            +
            			<F extends Partial<Upgrade & { loaded: boolean }> = object>(args: { filter?: F, full: true }): (
         | 
| 438 | 
            +
            				Omit<UpgradeBase, keyof F> & F & Record<string, null | boolean | number | string>
         | 
| 439 | 
            +
            			)[] | ScriptFailure
         | 
| 440 | 
            +
             | 
| 441 | 
            +
            			<I extends number>(args: { i: I }): (
         | 
| 442 | 
            +
            				Omit<UpgradeBase, "i"> & { [x: string]: null | boolean | number | string, i: I }
         | 
| 443 | 
            +
            			) | ScriptFailure
         | 
| 444 | 
            +
            		}
         | 
| 445 | 
            +
             | 
| 446 | 
            +
            		/** **FULLSEC** */
         | 
| 447 | 
            +
            		xfer_upgrade_to_caller: (args: ({ i: number | number[] } | { sn: string | string[] }) & { memo?: string }) =>
         | 
| 448 | 
            +
            			ScriptResponse
         | 
| 676 449 | 
             
            	}
         | 
| 677 450 |  | 
| 678 451 | 
             
            	users: {
         | 
| 679 | 
            -
            		/**
         | 
| 680 | 
            -
             | 
| 681 | 
            -
             | 
| 682 | 
            -
            		 | 
| 683 | 
            -
             | 
| 684 | 
            -
            		/**
         | 
| 685 | 
            -
            		 * **FULLSEC**
         | 
| 686 | 
            -
            		 */
         | 
| 687 | 
            -
            		last_action: (args: { name: string | string[] }) => ({
         | 
| 688 | 
            -
            			n: string
         | 
| 689 | 
            -
            			t?: Date
         | 
| 690 | 
            -
            		} | null)[]
         | 
| 691 | 
            -
             | 
| 692 | 
            -
            		/**
         | 
| 693 | 
            -
            		 * **FULLSEC**
         | 
| 694 | 
            -
            		 */
         | 
| 452 | 
            +
            		/** **FULLSEC** */ active: () => number
         | 
| 453 | 
            +
            		/** **FULLSEC** */ last_action: (args: { name: string | string[] }) => ({ n: string, t?: Date } | null)[]
         | 
| 454 | 
            +
             | 
| 455 | 
            +
            		/** **FULLSEC** */
         | 
| 695 456 | 
             
            		top: () => [
         | 
| 696 | 
            -
            			UsersTopItem<1>,
         | 
| 697 | 
            -
            			UsersTopItem< | 
| 698 | 
            -
            			UsersTopItem<3>,
         | 
| 699 | 
            -
            			UsersTopItem<4>,
         | 
| 700 | 
            -
            			UsersTopItem<5>,
         | 
| 701 | 
            -
            			UsersTopItem<6>,
         | 
| 702 | 
            -
            			UsersTopItem<7>,
         | 
| 703 | 
            -
            			UsersTopItem<8>,
         | 
| 704 | 
            -
            			UsersTopItem<9>,
         | 
| 705 | 
            -
            			UsersTopItem<10>
         | 
| 457 | 
            +
            			UsersTopItem<1>, UsersTopItem<2>, UsersTopItem<3>, UsersTopItem<4>, UsersTopItem<5>,
         | 
| 458 | 
            +
            			UsersTopItem<6>, UsersTopItem<7>, UsersTopItem<8>, UsersTopItem<9>, UsersTopItem<10>
         | 
| 706 459 | 
             
            		]
         | 
| 707 460 | 
             
            	}
         | 
| 708 461 | 
             
            }
         | 
| 709 462 |  | 
| 710 463 | 
             
            type Highsec = Fullsec & PlayerHighsec & {
         | 
| 711 464 | 
             
            	accts: {
         | 
| 712 | 
            -
            		/**
         | 
| 713 | 
            -
             | 
| 714 | 
            -
             | 
| 715 | 
            -
            		 * @returns GC balance as number if `is_script` is true (default)
         | 
| 716 | 
            -
            		 * @returns GC balance as string if `is_script` is false
         | 
| 717 | 
            -
            		 */
         | 
| 465 | 
            +
            		/** **HIGHSEC**
         | 
| 466 | 
            +
            		  * @returns GC balance as number if `is_script` is true (default).
         | 
| 467 | 
            +
            		  * @returns GC balance as string if `is_script` is false. */
         | 
| 718 468 | 
             
            		balance: ((args?: { is_script?: true }) => number) & ((args: { is_script: false }) => string)
         | 
| 719 469 |  | 
| 720 | 
            -
            		/**
         | 
| 721 | 
            -
            		 *  | 
| 722 | 
            -
            		 *
         | 
| 723 | 
            -
            		 * @returns  | 
| 724 | 
            -
            		 *  | 
| 725 | 
            -
             | 
| 726 | 
            -
             | 
| 727 | 
            -
             | 
| 728 | 
            -
             | 
| 729 | 
            -
            			to?: string
         | 
| 730 | 
            -
            			from?: string
         | 
| 731 | 
            -
            			script?: string
         | 
| 732 | 
            -
            			is_script?: true
         | 
| 733 | 
            -
            		}) => {
         | 
| 734 | 
            -
            			time: Date
         | 
| 735 | 
            -
            			amount: number
         | 
| 736 | 
            -
            			sender: string
         | 
| 737 | 
            -
            			recipient: string
         | 
| 738 | 
            -
            			script: string | null
         | 
| 739 | 
            -
            			memo?: string
         | 
| 740 | 
            -
            		}[]) & ((args: {
         | 
| 741 | 
            -
            			count?: number | "all"
         | 
| 742 | 
            -
            			to?: string
         | 
| 743 | 
            -
            			from?: string
         | 
| 744 | 
            -
            			script?: string
         | 
| 745 | 
            -
            			is_script: false
         | 
| 746 | 
            -
            		}) => {
         | 
| 747 | 
            -
            			msg: string
         | 
| 748 | 
            -
            			transactions: {
         | 
| 749 | 
            -
            				time: string
         | 
| 750 | 
            -
            				amount: string
         | 
| 470 | 
            +
            		/** **HIGHSEC**
         | 
| 471 | 
            +
            		 * @returns Transaction history according to filter.
         | 
| 472 | 
            +
            		 * @returns If `is_script` is true (default), time property as Date object.
         | 
| 473 | 
            +
            		 * @returns Wraps transactions in object with msg, time property as string (game date format e.g. 201028.2147)
         | 
| 474 | 
            +
            		 * if `is_script` is false. */
         | 
| 475 | 
            +
            		transactions: {
         | 
| 476 | 
            +
            			(args?: { count?: number | "all", to?: string, from?: string, script?: string, is_script?: true }): {
         | 
| 477 | 
            +
            				time: Date
         | 
| 478 | 
            +
            				amount: number
         | 
| 751 479 | 
             
            				sender: string
         | 
| 752 480 | 
             
            				recipient: string
         | 
| 753 481 | 
             
            				script: string | null
         | 
| 754 482 | 
             
            				memo?: string
         | 
| 755 483 | 
             
            			}[]
         | 
| 756 | 
            -
             | 
| 484 | 
            +
             | 
| 485 | 
            +
            			(args: { count?: number | "all", to?: string, from?: string, script?: string, is_script: false }): {
         | 
| 486 | 
            +
            				msg: string
         | 
| 487 | 
            +
            				transactions: {
         | 
| 488 | 
            +
            					time: string
         | 
| 489 | 
            +
            					amount: string
         | 
| 490 | 
            +
            					sender: string
         | 
| 491 | 
            +
            					recipient: string
         | 
| 492 | 
            +
            					script: string | null
         | 
| 493 | 
            +
            					memo?: string
         | 
| 494 | 
            +
            				}[]
         | 
| 495 | 
            +
            			}
         | 
| 496 | 
            +
            		}
         | 
| 757 497 | 
             
            	}
         | 
| 758 498 |  | 
| 759 499 | 
             
            	scripts: {
         | 
| 760 | 
            -
            		/**
         | 
| 761 | 
            -
            		 * **HIGHSEC**
         | 
| 762 | 
            -
            		 */
         | 
| 763 | 
            -
            		sys: () => string | string[]
         | 
| 500 | 
            +
            		/** **HIGHSEC** */ sys: () => string | string[]
         | 
| 764 501 | 
             
            	}
         | 
| 765 502 |  | 
| 766 503 | 
             
            	sys: {
         | 
| 767 | 
            -
            		/**
         | 
| 768 | 
            -
             | 
| 769 | 
            -
             | 
| 770 | 
            -
            		 | 
| 771 | 
            -
             | 
| 772 | 
            -
             | 
| 773 | 
            -
             | 
| 774 | 
            -
             | 
| 775 | 
            -
             | 
| 776 | 
            -
             | 
| 777 | 
            -
            			tutorial: string
         | 
| 778 | 
            -
            			breach: boolean
         | 
| 504 | 
            +
            		/** **HIGHSEC** */ specs: () => string | ScriptFailure
         | 
| 505 | 
            +
            		/** **HIGHSEC** */ status: () => { hardline: number, tutorial: string, breach: boolean }
         | 
| 506 | 
            +
             | 
| 507 | 
            +
            		/** **HIGHSEC** */
         | 
| 508 | 
            +
            		upgrade_log: {
         | 
| 509 | 
            +
            			(args?: { is_script?: true, user?: string, run_id?: string, count?: number, start?: number }):
         | 
| 510 | 
            +
            				{ t: Date, u: string, r: string, msg: string }[] | ScriptFailure
         | 
| 511 | 
            +
             | 
| 512 | 
            +
            			(args: { is_script: false, user?: string, run_id?: string, count?: number, start?: number }):
         | 
| 513 | 
            +
            				string[] | ScriptFailure
         | 
| 779 514 | 
             
            		}
         | 
| 780 515 |  | 
| 781 | 
            -
            		/**
         | 
| 782 | 
            -
             | 
| 783 | 
            -
             | 
| 784 | 
            -
             | 
| 785 | 
            -
            			 | 
| 786 | 
            -
             | 
| 787 | 
            -
            			 | 
| 788 | 
            -
             | 
| 789 | 
            -
             | 
| 790 | 
            -
             | 
| 791 | 
            -
            			 | 
| 792 | 
            -
             | 
| 793 | 
            -
             | 
| 794 | 
            -
            			 | 
| 795 | 
            -
             | 
| 796 | 
            -
            			 | 
| 797 | 
            -
             | 
| 798 | 
            -
            			 | 
| 799 | 
            -
             | 
| 800 | 
            -
            			 | 
| 801 | 
            -
             | 
| 802 | 
            -
             | 
| 803 | 
            -
             | 
| 804 | 
            -
             | 
| 805 | 
            -
             | 
| 806 | 
            -
            		upgrades: (<I extends number>(args: { i: I }) => (
         | 
| 807 | 
            -
            			Omit<UpgradeCore, "i"> & { [x: string]: null | boolean | number | string, i: I }
         | 
| 808 | 
            -
            		) | ScriptFailure) & (<
         | 
| 809 | 
            -
            			F extends Partial<Upgrade & { loaded: boolean }> = object
         | 
| 810 | 
            -
            		>(args?: {
         | 
| 811 | 
            -
            			filter?: F
         | 
| 812 | 
            -
            			is_script?: true
         | 
| 813 | 
            -
            			full?: false
         | 
| 814 | 
            -
            		}) => (
         | 
| 815 | 
            -
            			Omit<
         | 
| 816 | 
            -
            				Pick<UpgradeCore, "tier" | "rarity" | "name" | "type" | "i" | "loaded">,
         | 
| 817 | 
            -
            				keyof F
         | 
| 818 | 
            -
            			> & F & Record<string, null | boolean | number | string>
         | 
| 819 | 
            -
            		)[] | ScriptFailure) & (<
         | 
| 820 | 
            -
            			F extends Partial<Upgrade & { loaded: boolean }> = object
         | 
| 821 | 
            -
            		>(args?: {
         | 
| 822 | 
            -
            			filter?: F
         | 
| 823 | 
            -
            			is_script?: true
         | 
| 824 | 
            -
            			full: true
         | 
| 825 | 
            -
            		}) => (
         | 
| 826 | 
            -
            			Omit<UpgradeCore, keyof F> & F & Record<string, null | boolean | number | string>
         | 
| 827 | 
            -
            		)[] | ScriptFailure) & ((args?: {
         | 
| 828 | 
            -
            			filter?: Partial<Upgrade & { loaded: boolean }>
         | 
| 829 | 
            -
            			is_script: false
         | 
| 830 | 
            -
            			full?: false
         | 
| 831 | 
            -
            		}) => {
         | 
| 832 | 
            -
            			msg: string
         | 
| 833 | 
            -
            			upgrades: string[]
         | 
| 834 | 
            -
            		} | ScriptFailure) & (<
         | 
| 835 | 
            -
            			F extends Partial<Upgrade & { loaded: boolean }> = object
         | 
| 836 | 
            -
            		>(args?: {
         | 
| 837 | 
            -
            			filter?: F
         | 
| 838 | 
            -
            			is_script: false
         | 
| 839 | 
            -
            			full: true
         | 
| 840 | 
            -
            		}) => (
         | 
| 841 | 
            -
            			Omit<UpgradeCore, keyof F | `rarity`> & F & {
         | 
| 516 | 
            +
            		/** **HIGHSEC** */
         | 
| 517 | 
            +
            		upgrades: {
         | 
| 518 | 
            +
            			<I extends number>(args: { i: I }): (
         | 
| 519 | 
            +
            				Omit<UpgradeBase, "i"> & { [x: string]: null | boolean | number | string, i: I }
         | 
| 520 | 
            +
            			) | ScriptFailure
         | 
| 521 | 
            +
             | 
| 522 | 
            +
            			<F extends Partial<Upgrade & { loaded: boolean }> = object>(args?: {
         | 
| 523 | 
            +
            				filter?: F
         | 
| 524 | 
            +
            				is_script?: true
         | 
| 525 | 
            +
            				full?: false
         | 
| 526 | 
            +
            			}): (
         | 
| 527 | 
            +
            				Omit<Pick<UpgradeBase, "tier" | "rarity" | "name" | "type" | "i" | "loaded">, keyof F> & F &
         | 
| 528 | 
            +
            					Record<string, null | boolean | number | string>
         | 
| 529 | 
            +
            			)[] | ScriptFailure
         | 
| 530 | 
            +
             | 
| 531 | 
            +
            			<F extends Partial<Upgrade & { loaded: boolean }> = object>(args?:
         | 
| 532 | 
            +
            				{ filter?: F, is_script?: true, full: true }
         | 
| 533 | 
            +
            			): (Omit<UpgradeBase, keyof F> & F & Record<string, null | boolean | number | string>)[] | ScriptFailure
         | 
| 534 | 
            +
             | 
| 535 | 
            +
            			(args?: { filter?: Partial<Upgrade & { loaded: boolean }>, is_script: false, full?: false }):
         | 
| 536 | 
            +
            				{ msg: string, upgrades: string[] } | ScriptFailure
         | 
| 537 | 
            +
             | 
| 538 | 
            +
            			<F extends Partial<Upgrade & { loaded: boolean }> = object>(
         | 
| 539 | 
            +
            				args?: { filter?: F, is_script: false, full: true }
         | 
| 540 | 
            +
            			): (Omit<UpgradeBase, keyof F | `rarity`> & F & {
         | 
| 842 541 | 
             
            				[x: string]: null | boolean | number | string
         | 
| 843 | 
            -
            				rarity:  | 
| 844 | 
            -
            			}
         | 
| 845 | 
            -
            		 | 
| 542 | 
            +
            				rarity: UpgradeRarityString
         | 
| 543 | 
            +
            			})[] | ScriptFailure
         | 
| 544 | 
            +
            		}
         | 
| 846 545 | 
             
            	}
         | 
| 847 546 |  | 
| 848 547 | 
             
            	users: {
         | 
| 849 | 
            -
            		/**
         | 
| 850 | 
            -
             | 
| 851 | 
            -
             | 
| 852 | 
            -
             | 
| 853 | 
            -
            			name:  | 
| 854 | 
            -
             | 
| 855 | 
            -
             | 
| 856 | 
            -
             | 
| 857 | 
            -
             | 
| 858 | 
            -
             | 
| 859 | 
            -
             | 
| 860 | 
            -
             | 
| 861 | 
            -
             | 
| 862 | 
            -
             | 
| 863 | 
            -
            			 | 
| 864 | 
            -
             | 
| 865 | 
            -
            			 | 
| 866 | 
            -
             | 
| 867 | 
            -
            			title?: string
         | 
| 868 | 
            -
            			is_main: boolean
         | 
| 869 | 
            -
            			alt_of?: string
         | 
| 870 | 
            -
            			badges?: string[]
         | 
| 871 | 
            -
            		} | ScriptFailure) & ((args: {
         | 
| 872 | 
            -
            			name: string
         | 
| 873 | 
            -
            			is_script: false
         | 
| 874 | 
            -
            		}) => string | ScriptFailure)
         | 
| 548 | 
            +
            		/** **HIGHSEC** */ inspect: {
         | 
| 549 | 
            +
            			(args: { name: "trust", is_script?: boolean }): number
         | 
| 550 | 
            +
            			(args: { name: "risk", is_script?: boolean }): string
         | 
| 551 | 
            +
             | 
| 552 | 
            +
            			(args: { name: string, is_script?: true }): {
         | 
| 553 | 
            +
            				username: string
         | 
| 554 | 
            +
            				avatar: string
         | 
| 555 | 
            +
            				pronouns: string
         | 
| 556 | 
            +
            				user_age?: Date
         | 
| 557 | 
            +
            				bio?: string
         | 
| 558 | 
            +
            				title?: string
         | 
| 559 | 
            +
            				is_main: boolean
         | 
| 560 | 
            +
            				alt_of?: string
         | 
| 561 | 
            +
            				badges?: string[]
         | 
| 562 | 
            +
            			} | ScriptFailure
         | 
| 563 | 
            +
             | 
| 564 | 
            +
            			(args: { name: string, is_script: false }): string | ScriptFailure
         | 
| 565 | 
            +
            		}
         | 
| 875 566 | 
             
            	}
         | 
| 876 567 | 
             
            }
         | 
| 877 568 |  | 
| 878 569 | 
             
            type Midsec = Highsec & PlayerMidsec & {
         | 
| 879 570 | 
             
            	accts: {
         | 
| 880 | 
            -
            		/**
         | 
| 881 | 
            -
            		 * **MIDSEC**
         | 
| 882 | 
            -
            		 */
         | 
| 883 | 
            -
            		xfer_gc_to: (args: {
         | 
| 884 | 
            -
            			to: string
         | 
| 885 | 
            -
            			amount: number | string
         | 
| 886 | 
            -
            			memo?: string
         | 
| 887 | 
            -
            		}) => ScriptResponse
         | 
| 571 | 
            +
            		/** **MIDSEC** */ xfer_gc_to: (args: { to: string, amount: number | string, memo?: string }) => ScriptResponse
         | 
| 888 572 | 
             
            	}
         | 
| 889 573 |  | 
| 890 | 
            -
            	autos: {
         | 
| 891 | 
            -
            		/**
         | 
| 892 | 
            -
            		 * **MIDSEC**
         | 
| 893 | 
            -
            		 */
         | 
| 894 | 
            -
            		reset: () => ScriptSuccess
         | 
| 895 | 
            -
            	}
         | 
| 574 | 
            +
            	autos: { /** **MIDSEC** */ reset: () => ScriptSuccess }
         | 
| 896 575 |  | 
| 897 576 | 
             
            	chats: {
         | 
| 898 | 
            -
            		/**
         | 
| 899 | 
            -
             | 
| 900 | 
            -
             | 
| 901 | 
            -
            		 | 
| 902 | 
            -
             | 
| 903 | 
            -
            		/**
         | 
| 904 | 
            -
            		 * **MIDSEC**
         | 
| 905 | 
            -
            		 */
         | 
| 906 | 
            -
            		join: (args: {
         | 
| 907 | 
            -
            			channel: string
         | 
| 908 | 
            -
            			password?: string
         | 
| 909 | 
            -
            		}) => ScriptResponse
         | 
| 910 | 
            -
             | 
| 911 | 
            -
            		/**
         | 
| 912 | 
            -
            		 * **MIDSEC**
         | 
| 913 | 
            -
            		 */
         | 
| 914 | 
            -
            		leave: (args: { channel: string }) => ScriptResponse
         | 
| 915 | 
            -
             | 
| 916 | 
            -
            		/**
         | 
| 917 | 
            -
            		 * **MIDSEC**
         | 
| 918 | 
            -
            		 */
         | 
| 919 | 
            -
            		users: (args: { channel: string }) => string[] | ScriptFailure
         | 
| 577 | 
            +
            		/** **MIDSEC** */ channels: () => string[]
         | 
| 578 | 
            +
            		/** **MIDSEC** */ join: (args: { channel: string, password?: string }) => ScriptResponse
         | 
| 579 | 
            +
            		/** **MIDSEC** */ leave: (args: { channel: string }) => ScriptResponse
         | 
| 580 | 
            +
            		/** **MIDSEC** */ users: (args: { channel: string }) => string[] | ScriptFailure
         | 
| 920 581 | 
             
            	}
         | 
| 921 582 |  | 
| 922 583 | 
             
            	escrow: {
         | 
| 923 | 
            -
            		/**
         | 
| 924 | 
            -
             | 
| 925 | 
            -
            		 */
         | 
| 926 | 
            -
            		stats: () => {
         | 
| 927 | 
            -
            			scripts: string[]
         | 
| 928 | 
            -
            			total: string
         | 
| 929 | 
            -
            			outstanding: string
         | 
| 930 | 
            -
            			open_escrow_count: number
         | 
| 931 | 
            -
            		} | ScriptFailure
         | 
| 584 | 
            +
            		/** **MIDSEC** */ stats: () =>
         | 
| 585 | 
            +
            			{ scripts: string[], total: string, outstanding: string, open_escrow_count: number } | ScriptFailure
         | 
| 932 586 | 
             
            	}
         | 
| 933 587 |  | 
| 934 588 | 
             
            	market: {
         | 
| 935 | 
            -
            		/**
         | 
| 936 | 
            -
            		 * **MIDSEC**
         | 
| 937 | 
            -
            		 */
         | 
| 938 | 
            -
            		buy: (args: {
         | 
| 939 | 
            -
            			i: string
         | 
| 940 | 
            -
            			count: number
         | 
| 941 | 
            -
            			confirm: true
         | 
| 942 | 
            -
            		}) => ScriptResponse
         | 
| 589 | 
            +
            		/** **MIDSEC** */ buy: (args: { i: string, count: number, confirm: true }) => ScriptResponse
         | 
| 943 590 |  | 
| 944 | 
            -
            		/**
         | 
| 945 | 
            -
             | 
| 946 | 
            -
            		 */
         | 
| 947 | 
            -
            		stats: () => ScriptFailure | {
         | 
| 948 | 
            -
            			total: string
         | 
| 949 | 
            -
            			outstanding: string
         | 
| 950 | 
            -
            			listed: number
         | 
| 951 | 
            -
            			sold: number
         | 
| 952 | 
            -
            		}
         | 
| 591 | 
            +
            		/** **MIDSEC** */ stats: () =>
         | 
| 592 | 
            +
            			ScriptFailure | { total: string, outstanding: string, listed: number, sold: number }
         | 
| 953 593 | 
             
            	}
         | 
| 954 594 |  | 
| 955 | 
            -
            	scripts: {
         | 
| 956 | 
            -
            		/**
         | 
| 957 | 
            -
            		 * **MIDSEC**
         | 
| 958 | 
            -
            		 */
         | 
| 959 | 
            -
            		user: () => string[]
         | 
| 960 | 
            -
            	}
         | 
| 595 | 
            +
            	scripts: { /** **MIDSEC** */ user: () => string[] }
         | 
| 961 596 |  | 
| 962 597 | 
             
            	sys: {
         | 
| 963 | 
            -
            		/**
         | 
| 964 | 
            -
             | 
| 965 | 
            -
             | 
| 966 | 
            -
             | 
| 967 | 
            -
            			 | 
| 968 | 
            -
             | 
| 969 | 
            -
            		} | 
| 970 | 
            -
            			from: number
         | 
| 971 | 
            -
            			to: number
         | 
| 972 | 
            -
            		})[] | {
         | 
| 973 | 
            -
            			from: number
         | 
| 974 | 
            -
            			to: number
         | 
| 975 | 
            -
            		} }) => string[] | ScriptFailure)
         | 
| 598 | 
            +
            		/** **MIDSEC** */
         | 
| 599 | 
            +
            		manage: {
         | 
| 600 | 
            +
            			(args: { unload?: number | number[], load?: number | number[] }): ScriptResponse
         | 
| 601 | 
            +
             | 
| 602 | 
            +
            			(args: { reorder?: ([ number, number ] | { from: number, to: number })[] | { from: number, to: number } }):
         | 
| 603 | 
            +
            				string[] | ScriptFailure
         | 
| 604 | 
            +
            		}
         | 
| 976 605 | 
             
            	}
         | 
| 977 606 | 
             
            }
         | 
| 978 607 |  | 
| 979 608 | 
             
            type Lowsec = Midsec & PlayerLowsec & {
         | 
| 980 | 
            -
            	kernel: {
         | 
| 981 | 
            -
            		/**
         | 
| 982 | 
            -
            		 * **LOWSEC**
         | 
| 983 | 
            -
            		 */
         | 
| 984 | 
            -
            		hardline: () => ScriptResponse
         | 
| 985 | 
            -
            	}
         | 
| 609 | 
            +
            	kernel: { /** **LOWSEC** */ hardline: () => ScriptResponse }
         | 
| 986 610 |  | 
| 987 611 | 
             
            	market: {
         | 
| 988 | 
            -
            		/**
         | 
| 989 | 
            -
            		 * **LOWSEC**
         | 
| 990 | 
            -
            		 */
         | 
| 991 | 
            -
            		sell: (args: {
         | 
| 612 | 
            +
            		/** **LOWSEC** */ sell: (args: {
         | 
| 992 613 | 
             
            			i: number
         | 
| 993 614 | 
             
            			cost: number | string
         | 
| 994 615 | 
             
            			description?: string
         | 
| @@ -999,502 +620,321 @@ type Lowsec = Midsec & PlayerLowsec & { | |
| 999 620 | 
             
            	}
         | 
| 1000 621 |  | 
| 1001 622 | 
             
            	sys: {
         | 
| 1002 | 
            -
            		/**
         | 
| 1003 | 
            -
             | 
| 1004 | 
            -
             | 
| 1005 | 
            -
             | 
| 1006 | 
            -
            			user?: string
         | 
| 1007 | 
            -
             | 
| 1008 | 
            -
             | 
| 1009 | 
            -
             | 
| 1010 | 
            -
             | 
| 1011 | 
            -
            		 | 
| 1012 | 
            -
             | 
| 1013 | 
            -
             | 
| 1014 | 
            -
            			 | 
| 1015 | 
            -
            			 | 
| 1016 | 
            -
            		} | 
| 1017 | 
            -
            			user?: string
         | 
| 1018 | 
            -
            			run_id?: string
         | 
| 1019 | 
            -
            			is_script: false
         | 
| 1020 | 
            -
            			count?: number
         | 
| 1021 | 
            -
            			start?: number
         | 
| 1022 | 
            -
            		}) => string[])
         | 
| 1023 | 
            -
             | 
| 1024 | 
            -
            		/**
         | 
| 1025 | 
            -
            		 * **LOWSEC**
         | 
| 1026 | 
            -
            		 */
         | 
| 1027 | 
            -
            		cull: (args: { i: number | number[], confirm: true }) => ScriptResponse
         | 
| 1028 | 
            -
             | 
| 1029 | 
            -
            		/**
         | 
| 1030 | 
            -
            		 * **LOWSEC**
         | 
| 1031 | 
            -
            		 */
         | 
| 1032 | 
            -
            		loc: () => string | ScriptFailure
         | 
| 1033 | 
            -
             | 
| 1034 | 
            -
            		/**
         | 
| 1035 | 
            -
            		 * **LOWSEC**
         | 
| 1036 | 
            -
            		 */
         | 
| 1037 | 
            -
            		xfer_upgrade_to: ((args: {
         | 
| 1038 | 
            -
            			i: number | number[]
         | 
| 1039 | 
            -
            			to: string
         | 
| 1040 | 
            -
            			memo?: string
         | 
| 1041 | 
            -
            		}) => ScriptResponse) & ((args: {
         | 
| 1042 | 
            -
            			sn: string | string[]
         | 
| 1043 | 
            -
            			to: string
         | 
| 1044 | 
            -
            			memo?: string
         | 
| 1045 | 
            -
            		}) => ScriptResponse)
         | 
| 623 | 
            +
            		/** **LOWSEC** */ access_log: {
         | 
| 624 | 
            +
            			(args?: { user?: string, run_id?: string, is_script?: true, count?: number, start?: number }):
         | 
| 625 | 
            +
            				{ t: Date, u: string | undefined, r: string | undefined, msg: string }[] | ScriptFailure
         | 
| 626 | 
            +
             | 
| 627 | 
            +
            			(args: { user?: string, run_id?: string, is_script: false, count?: number, start?: number }): string[]
         | 
| 628 | 
            +
            		}
         | 
| 629 | 
            +
             | 
| 630 | 
            +
            		/** **LOWSEC** */ cull: (args: { i: number | number[], confirm: true }) => ScriptResponse
         | 
| 631 | 
            +
             | 
| 632 | 
            +
            		/** **LOWSEC** */ loc: () => string | ScriptFailure
         | 
| 633 | 
            +
             | 
| 634 | 
            +
            		/** **LOWSEC** */ xfer_upgrade_to: {
         | 
| 635 | 
            +
            			(args: { i: number | number[], to: string, memo?: string }): ScriptResponse
         | 
| 636 | 
            +
            			(args: { sn: string | string[], to: string, memo?: string }): ScriptResponse
         | 
| 637 | 
            +
            		}
         | 
| 1046 638 | 
             
            	}
         | 
| 1047 639 | 
             
            }
         | 
| 1048 640 |  | 
| 1049 641 | 
             
            type Nullsec = Lowsec & PlayerNullsec & {
         | 
| 1050 642 | 
             
            	corps: {
         | 
| 1051 | 
            -
            		/**
         | 
| 1052 | 
            -
             | 
| 1053 | 
            -
            		 */
         | 
| 1054 | 
            -
            		create: (args: {
         | 
| 1055 | 
            -
            			name: string
         | 
| 1056 | 
            -
            			confirm: true
         | 
| 1057 | 
            -
            		}) => ScriptResponse
         | 
| 643 | 
            +
            		/** **NULLSEC** */ create: (args: { name: string, confirm: true }) => ScriptResponse
         | 
| 644 | 
            +
            		/** **NULLSEC** */ hire: (args: { name: string }) => ScriptResponse
         | 
| 1058 645 |  | 
| 1059 | 
            -
            		/**
         | 
| 1060 | 
            -
             | 
| 1061 | 
            -
            		 */
         | 
| 1062 | 
            -
            		hire: (args: { name: string }) => ScriptResponse
         | 
| 1063 | 
            -
             | 
| 1064 | 
            -
            		/**
         | 
| 1065 | 
            -
            		 * **NULLSEC**
         | 
| 1066 | 
            -
            		 */
         | 
| 1067 | 
            -
            		manage: ((args: { command: "list" }) => {
         | 
| 1068 | 
            -
            			name: string
         | 
| 1069 | 
            -
            			is_admin: boolean
         | 
| 1070 | 
            -
            		}[] | ScriptFailure) & ((args: {
         | 
| 1071 | 
            -
            			command: "demote" | "promote"
         | 
| 1072 | 
            -
            			name: string
         | 
| 1073 | 
            -
            		} | {
         | 
| 1074 | 
            -
            			command: "fire"
         | 
| 1075 | 
            -
            			name: string
         | 
| 1076 | 
            -
            			confirm: true
         | 
| 1077 | 
            -
            		}) => ScriptResponse)
         | 
| 646 | 
            +
            		/** **NULLSEC** */ manage: {
         | 
| 647 | 
            +
            			(args: { command: "list" }): { name: string, is_admin: boolean }[] | ScriptFailure
         | 
| 1078 648 |  | 
| 1079 | 
            -
             | 
| 1080 | 
            -
             | 
| 1081 | 
            -
            		 */
         | 
| 1082 | 
            -
            		offers: (() => {
         | 
| 1083 | 
            -
            			offers: string[]
         | 
| 1084 | 
            -
            			msg: string
         | 
| 1085 | 
            -
            		} | ScriptSuccess<{
         | 
| 1086 | 
            -
            			msg: string
         | 
| 1087 | 
            -
            			current_corp: string | null
         | 
| 1088 | 
            -
            		}>) & ((args: { accept: string }) => ScriptResponse)
         | 
| 1089 | 
            -
             | 
| 1090 | 
            -
            		/**
         | 
| 1091 | 
            -
            		 * **NULLSEC**
         | 
| 1092 | 
            -
            		 */
         | 
| 1093 | 
            -
            		quit: (args: { confirm: true }) => ScriptResponse
         | 
| 1094 | 
            -
             | 
| 1095 | 
            -
            		/**
         | 
| 1096 | 
            -
            		 * **NULLSEC**
         | 
| 1097 | 
            -
            		 */
         | 
| 1098 | 
            -
            		top: () => CorpsTop | {
         | 
| 1099 | 
            -
            			top: CorpsTop
         | 
| 1100 | 
            -
            			active: {
         | 
| 1101 | 
            -
            				name: string
         | 
| 1102 | 
            -
            				worth: string
         | 
| 1103 | 
            -
            			}
         | 
| 649 | 
            +
            			(args: { command: "demote" | "promote", name: string } | { command: "fire", name: string, confirm: true }):
         | 
| 650 | 
            +
            				ScriptResponse
         | 
| 1104 651 | 
             
            		}
         | 
| 1105 | 
            -
            	}
         | 
| 1106 652 |  | 
| 1107 | 
            -
             | 
| 1108 | 
            -
             | 
| 1109 | 
            -
             | 
| 1110 | 
            -
             | 
| 1111 | 
            -
            		breach: (args: { confirm: true }) => ScriptResponse
         | 
| 1112 | 
            -
            	}
         | 
| 653 | 
            +
            		/** **NULLSEC** */ offers: {
         | 
| 654 | 
            +
            			(): { offers: string[], msg: string } | ScriptSuccess<{ msg: string, current_corp: string | null }>
         | 
| 655 | 
            +
            			(args: { accept: string }): ScriptResponse
         | 
| 656 | 
            +
            		}
         | 
| 1113 657 |  | 
| 1114 | 
            -
             | 
| 1115 | 
            -
            		/**
         | 
| 1116 | 
            -
            		 * **NULLSEC**
         | 
| 1117 | 
            -
            		 */
         | 
| 1118 | 
            -
            		me: () => string
         | 
| 658 | 
            +
            		/** **NULLSEC** */ quit: (args: { confirm: true }) => ScriptResponse
         | 
| 659 | 
            +
            		/** **NULLSEC** */ top: () => CorpsTop | { top: CorpsTop, active: { name: string, worth: string } }
         | 
| 1119 660 | 
             
            	}
         | 
| 1120 661 |  | 
| 662 | 
            +
            	sys: { /** **NULLSEC** */ breach: (args: { confirm: true }) => ScriptResponse }
         | 
| 663 | 
            +
            	trust: { /** **NULLSEC** */ me: () => string }
         | 
| 664 | 
            +
             | 
| 1121 665 | 
             
            	users: {
         | 
| 1122 | 
            -
            		/**
         | 
| 1123 | 
            -
             | 
| 1124 | 
            -
             | 
| 1125 | 
            -
             | 
| 1126 | 
            -
             | 
| 1127 | 
            -
             | 
| 1128 | 
            -
             | 
| 1129 | 
            -
             | 
| 1130 | 
            -
             | 
| 1131 | 
            -
             | 
| 1132 | 
            -
             | 
| 1133 | 
            -
             | 
| 1134 | 
            -
             | 
| 1135 | 
            -
            			 | 
| 1136 | 
            -
             | 
| 1137 | 
            -
             | 
| 1138 | 
            -
             | 
| 1139 | 
            -
             | 
| 1140 | 
            -
             | 
| 1141 | 
            -
             | 
| 1142 | 
            -
             | 
| 1143 | 
            -
             | 
| 1144 | 
            -
             | 
| 1145 | 
            -
             | 
| 1146 | 
            -
             | 
| 1147 | 
            -
             | 
| 1148 | 
            -
             | 
| 1149 | 
            -
             | 
| 1150 | 
            -
             | 
| 1151 | 
            -
             | 
| 1152 | 
            -
             | 
| 1153 | 
            -
             | 
| 1154 | 
            -
             | 
| 1155 | 
            -
             | 
| 1156 | 
            -
             | 
| 1157 | 
            -
             | 
| 1158 | 
            -
             | 
| 1159 | 
            -
             | 
| 1160 | 
            -
             | 
| 1161 | 
            -
            			 | 
| 1162 | 
            -
             | 
| 1163 | 
            -
             | 
| 1164 | 
            -
             | 
| 1165 | 
            -
             | 
| 1166 | 
            -
             | 
| 1167 | 
            -
             | 
| 1168 | 
            -
             | 
| 1169 | 
            -
             | 
| 1170 | 
            -
             | 
| 1171 | 
            -
             | 
| 666 | 
            +
            		/** **NULLSEC** */ config: {
         | 
| 667 | 
            +
            			(args: {
         | 
| 668 | 
            +
            				list: false
         | 
| 669 | 
            +
            				is_script?: true | null
         | 
| 670 | 
            +
            				avatar?: string | null
         | 
| 671 | 
            +
            				user_age?: boolean | null
         | 
| 672 | 
            +
            				account_age?: boolean | null
         | 
| 673 | 
            +
            				bio?: string | null
         | 
| 674 | 
            +
            				title?: string | null
         | 
| 675 | 
            +
            				pronouns?: string | null
         | 
| 676 | 
            +
            				corp?: boolean | null
         | 
| 677 | 
            +
            				alt_of?: string | null
         | 
| 678 | 
            +
            				badges?: string[] | null
         | 
| 679 | 
            +
            			}): ScriptResponse
         | 
| 680 | 
            +
             | 
| 681 | 
            +
            			(args: {
         | 
| 682 | 
            +
            				list: true
         | 
| 683 | 
            +
            				is_script?: true
         | 
| 684 | 
            +
            				avatar?: string | null
         | 
| 685 | 
            +
            				user_age?: boolean | null
         | 
| 686 | 
            +
            				account_age?: boolean | null
         | 
| 687 | 
            +
            				bio?: string | null
         | 
| 688 | 
            +
            				title?: string | null
         | 
| 689 | 
            +
            				pronouns?: string | null
         | 
| 690 | 
            +
            				corp?: boolean | null
         | 
| 691 | 
            +
            				alt_of?: string | null
         | 
| 692 | 
            +
            				badges?: string[] | null
         | 
| 693 | 
            +
            			}): {
         | 
| 694 | 
            +
            				avatar: string | null
         | 
| 695 | 
            +
            				user_age?: boolean
         | 
| 696 | 
            +
            				account_age?: boolean
         | 
| 697 | 
            +
            				bio: string | null
         | 
| 698 | 
            +
            				title: string | null
         | 
| 699 | 
            +
            				pronouns: string
         | 
| 700 | 
            +
            				corp?: boolean
         | 
| 701 | 
            +
            				alt_of: string | null
         | 
| 702 | 
            +
            				badges: string[]
         | 
| 703 | 
            +
            			}
         | 
| 704 | 
            +
             | 
| 705 | 
            +
            			(args: {
         | 
| 706 | 
            +
            				list: true
         | 
| 707 | 
            +
            				is_script: false
         | 
| 708 | 
            +
            				avatar?: string | null
         | 
| 709 | 
            +
            				user_age?: boolean | null
         | 
| 710 | 
            +
            				account_age?: boolean | null
         | 
| 711 | 
            +
            				bio?: string | null
         | 
| 712 | 
            +
            				title?: string | null
         | 
| 713 | 
            +
            				pronouns?: string | null
         | 
| 714 | 
            +
            				corp?: boolean | null
         | 
| 715 | 
            +
            				alt_of?: string | null
         | 
| 716 | 
            +
            				badges?: string[] | null
         | 
| 717 | 
            +
            			}): string
         | 
| 718 | 
            +
            		}
         | 
| 1172 719 | 
             
            	}
         | 
| 1173 720 | 
             
            }
         | 
| 1174 721 |  | 
| 1175 | 
            -
            type  | 
| 1176 | 
            -
            	 | 
| 1177 | 
            -
             | 
| 722 | 
            +
            type MongoTypeString = "minKey" | "double" | "string" | "object" | "array" | "binData" | "undefined" | "objectId" |
         | 
| 723 | 
            +
            	"bool" | "date" | "null" | "regex" | "dbPointer" | "javascript" | "symbol" | "int" | "timestamp" | "long" | "decimal" | "maxKey";
         | 
| 724 | 
            +
            type MongoTypeNumber = -1 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 16 | 17 | 18 | 19 | 127;
         | 
| 1178 725 |  | 
| 1179 | 
            -
            type  | 
| 1180 | 
            -
            	[key: string]: MongoCommandValue
         | 
| 1181 | 
            -
            } | null | undefined
         | 
| 726 | 
            +
            type MongoValue = string | number | boolean | Date | MongoValue[] | { [key: string]: MongoValue } | null
         | 
| 1182 727 |  | 
| 1183 | 
            -
            type  | 
| 1184 | 
            -
             | 
| 1185 | 
            -
            } & {
         | 
| 1186 | 
            -
            	_id?: Id
         | 
| 1187 | 
            -
            	$in?: MongoValue[]
         | 
| 1188 | 
            -
            }
         | 
| 728 | 
            +
            type MongoCommandValue = string | number | boolean | Date | MongoCommandValue[] | { [key: string]: MongoCommandValue } |
         | 
| 729 | 
            +
            null | undefined
         | 
| 1189 730 |  | 
| 1190 | 
            -
             | 
| 1191 | 
            -
             | 
| 1192 | 
            -
             | 
| 1193 | 
            -
             | 
| 1194 | 
            -
            	$ | 
| 1195 | 
            -
            	$ | 
| 1196 | 
            -
             | 
| 731 | 
            +
            /**
         | 
| 732 | 
            +
             * Currently unused
         | 
| 733 | 
            +
             */
         | 
| 734 | 
            +
            type MongoLogicalSelectors<T extends MongoValue = MongoValue> = {
         | 
| 735 | 
            +
            	$not: T | MongoComparisonSelectors<T> | MongoLogicalSelectors<T>
         | 
| 736 | 
            +
            	$nor: T[]
         | 
| 737 | 
            +
            	$or: T[]
         | 
| 738 | 
            +
            	$and: T[]
         | 
| 739 | 
            +
            }
         | 
| 1197 740 |  | 
| 1198 | 
            -
            type  | 
| 741 | 
            +
            type MongoArraySelectors<T extends Array<MongoValue> = Array<MongoValue>> = {
         | 
| 742 | 
            +
            	$all: T
         | 
| 743 | 
            +
            	$elemMatch: T
         | 
| 744 | 
            +
            	$size: number
         | 
| 745 | 
            +
            }
         | 
| 1199 746 |  | 
| 1200 | 
            -
            type  | 
| 1201 | 
            -
            	 | 
| 1202 | 
            -
            	 | 
| 747 | 
            +
            type MongoComparisonSelectors<T extends MongoValue = MongoValue> = {
         | 
| 748 | 
            +
            	$eq: T
         | 
| 749 | 
            +
            	$gt: T
         | 
| 750 | 
            +
            	$gte: T
         | 
| 751 | 
            +
            	$in: T[]
         | 
| 752 | 
            +
            	$lt: T
         | 
| 753 | 
            +
            	$lte: T
         | 
| 754 | 
            +
            	$ne: T
         | 
| 755 | 
            +
            	$nin: T[]
         | 
| 1203 756 | 
             
            }
         | 
| 1204 757 |  | 
| 1205 | 
            -
            type  | 
| 1206 | 
            -
            	 | 
| 758 | 
            +
            type MongoElementSelectors = {
         | 
| 759 | 
            +
            	$exists: boolean
         | 
| 760 | 
            +
            	$type: MongoTypeNumber | MongoTypeString
         | 
| 1207 761 | 
             
            }
         | 
| 1208 762 |  | 
| 763 | 
            +
            type MongoQuerySelector<T extends MongoValue = MongoValue> = Partial<T extends MongoValue[] ?
         | 
| 764 | 
            +
            	(MongoArraySelectors<T> & MongoElementSelectors & MongoComparisonSelectors<T>) :
         | 
| 765 | 
            +
            	(MongoElementSelectors & MongoComparisonSelectors<T>)>
         | 
| 766 | 
            +
             | 
| 767 | 
            +
            type Query = { [key: string]: MongoValue | Query } & { _id?: Id, $in?: MongoValue[] }
         | 
| 768 | 
            +
            type Projection = Record<string, boolean | 0 | 1>
         | 
| 769 | 
            +
             | 
| 770 | 
            +
            type MongoCommand = MongoCommandValue & Partial<
         | 
| 771 | 
            +
            	{ $set: Record<string, MongoCommandValue>, $push: Record<string, MongoCommandValue>, $unset: Record<string, ""> }
         | 
| 772 | 
            +
            >
         | 
| 773 | 
            +
             | 
| 774 | 
            +
            type Id = string | number | boolean | Date | Record<string, MongoValue>
         | 
| 775 | 
            +
            type MongoDocument = { [key: string]: MongoValue, _id: Id }
         | 
| 776 | 
            +
            type SortOrder = { [key: string]: 1 | -1 | SortOrder }
         | 
| 777 | 
            +
             | 
| 1209 778 | 
             
            type Cursor = {
         | 
| 1210 | 
            -
            	/**
         | 
| 1211 | 
            -
             | 
| 1212 | 
            -
             | 
| 1213 | 
            -
             | 
| 1214 | 
            -
             | 
| 1215 | 
            -
            	/**
         | 
| 1216 | 
            -
            	 * Returns an array of documents that satisfy the query.
         | 
| 1217 | 
            -
            	 */
         | 
| 1218 | 
            -
            	array: () => MongoDocument[]
         | 
| 1219 | 
            -
             | 
| 1220 | 
            -
            	/**
         | 
| 1221 | 
            -
            	 * Returns the number of documents that match the query.
         | 
| 1222 | 
            -
            	 */
         | 
| 1223 | 
            -
            	count: () => number
         | 
| 1224 | 
            -
             | 
| 1225 | 
            -
            	/**
         | 
| 1226 | 
            -
            	 * Returns the first document that satisfies the query.
         | 
| 1227 | 
            -
            	 * Also makes cursor unusable.
         | 
| 1228 | 
            -
            	 */
         | 
| 779 | 
            +
            	/** Returns the first document that satisfies the query. */ first: () => MongoDocument | null
         | 
| 780 | 
            +
            	/** Returns an array of documents that satisfy the query. */ array: () => MongoDocument[]
         | 
| 781 | 
            +
            	/** Returns the number of documents that match the query. */ count: () => number
         | 
| 782 | 
            +
             | 
| 783 | 
            +
            	/** Returns the first document that satisfies the query. Also makes cursor unusable. */
         | 
| 1229 784 | 
             
            	first_and_close: () => MongoDocument
         | 
| 1230 785 |  | 
| 1231 | 
            -
            	/**
         | 
| 1232 | 
            -
            	 * Returns an array of documents that satisfy the query.
         | 
| 1233 | 
            -
            	 * Also makes cursor unusable.
         | 
| 1234 | 
            -
            	 */
         | 
| 786 | 
            +
            	/** Returns an array of documents that satisfy the query. Also makes cursor unusable. */
         | 
| 1235 787 | 
             
            	array_and_close: () => MongoDocument[]
         | 
| 1236 788 |  | 
| 1237 | 
            -
            	/**
         | 
| 1238 | 
            -
            	 * Returns the number of documents that match the query.
         | 
| 1239 | 
            -
            	 * Also makes cursor unusable.
         | 
| 1240 | 
            -
            	 */
         | 
| 789 | 
            +
            	/** Returns the number of documents that match the query. Also makes cursor unusable. */
         | 
| 1241 790 | 
             
            	count_and_close: () => number
         | 
| 1242 791 |  | 
| 1243 | 
            -
            	/**
         | 
| 1244 | 
            -
             | 
| 1245 | 
            -
             | 
| 1246 | 
            -
             | 
| 1247 | 
            -
             | 
| 1248 | 
            -
             | 
| 1249 | 
            -
             | 
| 1250 | 
            -
            	/**
         | 
| 1251 | 
            -
            	 * Returns a new cursor with documents sorted as specified.
         | 
| 1252 | 
            -
            	 * A value of 1 sorts the property ascending, and -1 descending.
         | 
| 1253 | 
            -
            	 *
         | 
| 1254 | 
            -
            	 * @param order the way the documents are to be sorted
         | 
| 1255 | 
            -
            	 */
         | 
| 792 | 
            +
            	/** Run `callback` on each document that satisfied the query. */
         | 
| 793 | 
            +
            	each: (callback: (document: MongoDocument) => void) => null
         | 
| 794 | 
            +
             | 
| 795 | 
            +
            	/** Returns a new cursor with documents sorted as specified.
         | 
| 796 | 
            +
            	  * A value of 1 sorts the property ascending, and -1 descending.
         | 
| 797 | 
            +
            	  * @param order The way the documents are to be sorted. */
         | 
| 1256 798 | 
             
            	sort: (order?: SortOrder) => Cursor
         | 
| 1257 799 |  | 
| 1258 | 
            -
            	/**
         | 
| 1259 | 
            -
             | 
| 1260 | 
            -
            	 *
         | 
| 1261 | 
            -
            	 * @param count number of documents to skip
         | 
| 1262 | 
            -
            	 */
         | 
| 800 | 
            +
            	/** Returns a new cursor without the first number of documents.
         | 
| 801 | 
            +
            	  * @param count Number of documents to skip. */
         | 
| 1263 802 | 
             
            	skip: (count: number) => Cursor
         | 
| 1264 803 |  | 
| 1265 | 
            -
            	/**
         | 
| 1266 | 
            -
             | 
| 1267 | 
            -
            	 *
         | 
| 1268 | 
            -
            	 * @param count number of documents
         | 
| 1269 | 
            -
            	 */
         | 
| 804 | 
            +
            	/** Returns a new cursor limited to a number of documents as specified.
         | 
| 805 | 
            +
            	  * @param count Number of documents. */
         | 
| 1270 806 | 
             
            	limit: (count: number) => Cursor
         | 
| 1271 807 |  | 
| 1272 | 
            -
            	/**
         | 
| 1273 | 
            -
             | 
| 1274 | 
            -
            	 */
         | 
| 1275 | 
            -
            	distinct: ((key: string) => MongoValue[]) & ((key: "_id") => Id[])
         | 
| 1276 | 
            -
             | 
| 1277 | 
            -
            	/**
         | 
| 1278 | 
            -
            	 * Makes cursor unusable.
         | 
| 1279 | 
            -
            	 */
         | 
| 1280 | 
            -
            	close: () => null
         | 
| 1281 | 
            -
             | 
| 808 | 
            +
            	/** @param key The key of the documents. */ distinct: ((key: string) => MongoValue[]) & ((key: "_id") => Id[])
         | 
| 809 | 
            +
            	/** Make cursor unusable. */ close: () => null
         | 
| 1282 810 | 
             
            	NumberLong: (number: number) => number
         | 
| 1283 811 | 
             
            	ObjectId: () => any
         | 
| 1284 812 | 
             
            }
         | 
| 1285 813 |  | 
| 1286 | 
            -
            type  | 
| 1287 | 
            -
            	/**
         | 
| 1288 | 
            -
             | 
| 1289 | 
            -
             | 
| 1290 | 
            -
            	caller:  | 
| 1291 | 
            -
             | 
| 1292 | 
            -
            	/**
         | 
| 1293 | 
            -
             | 
| 1294 | 
            -
             | 
| 1295 | 
            -
            	 | 
| 1296 | 
            -
             | 
| 1297 | 
            -
            	/**
         | 
| 1298 | 
            -
            	 * the number of columns in the caller’s terminal, if reported by the client
         | 
| 1299 | 
            -
            	 */
         | 
| 1300 | 
            -
            	cols: number
         | 
| 1301 | 
            -
             | 
| 1302 | 
            -
            	/**
         | 
| 1303 | 
            -
            	 * the number of rows in the caller’s terminal, if reported by the client
         | 
| 1304 | 
            -
            	 */
         | 
| 1305 | 
            -
            	rows: number
         | 
| 1306 | 
            -
             | 
| 1307 | 
            -
            	/**
         | 
| 1308 | 
            -
            	 * The name of the script that directly called this script, or null if called on the command line or as a scriptor
         | 
| 1309 | 
            -
            	 */
         | 
| 1310 | 
            -
            	calling_script: null
         | 
| 814 | 
            +
            type CliContext = {
         | 
| 815 | 
            +
            	/** The name of the user who is calling the script. */ caller: string
         | 
| 816 | 
            +
            	/** The name of this script. */ this_script: string
         | 
| 817 | 
            +
            	/** The number of columns in the caller’s terminal. */ cols: number
         | 
| 818 | 
            +
            	/** The number of rows in the caller’s terminal. */ rows: number
         | 
| 819 | 
            +
             | 
| 820 | 
            +
            	/** The name of the script that directly called this script, or null if called on the command line or as a
         | 
| 821 | 
            +
            	  * scriptor. */ calling_script: null
         | 
| 822 | 
            +
            	is_scriptor?: undefined
         | 
| 823 | 
            +
            	is_brain?: undefined
         | 
| 1311 824 | 
             
            }
         | 
| 1312 825 |  | 
| 1313 | 
            -
            type SubscriptContext = Replace< | 
| 1314 | 
            -
            	/**
         | 
| 1315 | 
            -
             | 
| 1316 | 
            -
            	 */
         | 
| 826 | 
            +
            type SubscriptContext = Replace<CliContext, {
         | 
| 827 | 
            +
            	/** The name of the script that directly called this script, or null if called on the command line or as a scriptor.
         | 
| 828 | 
            +
            	  */
         | 
| 1317 829 | 
             
            	calling_script: string
         | 
| 1318 830 | 
             
            }>
         | 
| 1319 831 |  | 
| 1320 | 
            -
            type ScriptorContext = | 
| 1321 | 
            -
            	/**
         | 
| 1322 | 
            -
            	 * true if the script is being run as a scriptor, otherwise falsey (not present currently, but I wouldn’t rely on that)
         | 
| 1323 | 
            -
            	 */
         | 
| 1324 | 
            -
            	is_scriptor: true
         | 
| 1325 | 
            -
            }
         | 
| 832 | 
            +
            type ScriptorContext =
         | 
| 833 | 
            +
            	Replace<CliContext, { /** Whether the script is being run as a scriptor. */ is_scriptor: true }>
         | 
| 1326 834 |  | 
| 1327 | 
            -
            type BrainContext = | 
| 1328 | 
            -
            	/**
         | 
| 1329 | 
            -
            	 * true if the script is being run via a bot brain
         | 
| 1330 | 
            -
            	 */
         | 
| 1331 | 
            -
            	is_brain: true
         | 
| 1332 | 
            -
            }
         | 
| 835 | 
            +
            type BrainContext =
         | 
| 836 | 
            +
            	Replace<CliContext, { /** Whether the script is being run via a bot brain. */ is_brain: true }>
         | 
| 1333 837 |  | 
| 1334 | 
            -
            type Context =  | 
| 838 | 
            +
            type Context = CliContext | SubscriptContext | ScriptorContext | BrainContext
         | 
| 1335 839 |  | 
| 1336 | 
            -
            /**
         | 
| 1337 | 
            -
             * Subscript space that can call FULLSEC scripts.
         | 
| 1338 | 
            -
             */
         | 
| 1339 | 
            -
            declare const $fs: Fullsec
         | 
| 840 | 
            +
            /** Subscript space that can call FULLSEC scripts. */ declare const $fs: Fullsec
         | 
| 1340 841 |  | 
| 1341 | 
            -
            /**
         | 
| 1342 | 
            -
             * Subscript space that can call HIGHSEC and above scripts.
         | 
| 1343 | 
            -
             * Makes your script HIGHSEC (overrides FULLSEC).
         | 
| 1344 | 
            -
             */
         | 
| 842 | 
            +
            /** Subscript space that can call HIGHSEC and above scripts. Makes your script HIGHSEC (overrides FULLSEC). */
         | 
| 1345 843 | 
             
            declare const $hs: Highsec
         | 
| 1346 844 |  | 
| 1347 | 
            -
            /**
         | 
| 1348 | 
            -
             | 
| 1349 | 
            -
             * Makes your script MIDSEC (overrides higher security levels).
         | 
| 1350 | 
            -
             */
         | 
| 845 | 
            +
            /** Subscript space that can call MIDSEC and above scripts. Makes your script MIDSEC (overrides higher security levels).
         | 
| 846 | 
            +
              */
         | 
| 1351 847 | 
             
            declare const $ms: Midsec
         | 
| 1352 848 |  | 
| 1353 | 
            -
            /**
         | 
| 1354 | 
            -
             | 
| 1355 | 
            -
             * Makes your script LOWSEC (overrides higher security levels).
         | 
| 1356 | 
            -
             */
         | 
| 849 | 
            +
            /** Subscript space that can call LOWSEC and above scripts. Makes your script LOWSEC (overrides higher security levels).
         | 
| 850 | 
            +
              */
         | 
| 1357 851 | 
             
            declare const $ls: Lowsec
         | 
| 1358 852 |  | 
| 1359 | 
            -
            /**
         | 
| 1360 | 
            -
             * Subscript space that can call any script.
         | 
| 1361 | 
            -
             * Makes your script NULLSEC (overrides higher security levels).
         | 
| 1362 | 
            -
             */
         | 
| 853 | 
            +
            /** Subscript space that can call any script. Makes your script NULLSEC (overrides higher security levels). */
         | 
| 1363 854 | 
             
            declare const $ns: Nullsec
         | 
| 1364 855 |  | 
| 1365 | 
            -
            /**
         | 
| 1366 | 
            -
             * Subscript space that can call FULLSEC scripts.
         | 
| 1367 | 
            -
             */
         | 
| 1368 | 
            -
            declare const $4s: typeof $fs
         | 
| 856 | 
            +
            /** Subscript space that can call FULLSEC scripts. */ declare const $4s: typeof $fs
         | 
| 1369 857 |  | 
| 1370 | 
            -
            /**
         | 
| 1371 | 
            -
             * Subscript space that can call HIGHSEC and above scripts.
         | 
| 1372 | 
            -
             * Makes your script HIGHSEC (overrides FULLSEC).
         | 
| 1373 | 
            -
             */
         | 
| 858 | 
            +
            /** Subscript space that can call HIGHSEC and above scripts. Makes your script HIGHSEC (overrides FULLSEC). */
         | 
| 1374 859 | 
             
            declare const $3s: typeof $hs
         | 
| 1375 860 |  | 
| 1376 | 
            -
            /**
         | 
| 1377 | 
            -
             | 
| 1378 | 
            -
             * Makes your script MIDSEC (overrides higher security levels).
         | 
| 1379 | 
            -
             */
         | 
| 861 | 
            +
            /** Subscript space that can call MIDSEC and above scripts. Makes your script MIDSEC (overrides higher security levels).
         | 
| 862 | 
            +
              */
         | 
| 1380 863 | 
             
            declare const $2s: typeof $ms
         | 
| 1381 864 |  | 
| 1382 | 
            -
            /**
         | 
| 1383 | 
            -
             | 
| 1384 | 
            -
             * Makes your script LOWSEC (overrides higher security levels).
         | 
| 1385 | 
            -
             */
         | 
| 865 | 
            +
            /** Subscript space that can call LOWSEC and above scripts. Makes your script LOWSEC (overrides higher security levels).
         | 
| 866 | 
            +
              */
         | 
| 1386 867 | 
             
            declare const $1s: typeof $ls
         | 
| 1387 868 |  | 
| 1388 | 
            -
            /**
         | 
| 1389 | 
            -
             * Subscript space that can call any script.
         | 
| 1390 | 
            -
             * Makes your script NULLSEC (overrides higher security levels).
         | 
| 1391 | 
            -
             */
         | 
| 869 | 
            +
            /** Subscript space that can call any script. Makes your script NULLSEC (overrides higher security levels). */
         | 
| 1392 870 | 
             
            declare const $0s: typeof $ns
         | 
| 1393 871 |  | 
| 1394 | 
            -
            /**
         | 
| 1395 | 
            -
             | 
| 1396 | 
            -
             | 
| 1397 | 
            -
              | 
| 1398 | 
            -
             | 
| 1399 | 
            -
             | 
| 1400 | 
            -
             | 
| 1401 | 
            -
             * 	$s.foo.bar() // will be converted to #ms.foo.bar()
         | 
| 1402 | 
            -
             * }
         | 
| 1403 | 
            -
             * ```
         | 
| 1404 | 
            -
             */
         | 
| 872 | 
            +
            /** Subscript space that can call any script. Uses seclevel provided in comment before script (defaults to NULLSEC)
         | 
| 873 | 
            +
              * @example
         | 
| 874 | 
            +
              * // @ seclevel MIDSEC
         | 
| 875 | 
            +
              * // remove the space betwen "@" and "s", there's only a space because otherwise vscode breaks
         | 
| 876 | 
            +
              * export function script() {
         | 
| 877 | 
            +
              * 	$s.foo.bar() // will be converted to #ms.foo.bar()
         | 
| 878 | 
            +
              * } */
         | 
| 1405 879 | 
             
            declare const $s: Nullsec
         | 
| 1406 880 |  | 
| 881 | 
            +
            type ObjectId = { $oid: string }
         | 
| 882 | 
            +
             | 
| 1407 883 | 
             
            declare const $db: {
         | 
| 1408 | 
            -
            	/**
         | 
| 1409 | 
            -
             | 
| 1410 | 
            -
            	 *
         | 
| 1411 | 
            -
            	 * Inserts a document or documents into a collection.
         | 
| 1412 | 
            -
            	 * @param documents A document or array of documents to insert into the collection.
         | 
| 1413 | 
            -
            	 */
         | 
| 884 | 
            +
            	/** Insert a document or documents into a collection.
         | 
| 885 | 
            +
            	  * @param documents A document or array of documents to insert into the collection. */
         | 
| 1414 886 | 
             
            	i: (documents: object | object[]) => {
         | 
| 1415 887 | 
             
            		ok: 1
         | 
| 1416 888 | 
             
            		n: number
         | 
| 1417 | 
            -
            		opTime: {
         | 
| 1418 | 
            -
            			ts: "Undefined Conversion"
         | 
| 1419 | 
            -
            			t: number
         | 
| 1420 | 
            -
            		}
         | 
| 889 | 
            +
            		opTime: { ts: "Undefined Conversion", t: number }
         | 
| 1421 890 | 
             
            		electionId: "Undefined Conversion"
         | 
| 1422 891 | 
             
            		operationTime: "Undefined Conversion"
         | 
| 1423 892 | 
             
            		$clusterTime: {
         | 
| 1424 893 | 
             
            			clusterTime: "Undefined Conversion"
         | 
| 1425 | 
            -
            			signature: {
         | 
| 1426 | 
            -
            				hash: "Undefined Conversion"
         | 
| 1427 | 
            -
            				keyId: "Undefined Conversion"
         | 
| 1428 | 
            -
            			}
         | 
| 894 | 
            +
            			signature: { hash: "Undefined Conversion", keyId: "Undefined Conversion" }
         | 
| 1429 895 | 
             
            		}
         | 
| 1430 896 | 
             
            	}
         | 
| 1431 897 |  | 
| 1432 | 
            -
            	/**
         | 
| 1433 | 
            -
             | 
| 1434 | 
            -
            	 *
         | 
| 1435 | 
            -
            	 * Removes documents from a collection.
         | 
| 1436 | 
            -
            	 * @param query Specifies deletion criteria using query operators.
         | 
| 1437 | 
            -
            	 */
         | 
| 898 | 
            +
            	/** Remove documents from a collection.
         | 
| 899 | 
            +
            	  * @param query Specifies deletion criteria using query operators. */
         | 
| 1438 900 | 
             
            	r: (query: Query) => {
         | 
| 1439 901 | 
             
            		ok: 0 | 1
         | 
| 1440 902 | 
             
            		n: number
         | 
| 1441 | 
            -
            		opTime: {
         | 
| 1442 | 
            -
            			ts: "Undefined Conversion"
         | 
| 1443 | 
            -
            			t: number
         | 
| 1444 | 
            -
            		}
         | 
| 903 | 
            +
            		opTime: { ts: "Undefined Conversion", t: number }
         | 
| 1445 904 | 
             
            		electionId: "Undefined Conversion"
         | 
| 1446 905 | 
             
            		operationTime: "Undefined Conversion"
         | 
| 1447 906 | 
             
            		$clusterTime: {
         | 
| 1448 907 | 
             
            			clusterTime: "Undefined Conversion"
         | 
| 1449 | 
            -
            			signature: {
         | 
| 1450 | 
            -
            				hash: "Undefined Conversion"
         | 
| 1451 | 
            -
            				keyId: "Undefined Conversion"
         | 
| 1452 | 
            -
            			}
         | 
| 908 | 
            +
            			signature: { hash: "Undefined Conversion", keyId: "Undefined Conversion" }
         | 
| 1453 909 | 
             
            		}
         | 
| 1454 910 | 
             
            	}
         | 
| 1455 911 |  | 
| 1456 | 
            -
            	/**
         | 
| 1457 | 
            -
             | 
| 1458 | 
            -
             | 
| 1459 | 
            -
            	 * Selects documents in a collection or view and returns a cursor to the selected documents.
         | 
| 1460 | 
            -
            	 * @param query Specifies deletion criteria using query operators.
         | 
| 1461 | 
            -
            	 * @param projection Specifies the fields to return in the documents that match the query filter.
         | 
| 1462 | 
            -
            	 */
         | 
| 912 | 
            +
            	/** Find documents in a collection or view and returns a cursor to the selected documents.
         | 
| 913 | 
            +
            	  * @param query Specifies deletion criteria using query operators.
         | 
| 914 | 
            +
            	  * @param projection Specifies the fields to return in the documents that match the query filter. */
         | 
| 1463 915 | 
             
            	f: (query?: Query, projection?: Projection) => Cursor
         | 
| 1464 916 |  | 
| 1465 | 
            -
            	/**
         | 
| 1466 | 
            -
             | 
| 1467 | 
            -
             | 
| 1468 | 
            -
             | 
| 1469 | 
            -
            	 * @param query Specifies deletion criteria using query operators.
         | 
| 1470 | 
            -
            	 * @param command The modifications to apply. {@link https://docs.mongodb.com/manual/reference/method/db.collection.update/#parameters}
         | 
| 1471 | 
            -
            	 */
         | 
| 917 | 
            +
            	/** Update an existing documents in a collection.
         | 
| 918 | 
            +
            	  * @param query Specifies deletion criteria using query operators.
         | 
| 919 | 
            +
            	  * @param command The modifications to apply.
         | 
| 920 | 
            +
            	  * {@link https://docs.mongodb.com/manual/reference/method/db.collection.update/#parameters} */
         | 
| 1472 921 | 
             
            	u: (query: Query | Query[], command: MongoCommand) => {
         | 
| 1473 922 | 
             
            		ok: 0 | 1
         | 
| 1474 923 | 
             
            		nModified: number
         | 
| 1475 924 | 
             
            		n: number
         | 
| 1476 | 
            -
            		opTime: {
         | 
| 1477 | 
            -
            			ts: "Undefined Conversion"
         | 
| 1478 | 
            -
            			t: number
         | 
| 1479 | 
            -
            		}
         | 
| 925 | 
            +
            		opTime: { ts: "Undefined Conversion", t: number }
         | 
| 1480 926 | 
             
            		electionId: "Undefined Conversion"
         | 
| 1481 927 | 
             
            		operationTime: "Undefined Conversion"
         | 
| 1482 928 | 
             
            		$clusterTime: {
         | 
| 1483 929 | 
             
            			clusterTime: "Undefined Conversion"
         | 
| 1484 | 
            -
            			signature: {
         | 
| 1485 | 
            -
            				hash: "Undefined Conversion"
         | 
| 1486 | 
            -
            				keyId: "Undefined Conversion"
         | 
| 1487 | 
            -
            			}
         | 
| 930 | 
            +
            			signature: { hash: "Undefined Conversion", keyId: "Undefined Conversion" }
         | 
| 1488 931 | 
             
            		}
         | 
| 1489 932 | 
             
            	}
         | 
| 1490 933 |  | 
| 1491 | 
            -
            	/**
         | 
| 1492 | 
            -
             | 
| 1493 | 
            -
             | 
| 1494 | 
            -
             | 
| 1495 | 
            -
            	 * @param query Specifies deletion criteria using query operators.
         | 
| 1496 | 
            -
            	 * @param command The modifications to apply. {@link https://docs.mongodb.com/manual/reference/method/db.collection.update/#parameters}
         | 
| 1497 | 
            -
            	 */
         | 
| 934 | 
            +
            	/** Updates one document within the collection based on the filter.
         | 
| 935 | 
            +
            	  * @param query Specifies deletion criteria using query operators.
         | 
| 936 | 
            +
            	  * @param command The modifications to apply.
         | 
| 937 | 
            +
            	  * {@link https://docs.mongodb.com/manual/reference/method/db.collection.update/#parameters} */
         | 
| 1498 938 | 
             
            	u1: (query: Query | Query[], command: MongoCommand) => {
         | 
| 1499 939 | 
             
            		ok: 0 | 1
         | 
| 1500 940 | 
             
            		nModified: number
         | 
| @@ -1514,144 +954,120 @@ declare const $db: { | |
| 1514 954 | 
             
            		}
         | 
| 1515 955 | 
             
            	}
         | 
| 1516 956 |  | 
| 1517 | 
            -
            	/**
         | 
| 1518 | 
            -
             | 
| 1519 | 
            -
             | 
| 1520 | 
            -
             | 
| 1521 | 
            -
             | 
| 1522 | 
            -
             | 
| 1523 | 
            -
             | 
| 1524 | 
            -
            	 */
         | 
| 957 | 
            +
            	/** Update or insert or insert document.
         | 
| 958 | 
            +
            	  * Same as Update, but if no documents match the query, one document will be inserted based on the properties in
         | 
| 959 | 
            +
            	  * both the query and the command.
         | 
| 960 | 
            +
            	  * The `$setOnInsert` operator is useful to set defaults.
         | 
| 961 | 
            +
            	  * @param query Specifies deletion criteria using query operators.
         | 
| 962 | 
            +
            	  * @param command The modifications to apply.
         | 
| 963 | 
            +
            	  * {@link https://docs.mongodb.com/manual/reference/method/db.collection.update/#parameters} */
         | 
| 1525 964 | 
             
            	us: (query: Query | Query[], command: MongoCommand) => {
         | 
| 1526 965 | 
             
            		ok: 0 | 1
         | 
| 1527 966 | 
             
            		nModified: number
         | 
| 1528 967 | 
             
            		n: number
         | 
| 1529 | 
            -
            		opTime: {
         | 
| 1530 | 
            -
            			ts: "Undefined Conversion"
         | 
| 1531 | 
            -
            			t: number
         | 
| 1532 | 
            -
            		}
         | 
| 968 | 
            +
            		opTime: { ts: "Undefined Conversion", t: number }
         | 
| 1533 969 | 
             
            		electionId: "Undefined Conversion"
         | 
| 1534 970 | 
             
            		operationTime: "Undefined Conversion"
         | 
| 1535 971 | 
             
            		$clusterTime: {
         | 
| 1536 972 | 
             
            			clusterTime: "Undefined Conversion"
         | 
| 1537 | 
            -
            			signature: {
         | 
| 1538 | 
            -
            				hash: "Undefined Conversion"
         | 
| 1539 | 
            -
            				keyId: "Undefined Conversion"
         | 
| 1540 | 
            -
            			}
         | 
| 973 | 
            +
            			signature: { hash: "Undefined Conversion", keyId: "Undefined Conversion" }
         | 
| 1541 974 | 
             
            		}
         | 
| 1542 975 | 
             
            	}
         | 
| 976 | 
            +
             | 
| 977 | 
            +
            	ObjectId: () => ObjectId
         | 
| 1543 978 | 
             
            }
         | 
| 1544 979 |  | 
| 1545 | 
            -
            /**
         | 
| 1546 | 
            -
             | 
| 1547 | 
            -
              | 
| 1548 | 
            -
             | 
| 1549 | 
            -
             | 
| 1550 | 
            -
             | 
| 1551 | 
            -
             | 
| 1552 | 
            -
             | 
| 1553 | 
            -
             | 
| 1554 | 
            -
              | 
| 1555 | 
            -
             | 
| 1556 | 
            -
             */
         | 
| 980 | 
            +
            /** Debug Log.
         | 
| 981 | 
            +
              *
         | 
| 982 | 
            +
              * If `$D()` is called in a script you own, the `return` value of the top level script is suppressed and instead an
         | 
| 983 | 
            +
              * array of every `$D()`’d entry is printed.
         | 
| 984 | 
            +
              * This lets you use `$D()` like `console.log()`.
         | 
| 985 | 
            +
              *
         | 
| 986 | 
            +
              * `$D()` in scripts not owned by you are not shown but the `return` value always is.
         | 
| 987 | 
            +
              *
         | 
| 988 | 
            +
              * `$D()` returns the first argument so `$D("Hello, World!") evaluates to `"Hello, World!"` as if the `$D` text wasn't
         | 
| 989 | 
            +
              * there.
         | 
| 990 | 
            +
              *
         | 
| 991 | 
            +
              * `$D()`’d items are returned even if the script times out or errors. */
         | 
| 1557 992 | 
             
            declare function $D<T>(args: T): T
         | 
| 1558 993 |  | 
| 1559 | 
            -
            /**
         | 
| 1560 | 
            -
             | 
| 1561 | 
            -
              | 
| 1562 | 
            -
             | 
| 1563 | 
            -
              | 
| 1564 | 
            -
             | 
| 1565 | 
            -
              | 
| 1566 | 
            -
             | 
| 1567 | 
            -
             | 
| 1568 | 
            -
             | 
| 1569 | 
            -
              | 
| 1570 | 
            -
             * // all code here will only run once
         | 
| 1571 | 
            -
             */
         | 
| 994 | 
            +
            /** Function Multi-Call Lock.
         | 
| 995 | 
            +
              *
         | 
| 996 | 
            +
              * This is used by escrow to ensure that it is only used once in script execution.
         | 
| 997 | 
            +
              *
         | 
| 998 | 
            +
              * The first time (per-script) `$FMCL` is encountered, it returns `undefined`, every other time it `return`s `true`.
         | 
| 999 | 
            +
              *
         | 
| 1000 | 
            +
              * @example
         | 
| 1001 | 
            +
              * if ($FMCL)
         | 
| 1002 | 
            +
              * 	return { ok: false, msg: "This script can only be used once per script execution." }
         | 
| 1003 | 
            +
              *
         | 
| 1004 | 
            +
              * // all code here will only run once */
         | 
| 1572 1005 | 
             
            declare const $FMCL: undefined | true
         | 
| 1573 1006 |  | 
| 1574 | 
            -
            /**
         | 
| 1575 | 
            -
             | 
| 1576 | 
            -
              | 
| 1577 | 
            -
             | 
| 1578 | 
            -
             | 
| 1579 | 
            -
              | 
| 1580 | 
            -
             | 
| 1581 | 
            -
              | 
| 1582 | 
            -
             | 
| 1583 | 
            -
              | 
| 1584 | 
            -
             | 
| 1585 | 
            -
             | 
| 1586 | 
            -
             | 
| 1587 | 
            -
             * This contains a JS timestamp (not Date) set immediately before your code begins running.
         | 
| 1588 | 
            -
             *
         | 
| 1589 | 
            -
             * @example
         | 
| 1590 | 
            -
             * Date.now() - _START // milliseconds left of run time
         | 
| 1591 | 
            -
             */
         | 
| 1007 | 
            +
            /** Per-script mutable "global" persistent object that is discarded at the end of top level script execution.
         | 
| 1008 | 
            +
              *
         | 
| 1009 | 
            +
              * `$G` persists between script calls until the end of the main script run making it useful for caching db entries when
         | 
| 1010 | 
            +
              * your script is a subscript.
         | 
| 1011 | 
            +
              * @example
         | 
| 1012 | 
            +
              * if (!$G.dbCache)
         | 
| 1013 | 
            +
              * 	$G.dbCache = $db.f({ whatever: true }).first() */
         | 
| 1014 | 
            +
            declare const $G: Record<string | symbol, any>
         | 
| 1015 | 
            +
             | 
| 1016 | 
            +
            /** This contains a JS timestamp (not Date) set immediately before your code begins running.
         | 
| 1017 | 
            +
              * @example
         | 
| 1018 | 
            +
              * $D(Date.now() - _START) // milliseconds left of run time
         | 
| 1019 | 
            +
              */
         | 
| 1592 1020 | 
             
            declare const _START: number
         | 
| 1593 1021 |  | 
| 1594 | 
            -
            /**
         | 
| 1595 | 
            -
             | 
| 1596 | 
            -
              | 
| 1597 | 
            -
             * @example
         | 
| 1598 | 
            -
             * Date.now() - _ST // milliseconds left of run time
         | 
| 1599 | 
            -
             */
         | 
| 1022 | 
            +
            /** This contains a JS timestamp (not Date) set immediately before your code begins running.
         | 
| 1023 | 
            +
              * @example
         | 
| 1024 | 
            +
              * $D(Date.now() - _ST) // milliseconds left of run time */
         | 
| 1600 1025 | 
             
            declare const _ST: typeof _START
         | 
| 1601 1026 |  | 
| 1602 | 
            -
            /**
         | 
| 1603 | 
            -
             * JavaScript timestamp for the end of the script run (`_START + _TIMEOUT`).
         | 
| 1604 | 
            -
             */
         | 
| 1605 | 
            -
            declare const _END: number
         | 
| 1027 | 
            +
            /** JavaScript timestamp for the end of the script run (`_START + _TIMEOUT`). */ declare const _END: number
         | 
| 1606 1028 |  | 
| 1607 | 
            -
            /**
         | 
| 1608 | 
            -
             * The number of milliseconds a script can run for.
         | 
| 1609 | 
            -
             * Normally `5000` though it has been known to change.
         | 
| 1610 | 
            -
             */
         | 
| 1029 | 
            +
            /** The number of milliseconds a script can run for. Normally `5000` though it has been known to change. */
         | 
| 1611 1030 | 
             
            declare const _TIMEOUT: number
         | 
| 1612 1031 |  | 
| 1613 | 
            -
            /**
         | 
| 1614 | 
            -
             * The number of milliseconds a script can run for.
         | 
| 1615 | 
            -
             * Normally `5000` though it has been known to change.
         | 
| 1616 | 
            -
             */
         | 
| 1032 | 
            +
            /** The number of milliseconds a script can run for. Normally `5000` though it has been known to change. */
         | 
| 1617 1033 | 
             
            declare const _TO: typeof _TIMEOUT
         | 
| 1618 1034 |  | 
| 1619 | 
            -
            /** The source code of this script as a string. */
         | 
| 1620 | 
            -
            declare const  | 
| 1621 | 
            -
             | 
| 1622 | 
            -
            /** A unix timestamp of the date this script was built. */
         | 
| 1623 | 
            -
            declare const _BUILD_DATE: number
         | 
| 1035 | 
            +
            /** The source code of this script as a string. */ declare const _SOURCE: string
         | 
| 1036 | 
            +
            /** A unix timestamp of the date this script was built. */ declare const _BUILD_DATE: number
         | 
| 1624 1037 |  | 
| 1625 | 
            -
            /**
         | 
| 1626 | 
            -
             | 
| 1627 | 
            -
              | 
| 1628 | 
            -
             | 
| 1629 | 
            -
              | 
| 1630 | 
            -
             * In rare cases where it's not known at build time, it's `"UNKNOWN"`.
         | 
| 1631 | 
            -
             */
         | 
| 1038 | 
            +
            /** The user this script has been uploaded to.
         | 
| 1039 | 
            +
              *
         | 
| 1040 | 
            +
              * Shorter alternative to `context.this_script.split(".")[0].
         | 
| 1041 | 
            +
              *
         | 
| 1042 | 
            +
              * In rare cases where it's not known at build time, it's `"UNKNOWN"`. */
         | 
| 1632 1043 | 
             
            declare const _SCRIPT_USER: string
         | 
| 1633 1044 |  | 
| 1634 | 
            -
            /**
         | 
| 1635 | 
            -
             | 
| 1636 | 
            -
              | 
| 1637 | 
            -
             | 
| 1638 | 
            -
              | 
| 1639 | 
            -
             | 
| 1640 | 
            -
              | 
| 1641 | 
            -
             * In rare cases where it's not known at build time, it's `"UNKNOWN"`.
         | 
| 1642 | 
            -
             */
         | 
| 1045 | 
            +
            /** The name of this script excluding the user and `.`.
         | 
| 1046 | 
            +
              *
         | 
| 1047 | 
            +
              * e.g. in the script `foo.bar`, `_SCRIPT_NAME` is `bar`.
         | 
| 1048 | 
            +
              *
         | 
| 1049 | 
            +
              * Shorter alternative to `context.this_script.split(".")[1].
         | 
| 1050 | 
            +
              *
         | 
| 1051 | 
            +
              * In rare cases where it's not known at build time, it's `"UNKNOWN"`. */
         | 
| 1643 1052 | 
             
            declare const _SCRIPT_NAME: string
         | 
| 1644 1053 |  | 
| 1645 | 
            -
            /**
         | 
| 1646 | 
            -
             | 
| 1647 | 
            -
              | 
| 1648 | 
            -
             * In rare cases where it's not known at build time, it's `"UNKNOWN"`.
         | 
| 1649 | 
            -
             */
         | 
| 1054 | 
            +
            /** The full name of this script equivilent to `context.this_script` but should use less characters.
         | 
| 1055 | 
            +
              *
         | 
| 1056 | 
            +
              * In rare cases where it's not known at build time, it's `"UNKNOWN"`. */
         | 
| 1650 1057 | 
             
            declare const _FULL_SCRIPT_NAME: string
         | 
| 1651 1058 |  | 
| 1652 | 
            -
            /**
         | 
| 1653 | 
            -
             | 
| 1654 | 
            -
              | 
| 1655 | 
            -
             * In rare cases where it's not known at build time, it's `-1`.
         | 
| 1656 | 
            -
             */
         | 
| 1059 | 
            +
            /** The seclevel of this script as a number.
         | 
| 1060 | 
            +
              *
         | 
| 1061 | 
            +
              * In rare cases where it's not known at build time, it's `-1`. */
         | 
| 1657 1062 | 
             
            declare const _SECLEVEL: -1 | 0 | 1 | 2 | 3 | 4
         | 
| 1063 | 
            +
             | 
| 1064 | 
            +
            type DeepFreeze<T> = { readonly [P in keyof T]: DeepFreeze<T[P]> }
         | 
| 1065 | 
            +
             | 
| 1066 | 
            +
            /** Recursively
         | 
| 1067 | 
            +
              * [`Object.freeze()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze)
         | 
| 1068 | 
            +
              * an object and its properties' objects and its properties' objects and so on.
         | 
| 1069 | 
            +
              *
         | 
| 1070 | 
            +
              * [Official Hackmud Wiki](https://wiki.hackmud.com/scripting/extensions/deep_freeze) */
         | 
| 1071 | 
            +
            declare const DEEP_FREEZE: <T>(value: T) => DeepFreeze<T>
         | 
| 1072 | 
            +
             | 
| 1073 | 
            +
            declare const _RUN_ID: string
         |