Repository: DefinitelyTyped/dt-mergebot
Pull request #431 (2021-12-02 17:24:16)

Update tslint "extends" requirement
formerly `dtslint/dt.json`, now `@definitelytyped/dtslint/dt.json`.

Also update a couple of baselines that were missed in earlier PRs.


Patch:
diff --git a/src/pr-info.ts b/src/pr-info.ts
index 38b8a4d..5b93281 100644
--- a/src/pr-info.ts
+++ b/src/pr-info.ts
@@ -354,7 +354,7 @@ configSuspicious["package.json"] = makeChecker(
     } }
 );
 configSuspicious["tslint.json"] = makeChecker(
-    { extends: "dtslint/dt.json" },
+    { extends: "@definitelytyped/dtslint/dt.json" },
     urls.linterJson
 );
 configSuspicious["tsconfig.json"] = makeChecker(


Test patch:
diff --git a/src/_tests/fixtures/44299-with-files/_files.json b/src/_tests/fixtures/44299-with-files/_files.json
index 81846a7..68f64d6 100644
--- a/src/_tests/fixtures/44299-with-files/_files.json
+++ b/src/_tests/fixtures/44299-with-files/_files.json
@@ -1,4 +1,4 @@
 {
-  "683fb3b1298223256be3a49823686f35bd94a730:types/hcaptcha__vue-hcaptcha/tslint.json": "{\n  \"extends\": \"dtslint/dt.json\"\n}\n",
+  "683fb3b1298223256be3a49823686f35bd94a730:types/hcaptcha__vue-hcaptcha/tslint.json": "{\n  \"extends\": \"@definitelytyped/dtslint/dt.json\"\n}\n",
   "683fb3b1298223256be3a49823686f35bd94a730:types/hcaptcha__vue-hcaptcha/index.d.ts": "// Type definitions for @hcaptcha/vue-hcaptcha 0.2\n// Project: https://github.com/hCaptcha/vue-hcaptcha\n// Definitions by: George Pickering <https://github.com/geopic>\n// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped\n// TypeScript Version: 3.8\n\nimport { VueConstructor } from 'vue';\nexport const h: HCaptcha;\nexport default h;\n"
 }
diff --git a/src/_tests/fixtures/46019/derived.json b/src/_tests/fixtures/46019/derived.json
index 608c159..14d3707 100644
--- a/src/_tests/fixtures/46019/derived.json
+++ b/src/_tests/fixtures/46019/derived.json
@@ -31,7 +31,8 @@
         },
         {
           "path": "types/is-secret/tslint.json",
-          "kind": "package-meta-ok"
+          "kind": "package-meta",
+          "suspect": "not [the expected form](https://github.com/DefinitelyTyped/DefinitelyTyped#user-content-linter-tslintjson) (check: `extends`)"
         }
       ],
       "owners": [],
diff --git a/src/_tests/fixtures/46019/mutations.json b/src/_tests/fixtures/46019/mutations.json
index 14567ef..8fc4630 100644
--- a/src/_tests/fixtures/46019/mutations.json
+++ b/src/_tests/fixtures/46019/mutations.json
@@ -4,7 +4,18 @@
     "variables": {
       "input": {
         "id": "MDEyOklzc3VlQ29tbWVudDY1NzEyNjg3Mg==",
-        "body": "@peterblazejewicz Thank you for submitting this PR!\n\n***This is a live comment which I will keep updated.***\n\n## 1 package in this PR\n\n* `is-secret` (*new!*) — [on npm](https://www.npmjs.com/package/is-secret), [on unpkg](https://unpkg.com/browse/is-secret@latest/)\n  - 2 added owners: @wrumsby, ✎@peterblazejewicz\n\n## Code Reviews\n\nThis PR adds a new definition, so it needs to be reviewed by a DT maintainer before it can be merged.\n\nYou can test the changes of this PR [in the Playground](https://www.typescriptlang.org/play/?dtPR=46019&install-plugin=playground-dt-review).\n\n## Status\n\n * ✅ No merge conflicts\n * ✅ Continuous integration tests have passed\n * ✅ Only a DT maintainer can approve changes when there are new packages added\n\nAll of the items on the list are green. **To merge, you need to post a comment including the string \"Ready to merge\"** to bring in your changes.\n\n----------------------\n... diagnostics scrubbed ...\n<!--typescript_bot_welcome-->"
+        "body": "@peterblazejewicz Thank you for submitting this PR!\n\n***This is a live comment which I will keep updated.***\n\n## 1 package in this PR\n\n* `is-secret` (*new!*) — [on npm](https://www.npmjs.com/package/is-secret), [on unpkg](https://unpkg.com/browse/is-secret@latest/)\n  - 2 added owners: @wrumsby, ✎@peterblazejewicz\n  - Config files to check:\n    - [`is-secret/tslint.json`](https://github.com/DefinitelyTyped/DefinitelyTyped/pull/46019/files/ceca9f768be945932c692d7dd48fa14b6ff38096#diff-2069dd3c71913a21a2c622131eaceeb2125b66d5c6b10077423d4c01735f6fd0): not [the expected form](https://github.com/DefinitelyTyped/DefinitelyTyped#user-content-linter-tslintjson) (check: `extends`)\n\n## Code Reviews\n\nThis PR adds a new definition, so it needs to be reviewed by a DT maintainer before it can be merged.\n\nYou can test the changes of this PR [in the Playground](https://www.typescriptlang.org/play/?dtPR=46019&install-plugin=playground-dt-review).\n\n## Status\n\n * ✅ No merge conflicts\n * ✅ Continuous integration tests have passed\n * ✅ Only a DT maintainer can approve changes when there are new packages added\n\nAll of the items on the list are green. **To merge, you need to post a comment including the string \"Ready to merge\"** to bring in your changes.\n\n----------------------\n... diagnostics scrubbed ...\n<!--typescript_bot_welcome-->"
+      }
+    }
+  },
+  {
+    "mutation": "mutation ($input: AddLabelsToLabelableInput!) {\n  addLabelsToLabelable(input: $input) {\n    __typename\n  }\n}\n",
+    "variables": {
+      "input": {
+        "labelIds": [
+          "MDU6TGFiZWwyMTU0ODE2NTQ5"
+        ],
+        "labelableId": "MDExOlB1bGxSZXF1ZXN0NDQ3ODE1MDgx"
       }
     }
   },
