@monorepolint/rules 0.5.0-alpha.10 → 0.5.0-alpha.106
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/.turbo/turbo-clean.log +4 -0
- package/.turbo/turbo-compile-typescript.log +4 -0
- package/.turbo/turbo-lint.log +110 -0
- package/.turbo/turbo-test.log +638 -0
- package/.turbo/turbo-transpile-typescript.log +14 -0
- package/build/js/index.js +1417 -0
- package/build/js/index.js.map +1 -0
- package/build/tsconfig.tsbuildinfo +1 -0
- package/{lib/__tests__/utils.d.ts → build/types/__tests__/alphabeticalScripts.spec.d.ts} +2 -2
- package/build/types/__tests__/alphabeticalScripts.spec.d.ts.map +1 -0
- package/build/types/__tests__/bannedDependencies.spec.d.ts +2 -0
- package/build/types/__tests__/bannedDependencies.spec.d.ts.map +1 -0
- package/build/types/__tests__/consistentDependencies.spec.d.ts.map +1 -0
- package/build/types/__tests__/consistentVersions.spec.d.ts +8 -0
- package/build/types/__tests__/consistentVersions.spec.d.ts.map +1 -0
- package/build/types/__tests__/fileContents.spec.d.ts +8 -0
- package/build/types/__tests__/fileContents.spec.d.ts.map +1 -0
- package/build/types/__tests__/mustSatisfyPeerDependencies.spec.d.ts +8 -0
- package/build/types/__tests__/mustSatisfyPeerDependencies.spec.d.ts.map +1 -0
- package/build/types/__tests__/nestedWorkspaces.spec.d.ts +2 -0
- package/build/types/__tests__/nestedWorkspaces.spec.d.ts.map +1 -0
- package/build/types/__tests__/packageEntry.spec.d.ts.map +1 -0
- package/build/types/__tests__/packageOrder.spec.d.ts.map +1 -0
- package/build/types/__tests__/packageScript.spec.d.ts.map +1 -0
- package/build/types/__tests__/requireDependency.spec.d.ts +2 -0
- package/build/types/__tests__/requireDependency.spec.d.ts.map +1 -0
- package/build/types/__tests__/utils.d.ts +81 -0
- package/build/types/__tests__/utils.d.ts.map +1 -0
- package/build/types/alphabeticalDependencies.d.ts +9 -0
- package/build/types/alphabeticalDependencies.d.ts.map +1 -0
- package/build/types/alphabeticalScripts.d.ts +9 -0
- package/build/types/alphabeticalScripts.d.ts.map +1 -0
- package/build/types/bannedDependencies.d.ts +66 -0
- package/build/types/bannedDependencies.d.ts.map +1 -0
- package/build/types/consistentDependencies.d.ts +18 -0
- package/build/types/consistentDependencies.d.ts.map +1 -0
- package/build/types/consistentVersions.d.ts +21 -0
- package/build/types/consistentVersions.d.ts.map +1 -0
- package/build/types/fileContents.d.ts +39 -0
- package/build/types/fileContents.d.ts.map +1 -0
- package/build/types/index.d.ts +20 -0
- package/build/types/index.d.ts.map +1 -0
- package/build/types/mustSatisfyPeerDependencies.d.ts +427 -0
- package/build/types/mustSatisfyPeerDependencies.d.ts.map +1 -0
- package/build/types/nestedWorkspaces.d.ts +10 -0
- package/build/types/nestedWorkspaces.d.ts.map +1 -0
- package/build/types/packageEntry.d.ts +54 -0
- package/build/types/packageEntry.d.ts.map +1 -0
- package/build/types/packageOrder.d.ts +13 -0
- package/build/types/packageOrder.d.ts.map +1 -0
- package/build/types/packageScript.d.ts +37 -0
- package/build/types/packageScript.d.ts.map +1 -0
- package/build/types/public/util.d.ts +2 -0
- package/build/types/public/util.d.ts.map +1 -0
- package/build/types/requireDependency.d.ts +35 -0
- package/build/types/requireDependency.d.ts.map +1 -0
- package/build/types/standardTsconfig.d.ts +53 -0
- package/build/types/standardTsconfig.d.ts.map +1 -0
- package/build/types/util/checkAlpha.d.ts +10 -0
- package/build/types/util/checkAlpha.d.ts.map +1 -0
- package/build/types/util/makeDirectory.d.ts +8 -0
- package/build/types/util/makeDirectory.d.ts.map +1 -0
- package/build/types/util/makeRule.d.ts +13 -0
- package/build/types/util/makeRule.d.ts.map +1 -0
- package/build/types/util/packageDependencyGraphService.d.ts +37 -0
- package/build/types/util/packageDependencyGraphService.d.ts.map +1 -0
- package/package.json +45 -20
- package/src/__tests__/alphabeticalScripts.spec.ts +76 -0
- package/src/__tests__/bannedDependencies.spec.ts +189 -0
- package/src/__tests__/consistentDependencies.spec.ts +42 -28
- package/src/__tests__/consistentVersions.spec.ts +224 -0
- package/src/__tests__/fileContents.spec.ts +79 -0
- package/src/__tests__/mustSatisfyPeerDependencies.spec.ts +1189 -0
- package/src/__tests__/nestedWorkspaces.spec.ts +153 -0
- package/src/__tests__/packageEntry.spec.ts +127 -49
- package/src/__tests__/packageOrder.spec.ts +68 -53
- package/src/__tests__/packageScript.spec.ts +124 -98
- package/src/__tests__/requireDependency.spec.ts +152 -0
- package/src/__tests__/utils.ts +115 -11
- package/src/alphabeticalDependencies.ts +6 -50
- package/src/alphabeticalScripts.ts +19 -0
- package/src/bannedDependencies.ts +134 -45
- package/src/consistentDependencies.ts +39 -16
- package/src/consistentVersions.ts +141 -0
- package/src/fileContents.ts +39 -35
- package/src/index.ts +13 -8
- package/src/mustSatisfyPeerDependencies.ts +744 -0
- package/src/nestedWorkspaces.ts +60 -0
- package/src/packageEntry.ts +71 -27
- package/src/packageOrder.ts +15 -12
- package/src/packageScript.ts +14 -18
- package/src/public/util.ts +1 -0
- package/src/requireDependency.ts +71 -0
- package/src/standardTsconfig.ts +49 -26
- package/src/util/checkAlpha.ts +59 -0
- package/src/util/makeDirectory.ts +24 -0
- package/src/util/makeRule.ts +29 -0
- package/src/util/packageDependencyGraphService.ts +114 -0
- package/tsconfig.json +10 -2
- package/lib/__tests__/consistentDependencies.spec.d.ts.map +0 -1
- package/lib/__tests__/consistentDependencies.spec.js +0 -108
- package/lib/__tests__/consistentDependencies.spec.js.map +0 -1
- package/lib/__tests__/packageEntry.spec.d.ts.map +0 -1
- package/lib/__tests__/packageEntry.spec.js +0 -99
- package/lib/__tests__/packageEntry.spec.js.map +0 -1
- package/lib/__tests__/packageOrder.spec.d.ts.map +0 -1
- package/lib/__tests__/packageOrder.spec.js +0 -115
- package/lib/__tests__/packageOrder.spec.js.map +0 -1
- package/lib/__tests__/packageScript.spec.d.ts.map +0 -1
- package/lib/__tests__/packageScript.spec.js +0 -172
- package/lib/__tests__/packageScript.spec.js.map +0 -1
- package/lib/__tests__/utils.d.ts.map +0 -1
- package/lib/__tests__/utils.js +0 -23
- package/lib/__tests__/utils.js.map +0 -1
- package/lib/alphabeticalDependencies.d.ts +0 -10
- package/lib/alphabeticalDependencies.d.ts.map +0 -1
- package/lib/alphabeticalDependencies.js +0 -56
- package/lib/alphabeticalDependencies.js.map +0 -1
- package/lib/bannedDependencies.d.ts +0 -15
- package/lib/bannedDependencies.d.ts.map +0 -1
- package/lib/bannedDependencies.js +0 -57
- package/lib/bannedDependencies.js.map +0 -1
- package/lib/consistentDependencies.d.ts +0 -10
- package/lib/consistentDependencies.d.ts.map +0 -1
- package/lib/consistentDependencies.js +0 -57
- package/lib/consistentDependencies.js.map +0 -1
- package/lib/fileContents.d.ts +0 -25
- package/lib/fileContents.d.ts.map +0 -1
- package/lib/fileContents.js +0 -77
- package/lib/fileContents.js.map +0 -1
- package/lib/index.d.ts +0 -15
- package/lib/index.d.ts.map +0 -1
- package/lib/index.js +0 -25
- package/lib/index.js.map +0 -1
- package/lib/packageEntry.d.ts +0 -16
- package/lib/packageEntry.d.ts.map +0 -1
- package/lib/packageEntry.js +0 -40
- package/lib/packageEntry.js.map +0 -1
- package/lib/packageOrder.d.ts +0 -12
- package/lib/packageOrder.d.ts.map +0 -1
- package/lib/packageOrder.js +0 -103
- package/lib/packageOrder.js.map +0 -1
- package/lib/packageScript.d.ts +0 -25
- package/lib/packageScript.d.ts.map +0 -1
- package/lib/packageScript.js +0 -89
- package/lib/packageScript.js.map +0 -1
- package/lib/standardTsconfig.d.ts +0 -33
- package/lib/standardTsconfig.d.ts.map +0 -1
- package/lib/standardTsconfig.js +0 -98
- package/lib/standardTsconfig.js.map +0 -1
- package/tsconfig.tsbuildinfo +0 -2439
- /package/{lib → build/types}/__tests__/consistentDependencies.spec.d.ts +0 -0
- /package/{lib → build/types}/__tests__/packageEntry.spec.d.ts +0 -0
- /package/{lib → build/types}/__tests__/packageOrder.spec.d.ts +0 -0
- /package/{lib → build/types}/__tests__/packageScript.spec.d.ts +0 -0
- /package/{jest.config.js → jest.config.cjs} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/alphabeticalDependencies.ts","../../src/util/checkAlpha.ts","../../src/util/makeRule.ts","../../src/alphabeticalScripts.ts","../../src/bannedDependencies.ts","../../src/util/packageDependencyGraphService.ts","../../src/consistentDependencies.ts","../../src/consistentVersions.ts","../../src/fileContents.ts","../../src/mustSatisfyPeerDependencies.ts","../../src/packageOrder.ts","../../src/packageEntry.ts","../../src/packageScript.ts","../../src/standardTsconfig.ts","../../src/nestedWorkspaces.ts","../../src/requireDependency.ts"],"sourcesContent":["/*!\n * Copyright 2019 Palantir Technologies, Inc.\n *\n * Licensed under the MIT license. See LICENSE file in the project root for details.\n *\n */\n\nimport * as r from \"runtypes\";\nimport { checkAlpha } from \"./util/checkAlpha.js\";\nimport { makeRule } from \"./util/makeRule.js\";\nconst Options = r.Undefined;\n\nexport const alphabeticalDependencies = makeRule({\n name: \"alphabeticalDependencies\",\n check: (context) => {\n checkAlpha(context, \"dependencies\");\n checkAlpha(context, \"devDependencies\");\n checkAlpha(context, \"peerDependencies\");\n },\n optionsRuntype: Options,\n});\n","/*!\n * Copyright 2019 Palantir Technologies, Inc.\n *\n * Licensed under the MIT license. See LICENSE file in the project root for details.\n *\n */\n\nimport { Context } from \"@monorepolint/config\";\nimport { diff } from \"jest-diff\";\n\nexport function checkAlpha(\n context: Context,\n block: \"dependencies\" | \"devDependencies\" | \"peerDependencies\" | \"scripts\"\n) {\n const packageJson = context.getPackageJson();\n const packagePath = context.getPackageJsonPath();\n\n const blockToSort = packageJson[block];\n\n if (blockToSort === undefined) {\n return;\n }\n\n const actualOrder = Object.keys(blockToSort);\n const expectedOrder = actualOrder.slice().sort(); // sort mutates, so we need to copy the previous result\n\n if (!arrayOrderCompare(actualOrder, expectedOrder)) {\n context.addError({\n file: packagePath,\n message: createIncorrectOrderErrorMessage(block, packageJson.name!),\n longMessage: diff(expectedOrder, actualOrder, { expand: true }),\n fixer: () => {\n const expectedDependencies: Record<string, string> = {};\n\n expectedOrder.forEach((dep) => {\n expectedDependencies[dep] = blockToSort[dep];\n });\n\n const newPackageJson = { ...packageJson };\n newPackageJson[block] = expectedDependencies;\n context.host.writeJson(packagePath, newPackageJson);\n },\n });\n }\n}\n\nfunction arrayOrderCompare(a: ReadonlyArray<string>, b: ReadonlyArray<string>) {\n for (let index = 0; index < a.length; index++) {\n if (a[index] !== b[index]) {\n return false;\n }\n }\n\n return true;\n}\n\nexport function createIncorrectOrderErrorMessage(block: string, packageName: string) {\n return `Incorrect order of ${block} in ${packageName}'s package.json`;\n}\n","import { Context, RuleEntry, RuleModule } from \"@monorepolint/config\";\nimport * as r from \"runtypes\";\n\nlet globalId = 0;\nexport function makeRule<T extends r.Runtype<unknown>>({\n name,\n check,\n optionsRuntype,\n printStats,\n}: {\n name: string;\n check: (context: Context, options: r.Static<T>, extra: { id: string }) => Promise<unknown> | unknown;\n optionsRuntype: T;\n printStats?: () => void;\n}): RuleFunction<T> {\n return function (ruleEntry) {\n const id = `${name} :: ${globalId++}`;\n return {\n id,\n check: (context) => check(context, ruleEntry.options, { id }),\n name,\n optionsRuntype,\n ruleEntry,\n printStats,\n };\n };\n}\n\ntype RuleFunction<T extends r.Runtype<any>> = (ruleEntry: RuleEntry<r.Static<T>>) => RuleModule<T>;\n","/*!\n * Copyright 2019 Palantir Technologies, Inc.\n *\n * Licensed under the MIT license. See LICENSE file in the project root for details.\n *\n */\n\nimport * as r from \"runtypes\";\nimport { checkAlpha } from \"./util/checkAlpha.js\";\nimport { makeRule } from \"./util/makeRule.js\";\nconst Options = r.Undefined;\n\nexport const alphabeticalScripts = makeRule({\n name: \"alphabeticalScripts\",\n check: (context) => {\n checkAlpha(context, \"scripts\");\n },\n optionsRuntype: Options,\n});\n","/*!\n * Copyright 2019 Palantir Technologies, Inc.\n *\n * Licensed under the MIT license. See LICENSE file in the project root for details.\n *\n */\n\nimport { Context } from \"@monorepolint/config\";\nimport { matchesAnyGlob } from \"@monorepolint/utils\";\nimport { AggregateTiming } from \"@monorepolint/utils\";\nimport * as path from \"node:path\";\nimport * as r from \"runtypes\";\nimport { makeRule } from \"./util/makeRule.js\";\nimport { IPackageDependencyGraphNode, PackageDependencyGraphService } from \"./util/packageDependencyGraphService.js\";\n// FIXME: This rule is messed. bannedTransitiveDependencies doesnt glob\n\nconst bannedDepGlobsField = r.Union(\n r.Array(r.String),\n r.Record({\n glob: r.Array(r.String).optional(),\n exact: r.Array(r.String).optional(),\n })\n);\n\nconst Options = r.Union(\n r.Record({\n bannedDependencies: bannedDepGlobsField,\n bannedTransitiveDependencies: r.Undefined.optional(),\n }),\n\n r.Record({\n bannedDependencies: bannedDepGlobsField.optional(),\n bannedTransitiveDependencies: r.Array(r.String),\n }),\n\n r.Record({\n bannedDependencies: bannedDepGlobsField.optional(),\n bannedTransitiveDependencies: r.Array(r.String).optional(),\n })\n);\n\nexport type Options = r.Static<typeof Options>;\n\n/**\n * We use this locally to avoid making a billion sets. Because check is called once per package\n * (with the exact same config object reference) we can save quite a bit of time by reusing this cache.\n */\nconst setCache = new Map<ReadonlyArray<string>, Set<string>>();\n\nconst aggregateTiming = new AggregateTiming(\":bannedDependencies stats\");\n\nexport const bannedDependencies = makeRule({\n name: \"bannedDependencies\",\n check: (context, opts, extra) => {\n aggregateTiming.start(extra?.id ?? \"unknown id\");\n\n const packageJson = context.getPackageJson();\n const packagePath = context.getPackageJsonPath();\n\n const curDeps = packageJson.dependencies && Object.keys(packageJson.dependencies);\n const curDevDeps = packageJson.devDependencies && Object.keys(packageJson.devDependencies);\n const curPeerDeps = packageJson.peerDependencies && Object.keys(packageJson.peerDependencies);\n\n const { bannedDependencies: banned, bannedTransitiveDependencies: transitives } = opts;\n\n const globs = banned && (Array.isArray(banned) ? banned : banned.glob);\n const exacts = banned && (Array.isArray(banned) ? undefined : banned.exact);\n\n const violations = new Set<string>();\n\n if (globs) {\n if (curDeps) populateProblemsGlobs(globs, curDeps, violations);\n if (curDevDeps) populateProblemsGlobs(globs, curDevDeps, violations);\n if (curPeerDeps) populateProblemsGlobs(globs, curPeerDeps, violations);\n }\n\n if (exacts) {\n let set = setCache.get(exacts);\n if (set === undefined) {\n set = new Set(exacts);\n setCache.set(exacts, set);\n }\n if (curDeps) populateProblemsExact(set, curDeps, violations);\n if (curDevDeps) populateProblemsExact(set, curDevDeps, violations);\n if (curPeerDeps) populateProblemsExact(set, curPeerDeps, violations);\n }\n\n if (violations.size > 0) {\n context.addError({\n file: packagePath,\n message:\n `Found ${violations.size} banned dependencies of package.json:\\n\\t` +\n Array.from(violations)\n .map((v) => `'${v}'`)\n .join(\", \"),\n });\n }\n\n if (transitives) {\n let set = setCache.get(transitives);\n if (set === undefined) {\n set = new Set(transitives);\n setCache.set(transitives, set);\n }\n checkTransitives(context, set);\n }\n\n aggregateTiming.stop();\n },\n optionsRuntype: Options,\n printStats: () => {\n aggregateTiming.printResults();\n },\n});\n\nfunction populateProblemsExact(banned: Set<string>, dependencies: ReadonlyArray<string>, violations: Set<string>) {\n for (const dependency of dependencies) {\n if (banned.has(dependency)) {\n violations.add(dependency);\n }\n }\n}\n\nfunction populateProblemsGlobs(\n bannedDependencyGlobs: ReadonlyArray<string>,\n dependencies: ReadonlyArray<string>,\n violations: Set<string>\n) {\n for (const dependency of dependencies) {\n if (matchesAnyGlob(dependency, bannedDependencyGlobs)) {\n violations.add(dependency);\n }\n }\n}\n\n// This function is slow. God help you if you use this on a big repo\nfunction checkTransitives(context: Context, banned: Set<string>) {\n const graphService = new PackageDependencyGraphService();\n const root = graphService.buildDependencyGraph(path.resolve(context.getPackageJsonPath()), context.host);\n for (const { dependencies, importPath } of graphService.traverse(root)) {\n for (const [dependency] of dependencies) {\n if (banned.has(dependency)) {\n // Remove the starting package since it's obvious in CLI output.\n const [, ...importPathWithoutRoot] = importPath;\n const pathing = [...importPathWithoutRoot.map(nameOrPackageJsonPath), dependency].join(\" -> \");\n\n context.addError({\n file: root.paths.packageJsonPath,\n message: `Banned transitive dependencies in repo: ${pathing}`,\n });\n }\n }\n }\n}\n\nfunction nameOrPackageJsonPath(node: IPackageDependencyGraphNode): string {\n return node.packageJson.name ?? node.paths.packageJsonPath;\n}\n","/**\n * @license Copyright 2019 Palantir Technologies, Inc. All rights reserved.\n */\n\nimport { Host, PackageJson } from \"@monorepolint/utils\";\nimport * as path from \"node:path\";\nimport resolvePackagePath from \"resolve-package-path\";\n\n/** Interface for a node in a package dependency graph. */\nexport interface IPackageDependencyGraphNode {\n packageJson: PackageJson;\n dependencies: Map<string, IPackageDependencyGraphNode>;\n paths: {\n packageJsonPath: string;\n rootDirectory: string;\n };\n}\n\n/** Service abstraction for constructing and traversing package dependency graphs. */\nexport interface IPackageDependencyGraphService {\n /** Construct a graph of package dependencies. */\n buildDependencyGraph(packageJsonPath: string, host: Host, maxDepth?: number): IPackageDependencyGraphNode;\n\n /** Traverse a package dependency graph. */\n traverse(\n root: IPackageDependencyGraphNode,\n opts?: {\n /** Traverse each unique path to a given package (potentially slow). */\n traverseAllPaths?: boolean;\n }\n ): IterableIterator<IPackageDependencyGraphNode & { importPath: IPackageDependencyGraphNode[] }>;\n}\n\n/** Default implementation of the package dependency graph service. */\nexport class PackageDependencyGraphService implements IPackageDependencyGraphService {\n /** Construct a graph of package dependencies and return the root node. */\n public buildDependencyGraph(\n startPackageJsonPath: string,\n host: Host,\n maxDepth?: number\n ): IPackageDependencyGraphNode {\n const nodes = new Map<string, IPackageDependencyGraphNode>();\n const visit = (packageJsonPath: string, currentDepth: number): IPackageDependencyGraphNode => {\n if (nodes.has(packageJsonPath)) {\n return nodes.get(packageJsonPath)!;\n }\n\n const packageJson: PackageJson = host.readJson(packageJsonPath);\n const node: IPackageDependencyGraphNode = {\n packageJson,\n dependencies: new Map<string, IPackageDependencyGraphNode>(),\n paths: {\n packageJsonPath,\n rootDirectory: path.dirname(packageJsonPath),\n },\n };\n\n // It's important that we register the node before visiting its dependencies to avoid cycles\n nodes.set(packageJsonPath, node);\n\n const nextDepth = currentDepth + 1;\n if (maxDepth == null || nextDepth <= maxDepth) {\n const dependencies = packageJson.dependencies != null ? Object.keys(packageJson.dependencies) : [];\n for (const dependency of dependencies) {\n const dependencyPackageJsonPath = resolvePackagePath(dependency, node.paths.rootDirectory);\n if (dependencyPackageJsonPath == null) {\n throw new Error(`Could not resolve ${dependency} from ${node.paths.rootDirectory}`);\n }\n\n node.dependencies.set(dependency, visit(dependencyPackageJsonPath, nextDepth));\n }\n }\n\n return node;\n };\n\n return visit(startPackageJsonPath, 0);\n }\n\n /** Traverse a package dependency graph with an iterator. */\n public *traverse(\n root: IPackageDependencyGraphNode,\n opts = { traverseAllPaths: false }\n ): IterableIterator<IPackageDependencyGraphNode & { importPath: IPackageDependencyGraphNode[] }> {\n const visited = new Set<IPackageDependencyGraphNode>();\n\n function* visit(\n node: IPackageDependencyGraphNode,\n importPath: IPackageDependencyGraphNode[] = []\n ): IterableIterator<IPackageDependencyGraphNode & { importPath: IPackageDependencyGraphNode[] }> {\n // Don't visit a package more than once unless explicitly asked to traverse all paths\n if (!opts.traverseAllPaths && visited.has(node)) {\n return;\n }\n\n // Break cycles when traversing all paths\n if (importPath.indexOf(node) !== -1) {\n return;\n }\n\n // Visit the node\n visited.add(node);\n importPath = [...importPath, node];\n yield { ...node, importPath };\n\n // Recursively visit the node's dependencies\n for (const dependency of node.dependencies.values()) {\n yield* visit(dependency, importPath);\n }\n }\n\n yield* visit(root);\n }\n}\n","/*!\n * Copyright 2019 Palantir Technologies, Inc.\n *\n * Licensed under the MIT license. See LICENSE file in the project root for details.\n *\n */\n\nimport { Context } from \"@monorepolint/config\";\nimport { diff } from \"jest-diff\";\nimport * as r from \"runtypes\";\nimport { makeRule } from \"./util/makeRule.js\";\nconst Options = r\n .Record({\n ignoredDependencies: r.Array(r.String).Or(r.Undefined),\n })\n .Or(r.Undefined);\nexport type Options = r.Static<typeof Options>;\n\nconst skippedVersions = [\"*\", \"latest\"];\n\nexport const consistentDependencies = makeRule({\n name: \"consistentDependencies\",\n check: (context, args) => {\n checkDeps(context, args, \"dependencies\");\n checkDeps(context, args, \"devDependencies\");\n // we don't check peer deps since they can be more lenient\n },\n optionsRuntype: Options,\n});\n\nfunction checkDeps(context: Context, args: Options, block: \"dependencies\" | \"devDependencies\" | \"peerDependencies\") {\n const packageJson = context.getPackageJson();\n const packagePath = context.getPackageJsonPath();\n const dependencies = packageJson[block];\n\n const workspacePackageJson = context.getWorkspaceContext().getPackageJson();\n const workspaceDependencies = workspacePackageJson[block];\n\n const ignoredDeps = args?.ignoredDependencies ?? [];\n const depsToCheck =\n workspaceDependencies == null || ignoredDeps.length === 0\n ? workspaceDependencies\n : omit(workspaceDependencies, ignoredDeps);\n\n if (dependencies === undefined || depsToCheck === undefined) {\n return;\n }\n\n const expectedDependencies = {\n ...dependencies,\n ...filterKeys(depsToCheck, dependencies),\n };\n\n if (JSON.stringify(dependencies) !== JSON.stringify(expectedDependencies)) {\n context.addError({\n file: packagePath,\n message: `Inconsistent ${block} with root in package.json`,\n longMessage: diff(expectedDependencies, dependencies, { expand: true }),\n fixer: () => {\n const newPackageJson = { ...packageJson };\n newPackageJson[block] = expectedDependencies;\n context.host.writeJson(packagePath, newPackageJson);\n },\n });\n }\n}\n\nfunction filterKeys(ob: Record<string, string>, filterOb: Record<string, string>) {\n const newOb: Record<string, any> = {};\n\n for (const key of Object.keys(filterOb)) {\n if (ob[key] !== undefined && skippedVersions.indexOf(filterOb[key]) === -1) {\n newOb[key] = ob[key];\n }\n }\n\n return newOb;\n}\n\nfunction omit<T>(obj: Record<string, T>, keysToOmit: readonly string[]): Record<string, T> {\n const newObj: Record<string, T> = {};\n\n const filtered = Object.entries(obj).filter(([key]) => !keysToOmit.includes(key));\n for (const [key, value] of filtered) {\n newObj[key] = value;\n }\n\n return newObj;\n}\n","/*!\n * Copyright 2020 Palantir Technologies, Inc.\n *\n * Licensed under the MIT license. See LICENSE file in the project root for details.\n *\n */\n\nimport { Context } from \"@monorepolint/config\";\nimport { mutateJson, PackageJson } from \"@monorepolint/utils\";\nimport * as r from \"runtypes\";\nimport { coerce, SemVer } from \"semver\";\nimport { makeRule } from \"./util/makeRule.js\";\nexport const Options = r.Record({\n matchDependencyVersions: r.Dictionary(r.Union(r.String, r.Array(r.String))),\n});\n\nexport type Options = r.Static<typeof Options>;\n\nexport const consistentVersions = makeRule({\n name: \"consistentVersions\",\n check: checkConsistentVersions,\n optionsRuntype: Options,\n});\n\nfunction checkConsistentVersions(context: Context, options: Options) {\n for (const [dependencyPackageName, expectedPackageDependencyValue] of Object.entries(\n options.matchDependencyVersions\n )) {\n if (Array.isArray(expectedPackageDependencyValue)) {\n ensurePackageMatchesSomeVersion(context, dependencyPackageName, expectedPackageDependencyValue);\n } else {\n ensurePackageIsCorrectVersion(context, dependencyPackageName, expectedPackageDependencyValue);\n }\n }\n}\n\nconst ensurePackageIsCorrectVersion = (\n context: Context,\n dependencyPackageName: string,\n expectedPackageDependencyValue: string\n) => {\n const packageJson = context.getPackageJson();\n const packageJsonPath = context.getPackageJsonPath();\n\n const expectedPackageDependencyVersion = coerce(expectedPackageDependencyValue);\n if (expectedPackageDependencyVersion == null) {\n throw new Error(\n `Malformed expected package dependency version defined in monorepolint configuration: ${dependencyPackageName} @ '${expectedPackageDependencyValue}'`\n );\n }\n\n const actualPackageDependencyValue = packageJson.dependencies && packageJson.dependencies[dependencyPackageName];\n const actualPackageDependencyVersion = coerce(actualPackageDependencyValue);\n if (\n actualPackageDependencyVersion != null &&\n actualPackageDependencyVersion.raw !== expectedPackageDependencyVersion.raw\n ) {\n context.addError({\n file: packageJsonPath,\n message: `Expected dependency on ${dependencyPackageName} to match version defined in monorepolint configuration '${expectedPackageDependencyValue}', got '${actualPackageDependencyValue}' instead.`,\n fixer: () =>\n mutateJson<PackageJson>(packageJsonPath, context.host, (input) => {\n input.dependencies![dependencyPackageName] = expectedPackageDependencyValue;\n return input;\n }),\n });\n }\n\n const actualPackageDevDependencyValue =\n packageJson.devDependencies && packageJson.devDependencies[dependencyPackageName];\n const actualPackageDevDependencyVersion = coerce(actualPackageDevDependencyValue);\n if (\n actualPackageDevDependencyVersion != null &&\n actualPackageDevDependencyVersion.raw !== expectedPackageDependencyVersion.raw\n ) {\n context.addError({\n file: packageJsonPath,\n message: `Expected devDependency on ${dependencyPackageName} to match version defined in monorepolint configuration '${expectedPackageDependencyValue}', got '${actualPackageDevDependencyValue}' instead`,\n fixer: () =>\n mutateJson<PackageJson>(packageJsonPath, context.host, (input) => {\n input.devDependencies![dependencyPackageName] = expectedPackageDependencyValue;\n return input;\n }),\n });\n }\n};\n\nconst ensurePackageMatchesSomeVersion = (\n context: Context,\n dependencyPackageName: string,\n acceptedPackageDependencyValues: string[]\n) => {\n const packageJson = context.getPackageJson();\n const packageJsonPath = context.getPackageJsonPath();\n\n const acceptedPackageDependencyVersions: SemVer[] = acceptedPackageDependencyValues.map(\n (acceptedPackageDependencyValue) => {\n const acceptedPackageDependencyVersion = coerce(acceptedPackageDependencyValue);\n if (acceptedPackageDependencyVersion == null) {\n throw new Error(\n `Malformed accepted package dependency version defined in monorepolint configuration: ${dependencyPackageName} @ '${acceptedPackageDependencyValue}'`\n );\n }\n return acceptedPackageDependencyVersion;\n }\n );\n\n const actualPackageDependencyValue = packageJson.dependencies && packageJson.dependencies[dependencyPackageName];\n const actualPackageDependencyVersion = coerce(actualPackageDependencyValue);\n if (\n actualPackageDependencyVersion != null &&\n acceptedPackageDependencyVersions.every(\n (acceptedPackageDependencyVersion) => actualPackageDependencyVersion.raw !== acceptedPackageDependencyVersion.raw\n )\n ) {\n context.addError({\n file: packageJsonPath,\n message: `Expected dependency on ${dependencyPackageName} to match one of '${JSON.stringify(\n acceptedPackageDependencyValues\n )}', got '${actualPackageDependencyValue}' instead.`,\n });\n }\n\n const actualPackageDevDependencyValue =\n packageJson.devDependencies && packageJson.devDependencies[dependencyPackageName];\n const actualPackageDevDependencyVersion = coerce(actualPackageDevDependencyValue);\n if (\n actualPackageDevDependencyVersion != null &&\n acceptedPackageDependencyVersions.every(\n (acceptedPackageDependencyVersion) =>\n actualPackageDevDependencyVersion.raw !== acceptedPackageDependencyVersion.raw\n )\n ) {\n context.addError({\n file: packageJsonPath,\n message: `Expected devDependency on ${dependencyPackageName} to match one of '${JSON.stringify(\n acceptedPackageDependencyValues\n )}', got '${actualPackageDevDependencyValue}' instead.`,\n });\n }\n};\n","/*!\n * Copyright 2023 Palantir Technologies, Inc.\n *\n * Licensed under the MIT license. See LICENSE file in the project root for details.\n *\n */\n\nimport { Context } from \"@monorepolint/config\";\nimport { diff } from \"jest-diff\";\nimport * as path from \"path\";\nimport * as r from \"runtypes\";\nimport { makeRule } from \"./util/makeRule.js\";\nconst Options = r.Union(\n r.Record({\n file: r.String,\n generator: r.Function,\n template: r.Undefined.optional(),\n templateFile: r.Undefined.optional(),\n }),\n\n r.Record({\n file: r.String,\n generator: r.Undefined.optional(),\n template: r.String,\n templateFile: r.Undefined.optional(),\n }),\n\n r.Record({\n file: r.String,\n generator: r.Undefined.optional(),\n template: r.Undefined.optional(),\n templateFile: r.String,\n })\n);\n\ntype Options = r.Static<typeof Options>;\n\nexport const fileContents = makeRule({\n name: \"fileContents\",\n check: (context, opts) => {\n const fullPath = path.join(context.packageDir, opts.file);\n const expectedContent = getExpectedContents(context, opts);\n\n const pathExists = context.host.exists(fullPath);\n const actualContent = pathExists ? context.host.readFile(fullPath, { encoding: \"utf-8\" }) : undefined;\n if (actualContent !== expectedContent) {\n context.addError({\n file: fullPath,\n message: \"Expect file contents to match\",\n longMessage: diff(expectedContent, actualContent, { expand: true }),\n fixer: () => {\n if (expectedContent === undefined) {\n if (pathExists) context.host.deleteFile(fullPath);\n } else {\n context.host.mkdir(path.dirname(fullPath), { recursive: true });\n context.host.writeFile(fullPath, expectedContent, { encoding: \"utf-8\" });\n }\n },\n });\n }\n },\n optionsRuntype: Options,\n});\n\nconst optionsCache = new Map<Options, ((context: Context) => string | undefined) | string | undefined>();\n\nfunction getExpectedContents(context: Context, opts: Options) {\n // we need to use has because undefined is a valid value in the cache\n if (optionsCache.has(opts)) {\n const cachedEntry = optionsCache.get(opts);\n if (cachedEntry && typeof cachedEntry === \"function\") {\n return cachedEntry(context);\n }\n return cachedEntry;\n }\n\n if (opts.generator) {\n optionsCache.set(opts, opts.generator);\n return opts.generator(context) as string | undefined; // we have no guarentee its the right kind of function\n } else if (opts.templateFile) {\n const { packageDir: workspacePackageDir } = context.getWorkspaceContext();\n const fullPath = path.resolve(workspacePackageDir, opts.templateFile);\n const template = context.host.readFile(fullPath, { encoding: \"utf-8\" });\n\n optionsCache.set(opts, template);\n return template;\n } else {\n optionsCache.set(opts, opts.template);\n return opts.template;\n }\n}\n","/*!\n * Copyright 2020 Palantir Technologies, Inc.\n *\n * Licensed under the MIT license. See LICENSE file in the project root for details.\n *\n */\n\nimport { Context } from \"@monorepolint/config\";\nimport { Host, mutateJson, PackageJson } from \"@monorepolint/utils\";\nimport * as path from \"node:path\";\nimport * as r from \"runtypes\";\nimport { coerce } from \"semver\";\nimport resolvePackagePath from \"resolve-package-path\";\nimport { makeRule } from \"./util/makeRule.js\";\n\nconst Options = r.Union(\n r.Partial({\n skipUnparseableRanges: r.Undefined,\n dependencyWhitelist: r.Undefined,\n dependencyBlacklist: r.Undefined,\n enforceForDevDependencies: r.Undefined,\n }),\n r\n .Record({\n skipUnparseableRanges: r.Boolean,\n })\n .And(\n r.Partial({\n dependencyWhitelist: r.Undefined,\n dependencyBlacklist: r.Undefined,\n enforceForDevDependencies: r.Undefined,\n })\n ),\n r\n .Record({\n dependencyWhitelist: r.Array(r.String),\n })\n .And(\n r.Partial({\n skipUnparseableRanges: r.Undefined,\n dependencyBlacklist: r.Undefined,\n enforceForDevDependencies: r.Undefined,\n })\n ),\n r\n .Record({\n dependencyBlacklist: r.Array(r.String),\n })\n .And(\n r.Partial({\n skipUnparseableRanges: r.Undefined,\n dependencyWhitelist: r.Undefined,\n enforceForDevDependencies: r.Undefined,\n })\n ),\n r\n .Record({\n enforceForDevDependencies: r.Boolean,\n })\n .And(\n r.Partial({\n skipUnparseableRanges: r.Undefined,\n dependencyWhitelist: r.Undefined,\n dependencyBlacklist: r.Undefined,\n })\n ),\n r\n .Record({\n skipUnparseableRanges: r.Boolean,\n dependencyWhitelist: r.Array(r.String),\n })\n .And(\n r.Partial({\n dependencyBlacklist: r.Undefined,\n enforceForDevDependencies: r.Undefined,\n })\n ),\n r\n .Record({\n skipUnparseableRanges: r.Boolean,\n dependencyBlacklist: r.Array(r.String),\n })\n .And(\n r.Partial({\n dependencyWhitelist: r.Undefined,\n enforceForDevDependencies: r.Undefined,\n })\n ),\n r\n .Record({\n skipUnparseableRanges: r.Boolean,\n enforceForDevDependencies: r.Boolean,\n })\n .And(\n r.Partial({\n dependencyWhitelist: r.Undefined,\n dependencyBlacklist: r.Undefined,\n })\n ),\n r\n .Record({\n dependencyWhitelist: r.Array(r.String),\n dependencyBlacklist: r.Array(r.String),\n })\n .And(\n r.Partial({\n skipUnparseableRanges: r.Undefined,\n enforceForDevDependencies: r.Undefined,\n })\n ),\n r\n .Record({\n dependencyWhitelist: r.Array(r.String),\n enforceForDevDependencies: r.Boolean,\n })\n .And(\n r.Partial({\n skipUnparseableRanges: r.Undefined,\n dependencyBlacklist: r.Undefined,\n })\n ),\n r\n .Record({\n dependencyBlacklist: r.Array(r.String),\n enforceForDevDependencies: r.Boolean,\n })\n .And(\n r.Partial({\n skipUnparseableRanges: r.Undefined,\n dependencyWhitelist: r.Undefined,\n })\n ),\n r\n .Record({\n skipUnparseableRanges: r.Boolean,\n dependencyWhitelist: r.Array(r.String),\n dependencyBlacklist: r.Array(r.String),\n })\n .And(\n r.Partial({\n enforceForDevDependencies: r.Undefined,\n })\n ),\n r\n .Record({\n skipUnparseableRanges: r.Boolean,\n dependencyWhitelist: r.Array(r.String),\n enforceForDevDependencies: r.Boolean,\n })\n .And(\n r.Partial({\n dependencyBlacklist: r.Undefined,\n })\n ),\n r\n .Record({\n skipUnparseableRanges: r.Boolean,\n dependencyBlacklist: r.Array(r.String),\n enforceForDevDependencies: r.Boolean,\n })\n .And(\n r.Partial({\n dependencyWhitelist: r.Undefined,\n })\n ),\n r\n .Record({\n dependencyWhitelist: r.Array(r.String),\n dependencyBlacklist: r.Array(r.String),\n enforceForDevDependencies: r.Boolean,\n })\n .And(\n r.Partial({\n skipUnparseableRanges: r.Undefined,\n })\n ),\n r.Record({\n skipUnparseableRanges: r.Boolean,\n dependencyWhitelist: r.Array(r.String),\n dependencyBlacklist: r.Array(r.String),\n enforceForDevDependencies: r.Boolean,\n })\n);\n\nexport type Options = r.Static<typeof Options>;\n\nexport const mustSatisfyPeerDependencies = makeRule({\n name: \"mustSatisfyPeerDependencies\",\n check: checkSatisfyPeerDependencies,\n optionsRuntype: Options,\n});\n\n/**\n * separating on `|`, this regex allows any of the following formats:\n * - `*`\n * - `x`\n *\n * More info: https://docs.npmjs.com/about-semantic-versioning\n */\nexport const MATCH_ANY_VERSION_RANGE = /^(\\*|x)$/;\n\n/**\n * This regex allows any of the following formats:\n * - `>=15`\n * - `>=15.2`\n * - `>=15.2.1`\n * - `>=15.2.1-rc.0`\n * - `>=15.2.1+sha`\n * - `>=15.2.1-rc.0+sha`\n *\n * See https://semver.org/#spec-item-9 for details about semver formatting, and\n * https://regex101.com/r/vkijKf/1/ for a sample Regex.\n *\n * Note that the semver spec does _not_ specify npm range syntax. (`^`, `||`, `~`, `>`, etc.)\n *\n * More info: https://docs.npmjs.com/about-semantic-versioning\n */\nexport const MATCH_GREATER_OR_EQUAL_VERSION_RANGE =\n /^>= ?\\d+(?:\\.\\d+|\\.\\d+\\.\\d+(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?)?$/;\n\n/**\n * This regex allows any of the following formats:\n * - `15`\n * - `^15`\n * - `15.x`\n * - `^15.x`\n * - `15.x.x`\n * - `^15.x.x`\n * - `^15.2`\n * - `^15.2.x`\n * - `^15.2.1`\n * - `^15.2.1-rc.0`\n * - `^15.2.1+sha`\n * - `^15.2.1-rc.0+sha`\n *\n * See https://semver.org/#spec-item-9 for details about semver formatting, and\n * https://regex101.com/r/vkijKf/1/ for a sample Regex.\n *\n * Note that the semver spec does _not_ specify npm range syntax. (`^`, `||`, `~`, `>`, etc.)\n *\n * More info: https://docs.npmjs.com/about-semantic-versioning\n */\nexport const MATCH_MAJOR_VERSION_RANGE =\n /^(?:\\^?\\d+|\\^?\\d+\\.x|\\^?\\d+\\.x\\.x|\\^\\d+\\.\\d+|\\^\\d+\\.\\d+\\.x|\\^\\d+\\.\\d+\\.\\d+(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?)$/;\n\n/**\n * Does not currently accept `<`, `<=`, `>`, `=` or `-` for ranges (e.g. `> 2.5.1 < 3` or `1.0.0 - 1.2.0`),\n * though it will accept isolated `>=` ranges (e.g. `>=2.5.1`, but not `^1 || >=2.5.1`)\n *\n * See https://semver.org/#spec-item-9 for details about semver formatting, and\n * https://regex101.com/r/vkijKf/1/ for a sample Regex.\n *\n * Note that the semver spec does _not_ specify npm range syntax. (`^`, `||`, `~`, `>`, etc.)\n *\n * More info: https://docs.npmjs.com/about-semantic-versioning\n *\n * TODO: accept minor pins `~4.2.1`\n */\nexport const RANGE_REGEX =\n /^(\\*|x|>= ?\\d+(?:\\.\\d+|\\.\\d+\\.\\d+(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?)?|\\^?\\d+(\\.x|\\.x\\.x|\\.\\d+|\\.\\d+\\.x|\\.\\d+\\.\\d+(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?)?( \\|\\| \\^?\\d+(\\.x|\\.x\\.x|\\.\\d+|\\.\\d+\\.x|\\.\\d+\\.\\d+(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?)?)*)$/;\n\ninterface IPeerDependencyRequirement {\n fromPackageName: string;\n range: ValidRange;\n}\n\ninterface IResolvedPeerDependencyRequirement {\n fromPeerDependencyRequirements: IPeerDependencyRequirement[];\n range: ValidRange;\n}\n\nfunction checkSatisfyPeerDependencies(context: Context, opts: Options) {\n const { dependencyBlacklist, dependencyWhitelist, enforceForDevDependencies, skipUnparseableRanges } = opts;\n const packageJsonPath = path.resolve(context.getPackageJsonPath());\n const packageJson: PackageJson = context.host.readJson(packageJsonPath);\n const packageDependencies = packageJson.dependencies || {};\n const packageDevDependencies = packageJson.devDependencies || {};\n const packagePeerDependencies = packageJson.peerDependencies || {};\n const packageName = packageJson.name || packageJsonPath;\n\n // check that no peer dependencies are also declared as regular dependencies\n for (const [peerDependencyName, peerDependencyRange] of Object.entries(packagePeerDependencies)) {\n if (shouldSkipPackage({ dependencyBlacklist, dependencyWhitelist, packageName: peerDependencyName })) {\n continue;\n }\n\n const dependencyRange = packageDependencies[peerDependencyName];\n if (dependencyRange != null) {\n context.addError({\n file: packageJsonPath,\n message:\n `[0] Package ${packageName} has overloaded ${peerDependencyName} dependencies.\\n\\t` +\n `Peer dependency '${peerDependencyRange}' and regular dependency '${dependencyRange}'.`,\n });\n }\n }\n\n // map of all inherited peer dependency requirements\n const allRequiredPeerDependencies: { [peerDependencyName: string]: IPeerDependencyRequirement[] } = {};\n\n // for each of this package's dependencies, add the dependency's peer requirements into `allRequiredPeerDependencies`\n const allDependencies = enforceForDevDependencies\n ? [...Object.keys(packageDependencies), ...Object.keys(packageDevDependencies)]\n : Object.keys(packageDependencies);\n for (const dependency of allDependencies) {\n const dependencyPackageJsonPath = resolvePackagePath(dependency, path.dirname(packageJsonPath));\n if (dependencyPackageJsonPath == null) {\n throw new Error(`Could not resolve ${dependency} from ${path.dirname(packageJsonPath)}`);\n }\n const dependencyPackageJson: PackageJson = context.host.readJson(dependencyPackageJsonPath);\n const requiredPeerDependencies = dependencyPackageJson.peerDependencies;\n if (requiredPeerDependencies == null) {\n continue;\n }\n for (const [peerDependencyName, range] of Object.entries(requiredPeerDependencies)) {\n if (shouldSkipPackage({ dependencyBlacklist, dependencyWhitelist, packageName: peerDependencyName })) {\n continue;\n }\n\n if (!isValidRange(range)) {\n const message = `Unable to parse ${dependencyPackageJson.name}'s ${peerDependencyName} peer dependency range '${range}'.`;\n if (skipUnparseableRanges) {\n context.addWarning({ file: dependencyPackageJsonPath, message });\n continue;\n }\n throw new Error(message);\n }\n if (allRequiredPeerDependencies[peerDependencyName] == null) {\n allRequiredPeerDependencies[peerDependencyName] = [];\n }\n allRequiredPeerDependencies[peerDependencyName].push({ fromPackageName: dependencyPackageJson.name!, range });\n }\n }\n\n for (const [peerDependencyName, peerDependencyRequirements] of Object.entries(allRequiredPeerDependencies)) {\n // for each inherited peer dependency, determine the strictest range\n let mostStrictPeerRequirement: IResolvedPeerDependencyRequirement = {\n fromPeerDependencyRequirements: [peerDependencyRequirements[0]],\n range: peerDependencyRequirements[0].range,\n };\n for (const peerRequirement of peerDependencyRequirements) {\n if (doesASatisfyB(mostStrictPeerRequirement.range, peerRequirement.range)) {\n continue;\n } else if (doesASatisfyB(peerRequirement.range, mostStrictPeerRequirement.range)) {\n mostStrictPeerRequirement = {\n fromPeerDependencyRequirements: [peerRequirement],\n range: peerRequirement.range,\n };\n } else {\n const maybeIntersection = findIntersection(peerRequirement.range, mostStrictPeerRequirement.range);\n if (maybeIntersection !== undefined) {\n mostStrictPeerRequirement = {\n fromPeerDependencyRequirements: [\n ...mostStrictPeerRequirement.fromPeerDependencyRequirements,\n peerRequirement,\n ],\n range: maybeIntersection,\n };\n } else {\n context.addError({\n file: packageJsonPath,\n message:\n `[1] Package ${packageName} has conflicting inherited ${peerDependencyName} peer dependencies.\\n\\t` +\n `Dependency ${peerRequirement.fromPackageName} requires '${peerRequirement.range}' but\\n\\t` +\n getMostStrictStatement(mostStrictPeerRequirement),\n });\n }\n }\n }\n\n // if this package has a dependency on an inherited peer dependency,\n // the range must be equal to or stricter than `mostStrictPeerRequirement`\n const packageDependencyRange = packageDependencies[peerDependencyName];\n if (packageDependencyRange != null) {\n if (!isValidRange(packageDependencyRange)) {\n const message = `Unable to parse ${packageName}'s ${peerDependencyName} dependency range '${packageDependencyRange}'.`;\n if (skipUnparseableRanges) {\n context.addWarning({ file: packageJsonPath, message });\n } else {\n throw new Error(message);\n }\n } else if (!doesASatisfyB(packageDependencyRange, mostStrictPeerRequirement.range)) {\n context.addError({\n file: packageJsonPath,\n message:\n `[2] Package ${packageName} dependency on ${peerDependencyName} '${packageDependencyRange}' does not satisfy inherited peer dependencies.\\n\\t` +\n getMostStrictStatement(mostStrictPeerRequirement),\n });\n }\n }\n\n // for every inherited peer dependency, this package must declare a dependency or peer dependency\n // equal to or stricter than `mostStrictPeerRequirement`\n const packagePeerDependencyRange = packagePeerDependencies[peerDependencyName];\n if (packageDependencyRange == null && packagePeerDependencyRange == null) {\n context.addError({\n file: packageJsonPath,\n message:\n `[3] Package ${packageName} is missing required ${peerDependencyName} dependency.\\n\\t` +\n getMostStrictStatement(mostStrictPeerRequirement),\n fixer: getAddDependencyTypeFixer({\n packageJsonPath,\n dependencyType: \"peerDependencies\",\n dependencyName: peerDependencyName,\n version: mostStrictPeerRequirement.range,\n host: context.host,\n }),\n });\n }\n\n // if this package has a peer dependency on an inherited peer dependency,\n // the range must be equal to or stricter than `mostStrictPeerRequirement`\n if (packagePeerDependencyRange != null) {\n if (!isValidRange(packagePeerDependencyRange)) {\n const message = `Unable to parse ${packageName}'s ${peerDependencyName} peer dependency range '${packagePeerDependencyRange}'.`;\n if (skipUnparseableRanges) {\n context.addWarning({ file: packageJsonPath, message });\n } else {\n throw new Error(message);\n }\n } else if (!doesASatisfyB(packagePeerDependencyRange, mostStrictPeerRequirement.range)) {\n context.addError({\n file: packageJsonPath,\n message:\n `[4] Package ${packageName} peer dependency on ${peerDependencyName} '${packagePeerDependencyRange}' is not strict enough.\\n\\t` +\n getMostStrictStatement(mostStrictPeerRequirement),\n fixer: getAddDependencyTypeFixer({\n packageJsonPath,\n dependencyType: \"peerDependencies\",\n dependencyName: peerDependencyName,\n version: mostStrictPeerRequirement.range,\n host: context.host,\n }),\n });\n }\n }\n }\n}\n\nfunction shouldSkipPackage({\n dependencyBlacklist,\n dependencyWhitelist,\n packageName,\n}: {\n dependencyBlacklist?: string[];\n dependencyWhitelist?: string[];\n packageName: string;\n}) {\n // blacklist should take precedance\n if (\n (dependencyBlacklist != null && dependencyBlacklist.includes(packageName)) ||\n (dependencyWhitelist != null && !dependencyWhitelist.includes(packageName))\n ) {\n return true;\n }\n return false;\n}\n\nfunction getMostStrictStatement(mostStrictPeerRequirement: IResolvedPeerDependencyRequirement) {\n if (mostStrictPeerRequirement.fromPeerDependencyRequirements.length === 1) {\n const dependencyName = mostStrictPeerRequirement.fromPeerDependencyRequirements[0].fromPackageName;\n return `Dependency ${dependencyName} requires '${mostStrictPeerRequirement.range}'.`;\n } else {\n const dependencyNames = mostStrictPeerRequirement.fromPeerDependencyRequirements\n .map((peerDependencyRequirement) => peerDependencyRequirement.fromPackageName)\n .join(\", \");\n const dependencyRequirements = mostStrictPeerRequirement.fromPeerDependencyRequirements\n .map((peerDependencyRequirement) => `'${peerDependencyRequirement.range}'`)\n .join(\", \");\n return (\n `Dependencies [${dependencyNames}] require [${dependencyRequirements}] respectively, ` +\n `resolving to '${mostStrictPeerRequirement.range}'.`\n );\n }\n}\n\n/**\n * Given two version ranges, find the maximum intersecting range\n * of `a` and `b`. `findIntersection(a,b)` should return the same\n * result as `findIntersection(b,a)`.\n *\n * NOTE: This code assumes that input version ranges match `RANGE_REGEX`.\n * Additionally, major version ranges must not be repeated in union ranges.\n * e.g. `^15.0.5 || ^16.0.0` is permitted, but `15.0.5 || 15.0.999` is not.\n *\n * EXAMPLES:\n * findIntersection(\"15.1.0\", \"*\") => \"15.1.0\"\n * findIntersection(\"^15\", \"*\") => \"^15\"\n * findIntersection(\">=15\", \"*\") => \">=15\"\n * findIntersection(\"*\", \"*\") => \"*\"\n * findIntersection(\"15.1.0\", \">=1\") => \"15.1.0\"\n * findIntersection(\"^15\", \">=1\") => \"^15\"\n * findIntersection(\">=15\", \">=1\") => \">=15\"\n * findIntersection(\"15.1.0\", \"^15\") => \"15.1.0\"\n * findIntersection(\"^15.2\", \"^15\") => \"^15.2\"\n * findIntersection(\"14\", \"^15\") => undefined\n * findIntersection(\"15.1.0\", \"^15 || ^16\") => \"15.1.0\"\n * findIntersection(\"^15.2\", \"^15 || ^16\") => \"^15.2\"\n * findIntersection(\"14\", \"^15 || ^16\") => undefined\n * findIntersection(\"^15.2 || ^16\", \"^15 || ^16.4\") => \"^15.2 || ^16.4\"\n *\n * @param a version range that matches `RANGE_REGEX`\n * @param b version range that matches `RANGE_REGEX`\n * @returns the maximum intersecting `ValidRange`, or `undefined` if there is no intersection\n */\nexport function findIntersection(a: ValidRange, b: ValidRange): ValidRange | undefined {\n if (doesASatisfyB(a, b)) {\n return a;\n } else if (doesASatisfyB(b, a)) {\n return b;\n }\n\n // It's safe to assume that `isAnyVersionRange(a)` and `isAnyVersionRange(b)` are false,\n // since a `MATCH_ANY_VERSION_RANGE` would have been satisfied by anything.\n if (isAnyVersionRange(a) || isAnyVersionRange(b)) {\n throw new Error();\n }\n\n const aVersions = a.includes(\"||\") ? a.split(\"||\").map((s) => s.trim()) : [a];\n const bVersions = b.includes(\"||\") ? b.split(\"||\").map((s) => s.trim()) : [b];\n\n const aIsGreaterOrEqualVersionRange = isGreaterOrEqualVersionRange(a);\n const bIsGreaterOrEqualVersionRange = isGreaterOrEqualVersionRange(b);\n if (aIsGreaterOrEqualVersionRange && bIsGreaterOrEqualVersionRange) {\n // If the ranges were equal, they'd both satisfy each other.\n // Otherwise, the higher range should have satisfied the lower range.\n throw new Error();\n }\n\n if (aIsGreaterOrEqualVersionRange) {\n const aSemVer = coerce(a)!;\n // keep every version where `bSemVer` is >= `aSemVer`\n // where bVersion has an operator, we need to adjust the version to take into\n // account aVersion, e.g. if a is >=15.2.3 and b is ^15, then the intersection is actually ^15.2.3\n const compatibleBVersions = bVersions\n .map((bVersion) => {\n const bSemVer = coerce(bVersion)!;\n if (bVersion.startsWith(\"^\") && bSemVer.major >= aSemVer.major) {\n return `^${bSemVer.compare(aSemVer) >= 0 ? bSemVer.raw : aSemVer.raw}`;\n }\n return bSemVer.compare(aSemVer) !== -1 ? bVersion : undefined;\n })\n .filter((bVersion): bVersion is string => bVersion != null);\n if (compatibleBVersions.length === 0) {\n return undefined;\n }\n return compatibleBVersions.join(\" || \") as ValidRange;\n }\n if (bIsGreaterOrEqualVersionRange) {\n const bSemVer = coerce(b)!;\n // keep every version where `aSemVer` is >= `bSemVer`\n // where aVersion has an operator, we need to adjust the version to take into\n // account bVersion, e.g. if b is >=15.2.3 and a is ^15, then the intersection is actually ^15.2.3\n const compatibleAVersions = aVersions\n .map((aVersion) => {\n const aSemVer = coerce(aVersion)!;\n if (aVersion.startsWith(\"^\") && aSemVer.major >= bSemVer.major) {\n return `^${aSemVer.compare(bSemVer) >= 0 ? aSemVer.raw : bSemVer.raw}`;\n }\n return aSemVer.compare(bSemVer) !== -1 ? aVersion : undefined;\n })\n .filter((aVersion): aVersion is string => aVersion != null);\n if (compatibleAVersions.length === 0) {\n return undefined;\n }\n return compatibleAVersions.join(\" || \") as ValidRange;\n }\n\n const compatibleVersions = aVersions\n .map((aVersion) => {\n const aSemVer = coerce(aVersion)!;\n const majorMatchingBVersion = bVersions.find((m) => coerce(m)!.major === aSemVer.major);\n if (majorMatchingBVersion === undefined) {\n // there is no intersecting `b` major version for this `a` major version\n return undefined;\n }\n if (doesASatisfyB(aVersion as ValidRange, majorMatchingBVersion as ValidRange)) {\n return aVersion;\n } else if (doesASatisfyB(majorMatchingBVersion as ValidRange, aVersion as ValidRange)) {\n return majorMatchingBVersion;\n } else {\n return undefined;\n }\n })\n .filter((aVersion) => aVersion !== undefined);\n if (compatibleVersions.length === 0) {\n return undefined;\n }\n return compatibleVersions.join(\" || \") as ValidRange;\n}\n\n/**\n * Given two version ranges, determine whether `a` satisfies `b`.\n * `a` satisfies `b` iff `a` is a \"more strict than or equal to\" subset of `b`.\n * For example, both `^15` and `^15.2.0` satisfy `^15`, but `^15 || ^16` does not.\n *\n * NOTE: This code assumes that input version ranges match `RANGE_REGEX`.\n * Additionally, major version ranges must not be repeated in union ranges.\n * e.g. `^15.0.5 || ^16.0.0` is permitted, but `15.0.5 || 15.0.999` is not.\n *\n * To determine that `a` is \"more strict than or equal to\" `b`, we first\n * split the set of all versions or ranges that are potentially unioned in `a` and `b`.\n * For example, if `a` is `15.0.5`, we produce the set `[ \"15.0.5\" ]`,\n * and if `b` is `^15 || ^16`, we produce the set `[ \"^15\", \"^16\" ]`.\n * `a` is \"more strict than or equal to\" `b` iff each entry in `a`'s set\n * satisfies (equal to or greater than) some entry in `b`.\n *\n * The following version ranges satisfy `^15.0.5 || ^16.0.0`:\n * - `^15.0.5 || ^16.0.0`\n * - `^15.0.5 || ^16.x.x`\n * - `15.0.5 || 16.0.0`\n * - `^15.0.999 || ^16.0.0`\n * - `^15.0.5 || ^16.0.999`\n * - `^15.0.999`\n * - `^16.0.0`\n * - `16.0.0`\n * The following version ranges do not satisfy `^15.0.5 || ^16.0.0`:\n * - `^15.0.0 || ^16.0.0`\n * - `^15.0.5 || ^17.0.0`\n * - `^14.0.0 || ^15.0.5 || ^16.0.0`\n * - `^17.0.0`\n * - `17.0.0`\n *\n * @param a version range that matches `RANGE_REGEX`\n * @param b version range that matches `RANGE_REGEX`\n * @returns `true` if `a` is more strict than or equal to `b`, `false` otherwise\n */\nexport function doesASatisfyB(a: ValidRange, b: ValidRange): boolean {\n if (a === b) {\n return true;\n }\n\n const aIsAnyVersionRange = isAnyVersionRange(a);\n const bIsAnyVersionRange = isAnyVersionRange(b);\n if (bIsAnyVersionRange) {\n return true;\n } else if (aIsAnyVersionRange) {\n // `bIsAnyVersionRange` is `false`\n // `a` permits more values than `b`, therefore `a` is \"less strict\"\n return false;\n }\n\n const aVersions = a.includes(\"||\") ? a.split(\"||\").map((s) => s.trim()) : [a];\n const bVersions = b.includes(\"||\") ? b.split(\"||\").map((s) => s.trim()) : [b];\n\n const aIsGreaterOrEqualVersionRange = isGreaterOrEqualVersionRange(a);\n const bIsGreaterOrEqualVersionRange = isGreaterOrEqualVersionRange(b);\n if (aIsGreaterOrEqualVersionRange && bIsGreaterOrEqualVersionRange) {\n const aSemVer = coerce(a)!;\n const bSemVer = coerce(b)!;\n // `a` satisfies `b` so long as `aSemVer` is greater than or equal to `bSemVer`\n return aSemVer.compare(bSemVer) !== -1;\n } else if (bIsGreaterOrEqualVersionRange) {\n const bSemVer = coerce(b)!;\n return aVersions.every((aVersion) => {\n const aSemVer = coerce(aVersion)!;\n // `a` satisfies `b` so long as `aSemVer` is greater than or equal to `bSemVer`\n return aSemVer.compare(bSemVer) !== -1;\n });\n } else if (aIsGreaterOrEqualVersionRange) {\n // `bIsGreaterOrEqualVersionRange` is `false` (and `bIsAnyVersionRange` is `false`)\n // `a` permits more values than `b`, therefore `a` is \"less strict\"\n return false;\n }\n\n return aVersions.every((aVersion) => {\n const aSemVer = coerce(aVersion)!;\n const majorMatchingBVersion = bVersions.find((m) => coerce(m)!.major === aSemVer.major);\n if (majorMatchingBVersion === undefined) {\n // `a` permits a major version that is not permitted by `b`, therefore `a` is \"less strict\"\n return false;\n }\n\n const aVersionIsRange = isMajorVersionRange(aVersion);\n const majorMatchingBSemVer = coerce(majorMatchingBVersion)!;\n const majorMatchingBVersionIsRange = isMajorVersionRange(majorMatchingBVersion);\n\n if (majorMatchingBVersionIsRange) {\n // `a` satisfies `b` so long as `aSemVer` is greater than or equal to `majorMatchingBSemVer`\n // this is true whether or not `aVersionIsRange`\n return aSemVer.compare(majorMatchingBSemVer) !== -1;\n } else {\n // `majorMatchingBVersionIsRange` is `false`\n if (aVersionIsRange) {\n // `a` permits more values than `b`, therefore `a` is \"less strict\"\n // e.g if `b` is `15.5.5`, this is true whether `a` is `^15.0.0`, `^15.5.5`, or `^15.9.9`\n return false;\n } else {\n // `aVersionIsRange` is `false`\n // `a` satisfies `b` if and only if `aSemVer` is equal to `majorMatchingBSemVer`\n return aSemVer.compare(majorMatchingBSemVer) === 0;\n }\n }\n });\n}\n\n/**\n * Returns true if the version evaluates to 'any', e.g. * or x\n */\nfunction isAnyVersionRange(version: string): boolean {\n return MATCH_ANY_VERSION_RANGE.test(version);\n}\n\n/**\n * Retruns true if the version begins with '>='\n */\nfunction isGreaterOrEqualVersionRange(version: string): boolean {\n return MATCH_GREATER_OR_EQUAL_VERSION_RANGE.test(version);\n}\n\nfunction isMajorVersionRange(version: string): boolean {\n return MATCH_MAJOR_VERSION_RANGE.test(version);\n}\n\nexport type ValidRange = string & { _type: \"valid range\" };\nexport function isValidRange(version: string): version is ValidRange {\n return RANGE_REGEX.test(version);\n}\n\ntype IDependencyType = \"dependencies\" | \"devDependencies\" | \"peerDependencies\";\n\nfunction getAddDependencyTypeFixer({\n packageJsonPath,\n dependencyType,\n dependencyName,\n version,\n host,\n}: {\n packageJsonPath: string;\n dependencyType: IDependencyType;\n dependencyName: string;\n version: string;\n host: Host;\n}) {\n return () => {\n mutateJson<PackageJson>(packageJsonPath, host, (packageJson) => {\n if (packageJson[dependencyType] == null) {\n packageJson[dependencyType] = {};\n }\n packageJson[dependencyType]![dependencyName] = version;\n return packageJson;\n });\n };\n}\n","/*!\n * Copyright 2019 Palantir Technologies, Inc.\n *\n * Licensed under the MIT license. See LICENSE file in the project root for details.\n *\n */\n\nimport { Context } from \"@monorepolint/config\";\nimport { diff } from \"jest-diff\";\nimport * as r from \"runtypes\";\nimport { makeRule } from \"./util/makeRule.js\";\ntype OrderFunction = (context: Context) => (a: string, b: string) => number;\n\nconst Options = r\n .Record({\n order: r.Union(r.Array(r.String), r.Function),\n })\n .Or(r.Undefined);\n\ntype Options = r.Static<typeof Options>;\n\nconst defaultKeyOrder = [\n \"name\",\n \"version\",\n \"description\",\n \"author\",\n \"contributors\",\n \"url\",\n \"license\",\n \"type\",\n \"exports\",\n \"private\",\n \"engines\",\n \"bin\",\n \"types\",\n \"main\",\n \"module\",\n \"typings\",\n \"style\",\n \"sideEffects\",\n \"workspaces\",\n \"husky\",\n \"lint-staged\",\n \"files\",\n \"scripts\",\n \"resolutions\",\n \"dependencies\",\n \"peerDependencies\",\n \"devDependencies\",\n \"optionalDependencies\",\n \"publishConfig\",\n];\n\nexport const packageOrder = makeRule({\n name: \"packageOrder\",\n check: (context, opts) => {\n const packageJson = context.getPackageJson();\n const packagePath = context.getPackageJsonPath();\n\n const order: string[] | OrderFunction = opts === undefined ? defaultKeyOrder : opts.order;\n\n const comparator = isOrderFunction(order) ? order(context) : createComparator(order);\n\n const actualOrder = Object.keys(packageJson);\n const expectedOrder = actualOrder.slice().sort(comparator); // sort mutates, so we need to copy the previous result\n\n if (!arrayOrderCompare(actualOrder, expectedOrder)) {\n context.addError({\n file: packagePath,\n message: \"Incorrect order of fields in package.json\",\n longMessage: diff(expectedOrder, actualOrder, { expand: true }),\n fixer: () => {\n const expectedPackageJson: Record<string, any> = {};\n\n expectedOrder.forEach((key) => {\n expectedPackageJson[key] = packageJson[key];\n });\n\n context.host.writeJson(packagePath, expectedPackageJson);\n },\n });\n }\n },\n optionsRuntype: Options,\n});\n\nfunction arrayOrderCompare(a: ReadonlyArray<string>, b: ReadonlyArray<string>) {\n for (let index = 0; index < a.length; index++) {\n if (a[index] !== b[index]) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction createComparator(order: ReadonlyArray<string>) {\n return (a: string, b: string) => {\n const aIndex = order.indexOf(a);\n const bIndex = order.indexOf(b);\n\n // if one of the two is missing from the order array, push it further down\n if (aIndex >= 0 && bIndex < 0) {\n return -1;\n } else if (aIndex < 0 && bIndex >= 0) {\n return 1;\n }\n\n // otherwise compare the indexes and use alphabetical as a tie breaker\n const compared = aIndex - bIndex;\n\n if (compared !== 0) {\n return compared;\n } else {\n return a.localeCompare(b);\n }\n };\n}\n\nfunction isOrderFunction(order: ReadonlyArray<string> | OrderFunction): order is OrderFunction {\n return !Array.isArray(order);\n}\n","/*!\n * Copyright 2019 Palantir Technologies, Inc.\n *\n * Licensed under the MIT license. See LICENSE file in the project root for details.\n *\n */\n\nimport { mutateJson, PackageJson } from \"@monorepolint/utils\";\nimport { diff } from \"jest-diff\";\nimport * as r from \"runtypes\";\nimport { makeRule } from \"./util/makeRule.js\";\n\nexport const Options = r.Union(\n r\n .Record({\n entries: r.Dictionary(r.Unknown), // string => unknown, enforces existence of keys and their values\n })\n .And(\n r.Partial({\n entriesExist: r.Undefined,\n })\n ),\n r\n .Record({\n entriesExist: r.Array(r.String), // enforces existence of keys, but not values\n })\n .And(\n r.Partial({\n entries: r.Undefined,\n })\n ),\n r.Record({\n entries: r.Dictionary(r.Unknown), // string => unknown, enforces existence of keys and their values\n entriesExist: r.Array(r.String),\n })\n);\n\nexport type Options = r.Static<typeof Options>;\n\nexport const packageEntry = makeRule({\n name: \"packageEntry\",\n check: (context, options) => {\n const packageJson = context.getPackageJson();\n\n if (options.entries) {\n for (const key of Object.keys(options.entries)) {\n const value = options.entries[key];\n\n const entryDiff = diff(JSON.stringify(value) + \"\\n\", (JSON.stringify(packageJson[key]) || \"\") + \"\\n\");\n if (\n (typeof value !== \"object\" && value !== packageJson[key]) ||\n entryDiff == null ||\n !entryDiff.includes(\"Compared values have no visual difference\")\n ) {\n context.addError({\n file: context.getPackageJsonPath(),\n message: createStandardizedEntryErrorMessage(key),\n longMessage: entryDiff,\n fixer: () => {\n mutateJson<PackageJson>(context.getPackageJsonPath(), context.host, (input) => {\n input[key] = value;\n return input;\n });\n },\n });\n }\n }\n }\n\n if (options.entriesExist) {\n for (const key of options.entriesExist) {\n if (packageJson[key] === undefined) {\n context.addError({\n file: context.getPackageJsonPath(),\n message: createExpectedEntryErrorMessage(key),\n });\n }\n }\n }\n },\n optionsRuntype: Options,\n});\n\nexport function createStandardizedEntryErrorMessage(key: string) {\n return `Expected standardized entry for '${key}'`;\n}\n\nexport function createExpectedEntryErrorMessage(key: string) {\n return `Expected entry for '${key}' to exist`;\n}\n","/*!\n * Copyright 2019 Palantir Technologies, Inc.\n *\n * Licensed under the MIT license. See LICENSE file in the project root for details.\n *\n */\n\nimport { mutateJson, PackageJson } from \"@monorepolint/utils\";\nimport { diff } from \"jest-diff\";\nimport * as r from \"runtypes\";\nimport { makeRule } from \"./util/makeRule.js\";\n\nexport const Options = r.Record({\n scripts: r.Dictionary(\n r.Union(\n r.String,\n r.Record({\n options: r.Array(r.String.Or(r.Undefined)),\n fixValue: r.Union(r.String, r.Undefined, r.Literal(false)).optional(),\n })\n )\n ), // string => string\n});\n\nexport type Options = r.Static<typeof Options>;\n\nexport const MSG_NO_SCRIPTS_BLOCK = \"No scripts block in package.json\";\n\nexport const packageScript = makeRule({\n name: \"packageScript\",\n check: (context, options) => {\n const packageJson = context.getPackageJson();\n if (packageJson.scripts === undefined) {\n context.addError({\n file: context.getPackageJsonPath(),\n message: MSG_NO_SCRIPTS_BLOCK,\n fixer: () => {\n mutateJson<PackageJson>(context.getPackageJsonPath(), context.host, (input) => {\n input.scripts = {};\n return input;\n });\n },\n });\n return;\n }\n for (const [name, value] of Object.entries(options.scripts)) {\n const allowedValues = new Set<string | undefined>();\n let fixValue: string | undefined | false;\n let allowEmpty = false;\n let fixToEmpty = false;\n\n if (typeof value === \"string\") {\n allowedValues.add(value);\n fixValue = value;\n } else {\n for (const q of value.options) {\n if (q === undefined) {\n allowEmpty = true;\n }\n allowedValues.add(q);\n }\n fixToEmpty = Object.prototype.hasOwnProperty.call(value, \"fixValue\") && value.fixValue === undefined;\n fixValue = value.fixValue;\n }\n\n const actualValue = packageJson.scripts[name];\n\n if (!allowedValues.has(actualValue) && !(allowEmpty === true && actualValue === undefined)) {\n let fixer;\n\n if (fixValue !== false && (fixValue !== undefined || fixToEmpty === true)) {\n const q = fixValue;\n fixer = () => {\n mutateJson<PackageJson>(context.getPackageJsonPath(), context.host, (input) => {\n if (fixToEmpty && q === undefined) {\n delete input.scripts![name];\n } else {\n input.scripts![name] = q!;\n }\n return input;\n });\n };\n }\n\n const validOptionsString = Array.from(allowedValues.values())\n .map((a) => (a === undefined ? \"(empty)\" : `'${a}'`))\n .join(\", \");\n\n context.addError({\n file: context.getPackageJsonPath(),\n message: `Expected standardized script entry for '${name}'. Valid options: ${validOptionsString}`,\n longMessage: diff(validOptionsString + \"\\n\", (packageJson.scripts[name] || \"\") + \"\\n\"),\n fixer,\n });\n }\n }\n },\n optionsRuntype: Options,\n});\n","/*!\n * Copyright 2019 Palantir Technologies, Inc.\n *\n * Licensed under the MIT license. See LICENSE file in the project root for details.\n *\n */\n\nimport { Context } from \"@monorepolint/config\";\nimport { matchesAnyGlob } from \"@monorepolint/utils\";\nimport { diff } from \"jest-diff\";\nimport * as path from \"path\";\nimport * as r from \"runtypes\";\nimport { makeRule } from \"./util/makeRule.js\";\n\nconst DEFAULT_TSCONFIG_FILENAME = \"tsconfig.json\";\n\nconst Options = r\n .Partial({\n file: r.String,\n generator: r.Function,\n tsconfigReferenceFile: r.String,\n template: r.Record({}).Or(r.String),\n templateFile: r.String,\n excludedReferences: r.Array(r.String).Or(r.Undefined),\n additionalReferences: r.Array(r.String).Or(r.Undefined),\n })\n .withConstraint(({ generator, template, templateFile }) => {\n let count = 0;\n if (generator) {\n count++;\n }\n if (template) {\n count++;\n }\n if (templateFile) {\n count++;\n }\n\n return count === 1 || \"Expect one of { generator, template, templateFile }\";\n });\n\nexport interface Options extends r.Static<typeof Options> {}\n\nexport const standardTsconfig = makeRule({\n name: \"standardTsconfig\",\n check: async (context, opts) => {\n const tsconfigFileName = opts.file ?? DEFAULT_TSCONFIG_FILENAME;\n const fullPath = path.resolve(context.packageDir, tsconfigFileName);\n const generator = getGenerator(context, opts);\n const expectedContent = await generator(context);\n\n const actualContent = context.host.exists(fullPath)\n ? context.host.readFile(fullPath, { encoding: \"utf-8\" })\n : undefined;\n\n if (expectedContent === undefined) {\n context.addWarning({\n file: fullPath,\n message: \"Excluding from expect-standard-tsconfig\",\n });\n return;\n }\n\n if (actualContent !== expectedContent) {\n context.addError({\n file: fullPath,\n message: \"Expect file contents to match\",\n longMessage: diff(expectedContent, actualContent, { expand: true }),\n fixer: () => {\n context.host.writeFile(fullPath, expectedContent, {\n encoding: \"utf-8\",\n });\n },\n });\n }\n },\n optionsRuntype: Options,\n});\n\nfunction getGenerator(context: Context, opts: Options) {\n if (opts.generator) {\n return opts.generator;\n } else if (opts.templateFile) {\n const { packageDir: workspacePackageDir } = context.getWorkspaceContext();\n const fullPath = path.resolve(workspacePackageDir, opts.templateFile);\n const template = JSON.parse(context.host.readFile(fullPath, { encoding: \"utf-8\" }));\n\n return makeGenerator(template, opts.excludedReferences, opts.additionalReferences, opts.tsconfigReferenceFile);\n } else if (opts.template) {\n return makeGenerator(opts.template, opts.excludedReferences, opts.additionalReferences, opts.tsconfigReferenceFile);\n } else {\n throw new Error(\"Unable to make generator\");\n }\n}\n\nfunction makeGenerator(\n template: any,\n excludedReferences: ReadonlyArray<string> | undefined,\n additionalReferences: ReadonlyArray<string> | undefined,\n tsconfigReferenceFile?: string\n) {\n return async function generator(context: Context) {\n template = {\n ...template,\n references: [],\n }; // make a copy and ensure we have a references array\n\n const nameToDirectory = await context.getWorkspaceContext().getPackageNameToDir();\n\n const packageJson = context.getPackageJson();\n const deps = [...Object.keys(packageJson.dependencies || {}), ...Object.keys(packageJson.devDependencies || {})];\n for (const dep of deps) {\n const packageDir = nameToDirectory.get(dep);\n if (packageDir !== undefined && (excludedReferences === undefined || !matchesAnyGlob(dep, excludedReferences))) {\n const absoluteReferencePath =\n tsconfigReferenceFile !== undefined ? path.join(packageDir, tsconfigReferenceFile) : packageDir;\n template.references.push({\n path: path.relative(context.packageDir, absoluteReferencePath),\n });\n }\n }\n\n if (additionalReferences) {\n for (const additionalReference of additionalReferences) {\n template.references.push({\n path: additionalReference,\n });\n }\n }\n\n return JSON.stringify(template, undefined, 2) + \"\\n\";\n };\n}\n","/*!\n * Copyright 2019 Palantir Technologies, Inc.\n *\n * Licensed under the MIT license. See LICENSE file in the project root for details.\n *\n */\n\nimport * as globby from \"globby\";\nimport * as path from \"node:path\";\nimport * as r from \"runtypes\";\nimport { makeRule } from \"./util/makeRule.js\";\n\nexport const Options = r.Undefined;\n\ntype Options = r.Static<typeof Options>;\n\n// Enforce that the root package.json contains all of the workspaces in the repo (including nested packages)\nexport const nestedWorkspaces = makeRule({\n name: \"nestedWorkspaces\",\n check: (context) => {\n const rootPackageJson = context.getWorkspaceContext().getPackageJson();\n\n // Expand a set of globs covering all package.json files in the entire repo (except the root)\n const packageJsonPaths = globby.globbySync([\"*/**/package.json\", \"!**/node_modules/**\"]);\n\n const workspaces = Array.isArray(rootPackageJson.workspaces)\n ? rootPackageJson.workspaces\n : rootPackageJson.workspaces !== undefined\n ? rootPackageJson.workspaces.packages\n : undefined;\n\n if (workspaces === undefined && packageJsonPaths.length > 0) {\n context.addError({\n file: context.getPackageJsonPath(),\n message: 'The \"workspace\" field is missing, even though there are workspaces in the repository.',\n });\n return;\n }\n\n // Build a set of globs for each package.json that exists in packages specified by a workspace.\n const workspacePackageJsons = (workspaces || []).map((item) => `${item}/package.json`);\n\n // Expand the globs to get an array of all package.json files that are in packages specified by a workspace.\n const expandedWorkspacesGlobs = globby.globbySync([...workspacePackageJsons, \"!**/node_modules/**\"]);\n\n // Ensure there are no package.jsons which are not included in the globbed workspaces set\n const difference = packageJsonPaths.filter((packageJsonPath) => !expandedWorkspacesGlobs.includes(packageJsonPath));\n\n if (difference.length !== 0) {\n const differencesList = difference.map((packageJsonPath) => path.dirname(packageJsonPath)).join(\", \");\n context.addError({\n file: context.getPackageJsonPath(),\n message:\n `The \"workspace\" field is missing one or more values: ${differencesList}. ` +\n 'You may be able to use a glob to avoid listing each workspace individually, e.g. \"packages/nested-workspace/*\".',\n });\n }\n },\n optionsRuntype: Options,\n});\n","/*!\n * Copyright 2019 Palantir Technologies, Inc.\n *\n * Licensed under the MIT license. See LICENSE file in the project root for details.\n *\n */\n\nimport { Context } from \"@monorepolint/config\";\nimport { mutateJson, PackageJson } from \"@monorepolint/utils\";\nimport { diff } from \"jest-diff\";\nimport * as r from \"runtypes\";\nimport { makeRule } from \"./util/makeRule.js\";\n\nconst Options = r.Partial({\n dependencies: r.Dictionary(r.String),\n devDependencies: r.Dictionary(r.String),\n peerDependencies: r.Dictionary(r.String),\n optionalDependencies: r.Dictionary(r.String),\n});\n\ntype Options = r.Static<typeof Options>;\n\nexport const requireDependency = makeRule({\n name: \"requireDependency\",\n check: function expectPackageEntry(context: Context, options: Options) {\n const packageJson = context.getPackageJson();\n const packageJsonPath = context.getPackageJsonPath();\n\n [\n \"dependencies\" as const,\n \"devDependencies\" as const,\n \"peerDependencies\" as const,\n \"optionalDependencies\" as const,\n ].forEach((type) => {\n if (!options[type]) {\n return;\n }\n\n if (packageJson[type] === undefined) {\n context.addError({\n file: packageJsonPath,\n message: `No ${type} block, cannot add required ${type}.`,\n fixer: () => {\n mutateJson<PackageJson>(packageJsonPath, context.host, (input) => {\n input[type] = options[type];\n return input;\n });\n },\n });\n return;\n }\n\n for (const [dep, version] of Object.entries(options[type]!)) {\n if (packageJson[type][dep] !== version) {\n context.addError({\n file: packageJsonPath,\n message: `Expected dependency ${dep}@${version}`,\n longMessage: diff(`${dep}@${version}\\n`, `${dep}@${packageJson[type][dep] || \"missing\"}\\n`)!,\n fixer: () => {\n mutateJson<PackageJson>(packageJsonPath, context.host, (input) => {\n input[type] = { ...input[type], [dep]: version };\n return input;\n });\n },\n });\n }\n }\n });\n },\n optionsRuntype: Options,\n});\n"],"mappings":"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","names":["r","Options","path","r","Options","diff","r","Options","diff","r","Options","diff","path","r","Options","diff","mutateJson","path","r","coerce","resolvePackagePath","Options","resolvePackagePath","coerce","mutateJson","diff","r","Options","arrayOrderCompare","diff","mutateJson","diff","r","Options","diff","mutateJson","mutateJson","diff","r","Options","mutateJson","diff","matchesAnyGlob","diff","path","r","Options","diff","matchesAnyGlob","path","r","Options","mutateJson","diff","r","Options","mutateJson","diff"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"program":{"fileNames":["../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../node_modules/.pnpm/tslib@2.5.0/node_modules/tslib/tslib.d.ts","../../../node_modules/.pnpm/runtypes@6.6.0/node_modules/runtypes/lib/types/union.d.ts","../../../node_modules/.pnpm/runtypes@6.6.0/node_modules/runtypes/lib/types/literal.d.ts","../../../node_modules/.pnpm/runtypes@6.6.0/node_modules/runtypes/lib/types/unknown.d.ts","../../../node_modules/.pnpm/runtypes@6.6.0/node_modules/runtypes/lib/types/constraint.d.ts","../../../node_modules/.pnpm/runtypes@6.6.0/node_modules/runtypes/lib/types/instanceof.d.ts","../../../node_modules/.pnpm/runtypes@6.6.0/node_modules/runtypes/lib/reflect.d.ts","../../../node_modules/.pnpm/runtypes@6.6.0/node_modules/runtypes/lib/runtype.d.ts","../../../node_modules/.pnpm/runtypes@6.6.0/node_modules/runtypes/lib/result.d.ts","../../../node_modules/.pnpm/runtypes@6.6.0/node_modules/runtypes/lib/contract.d.ts","../../../node_modules/.pnpm/runtypes@6.6.0/node_modules/runtypes/lib/asynccontract.d.ts","../../../node_modules/.pnpm/runtypes@6.6.0/node_modules/runtypes/lib/match.d.ts","../../../node_modules/.pnpm/runtypes@6.6.0/node_modules/runtypes/lib/errors.d.ts","../../../node_modules/.pnpm/runtypes@6.6.0/node_modules/runtypes/lib/types/never.d.ts","../../../node_modules/.pnpm/runtypes@6.6.0/node_modules/runtypes/lib/types/void.d.ts","../../../node_modules/.pnpm/runtypes@6.6.0/node_modules/runtypes/lib/types/template.d.ts","../../../node_modules/.pnpm/runtypes@6.6.0/node_modules/runtypes/lib/types/boolean.d.ts","../../../node_modules/.pnpm/runtypes@6.6.0/node_modules/runtypes/lib/types/number.d.ts","../../../node_modules/.pnpm/runtypes@6.6.0/node_modules/runtypes/lib/types/bigint.d.ts","../../../node_modules/.pnpm/runtypes@6.6.0/node_modules/runtypes/lib/types/string.d.ts","../../../node_modules/.pnpm/runtypes@6.6.0/node_modules/runtypes/lib/types/symbol.d.ts","../../../node_modules/.pnpm/runtypes@6.6.0/node_modules/runtypes/lib/types/array.d.ts","../../../node_modules/.pnpm/runtypes@6.6.0/node_modules/runtypes/lib/types/tuple.d.ts","../../../node_modules/.pnpm/runtypes@6.6.0/node_modules/runtypes/lib/types/optional.d.ts","../../../node_modules/.pnpm/runtypes@6.6.0/node_modules/runtypes/lib/types/record.d.ts","../../../node_modules/.pnpm/runtypes@6.6.0/node_modules/runtypes/lib/types/dictionary.d.ts","../../../node_modules/.pnpm/runtypes@6.6.0/node_modules/runtypes/lib/types/intersect.d.ts","../../../node_modules/.pnpm/runtypes@6.6.0/node_modules/runtypes/lib/types/function.d.ts","../../../node_modules/.pnpm/runtypes@6.6.0/node_modules/runtypes/lib/types/lazy.d.ts","../../../node_modules/.pnpm/runtypes@6.6.0/node_modules/runtypes/lib/types/brand.d.ts","../../../node_modules/.pnpm/runtypes@6.6.0/node_modules/runtypes/lib/decorator.d.ts","../../../node_modules/.pnpm/runtypes@6.6.0/node_modules/runtypes/lib/index.d.ts","../../../node_modules/.pnpm/@types+node@18.11.11/node_modules/@types/node/assert.d.ts","../../../node_modules/.pnpm/@types+node@18.11.11/node_modules/@types/node/assert/strict.d.ts","../../../node_modules/.pnpm/@types+node@18.11.11/node_modules/@types/node/globals.d.ts","../../../node_modules/.pnpm/@types+node@18.11.11/node_modules/@types/node/async_hooks.d.ts","../../../node_modules/.pnpm/@types+node@18.11.11/node_modules/@types/node/buffer.d.ts","../../../node_modules/.pnpm/@types+node@18.11.11/node_modules/@types/node/child_process.d.ts","../../../node_modules/.pnpm/@types+node@18.11.11/node_modules/@types/node/cluster.d.ts","../../../node_modules/.pnpm/@types+node@18.11.11/node_modules/@types/node/console.d.ts","../../../node_modules/.pnpm/@types+node@18.11.11/node_modules/@types/node/constants.d.ts","../../../node_modules/.pnpm/@types+node@18.11.11/node_modules/@types/node/crypto.d.ts","../../../node_modules/.pnpm/@types+node@18.11.11/node_modules/@types/node/dgram.d.ts","../../../node_modules/.pnpm/@types+node@18.11.11/node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/.pnpm/@types+node@18.11.11/node_modules/@types/node/dns.d.ts","../../../node_modules/.pnpm/@types+node@18.11.11/node_modules/@types/node/dns/promises.d.ts","../../../node_modules/.pnpm/@types+node@18.11.11/node_modules/@types/node/domain.d.ts","../../../node_modules/.pnpm/@types+node@18.11.11/node_modules/@types/node/dom-events.d.ts","../../../node_modules/.pnpm/@types+node@18.11.11/node_modules/@types/node/events.d.ts","../../../node_modules/.pnpm/@types+node@18.11.11/node_modules/@types/node/fs.d.ts","../../../node_modules/.pnpm/@types+node@18.11.11/node_modules/@types/node/fs/promises.d.ts","../../../node_modules/.pnpm/@types+node@18.11.11/node_modules/@types/node/http.d.ts","../../../node_modules/.pnpm/@types+node@18.11.11/node_modules/@types/node/http2.d.ts","../../../node_modules/.pnpm/@types+node@18.11.11/node_modules/@types/node/https.d.ts","../../../node_modules/.pnpm/@types+node@18.11.11/node_modules/@types/node/inspector.d.ts","../../../node_modules/.pnpm/@types+node@18.11.11/node_modules/@types/node/module.d.ts","../../../node_modules/.pnpm/@types+node@18.11.11/node_modules/@types/node/net.d.ts","../../../node_modules/.pnpm/@types+node@18.11.11/node_modules/@types/node/os.d.ts","../../../node_modules/.pnpm/@types+node@18.11.11/node_modules/@types/node/path.d.ts","../../../node_modules/.pnpm/@types+node@18.11.11/node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/.pnpm/@types+node@18.11.11/node_modules/@types/node/process.d.ts","../../../node_modules/.pnpm/@types+node@18.11.11/node_modules/@types/node/punycode.d.ts","../../../node_modules/.pnpm/@types+node@18.11.11/node_modules/@types/node/querystring.d.ts","../../../node_modules/.pnpm/@types+node@18.11.11/node_modules/@types/node/readline.d.ts","../../../node_modules/.pnpm/@types+node@18.11.11/node_modules/@types/node/readline/promises.d.ts","../../../node_modules/.pnpm/@types+node@18.11.11/node_modules/@types/node/repl.d.ts","../../../node_modules/.pnpm/@types+node@18.11.11/node_modules/@types/node/stream.d.ts","../../../node_modules/.pnpm/@types+node@18.11.11/node_modules/@types/node/stream/promises.d.ts","../../../node_modules/.pnpm/@types+node@18.11.11/node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/.pnpm/@types+node@18.11.11/node_modules/@types/node/stream/web.d.ts","../../../node_modules/.pnpm/@types+node@18.11.11/node_modules/@types/node/string_decoder.d.ts","../../../node_modules/.pnpm/@types+node@18.11.11/node_modules/@types/node/test.d.ts","../../../node_modules/.pnpm/@types+node@18.11.11/node_modules/@types/node/timers.d.ts","../../../node_modules/.pnpm/@types+node@18.11.11/node_modules/@types/node/timers/promises.d.ts","../../../node_modules/.pnpm/@types+node@18.11.11/node_modules/@types/node/tls.d.ts","../../../node_modules/.pnpm/@types+node@18.11.11/node_modules/@types/node/trace_events.d.ts","../../../node_modules/.pnpm/@types+node@18.11.11/node_modules/@types/node/tty.d.ts","../../../node_modules/.pnpm/@types+node@18.11.11/node_modules/@types/node/url.d.ts","../../../node_modules/.pnpm/@types+node@18.11.11/node_modules/@types/node/util.d.ts","../../../node_modules/.pnpm/@types+node@18.11.11/node_modules/@types/node/v8.d.ts","../../../node_modules/.pnpm/@types+node@18.11.11/node_modules/@types/node/vm.d.ts","../../../node_modules/.pnpm/@types+node@18.11.11/node_modules/@types/node/wasi.d.ts","../../../node_modules/.pnpm/@types+node@18.11.11/node_modules/@types/node/worker_threads.d.ts","../../../node_modules/.pnpm/@types+node@18.11.11/node_modules/@types/node/zlib.d.ts","../../../node_modules/.pnpm/@types+node@18.11.11/node_modules/@types/node/globals.global.d.ts","../../../node_modules/.pnpm/@types+node@18.11.11/node_modules/@types/node/index.d.ts","../../utils/build/types/Host.d.ts","../../utils/build/types/getWorkspacePackageDirs.d.ts","../../utils/build/types/mutateJson.d.ts","../../utils/build/types/PackageJson.d.ts","../../utils/build/types/findWorkspaceDir.d.ts","../../utils/build/types/getPackageNameToDir.d.ts","../../utils/build/types/SimpleHost.d.ts","../../utils/build/types/CachingHost.d.ts","../../utils/build/types/matchesAnyGlob.d.ts","../../utils/build/types/nanosecondsToSanity.d.ts","../../utils/build/types/AggregateTiming.d.ts","../../utils/build/types/Timing.d.ts","../../utils/build/types/Table.d.ts","../../utils/build/types/index.d.ts","../../config/build/types/PackageContext.d.ts","../../config/build/types/WorkspaceContext.d.ts","../../config/build/types/Context.d.ts","../../config/build/types/Config.d.ts","../../config/build/types/index.d.ts","../../../node_modules/.pnpm/@sinclair+typebox@0.24.51/node_modules/@sinclair/typebox/typebox.d.ts","../../../node_modules/.pnpm/@jest+schemas@29.0.0/node_modules/@jest/schemas/build/index.d.ts","../../../node_modules/.pnpm/pretty-format@29.3.1/node_modules/pretty-format/build/index.d.ts","../../../node_modules/.pnpm/jest-diff@29.3.1/node_modules/jest-diff/build/index.d.ts","../src/util/checkAlpha.ts","../src/util/makeRule.ts","../src/alphabeticalDependencies.ts","../src/alphabeticalScripts.ts","../../../node_modules/.pnpm/resolve-package-path@4.0.3/node_modules/resolve-package-path/lib/cache.d.ts","../../../node_modules/.pnpm/resolve-package-path@4.0.3/node_modules/resolve-package-path/lib/cache-group.d.ts","../../../node_modules/.pnpm/resolve-package-path@4.0.3/node_modules/resolve-package-path/lib/index.d.ts","../src/util/packageDependencyGraphService.ts","../src/bannedDependencies.ts","../src/consistentDependencies.ts","../../../node_modules/.pnpm/@types+semver@7.3.13/node_modules/@types/semver/classes/semver.d.ts","../../../node_modules/.pnpm/@types+semver@7.3.13/node_modules/@types/semver/functions/parse.d.ts","../../../node_modules/.pnpm/@types+semver@7.3.13/node_modules/@types/semver/functions/valid.d.ts","../../../node_modules/.pnpm/@types+semver@7.3.13/node_modules/@types/semver/functions/clean.d.ts","../../../node_modules/.pnpm/@types+semver@7.3.13/node_modules/@types/semver/functions/inc.d.ts","../../../node_modules/.pnpm/@types+semver@7.3.13/node_modules/@types/semver/functions/diff.d.ts","../../../node_modules/.pnpm/@types+semver@7.3.13/node_modules/@types/semver/functions/major.d.ts","../../../node_modules/.pnpm/@types+semver@7.3.13/node_modules/@types/semver/functions/minor.d.ts","../../../node_modules/.pnpm/@types+semver@7.3.13/node_modules/@types/semver/functions/patch.d.ts","../../../node_modules/.pnpm/@types+semver@7.3.13/node_modules/@types/semver/functions/prerelease.d.ts","../../../node_modules/.pnpm/@types+semver@7.3.13/node_modules/@types/semver/functions/compare.d.ts","../../../node_modules/.pnpm/@types+semver@7.3.13/node_modules/@types/semver/functions/rcompare.d.ts","../../../node_modules/.pnpm/@types+semver@7.3.13/node_modules/@types/semver/functions/compare-loose.d.ts","../../../node_modules/.pnpm/@types+semver@7.3.13/node_modules/@types/semver/functions/compare-build.d.ts","../../../node_modules/.pnpm/@types+semver@7.3.13/node_modules/@types/semver/functions/sort.d.ts","../../../node_modules/.pnpm/@types+semver@7.3.13/node_modules/@types/semver/functions/rsort.d.ts","../../../node_modules/.pnpm/@types+semver@7.3.13/node_modules/@types/semver/functions/gt.d.ts","../../../node_modules/.pnpm/@types+semver@7.3.13/node_modules/@types/semver/functions/lt.d.ts","../../../node_modules/.pnpm/@types+semver@7.3.13/node_modules/@types/semver/functions/eq.d.ts","../../../node_modules/.pnpm/@types+semver@7.3.13/node_modules/@types/semver/functions/neq.d.ts","../../../node_modules/.pnpm/@types+semver@7.3.13/node_modules/@types/semver/functions/gte.d.ts","../../../node_modules/.pnpm/@types+semver@7.3.13/node_modules/@types/semver/functions/lte.d.ts","../../../node_modules/.pnpm/@types+semver@7.3.13/node_modules/@types/semver/functions/cmp.d.ts","../../../node_modules/.pnpm/@types+semver@7.3.13/node_modules/@types/semver/functions/coerce.d.ts","../../../node_modules/.pnpm/@types+semver@7.3.13/node_modules/@types/semver/classes/comparator.d.ts","../../../node_modules/.pnpm/@types+semver@7.3.13/node_modules/@types/semver/classes/range.d.ts","../../../node_modules/.pnpm/@types+semver@7.3.13/node_modules/@types/semver/functions/satisfies.d.ts","../../../node_modules/.pnpm/@types+semver@7.3.13/node_modules/@types/semver/ranges/max-satisfying.d.ts","../../../node_modules/.pnpm/@types+semver@7.3.13/node_modules/@types/semver/ranges/min-satisfying.d.ts","../../../node_modules/.pnpm/@types+semver@7.3.13/node_modules/@types/semver/ranges/to-comparators.d.ts","../../../node_modules/.pnpm/@types+semver@7.3.13/node_modules/@types/semver/ranges/min-version.d.ts","../../../node_modules/.pnpm/@types+semver@7.3.13/node_modules/@types/semver/ranges/valid.d.ts","../../../node_modules/.pnpm/@types+semver@7.3.13/node_modules/@types/semver/ranges/outside.d.ts","../../../node_modules/.pnpm/@types+semver@7.3.13/node_modules/@types/semver/ranges/gtr.d.ts","../../../node_modules/.pnpm/@types+semver@7.3.13/node_modules/@types/semver/ranges/ltr.d.ts","../../../node_modules/.pnpm/@types+semver@7.3.13/node_modules/@types/semver/ranges/intersects.d.ts","../../../node_modules/.pnpm/@types+semver@7.3.13/node_modules/@types/semver/ranges/simplify.d.ts","../../../node_modules/.pnpm/@types+semver@7.3.13/node_modules/@types/semver/ranges/subset.d.ts","../../../node_modules/.pnpm/@types+semver@7.3.13/node_modules/@types/semver/internals/identifiers.d.ts","../../../node_modules/.pnpm/@types+semver@7.3.13/node_modules/@types/semver/index.d.ts","../src/consistentVersions.ts","../src/fileContents.ts","../src/mustSatisfyPeerDependencies.ts","../src/packageOrder.ts","../src/packageEntry.ts","../src/packageScript.ts","../src/standardTsconfig.ts","../../../node_modules/.pnpm/@nodelib+fs.stat@2.0.5/node_modules/@nodelib/fs.stat/out/types/index.d.ts","../../../node_modules/.pnpm/@nodelib+fs.stat@2.0.5/node_modules/@nodelib/fs.stat/out/adapters/fs.d.ts","../../../node_modules/.pnpm/@nodelib+fs.stat@2.0.5/node_modules/@nodelib/fs.stat/out/settings.d.ts","../../../node_modules/.pnpm/@nodelib+fs.stat@2.0.5/node_modules/@nodelib/fs.stat/out/providers/async.d.ts","../../../node_modules/.pnpm/@nodelib+fs.stat@2.0.5/node_modules/@nodelib/fs.stat/out/index.d.ts","../../../node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/types/index.d.ts","../../../node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/adapters/fs.d.ts","../../../node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/settings.d.ts","../../../node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/providers/async.d.ts","../../../node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/index.d.ts","../../../node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/types/index.d.ts","../../../node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/settings.d.ts","../../../node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/readers/reader.d.ts","../../../node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/readers/async.d.ts","../../../node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/providers/async.d.ts","../../../node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/index.d.ts","../../../node_modules/.pnpm/fast-glob@3.2.12/node_modules/fast-glob/out/types/index.d.ts","../../../node_modules/.pnpm/fast-glob@3.2.12/node_modules/fast-glob/out/settings.d.ts","../../../node_modules/.pnpm/fast-glob@3.2.12/node_modules/fast-glob/out/managers/tasks.d.ts","../../../node_modules/.pnpm/fast-glob@3.2.12/node_modules/fast-glob/out/index.d.ts","../../../node_modules/.pnpm/globby@13.1.2/node_modules/globby/index.d.ts","../src/nestedWorkspaces.ts","../src/requireDependency.ts","../src/index.ts","../../../node_modules/.pnpm/@types+yargs-parser@15.0.0/node_modules/@types/yargs-parser/index.d.ts","../../../node_modules/.pnpm/@types+yargs@17.0.16/node_modules/@types/yargs/index.d.ts","../../../node_modules/.pnpm/@types+istanbul-lib-coverage@2.0.3/node_modules/@types/istanbul-lib-coverage/index.d.ts","../../../node_modules/.pnpm/chalk@4.1.2/node_modules/chalk/index.d.ts","../../../node_modules/.pnpm/@types+istanbul-lib-report@3.0.0/node_modules/@types/istanbul-lib-report/index.d.ts","../../../node_modules/.pnpm/@types+istanbul-reports@3.0.1/node_modules/@types/istanbul-reports/index.d.ts","../../../node_modules/.pnpm/@jest+types@29.3.1/node_modules/@jest/types/build/index.d.ts","../../../node_modules/.pnpm/jest-mock@29.3.1/node_modules/jest-mock/build/index.d.ts","../../../node_modules/.pnpm/@types+stack-utils@2.0.1/node_modules/@types/stack-utils/index.d.ts","../../../node_modules/.pnpm/jest-message-util@29.3.1/node_modules/jest-message-util/build/index.d.ts","../../../node_modules/.pnpm/@jest+fake-timers@29.3.1/node_modules/@jest/fake-timers/build/index.d.ts","../../../node_modules/.pnpm/@jest+environment@29.3.1/node_modules/@jest/environment/build/index.d.ts","../../../node_modules/.pnpm/@types+graceful-fs@4.1.3/node_modules/@types/graceful-fs/index.d.ts","../../../node_modules/.pnpm/jest-haste-map@29.3.1/node_modules/jest-haste-map/build/index.d.ts","../../../node_modules/.pnpm/@jest+expect-utils@29.3.1/node_modules/@jest/expect-utils/build/index.d.ts","../../../node_modules/.pnpm/jest-matcher-utils@29.3.1/node_modules/jest-matcher-utils/build/index.d.ts","../../../node_modules/.pnpm/expect@29.3.1/node_modules/expect/build/index.d.ts","../../../node_modules/.pnpm/jest-snapshot@29.3.1/node_modules/jest-snapshot/build/index.d.ts","../../../node_modules/.pnpm/@jest+expect@29.3.1/node_modules/@jest/expect/build/index.d.ts","../../../node_modules/.pnpm/@jest+globals@29.3.1/node_modules/@jest/globals/build/index.d.ts","../../core/build/types/check.d.ts","../../core/build/types/PackageContext.d.ts","../../core/build/types/WorkspaceContext.d.ts","../../core/build/types/resolveConfig.d.ts","../../core/build/types/index.d.ts","../../../node_modules/.pnpm/@types+tmp@0.2.3/node_modules/@types/tmp/index.d.ts","../src/__tests__/utils.ts","../src/__tests__/alphabeticalScripts.spec.ts","../src/util/makeDirectory.ts","../src/__tests__/bannedDependencies.spec.ts","../src/__tests__/consistentDependencies.spec.ts","../src/__tests__/consistentVersions.spec.ts","../src/__tests__/fileContents.spec.ts","../src/__tests__/mustSatisfyPeerDependencies.spec.ts","../src/__tests__/nestedWorkspaces.spec.ts","../src/__tests__/packageEntry.spec.ts","../src/__tests__/packageOrder.spec.ts","../src/__tests__/packageScript.spec.ts","../src/__tests__/requireDependency.spec.ts","../src/public/util.ts"],"fileInfos":[{"version":"8730f4bf322026ff5229336391a18bcaa1f94d4f82416c8b2f3954e2ccaae2ba","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","impliedFormat":1},{"version":"7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","impliedFormat":1},{"version":"8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","impliedFormat":1},{"version":"5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","impliedFormat":1},{"version":"4b421cbfb3a38a27c279dec1e9112c3d1da296f77a1a85ddadf7e7a425d45d18","impliedFormat":1},{"version":"1fc5ab7a764205c68fa10d381b08417795fc73111d6dd16b5b1ed36badb743d9","impliedFormat":1},{"version":"746d62152361558ea6d6115cf0da4dd10ede041d14882ede3568bce5dc4b4f1f","impliedFormat":1},{"version":"adb996790133eb33b33aadb9c09f15c2c575e71fb57a62de8bf74dbf59ec7dfb","affectsGlobalScope":true,"impliedFormat":1},{"version":"8cc8c5a3bac513368b0157f3d8b31cfdcfe78b56d3724f30f80ed9715e404af8","affectsGlobalScope":true,"impliedFormat":1},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true,"impliedFormat":1},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true,"impliedFormat":1},{"version":"5f406584aef28a331c36523df688ca3650288d14f39c5d2e555c95f0d2ff8f6f","affectsGlobalScope":true,"impliedFormat":1},{"version":"22f230e544b35349cfb3bd9110b6ef37b41c6d6c43c3314a31bd0d9652fcec72","affectsGlobalScope":true,"impliedFormat":1},{"version":"7ea0b55f6b315cf9ac2ad622b0a7813315bb6e97bf4bb3fbf8f8affbca7dc695","affectsGlobalScope":true,"impliedFormat":1},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb26de841c52236d8222f87e9e6a235332e0788af8c87a71e9e210314300410a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true,"impliedFormat":1},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true,"impliedFormat":1},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true,"impliedFormat":1},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true,"impliedFormat":1},{"version":"81cac4cbc92c0c839c70f8ffb94eb61e2d32dc1c3cf6d95844ca099463cf37ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true,"impliedFormat":1},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true,"impliedFormat":1},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true,"impliedFormat":1},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true,"impliedFormat":1},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true,"impliedFormat":1},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true,"impliedFormat":1},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true,"impliedFormat":1},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true,"impliedFormat":1},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true,"impliedFormat":1},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true,"impliedFormat":1},{"version":"5e5e095c4470c8bab227dbbc61374878ecead104c74ab9960d3adcccfee23205","affectsGlobalScope":true,"impliedFormat":1},{"version":"09aa50414b80c023553090e2f53827f007a301bc34b0495bfb2c3c08ab9ad1eb","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7f680a43f8cd12a6b6122c07c54ba40952b0c8aa140dcfcf32eb9e6cb028596","affectsGlobalScope":true,"impliedFormat":1},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true,"impliedFormat":1},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true,"impliedFormat":1},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true,"impliedFormat":1},{"version":"2768ef564cfc0689a1b76106c421a2909bdff0acbe87da010785adab80efdd5c","affectsGlobalScope":true,"impliedFormat":1},{"version":"b248e32ca52e8f5571390a4142558ae4f203ae2f94d5bac38a3084d529ef4e58","affectsGlobalScope":true,"impliedFormat":1},{"version":"6c55633c733c8378db65ac3da7a767c3cf2cf3057f0565a9124a16a3a2019e87","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb4416144c1bf0323ccbc9afb0ab289c07312214e8820ad17d709498c865a3fe","affectsGlobalScope":true,"impliedFormat":1},{"version":"5b0ca94ec819d68d33da516306c15297acec88efeb0ae9e2b39f71dbd9685ef7","affectsGlobalScope":true,"impliedFormat":1},{"version":"34c839eaaa6d78c8674ae2c37af2236dee6831b13db7b4ef4df3ec889a04d4f2","affectsGlobalScope":true,"impliedFormat":1},{"version":"52d1bb7ab7a3306fd0375c8bff560feed26ed676a5b0457fa8027b563aecb9a4","affectsGlobalScope":true,"impliedFormat":1},{"version":"f1c9fe42b65437a61104e601eb298c5c859fb522b483f1bdb700eed67a16f980","impliedFormat":1},{"version":"4edd6956984539f858db96d9dc44dbf6bfc64c7067eaca3c4dd0b22215c77027","impliedFormat":1},{"version":"7b32f34cd9de174153a17eca138eec5c891ed2af5d9777c42cf0ba57fb0815b5","impliedFormat":1},{"version":"3123f2c69d51a40a561e9f99c8d15a7038621081abd5f47a71210096ac8e1814","impliedFormat":1},{"version":"9ac27e0391cdc1d6a881e92939f576d57bea61a052af6850e5aba63f7dc75f7e","impliedFormat":1},{"version":"2205fa8d555344622173f9773a6ad41cdafebf5c6acdfd79e30847b2f99a34cf","impliedFormat":1},{"version":"ae4da23624477e9a11bf3311a25f9d6e271dc73d479b0939676e72471bb0c7b9","impliedFormat":1},{"version":"9280c3ef4d017c0ecdf1a845b9aaa655ea877e62fafc42ea9ab46699c86ba401","impliedFormat":1},{"version":"9489e70cbe7d6b151f554504e9fa636214d2763a8c9eee8fb074924bec52687d","impliedFormat":1},{"version":"bab9ae5149daf8cd7f4d0be08394b45abb461c1eb1f37204611f1394129d6de6","impliedFormat":1},{"version":"aee7078023ca1adda134f8cc0a956c2c1ee7c6395900c91122134efbfd9a3b2a","impliedFormat":1},{"version":"e8b22941c184258ee43221dd990fc9536df2b6add7a7660249e7eb6c8fa4c0cf","impliedFormat":1},{"version":"35daeff60ff19ad45bddbd2aa3b698751d2787eb4d93ec96acaaf7600407aaf9","impliedFormat":1},{"version":"e70e5b1e9f5c8fb057dccd80b24ac684043c615f888c06d6a44551e5134535e8","impliedFormat":1},{"version":"bce521f55b95d2a5b0857efdfbec2f50fa491dc80b1d1f8fd1a98d2581afc498","impliedFormat":1},{"version":"da12c82783d1070add63b906b033c30dc29153189452cde21c64aebe5354f560","impliedFormat":1},{"version":"d3f20af05d538b2f5e387ffe9a10fcc5f3bb32bc04671bd08974faa796a59cad","impliedFormat":1},{"version":"1773602916bee106c96ec3ae20a76888d66786b57efa319bce01ac0888465bfe","impliedFormat":1},{"version":"cb22d368f6ff3ccbced04addac26041421baf3c15cf53edd8c2495fc061e077d","impliedFormat":1},{"version":"abe21aeda5df689f1f74e255a84a9457d17f0532105832ecf416b5f3e42b54ff","impliedFormat":1},{"version":"62bc3764e2495024c58cbb96fb39ea9d71128bf437f4085c4a1518eaa63e446e","impliedFormat":1},{"version":"6e35c492cc91608fc858627a9441d714bd2a087e8775ecbe2f664d1c9f140676","impliedFormat":1},{"version":"22aec566956a4070124a9d08718b391d2271a0e4b9e310fc7679cbdf40e9d4f3","impliedFormat":1},{"version":"a6f7d4c6026e67eb8059a73872ef86fc5de394efe1a6d4710f89b057d11a7247","impliedFormat":1},{"version":"a061a4e5b960beb6cbc730640e7c5f1c22dcf8fe812a7530430d7c0dfc51a5d6","impliedFormat":1},{"version":"78f2fae59445f065687b3cb2aa3e35e5dfaa797471636e0f1d4b055dd80a9f8a","impliedFormat":1},{"version":"91e50c7d0494c484898b55231c61c7db1457d5974b51677d382edef8f90b4ed3","impliedFormat":1},{"version":"3055642b3986218f66301a7ec1ddd5c77bc836437cb5ac66186eb079e4dd9e07","impliedFormat":1},{"version":"b420e3fdfd41cd3c2a51ef86c8bb43724643aefe221d2195c8ba6f129a6f8b9b","impliedFormat":1},{"version":"463424dd9e1e5020d67fa0724d004fc321baeed0f395f132d4509a020f2789dd","impliedFormat":1},{"version":"f040e3800469ce990f153622fe508174f7c33a3627014e43587b1c91d8ef6335","impliedFormat":1},{"version":"93b40cccb84adf216109e4f241fd9a871d40029ef43fc0779d9dfb443d007d81","impliedFormat":1},{"version":"7e771891adaa85b690266bc37bd6eb43bc57eecc4b54693ead36467e7369952a","impliedFormat":1},{"version":"a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a","impliedFormat":1},{"version":"ca72190df0eb9b09d4b600821c8c7b6c9747b75a1c700c4d57dc0bb72abc074c","affectsGlobalScope":true,"impliedFormat":1},{"version":"21a167fec8f933752fb8157f06d28fab6817af3ad9b0bdb1908a10762391eab9","impliedFormat":1},{"version":"bb65c6267c5d6676be61acbf6604cf0a4555ac4b505df58ac15c831fcbff4e3e","affectsGlobalScope":true,"impliedFormat":1},{"version":"0c0cee62cb619aed81133b904f644515ba3064487002a7da83fd8aa07b1b4abd","impliedFormat":1},{"version":"5a94487653355b56018122d92392beb2e5f4a6c63ba5cef83bbe1c99775ef713","impliedFormat":1},{"version":"d5135ad93b33adcce80b18f8065087934cdc1730d63db58562edcf017e1aad9b","affectsGlobalScope":true,"impliedFormat":1},{"version":"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","impliedFormat":1},{"version":"afcc1c426b76db7ec80e563d4fb0ba9e6bcc6e63c2d7e9342e649dc56d26347f","impliedFormat":1},{"version":"bb9c4ffa5e6290c6980b63c815cdd1625876dadb2efaf77edbe82984be93e55e","impliedFormat":1},{"version":"489532ff54b714f0e0939947a1c560e516d3ae93d51d639ab02e907a0e950114","impliedFormat":1},{"version":"f30bb836526d930a74593f7b0f5c1c46d10856415a8f69e5e2fc3db80371e362","impliedFormat":1},{"version":"14b5aa23c5d0ae1907bc696ac7b6915d88f7d85799cc0dc2dcf98fbce2c5a67c","impliedFormat":1},{"version":"5c439dafdc09abe4d6c260a96b822fa0ba5be7203c71a63ab1f1423cd9e838ea","impliedFormat":1},{"version":"6b526a5ec4a401ca7c26cfe6a48e641d8f30af76673bad3b06a1b4504594a960","affectsGlobalScope":true,"impliedFormat":1},{"version":"816ad2e607a96de5bcac7d437f843f5afd8957f1fa5eefa6bba8e4ed7ca8fd84","affectsGlobalScope":true,"impliedFormat":1},{"version":"cec36af22f514322f870e81d30675c78df82ae8bf4863f5fd4e4424c040c678d","impliedFormat":1},{"version":"d903fafe96674bc0b2ac38a5be4a8fc07b14c2548d1cdb165a80ea24c44c0c54","impliedFormat":1},{"version":"b01a80007e448d035a16c74b5c95a5405b2e81b12fabcf18b75aa9eb9ef28990","impliedFormat":1},{"version":"04eb6578a588d6a46f50299b55f30e3a04ef27d0c5a46c57d8fcc211cd530faa","impliedFormat":1},{"version":"dbe5aa5a5dd8bd1c6a8d11b1310c3f0cdabaacc78a37b394a8c7b14faeb5fb84","impliedFormat":1},{"version":"2c828a5405191d006115ab34e191b8474bc6c86ffdc401d1a9864b1b6e088a58","impliedFormat":1},{"version":"e8b18c6385ff784228a6f369694fcf1a6b475355ba89090a88de13587a9391d5","affectsGlobalScope":true,"impliedFormat":1},{"version":"d076fede3cb042e7b13fc29442aaa03a57806bc51e2b26a67a01fbc66a7c0c12","impliedFormat":1},{"version":"7c013aa892414a7fdcfd861ae524a668eaa3ede8c7c0acafaf611948122c8d93","impliedFormat":1},{"version":"b0973c3cbcdc59b37bf477731d468696ecaf442593ec51bab497a613a580fe30","impliedFormat":1},{"version":"4989e92ba5b69b182d2caaea6295af52b7dc73a4f7a2e336a676722884e7139d","affectsGlobalScope":true,"impliedFormat":1},{"version":"b3624aed92dab6da8484280d3cb3e2f4130ec3f4ef3f8201c95144ae9e898bb6","affectsGlobalScope":true,"impliedFormat":1},{"version":"5153a2fd150e46ce57bb3f8db1318d33f6ad3261ed70ceeff92281c0608c74a3","impliedFormat":1},{"version":"210d54cd652ec0fec8c8916e4af59bb341065576ecda039842f9ffb2e908507c","impliedFormat":1},{"version":"36b03690b628eab08703d63f04eaa89c5df202e5f1edf3989f13ad389cd2c091","impliedFormat":1},{"version":"0effadd232a20498b11308058e334d3339cc5bf8c4c858393e38d9d4c0013dcf","impliedFormat":1},{"version":"25846d43937c672bab7e8195f3d881f93495df712ee901860effc109918938cc","impliedFormat":1},{"version":"fd93cee2621ff42dabe57b7be402783fd1aa69ece755bcba1e0290547ae60513","impliedFormat":1},{"version":"1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff","impliedFormat":1},{"version":"69ee23dd0d215b09907ad30d23f88b7790c93329d1faf31d7835552a10cf7cbf","impliedFormat":1},{"version":"44b8b584a338b190a59f4f6929d072431950c7bd92ec2694821c11bce180c8a5","impliedFormat":1},{"version":"23b89798789dffbd437c0c423f5d02d11f9736aea73d6abf16db4f812ff36eda","impliedFormat":1},{"version":"213fc4f2b172d8beb74b77d7c1b41488d67348066d185e4263470cbb010cd6e8","impliedFormat":1},{"version":"970a90f76d4d219ad60819d61f5994514087ba94c985647a3474a5a3d12714ed","affectsGlobalScope":true,"impliedFormat":1},{"version":"664d8f2d59164f2e08c543981453893bc7e003e4dfd29651ce09db13e9457980","impliedFormat":1},{"version":"4c8525f256873c7ba3135338c647eaf0ca7115a1a2805ae2d0056629461186ce","impliedFormat":1},{"version":"3c13ef48634e7b5012fcf7e8fce7496352c2d779a7201389ca96a2a81ee4314d","impliedFormat":1},{"version":"5d0a25ec910fa36595f85a67ac992d7a53dd4064a1ba6aea1c9f14ab73a023f2","impliedFormat":1},{"version":"f0900cd5d00fe1263ff41201fb8073dbeb984397e4af3b8002a5c207a30bdc33","affectsGlobalScope":true,"impliedFormat":1},{"version":"f7db71191aa7aac5d6bc927ed6e7075c2763d22c7238227ec0c63c8cf5cb6a8b","affectsGlobalScope":true,"impliedFormat":1},{"version":"06d7c42d256f0ce6afe1b2b6cfbc97ab391f29dadb00dd0ae8e8f23f5bc916c3","impliedFormat":1},{"version":"ec4bd1b200670fb567920db572d6701ed42a9641d09c4ff6869768c8f81b404c","impliedFormat":1},{"version":"e59a892d87e72733e2a9ca21611b9beb52977be2696c7ba4b216cbbb9a48f5aa","impliedFormat":1},{"version":"da26af7362f53d122283bc69fed862b9a9fe27e01bc6a69d1d682e0e5a4df3e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"8a300fa9b698845a1f9c41ecbe2c5966634582a8e2020d51abcace9b55aa959e","impliedFormat":1},{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true,"impliedFormat":1},{"version":"e9a8d4274033cb520ee12d6f68d161ba2b9128b87399645d3916b71187032836","impliedFormat":1},{"version":"dbfd6d2a17da1edbd32bd28beca81e982cfc3c3dfb73be6824047e92a4697b53","impliedFormat":99},{"version":"e5dc403d43993e5855eee53202e3f968fdc5a104021f9f81dda012f32644640f","impliedFormat":99},{"version":"5d215914f7f67dd9a268dd3af0cd8893d5d03d9bfc7d4ab24ee3c67c3831bb96","impliedFormat":99},{"version":"a41984c40bfd2af09be5aa0d06b3c30103d499148fd1a16dbd17f0670a9f69df","impliedFormat":99},{"version":"fd3141380b5926f3b74e1dc5a818b6a9dc16498816e7b9f6f9f441480828300e","impliedFormat":99},{"version":"adb127b87fd17764cadad119a01cf09ab2d18807119fd093d62997be95975187","impliedFormat":99},{"version":"0cae245616bbfda99672ffac3bc60f02f91db6914b4e30861437a45c99fbab61","impliedFormat":99},{"version":"f8c846a6e5a81e55d3a59b49ddc9c7c448bb8b00778f9be081470206dbe82458","impliedFormat":99},{"version":"8f9d196151007b55b01cb9736ae6036d076f1bf4ba090a69132d08b930501fea","impliedFormat":99},{"version":"4b609faae7fe8f0c7c0776719d078fcfc549eae816a2d716b385c1cb90487732","impliedFormat":99},{"version":"9333c7afc6d1233d7741ea6448e7ed19740bdcfc2dee860c10a7cc3d6966e26e","impliedFormat":99},{"version":"ab86bb5ed73c3b7d9915a79b42acfdb791f4e6d4ab9be0dff89596364eb3cb1b","impliedFormat":99},{"version":"b9136d4403c35729e62a23dba2fbeabbd49c36355318014d5837f4aad310f1bb","impliedFormat":99},{"version":"4b32ed600717c154922e2decacab588001e8841dddfb8c0a903daf2a917f48f8","impliedFormat":99},{"version":"e3f1477281313996351db36cf82a6bfe0263531af9176ad68a987693348d6f4b","impliedFormat":99},{"version":"f85fd7df266dc5a31652471d6def6f830c5f482604491aa1bb68d9782f616597","impliedFormat":99},{"version":"fd721ac6020b328a7c6b363fb74545f6cb8e986b6e784f3e8b961e88aac2ec94","impliedFormat":99},{"version":"1b56cee1deae92875e468bf6b192b0128811c94b46bbbd2ea9f1fd7b63c95ae1","impliedFormat":99},{"version":"b24656b34db785956be49fdfe38c8e25307a6ff29bbf000297ea7db7bfcf311e","impliedFormat":99},{"version":"3054ef91b855e005b9c4681399e9d64d2a7b07a22d539314d794f09e53b876a7","impliedFormat":1},{"version":"427ce5854885cfc34387e09de05c1d5c1acf94c2143e1693f1d9ff54880573e7","impliedFormat":1},{"version":"bed2c4f96fab3348be4a34d88dcb12578c1b2475b07c6acd369e99e227718d81","impliedFormat":1},{"version":"e3ba509d3dce019b3190ceb2f3fc88e2610ab717122dabd91a9efaa37804040d","impliedFormat":1},{"version":"756d2e5d32f4fd0abac62cdbc9cdbe2007b0ecf27af2be9ac1ebc3f9ddb3e934","signature":"5bc7443b25224caa5f318b802939c1d4b11eafb0eddbf5b7af7c697d449ac010","impliedFormat":99},{"version":"fee783a93f3fd62ba0e5e83698a23c729efc5ee2553e274b4aaa6203acebccfa","signature":"82caee554096a193778a290c7db7a79f6b773432df518227ccfc12db90e2488b","impliedFormat":99},{"version":"bd6dafba3ee0b41305740be42607fe49ea4ba79496b9c04784ce6f1ddf03553b","signature":"a7ebf401bb6b7fd16f9654dc2ebc33b5db01bc4818735f92235492acd7a6c0dc","impliedFormat":99},{"version":"c59d101e42128992be683bfbc08ce6b08b47d721711dc93a4ffe7ba919596d68","signature":"b347ae25aef3e32210ea9d668859fcca5425aa06245eebeb4138a0aef8f8ca20","impliedFormat":99},{"version":"d5960343e19e2a78a1dc78a6cee39e2a9d857d4a241180e45f1fd36367495386","impliedFormat":1},{"version":"c0264ca644cd14781acbd942ee3615d2b9810f4e6e6d86e0e14a1dbac8d8cdaa","impliedFormat":1},{"version":"1458833def0c60d8548148fc08d9ca95fa0011c7bf96045ce38065c5c4d48047","impliedFormat":1},{"version":"7cc60e962beedd393a91c6effe0bbdfb63eb9cb41717fd17d48b6bde49bfb577","signature":"05890b450b6d32d0a47beaa465b56303a829bd73e2e663fe0b4b81f04c20a845","impliedFormat":99},{"version":"625d1d5cd1c07a945420779e0292ee14e0e3f3ef3173ec4b5d36449df45de540","signature":"79ecd44f848786fc4409bd009a120b9b8db148b8f90f6f65d74ed5871503e40f","impliedFormat":99},{"version":"90d01026ea1105cc3047c29d179463d11e63f660a789b49309324ca21b3bcc3c","signature":"156cbe5a7dfca4a5dea45e2661fccf7cc3daa38ec4916e99a723fc0adb046136","impliedFormat":99},{"version":"2b93035328f7778d200252681c1d86285d501ed424825a18f81e4c3028aa51d9","impliedFormat":1},{"version":"2ac9c8332c5f8510b8bdd571f8271e0f39b0577714d5e95c1e79a12b2616f069","impliedFormat":1},{"version":"42c21aa963e7b86fa00801d96e88b36803188018d5ad91db2a9101bccd40b3ff","impliedFormat":1},{"version":"d31eb848cdebb4c55b4893b335a7c0cca95ad66dee13cbb7d0893810c0a9c301","impliedFormat":1},{"version":"77c1d91a129ba60b8c405f9f539e42df834afb174fe0785f89d92a2c7c16b77a","impliedFormat":1},{"version":"7a9e0a564fee396cacf706523b5aeed96e04c6b871a8bebefad78499fbffc5bc","impliedFormat":1},{"version":"906c751ef5822ec0dadcea2f0e9db64a33fb4ee926cc9f7efa38afe5d5371b2a","impliedFormat":1},{"version":"5387c049e9702f2d2d7ece1a74836a14b47fbebe9bbeb19f94c580a37c855351","impliedFormat":1},{"version":"c68391fb9efad5d99ff332c65b1606248c4e4a9f1dd9a087204242b56c7126d6","impliedFormat":1},{"version":"e9cf02252d3a0ced987d24845dcb1f11c1be5541f17e5daa44c6de2d18138d0c","impliedFormat":1},{"version":"e8b02b879754d85f48489294f99147aeccc352c760d95a6fe2b6e49cd400b2fe","impliedFormat":1},{"version":"9f6908ab3d8a86c68b86e38578afc7095114e66b2fc36a2a96e9252aac3998e0","impliedFormat":1},{"version":"0eedb2344442b143ddcd788f87096961cd8572b64f10b4afc3356aa0460171c6","impliedFormat":1},{"version":"71405cc70f183d029cc5018375f6c35117ffdaf11846c35ebf85ee3956b1b2a6","impliedFormat":1},{"version":"c68baff4d8ba346130e9753cefe2e487a16731bf17e05fdacc81e8c9a26aae9d","impliedFormat":1},{"version":"2cd15528d8bb5d0453aa339b4b52e0696e8b07e790c153831c642c3dea5ac8af","impliedFormat":1},{"version":"479d622e66283ffa9883fbc33e441f7fc928b2277ff30aacbec7b7761b4e9579","impliedFormat":1},{"version":"ade307876dc5ca267ca308d09e737b611505e015c535863f22420a11fffc1c54","impliedFormat":1},{"version":"f8cdefa3e0dee639eccbe9794b46f90291e5fd3989fcba60d2f08fde56179fb9","impliedFormat":1},{"version":"86c5a62f99aac7053976e317dbe9acb2eaf903aaf3d2e5bb1cafe5c2df7b37a8","impliedFormat":1},{"version":"2b300954ce01a8343866f737656e13243e86e5baef51bd0631b21dcef1f6e954","impliedFormat":1},{"version":"a2d409a9ffd872d6b9d78ead00baa116bbc73cfa959fce9a2f29d3227876b2a1","impliedFormat":1},{"version":"b288936f560cd71f4a6002953290de9ff8dfbfbf37f5a9391be5c83322324898","impliedFormat":1},{"version":"61178a781ef82e0ff54f9430397e71e8f365fc1e3725e0e5346f2de7b0d50dfa","impliedFormat":1},{"version":"6a6ccb37feb3aad32d9be026a3337db195979cd5727a616fc0f557e974101a54","impliedFormat":1},{"version":"c649ea79205c029a02272ef55b7ab14ada0903db26144d2205021f24727ac7a3","impliedFormat":1},{"version":"38e2b02897c6357bbcff729ef84c736727b45cc152abe95a7567caccdfad2a1d","impliedFormat":1},{"version":"d6610ea7e0b1a7686dba062a1e5544dd7d34140f4545305b7c6afaebfb348341","impliedFormat":1},{"version":"3dee35db743bdba2c8d19aece7ac049bde6fa587e195d86547c882784e6ba34c","impliedFormat":1},{"version":"b15e55c5fa977c2f25ca0b1db52cfa2d1fd4bf0baf90a8b90d4a7678ca462ff1","impliedFormat":1},{"version":"f41d30972724714763a2698ae949fbc463afb203b5fa7c4ad7e4de0871129a17","impliedFormat":1},{"version":"843dd7b6a7c6269fd43827303f5cbe65c1fecabc30b4670a50d5a15d57daeeb9","impliedFormat":1},{"version":"f06d8b8567ee9fd799bf7f806efe93b67683ef24f4dea5b23ef12edff4434d9d","impliedFormat":1},{"version":"6017384f697ff38bc3ef6a546df5b230c3c31329db84cbfe686c83bec011e2b2","impliedFormat":1},{"version":"e1a5b30d9248549ca0c0bb1d653bafae20c64c4aa5928cc4cd3017b55c2177b0","impliedFormat":1},{"version":"a593632d5878f17295bd53e1c77f27bf4c15212822f764a2bfc1702f4b413fa0","impliedFormat":1},{"version":"a868a534ba1c2ca9060b8a13b0ffbbbf78b4be7b0ff80d8c75b02773f7192c29","impliedFormat":1},{"version":"da7545aba8f54a50fde23e2ede00158dc8112560d934cee58098dfb03aae9b9d","impliedFormat":1},{"version":"34baf65cfee92f110d6653322e2120c2d368ee64b3c7981dff08ed105c4f19b0","impliedFormat":1},{"version":"6aee496bf0ecfbf6731aa8cca32f4b6e92cdc0a444911a7d88410408a45ecc5d","impliedFormat":1},{"version":"970e5b984e3ad319f00ba4f540ff23fba3d2ad67711f6ace3703387510e347f1","signature":"cb36db4a96b19a023b01ab2d799f24a503686c10ff538ad6e50d2ebd94c0c01e","impliedFormat":99},{"version":"9d4bfd4802588ce68fd06e4538492e41e78a8cff35514eb8252fb54f6096ae91","signature":"63047564c48efb30d8b72beb1f145fa5f8189fc16ae0805dbe3eb54d42ead2e6","impliedFormat":99},{"version":"2532abd595474a99ae927a9daec6e40881cf233ec02d38f8834e58e0f7cf86e3","signature":"04fab37e3f8445a119c28b1fbd7a2dc74b4e326e35bbb276cf2586563ec6e23f","impliedFormat":99},{"version":"5d6f4d5c3866ebb647b37c19cd9b5e93956dcbeb80139614ecf8da899efbdadf","signature":"94e0d8e41254e91c81a5e9fe253f5c2457ab151a50e84a1def53dce3f3b427d6","impliedFormat":99},{"version":"e71d57f9a7239f73460c0b23ff691be55fd6fcd6092161452c1e69cf51e0ef28","signature":"7c85cb73da28d6667cf5f63cb3acfa10cade68fbe1f700008f3e3be9969c8956","impliedFormat":99},{"version":"1dd55f7892c5dcc93f2dbd840c25e0a16068c9afd252fe5cfcf8824c4e0dcc2f","signature":"58d682713282dcaf5014f419787dd790799b5968128efbef073d6ec067a38e65","impliedFormat":99},{"version":"624043ec39d375e989ce11bae6dead441543658cde078369f77f97e497f97a18","signature":"c5952ef3532e4e368a499fde6eb2b76f47d0fd16ef8c249dcbd9c9de87b9bfbf","impliedFormat":99},{"version":"46324183533e34fad2461b51174132e8e0e4b3ac1ceb5032e4952992739d1eab","impliedFormat":1},{"version":"d3fa0530dfb1df408f0abd76486de39def69ca47683d4a3529b2d22fce27c693","impliedFormat":1},{"version":"d9be977c415df16e4defe4995caeca96e637eeef9d216d0d90cdba6fc617e97e","impliedFormat":1},{"version":"98e0c2b48d855a844099123e8ec20fe383ecd1c5877f3895b048656befe268d0","impliedFormat":1},{"version":"ff53802a97b7d11ab3c4395aa052baa14cd12d2b1ed236b520a833fdd2a15003","impliedFormat":1},{"version":"fce9262f840a74118112caf685b725e1cc86cd2b0927311511113d90d87cc61e","impliedFormat":1},{"version":"d7a7cac49af2a3bfc208fe68831fbfa569864f74a7f31cc3a607f641e6c583fd","impliedFormat":1},{"version":"9a80e3322d08274f0e41b77923c91fe67b2c8a5134a5278c2cb60a330441554e","impliedFormat":1},{"version":"2460af41191009298d931c592fb6d4151beea320f1f25b73605e2211e53e4e88","impliedFormat":1},{"version":"2f87ea988d84d1c617afdeba9d151435473ab24cd5fc456510c8db26d8bd1581","impliedFormat":1},{"version":"b7336c1c536e3deaedbda956739c6250ac2d0dd171730c42cb57b10368f38a14","impliedFormat":1},{"version":"6fb67d664aaab2f1d1ad4613b58548aecb4b4703b9e4c5dba6b865b31bd14722","impliedFormat":1},{"version":"4414644199b1a047b4234965e07d189781a92b578707c79c3933918d67cd9d85","impliedFormat":1},{"version":"04a4b38c6a1682059eac00e7d0948d99c46642b57003d61d0fe9ccc9df442887","impliedFormat":1},{"version":"f12ea658b060da1752c65ae4f1e4c248587f6cd4cb4acabbf79a110b6b02ff75","impliedFormat":1},{"version":"011b2857871a878d5eae463bedc4b3dd14755dc3a67d5d10f8fbb7823d119294","impliedFormat":1},{"version":"4498108732bcb5b7000ff9cdc011058b4155e985271ac3f926468acfed0c79dd","impliedFormat":1},{"version":"36d7b72ed8f35f9e21cc223c06697eca0d4699178fc59cfd3a310e2983fd0fd6","impliedFormat":1},{"version":"5a5cbc7aa7c4f74f49073d747a2a2518d1ec22694c88bc46092b0f25ccb8ebb7","impliedFormat":1},{"version":"51bfe35171efe121cefb2501a6cd674c367d541c4c8b0ae639c126adcc84f37d","impliedFormat":1},{"version":"308bb4b17d8ac17ae11f2e3485a5866d55297914d53b2b608a3c1696676dbd3d","impliedFormat":99},{"version":"3b7fc719bbfce2d2608116bba80a760fffc6f23e8acefb5b40cd845af15c0784","signature":"342990a75f9fbebba945330bb3346dd3baf244208f878bb42b001af659a50d7a","impliedFormat":99},{"version":"1d9ec29f506e2ba8515543d0f99337660bad3e4fd96a3b7118a6b03fdfbb29fc","signature":"ade99b74cf6dcbbed96b218be4a7a2e3f89a9fa1e6c119cacce7c56545560e3c","impliedFormat":99},{"version":"a7ceaf42d575e991b6ea922a411c57a31110f0d4465dadac752ca310aaf7ac21","signature":"4ee6b03b4714439119234cf765ec1ddb48549b793e2e6f0ef3269784098f8e6a","impliedFormat":99},{"version":"fdfbe321c556c39a2ecf791d537b999591d0849e971dd938d88f460fea0186f6","impliedFormat":1},{"version":"32b5bbe4475a585fd18e648f915a37b48ac44ab94277ad161cbdf3bbfae580fc","impliedFormat":1},{"version":"de18acda71730bac52f4b256ce7511bb56cc21f6f114c59c46782eff2f632857","impliedFormat":1},{"version":"0d14fa22c41fdc7277e6f71473b20ebc07f40f00e38875142335d5b63cdfc9d2","impliedFormat":1},{"version":"7eb06594824ada538b1d8b48c3925a83e7db792f47a081a62cf3e5c4e23cf0ee","impliedFormat":1},{"version":"f5638f7c2f12a9a1a57b5c41b3c1ea7db3876c003bab68e6a57afd6bcc169af0","impliedFormat":1},{"version":"553b03ac75286f66d68df15aa757bf7bde49712cad930229994be26f4993abf7","impliedFormat":1},{"version":"5f0ce4150db96c8ee01d306349c2476cb6b837b45e2ecb14fc576025ab2af0cc","impliedFormat":1},{"version":"b0d10e46cfe3f6c476b69af02eaa38e4ccc7430221ce3109ae84bb9fb8282298","impliedFormat":1},{"version":"4105e0f39663f917fb371818f6ca7b9b1c1a9863bec900f93762dac6a2fbc524","impliedFormat":1},{"version":"a19552032d88c084a8fa91c50fecde26ea5d7a22036ef6c649353cf9d6ab4e47","impliedFormat":1},{"version":"76d3a472a5387ddcb5e0bc687836dffe90e7831463e4c7844b456544381c2638","impliedFormat":1},{"version":"2c7dca525f4e2e5f2b357dacb58ab6c8777995e6d505ef652bcbbf9789ac558f","impliedFormat":1},{"version":"052ee59d03cbb48da2a9c50c0425c122af5f5c9a3c98d146428114ce13b00376","impliedFormat":1},{"version":"a7321c0e96eecb19dcbf178493836474cef21ee3f9345384ce9d74e4be31228d","impliedFormat":1},{"version":"9ac9b7b349a96ff204f4172183cca1672cc402e1ee7277bfcdec96c000b7d818","impliedFormat":1},{"version":"ac127e4c6f2b5220b293cc9d2e64ba49781225b792a51cda50f3db8eafba550c","impliedFormat":1},{"version":"e9d793fd2f63273b7b0b4f7d761ab3ef2e3282024450f75cfe4f6f0898149b6f","impliedFormat":1},{"version":"4b7cf6bb9ccb8a8539d9a05406009abfb7931665e6387d1fafdbb60f95b4a816","impliedFormat":1},{"version":"da508fd34e10413514488bf203ff1ded8a72ff2ea61bbdb4286f2f146c034bd9","impliedFormat":1},{"version":"40c20497b7ec477580a6b0ca4b5dd29f9bc95e7c36b92d0b2dd6a4032e5b1967","impliedFormat":99},{"version":"7228f4c98481d74ebcc7be3e6662e2325b25e7c147a466cfaae9ac3c4055d553","impliedFormat":99},{"version":"ae917916a92ee10a87433be63e3e0dd6e89bd3b3b4fc5a597b727c13f23b3a5b","impliedFormat":99},{"version":"6512f458c70115f1f13a948b2d543578bad79b48f1d94c0b3d36ce24574f9cd8","impliedFormat":99},{"version":"04c1f54c9593bde9a6610b1fa3c310cd293f58c11c232744d1b27f9a063093bc","impliedFormat":99},{"version":"6061aa83817c30d3a590f037b3cba22cdd809fbe697926d6511b45147928a342","impliedFormat":1},{"version":"4fe4e111b72441642b35e19a5c1ac9d4455c7068375bb29f17f4cba964bcc394","signature":"adedf0d497f6b6e5aae154ab04e2b452b0d58581c16050256f6a6ce323f90bb7","impliedFormat":99},{"version":"8cda15638ff145b970aadc48e4620864b935f1d0b633131f469bdc042b320c8a","signature":"8e5cc466d8615d9e2d894be4211aea26a85983517337ea88ca05360e99514534","impliedFormat":99},{"version":"d57f95334ee89d7f5488dca8c1b77587e33978fb149479437db07ce64fe791d9","signature":"d392cc0dd4537ce11aa95a905f11e87055d043d5575d45f62b3c746385d22b41","impliedFormat":99},{"version":"d18de35a6bf1ef2d67062d8c6c4cfc323649c843ed31e6c2c69dd554ab942862","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881","impliedFormat":99},{"version":"b4f5590d81335be5ed0135394b85f53306cfe43f5e895adac18b5f8114cccad9","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881","impliedFormat":99},{"version":"892d45a6ca27201893ce82a9915107505879737e1f0eac4c3eb07a86dcd6eb63","signature":"23665f11635d4d5ebd9408d48da720d61bdced5ad6b8f52ff8969377844dc505","impliedFormat":99},{"version":"1b1b6614a6626d6c092f86e12679925575b9e4e3a00a0cf268c84df991105cc6","signature":"8e5cc466d8615d9e2d894be4211aea26a85983517337ea88ca05360e99514534","impliedFormat":99},{"version":"62155b33d64c243ca42187761320fcac6389d9d76e197eed10621f278647facf","signature":"23665f11635d4d5ebd9408d48da720d61bdced5ad6b8f52ff8969377844dc505","impliedFormat":99},{"version":"1df27d81dcedf5cece29f76976e908c854571cb3e7a40158b304053ba73972ce","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881","impliedFormat":99},{"version":"0433b1d64c061d376ad3e4f8501ddf403d100764eb3f63b6729055843747c435","signature":"8e5cc466d8615d9e2d894be4211aea26a85983517337ea88ca05360e99514534","impliedFormat":99},{"version":"ab7f7ab6127ef0ce6c29b93dc2c30f4b4f635f0c707e9687db4374ee0d639c7a","signature":"8e5cc466d8615d9e2d894be4211aea26a85983517337ea88ca05360e99514534","impliedFormat":99},{"version":"46c08825cd51b29723a19616e2e9e5d7db353c05efd982d967c4d7ba7b71e4e1","signature":"8e5cc466d8615d9e2d894be4211aea26a85983517337ea88ca05360e99514534","impliedFormat":99},{"version":"5a1e103c4dca075806dab34620f49b22c99558448432b53f828575867e016097","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881","impliedFormat":99},{"version":"01bb83f2f0c217a1fa41b2361d6191dff2f22e03423d706be7e489106ca96e5d","impliedFormat":99}],"options":{"allowSyntheticDefaultImports":false,"composite":true,"declaration":true,"declarationDir":"./types","declarationMap":true,"emitDeclarationOnly":true,"esModuleInterop":true,"importHelpers":true,"module":100,"noFallthroughCasesInSwitch":true,"noImplicitReturns":true,"noUnusedLocals":true,"noUnusedParameters":true,"outDir":"./js","rootDir":"../src","skipLibCheck":true,"sourceMap":true,"strict":true,"target":8,"tsBuildInfoFile":"./tsconfig.tsbuildinfo"},"fileIdsList":[[125,127,132,243,244,247],[125],[125,253,254],[125,243,244,246],[125,243,244,248,255],[125,152],[125,132,153,238,239,240,242],[125,217,218],[125,218,219,220,221],[125,132,218,220],[125,217,219],[96,125,132,249],[96,125,132,213,249],[125,213,214,215,216],[125,213,215],[125,214],[113,125,132,222,223,224,227],[125,223,224,226],[95,125,132,222,223,224,225],[125,224],[125,222,223],[125,132,222],[125,239],[125,241],[79,125],[82,125],[83,88,116,125],[84,95,96,103,113,124,125],[84,85,95,103,125],[86,125],[87,88,96,104,125],[88,113,121,125],[89,91,95,103,125],[90,125],[91,92,125],[95,125],[93,95,125],[95,96,97,113,124,125,249],[95,96,97,110,113,116,125],[125,129],[98,103,113,124,125],[95,96,98,99,103,113,121,124,125],[98,100,113,121,124,125],[79,80,81,82,83,84,85,86,87,88,89,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],[95,101,125],[102,124,125],[91,95,103,113,125],[104,125],[105,125],[82,106,125],[107,123,125,129],[108,125],[109,125],[95,110,111,125],[110,112,125,127],[83,95,113,114,115,116,125],[83,113,115,125],[113,114,125],[116,125],[117,125],[95,119,120,125],[119,120,125],[88,103,113,121,125],[122,125],[103,123,125],[83,98,109,124,125],[88,125],[113,125,126],[125,127],[125,128],[83,88,95,97,106,113,124,125,127,129],[113,125,130],[125,166,205],[125,166,190,205],[125,205],[125,166],[125,166,191,205],[125,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204],[125,191,205],[125,237],[125,251,252],[125,132,229,230,231],[125,229,230],[125,229],[125,132,228],[124,125,232],[125,154],[125,132,243,249],[125,155,240],[125,243,245],[125,154,243,250,253],[125,153],[125,160],[125,160,161],[54,125],[55,125],[48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,125],[48,54,125],[49,51,52,54,125],[53,78,125],[50,54,125],[54,70,125],[49,54,125],[50,125],[78,125,149],[125,146,148,150],[125,149],[125,147],[125,147,148,149,150],[125,146,151],[125,146,151,258],[125,257,258,259,260],[125,151],[47,125,151,156,159,256,263],[47,96,105,125,146,164,249,256,261,262,263,265],[47,96,105,125,146,165,249,256,261,262,263,265],[47,105,125,146,206,256,261,262,265],[47,125,151,207,256,263],[47,105,125,146,208,256,261,262,265],[47,96,105,125,146,234,249,256,261,262,263,265],[47,125,151,210,256,263],[47,125,151,209,256,263],[47,125,151,211,256,263],[47,96,105,125,146,235,256,261,262,263,265],[47,105,125,146,151,256,261,262],[47,78,125,156,157],[47,78,105,125,146,151,157,163],[47,78,125,151,155,157],[47,78,125,146,151,157,205],[47,78,105,125,151,155,157],[47,125,158,159,164,165,206,207,208,209,210,211,212,234,235],[47,78,105,125,146,151,157,162,205],[47,78,105,125,157,233],[47,78,125,146,155,157],[47,125,157],[47,78,125,146,151,155,157],[47,78,105,125,146,151,155,157],[47,125,151,155],[47,96,105,125,249],[47,78,125,151],[47,105,125,146,162],[96,125,132,133],[125,132],[96,125,132,133,249],[125,133],[125,133,134,135,136,137,138,139,140,141,142,143,144,145],[146,151,256],[78,151],[158,159,164,165,206,207,208,209,210,211,212,234,235],[151],[146]],"referencedMap":[[248,1],[251,2],[255,3],[247,4],[256,5],[153,6],[243,7],[219,8],[222,9],[221,10],[220,11],[218,12],[214,13],[217,14],[216,15],[215,16],[213,12],[228,17],[227,18],[226,19],[225,20],[224,21],[223,22],[152,2],[249,12],[239,2],[241,23],[242,24],[79,25],[80,25],[82,26],[83,27],[84,28],[85,29],[86,30],[87,31],[88,32],[89,33],[90,34],[91,35],[92,35],[94,36],[93,37],[95,36],[96,38],[97,39],[81,40],[131,2],[98,41],[99,42],[100,43],[132,44],[101,45],[102,46],[103,47],[104,48],[105,49],[106,50],[107,51],[108,52],[109,53],[110,54],[111,54],[112,55],[113,56],[115,57],[114,58],[116,59],[117,60],[118,2],[119,61],[120,62],[121,63],[122,64],[123,65],[124,66],[125,67],[126,68],[127,69],[128,70],[129,71],[130,72],[190,73],[191,74],[166,75],[169,75],[188,73],[189,73],[179,73],[178,76],[176,73],[171,73],[184,73],[182,73],[186,73],[170,73],[183,73],[187,73],[172,73],[173,73],[185,73],[167,73],[174,73],[175,73],[177,73],[181,73],[192,77],[180,73],[168,73],[205,78],[204,2],[199,77],[201,79],[200,77],[193,77],[194,77],[196,77],[198,77],[202,79],[203,79],[195,79],[197,79],[245,2],[262,2],[237,2],[238,80],[240,2],[253,81],[232,82],[231,83],[230,84],[229,85],[233,86],[155,87],[250,88],[252,89],[246,90],[244,2],[254,91],[154,92],[161,93],[160,2],[162,94],[57,95],[56,95],[77,95],[59,96],[78,97],[58,98],[53,99],[55,2],[54,100],[68,95],[65,95],[63,95],[76,95],[51,101],[72,102],[74,95],[52,95],[73,95],[75,95],[49,98],[60,95],[64,95],[70,95],[71,102],[66,95],[67,95],[62,103],[69,95],[48,95],[50,95],[61,104],[47,2],[10,2],[9,2],[2,2],[11,2],[12,2],[13,2],[14,2],[15,2],[16,2],[17,2],[18,2],[3,2],[4,2],[22,2],[19,2],[20,2],[21,2],[23,2],[24,2],[25,2],[5,2],[26,2],[27,2],[28,2],[29,2],[6,2],[33,2],[30,2],[31,2],[32,2],[34,2],[7,2],[35,2],[40,2],[41,2],[36,2],[37,2],[38,2],[39,2],[8,2],[45,2],[42,2],[43,2],[44,2],[1,2],[46,2],[150,105],[149,106],[147,107],[148,108],[151,109],[258,110],[259,111],[257,110],[261,112],[260,113],[264,114],[266,115],[267,116],[268,117],[269,118],[270,119],[271,120],[272,121],[273,122],[274,123],[275,124],[263,125],[158,126],[159,126],[164,127],[165,128],[206,129],[207,130],[236,131],[208,132],[234,133],[210,134],[209,128],[211,134],[276,135],[235,136],[212,137],[156,138],[265,139],[157,140],[163,141],[143,2],[140,142],[133,143],[136,2],[139,144],[145,2],[144,2],[137,145],[138,145],[134,145],[146,146],[141,2],[135,145],[142,2]],"exportedModulesMap":[[248,1],[251,2],[255,3],[247,4],[256,5],[153,6],[243,7],[219,8],[222,9],[221,10],[220,11],[218,12],[214,13],[217,14],[216,15],[215,16],[213,12],[228,17],[227,18],[226,19],[225,20],[224,21],[223,22],[152,2],[249,12],[239,2],[241,23],[242,24],[79,25],[80,25],[82,26],[83,27],[84,28],[85,29],[86,30],[87,31],[88,32],[89,33],[90,34],[91,35],[92,35],[94,36],[93,37],[95,36],[96,38],[97,39],[81,40],[131,2],[98,41],[99,42],[100,43],[132,44],[101,45],[102,46],[103,47],[104,48],[105,49],[106,50],[107,51],[108,52],[109,53],[110,54],[111,54],[112,55],[113,56],[115,57],[114,58],[116,59],[117,60],[118,2],[119,61],[120,62],[121,63],[122,64],[123,65],[124,66],[125,67],[126,68],[127,69],[128,70],[129,71],[130,72],[190,73],[191,74],[166,75],[169,75],[188,73],[189,73],[179,73],[178,76],[176,73],[171,73],[184,73],[182,73],[186,73],[170,73],[183,73],[187,73],[172,73],[173,73],[185,73],[167,73],[174,73],[175,73],[177,73],[181,73],[192,77],[180,73],[168,73],[205,78],[204,2],[199,77],[201,79],[200,77],[193,77],[194,77],[196,77],[198,77],[202,79],[203,79],[195,79],[197,79],[245,2],[262,2],[237,2],[238,80],[240,2],[253,81],[232,82],[231,83],[230,84],[229,85],[233,86],[155,87],[250,88],[252,89],[246,90],[244,2],[254,91],[154,92],[161,93],[160,2],[162,94],[57,95],[56,95],[77,95],[59,96],[78,97],[58,98],[53,99],[55,2],[54,100],[68,95],[65,95],[63,95],[76,95],[51,101],[72,102],[74,95],[52,95],[73,95],[75,95],[49,98],[60,95],[64,95],[70,95],[71,102],[66,95],[67,95],[62,103],[69,95],[48,95],[50,95],[61,104],[47,2],[10,2],[9,2],[2,2],[11,2],[12,2],[13,2],[14,2],[15,2],[16,2],[17,2],[18,2],[3,2],[4,2],[22,2],[19,2],[20,2],[21,2],[23,2],[24,2],[25,2],[5,2],[26,2],[27,2],[28,2],[29,2],[6,2],[33,2],[30,2],[31,2],[32,2],[34,2],[7,2],[35,2],[40,2],[41,2],[36,2],[37,2],[38,2],[39,2],[8,2],[45,2],[42,2],[43,2],[44,2],[1,2],[46,2],[150,105],[149,106],[147,107],[148,108],[151,109],[258,110],[259,111],[257,110],[261,112],[260,113],[263,147],[158,148],[159,148],[164,148],[165,148],[206,148],[207,148],[236,149],[208,148],[234,148],[210,148],[209,148],[211,148],[276,135],[235,148],[212,148],[156,150],[157,148],[163,151],[143,2],[140,142],[133,143],[136,2],[139,144],[145,2],[144,2],[137,145],[138,145],[134,145],[146,146],[141,2],[135,145],[142,2]],"semanticDiagnosticsPerFile":[248,251,255,247,256,153,243,219,222,221,220,218,214,217,216,215,213,228,227,226,225,224,223,152,249,239,241,242,79,80,82,83,84,85,86,87,88,89,90,91,92,94,93,95,96,97,81,131,98,99,100,132,101,102,103,104,105,106,107,108,109,110,111,112,113,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,190,191,166,169,188,189,179,178,176,171,184,182,186,170,183,187,172,173,185,167,174,175,177,181,192,180,168,205,204,199,201,200,193,194,196,198,202,203,195,197,245,262,237,238,240,253,232,231,230,229,233,155,250,252,246,244,254,154,161,160,162,57,56,77,59,78,58,53,55,54,68,65,63,76,51,72,74,52,73,75,49,60,64,70,71,66,67,62,69,48,50,61,47,10,9,2,11,12,13,14,15,16,17,18,3,4,22,19,20,21,23,24,25,5,26,27,28,29,6,33,30,31,32,34,7,35,40,41,36,37,38,39,8,45,42,43,44,1,46,150,149,147,148,151,258,259,257,261,260,264,266,267,268,269,270,271,272,273,274,275,263,158,159,164,165,206,207,236,208,234,210,209,211,276,235,212,156,265,157,163,143,140,133,136,139,145,144,137,138,134,146,141,135,142],"latestChangedDtsFile":"./types/public/util.d.ts"},"version":"4.9.5"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alphabeticalScripts.spec.d.ts","sourceRoot":"","sources":["../../../src/__tests__/alphabeticalScripts.spec.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bannedDependencies.spec.d.ts","sourceRoot":"","sources":["../../../src/__tests__/bannedDependencies.spec.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consistentDependencies.spec.d.ts","sourceRoot":"","sources":["../../../src/__tests__/consistentDependencies.spec.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consistentVersions.spec.d.ts","sourceRoot":"","sources":["../../../src/__tests__/consistentVersions.spec.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fileContents.spec.d.ts","sourceRoot":"","sources":["../../../src/__tests__/fileContents.spec.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mustSatisfyPeerDependencies.spec.d.ts","sourceRoot":"","sources":["../../../src/__tests__/mustSatisfyPeerDependencies.spec.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nestedWorkspaces.spec.d.ts","sourceRoot":"","sources":["../../../src/__tests__/nestedWorkspaces.spec.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"packageEntry.spec.d.ts","sourceRoot":"","sources":["../../../src/__tests__/packageEntry.spec.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"packageOrder.spec.d.ts","sourceRoot":"","sources":["../../../src/__tests__/packageOrder.spec.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"packageScript.spec.d.ts","sourceRoot":"","sources":["../../../src/__tests__/packageScript.spec.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"requireDependency.spec.d.ts","sourceRoot":"","sources":["../../../src/__tests__/requireDependency.spec.ts"],"names":[],"mappings":""}
|