typed-factorio 0.17.1 → 0.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Changelog.md +148 -143
- package/LICENSE +21 -21
- package/README.md +133 -133
- package/data/types.d.ts +13 -13
- package/generated/classes.d.ts +16 -12
- package/generated/concepts.d.ts +2 -2
- package/generator/typescript-internal.d.ts +9 -9
- package/package.json +58 -58
- package/runtime/index.d.ts +10 -10
- package/runtime/librariesAndFunctions.d.ts +123 -123
- package/runtime/mod-gui.d.ts +11 -11
- package/runtime/pairs.d.ts +14 -14
- package/runtime/util.d.ts +116 -116
- package/settings/types.d.ts +120 -120
    
        package/generated/classes.d.ts
    CHANGED
    
    | @@ -1382,7 +1382,8 @@ interface LuaControl { | |
| 1382 1382 | 
             
               *
         | 
| 1383 1383 | 
             
               * {@link https://lua-api.factorio.com/latest/LuaControl.html#LuaControl.force View documentation}
         | 
| 1384 1384 | 
             
               */
         | 
| 1385 | 
            -
              force:  | 
| 1385 | 
            +
              get force(): LuaForce
         | 
| 1386 | 
            +
              set force(value: ForceIdentification)
         | 
| 1386 1387 | 
             
              /**
         | 
| 1387 1388 | 
             
               * The currently selected entity; `nil` if none. Assigning an entity will select it if selectable otherwise clears selection.
         | 
| 1388 1389 | 
             
               *
         | 
| @@ -1532,7 +1533,8 @@ interface LuaControl { | |
| 1532 1533 | 
             
               *
         | 
| 1533 1534 | 
             
               * {@link https://lua-api.factorio.com/latest/LuaControl.html#LuaControl.cursor_ghost View documentation}
         | 
| 1534 1535 | 
             
               */
         | 
| 1535 | 
            -
              cursor_ghost:  | 
| 1536 | 
            +
              get cursor_ghost(): LuaItemPrototype
         | 
| 1537 | 
            +
              set cursor_ghost(value: ItemPrototypeIdentification)
         | 
| 1536 1538 | 
             
              /**
         | 
| 1537 1539 | 
             
               * `true` if the player is in a vehicle. Writing to this attribute puts the player in or out of a vehicle.
         | 
| 1538 1540 | 
             
               *
         | 
| @@ -2316,7 +2318,7 @@ interface LuaEntity extends LuaControl { | |
| 2316 2318 | 
             
               * @param flag - The flag to test. See {@link EntityPrototypeFlags} for a list of flags.
         | 
| 2317 2319 | 
             
               * @returns `true` if this entity has the given flag set.
         | 
| 2318 2320 | 
             
               */
         | 
| 2319 | 
            -
              has_flag(flag:  | 
| 2321 | 
            +
              has_flag(flag: keyof EntityPrototypeFlags): boolean
         | 
| 2320 2322 | 
             
              /**
         | 
| 2321 2323 | 
             
               * Same as {@link LuaEntity.has_flag LuaEntity::has_flag}, but targets the inner entity on a entity ghost.
         | 
| 2322 2324 | 
             
               *
         | 
| @@ -2327,7 +2329,7 @@ interface LuaEntity extends LuaControl { | |
| 2327 2329 | 
             
               * @param flag - The flag to test. See {@link EntityPrototypeFlags} for a list of flags.
         | 
| 2328 2330 | 
             
               * @returns `true` if the entity has the given flag set.
         | 
| 2329 2331 | 
             
               */
         | 
| 2330 | 
            -
              ghost_has_flag(flag:  | 
| 2332 | 
            +
              ghost_has_flag(flag: keyof EntityPrototypeFlags): boolean
         | 
| 2331 2333 | 
             
              /**
         | 
| 2332 2334 | 
             
               * Offer a thing on the market.
         | 
| 2333 2335 | 
             
               *
         | 
| @@ -4410,7 +4412,8 @@ interface LuaEntity extends LuaControl { | |
| 4410 4412 | 
             
               *
         | 
| 4411 4413 | 
             
               * {@link https://lua-api.factorio.com/latest/LuaEntity.html#LuaEntity.render_to_forces View documentation}
         | 
| 4412 4414 | 
             
               */
         | 
| 4413 | 
            -
              render_to_forces:  | 
| 4415 | 
            +
              get render_to_forces(): LuaForce[] | undefined
         | 
| 4416 | 
            +
              set render_to_forces(value: ForceIdentification[] | undefined)
         | 
| 4414 4417 | 
             
              /**
         | 
| 4415 4418 | 
             
               * The rail target of this pump or `nil`.
         | 
| 4416 4419 | 
             
               *
         | 
| @@ -4740,7 +4743,7 @@ interface BaseEntity extends LuaControl { | |
| 4740 4743 | 
             
               * @param flag - The flag to test. See {@link EntityPrototypeFlags} for a list of flags.
         | 
| 4741 4744 | 
             
               * @returns `true` if this entity has the given flag set.
         | 
| 4742 4745 | 
             
               */
         | 
| 4743 | 
            -
              has_flag(flag:  | 
| 4746 | 
            +
              has_flag(flag: keyof EntityPrototypeFlags): boolean
         | 
| 4744 4747 | 
             
              /**
         | 
| 4745 4748 | 
             
               * Connect two devices with a circuit wire or copper cable. Depending on which type of connection should be made,
         | 
| 4746 4749 | 
             
               * there are different procedures:
         | 
| @@ -5800,7 +5803,8 @@ interface BaseEntity extends LuaControl { | |
| 5800 5803 | 
             
               *
         | 
| 5801 5804 | 
             
               * {@link https://lua-api.factorio.com/latest/LuaEntity.html#LuaEntity.render_to_forces View documentation}
         | 
| 5802 5805 | 
             
               */
         | 
| 5803 | 
            -
              render_to_forces:  | 
| 5806 | 
            +
              get render_to_forces(): LuaForce[] | undefined
         | 
| 5807 | 
            +
              set render_to_forces(value: ForceIdentification[] | undefined)
         | 
| 5804 5808 | 
             
              /**
         | 
| 5805 5809 | 
             
               * Returns the id of the electric network that this entity is connected to or `nil`.
         | 
| 5806 5810 | 
             
               *
         | 
| @@ -6016,7 +6020,7 @@ interface EntityGhostEntity extends BaseEntity { | |
| 6016 6020 | 
             
               * @param flag - The flag to test. See {@link EntityPrototypeFlags} for a list of flags.
         | 
| 6017 6021 | 
             
               * @returns `true` if the entity has the given flag set.
         | 
| 6018 6022 | 
             
               */
         | 
| 6019 | 
            -
              ghost_has_flag(flag:  | 
| 6023 | 
            +
              ghost_has_flag(flag: keyof EntityPrototypeFlags): boolean
         | 
| 6020 6024 | 
             
              /**
         | 
| 6021 6025 | 
             
               * The unit number of the entity contained in this ghost or nil if the entity doesn't have one.
         | 
| 6022 6026 | 
             
               *
         | 
| @@ -7317,7 +7321,7 @@ interface LuaEntityPrototype { | |
| 7317 7321 | 
             
               * @param flag - The flag to test. See {@link EntityPrototypeFlags} for a list of flags.
         | 
| 7318 7322 | 
             
               * @returns `true` if this prototype has the given flag set.
         | 
| 7319 7323 | 
             
               */
         | 
| 7320 | 
            -
              has_flag(flag:  | 
| 7324 | 
            +
              has_flag(flag: keyof EntityPrototypeFlags): boolean
         | 
| 7321 7325 | 
             
              /**
         | 
| 7322 7326 | 
             
               * Gets the base size of the given inventory on this entity or `nil` if the given inventory doesn't exist.
         | 
| 7323 7327 | 
             
               *
         | 
| @@ -8657,7 +8661,7 @@ interface BaseEntityPrototype { | |
| 8657 8661 | 
             
               * @param flag - The flag to test. See {@link EntityPrototypeFlags} for a list of flags.
         | 
| 8658 8662 | 
             
               * @returns `true` if this prototype has the given flag set.
         | 
| 8659 8663 | 
             
               */
         | 
| 8660 | 
            -
              has_flag(flag:  | 
| 8664 | 
            +
              has_flag(flag: keyof EntityPrototypeFlags): boolean
         | 
| 8661 8665 | 
             
              /**
         | 
| 8662 8666 | 
             
               * Gets the base size of the given inventory on this entity or `nil` if the given inventory doesn't exist.
         | 
| 8663 8667 | 
             
               *
         | 
| @@ -15568,7 +15572,7 @@ interface LuaItemPrototype { | |
| 15568 15572 | 
             
               * @param flag - The flag to test. See {@link ItemPrototypeFlags} for a list of flags.
         | 
| 15569 15573 | 
             
               * @returns `true` if this prototype has the given flag set.
         | 
| 15570 15574 | 
             
               */
         | 
| 15571 | 
            -
              has_flag(flag:  | 
| 15575 | 
            +
              has_flag(flag: keyof ItemPrototypeFlags): boolean
         | 
| 15572 15576 | 
             
              /**
         | 
| 15573 15577 | 
             
               * Type of this ammo prototype or `nil` if this is not an ammo prototype.
         | 
| 15574 15578 | 
             
               *
         | 
| @@ -16107,7 +16111,7 @@ interface BaseItemPrototype { | |
| 16107 16111 | 
             
               * @param flag - The flag to test. See {@link ItemPrototypeFlags} for a list of flags.
         | 
| 16108 16112 | 
             
               * @returns `true` if this prototype has the given flag set.
         | 
| 16109 16113 | 
             
               */
         | 
| 16110 | 
            -
              has_flag(flag:  | 
| 16114 | 
            +
              has_flag(flag: keyof ItemPrototypeFlags): boolean
         | 
| 16111 16115 | 
             
              /**
         | 
| 16112 16116 | 
             
               * Type of this ammo prototype or `nil` if this is not an ammo prototype.
         | 
| 16113 16117 | 
             
               *
         | 
    
        package/generated/concepts.d.ts
    CHANGED
    
    | @@ -3227,7 +3227,7 @@ interface TypeItemPrototypeFilter extends BaseItemPrototypeFilter { | |
| 3227 3227 | 
             
            interface FlagItemPrototypeFilter extends BaseItemPrototypeFilter {
         | 
| 3228 3228 | 
             
              readonly filter: "flag"
         | 
| 3229 3229 | 
             
              /** One of the values in {@link ItemPrototypeFlags}. */
         | 
| 3230 | 
            -
              readonly flag:  | 
| 3230 | 
            +
              readonly flag: keyof ItemPrototypeFlags
         | 
| 3231 3231 | 
             
            }
         | 
| 3232 3232 |  | 
| 3233 3233 | 
             
            interface SubgroupItemPrototypeFilter extends BaseItemPrototypeFilter {
         | 
| @@ -4079,7 +4079,7 @@ interface CollisionMaskEntityPrototypeFilter extends BaseEntityPrototypeFilter { | |
| 4079 4079 | 
             
            interface FlagEntityPrototypeFilter extends BaseEntityPrototypeFilter {
         | 
| 4080 4080 | 
             
              readonly filter: "flag"
         | 
| 4081 4081 | 
             
              /** One of the values in {@link EntityPrototypeFlags}. */
         | 
| 4082 | 
            -
              readonly flag:  | 
| 4082 | 
            +
              readonly flag: keyof EntityPrototypeFlags
         | 
| 4083 4083 | 
             
            }
         | 
| 4084 4084 |  | 
| 4085 4085 | 
             
            interface BuildBaseEvolutionRequirementEntityPrototypeFilter extends BaseEntityPrototypeFilter {
         | 
| @@ -1,9 +1,9 @@ | |
| 1 | 
            -
            declare module "typescript" {
         | 
| 2 | 
            -
              interface JSDocContainer {
         | 
| 3 | 
            -
                jsDoc?: JSDoc[]
         | 
| 4 | 
            -
              }
         | 
| 5 | 
            -
              interface Node {
         | 
| 6 | 
            -
                emitNode?: unknown
         | 
| 7 | 
            -
              }
         | 
| 8 | 
            -
            }
         | 
| 9 | 
            -
            export {}
         | 
| 1 | 
            +
            declare module "typescript" {
         | 
| 2 | 
            +
              interface JSDocContainer {
         | 
| 3 | 
            +
                jsDoc?: JSDoc[]
         | 
| 4 | 
            +
              }
         | 
| 5 | 
            +
              interface Node {
         | 
| 6 | 
            +
                emitNode?: unknown
         | 
| 7 | 
            +
              }
         | 
| 8 | 
            +
            }
         | 
| 9 | 
            +
            export {}
         | 
    
        package/package.json
    CHANGED
    
    | @@ -1,58 +1,58 @@ | |
| 1 | 
            -
            {
         | 
| 2 | 
            -
              "name": "typed-factorio",
         | 
| 3 | 
            -
              "version": "0. | 
| 4 | 
            -
              "description": "Featureful typescript definitions for the the Factorio modding lua api.",
         | 
| 5 | 
            -
              "keywords": [
         | 
| 6 | 
            -
                "factorio",
         | 
| 7 | 
            -
                "types",
         | 
| 8 | 
            -
                "typescript-to-lua",
         | 
| 9 | 
            -
                "tstl"
         | 
| 10 | 
            -
              ],
         | 
| 11 | 
            -
              "repository": "https://github.com/GlassBricks/typed-factorio",
         | 
| 12 | 
            -
              "license": "MIT",
         | 
| 13 | 
            -
              "files": [
         | 
| 14 | 
            -
                "**/*.d.ts"
         | 
| 15 | 
            -
              ],
         | 
| 16 | 
            -
              "homepage": "https://github.com/GlassBricks/typed-factorio#readme",
         | 
| 17 | 
            -
              "scripts": {
         | 
| 18 | 
            -
                "gen": "ts-node -P generator/tsconfig.json generator/main.ts",
         | 
| 19 | 
            -
                "generate": "yarn run gen --in ./generatorSrc --out ./generated --warn-as-error",
         | 
| 20 | 
            -
                "generate:dev": "yarn run gen --in ./generatorSrc --out ./generated --no-format",
         | 
| 21 | 
            -
                "clean": "rimraf generated",
         | 
| 22 | 
            -
                "pretest": "yarn run generate",
         | 
| 23 | 
            -
                "test": "jest",
         | 
| 24 | 
            -
                "lint": "eslint .",
         | 
| 25 | 
            -
                "check": "yarn run lint && yarn run test",
         | 
| 26 | 
            -
                "prepublishOnly": "yarn run check",
         | 
| 27 | 
            -
                "download-latest-runtime-api": "ts-node ./scripts/downloadLatest.ts"
         | 
| 28 | 
            -
              },
         | 
| 29 | 
            -
              "peerDependencies": {
         | 
| 30 | 
            -
                "lua-types": "^2.11.0",
         | 
| 31 | 
            -
                "typescript-to-lua": "^1.3.1"
         | 
| 32 | 
            -
              },
         | 
| 33 | 
            -
              "devDependencies": {
         | 
| 34 | 
            -
                "@types/jest": "^27.0.3",
         | 
| 35 | 
            -
                "@types/node": "^16.11.12",
         | 
| 36 | 
            -
                "@types/prettier": "^2.4.2",
         | 
| 37 | 
            -
                "@typescript-eslint/eslint-plugin": "^5.6.0",
         | 
| 38 | 
            -
                "@typescript-eslint/parser": "^5.6.0",
         | 
| 39 | 
            -
                "chalk": "^3.0.0",
         | 
| 40 | 
            -
                "commander": "^8.3.0",
         | 
| 41 | 
            -
                "eslint": "^8.4.1",
         | 
| 42 | 
            -
                "eslint-config-prettier": "^8.3.0",
         | 
| 43 | 
            -
                "eslint-config-standard": "^16.0.3",
         | 
| 44 | 
            -
                "eslint-import-resolver-typescript": "^2.5.0",
         | 
| 45 | 
            -
                "eslint-plugin-import": "^2.25.3",
         | 
| 46 | 
            -
                "eslint-plugin-node": "^11.1.0",
         | 
| 47 | 
            -
                "eslint-plugin-prettier": "^4.0.0",
         | 
| 48 | 
            -
                "eslint-plugin-promise": "^5.2.0",
         | 
| 49 | 
            -
                "jest": "^27.4.3",
         | 
| 50 | 
            -
                "lua-types": "^2.11.0",
         | 
| 51 | 
            -
                "prettier": "^2.5.1",
         | 
| 52 | 
            -
                "prettier-plugin-jsdoc": "^0.3.30",
         | 
| 53 | 
            -
                "ts-jest": "^27.1.0",
         | 
| 54 | 
            -
                "ts-node": "^10.4.0",
         | 
| 55 | 
            -
                "typescript": "4.5.2",
         | 
| 56 | 
            -
                "typescript-to-lua": "^1.3.1"
         | 
| 57 | 
            -
              }
         | 
| 58 | 
            -
            }
         | 
| 1 | 
            +
            {
         | 
| 2 | 
            +
              "name": "typed-factorio",
         | 
| 3 | 
            +
              "version": "0.18.0",
         | 
| 4 | 
            +
              "description": "Featureful typescript definitions for the the Factorio modding lua api.",
         | 
| 5 | 
            +
              "keywords": [
         | 
| 6 | 
            +
                "factorio",
         | 
| 7 | 
            +
                "types",
         | 
| 8 | 
            +
                "typescript-to-lua",
         | 
| 9 | 
            +
                "tstl"
         | 
| 10 | 
            +
              ],
         | 
| 11 | 
            +
              "repository": "https://github.com/GlassBricks/typed-factorio",
         | 
| 12 | 
            +
              "license": "MIT",
         | 
| 13 | 
            +
              "files": [
         | 
| 14 | 
            +
                "**/*.d.ts"
         | 
| 15 | 
            +
              ],
         | 
| 16 | 
            +
              "homepage": "https://github.com/GlassBricks/typed-factorio#readme",
         | 
| 17 | 
            +
              "scripts": {
         | 
| 18 | 
            +
                "gen": "ts-node -P generator/tsconfig.json generator/main.ts",
         | 
| 19 | 
            +
                "generate": "yarn run gen --in ./generatorSrc --out ./generated --warn-as-error",
         | 
| 20 | 
            +
                "generate:dev": "yarn run gen --in ./generatorSrc --out ./generated --no-format",
         | 
| 21 | 
            +
                "clean": "rimraf generated",
         | 
| 22 | 
            +
                "pretest": "yarn run generate",
         | 
| 23 | 
            +
                "test": "jest",
         | 
| 24 | 
            +
                "lint": "eslint .",
         | 
| 25 | 
            +
                "check": "yarn run lint && yarn run test",
         | 
| 26 | 
            +
                "prepublishOnly": "yarn run check",
         | 
| 27 | 
            +
                "download-latest-runtime-api": "ts-node ./scripts/downloadLatest.ts"
         | 
| 28 | 
            +
              },
         | 
| 29 | 
            +
              "peerDependencies": {
         | 
| 30 | 
            +
                "lua-types": "^2.11.0",
         | 
| 31 | 
            +
                "typescript-to-lua": "^1.3.1"
         | 
| 32 | 
            +
              },
         | 
| 33 | 
            +
              "devDependencies": {
         | 
| 34 | 
            +
                "@types/jest": "^27.0.3",
         | 
| 35 | 
            +
                "@types/node": "^16.11.12",
         | 
| 36 | 
            +
                "@types/prettier": "^2.4.2",
         | 
| 37 | 
            +
                "@typescript-eslint/eslint-plugin": "^5.6.0",
         | 
| 38 | 
            +
                "@typescript-eslint/parser": "^5.6.0",
         | 
| 39 | 
            +
                "chalk": "^3.0.0",
         | 
| 40 | 
            +
                "commander": "^8.3.0",
         | 
| 41 | 
            +
                "eslint": "^8.4.1",
         | 
| 42 | 
            +
                "eslint-config-prettier": "^8.3.0",
         | 
| 43 | 
            +
                "eslint-config-standard": "^16.0.3",
         | 
| 44 | 
            +
                "eslint-import-resolver-typescript": "^2.5.0",
         | 
| 45 | 
            +
                "eslint-plugin-import": "^2.25.3",
         | 
| 46 | 
            +
                "eslint-plugin-node": "^11.1.0",
         | 
| 47 | 
            +
                "eslint-plugin-prettier": "^4.0.0",
         | 
| 48 | 
            +
                "eslint-plugin-promise": "^5.2.0",
         | 
| 49 | 
            +
                "jest": "^27.4.3",
         | 
| 50 | 
            +
                "lua-types": "^2.11.0",
         | 
| 51 | 
            +
                "prettier": "^2.5.1",
         | 
| 52 | 
            +
                "prettier-plugin-jsdoc": "^0.3.30",
         | 
| 53 | 
            +
                "ts-jest": "^27.1.0",
         | 
| 54 | 
            +
                "ts-node": "^10.4.0",
         | 
| 55 | 
            +
                "typescript": "4.5.2",
         | 
| 56 | 
            +
                "typescript-to-lua": "^1.3.1"
         | 
| 57 | 
            +
              }
         | 
| 58 | 
            +
            }
         | 
    
        package/runtime/index.d.ts
    CHANGED
    
    | @@ -1,10 +1,10 @@ | |
| 1 | 
            -
            /// <reference types="lua-types/5.2" />
         | 
| 2 | 
            -
             | 
| 3 | 
            -
            /// <reference path="../generated/index.d.ts" />
         | 
| 4 | 
            -
             | 
| 5 | 
            -
            /// <reference path="librariesAndFunctions.d.ts" />
         | 
| 6 | 
            -
            /// <reference path="pairs.d.ts" />
         | 
| 7 | 
            -
             | 
| 8 | 
            -
            // lualib
         | 
| 9 | 
            -
            /// <reference path="util.d.ts" />
         | 
| 10 | 
            -
            /// <reference path="mod-gui.d.ts" />
         | 
| 1 | 
            +
            /// <reference types="lua-types/5.2" />
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            /// <reference path="../generated/index.d.ts" />
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            /// <reference path="librariesAndFunctions.d.ts" />
         | 
| 6 | 
            +
            /// <reference path="pairs.d.ts" />
         | 
| 7 | 
            +
             | 
| 8 | 
            +
            // lualib
         | 
| 9 | 
            +
            /// <reference path="util.d.ts" />
         | 
| 10 | 
            +
            /// <reference path="mod-gui.d.ts" />
         | 
| @@ -1,123 +1,123 @@ | |
| 1 | 
            -
            // from https://lua-api.factorio.com/latest/Libraries.html
         | 
| 2 | 
            -
            // last updated for 1.1.35, 1.1.36, 1.1.37
         | 
| 3 | 
            -
             | 
| 4 | 
            -
            /** @noSelfInFile */
         | 
| 5 | 
            -
             | 
| 6 | 
            -
            /** @noSelf */
         | 
| 7 | 
            -
            interface SerpentOptions {
         | 
| 8 | 
            -
              /** Indentation; triggers long multi-line output. */
         | 
| 9 | 
            -
              indent: string
         | 
| 10 | 
            -
              /** Provide stringified value in a comment (up to maxlevel of depth). */
         | 
| 11 | 
            -
              comment: boolean | number
         | 
| 12 | 
            -
              /** Sort keys. */
         | 
| 13 | 
            -
              sortkeys: boolean | ((this: void, keys: any[], table: any) => void)
         | 
| 14 | 
            -
              /** Force sparse encoding (no nil filling based on #t). */
         | 
| 15 | 
            -
              sparse: boolean
         | 
| 16 | 
            -
              /** Remove spaces. */
         | 
| 17 | 
            -
              compact: boolean
         | 
| 18 | 
            -
              /** Raise fatal error on non-serializable values. */
         | 
| 19 | 
            -
              fatal: boolean
         | 
| 20 | 
            -
              /** Disable bytecode serialization for easy comparison. */
         | 
| 21 | 
            -
              nocode: boolean
         | 
| 22 | 
            -
              /** Disable checking numbers against undefined and huge values. */
         | 
| 23 | 
            -
              nohuge: boolean
         | 
| 24 | 
            -
              /** Specify max level up to which to expand nested tables. */
         | 
| 25 | 
            -
              maxlevel: number
         | 
| 26 | 
            -
              /** Specify max number of elements in a table. */
         | 
| 27 | 
            -
              maxnum: number
         | 
| 28 | 
            -
              /** Specify max length for all table elements. */
         | 
| 29 | 
            -
              maxlength: number
         | 
| 30 | 
            -
              /**
         | 
| 31 | 
            -
               * Use __tostring metamethod when serializing tables (v0.29); set to false to disable and serialize the table as is,
         | 
| 32 | 
            -
               * even when __tostring is present.
         | 
| 33 | 
            -
               */
         | 
| 34 | 
            -
              metatostring: boolean
         | 
| 35 | 
            -
              /**
         | 
| 36 | 
            -
               * Specify format for numeric values as shortest possible round-trippable double (v0.30). Use "%.16g" for better
         | 
| 37 | 
            -
               * readability and "%.17g" (the default value) to preserve floating point precision.
         | 
| 38 | 
            -
               */
         | 
| 39 | 
            -
              numformat: string
         | 
| 40 | 
            -
              /** Allows to specify a list of values to ignore (as keys). */
         | 
| 41 | 
            -
              valignore: string[]
         | 
| 42 | 
            -
              /** Allows to specify the list of keys to be serialized. Any keys not in this list are not included in final output (as keys). */
         | 
| 43 | 
            -
              keyallow: string[]
         | 
| 44 | 
            -
              /** Allows to specity the list of keys to ignore in serialization. */
         | 
| 45 | 
            -
              keyignore: string[]
         | 
| 46 | 
            -
              /** Allows to specify a list of value types to ignore (as keys). */
         | 
| 47 | 
            -
              valtypeignore: string[]
         | 
| 48 | 
            -
              /** Provide custom output for tables. */
         | 
| 49 | 
            -
              custom(opts: {
         | 
| 50 | 
            -
                /** The name of the current element with '=' or an empty string in case of array index, */
         | 
| 51 | 
            -
                tag: string
         | 
| 52 | 
            -
                /** An opening table bracket { and associated indentation and newline (if any), */
         | 
| 53 | 
            -
                head: string
         | 
| 54 | 
            -
                /** Table elements concatenated into a string using commas and indentation/newlines (if any), */
         | 
| 55 | 
            -
                body: string
         | 
| 56 | 
            -
                /** A closing table bracket } and associated indentation and newline (if any), and */
         | 
| 57 | 
            -
                tail: string
         | 
| 58 | 
            -
                /** The current level. */
         | 
| 59 | 
            -
                level: number
         | 
| 60 | 
            -
              }): string
         | 
| 61 | 
            -
              /** Name; triggers full serialization with self-ref section. */
         | 
| 62 | 
            -
              name: string
         | 
| 63 | 
            -
             | 
| 64 | 
            -
              refcomment: boolean | number
         | 
| 65 | 
            -
              tablecomment: boolean | number
         | 
| 66 | 
            -
            }
         | 
| 67 | 
            -
             | 
| 68 | 
            -
            /**
         | 
| 69 | 
            -
             * Factorio provides the {@link https://github.com/pkulchenko/serpent serpent library} as a global variable `serpent` for
         | 
| 70 | 
            -
             * all mods to use. It allows for easy debugging of tables, because serpent makes it trivial to print them, for example
         | 
| 71 | 
            -
             * by using `serpent.block()`. However, serpent cannot pretty-print LuaObjects such as LuaEntity. The serpent library
         | 
| 72 | 
            -
             * was modified to improve determinism, e.g. comments are turned off by default to avoid returning table addresses.
         | 
| 73 | 
            -
             * Furthermore, two options were added: `refcomment` (true/false/maxlevel) and `tablecomment` (true/false/maxlevel),
         | 
| 74 | 
            -
             * which allow to separately control the self-reference and table value output of the `comment` option.
         | 
| 75 | 
            -
             */
         | 
| 76 | 
            -
            declare namespace serpent {
         | 
| 77 | 
            -
              /** Full serialization; sets name, compact and sparse options; */
         | 
| 78 | 
            -
              function dump(tbl: unknown, options?: Partial<SerpentOptions>): string
         | 
| 79 | 
            -
             | 
| 80 | 
            -
              /** Single line pretty printing, no self-ref section; sets sortkeys and comment options; */
         | 
| 81 | 
            -
              function line(tbl: unknown, options?: Partial<SerpentOptions>): string
         | 
| 82 | 
            -
             | 
| 83 | 
            -
              /** Multi-line indented pretty printing, no self-ref section; sets indent, sortkeys, and comment options. */
         | 
| 84 | 
            -
              function block(tbl: unknown, options?: Partial<SerpentOptions>): string
         | 
| 85 | 
            -
             | 
| 86 | 
            -
              /**
         | 
| 87 | 
            -
               * For loading serialized fragments, serpent also provides `load` function that adds safety checks and reports an
         | 
| 88 | 
            -
               * error if there is any executable code in the fragment.
         | 
| 89 | 
            -
               */
         | 
| 90 | 
            -
              function load<T>(str: string, options?: { safe?: boolean }): LuaMultiReturn<[true, T] | [false, string]>
         | 
| 91 | 
            -
            }
         | 
| 92 | 
            -
             | 
| 93 | 
            -
            /**
         | 
| 94 | 
            -
             * This function allows to log {@link LocalisedString} to the Factorio
         | 
| 95 | 
            -
             * {@link https://wiki.factorio.com/Log_file log file}. This, in combination with serpent, makes debugging in the data
         | 
| 96 | 
            -
             * stage easier, because it allows to simply inspect entire prototype tables. For example, this allows to see all
         | 
| 97 | 
            -
             * properties of the sulfur item prototype: `log(serpent.block(data.raw["item"]["sulfur"]))`
         | 
| 98 | 
            -
             */
         | 
| 99 | 
            -
            declare function log(ls: LocalisedString): void
         | 
| 100 | 
            -
             | 
| 101 | 
            -
            /**
         | 
| 102 | 
            -
             * This function allows printing {@link LocalisedString}s to stdout without polluting the logfile. This is primarily
         | 
| 103 | 
            -
             * useful for communicating with external tools that launch Factorio as a child process.
         | 
| 104 | 
            -
             */
         | 
| 105 | 
            -
            declare function localised_print(ls: LocalisedString): void
         | 
| 106 | 
            -
             | 
| 107 | 
            -
            /**
         | 
| 108 | 
            -
             * Factorio provides the function `table_size()` as a simple way to find the size of tables with non-continuous keys,
         | 
| 109 | 
            -
             * because the standard `#` does not work correctly for these. The function is a C++-side implementation of the
         | 
| 110 | 
            -
             * following Lua code, thus it is faster than using this code in Lua:
         | 
| 111 | 
            -
             *
         | 
| 112 | 
            -
             *     local function size(t)
         | 
| 113 | 
            -
             *       local count = 0
         | 
| 114 | 
            -
             *        for k,v in pairs(t) do
         | 
| 115 | 
            -
             *         count = count + 1
         | 
| 116 | 
            -
             *       end
         | 
| 117 | 
            -
             *       return count
         | 
| 118 | 
            -
             *     end
         | 
| 119 | 
            -
             *
         | 
| 120 | 
            -
             * Note that `table_size()` does not work correctly for {@link LuaCustomTable}s, their size has to be determined with
         | 
| 121 | 
            -
             * {@link LuaCustomTable.length LuaCustomTable::operator #} instead.
         | 
| 122 | 
            -
             */
         | 
| 123 | 
            -
            declare function table_size(tbl: table): number
         | 
| 1 | 
            +
            // from https://lua-api.factorio.com/latest/Libraries.html
         | 
| 2 | 
            +
            // last updated for 1.1.35, 1.1.36, 1.1.37
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            /** @noSelfInFile */
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            /** @noSelf */
         | 
| 7 | 
            +
            interface SerpentOptions {
         | 
| 8 | 
            +
              /** Indentation; triggers long multi-line output. */
         | 
| 9 | 
            +
              indent: string
         | 
| 10 | 
            +
              /** Provide stringified value in a comment (up to maxlevel of depth). */
         | 
| 11 | 
            +
              comment: boolean | number
         | 
| 12 | 
            +
              /** Sort keys. */
         | 
| 13 | 
            +
              sortkeys: boolean | ((this: void, keys: any[], table: any) => void)
         | 
| 14 | 
            +
              /** Force sparse encoding (no nil filling based on #t). */
         | 
| 15 | 
            +
              sparse: boolean
         | 
| 16 | 
            +
              /** Remove spaces. */
         | 
| 17 | 
            +
              compact: boolean
         | 
| 18 | 
            +
              /** Raise fatal error on non-serializable values. */
         | 
| 19 | 
            +
              fatal: boolean
         | 
| 20 | 
            +
              /** Disable bytecode serialization for easy comparison. */
         | 
| 21 | 
            +
              nocode: boolean
         | 
| 22 | 
            +
              /** Disable checking numbers against undefined and huge values. */
         | 
| 23 | 
            +
              nohuge: boolean
         | 
| 24 | 
            +
              /** Specify max level up to which to expand nested tables. */
         | 
| 25 | 
            +
              maxlevel: number
         | 
| 26 | 
            +
              /** Specify max number of elements in a table. */
         | 
| 27 | 
            +
              maxnum: number
         | 
| 28 | 
            +
              /** Specify max length for all table elements. */
         | 
| 29 | 
            +
              maxlength: number
         | 
| 30 | 
            +
              /**
         | 
| 31 | 
            +
               * Use __tostring metamethod when serializing tables (v0.29); set to false to disable and serialize the table as is,
         | 
| 32 | 
            +
               * even when __tostring is present.
         | 
| 33 | 
            +
               */
         | 
| 34 | 
            +
              metatostring: boolean
         | 
| 35 | 
            +
              /**
         | 
| 36 | 
            +
               * Specify format for numeric values as shortest possible round-trippable double (v0.30). Use "%.16g" for better
         | 
| 37 | 
            +
               * readability and "%.17g" (the default value) to preserve floating point precision.
         | 
| 38 | 
            +
               */
         | 
| 39 | 
            +
              numformat: string
         | 
| 40 | 
            +
              /** Allows to specify a list of values to ignore (as keys). */
         | 
| 41 | 
            +
              valignore: string[]
         | 
| 42 | 
            +
              /** Allows to specify the list of keys to be serialized. Any keys not in this list are not included in final output (as keys). */
         | 
| 43 | 
            +
              keyallow: string[]
         | 
| 44 | 
            +
              /** Allows to specity the list of keys to ignore in serialization. */
         | 
| 45 | 
            +
              keyignore: string[]
         | 
| 46 | 
            +
              /** Allows to specify a list of value types to ignore (as keys). */
         | 
| 47 | 
            +
              valtypeignore: string[]
         | 
| 48 | 
            +
              /** Provide custom output for tables. */
         | 
| 49 | 
            +
              custom(opts: {
         | 
| 50 | 
            +
                /** The name of the current element with '=' or an empty string in case of array index, */
         | 
| 51 | 
            +
                tag: string
         | 
| 52 | 
            +
                /** An opening table bracket { and associated indentation and newline (if any), */
         | 
| 53 | 
            +
                head: string
         | 
| 54 | 
            +
                /** Table elements concatenated into a string using commas and indentation/newlines (if any), */
         | 
| 55 | 
            +
                body: string
         | 
| 56 | 
            +
                /** A closing table bracket } and associated indentation and newline (if any), and */
         | 
| 57 | 
            +
                tail: string
         | 
| 58 | 
            +
                /** The current level. */
         | 
| 59 | 
            +
                level: number
         | 
| 60 | 
            +
              }): string
         | 
| 61 | 
            +
              /** Name; triggers full serialization with self-ref section. */
         | 
| 62 | 
            +
              name: string
         | 
| 63 | 
            +
             | 
| 64 | 
            +
              refcomment: boolean | number
         | 
| 65 | 
            +
              tablecomment: boolean | number
         | 
| 66 | 
            +
            }
         | 
| 67 | 
            +
             | 
| 68 | 
            +
            /**
         | 
| 69 | 
            +
             * Factorio provides the {@link https://github.com/pkulchenko/serpent serpent library} as a global variable `serpent` for
         | 
| 70 | 
            +
             * all mods to use. It allows for easy debugging of tables, because serpent makes it trivial to print them, for example
         | 
| 71 | 
            +
             * by using `serpent.block()`. However, serpent cannot pretty-print LuaObjects such as LuaEntity. The serpent library
         | 
| 72 | 
            +
             * was modified to improve determinism, e.g. comments are turned off by default to avoid returning table addresses.
         | 
| 73 | 
            +
             * Furthermore, two options were added: `refcomment` (true/false/maxlevel) and `tablecomment` (true/false/maxlevel),
         | 
| 74 | 
            +
             * which allow to separately control the self-reference and table value output of the `comment` option.
         | 
| 75 | 
            +
             */
         | 
| 76 | 
            +
            declare namespace serpent {
         | 
| 77 | 
            +
              /** Full serialization; sets name, compact and sparse options; */
         | 
| 78 | 
            +
              function dump(tbl: unknown, options?: Partial<SerpentOptions>): string
         | 
| 79 | 
            +
             | 
| 80 | 
            +
              /** Single line pretty printing, no self-ref section; sets sortkeys and comment options; */
         | 
| 81 | 
            +
              function line(tbl: unknown, options?: Partial<SerpentOptions>): string
         | 
| 82 | 
            +
             | 
| 83 | 
            +
              /** Multi-line indented pretty printing, no self-ref section; sets indent, sortkeys, and comment options. */
         | 
| 84 | 
            +
              function block(tbl: unknown, options?: Partial<SerpentOptions>): string
         | 
| 85 | 
            +
             | 
| 86 | 
            +
              /**
         | 
| 87 | 
            +
               * For loading serialized fragments, serpent also provides `load` function that adds safety checks and reports an
         | 
| 88 | 
            +
               * error if there is any executable code in the fragment.
         | 
| 89 | 
            +
               */
         | 
| 90 | 
            +
              function load<T>(str: string, options?: { safe?: boolean }): LuaMultiReturn<[true, T] | [false, string]>
         | 
| 91 | 
            +
            }
         | 
| 92 | 
            +
             | 
| 93 | 
            +
            /**
         | 
| 94 | 
            +
             * This function allows to log {@link LocalisedString} to the Factorio
         | 
| 95 | 
            +
             * {@link https://wiki.factorio.com/Log_file log file}. This, in combination with serpent, makes debugging in the data
         | 
| 96 | 
            +
             * stage easier, because it allows to simply inspect entire prototype tables. For example, this allows to see all
         | 
| 97 | 
            +
             * properties of the sulfur item prototype: `log(serpent.block(data.raw["item"]["sulfur"]))`
         | 
| 98 | 
            +
             */
         | 
| 99 | 
            +
            declare function log(ls: LocalisedString): void
         | 
| 100 | 
            +
             | 
| 101 | 
            +
            /**
         | 
| 102 | 
            +
             * This function allows printing {@link LocalisedString}s to stdout without polluting the logfile. This is primarily
         | 
| 103 | 
            +
             * useful for communicating with external tools that launch Factorio as a child process.
         | 
| 104 | 
            +
             */
         | 
| 105 | 
            +
            declare function localised_print(ls: LocalisedString): void
         | 
| 106 | 
            +
             | 
| 107 | 
            +
            /**
         | 
| 108 | 
            +
             * Factorio provides the function `table_size()` as a simple way to find the size of tables with non-continuous keys,
         | 
| 109 | 
            +
             * because the standard `#` does not work correctly for these. The function is a C++-side implementation of the
         | 
| 110 | 
            +
             * following Lua code, thus it is faster than using this code in Lua:
         | 
| 111 | 
            +
             *
         | 
| 112 | 
            +
             *     local function size(t)
         | 
| 113 | 
            +
             *       local count = 0
         | 
| 114 | 
            +
             *        for k,v in pairs(t) do
         | 
| 115 | 
            +
             *         count = count + 1
         | 
| 116 | 
            +
             *       end
         | 
| 117 | 
            +
             *       return count
         | 
| 118 | 
            +
             *     end
         | 
| 119 | 
            +
             *
         | 
| 120 | 
            +
             * Note that `table_size()` does not work correctly for {@link LuaCustomTable}s, their size has to be determined with
         | 
| 121 | 
            +
             * {@link LuaCustomTable.length LuaCustomTable::operator #} instead.
         | 
| 122 | 
            +
             */
         | 
| 123 | 
            +
            declare function table_size(tbl: table): number
         | 
    
        package/runtime/mod-gui.d.ts
    CHANGED
    
    | @@ -1,11 +1,11 @@ | |
| 1 | 
            -
            /** @noSelfInFile */
         | 
| 2 | 
            -
             | 
| 3 | 
            -
            /** @noResolution */
         | 
| 4 | 
            -
            declare module "mod-gui" {
         | 
| 5 | 
            -
              const button_style: string
         | 
| 6 | 
            -
              const frame_style: string
         | 
| 7 | 
            -
             | 
| 8 | 
            -
              function get_button_flow(player: LuaPlayer): FrameGuiElement
         | 
| 9 | 
            -
             | 
| 10 | 
            -
              function get_frame_flow(player: LuaPlayer): FlowGuiElement
         | 
| 11 | 
            -
            }
         | 
| 1 | 
            +
            /** @noSelfInFile */
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            /** @noResolution */
         | 
| 4 | 
            +
            declare module "mod-gui" {
         | 
| 5 | 
            +
              const button_style: string
         | 
| 6 | 
            +
              const frame_style: string
         | 
| 7 | 
            +
             | 
| 8 | 
            +
              function get_button_flow(player: LuaPlayer): FrameGuiElement
         | 
| 9 | 
            +
             | 
| 10 | 
            +
              function get_frame_flow(player: LuaPlayer): FlowGuiElement
         | 
| 11 | 
            +
            }
         | 
    
        package/runtime/pairs.d.ts
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 | 
            -
            /** @noSelfInFile */
         | 
| 2 | 
            -
             | 
| 3 | 
            -
            /**
         | 
| 4 | 
            -
             * Iterating with `pairs` will only iterate the array part of a {@link LuaCustomTable}.
         | 
| 5 | 
            -
             *
         | 
| 6 | 
            -
             * **Note**: you can also iterate on a LuaCustomTable directly without using `pairs`, e.g. `for(const [k, v] of table)`.
         | 
| 7 | 
            -
             */
         | 
| 8 | 
            -
            declare function pairs<V>(table: LuaCustomTable<number | string, V>): LuaIterable<LuaMultiReturn<[number, V]>>
         | 
| 9 | 
            -
             | 
| 10 | 
            -
            /** **Note**: you can also iterate on a LuaCustomTable directly without using `pairs`, e.g. `for(const [k, v] of table)`. */
         | 
| 11 | 
            -
            declare function pairs<K extends number | string, V>(table: LuaCustomTable<K, V>): LuaIterable<LuaMultiReturn<[K, V]>>
         | 
| 12 | 
            -
             | 
| 13 | 
            -
            /** @deprecated {@link LuaCustomTable} cannot be iterated with `ipairs`; Use {@link pairs} instead. */
         | 
| 14 | 
            -
            declare function ipairs(table: LuaCustomTable<any, any>): never
         | 
| 1 | 
            +
            /** @noSelfInFile */
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            /**
         | 
| 4 | 
            +
             * Iterating with `pairs` will only iterate the array part of a {@link LuaCustomTable}.
         | 
| 5 | 
            +
             *
         | 
| 6 | 
            +
             * **Note**: you can also iterate on a LuaCustomTable directly without using `pairs`, e.g. `for(const [k, v] of table)`.
         | 
| 7 | 
            +
             */
         | 
| 8 | 
            +
            declare function pairs<V>(table: LuaCustomTable<number | string, V>): LuaIterable<LuaMultiReturn<[number, V]>>
         | 
| 9 | 
            +
             | 
| 10 | 
            +
            /** **Note**: you can also iterate on a LuaCustomTable directly without using `pairs`, e.g. `for(const [k, v] of table)`. */
         | 
| 11 | 
            +
            declare function pairs<K extends number | string, V>(table: LuaCustomTable<K, V>): LuaIterable<LuaMultiReturn<[K, V]>>
         | 
| 12 | 
            +
             | 
| 13 | 
            +
            /** @deprecated {@link LuaCustomTable} cannot be iterated with `ipairs`; Use {@link pairs} instead. */
         | 
| 14 | 
            +
            declare function ipairs(table: LuaCustomTable<any, any>): never
         |