diff --git a/src/_tests/fixtures/46019/result.json b/src/_tests/fixtures/46019/result.json
index fa5489a..fb93161 100644
--- a/src/_tests/fixtures/46019/result.json
+++ b/src/_tests/fixtures/46019/result.json
@@ -3,12 +3,13 @@
   "labels": [
     "Maintainer Approved",
     "New Definition",
+    "Check Config",
     "Self Merge"
   ],
   "responseComments": [
     {
       "tag": "welcome",
-      "status": "@peterblazejewicz Thank you for submitting this PR!\n\n***This is a live comment which I will keep updated.***\n\n## 1 package in this PR\n\n* `is-secret` (*new!*) — [on npm](https://www.npmjs.com/package/is-secret), [on unpkg](https://unpkg.com/browse/is-secret@latest/)\n  - 2 added owners: @wrumsby, ✎@peterblazejewicz\n\n## Code Reviews\n\nThis PR adds a new definition, so it needs to be reviewed by a DT maintainer before it can be merged.\n\nYou can test the changes of this PR [in the Playground](https://www.typescriptlang.org/play/?dtPR=46019&install-plugin=playground-dt-review).\n\n## Status\n\n * ✅ No merge conflicts\n * ✅ Continuous integration tests have passed\n * ✅ Only a DT maintainer can approve changes when there are new packages added\n\nAll of the items on the list are green. **To merge, you need to post a comment including the string \"Ready to merge\"** to bring in your changes.\n\n----------------------\n... diagnostics scrubbed ..."
+      "status": "@peterblazejewicz Thank you for submitting this PR!\n\n***This is a live comment which I will keep updated.***\n\n## 1 package in this PR\n\n* `is-secret` (*new!*) — [on npm](https://www.npmjs.com/package/is-secret), [on unpkg](https://unpkg.com/browse/is-secret@latest/)\n  - 2 added owners: @wrumsby, ✎@peterblazejewicz\n  - Config files to check:\n    - [`is-secret/tslint.json`](https://github.com/DefinitelyTyped/DefinitelyTyped/pull/46019/files/ceca9f768be945932c692d7dd48fa14b6ff38096#diff-2069dd3c71913a21a2c622131eaceeb2125b66d5c6b10077423d4c01735f6fd0): not [the expected form](https://github.com/DefinitelyTyped/DefinitelyTyped#user-content-linter-tslintjson) (check: `extends`)\n\n## Code Reviews\n\nThis PR adds a new definition, so it needs to be reviewed by a DT maintainer before it can be merged.\n\nYou can test the changes of this PR [in the Playground](https://www.typescriptlang.org/play/?dtPR=46019&install-plugin=playground-dt-review).\n\n## Status\n\n * ✅ No merge conflicts\n * ✅ Continuous integration tests have passed\n * ✅ Only a DT maintainer can approve changes when there are new packages added\n\nAll of the items on the list are green. **To merge, you need to post a comment including the string \"Ready to merge\"** to bring in your changes.\n\n----------------------\n... diagnostics scrubbed ..."
     },
     {
       "tag": "merge-offer",
diff --git a/src/_tests/fixtures/46196/_files.json b/src/_tests/fixtures/46196/_files.json
index e304261..5ed4359 100644
--- a/src/_tests/fixtures/46196/_files.json
+++ b/src/_tests/fixtures/46196/_files.json
@@ -1,6 +1,6 @@
 {
   "2f300d234e09e9e34c88e884f6466f2d6d0db399:types/date-arithmetic/tsconfig.json": "{\n    \"compilerOptions\": {\n        \"module\": \"commonjs\",\n        \"lib\": [\"es6\"],\n        \"noImplicitAny\": true,\n        \"noImplicitThis\": true,\n        \"strictNullChecks\": true,\n        \"strictFunctionTypes\": true,\n        \"baseUrl\": \"../\",\n        \"typeRoots\": [\"../\"],\n        \"types\": [],\n        \"noEmit\": true,\n        \"forceConsistentCasingInFileNames\": true\n    },\n    \"files\": [\"index.d.ts\", \"some-new-file.ts\"]\n}\n",
-  "2f300d234e09e9e34c88e884f6466f2d6d0db399:types/date-arithmetic/tslint.json": "{\n    \"extends\": \"dtslint/dt.json\"\n}\n",
+  "2f300d234e09e9e34c88e884f6466f2d6d0db399:types/date-arithmetic/tslint.json": "{\n    \"extends\": \"@definitelytyped/dtslint/dt.json\"\n}\n",
   "master:types/date-arithmetic/tsconfig.json": "{\n    \"compilerOptions\": {\n        \"module\": \"commonjs\",\n        \"lib\": [\n            \"es6\"\n        ],\n        \"noImplicitAny\": true,\n        \"noImplicitThis\": true,\n        \"strictNullChecks\": true,\n        \"strictFunctionTypes\": true,\n        \"baseUrl\": \"../\",\n        \"typeRoots\": [\n            \"../\"\n        ],\n        \"types\": [],\n        \"noEmit\": true,\n        \"forceConsistentCasingInFileNames\": true\n    },\n    \"files\": [\n        \"an-old-file.ts\",\n        \"index.d.ts\",\n        \"date-arithmetic-tests.ts\"\n    ]\n}\n",
   "master:types/date-arithmetic/index.d.ts": "// Type definitions for date-arithmetic v3.1.0\n// Project: https://github.com/jquense/date-math\n// Definitions by: Sergii Paryzhskyi <https://github.com/HeeL>\n// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped\n\ntype Unit = 'second' | 'minutes' | 'hours' | 'day' | 'week' | 'month' | 'year' | 'decade' | 'century';\n\n/** dateArithmetic Public Instance Methods */\ninterface dateArithmeticStatic {\n    /** Add specified amount of units to a provided date and return new date as a result */\n    add(date: Date, num: number, unit: Unit): Date;\n\n    /** Subtract specified amount of units from a provided date and return new date as a result */\n    subtract(date: Date, num: number, unit: Unit): Date;\n\n    /** Compare two dates and return true if they are equal */\n    eq(date: Date, date2: Date): Boolean;\n\n    /** Compare two dates and return false if they are equal */\n    neq(date: Date, date2: Date): Boolean;\n\n    /** Compare two dates and return true if date is greater than date2 */\n    gt(date: Date, date2: Date): Boolean;\n\n    /** Compare two dates and return true if date is greater or equal than date2 */\n    gte(date: Date, date2: Date): Boolean;\n\n    /** Compare two dates and return true if date is less than date2 */\n    lt(date: Date, date2: Date): Boolean;\n\n    /** Compare two dates and return true if date is less or equal than date2 */\n    lte(date: Date, date2: Date): Boolean;\n}\n\ndeclare module 'dateArithmetic' {\n    const dateArithmetic: dateArithmeticStatic;\n    export = dateArithmetic;\n}\n",
   "2f300d234e09e9e34c88e884f6466f2d6d0db399:types/date-arithmetic/index.d.ts": "// Type definitions for date-arithmetic v4.1\n// Project: https://github.com/jquense/date-math\n// Definitions by: Sergii Paryzhskyi <https://github.com/HeeL>\n// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped\n\ntype Unit = 'second' | 'minutes' | 'hours' | 'day' | 'week' | 'month' | 'year' | 'decade' | 'century';\n\n/** dateArithmetic Public Instance Methods */\ninterface dateArithmeticStatic {\n    /** Add specified amount of units to a provided date and return new date as a result */\n    add(date: Date, num: number, unit: Unit): Date;\n\n    /** Subtract specified amount of units from a provided date and return new date as a result */\n    subtract(date: Date, num: number, unit: Unit): Date;\n\n    /** Compare two dates and return true if they are equal */\n    eq(date: Date, date2: Date): Boolean;\n\n    /** Compare two dates and return false if they are equal */\n    neq(date: Date, date2: Date): Boolean;\n\n    /** Compare two dates and return true if date is greater than date2 */\n    gt(date: Date, date2: Date): Boolean;\n\n    /** Compare two dates and return true if date is greater or equal than date2 */\n    gte(date: Date, date2: Date): Boolean;\n\n    /** Compare two dates and return true if date is less than date2 */\n    lt(date: Date, date2: Date): Boolean;\n\n    /** Compare two dates and return true if date is less or equal than date2 */\n    lte(date: Date, date2: Date): Boolean;\n}\n\ndeclare module 'dateArithmetic' {\n    const dateArithmetic: dateArithmeticStatic;\n    export = dateArithmetic;\n}\n"
diff --git a/src/_tests/fixtures/49841/_files.json b/src/_tests/fixtures/49841/_files.json
index b3d2f8f..7700231 100644
--- a/src/_tests/fixtures/49841/_files.json
+++ b/src/_tests/fixtures/49841/_files.json
@@ -1,5 +1,5 @@
 {
   "4849e8876b0ab7adc889ccc35b55fde6f0274837:types/react-native-sha1/tsconfig.json": "{\r\n    \"compilerOptions\": {\r\n        \"module\": \"commonjs\",\r\n        \"lib\": [\r\n            \"es6\"\r\n        ],\r\n        \"noImplicitAny\": true,\r\n        \"noImplicitThis\": true,\r\n        \"strictNullChecks\": true,\r\n        \"strictFunctionTypes\": true,\r\n        \"baseUrl\": \"../\",\r\n        \"typeRoots\": [\r\n            \"../\"\r\n        ],\r\n        \"types\": [],\r\n        \"noEmit\": true,\r\n        \"target\": \"es6\",\r\n        \"forceConsistentCasingInFileNames\": true\r\n    },\r\n    \"files\": [\r\n        \"index.d.ts\",\r\n        \"react-native-sha1-test.ts\"\r\n    ]\r\n}",
-  "4849e8876b0ab7adc889ccc35b55fde6f0274837:types/react-native-sha1/tslint.json": "{ \"extends\": \"dtslint/dt.json\" }",
+  "4849e8876b0ab7adc889ccc35b55fde6f0274837:types/react-native-sha1/tslint.json": "{ \"extends\": \"@definitelytyped/dtslint/dt.json\" }",
   "4849e8876b0ab7adc889ccc35b55fde6f0274837:types/react-native-sha1/index.d.ts": "// Definitions by: Amir Hossein Shekari <https://github.com/shekari-ah>\r\n\r\n\r\n\r\nexport function sha1(input: string): Promise<string>;"
 }
diff --git a/src/_tests/fixtures/52579-edits-infra/_files.json b/src/_tests/fixtures/52579-edits-infra/_files.json
index 9f7a08f..a30a69c 100644
--- a/src/_tests/fixtures/52579-edits-infra/_files.json
+++ b/src/_tests/fixtures/52579-edits-infra/_files.json
@@ -1,5 +1,5 @@
 {
   "5337ea17b2407707bead503cd20c9ca29438f5df:types/vertx__eventbus-bridge-client.js/tsconfig.json": "{\n    \"compilerOptions\": {\n        \"module\": \"commonjs\",\n        \"lib\": [\n            \"es6\"\n        ],\n        \"noImplicitAny\": true,\n        \"noImplicitThis\": true,\n        \"strictFunctionTypes\": true,\n        \"strictNullChecks\": true,\n        \"baseUrl\": \"../\",\n        \"typeRoots\": [\n            \"../\"\n        ],\n        \"types\": [],\n        \"noEmit\": true,\n        \"forceConsistentCasingInFileNames\": true\n    },\n    \"files\": [\n        \"index.d.ts\",\n        \"vertx__eventbus-bridge-client.js-tests.ts\"\n    ]\n}\n",
-  "5337ea17b2407707bead503cd20c9ca29438f5df:types/vertx__eventbus-bridge-client.js/tslint.json": "{ \"extends\": \"dtslint/dt.json\" }\n",
+  "5337ea17b2407707bead503cd20c9ca29438f5df:types/vertx__eventbus-bridge-client.js/tslint.json": "{ \"extends\": \"@definitelytyped/dtslint/dt.json\" }\n",
   "5337ea17b2407707bead503cd20c9ca29438f5df:package.json": "{}"
 }
diff --git a/src/_tests/fixtures/52579/_files.json b/src/_tests/fixtures/52579/_files.json
index 12957ae..6b20eb2 100644
--- a/src/_tests/fixtures/52579/_files.json
+++ b/src/_tests/fixtures/52579/_files.json
@@ -1,5 +1,5 @@
 {
   "5337ea17b2407707bead503cd20c9ca29438f5df:types/vertx__eventbus-bridge-client.js/tsconfig.json": "{\n    \"compilerOptions\": {\n        \"module\": \"commonjs\",\n        \"lib\": [\n            \"es6\"\n        ],\n        \"noImplicitAny\": true,\n        \"noImplicitThis\": true,\n        \"strictFunctionTypes\": true,\n        \"strictNullChecks\": true,\n        \"baseUrl\": \"../\",\n        \"typeRoots\": [\n            \"../\"\n        ],\n        \"types\": [],\n        \"noEmit\": true,\n        \"forceConsistentCasingInFileNames\": true\n    },\n    \"files\": [\n        \"index.d.ts\",\n        \"vertx__eventbus-bridge-client.js-tests.ts\"\n    ]\n}\n",
-  "5337ea17b2407707bead503cd20c9ca29438f5df:types/vertx__eventbus-bridge-client.js/tslint.json": "{ \"extends\": \"dtslint/dt.json\" }\n",
+  "5337ea17b2407707bead503cd20c9ca29438f5df:types/vertx__eventbus-bridge-client.js/tslint.json": "{ \"extends\": \"@definitelytyped/dtslint/dt.json\" }\n",
   "5337ea17b2407707bead503cd20c9ca29438f5df:types/vertx__eventbus-bridge-client.js/index.d.ts": "// Type definitions for @vertx/eventbus-bridge-client.js 1.0\n// Project: http://vertx.io\n// Definitions by: Chiramet Phong Penglerd <https://github.com/Phong6698>\n// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped\n\ndeclare namespace EventBus {\n    type EventBusStatic = new(url: string, options?: any) => EventBus;\n\n    interface EventBus {\n        url: string;\n        options?: EventBusOptions;\n        onopen(): void;\n        onerror(error: EventBusError): void;\n        onclose(): void;\n        registerHandler(address: string, headers?: object, callback?: (error: Error, message: any) => void): void;\n        unregisterHandler(address: string, headers?: object, callback?: (error: Error, message: any) => void): void;\n        send(address: string, message: any, headers?: object, callback?: (error: Error, message: any) => void): void;\n        publish(address: string, message: any, headers?: any): void;\n        enableReconnect(enable: boolean): void;\n        enablePing(enable: boolean): void;\n        close(): void;\n    }\n\n    interface EventBusOptions {\n        vertxbus_reconnect_attempts_max: number; // Max reconnect attempts\n        vertxbus_reconnect_delay_min: number; // Initial delay (in ms) before first reconnect attempt\n        vertxbus_reconnect_delay_max: number; // Max delay (in ms) between reconnect attempts\n        vertxbus_reconnect_exponent: number; // Exponential backoff factor\n        vertxbus_randomization_factor: number; // Randomization factor between 0 and 1\n    }\n\n    interface EventBusError {\n        body: string;\n        type: string;\n    }\n}\n\ndeclare var EventBus: EventBus.EventBusStatic;\nexport = EventBus;\n"
 }
diff --git a/src/_tests/fixtures/55210/_files.json b/src/_tests/fixtures/55210/_files.json
index e907f78..61b8a59 100644
--- a/src/_tests/fixtures/55210/_files.json
+++ b/src/_tests/fixtures/55210/_files.json
@@ -1,8 +1,8 @@
 {
   "fc6b2c11d8ef528a4a2b554b0fe7071b6959f9fe:types/xald-parse-sdk/package.json": "{\n    \"private\": true,\n    \"types\": \"index\",\n    \"typesVersions\": {\n        \"<=3.6\": {\n            \"*\": [\n                \"ts3.6/*\"\n            ]\n        }\n    }\n}\n",
   "fc6b2c11d8ef528a4a2b554b0fe7071b6959f9fe:types/xald-parse-sdk/ts3.6/tsconfig.json": "{\n    \"compilerOptions\": {\n        \"module\": \"commonjs\",\n        \"lib\": [\n            \"es6\",\n            \"dom\"\n        ],\n        \"noImplicitAny\": true,\n        \"noImplicitThis\": true,\n        \"strictNullChecks\": true,\n        \"strictFunctionTypes\": true,\n        \"baseUrl\": \"../../\",\n        \"typeRoots\": [\n            \"../../\"\n        ],\n        \"types\": [],\n        \"noEmit\": true,\n        \"forceConsistentCasingInFileNames\": true\n    },\n    \"files\": [\n        \"index.d.ts\",\n        \"xald-parse-sdk-tests.ts\"\n    ]\n}\n",
-  "fc6b2c11d8ef528a4a2b554b0fe7071b6959f9fe:types/xald-parse-sdk/ts3.6/tslint.json": "{\n    \"extends\": \"dtslint/dt.json\",\n    \"rules\": {\n        \"ban-types\": false,\n        \"no-unnecessary-generics\": false\n    }\n}\n",
+  "fc6b2c11d8ef528a4a2b554b0fe7071b6959f9fe:types/xald-parse-sdk/ts3.6/tslint.json": "{\n    \"extends\": \"@definitelytyped/dtslint/dt.json\",\n    \"rules\": {\n        \"ban-types\": false,\n        \"no-unnecessary-generics\": false\n    }\n}\n",
   "fc6b2c11d8ef528a4a2b554b0fe7071b6959f9fe:types/xald-parse-sdk/tsconfig.json": "{\n    \"compilerOptions\": {\n        \"module\": \"commonjs\",\n        \"lib\": [\n            \"es6\",\n            \"dom\"\n        ],\n        \"noImplicitAny\": true,\n        \"noImplicitThis\": true,\n        \"strictFunctionTypes\": true,\n        \"strictNullChecks\": true,\n        \"baseUrl\": \"../\",\n        \"typeRoots\": [\n            \"../\"\n        ],\n        \"types\": [],\n        \"noEmit\": true,\n        \"forceConsistentCasingInFileNames\": true\n    },\n    \"files\": [\n        \"index.d.ts\",\n        \"xald-parse-sdk-tests.ts\"\n    ]\n}\n",
-  "fc6b2c11d8ef528a4a2b554b0fe7071b6959f9fe:types/xald-parse-sdk/tslint.json": "{\n    \"extends\": \"dtslint/dt.json\",\n    \"rules\": {\n        \"ban-types\": false,\n        \"no-unnecessary-generics\": false\n    }\n}",
+  "fc6b2c11d8ef528a4a2b554b0fe7071b6959f9fe:types/xald-parse-sdk/tslint.json": "{\n    \"extends\": \"@definitelytyped/dtslint/dt.json\",\n    \"rules\": {\n        \"ban-types\": false,\n        \"no-unnecessary-generics\": false\n    }\n}",
   "fc6b2c11d8ef528a4a2b554b0fe7071b6959f9fe:types/xald-parse-sdk/index.d.ts": "// Type definitions for xald-parse-sdk 1.0\n// Project: https://parseplatform.org/\n// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped\n// Minimum TypeScript Version: 3.5\n\n/// <reference types=\"node\" />\n/// <reference path=\"taobao.d.ts\" />\n\nimport { EventEmitter } from \"events\";\n\ndeclare enum ErrorCode {\n    OTHER_CAUSE = -1,\n    INTERNAL_SERVER_ERROR = 1,\n    CONNECTION_FAILED = 100,\n    OBJECT_NOT_FOUND = 101,\n    INVALID_QUERY = 102,\n    INVALID_CLASS_NAME = 103,\n    MISSING_OBJECT_ID = 104,\n    INVALID_KEY_NAME = 105,\n    INVALID_POINTER = 106,\n    INVALID_JSON = 107,\n    COMMAND_UNAVAILABLE = 108,\n    NOT_INITIALIZED = 109,\n    INCORRECT_TYPE = 111,\n    INVALID_CHANNEL_NAME = 112,\n    PUSH_MISCONFIGURED = 115,\n    OBJECT_TOO_LARGE = 116,\n    OPERATION_FORBIDDEN = 119,\n    CACHE_MISS = 120,\n    INVALID_NESTED_KEY = 121,\n    INVALID_FILE_NAME = 122,\n    INVALID_ACL = 123,\n    TIMEOUT = 124,\n    INVALID_EMAIL_ADDRESS = 125,\n    MISSING_CONTENT_TYPE = 126,\n    MISSING_CONTENT_LENGTH = 127,\n    INVALID_CONTENT_LENGTH = 128,\n    FILE_TOO_LARGE = 129,\n    FILE_SAVE_ERROR = 130,\n    DUPLICATE_VALUE = 137,\n    INVALID_ROLE_NAME = 139,\n    EXCEEDED_QUOTA = 140,\n    SCRIPT_FAILED = 141,\n    VALIDATION_ERROR = 142,\n    INVALID_IMAGE_DATA = 150,\n    UNSAVED_FILE_ERROR = 151,\n    INVALID_PUSH_TIME_ERROR = 152,\n    FILE_DELETE_ERROR = 153,\n    REQUEST_LIMIT_EXCEEDED = 155,\n    INVALID_EVENT_NAME = 160,\n    USERNAME_MISSING = 200,\n    PASSWORD_MISSING = 201,\n    USERNAME_TAKEN = 202,\n    EMAIL_TAKEN = 203,\n    EMAIL_MISSING = 204,\n    EMAIL_NOT_FOUND = 205,\n    SESSION_MISSING = 206,\n    MUST_CREATE_USER_THROUGH_SIGNUP = 207,\n    ACCOUNT_ALREADY_LINKED = 208,\n    INVALID_SESSION_TOKEN = 209,\n    LINKED_ID_MISSING = 250,\n    INVALID_LINKED_SESSION = 251,\n    UNSUPPORTED_SERVICE = 252,\n    AGGREGATE_ERROR = 600,\n    FILE_READ_ERROR = 601,\n    X_DOMAIN_REQUEST = 602,\n}\n\ndeclare global {\n    namespace Parse {\n        let applicationId: string;\n        let javaScriptKey: string | undefined;\n        let liveQueryServerURL: string;\n        let masterKey: string | undefined;\n        let serverAuthToken: string | undefined;\n        let serverAuthType: string | undefined;\n        let serverURL: string;\n        let secret: string;\n        let idempotency: boolean;\n        let encryptedUser: boolean;\n        let env: string;\n        let cloudAppId: string;\n        let cloudTimeOut: string;\n\n        interface BatchSizeOption {\n            batchSize?: number | undefined;\n        }\n\n        interface CascadeSaveOption {\n            /** If `false`, nested objects will not be saved (default is `true`). */\n            cascadeSave?: boolean | undefined;\n        }\n\n        interface SuccessOption {\n            success?: Function | undefined;\n        }\n\n        interface ErrorOption {\n            error?: Function | undefined;\n        }\n\n        interface ContextOption {\n            context?: {[key: string]: any};\n        }\n\n        interface FullOptions {\n            success?: Function | undefined;\n            error?: Function | undefined;\n            useMasterKey?: boolean | undefined;\n            sessionToken?: string | undefined;\n            installationId?: string | undefined;\n            progress?: Function | undefined;\n        }\n\n        interface RequestOptions {\n            useMasterKey?: boolean | undefined;\n            sessionToken?: string | undefined;\n            installationId?: string | undefined;\n            batchSize?: number | undefined;\n            include?: string | string[] | undefined;\n            progress?: Function | undefined;\n        }\n\n        interface SuccessFailureOptions extends SuccessOption, ErrorOption {}\n\n        interface SignUpOptions {\n            useMasterKey?: boolean | undefined;\n            installationId?: string | undefined;\n        }\n\n        interface SessionTokenOption {\n            sessionToken?: string | undefined;\n        }\n\n        interface WaitOption {\n            /**\n             * Set to true to wait for the server to confirm success\n             * before triggering an event.\n             */\n            wait?: boolean | undefined;\n        }\n\n        interface UseMasterKeyOption {\n            /**\n             * In Cloud Code and Node only, causes the Master Key to be used for this request.\n             */\n            useMasterKey?: boolean | undefined;\n        }\n\n        interface ScopeOptions extends SessionTokenOption, UseMasterKeyOption {}\n\n        interface SilentOption {\n            /**\n             * Set to true to avoid firing the event.\n             */\n            silent?: boolean | undefined;\n        }\n\n        interface Pointer {\n            __type: string;\n            className: string;\n            objectId: string;\n        }\n\n        interface AuthData {\n            [key: string]: any;\n        }\n\n        /**\n         * Interface declaration for Authentication Providers\n         * https://parseplatform.org/Parse-SDK-JS/api/master/AuthProvider.html\n         */\n        interface AuthProvider {\n            /**\n             * Called when _linkWith isn't passed authData. Handle your own authentication here.\n             */\n            authenticate: () => void;\n            /**\n             * (Optional) Called when service is unlinked. Handle any cleanup here.\n             */\n            deauthenticate?: (() => void) | undefined;\n            /**\n             * Unique identifier for this Auth Provider.\n             */\n            getAuthType: () => string;\n            /**\n             * Called when auth data is syncronized. Can be used to determine if authData is still valid\n             */\n            restoreAuthentication: () => boolean;\n        }\n\n        interface BaseAttributes {\n            createdAt: Date;\n            objectId: string;\n            updatedAt: Date;\n        }\n\n        interface CommonAttributes {\n            ACL: ACL;\n        }\n\n        interface JSONBaseAttributes {\n            createdAt: string;\n            objectId: string;\n            updatedAt: string;\n        }\n\n        /**\n         * Creates a new ACL.\n         * If no argument is given, the ACL has no permissions for anyone.\n         * If the argument is a Parse.User, the ACL will have read and write\n         *   permission for only that user.\n         * If the argument is any other JSON object, that object will be interpretted\n         *   as a serialized ACL created with toJSON().\n         * @see Parse.Object#setACL\n         *\n         * <p>An ACL, or Access Control List can be added to any\n         * <code>Parse.Object</code> to restrict access to only a subset of users\n         * of your application.</p>\n         */\n        class ACL {\n            permissionsById: any;\n\n            constructor(arg1?: any);\n\n            setPublicReadAccess(allowed: boolean): void;\n            getPublicReadAccess(): boolean;\n\n            setPublicWriteAccess(allowed: boolean): void;\n            getPublicWriteAccess(): boolean;\n\n            setReadAccess(userId: User | string, allowed: boolean): void;\n            getReadAccess(userId: User | string): boolean;\n\n            setWriteAccess(userId: User | string, allowed: boolean): void;\n            getWriteAccess(userId: User | string): boolean;\n\n            setRoleReadAccess(role: Role | string, allowed: boolean): void;\n            getRoleReadAccess(role: Role | string): boolean;\n\n            setRoleWriteAccess(role: Role | string, allowed: boolean): void;\n            getRoleWriteAccess(role: Role | string): boolean;\n\n            toJSON(): any;\n        }\n\n        /**\n         * A Parse.File is a local representation of a file that is saved to the Parse\n         * cloud.\n         * @param name The file's name. This will be prefixed by a unique\n         *     value once the file has finished saving. The file name must begin with\n         *     an alphanumeric character, and consist of alphanumeric characters,\n         *     periods, spaces, underscores, or dashes.\n         * @param data The data for the file, as either:\n         *     1. an Array of byte value Numbers, or\n         *     2. an Object like { base64: \"...\" } with a base64-encoded String.\n         *     3. a File object selected with a file upload control. (3) only works\n         *        in Firefox 3.6+, Safari 6.0.2+, Chrome 7+, and IE 10+.\n         *        For example:<pre>\n         * var fileUploadControl = $(\"#profilePhotoFileUpload\")[0];\n         * if (fileUploadControl.files.length > 0) {\n         *   var file = fileUploadControl.files[0];\n         *   var name = \"photo.jpg\";\n         *   var parseFile = new Parse.File(name, file);\n         *   parseFile.save().then(function() {\n         *     // The file has been saved to Parse.\n         *   }, function(error) {\n         *     // The file either could not be read, or could not be saved to Parse.\n         *   });\n         * }</pre>\n         * @param type Optional Content-Type header to use for the file. If\n         *     this is omitted, the content type will be inferred from the name's\n         *     extension.\n         */\n        class File {\n            constructor(\n                name: string,\n                data: number[] | { base64: string } | { size: number; type: string } | { uri: string },\n                type?: string,\n            );\n            /**\n             * Return the data for the file, downloading it if not already present.\n             * Data is present if initialized with Byte Array, Base64 or Saved with Uri.\n             * Data is cleared if saved with File object selected with a file upload control\n             *\n             * @returns Promise that is resolved with base64 data\n             */\n            getData(): Promise<string>;\n            url(options?: { forceSecure?: boolean | undefined }): string;\n            metadata(): Record<string, any>;\n            tags(): Record<string, any>;\n            name(): string;\n            save(options?: FullOptions): Promise<File>;\n            cancel(): void;\n            destroy(): Promise<File>;\n            toJSON(): { __type: string; name: string; url: string };\n            equals(other: File): boolean;\n            setMetadata(metadata: Record<string, any>): void;\n            addMetadata(key: string, value: any)"
 }
diff --git a/src/_tests/fixtures/55210/mutations.json b/src/_tests/fixtures/55210/mutations.json
index 7b4708c..ebf3aa5 100644
--- a/src/_tests/fixtures/55210/mutations.json
+++ b/src/_tests/fixtures/55210/mutations.json
@@ -7,5 +7,14 @@
         "body": "@Dssssds Thank you for submitting this PR! I see this is your first time submitting to DefinitelyTyped 👋 — I'm the local bot who will help you through the process of getting things through.\n\n***This is a live comment which I will keep updated.***\n\n## 1 package in this PR\n\n* `xald-parse-sdk` (*new!*) — [on npm](https://www.npmjs.com/package/xald-parse-sdk), [on unpkg](https://unpkg.com/browse/xald-parse-sdk@latest/)\n  - Config files to check:\n    - [`xald-parse-sdk/ts3.6/tslint.json`](https://github.com/DefinitelyTyped/DefinitelyTyped/pull/55210/files/fc6b2c11d8ef528a4a2b554b0fe7071b6959f9fe#diff-bfc1b741f010db81cead2207a1b4172e9a907b81e1b2e00aaf5634ec6e5f3e7b): not [the expected form](https://github.com/DefinitelyTyped/DefinitelyTyped#user-content-linter-tslintjson) (check: `rules`)\n    - [`xald-parse-sdk/tslint.json`](https://github.com/DefinitelyTyped/DefinitelyTyped/pull/55210/files/fc6b2c11d8ef528a4a2b554b0fe7071b6959f9fe#diff-c9e04178a7818e4f645fba6421d9c18e7f9e8be46343ae904ed4ada61296c628): not [the expected form](https://github.com/DefinitelyTyped/DefinitelyTyped#user-content-linter-tslintjson) (check: `rules`)\n\n## Code Reviews\n\nThis PR adds a new definition, so it needs to be reviewed by a DT maintainer before it can be merged.\n\nYou can test the changes of this PR [in the Playground](https://www.typescriptlang.org/play/?dtPR=55210&install-plugin=playground-dt-review).\n\n## Status\n\n * ✅ No merge conflicts\n * ❌ Continuous integration tests have failed\n * 🕐 Only a DT maintainer can approve changes when there are new packages added\n\nOnce every item on this list is checked, I'll ask you for permission to merge and publish the changes.\n\n## Inactive\n\nThis PR has been inactive for 20 days.\n\n----------------------\n... diagnostics scrubbed ...\n<!--typescript_bot_welcome-->"
       }
     }
+  },
+  {
+    "mutation": "mutation ($input: UpdateIssueCommentInput!) {\n  updateIssueComment(input: $input) {\n    __typename\n  }\n}\n",
+    "variables": {
+      "input": {
+        "id": "IC_kwDOAFz6BM41sLgG",
+        "body": "🔔 @Dssssds — there are no owners, but it would still be good if you find someone to [review this PR](https://github.com/DefinitelyTyped/DefinitelyTyped/pull/55210/files) in the next few days, otherwise a maintainer will look at it. (And if you do find someone, maybe even recruit them to be a second owner to make future changes easier...)\n<!--typescript_bot_pinging-reviewers-others-->"
+      }
+    }
   }
 ]
