@aplaytest/flaky 0.1.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/dist/.tsbuildinfo +1 -0
- package/dist/analyze.d.ts +46 -0
- package/dist/analyze.d.ts.map +1 -0
- package/dist/analyze.js +68 -0
- package/dist/analyze.js.map +1 -0
- package/dist/bisect.d.ts +69 -0
- package/dist/bisect.d.ts.map +1 -0
- package/dist/bisect.js +177 -0
- package/dist/bisect.js.map +1 -0
- package/dist/classify.d.ts +57 -0
- package/dist/classify.d.ts.map +1 -0
- package/dist/classify.js +254 -0
- package/dist/classify.js.map +1 -0
- package/dist/codemod.d.ts +45 -0
- package/dist/codemod.d.ts.map +1 -0
- package/dist/codemod.js +322 -0
- package/dist/codemod.js.map +1 -0
- package/dist/features.d.ts +55 -0
- package/dist/features.d.ts.map +1 -0
- package/dist/features.js +203 -0
- package/dist/features.js.map +1 -0
- package/dist/index.d.ts +23 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +16 -0
- package/dist/index.js.map +1 -0
- package/dist/quarantine.d.ts +76 -0
- package/dist/quarantine.d.ts.map +1 -0
- package/dist/quarantine.js +101 -0
- package/dist/quarantine.js.map +1 -0
- package/dist/score.d.ts +85 -0
- package/dist/score.d.ts.map +1 -0
- package/dist/score.js +140 -0
- package/dist/score.js.map +1 -0
- package/package.json +39 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"fileNames":["../../../node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/typescript/lib/lib.es2023.d.ts","../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2023.array.d.ts","../../../node_modules/typescript/lib/lib.es2023.collection.d.ts","../../../node_modules/typescript/lib/lib.es2023.intl.d.ts","../../../node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../core/dist/taxonomy/kinds.d.ts","../../core/dist/locator/stability.d.ts","../../core/dist/evidence/types.d.ts","../../core/dist/taxonomy/classify.d.ts","../../core/dist/taxonomy/parse-error.d.ts","../../core/dist/version.d.ts","../../core/dist/evidence/id.d.ts","../../core/dist/evidence/redact.d.ts","../../core/dist/evidence/store.d.ts","../../core/dist/history/types.d.ts","../../core/dist/history/store.d.ts","../../core/dist/history/memory-index.d.ts","../../core/dist/history/url.d.ts","../../core/dist/history/ingest.d.ts","../../core/dist/history/playwright-report.d.ts","../../core/dist/history/ingest-playwright.d.ts","../../../node_modules/zod/v4/core/json-schema.d.cts","../../../node_modules/zod/v4/core/standard-schema.d.cts","../../../node_modules/zod/v4/core/registries.d.cts","../../../node_modules/zod/v4/core/to-json-schema.d.cts","../../../node_modules/zod/v4/core/util.d.cts","../../../node_modules/zod/v4/core/versions.d.cts","../../../node_modules/zod/v4/core/schemas.d.cts","../../../node_modules/zod/v4/core/checks.d.cts","../../../node_modules/zod/v4/core/errors.d.cts","../../../node_modules/zod/v4/core/core.d.cts","../../../node_modules/zod/v4/core/parse.d.cts","../../../node_modules/zod/v4/core/regexes.d.cts","../../../node_modules/zod/v4/locales/ar.d.cts","../../../node_modules/zod/v4/locales/az.d.cts","../../../node_modules/zod/v4/locales/be.d.cts","../../../node_modules/zod/v4/locales/bg.d.cts","../../../node_modules/zod/v4/locales/ca.d.cts","../../../node_modules/zod/v4/locales/cs.d.cts","../../../node_modules/zod/v4/locales/da.d.cts","../../../node_modules/zod/v4/locales/de.d.cts","../../../node_modules/zod/v4/locales/el.d.cts","../../../node_modules/zod/v4/locales/en.d.cts","../../../node_modules/zod/v4/locales/eo.d.cts","../../../node_modules/zod/v4/locales/es.d.cts","../../../node_modules/zod/v4/locales/fa.d.cts","../../../node_modules/zod/v4/locales/fi.d.cts","../../../node_modules/zod/v4/locales/fr.d.cts","../../../node_modules/zod/v4/locales/fr-CA.d.cts","../../../node_modules/zod/v4/locales/he.d.cts","../../../node_modules/zod/v4/locales/hr.d.cts","../../../node_modules/zod/v4/locales/hu.d.cts","../../../node_modules/zod/v4/locales/hy.d.cts","../../../node_modules/zod/v4/locales/id.d.cts","../../../node_modules/zod/v4/locales/is.d.cts","../../../node_modules/zod/v4/locales/it.d.cts","../../../node_modules/zod/v4/locales/ja.d.cts","../../../node_modules/zod/v4/locales/ka.d.cts","../../../node_modules/zod/v4/locales/kh.d.cts","../../../node_modules/zod/v4/locales/km.d.cts","../../../node_modules/zod/v4/locales/ko.d.cts","../../../node_modules/zod/v4/locales/lt.d.cts","../../../node_modules/zod/v4/locales/mk.d.cts","../../../node_modules/zod/v4/locales/ms.d.cts","../../../node_modules/zod/v4/locales/nl.d.cts","../../../node_modules/zod/v4/locales/no.d.cts","../../../node_modules/zod/v4/locales/ota.d.cts","../../../node_modules/zod/v4/locales/ps.d.cts","../../../node_modules/zod/v4/locales/pl.d.cts","../../../node_modules/zod/v4/locales/pt.d.cts","../../../node_modules/zod/v4/locales/ro.d.cts","../../../node_modules/zod/v4/locales/ru.d.cts","../../../node_modules/zod/v4/locales/sl.d.cts","../../../node_modules/zod/v4/locales/sv.d.cts","../../../node_modules/zod/v4/locales/ta.d.cts","../../../node_modules/zod/v4/locales/th.d.cts","../../../node_modules/zod/v4/locales/tr.d.cts","../../../node_modules/zod/v4/locales/ua.d.cts","../../../node_modules/zod/v4/locales/uk.d.cts","../../../node_modules/zod/v4/locales/ur.d.cts","../../../node_modules/zod/v4/locales/uz.d.cts","../../../node_modules/zod/v4/locales/vi.d.cts","../../../node_modules/zod/v4/locales/zh-CN.d.cts","../../../node_modules/zod/v4/locales/zh-TW.d.cts","../../../node_modules/zod/v4/locales/yo.d.cts","../../../node_modules/zod/v4/locales/index.d.cts","../../../node_modules/zod/v4/core/doc.d.cts","../../../node_modules/zod/v4/core/api.d.cts","../../../node_modules/zod/v4/core/json-schema-processors.d.cts","../../../node_modules/zod/v4/core/json-schema-generator.d.cts","../../../node_modules/zod/v4/core/index.d.cts","../../../node_modules/zod/v4/classic/errors.d.cts","../../../node_modules/zod/v4/classic/parse.d.cts","../../../node_modules/zod/v4/classic/schemas.d.cts","../../../node_modules/zod/v4/classic/checks.d.cts","../../../node_modules/zod/v4/classic/compat.d.cts","../../../node_modules/zod/v4/classic/from-json-schema.d.cts","../../../node_modules/zod/v4/classic/iso.d.cts","../../../node_modules/zod/v4/classic/coerce.d.cts","../../../node_modules/zod/v4/classic/external.d.cts","../../../node_modules/zod/index.d.cts","../../core/dist/config/schema.d.ts","../../core/dist/index.d.ts","../src/features.ts","../src/score.ts","../src/classify.ts","../src/analyze.ts","../../../node_modules/playwright-core/types/protocol.d.ts","../../../node_modules/playwright-core/types/structs.d.ts","../../../node_modules/zod/v3/helpers/typeAliases.d.cts","../../../node_modules/zod/v3/helpers/util.d.cts","../../../node_modules/zod/v3/ZodError.d.cts","../../../node_modules/zod/v3/locales/en.d.cts","../../../node_modules/zod/v3/errors.d.cts","../../../node_modules/zod/v3/helpers/parseUtil.d.cts","../../../node_modules/zod/v3/helpers/enumUtil.d.cts","../../../node_modules/zod/v3/helpers/errorUtil.d.cts","../../../node_modules/zod/v3/helpers/partialUtil.d.cts","../../../node_modules/zod/v3/standard-schema.d.cts","../../../node_modules/zod/v3/types.d.cts","../../../node_modules/zod/v3/external.d.cts","../../../node_modules/zod/v3/index.d.cts","../../../node_modules/playwright-core/types/types.d.ts","../../../node_modules/playwright-core/index.d.ts","../../../node_modules/playwright/types/test.d.ts","../../../node_modules/playwright/types/testReporter.d.ts","../../../node_modules/@playwright/test/reporter.d.ts","../../runner-playwright/dist/reporter.d.ts","../../runner-playwright/dist/steps.d.ts","../../runner-playwright/dist/sidecar.d.ts","../../runner-playwright/dist/assemble.d.ts","../../../node_modules/playwright/test.d.ts","../../../node_modules/@playwright/test/index.d.ts","../../runner-playwright/dist/fixtures.d.ts","../../runner-playwright/dist/bind.d.ts","../../runner-playwright/dist/spawn.d.ts","../../runner-playwright/dist/api-fixtures.d.ts","../../runner-playwright/dist/index.d.ts","../src/bisect.ts","../../../node_modules/@ts-morph/common/lib/typescript.d.ts","../../../node_modules/@ts-morph/common/lib/ts-morph-common.d.ts","../../../node_modules/ts-morph/lib/ts-morph.d.ts","../src/codemod.ts","../src/quarantine.ts","../src/index.ts","../../../node_modules/@types/deep-eql/index.d.ts","../../../node_modules/assertion-error/index.d.ts","../../../node_modules/@types/chai/index.d.ts","../../../node_modules/@types/node/compatibility/disposable.d.ts","../../../node_modules/@types/node/compatibility/indexable.d.ts","../../../node_modules/@types/node/compatibility/iterators.d.ts","../../../node_modules/@types/node/compatibility/index.d.ts","../../../node_modules/@types/node/globals.typedarray.d.ts","../../../node_modules/@types/node/buffer.buffer.d.ts","../../../node_modules/@types/node/globals.d.ts","../../../node_modules/@types/node/web-globals/abortcontroller.d.ts","../../../node_modules/@types/node/web-globals/domexception.d.ts","../../../node_modules/@types/node/web-globals/events.d.ts","../../../node_modules/buffer/index.d.ts","../../../node_modules/undici-types/header.d.ts","../../../node_modules/undici-types/readable.d.ts","../../../node_modules/undici-types/file.d.ts","../../../node_modules/undici-types/fetch.d.ts","../../../node_modules/undici-types/formdata.d.ts","../../../node_modules/undici-types/connector.d.ts","../../../node_modules/undici-types/client.d.ts","../../../node_modules/undici-types/errors.d.ts","../../../node_modules/undici-types/dispatcher.d.ts","../../../node_modules/undici-types/global-dispatcher.d.ts","../../../node_modules/undici-types/global-origin.d.ts","../../../node_modules/undici-types/pool-stats.d.ts","../../../node_modules/undici-types/pool.d.ts","../../../node_modules/undici-types/handlers.d.ts","../../../node_modules/undici-types/balanced-pool.d.ts","../../../node_modules/undici-types/agent.d.ts","../../../node_modules/undici-types/mock-interceptor.d.ts","../../../node_modules/undici-types/mock-agent.d.ts","../../../node_modules/undici-types/mock-client.d.ts","../../../node_modules/undici-types/mock-pool.d.ts","../../../node_modules/undici-types/mock-errors.d.ts","../../../node_modules/undici-types/proxy-agent.d.ts","../../../node_modules/undici-types/env-http-proxy-agent.d.ts","../../../node_modules/undici-types/retry-handler.d.ts","../../../node_modules/undici-types/retry-agent.d.ts","../../../node_modules/undici-types/api.d.ts","../../../node_modules/undici-types/interceptors.d.ts","../../../node_modules/undici-types/util.d.ts","../../../node_modules/undici-types/cookies.d.ts","../../../node_modules/undici-types/patch.d.ts","../../../node_modules/undici-types/websocket.d.ts","../../../node_modules/undici-types/eventsource.d.ts","../../../node_modules/undici-types/filereader.d.ts","../../../node_modules/undici-types/diagnostics-channel.d.ts","../../../node_modules/undici-types/content-type.d.ts","../../../node_modules/undici-types/cache.d.ts","../../../node_modules/undici-types/index.d.ts","../../../node_modules/@types/node/web-globals/fetch.d.ts","../../../node_modules/@types/node/web-globals/navigator.d.ts","../../../node_modules/@types/node/web-globals/storage.d.ts","../../../node_modules/@types/node/web-globals/streams.d.ts","../../../node_modules/@types/node/assert.d.ts","../../../node_modules/@types/node/assert/strict.d.ts","../../../node_modules/@types/node/async_hooks.d.ts","../../../node_modules/@types/node/buffer.d.ts","../../../node_modules/@types/node/child_process.d.ts","../../../node_modules/@types/node/cluster.d.ts","../../../node_modules/@types/node/console.d.ts","../../../node_modules/@types/node/constants.d.ts","../../../node_modules/@types/node/crypto.d.ts","../../../node_modules/@types/node/dgram.d.ts","../../../node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/@types/node/dns.d.ts","../../../node_modules/@types/node/dns/promises.d.ts","../../../node_modules/@types/node/domain.d.ts","../../../node_modules/@types/node/events.d.ts","../../../node_modules/@types/node/fs.d.ts","../../../node_modules/@types/node/fs/promises.d.ts","../../../node_modules/@types/node/http.d.ts","../../../node_modules/@types/node/http2.d.ts","../../../node_modules/@types/node/https.d.ts","../../../node_modules/@types/node/inspector.d.ts","../../../node_modules/@types/node/inspector.generated.d.ts","../../../node_modules/@types/node/module.d.ts","../../../node_modules/@types/node/net.d.ts","../../../node_modules/@types/node/os.d.ts","../../../node_modules/@types/node/path.d.ts","../../../node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/@types/node/process.d.ts","../../../node_modules/@types/node/punycode.d.ts","../../../node_modules/@types/node/querystring.d.ts","../../../node_modules/@types/node/readline.d.ts","../../../node_modules/@types/node/readline/promises.d.ts","../../../node_modules/@types/node/repl.d.ts","../../../node_modules/@types/node/sea.d.ts","../../../node_modules/@types/node/sqlite.d.ts","../../../node_modules/@types/node/stream.d.ts","../../../node_modules/@types/node/stream/promises.d.ts","../../../node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/@types/node/stream/web.d.ts","../../../node_modules/@types/node/string_decoder.d.ts","../../../node_modules/@types/node/test.d.ts","../../../node_modules/@types/node/timers.d.ts","../../../node_modules/@types/node/timers/promises.d.ts","../../../node_modules/@types/node/tls.d.ts","../../../node_modules/@types/node/trace_events.d.ts","../../../node_modules/@types/node/tty.d.ts","../../../node_modules/@types/node/url.d.ts","../../../node_modules/@types/node/util.d.ts","../../../node_modules/@types/node/v8.d.ts","../../../node_modules/@types/node/vm.d.ts","../../../node_modules/@types/node/wasi.d.ts","../../../node_modules/@types/node/worker_threads.d.ts","../../../node_modules/@types/node/zlib.d.ts","../../../node_modules/@types/node/index.d.ts","../../../node_modules/@types/ssh2/index.d.ts","../../../node_modules/@types/docker-modem/index.d.ts","../../../node_modules/@types/dockerode/index.d.ts","../../../node_modules/@types/estree/index.d.ts","../../../node_modules/@types/ssh2-streams/index.d.ts"],"fileIdsList":[[188,210,260,277,278],[182,210,260,277,278],[196,210,260,277,278],[210,260,277,278],[202,203,210,260,277,278],[210,260,274,277,278,280,292,310,311],[210,260,271,277,278,292,310,311,312],[210,257,258,260,277,278],[210,259,260,277,278],[260,277,278],[210,260,265,277,278,295],[210,260,261,266,271,277,278,280,292,303],[210,260,261,262,271,277,278,280],[205,206,207,210,260,277,278],[210,260,263,277,278,304],[210,260,264,265,272,277,278,281],[210,260,265,277,278,292,300],[210,260,266,268,271,277,278,280],[210,259,260,267,277,278],[210,260,268,269,277,278],[210,260,270,271,277,278],[210,259,260,271,277,278],[210,260,271,272,273,277,278,292,303],[210,260,271,272,273,277,278,287,292,295],[210,252,260,268,271,274,277,278,280,292,303],[210,260,271,272,274,275,277,278,280,292,300,303],[210,260,274,276,277,278,292,300,303],[208,209,210,211,212,213,214,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309],[210,260,271,277,278],[210,260,277,278,279,303],[210,260,268,271,277,278,280,292],[210,260,277,278,281],[210,260,277,278,282],[210,259,260,277,278,283],[210,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309],[210,260,277,278,285],[210,260,277,278,286],[210,260,271,277,278,287,288],[210,260,277,278,287,289,304,306],[210,260,272,277,278],[210,260,271,277,278,292,293,295],[210,260,277,278,294,295],[210,260,277,278,292,293],[210,260,277,278,295],[210,260,277,278,296],[210,257,260,277,278,292,297,303],[210,260,271,277,278,298,299],[210,260,277,278,298,299],[210,260,265,277,278,280,292,300],[210,260,277,278,301],[210,260,277,278,280,302],[210,260,274,277,278,286,303],[210,260,265,277,278,304],[210,260,277,278,292,305],[210,260,277,278,279,306],[210,260,277,278,307],[210,252,260,277,278],[210,252,260,271,273,277,278,283,292,295,303,305,306,308],[210,260,277,278,292,309],[210,260,277,278,292,310],[210,260,271,274,276,277,278,280,292,310],[179,210,260,277,278],[157,164,165,178,210,260,261,272,277,278,292],[181,210,260,277,278],[180,210,260,277,278],[197,210,260,277,278],[210,224,228,260,277,278,303],[210,224,260,277,278,292,303],[210,219,260,277,278],[210,221,224,260,277,278,300,303],[210,260,277,278,280,300],[210,260,277,278,310],[210,219,260,277,278,310],[210,221,224,260,277,278,280,303],[210,216,217,220,223,260,271,277,278,292,303],[210,224,231,260,277,278],[210,216,222,260,277,278],[210,224,245,246,260,277,278],[210,220,224,260,277,278,295,303,310],[210,245,260,277,278,310],[210,218,219,260,277,278,310],[210,224,260,277,278],[210,218,219,220,221,222,223,224,225,226,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,246,247,248,249,250,251,260,277,278],[210,224,239,260,277,278],[210,224,231,232,260,277,278],[210,222,224,232,233,260,277,278],[210,223,260,277,278],[210,216,219,224,260,277,278],[210,224,228,232,233,260,277,278],[210,228,260,277,278],[210,222,224,227,260,277,278,303],[210,216,221,224,231,260,277,278],[210,260,277,278,292],[210,219,224,245,260,277,278,308,310],[156,210,260,277,278],[166,167,178,210,260,277,278],[168,169,210,260,277,278],[166,167,168,170,171,176,210,260,277,278],[167,168,210,260,277,278],[176,210,260,277,278],[177,210,260,277,278],[168,210,260,277,278],[166,167,168,171,172,173,174,175,210,260,277,278],[147,210,260,277,278],[147,150,210,260,277,278],[82,142,145,147,148,149,150,151,152,153,154,155,210,260,277,278],[78,80,150,210,260,277,278],[147,148,210,260,277,278],[79,147,149,210,260,277,278],[80,82,84,85,86,87,210,260,277,278],[82,84,86,87,210,260,277,278],[82,84,86,210,260,277,278],[79,82,84,85,87,210,260,277,278],[78,80,81,82,83,84,85,86,87,88,89,142,143,144,145,146,210,260,277,278],[78,80,81,84,210,260,277,278],[80,81,84,210,260,277,278],[84,87,210,260,277,278],[78,79,81,82,83,85,86,87,210,260,277,278],[78,79,80,84,147,210,260,277,278],[84,85,86,87,210,260,277,278],[86,210,260,277,278],[90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,210,260,277,278],[157,210,260,277,278],[64,210,260,277,278],[62,63,210,260,277,278],[72,75,76,210,260,277,278],[72,210,260,277,278],[71,72,210,260,277,278],[71,210,260,277,278],[62,64,210,260,277,278],[62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,158,210,260,277,278],[159,160,161,162,210,260,277,278],[162,194,210,260,277,278],[160,161,210,260,277,278],[198,210,260,277,278],[159,210,260,277,278],[160,161,162,163,195,199,200,210,260,277,278],[189,210,260,277,278],[159,185,186,210,260,277,278],[159,184,185,186,187,190,191,192,193,210,260,277,278],[159,183,210,260,277,278]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"27bdc30a0e32783366a5abeda841bc22757c1797de8681bbe81fbc735eeb1c10","impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"8cdf8847677ac7d20486e54dd3fcf09eda95812ac8ace44b4418da1bbbab6eb8","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"df83c2a6c73228b625b0beb6669c7ee2a09c914637e2d35170723ad49c0f5cd4","affectsGlobalScope":true,"impliedFormat":1},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e3c06ea092138bf9fa5e874a1fdbc9d54805d074bee1de31b99a11e2fec239d","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"717f3d25205cb7aa457015fff8e21404fd000c53d65ebdbdedb51357c0ebe7e4","impliedFormat":99},{"version":"3a1521b2fd53734414b37c13230f2b50fbb8abb7e5a7e2d0088ae9c5adcedefd","impliedFormat":99},{"version":"f307dd9e98c0dd2eac07116cbff921047ce37ce578ffbdd2ceb24d6944341f58","impliedFormat":99},{"version":"6a07000e612ab26985fd379c93208a064e3ce4e87d109b49104b8f9ed2931268","impliedFormat":99},{"version":"c797dcf68a38d70efcfd0717e1cde4ceebb80c652d2630460f538e51a5e995f6","impliedFormat":99},{"version":"3c3bddc6344d4d31d83571cfbc0a0a43fefe8f2d863f1bf2bb738c12d73a5b96","impliedFormat":99},{"version":"187a77c78a8fb3c12cb0706c78c4986518527593a6fed4a516d1b18fcf283004","impliedFormat":99},{"version":"3c211d80f5b7543fdfa63b0962082b694bae2c00825314a19666af3d4ec60bed","impliedFormat":99},{"version":"6823183be31f0db3e2ed971e7b1c618bb681e5a83533ab026ea4b1a21575fdb4","impliedFormat":99},{"version":"d509894f9ecc0ca841c5f8fd269a4fe82f52323b8e016d07a1c593222905b3ee","impliedFormat":99},{"version":"933d85a3c2a78c17a493a0bd5fbe7065ce01f24c2f785b52792b178deb668210","impliedFormat":99},{"version":"81bdeb68b2554c68839b880d88bcbe2648edb81d8369c3b17ad22209a1ea8fe8","impliedFormat":99},{"version":"6bda8e7bd000605c09dd921fbcda240fee8121ba366c506956fcce546b1b7899","impliedFormat":99},{"version":"f17c6226d5e20284d8fdb567969ab21f08c0f4dd8492c13b952419f79c7ee43d","impliedFormat":99},{"version":"c52515057d9eab723b77cc3fa0cbd4fb1548fe0f5f03dd53f9f1ed871beb108b","impliedFormat":99},{"version":"b508da1c92e3d669855527d2e4dcf2ca266b9e192b3c5df2fa50f03a39159092","impliedFormat":99},{"version":"c1a2e05eb6d7ca8d7e4a7f4c93ccf0c2857e842a64c98eaee4d85841ee9855e6","impliedFormat":1},{"version":"835fb2909ce458740fb4a49fc61709896c6864f5ce3db7f0a88f06c720d74d02","impliedFormat":1},{"version":"6e5857f38aa297a859cab4ec891408659218a5a2610cd317b6dcbef9979459cc","impliedFormat":1},{"version":"ead8e39c2e11891f286b06ae2aa71f208b1802661fcdb2425cffa4f494a68854","impliedFormat":1},{"version":"40ba6c32eb732a09e4446ade5cb6ad0c147f186f9c9dc6878b90b4418ad9f6ea","impliedFormat":1},{"version":"fdd814741843f85c98281522c58f5a646590ba9019fad2efaa95987655e0611b","impliedFormat":1},{"version":"c78aff4fb58b28b8f642d5095fc7eeb79f00e652a67caa19693af1adabb833c9","impliedFormat":1},{"version":"f80a08ced8818dc99359c0acd5b3f12762e1ce53758007759b0d4e503cbf4a5e","impliedFormat":1},{"version":"37935fa7564bcc6e0bc845b766a24391098d26f7c8245d6e8ab37bc016816e94","impliedFormat":1},{"version":"68add36d9632bc096d7245d24d6b0b8ad5f125183016102a3dad4c9c2438ccb0","impliedFormat":1},{"version":"3a819c2928ee06bbcc84e2797fd3558ae2ebb7e0ed8d87f71732fb2e2acc87b4","impliedFormat":1},{"version":"0f8a263f4c8595c8a07de52e3f3927640c44386c1aa2984de9eae50d75e613b2","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"346fffde7c32da87c2196eb7494422449dc2ca82d3b4e6bf55be1d1a33ffc2b0","impliedFormat":1},{"version":"add0ce7b77ba5b308492fa68f77f24d1ed1d9148534bdf05ac17c30763fc1a79","impliedFormat":1},{"version":"8b5875e4958528042103fdd775e106a7f76bafc29709f0690df9a7d2241d52a7","impliedFormat":1},{"version":"2f67911e4bf4e0717dc2ded248ce2d5e4398d945ee13889a6852c1233ea41508","impliedFormat":1},{"version":"d8430c275b0f59417ea8e173cfb888a4477b430ec35b595bf734f3ec7a7d729f","impliedFormat":1},{"version":"69364df1c776372d7df1fb46a6cb3a6bf7f55e700f533a104e3f9d70a32bec18","impliedFormat":1},{"version":"6042774c61ece4ba77b3bf375f15942eb054675b7957882a00c22c0e4fe5865c","impliedFormat":1},{"version":"5a3bd57ed7a9d9afef74c75f77fce79ba3c786401af9810cdf45907c4e93f30e","impliedFormat":1},{"version":"aef26cf95593c8ace1c62c4724f9afac77bdfa756fb8a00613cd152117cb2f43","impliedFormat":1},{"version":"30db853bb2e60170ba11e39ab48bacecb32d06d4def89eedf17e58ebab762a65","impliedFormat":1},{"version":"e27451b24234dfed45f6cf22112a04955183a99c42a2691fb4936d63cfe42761","impliedFormat":1},{"version":"2316301dd223d31962d917999acf8e543e0119c5d24ec984c9f22cb23247160c","impliedFormat":1},{"version":"58d65a2803c3b6629b0e18c8bf1bc883a686fcf0333230dd0151ab6e85b74307","impliedFormat":1},{"version":"e818471014c77c103330aee11f00a7a00b37b35500b53ea6f337aefacd6174c9","impliedFormat":1},{"version":"268fd6d9f2e807a39a6c5aa654b00f949feb63d3faa7dd0f9bba7dde9172159c","impliedFormat":1},{"version":"29f823cbe0166e10e7176a94afe609a24b9e5af3858628c541ff8ce1727023cd","impliedFormat":1},{"version":"23b7719fd261ad7f952ba1de0bca96bf9f98e8277715a4e85c411c1aab9d6410","impliedFormat":99},{"version":"f6804919eefe16c55372d52c152cbcf64ead302377193dd825e21bf5bb1a8eb0","impliedFormat":99},{"version":"77cf8f145c6758f148ea6b77c77e3c2b372cfd71d54cedc9eb5b70c578859de4","signature":"d177d03e4578d1efdf3eebc1cf4950b2493b84c8390e41cb486491c3b61d07f3","impliedFormat":99},{"version":"f4f662b07457e84d53dca6d3717186c4a44d2d08931c503932279a66b12bcd19","signature":"5da92e27e3af10be13101b6de190045b45d9239b2fa68dc114de693f1bf0ba04","impliedFormat":99},{"version":"70a8e9d50ae8edd14a92251c0d7d451b5284d01580f333ab5080e1310a4a70e5","signature":"50c1b8c7972a6991d02cee472871e5c658ae16a12bc55e56a633fd767eb6da31","impliedFormat":99},{"version":"77ed224e3819670cb1dbc29f20581a2847445715ff94ac5b8e2c2556e9a2c26f","signature":"d989aed75e5dd2a44c410ea63ffc5520290788bb071c09543b577314feb5dd2f","impliedFormat":99},{"version":"17c6561066a9708a09115ad4b49ff23cf81a607f54278c9b9b5865964906f415","impliedFormat":1},{"version":"32727845ab5bd8a9ef3e4844c567c09f6d418fcf0f90d381c00652a6f23e7f6e","impliedFormat":1},{"version":"d3cfde44f8089768ebb08098c96d01ca260b88bccf238d55eee93f1c620ff5a5","impliedFormat":1},{"version":"293eadad9dead44c6fd1db6de552663c33f215c55a1bfa2802a1bceed88ff0ec","impliedFormat":1},{"version":"36eb5babc665b890786550d4a8cb20ef7105673a6d5551fbdd7012877bb26942","impliedFormat":1},{"version":"fec412ded391a7239ef58f455278154b62939370309c1fed322293d98c8796a6","impliedFormat":1},{"version":"e3498cf5e428e6c6b9e97bd88736f26d6cf147dedbfa5a8ad3ed8e05e059af8a","impliedFormat":1},{"version":"dba3f34531fd9b1b6e072928b6f885aa4d28dd6789cbd0e93563d43f4b62da53","impliedFormat":1},{"version":"f672c876c1a04a223cf2023b3d91e8a52bb1544c576b81bf64a8fec82be9969c","impliedFormat":1},{"version":"e4b03ddcf8563b1c0aee782a185286ed85a255ce8a30df8453aade2188bbc904","impliedFormat":1},{"version":"2329d90062487e1eaca87b5e06abcbbeeecf80a82f65f949fd332cfcf824b87b","impliedFormat":1},{"version":"25b3f581e12ede11e5739f57a86e8668fbc0124f6649506def306cad2c59d262","impliedFormat":1},{"version":"93c3e73824ad57f98fd23b39335dbdae2db0bd98199b0dc0b9ccc60bf3c5134a","impliedFormat":1},{"version":"a9ebb67d6bbead6044b43714b50dcb77b8f7541ffe803046fdec1714c1eba206","impliedFormat":1},{"version":"833e92c058d033cde3f29a6c7603f517001d1ddd8020bc94d2067a3bc69b2a8e","impliedFormat":1},{"version":"60200590d8ecf247a6e9c769c6b79bd8e688c3af14ef208072d0c6954b25f125","impliedFormat":1},{"version":"7a8ec10b0834eb7183e4bfcd929838ac77583828e343211bb73676d1e47f6f01","impliedFormat":1},{"version":"6e8044a9ca35eb66823c9ddddf826ca28bf900cd0cb3d31b3007277d094dc21e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a724fe8a5f72bc65ca93f5d2c2d9f49d9be93074ca4c011e71c5fdd0094da619","impliedFormat":1},{"version":"04392f8e190f9e51301f73d17bbb34babd54858c1efc932d2193962f66dabae2","impliedFormat":1},{"version":"c7d994bb382becd674bc8bf1708ab03eee91d0d3b5c6ed3e791c69d451f95d4d","impliedFormat":99},{"version":"a676ce4c3c70ebfb8c691cbd163ed0ff461c9e8d9e0f2a97f31b94b2b01998c5","impliedFormat":99},{"version":"659761fac22950351cbf9ae263ae39c7782141cb22af534c6d2de7959d84e304","impliedFormat":99},{"version":"4885ce45ef8792671bcf938748b8d416be421f97ddbdff36ad042cdb24feec0f","impliedFormat":99},{"version":"3f00324f263189b385c3a9383b1f4dae6237697bcf0801f96aa35c340512d79c","impliedFormat":1},{"version":"ec8997c2e5cea26befc76e7bf990750e96babb16977673a9ff3b5c0575d01e48","impliedFormat":1},{"version":"e3af99d1a4ebdf253bf77ba3b56e00cb975c17009e191718ac83274ef12f01b9","impliedFormat":99},{"version":"acc599436ffbbb39023a52e9b280246eb7af6aa4557929defbcccbf2ca84d5a4","impliedFormat":99},{"version":"bec49fb50fa234097bae1554b072a4ef048765cf9602719e423d5bc106f68df7","impliedFormat":99},{"version":"23d4614f44b78b7b12467e5a3b41c19eba5f45b40b6fa4646f20e764b304829d","impliedFormat":99},{"version":"d9283011dd2f0f8035ecb1d32c1b668c7512c18d144d256bc29a88a48776adbb","impliedFormat":99},{"version":"a4f6d32e887805d0c88a6dd6d212ba28623209d2b85d62ab6a9607dfa45b9d82","signature":"a42a1e88e2c57b16efd5f6e607eb2a19e9a5de3fcf0351941969ca1c6c442a1f","impliedFormat":99},{"version":"5a8bd1be1e99d9c8ff506ecdb984031b550784676e8fb6dfd616007aafd903cc","impliedFormat":1},{"version":"865d1a23e14b20e0cb02dbe0827797b0f0e8c5bd4568dcec24a12afef00d33d6","impliedFormat":1},{"version":"f5845a852a03600100175392ca764626cff5782f4d00d24300d82b8edaddeab9","impliedFormat":1},{"version":"28c23234c8d9a62b12616e61a59bf81550d0864b8a1a7d2e5335d27913f3c48f","signature":"c5b8e480fd5acee9ed17458c39c84db4145afa07c57c3664124cdba425061232","impliedFormat":99},{"version":"05d1957a0ca44ab011e55c20f15b1e9acc26d72c9ccc08f3e0554ca4e16b2424","signature":"91de5dad2a36f6da57e6ca55ae650a71d8d4e76800700c8a20994cd1b9a0f3be","impliedFormat":99},{"version":"4b29935a519240b6754b743a07aa80a5941201b1d9624f2d2cb0c75236413ff9","signature":"5205206fc99dece117f783bbc331eb13b941a9029f7f9d9c0a2fd2b9f180cd3c","impliedFormat":99},{"version":"427fe2004642504828c1476d0af4270e6ad4db6de78c0b5da3e4c5ca95052a99","impliedFormat":1},{"version":"2eeffcee5c1661ddca53353929558037b8cf305ffb86a803512982f99bcab50d","impliedFormat":99},{"version":"9afb4cb864d297e4092a79ee2871b5d3143ea14153f62ef0bb04ede25f432030","affectsGlobalScope":true,"impliedFormat":99},{"version":"6c7176368037af28cb72f2392010fa1cef295d6d6744bca8cfb54985f3a18c3e","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab41ef1f2cdafb8df48be20cd969d875602483859dc194e9c97c8a576892c052","affectsGlobalScope":true,"impliedFormat":1},{"version":"437e20f2ba32abaeb7985e0afe0002de1917bc74e949ba585e49feba65da6ca1","affectsGlobalScope":true,"impliedFormat":1},{"version":"21d819c173c0cf7cc3ce57c3276e77fd9a8a01d35a06ad87158781515c9a438a","impliedFormat":1},{"version":"98cffbf06d6bab333473c70a893770dbe990783904002c4f1a960447b4b53dca","affectsGlobalScope":true,"impliedFormat":1},{"version":"3af97acf03cc97de58a3a4bc91f8f616408099bc4233f6d0852e72a8ffb91ac9","affectsGlobalScope":true,"impliedFormat":1},{"version":"808069bba06b6768b62fd22429b53362e7af342da4a236ed2d2e1c89fcca3b4a","affectsGlobalScope":true,"impliedFormat":1},{"version":"1db0b7dca579049ca4193d034d835f6bfe73096c73663e5ef9a0b5779939f3d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"f26b11d8d8e4b8028f1c7d618b22274c892e4b0ef5b3678a8ccbad85419aef43","affectsGlobalScope":true,"impliedFormat":1},{"version":"4967529644e391115ca5592184d4b63980569adf60ee685f968fd59ab1557188","impliedFormat":1},{"version":"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","impliedFormat":1},{"version":"763fe0f42b3d79b440a9b6e51e9ba3f3f91352469c1e4b3b67bfa4ff6352f3f4","impliedFormat":1},{"version":"25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","impliedFormat":1},{"version":"c464d66b20788266e5353b48dc4aa6bc0dc4a707276df1e7152ab0c9ae21fad8","impliedFormat":1},{"version":"78d0d27c130d35c60b5e5566c9f1e5be77caf39804636bc1a40133919a949f21","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"1d6e127068ea8e104a912e42fc0a110e2aa5a66a356a917a163e8cf9a65e4a75","impliedFormat":1},{"version":"5ded6427296cdf3b9542de4471d2aa8d3983671d4cac0f4bf9c637208d1ced43","impliedFormat":1},{"version":"7f182617db458e98fc18dfb272d40aa2fff3a353c44a89b2c0ccb3937709bfb5","impliedFormat":1},{"version":"cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","impliedFormat":1},{"version":"385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","impliedFormat":1},{"version":"9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","impliedFormat":1},{"version":"0b8a9268adaf4da35e7fa830c8981cfa22adbbe5b3f6f5ab91f6658899e657a7","impliedFormat":1},{"version":"11396ed8a44c02ab9798b7dca436009f866e8dae3c9c25e8c1fbc396880bf1bb","impliedFormat":1},{"version":"ba7bc87d01492633cb5a0e5da8a4a42a1c86270e7b3d2dea5d156828a84e4882","impliedFormat":1},{"version":"4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","impliedFormat":1},{"version":"c21dc52e277bcfc75fac0436ccb75c204f9e1b3fa5e12729670910639f27343e","impliedFormat":1},{"version":"13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","impliedFormat":1},{"version":"9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","impliedFormat":1},{"version":"4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","impliedFormat":1},{"version":"24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","impliedFormat":1},{"version":"ea0148f897b45a76544ae179784c95af1bd6721b8610af9ffa467a518a086a43","impliedFormat":1},{"version":"24c6a117721e606c9984335f71711877293a9651e44f59f3d21c1ea0856f9cc9","impliedFormat":1},{"version":"dd3273ead9fbde62a72949c97dbec2247ea08e0c6952e701a483d74ef92d6a17","impliedFormat":1},{"version":"405822be75ad3e4d162e07439bac80c6bcc6dbae1929e179cf467ec0b9ee4e2e","impliedFormat":1},{"version":"0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","impliedFormat":1},{"version":"e61be3f894b41b7baa1fbd6a66893f2579bfad01d208b4ff61daef21493ef0a8","impliedFormat":1},{"version":"bd0532fd6556073727d28da0edfd1736417a3f9f394877b6d5ef6ad88fba1d1a","impliedFormat":1},{"version":"89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","impliedFormat":1},{"version":"615ba88d0128ed16bf83ef8ccbb6aff05c3ee2db1cc0f89ab50a4939bfc1943f","impliedFormat":1},{"version":"a4d551dbf8746780194d550c88f26cf937caf8d56f102969a110cfaed4b06656","impliedFormat":1},{"version":"8bd86b8e8f6a6aa6c49b71e14c4ffe1211a0e97c80f08d2c8cc98838006e4b88","impliedFormat":1},{"version":"317e63deeb21ac07f3992f5b50cdca8338f10acd4fbb7257ebf56735bf52ab00","impliedFormat":1},{"version":"4732aec92b20fb28c5fe9ad99521fb59974289ed1e45aecb282616202184064f","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"bf67d53d168abc1298888693338cb82854bdb2e69ef83f8a0092093c2d562107","impliedFormat":1},{"version":"b52476feb4a0cbcb25e5931b930fc73cb6643fb1a5060bf8a3dda0eeae5b4b68","affectsGlobalScope":true,"impliedFormat":1},{"version":"f9501cc13ce624c72b61f12b3963e84fad210fbdf0ffbc4590e08460a3f04eba","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7721c4f69f93c91360c26a0a84ee885997d748237ef78ef665b153e622b36c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d97fb21da858fb18b8ae72c314e9743fd52f73ebe2764e12af1db32fc03f853f","affectsGlobalScope":true,"impliedFormat":1},{"version":"0fa06ada475b910e2106c98c68b10483dc8811d0c14a8a8dd36efb2672485b29","impliedFormat":1},{"version":"33e5e9aba62c3193d10d1d33ae1fa75c46a1171cf76fef750777377d53b0303f","impliedFormat":1},{"version":"2b06b93fd01bcd49d1a6bd1f9b65ddcae6480b9a86e9061634d6f8e354c1468f","impliedFormat":1},{"version":"6a0cd27e5dc2cfbe039e731cf879d12b0e2dded06d1b1dedad07f7712de0d7f4","affectsGlobalScope":true,"impliedFormat":1},{"version":"13f5c844119c43e51ce777c509267f14d6aaf31eafb2c2b002ca35584cd13b29","impliedFormat":1},{"version":"e60477649d6ad21542bd2dc7e3d9ff6853d0797ba9f689ba2f6653818999c264","impliedFormat":1},{"version":"c2510f124c0293ab80b1777c44d80f812b75612f297b9857406468c0f4dafe29","affectsGlobalScope":true,"impliedFormat":1},{"version":"5524481e56c48ff486f42926778c0a3cce1cc85dc46683b92b1271865bcf015a","impliedFormat":1},{"version":"4c829ab315f57c5442c6667b53769975acbf92003a66aef19bce151987675bd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"b2ade7657e2db96d18315694789eff2ddd3d8aea7215b181f8a0b303277cc579","impliedFormat":1},{"version":"78dbea00e90d2df8ea3dbef0cc379d95b8be9b71cd6bde4c28728f306811803b","impliedFormat":1},{"version":"4d631b81fa2f07a0e63a9a143d6a82c25c5f051298651a9b69176ba28930756d","impliedFormat":1},{"version":"836a356aae992ff3c28a0212e3eabcb76dd4b0cc06bcb9607aeef560661b860d","impliedFormat":1},{"version":"1e0d1f8b0adfa0b0330e028c7941b5a98c08b600efe7f14d2d2a00854fb2f393","impliedFormat":1},{"version":"41670ee38943d9cbb4924e436f56fc19ee94232bc96108562de1a734af20dc2c","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e1e46d0a9837ee058c100501080c920fa98081ea3956af0374308ba6f22a33e","impliedFormat":1},{"version":"272ca407e0c9068bdc5152552d876e68037ceae3de62e529306403e973dec8e1","impliedFormat":1},{"version":"fa7834c715d5357e4540cee40ce96c3250ddb67a7b879a6b7fa0e86d6696f121","impliedFormat":1},{"version":"22dfb07a7ab15b66ac043829056fe70124844636ae719551812ac631ba04985b","impliedFormat":1},{"version":"a10f0e1854f3316d7ee437b79649e5a6ae3ae14ffe6322b02d4987071a95362e","impliedFormat":1},{"version":"e208f73ef6a980104304b0d2ca5f6bf1b85de6009d2c7e404028b875020fa8f2","impliedFormat":1},{"version":"d163b6bc2372b4f07260747cbc6c0a6405ab3fbcea3852305e98ac43ca59f5bc","impliedFormat":1},{"version":"e6fa9ad47c5f71ff733744a029d1dc472c618de53804eae08ffc243b936f87ff","affectsGlobalScope":true,"impliedFormat":1},{"version":"a6f137d651076822d4fe884287e68fd61785a0d3d1fdb250a5059b691fa897db","impliedFormat":1},{"version":"24826ed94a78d5c64bd857570fdbd96229ad41b5cb654c08d75a9845e3ab7dde","impliedFormat":1},{"version":"8b479a130ccb62e98f11f136d3ac80f2984fdc07616516d29881f3061f2dd472","impliedFormat":1},{"version":"928af3d90454bf656a52a48679f199f64c1435247d6189d1caf4c68f2eaf921f","affectsGlobalScope":true,"impliedFormat":1},{"version":"bceb58df66ab8fb00170df20cd813978c5ab84be1d285710c4eb005d8e9d8efb","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f16a7e4deafa527ed9995a772bb380eb7d3c2c0fd4ae178c5263ed18394db2c","impliedFormat":1},{"version":"933921f0bb0ec12ef45d1062a1fc0f27635318f4d294e4d99de9a5493e618ca2","impliedFormat":1},{"version":"71a0f3ad612c123b57239a7749770017ecfe6b66411488000aba83e4546fde25","impliedFormat":1},{"version":"77fbe5eecb6fac4b6242bbf6eebfc43e98ce5ccba8fa44e0ef6a95c945ff4d98","impliedFormat":1},{"version":"4f9d8ca0c417b67b69eeb54c7ca1bedd7b56034bb9bfd27c5d4f3bc4692daca7","impliedFormat":1},{"version":"0cb167c371eaa8c869f8a7656a7296f2e4fae43b4d8b803a680236b24794e5f9","impliedFormat":1},{"version":"0a839dba0287cc0481ad4beedd48a1c64acf1e212ae865d1315f7007ca215161","impliedFormat":1},{"version":"38dc4655376cd1a4bd6bb3763d92949233e33d38d3dd3cbea7bbf218175a38ef","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"45650f47bfb376c8a8ed39d4bcda5902ab899a3150029684ee4c10676d9fbaee","impliedFormat":1},{"version":"d61e0a64cd175208ac0b83670151a9a6b5916f0d1ffcdc5c29c90b1cebfc5045","affectsGlobalScope":true,"impliedFormat":1},{"version":"18fd40412d102c5564136f29735e5d1c3b455b8a37f920da79561f1fde068208","impliedFormat":1},{"version":"48a679952eefe4cb776d5a0e1ccba2d3eb53b57448bbb7abc1fcebcbd5440188","impliedFormat":1},{"version":"f0be1b8078cd549d91f37c30c222c2a187ac1cf981d994fb476a1adc61387b14","affectsGlobalScope":true,"impliedFormat":1},{"version":"0aaed1d72199b01234152f7a60046bc947f1f37d78d182e9ae09c4289e06a592","impliedFormat":1},{"version":"2d14da6ecb49bf828d83948765ec2d3a579d476bbb9645e749610baa6ec880ca","impliedFormat":1},{"version":"66ba1b2c3e3a3644a1011cd530fb444a96b1b2dfe2f5e837a002d41a1a799e60","impliedFormat":1},{"version":"7e514f5b852fdbc166b539fdd1f4e9114f29911592a5eb10a94bb3a13ccac3c4","impliedFormat":1},{"version":"5b7aa3c4c1a5d81b411e8cb302b45507fea9358d3569196b27eb1a27ae3a90ef","affectsGlobalScope":true,"impliedFormat":1},{"version":"5987a903da92c7462e0b35704ce7da94d7fdc4b89a984871c0e2b87a8aae9e69","affectsGlobalScope":true,"impliedFormat":1},{"version":"ea08a0345023ade2b47fbff5a76d0d0ed8bff10bc9d22b83f40858a8e941501c","impliedFormat":1},{"version":"0aef708fb4c7a6b915e8305cbfac40cd207b032dbaabe9a01889a5fff3254681","impliedFormat":1},{"version":"ae062ce7d9510060c5d7e7952ae379224fb3f8f2dd74e88959878af2057c143b","impliedFormat":1},{"version":"ad9bdafb4e7abf14cc53ce7970486a84c87831e62891e5dfe798ddcd55e84701","affectsGlobalScope":true,"impliedFormat":1},{"version":"358765d5ea8afd285d4fd1532e78b88273f18cb3f87403a9b16fef61ac9fdcfe","impliedFormat":1},{"version":"71d3ae6a5e73ca4130762560425e00984ebaff64d5353a3333d1bb7eb86ef336","impliedFormat":1},{"version":"4371055bb001f40596e2e236b27583e13bf11e75d937962f8947d56519237fb8","impliedFormat":1},{"version":"89189df027e8910200a4b65af1e29a996225cf25975f5c438fbe9361c008fc6b","impliedFormat":1},{"version":"4555baaea5dfc93e0c0ba3fc326b0ba3ad50bb2ab887fa2dff49c7da7bd3bcaa","impliedFormat":1},{"version":"751764bb94219b4ce8f5475dc35d3de2e432fea01a0c9610cd7f69ad05e398c6","impliedFormat":1},{"version":"2e23be37a190953f60cdc4a62f89e5dfe4d6c64f38c71564bc0fb63c7810c9a1","impliedFormat":1}],"root":[[160,163],195,[199,201]],"options":{"allowUnreachableCode":false,"allowUnusedLabels":false,"composite":true,"declaration":true,"declarationMap":true,"esModuleInterop":true,"exactOptionalPropertyTypes":true,"module":199,"noFallthroughCasesInSwitch":true,"noImplicitOverride":true,"noImplicitReturns":true,"noPropertyAccessFromIndexSignature":true,"noUncheckedIndexedAccess":true,"noUnusedLocals":true,"noUnusedParameters":true,"outDir":"./","rootDir":"../src","skipLibCheck":true,"sourceMap":true,"strict":true,"target":10,"tsBuildInfoFile":"./.tsbuildinfo","useUnknownInCatchVariables":true,"verbatimModuleSyntax":true},"referencedMap":[[189,1],[183,2],[197,3],[196,4],[204,5],[202,4],[312,6],[313,7],[314,4],[257,8],[258,8],[259,9],[210,10],[260,11],[261,12],[262,13],[205,4],[208,14],[206,4],[207,4],[263,15],[264,16],[265,17],[266,18],[267,19],[268,20],[269,20],[270,21],[271,22],[272,23],[273,24],[211,4],[209,4],[274,25],[275,26],[276,27],[310,28],[277,29],[278,4],[279,30],[280,31],[281,32],[282,33],[283,34],[284,35],[285,36],[286,37],[287,38],[288,38],[289,39],[290,4],[291,40],[292,41],[294,42],[293,43],[295,44],[296,45],[297,46],[298,47],[299,48],[300,49],[301,50],[302,51],[303,52],[304,53],[305,54],[306,55],[307,56],[212,4],[213,4],[214,4],[253,57],[254,4],[255,4],[256,44],[308,58],[309,59],[315,60],[311,61],[203,4],[215,4],[180,62],[164,4],[165,62],[179,63],[188,64],[181,65],[182,64],[198,66],[60,4],[61,4],[12,4],[11,4],[2,4],[13,4],[14,4],[15,4],[16,4],[17,4],[18,4],[19,4],[20,4],[3,4],[21,4],[22,4],[4,4],[23,4],[27,4],[24,4],[25,4],[26,4],[28,4],[29,4],[30,4],[5,4],[31,4],[32,4],[33,4],[34,4],[6,4],[38,4],[35,4],[36,4],[37,4],[39,4],[7,4],[40,4],[45,4],[46,4],[41,4],[42,4],[43,4],[44,4],[8,4],[50,4],[47,4],[48,4],[49,4],[51,4],[9,4],[52,4],[53,4],[54,4],[56,4],[55,4],[57,4],[58,4],[10,4],[59,4],[1,4],[231,67],[241,68],[230,67],[251,69],[222,70],[221,71],[250,72],[244,73],[249,74],[224,75],[238,76],[223,77],[247,78],[219,79],[218,72],[248,80],[220,81],[225,82],[226,4],[229,82],[216,4],[252,83],[242,84],[233,85],[234,86],[236,87],[232,88],[235,89],[245,72],[227,90],[228,91],[237,92],[217,93],[240,84],[239,82],[243,4],[246,94],[157,95],[168,96],[170,97],[177,98],[172,4],[173,4],[171,99],[174,100],[166,4],[167,4],[178,101],[169,102],[175,4],[176,103],[151,104],[155,105],[152,105],[148,104],[156,106],[153,107],[154,105],[149,108],[150,109],[144,110],[85,111],[87,112],[143,4],[86,113],[147,114],[146,115],[145,116],[78,4],[88,111],[89,4],[80,117],[84,118],[79,4],[81,119],[82,120],[83,4],[90,121],[91,121],[92,121],[93,121],[94,121],[95,121],[96,121],[97,121],[98,121],[99,121],[100,121],[101,121],[102,121],[103,121],[105,121],[104,121],[106,121],[107,121],[108,121],[109,121],[110,121],[142,122],[111,121],[112,121],[113,121],[114,121],[115,121],[116,121],[117,121],[118,121],[119,121],[120,121],[121,121],[122,121],[123,121],[125,121],[124,121],[126,121],[127,121],[128,121],[129,121],[130,121],[131,121],[132,121],[133,121],[134,121],[135,121],[136,121],[137,121],[138,121],[141,121],[139,121],[140,121],[158,123],[68,124],[69,4],[70,124],[64,125],[77,126],[75,127],[73,128],[76,129],[72,129],[71,130],[74,4],[159,131],[63,4],[65,130],[62,4],[66,4],[67,4],[163,132],[195,133],[162,134],[199,135],[160,136],[201,137],[200,4],[161,136],[193,138],[187,139],[191,138],[190,138],[194,140],[184,141],[186,123],[192,4],[185,136]],"latestChangedDtsFile":"./index.d.ts","version":"5.9.3"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Analysis orchestration: history → score → features → class → verdict.
|
|
3
|
+
*
|
|
4
|
+
* Scoring is per **(test, project)**, never per test. A test that fails only
|
|
5
|
+
* on firefox under load has a real 0.3 on that project; averaged across five
|
|
6
|
+
* green projects it becomes a 0.06 and disappears below the threshold. The
|
|
7
|
+
* aggregate is the number that hides the bug.
|
|
8
|
+
*/
|
|
9
|
+
import type { HistoricalAttempt, HistoryStore } from '@aplaytest/core';
|
|
10
|
+
import { type Classification } from './classify.js';
|
|
11
|
+
import { type FlakeFeatures } from './features.js';
|
|
12
|
+
import { type FlakeScore, type ScoreConfig } from './score.js';
|
|
13
|
+
export interface AnalyzeConfig extends ScoreConfig {
|
|
14
|
+
readonly threshold: number;
|
|
15
|
+
/** Only consider runs at or after this ISO timestamp. */
|
|
16
|
+
readonly since?: string;
|
|
17
|
+
/** Cap on attempts pulled per (test, project). */
|
|
18
|
+
readonly windowRuns: number;
|
|
19
|
+
}
|
|
20
|
+
export declare const DEFAULT_ANALYZE_CONFIG: AnalyzeConfig;
|
|
21
|
+
export interface FlakyVerdict {
|
|
22
|
+
readonly testId: string;
|
|
23
|
+
readonly project: string;
|
|
24
|
+
readonly title: string;
|
|
25
|
+
readonly file: string;
|
|
26
|
+
readonly score: FlakeScore;
|
|
27
|
+
readonly features: FlakeFeatures;
|
|
28
|
+
readonly classification: Classification;
|
|
29
|
+
readonly flaky: boolean;
|
|
30
|
+
}
|
|
31
|
+
export interface FlakyReport {
|
|
32
|
+
readonly generatedAt: string;
|
|
33
|
+
readonly analyzed: number;
|
|
34
|
+
/** Every verdict, ordered by score descending. */
|
|
35
|
+
readonly verdicts: readonly FlakyVerdict[];
|
|
36
|
+
/** Verdicts above threshold. */
|
|
37
|
+
readonly flaky: readonly FlakyVerdict[];
|
|
38
|
+
/** Above threshold but classified as a real regression — the urgent ones. */
|
|
39
|
+
readonly regressions: readonly FlakyVerdict[];
|
|
40
|
+
readonly config: AnalyzeConfig;
|
|
41
|
+
}
|
|
42
|
+
export declare function analyzeTest(store: HistoryStore, testId: string, project: string, config?: AnalyzeConfig, now?: number): Promise<FlakyVerdict>;
|
|
43
|
+
export declare function analyzeAll(store: HistoryStore, config?: AnalyzeConfig, now?: number): Promise<FlakyReport>;
|
|
44
|
+
/** Attempts grouped by (testId, project) — used by the bisect and report paths. */
|
|
45
|
+
export declare function groupByTestAndProject(attempts: readonly HistoricalAttempt[]): Map<string, HistoricalAttempt[]>;
|
|
46
|
+
//# sourceMappingURL=analyze.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analyze.d.ts","sourceRoot":"","sources":["../src/analyze.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEvE,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAmB,KAAK,aAAa,EAAE,MAAM,eAAe,CAAC;AACpE,OAAO,EAA4C,KAAK,UAAU,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzG,MAAM,WAAW,aAAc,SAAQ,WAAW;IAChD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,yDAAyD;IACzD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,kDAAkD;IAClD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,eAAO,MAAM,sBAAsB,EAAE,aAIpC,CAAC;AAEF,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;IACjC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,kDAAkD;IAClD,QAAQ,CAAC,QAAQ,EAAE,SAAS,YAAY,EAAE,CAAC;IAC3C,gCAAgC;IAChC,QAAQ,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,CAAC;IACxC,6EAA6E;IAC7E,QAAQ,CAAC,WAAW,EAAE,SAAS,YAAY,EAAE,CAAC;IAC9C,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;CAChC;AAED,wBAAsB,WAAW,CAC/B,KAAK,EAAE,YAAY,EACnB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,MAAM,GAAE,aAAsC,EAC9C,GAAG,GAAE,MAAmB,GACvB,OAAO,CAAC,YAAY,CAAC,CAuBvB;AAED,wBAAsB,UAAU,CAC9B,KAAK,EAAE,YAAY,EACnB,MAAM,GAAE,aAAsC,EAC9C,GAAG,GAAE,MAAmB,GACvB,OAAO,CAAC,WAAW,CAAC,CAuBtB;AAED,mFAAmF;AACnF,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,SAAS,iBAAiB,EAAE,GACrC,GAAG,CAAC,MAAM,EAAE,iBAAiB,EAAE,CAAC,CASlC"}
|
package/dist/analyze.js
ADDED
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Analysis orchestration: history → score → features → class → verdict.
|
|
3
|
+
*
|
|
4
|
+
* Scoring is per **(test, project)**, never per test. A test that fails only
|
|
5
|
+
* on firefox under load has a real 0.3 on that project; averaged across five
|
|
6
|
+
* green projects it becomes a 0.06 and disappears below the threshold. The
|
|
7
|
+
* aggregate is the number that hides the bug.
|
|
8
|
+
*/
|
|
9
|
+
import { classifyFlake } from './classify.js';
|
|
10
|
+
import { extractFeatures } from './features.js';
|
|
11
|
+
import { DEFAULT_SCORE_CONFIG, isFlaky, scoreTest } from './score.js';
|
|
12
|
+
export const DEFAULT_ANALYZE_CONFIG = {
|
|
13
|
+
...DEFAULT_SCORE_CONFIG,
|
|
14
|
+
threshold: 0.15,
|
|
15
|
+
windowRuns: 50,
|
|
16
|
+
};
|
|
17
|
+
export async function analyzeTest(store, testId, project, config = DEFAULT_ANALYZE_CONFIG, now = Date.now()) {
|
|
18
|
+
const query = config.since === undefined ? {} : { since: config.since };
|
|
19
|
+
const scoped = await store.attempts({ ...query, testId, project, limit: config.windowRuns });
|
|
20
|
+
// Cross-project attempts feed the concentration signal only — a per-project
|
|
21
|
+
// window can never tell you that a failure is confined to one browser.
|
|
22
|
+
const acrossProjects = await store.attempts({ ...query, testId });
|
|
23
|
+
const score = scoreTest(scoped, config, now);
|
|
24
|
+
const features = extractFeatures(scoped, acrossProjects);
|
|
25
|
+
const classification = classifyFlake(features, score);
|
|
26
|
+
const first = scoped[0];
|
|
27
|
+
return {
|
|
28
|
+
testId,
|
|
29
|
+
project,
|
|
30
|
+
title: first?.title ?? testId,
|
|
31
|
+
file: first?.file ?? '',
|
|
32
|
+
score,
|
|
33
|
+
features,
|
|
34
|
+
classification,
|
|
35
|
+
flaky: isFlaky(score, config.threshold) && classification.class !== 'genuine-regression',
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
export async function analyzeAll(store, config = DEFAULT_ANALYZE_CONFIG, now = Date.now()) {
|
|
39
|
+
const keys = await store.testKeys();
|
|
40
|
+
const verdicts = [];
|
|
41
|
+
for (const key of keys) {
|
|
42
|
+
verdicts.push(await analyzeTest(store, key.testId, key.project, config, now));
|
|
43
|
+
}
|
|
44
|
+
verdicts.sort((a, b) => b.score.score - a.score.score);
|
|
45
|
+
return {
|
|
46
|
+
generatedAt: new Date(now).toISOString(),
|
|
47
|
+
analyzed: verdicts.length,
|
|
48
|
+
verdicts,
|
|
49
|
+
flaky: verdicts.filter(v => v.flaky),
|
|
50
|
+
// Surfaced separately and deliberately: a regression above the flake
|
|
51
|
+
// threshold is the thing you most need to see, and the thing a naive
|
|
52
|
+
// "flaky tests" list would bury.
|
|
53
|
+
regressions: verdicts.filter(v => v.classification.class === 'genuine-regression' && !v.score.insufficientData),
|
|
54
|
+
config,
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
/** Attempts grouped by (testId, project) — used by the bisect and report paths. */
|
|
58
|
+
export function groupByTestAndProject(attempts) {
|
|
59
|
+
const grouped = new Map();
|
|
60
|
+
for (const attempt of attempts) {
|
|
61
|
+
const key = `${attempt.testId}::${attempt.project}`;
|
|
62
|
+
const existing = grouped.get(key) ?? [];
|
|
63
|
+
existing.push(attempt);
|
|
64
|
+
grouped.set(key, existing);
|
|
65
|
+
}
|
|
66
|
+
return grouped;
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=analyze.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analyze.js","sourceRoot":"","sources":["../src/analyze.ts"],"names":[],"mappings":"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"}
|
package/dist/bisect.d.ts
ADDED
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bisect: turn a hypothesis into a fact.
|
|
3
|
+
*
|
|
4
|
+
* Classification reads history and produces a likely cause. Bisect re-runs the
|
|
5
|
+
* test under CONTROLLED PERTURBATIONS and measures what actually changes the
|
|
6
|
+
* outcome. That difference matters: "this looks load-dependent" is a hunch
|
|
7
|
+
* someone can argue with, whereas "20/20 at one worker, 11/20 at eight" ends
|
|
8
|
+
* the argument.
|
|
9
|
+
*
|
|
10
|
+
* Deliberately no model. The whole value here is that the numbers came from
|
|
11
|
+
* running the test.
|
|
12
|
+
*/
|
|
13
|
+
import type { FlakeClass } from './classify.js';
|
|
14
|
+
export type BisectDimension = 'workers' | 'isolation';
|
|
15
|
+
export interface BisectProbe {
|
|
16
|
+
readonly dimension: BisectDimension;
|
|
17
|
+
/** Human-readable setting, e.g. "workers=8" or "alone". */
|
|
18
|
+
readonly setting: string;
|
|
19
|
+
readonly passed: number;
|
|
20
|
+
readonly failed: number;
|
|
21
|
+
readonly total: number;
|
|
22
|
+
readonly durationMs: number;
|
|
23
|
+
readonly inconclusive: boolean;
|
|
24
|
+
}
|
|
25
|
+
export interface BisectVerdict {
|
|
26
|
+
readonly class: FlakeClass | 'not-reproduced';
|
|
27
|
+
readonly confidence: 'low' | 'medium' | 'high';
|
|
28
|
+
readonly mechanism: string;
|
|
29
|
+
readonly evidence: readonly string[];
|
|
30
|
+
readonly recommendation: string;
|
|
31
|
+
}
|
|
32
|
+
export interface BisectResult {
|
|
33
|
+
readonly title: string;
|
|
34
|
+
readonly file: string;
|
|
35
|
+
readonly probes: readonly BisectProbe[];
|
|
36
|
+
readonly verdict: BisectVerdict;
|
|
37
|
+
}
|
|
38
|
+
export interface BisectOptions {
|
|
39
|
+
readonly cwd: string;
|
|
40
|
+
readonly file: string;
|
|
41
|
+
readonly title: string;
|
|
42
|
+
readonly config?: string | undefined;
|
|
43
|
+
readonly project?: string | undefined;
|
|
44
|
+
/** Repetitions per probe. Higher is slower and more decisive. */
|
|
45
|
+
readonly repeat: number;
|
|
46
|
+
readonly workerLevels: readonly number[];
|
|
47
|
+
readonly dimensions: readonly BisectDimension[];
|
|
48
|
+
readonly timeoutMs?: number | undefined;
|
|
49
|
+
onProbe?: ((probe: BisectProbe) => void) | undefined;
|
|
50
|
+
}
|
|
51
|
+
export declare const DEFAULT_BISECT_OPTIONS: {
|
|
52
|
+
repeat: number;
|
|
53
|
+
workerLevels: number[];
|
|
54
|
+
dimensions: readonly ["workers", "isolation"];
|
|
55
|
+
};
|
|
56
|
+
/**
|
|
57
|
+
* Run the probes. `isolation` compares the test alone against the whole file,
|
|
58
|
+
* which is the cheapest available proxy for co-scheduling pressure without
|
|
59
|
+
* running the entire suite for every level.
|
|
60
|
+
*/
|
|
61
|
+
export declare function bisect(options: BisectOptions): Promise<BisectResult>;
|
|
62
|
+
/**
|
|
63
|
+
* Read the probes.
|
|
64
|
+
*
|
|
65
|
+
* Rules, not judgement — the same measurements must always produce the same
|
|
66
|
+
* verdict, or bisect is just a slower way of guessing.
|
|
67
|
+
*/
|
|
68
|
+
export declare function interpret(probes: readonly BisectProbe[]): BisectVerdict;
|
|
69
|
+
//# sourceMappingURL=bisect.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bisect.d.ts","sourceRoot":"","sources":["../src/bisect.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,WAAW,CAAC;AAEtD,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;IACpC,2DAA2D;IAC3D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;CAChC;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,gBAAgB,CAAC;IAC9C,QAAQ,CAAC,UAAU,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC/C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,SAAS,WAAW,EAAE,CAAC;IACxC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;CACjC;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,iEAAiE;IACjE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,QAAQ,CAAC,UAAU,EAAE,SAAS,eAAe,EAAE,CAAC;IAChD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,OAAO,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;CACtD;AAED,eAAO,MAAM,sBAAsB;;;;CAIlC,CAAC;AA6CF;;;;GAIG;AACH,wBAAsB,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CA2B1E;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,SAAS,WAAW,EAAE,GAAG,aAAa,CAgHvE"}
|
package/dist/bisect.js
ADDED
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bisect: turn a hypothesis into a fact.
|
|
3
|
+
*
|
|
4
|
+
* Classification reads history and produces a likely cause. Bisect re-runs the
|
|
5
|
+
* test under CONTROLLED PERTURBATIONS and measures what actually changes the
|
|
6
|
+
* outcome. That difference matters: "this looks load-dependent" is a hunch
|
|
7
|
+
* someone can argue with, whereas "20/20 at one worker, 11/20 at eight" ends
|
|
8
|
+
* the argument.
|
|
9
|
+
*
|
|
10
|
+
* Deliberately no model. The whole value here is that the numbers came from
|
|
11
|
+
* running the test.
|
|
12
|
+
*/
|
|
13
|
+
import { runPlaywright } from '@aplaytest/runner-playwright';
|
|
14
|
+
export const DEFAULT_BISECT_OPTIONS = {
|
|
15
|
+
repeat: 10,
|
|
16
|
+
workerLevels: [1, 4, 8],
|
|
17
|
+
dimensions: ['workers', 'isolation'],
|
|
18
|
+
};
|
|
19
|
+
const failureRate = (probe) => probe.total === 0 ? 0 : probe.failed / probe.total;
|
|
20
|
+
async function probe(dimension, setting, options, run) {
|
|
21
|
+
const result = await runPlaywright({
|
|
22
|
+
cwd: options.cwd,
|
|
23
|
+
config: options.config,
|
|
24
|
+
file: options.file,
|
|
25
|
+
grepTitle: options.title,
|
|
26
|
+
project: options.project,
|
|
27
|
+
repeatEach: options.repeat,
|
|
28
|
+
timeoutMs: options.timeoutMs,
|
|
29
|
+
...run,
|
|
30
|
+
});
|
|
31
|
+
// Always attribute to the TARGET test, never to the run as a whole. The
|
|
32
|
+
// co-scheduling probe deliberately runs neighbours too, and aggregate stats
|
|
33
|
+
// would charge their failures to the test under examination — which reads
|
|
34
|
+
// as "passes alone, fails together" and manufactures a test-pollution
|
|
35
|
+
// verdict out of an unrelated broken test in the same file.
|
|
36
|
+
const target = result.specs.filter(spec => spec.title === options.title);
|
|
37
|
+
const passed = target.reduce((sum, spec) => sum + spec.passed, 0);
|
|
38
|
+
const failed = target.reduce((sum, spec) => sum + spec.failed, 0);
|
|
39
|
+
const total = passed + failed;
|
|
40
|
+
return {
|
|
41
|
+
dimension,
|
|
42
|
+
setting,
|
|
43
|
+
passed,
|
|
44
|
+
failed,
|
|
45
|
+
total,
|
|
46
|
+
durationMs: result.durationMs,
|
|
47
|
+
// The target never ran: a wrong title, a filtered project, a broken
|
|
48
|
+
// config. Silence about the target is not evidence of health.
|
|
49
|
+
inconclusive: result.inconclusive || total === 0,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Run the probes. `isolation` compares the test alone against the whole file,
|
|
54
|
+
* which is the cheapest available proxy for co-scheduling pressure without
|
|
55
|
+
* running the entire suite for every level.
|
|
56
|
+
*/
|
|
57
|
+
export async function bisect(options) {
|
|
58
|
+
const probes = [];
|
|
59
|
+
const record = (p) => {
|
|
60
|
+
probes.push(p);
|
|
61
|
+
options.onProbe?.(p);
|
|
62
|
+
};
|
|
63
|
+
if (options.dimensions.includes('workers')) {
|
|
64
|
+
for (const workers of options.workerLevels) {
|
|
65
|
+
record(await probe('workers', `workers=${workers}`, options, { workers }));
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
if (options.dimensions.includes('isolation')) {
|
|
69
|
+
// Alone: only this test, single worker — no neighbour can interfere.
|
|
70
|
+
record(await probe('isolation', 'alone', options, { workers: 1 }));
|
|
71
|
+
// File: every test in the file, full parallelism.
|
|
72
|
+
record(await probe('isolation', 'whole file', options, {
|
|
73
|
+
grepTitle: undefined,
|
|
74
|
+
workers: Math.max(...options.workerLevels),
|
|
75
|
+
}));
|
|
76
|
+
}
|
|
77
|
+
return { title: options.title, file: options.file, probes, verdict: interpret(probes) };
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Read the probes.
|
|
81
|
+
*
|
|
82
|
+
* Rules, not judgement — the same measurements must always produce the same
|
|
83
|
+
* verdict, or bisect is just a slower way of guessing.
|
|
84
|
+
*/
|
|
85
|
+
export function interpret(probes) {
|
|
86
|
+
const usable = probes.filter(p => !p.inconclusive && p.total > 0);
|
|
87
|
+
if (usable.length === 0) {
|
|
88
|
+
return {
|
|
89
|
+
class: 'unclassified',
|
|
90
|
+
confidence: 'low',
|
|
91
|
+
mechanism: 'No probe produced a result.',
|
|
92
|
+
evidence: ['every probe was inconclusive — check the file path, title, and project'],
|
|
93
|
+
recommendation: 'Verify the test runs at all: npx playwright test <file> -g "<title>"',
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
const totalFailures = usable.reduce((sum, p) => sum + p.failed, 0);
|
|
97
|
+
if (totalFailures === 0) {
|
|
98
|
+
// Not reproducing is a real, reportable outcome. Reaching for a cause
|
|
99
|
+
// anyway is how a bisect tool starts inventing them.
|
|
100
|
+
return {
|
|
101
|
+
class: 'not-reproduced',
|
|
102
|
+
confidence: 'high',
|
|
103
|
+
mechanism: 'The test passed under every perturbation tried.',
|
|
104
|
+
evidence: usable.map(p => `${p.setting}: ${p.passed}/${p.total} passed`),
|
|
105
|
+
recommendation: 'Raise --repeat, add worker levels, or bisect against the full suite — the trigger is ' +
|
|
106
|
+
'outside the dimensions probed.',
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
const workerProbes = usable.filter(p => p.dimension === 'workers');
|
|
110
|
+
const evidence = usable.map(p => `${p.setting}: ${p.passed}/${p.total} passed${p.failed > 0 ? ` (${p.failed} failed)` : ''}`);
|
|
111
|
+
if (workerProbes.length >= 2) {
|
|
112
|
+
const sorted = [...workerProbes].sort((a, b) => Number(a.setting.split('=')[1]) - Number(b.setting.split('=')[1]));
|
|
113
|
+
const lowest = sorted[0];
|
|
114
|
+
const highest = sorted[sorted.length - 1];
|
|
115
|
+
if (lowest !== undefined && highest !== undefined) {
|
|
116
|
+
const delta = failureRate(highest) - failureRate(lowest);
|
|
117
|
+
const monotonic = sorted.every((p, i) => i === 0 || failureRate(p) >= failureRate(sorted[i - 1] ?? p) - 0.01);
|
|
118
|
+
if (delta >= 0.2) {
|
|
119
|
+
return {
|
|
120
|
+
class: 'resource-contention',
|
|
121
|
+
confidence: monotonic ? 'high' : 'medium',
|
|
122
|
+
mechanism: 'Failure probability rises with parallelism. The test is racing something that ' +
|
|
123
|
+
'contention makes slower — most often a navigation or animation it does not wait for.',
|
|
124
|
+
evidence: [
|
|
125
|
+
...evidence,
|
|
126
|
+
`failure rate ${(failureRate(lowest) * 100).toFixed(0)}% → ` +
|
|
127
|
+
`${(failureRate(highest) * 100).toFixed(0)}% across the worker range`,
|
|
128
|
+
monotonic ? 'rate rises monotonically with worker count' : 'rate rises but not monotonically',
|
|
129
|
+
],
|
|
130
|
+
recommendation: 'Await the signal instead of the timeout — e.g. wait for the navigation response ' +
|
|
131
|
+
'before asserting the URL. Healing is not applicable: the selector is correct.',
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
const alone = usable.find(p => p.setting === 'alone');
|
|
137
|
+
const wholeFile = usable.find(p => p.setting === 'whole file');
|
|
138
|
+
if (alone !== undefined && wholeFile !== undefined) {
|
|
139
|
+
const delta = failureRate(wholeFile) - failureRate(alone);
|
|
140
|
+
if (delta >= 0.2) {
|
|
141
|
+
return {
|
|
142
|
+
class: 'test-pollution',
|
|
143
|
+
confidence: 'high',
|
|
144
|
+
mechanism: 'The test passes alone and fails alongside its neighbours — shared state, not timing.',
|
|
145
|
+
evidence: [
|
|
146
|
+
...evidence,
|
|
147
|
+
`alone ${(failureRate(alone) * 100).toFixed(0)}% failures, ` +
|
|
148
|
+
`with neighbours ${(failureRate(wholeFile) * 100).toFixed(0)}%`,
|
|
149
|
+
],
|
|
150
|
+
recommendation: 'Find the shared state: module-level caches, storage, seeded data mutated by a ' +
|
|
151
|
+
'sibling test. Retrying will not help.',
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
// "Consistently failing" means it NEVER passes — not merely that each probe
|
|
156
|
+
// saw at least one failure. Three failures in twenty is intermittent, and
|
|
157
|
+
// calling that broken would send an ordinary flake to the wrong queue.
|
|
158
|
+
const neverPasses = usable.every(p => failureRate(p) >= 0.95);
|
|
159
|
+
if (neverPasses) {
|
|
160
|
+
return {
|
|
161
|
+
class: 'consistently-failing',
|
|
162
|
+
confidence: 'high',
|
|
163
|
+
mechanism: 'The test failed under every perturbation — it is broken, not flaky.',
|
|
164
|
+
evidence,
|
|
165
|
+
recommendation: 'Fix it or delete it. Quarantine is not the answer for a test that never passes.',
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
return {
|
|
169
|
+
class: 'unclassified',
|
|
170
|
+
confidence: 'low',
|
|
171
|
+
mechanism: 'Failures reproduced, but no dimension explained them.',
|
|
172
|
+
evidence,
|
|
173
|
+
recommendation: 'Probe further: --repeat higher, more worker levels, or a different project. ' +
|
|
174
|
+
'The trigger is real but outside what was measured.',
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
//# sourceMappingURL=bisect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bisect.js","sourceRoot":"","sources":["../src/bisect.ts"],"names":[],"mappings":"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"}
|