diff --git a/src/_tests/fixtures/55210/result.json b/src/_tests/fixtures/55210/result.json
index fe1b332..53a9b0b 100644
--- a/src/_tests/fixtures/55210/result.json
+++ b/src/_tests/fixtures/55210/result.json
@@ -13,7 +13,7 @@
     },
     {
       "tag": "pinging-reviewers-others",
-      "status": "🔔 @Dssssds — you're the only owner, but it would still be good if you find someone to [review this PR](https://github.com/DefinitelyTyped/DefinitelyTyped/pull/55210/files) in the next few days, otherwise a maintainer will look at it. (And if you do find someone, maybe even recruit them to be a second owner to make future changes easier...)"
+      "status": "🔔 @Dssssds — there are no owners, but it would still be good if you find someone to [review this PR](https://github.com/DefinitelyTyped/DefinitelyTyped/pull/55210/files) in the next few days, otherwise a maintainer will look at it. (And if you do find someone, maybe even recruit them to be a second owner to make future changes easier...)"
     },
     {
       "tag": "gh-actions-complaint-fc6b2c1",
diff --git a/src/_tests/fixtures/55741/_files.json b/src/_tests/fixtures/55741/_files.json
index bc9c19c..c612579 100644
--- a/src/_tests/fixtures/55741/_files.json
+++ b/src/_tests/fixtures/55741/_files.json
@@ -1,5 +1,5 @@
 {
   "aded751196aea4180928204085f088eb530d7b88:types/ax/tsconfig.json": "{\n    \"compilerOptions\": {\n        \"module\": \"commonjs\",\n        \"lib\": [\n            \"es6\"\n        ],\n        \"noImplicitAny\": true,\n        \"noImplicitThis\": true,\n        \"strictFunctionTypes\": true,\n        \"strictNullChecks\": true,\n        \"baseUrl\": \"../\",\n        \"typeRoots\": [\n            \"../\"\n        ],\n        \"types\": [],\n        \"noEmit\": true,\n        \"forceConsistentCasingInFileNames\": true\n    },\n    \"files\": [\n        \"index.d.ts\",\n        \"ax-tests.ts\"\n    ]\n}\n",
-  "aded751196aea4180928204085f088eb530d7b88:types/ax/tslint.json": "{ \"extends\": \"dtslint/dt.json\" }\n",
+  "aded751196aea4180928204085f088eb530d7b88:types/ax/tslint.json": "{ \"extends\": \"@definitelytyped/dtslint/dt.json\" }\n",
   "aded751196aea4180928204085f088eb530d7b88:types/ax/index.d.ts": "// Type definitions for ax 0.1\n// Project: https://github.com/AstroxNetwork/ax\n// Definitions by: Hsehoiki <https://github.com/AstroxNetwork>\n// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped\n\ninterface AxType {\n    /**\n     * ax function\n     */\n    setNavigationBarTitle: (text: string) => boolean;\n    setNavigationBarColor: (color: string) => boolean;\n}\n\n/**\n * ax is global object\n */\ndeclare const ax: AxType;\n\nexport = ax;\n"
 }
diff --git a/src/_tests/fixtures/55741/derived.json b/src/_tests/fixtures/55741/derived.json
index 0ed54a6..c31bbed 100644
--- a/src/_tests/fixtures/55741/derived.json
+++ b/src/_tests/fixtures/55741/derived.json
@@ -9,6 +9,7 @@
   "hasMergeConflict": false,
   "isFirstContribution": true,
   "tooManyFiles": false,
+  "hugeChange": false,
   "popularityLevel": "Well-liked by everyone",
   "pkgInfo": [
     {