react-native-platform-override 0.4.7 → 0.80.6
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/bin.js +1 -2
- package/lib-commonjs/Api.d.ts +57 -56
- package/lib-commonjs/Api.js +187 -167
- package/lib-commonjs/Api.js.map +1 -1
- package/lib-commonjs/BatchingQueue.d.ts +15 -15
- package/lib-commonjs/BatchingQueue.js +57 -57
- package/lib-commonjs/BatchingQueue.js.map +1 -1
- package/lib-commonjs/Cli.d.ts +7 -7
- package/lib-commonjs/Cli.js +323 -291
- package/lib-commonjs/Cli.js.map +1 -1
- package/lib-commonjs/CrossProcessLock.d.ts +44 -44
- package/lib-commonjs/CrossProcessLock.js +147 -144
- package/lib-commonjs/CrossProcessLock.js.map +1 -1
- package/lib-commonjs/DiffStrategy.d.ts +24 -24
- package/lib-commonjs/DiffStrategy.js +34 -34
- package/lib-commonjs/DiffStrategy.js.map +1 -1
- package/lib-commonjs/FileRepository.d.ts +63 -62
- package/lib-commonjs/FileRepository.js +21 -21
- package/lib-commonjs/FileRepository.js.map +1 -1
- package/lib-commonjs/FileSearch.d.ts +21 -21
- package/lib-commonjs/FileSearch.js +77 -91
- package/lib-commonjs/FileSearch.js.map +1 -1
- package/lib-commonjs/FileSystemRepository.d.ts +21 -20
- package/lib-commonjs/FileSystemRepository.js +62 -59
- package/lib-commonjs/FileSystemRepository.js.map +1 -1
- package/lib-commonjs/GitReactFileRepository.d.ts +57 -58
- package/lib-commonjs/GitReactFileRepository.js +202 -208
- package/lib-commonjs/GitReactFileRepository.js.map +1 -1
- package/lib-commonjs/Hash.d.ts +34 -33
- package/lib-commonjs/Hash.js +81 -81
- package/lib-commonjs/Hash.js.map +1 -1
- package/lib-commonjs/Manifest.d.ts +80 -80
- package/lib-commonjs/Manifest.js +157 -154
- package/lib-commonjs/Manifest.js.map +1 -1
- package/lib-commonjs/Override.d.ts +182 -182
- package/lib-commonjs/Override.js +248 -245
- package/lib-commonjs/Override.js.map +1 -1
- package/lib-commonjs/OverrideFactory.d.ts +33 -33
- package/lib-commonjs/OverrideFactory.js +85 -70
- package/lib-commonjs/OverrideFactory.js.map +1 -1
- package/lib-commonjs/OverridePrompt.d.ts +30 -30
- package/lib-commonjs/OverridePrompt.js +130 -104
- package/lib-commonjs/OverridePrompt.js.map +1 -1
- package/lib-commonjs/PackageUtils.d.ts +15 -15
- package/lib-commonjs/PackageUtils.js +40 -38
- package/lib-commonjs/PackageUtils.js.map +1 -1
- package/lib-commonjs/PathUtils.d.ts +14 -14
- package/lib-commonjs/PathUtils.js +31 -28
- package/lib-commonjs/PathUtils.js.map +1 -1
- package/lib-commonjs/Serialized.d.ts +158 -158
- package/lib-commonjs/Serialized.js +145 -119
- package/lib-commonjs/Serialized.js.map +1 -1
- package/lib-commonjs/UpgradeStrategy.d.ts +39 -39
- package/lib-commonjs/UpgradeStrategy.js +102 -99
- package/lib-commonjs/UpgradeStrategy.js.map +1 -1
- package/lib-commonjs/ValidationStrategy.d.ts +57 -57
- package/lib-commonjs/ValidationStrategy.js +124 -124
- package/lib-commonjs/ValidationStrategy.js.map +1 -1
- package/lib-commonjs/refFromVersion.d.ts +10 -0
- package/lib-commonjs/refFromVersion.js +99 -0
- package/lib-commonjs/refFromVersion.js.map +1 -0
- package/lib-commonjs/scripts/generateManifest.d.ts +7 -7
- package/lib-commonjs/scripts/generateManifest.js +196 -170
- package/lib-commonjs/scripts/generateManifest.js.map +1 -1
- package/lib-commonjs/scripts/hashFile.d.ts +7 -7
- package/lib-commonjs/scripts/hashFile.js +17 -14
- package/lib-commonjs/scripts/hashFile.js.map +1 -1
- package/lib-commonjs/scripts/testLocks.d.ts +1 -1
- package/lib-commonjs/scripts/testLocks.js +29 -26
- package/lib-commonjs/scripts/testLocks.js.map +1 -1
- package/package.json +53 -43
- package/CHANGELOG.json +0 -554
- package/CHANGELOG.md +0 -238
package/lib-commonjs/Cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Cli.js","sourceRoot":"","sources":["../src/Cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Cli.js","sourceRoot":"","sources":["../src/Cli.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * @format\n */\n\nimport * as Api from './Api';\n\nimport chalk from 'chalk';\nimport ora from 'ora';\nimport path from 'path';\nimport yargs from 'yargs';\n\nimport {findAllManifests, findManifest} from './FileSearch';\nimport {overrideFromDetails, promptForOverrideDetails} from './OverridePrompt';\n\nimport CrossProcessLock from './CrossProcessLock';\nimport GitReactFileRepository from './GitReactFileRepository';\nimport {UpgradeResult} from './UpgradeStrategy';\nimport {ValidationError} from './ValidationStrategy';\nimport {getNpmPackage} from './PackageUtils';\n\nvoid doMain(async () => {\n const npmPackage = await getNpmPackage();\n\n return new Promise((resolve, _reject) => {\n yargs\n .command(\n 'validate',\n 'Verify that overrides are recorded and up-to-date',\n cmdYargs =>\n cmdYargs.options({\n manifest: {\n type: 'string',\n describe: 'Optional path to the override manifest to validate',\n },\n version: {\n type: 'string',\n describe: 'Optional React Native version to check against',\n },\n }),\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n cmdArgv =>\n validateManifests({\n manifestPath: cmdArgv.manifest,\n reactNativeVersion: cmdArgv.version,\n }),\n )\n .command(\n 'add <override>',\n 'Add an override to the manifest',\n cmdYargs =>\n cmdYargs.options({\n override: {type: 'string', describe: 'The override to add'},\n }),\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n cmdArgv => addOverride(cmdArgv.override!),\n )\n .command(\n 'remove <override>',\n 'Remove an override from the manifest',\n cmdYargs =>\n cmdYargs.options({\n override: {type: 'string', describe: 'The override to remove'},\n }),\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n cmdArgv => removeOverride(cmdArgv.override!),\n )\n .command(\n 'diff <override>',\n 'Compares an override to the base file of its current version',\n cmdYargs =>\n cmdYargs.options({\n override: {type: 'string', describe: 'The override to add'},\n }),\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n cmdArgv => diffOverride(cmdArgv.override!),\n )\n .command(\n 'upgrade',\n 'Attempts to automatically merge new changes into out-of-date overrides',\n cmdYargs =>\n cmdYargs.options({\n manifest: {\n type: 'string',\n describe: 'Optional path to the override manifests to validate',\n },\n conflicts: {\n type: 'boolean',\n default: true,\n describe: 'Whether to allow merge conflicts to be written',\n },\n version: {\n type: 'string',\n describe: 'Optional React Native version to check against',\n },\n }),\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n cmdArgv =>\n upgrade({\n manifestPath: cmdArgv.manifest,\n reactNativeVersion: cmdArgv.version,\n allowConflicts: cmdArgv.conflicts,\n }),\n )\n .epilogue(npmPackage.description)\n .option('color', {hidden: true})\n .option('githubToken', {\n description: 'Optional PAT to use for GitHub API calls',\n type: 'string',\n })\n .middleware(argv => {\n if (argv.githubToken) {\n GitReactFileRepository.setGithubToken(argv.githubToken);\n }\n })\n .demandCommand()\n .recommendCommands()\n .strict()\n .showHelpOnFail(false)\n .wrap(yargs.terminalWidth())\n .version(false)\n .scriptName(npmPackage.name)\n .onFinishCommand(resolve).argv;\n });\n});\n\n/**\n * Check that the given manifest correctly describe overrides and that all\n * overrides are up to date\n */\nasync function validateManifests(opts: {\n manifestPath?: string;\n reactNativeVersion?: string;\n}) {\n const manifests = opts.manifestPath\n ? [opts.manifestPath]\n : await enumerateManifests();\n\n const spinner = ora();\n await spinnerGuard(spinner, async () => {\n // Perform validation sequentially because validation has internal\n // concurrency\n const errors: ValidationError[] = [];\n for (const manifest of manifests) {\n spinner.text = `Validating ${manifest}`;\n spinner.start();\n\n const manifestErrors = await Api.validateManifest(manifest, opts);\n if (manifestErrors.length !== 0) {\n errors.push(\n // Add the manifest path to the override name to disambiguate between different packages\n ...manifestErrors.map(e => ({\n ...e,\n overrideName: path.join(path.dirname(manifest), e.overrideName),\n })),\n );\n }\n }\n\n if (errors.length === 0) {\n spinner.text = 'Validation succeeded';\n spinner.succeed();\n } else {\n spinner.text = 'Validation failed';\n spinner.fail();\n await printValidationErrors(errors);\n process.exitCode = 1;\n }\n });\n}\n\n/**\n * Add an override to the manifest\n */\nasync function addOverride(overridePath: string) {\n const manifestPath = await findManifest(path.dirname(overridePath));\n const manifestDir = path.dirname(manifestPath);\n const overrideName = path.relative(manifestDir, path.resolve(overridePath));\n\n if (await Api.hasOverride(overrideName, manifestPath)) {\n console.warn(\n chalk.yellow(\n 'Warning: override already exists in manifest and will be overwritten',\n ),\n );\n }\n\n const overrideDetails = await promptForOverrideDetails();\n\n const spinner = ora('Adding override').start();\n await spinnerGuard(spinner, async () => {\n const override = await overrideFromDetails(\n overridePath,\n overrideDetails,\n await Api.getOverrideFactory(manifestPath),\n );\n\n await Api.removeOverride(overrideName, manifestPath);\n await Api.addOverride(override, manifestPath);\n spinner.succeed();\n });\n}\n\n/**\n * Remove an override from the manifest\n */\nasync function removeOverride(overridePath: string) {\n const manifestPath = await findManifest(path.dirname(overridePath));\n const manifestDir = path.dirname(manifestPath);\n const overrideName = path.relative(manifestDir, path.resolve(overridePath));\n\n if (await Api.removeOverride(overrideName, manifestPath)) {\n console.log(chalk.greenBright('Override successfully removed'));\n } else {\n console.error(\n chalk.red('Could not remove override. Is it part of the manifest?'),\n );\n process.exit(1);\n }\n}\n\n/**\n * Diffs an override against its base file\n */\nasync function diffOverride(overridePath: string) {\n const manifestPath = await findManifest(path.dirname(overridePath));\n const manifestDir = path.dirname(manifestPath);\n const overrideName = path.relative(manifestDir, path.resolve(overridePath));\n const diff = await Api.diffOverride(overrideName, manifestPath);\n\n const colorizedDiff = diff\n .split('\\n')\n .map(line =>\n line.startsWith('+')\n ? chalk.green(line)\n : line.startsWith('-')\n ? chalk.red(line)\n : line,\n )\n .join('\\n');\n\n console.log(colorizedDiff);\n}\n\n/**\n * Attempts to automatically merge changes from the current version into\n * out-of-date overrides.\n */\nasync function upgrade(opts: {\n manifestPath?: string;\n reactNativeVersion?: string;\n allowConflicts: boolean;\n}) {\n const manifests = opts.manifestPath\n ? [opts.manifestPath]\n : await enumerateManifests();\n\n for (const manifest of manifests) {\n await upgradeManifest(manifest, opts);\n }\n}\n\nasync function upgradeManifest(\n manifestPath: string,\n opts: {\n reactNativeVersion?: string;\n allowConflicts: boolean;\n },\n) {\n const spinner = ora(`Merging overrides in ${manifestPath}`).start();\n await spinnerGuard(spinner, async () => {\n const upgradeResults = await Api.upgradeOverrides(manifestPath, {\n ...opts,\n progressListener: (currentOverride, totalOverrides) =>\n (spinner.text = `Merging overrides in ${manifestPath} (${currentOverride}/${totalOverrides})`),\n });\n\n spinner.succeed();\n printUpgradeStats(upgradeResults, opts.allowConflicts);\n });\n}\n\n/**\n * Print statistics about an attempt to upgrade out-of-date-overrides.\n */\nfunction printUpgradeStats(\n results: Array<UpgradeResult>,\n allowConflicts: boolean,\n) {\n const numTotal = results.length;\n const numConflicts = results.filter(res => res.hasConflicts).length;\n const numAutoPatched = numTotal - numConflicts;\n\n if (numTotal === 0) {\n console.log(chalk.greenBright('No out-of-date overrides detected'));\n } else {\n console.log(\n chalk.greenBright(\n `${numAutoPatched}/${numTotal} out-of-date overrides automatically merged`,\n ),\n );\n }\n if (allowConflicts && numConflicts > 0) {\n console.log(\n chalk.yellowBright(`${numConflicts} overrides require manual resolution`),\n );\n }\n}\n\n/**\n * Prints validation errors in a user-readable form to stderr\n */\nasync function printValidationErrors(errors: ValidationError[]) {\n if (errors.length === 0) {\n return;\n }\n\n const npmPackage = await getNpmPackage();\n\n // Add an initial line of separation\n console.error();\n\n printErrorType(\n 'missingFromManifest',\n errors,\n `Found override files that aren't listed in the manifest. Overrides can be added to the manifest by using 'npx ${npmPackage.name} add <override>':`,\n );\n\n printErrorType(\n 'overrideNotFound',\n errors,\n `Found overrides in the manifest that don't exist on disk. Remove existing overrides using 'npx ${npmPackage.name} remove <override>':`,\n );\n\n printErrorType(\n 'baseNotFound',\n errors,\n `Found overrides whose base files do not exist. Remove existing overrides using 'npx ${npmPackage.name} remove <override>':`,\n );\n\n printErrorType(\n 'outOfDate',\n errors,\n `Found overrides whose original files have changed. Upgrade overrides using 'npx ${npmPackage.name} upgrade':`,\n );\n\n printErrorType(\n 'overrideDifferentFromBase',\n errors,\n 'The following overrides should be an exact copy of their base files. Ensure overrides are up to date or revert changes:',\n );\n\n printErrorType(\n 'overrideSameAsBase',\n errors,\n 'The following overrides are identical to their base files. Please remove them or set their type to \"copy\":',\n );\n\n printErrorType(\n 'expectedFile',\n errors,\n 'The following overrides should operate on files, but list directories:',\n );\n\n printErrorType(\n 'expectedDirectory',\n errors,\n 'The following overrides should operate on directories, but listed files:',\n );\n}\n\n/**\n * Print validation errors of a specific type\n */\nfunction printErrorType(\n type: ValidationError['type'],\n errors: ValidationError[],\n message: string,\n) {\n const filteredErrors = errors.filter(err => err.type === type);\n filteredErrors.sort((a, b) =>\n a.overrideName.localeCompare(b.overrideName, 'en'),\n );\n\n if (filteredErrors.length > 0) {\n console.error(chalk.red(message));\n filteredErrors.forEach(err => {\n console.error(` - ${err.overrideName}`);\n });\n console.error();\n }\n}\n\n/**\n * Wraps the function in a try/catch, failing the spinner if an exception is\n * thrown to allow unmangled output\n */\nasync function spinnerGuard<T>(\n spinner: ora.Ora,\n fn: () => Promise<T>,\n): Promise<T> {\n try {\n return await fn();\n } catch (ex) {\n if (spinner.isSpinning) {\n spinner.fail();\n }\n throw ex;\n }\n}\n\n/**\n * Wrap the main function around a barrier to ensure only one copy of the\n * override tool is running at once. This is needed to avoid multiple tools\n * accessing the same local Git repo at the same time.\n */\nasync function doMain(fn: () => Promise<void>): Promise<void> {\n const lock = new CrossProcessLock(`${(await getNpmPackage()).name}-cli-lock`);\n\n if (!(await lock.tryLock())) {\n const spinner = ora(\n 'Waiting for other instances of the override CLI to finish',\n ).start();\n await lock.lock();\n spinner.stop();\n }\n\n await fn();\n await lock.unlock();\n}\n\n/**\n * Check that a manifest exists, and return all that are found\n */\nasync function enumerateManifests(): Promise<string[]> {\n const manifests = await findAllManifests();\n if (manifests.length === 0) {\n throw new Error(\n 'No override manifests were found relative to the current directory',\n );\n }\n\n return manifests;\n}\n"]}
|
|
@@ -1,44 +1,44 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright (c) Microsoft Corporation.
|
|
3
|
-
* Licensed under the MIT License.
|
|
4
|
-
*
|
|
5
|
-
* @format
|
|
6
|
-
*/
|
|
7
|
-
/**
|
|
8
|
-
* CrossProcessLock implements a non-polling cross-process asynchronous barrier.
|
|
9
|
-
*
|
|
10
|
-
* - The lock is acquired by creating a named pipe
|
|
11
|
-
*
|
|
12
|
-
* - If named pipe creation fails due to an existing pipe, the process
|
|
13
|
-
* subscribes to the pipe, waiting asynchronously until it dies.
|
|
14
|
-
*
|
|
15
|
-
* - Once the pipe dies, any subscribers will race to acquire the lock (create
|
|
16
|
-
* the pipe server)
|
|
17
|
-
*/
|
|
18
|
-
export default class CrossProcessLock {
|
|
19
|
-
private readonly ipcPath;
|
|
20
|
-
private readonly server;
|
|
21
|
-
private readonly connections;
|
|
22
|
-
/**
|
|
23
|
-
* Create the lock instance. Does not yet allocate any resources.
|
|
24
|
-
*
|
|
25
|
-
* @param lockName unique name of the shared resource. Must be under 256
|
|
26
|
-
* chars and not use special characters.
|
|
27
|
-
*/
|
|
28
|
-
constructor(lockName: string);
|
|
29
|
-
/**
|
|
30
|
-
* Try to acquire the shared resource. Returns false if it is already in use
|
|
31
|
-
* without acquiring the resource. Subsequent tryLock calls after obtaining a
|
|
32
|
-
* lock will return false.
|
|
33
|
-
*/
|
|
34
|
-
tryLock(): Promise<boolean>;
|
|
35
|
-
/**
|
|
36
|
-
* Acquire the shared resource, waiting for it to be available.
|
|
37
|
-
*/
|
|
38
|
-
lock(): Promise<void>;
|
|
39
|
-
private waitUntilPipeDeath;
|
|
40
|
-
/**
|
|
41
|
-
* Release the shared resource
|
|
42
|
-
*/
|
|
43
|
-
unlock(): Promise<void>;
|
|
44
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Microsoft Corporation.
|
|
3
|
+
* Licensed under the MIT License.
|
|
4
|
+
*
|
|
5
|
+
* @format
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* CrossProcessLock implements a non-polling cross-process asynchronous barrier.
|
|
9
|
+
*
|
|
10
|
+
* - The lock is acquired by creating a named pipe
|
|
11
|
+
*
|
|
12
|
+
* - If named pipe creation fails due to an existing pipe, the process
|
|
13
|
+
* subscribes to the pipe, waiting asynchronously until it dies.
|
|
14
|
+
*
|
|
15
|
+
* - Once the pipe dies, any subscribers will race to acquire the lock (create
|
|
16
|
+
* the pipe server)
|
|
17
|
+
*/
|
|
18
|
+
export default class CrossProcessLock {
|
|
19
|
+
private readonly ipcPath;
|
|
20
|
+
private readonly server;
|
|
21
|
+
private readonly connections;
|
|
22
|
+
/**
|
|
23
|
+
* Create the lock instance. Does not yet allocate any resources.
|
|
24
|
+
*
|
|
25
|
+
* @param lockName unique name of the shared resource. Must be under 256
|
|
26
|
+
* chars and not use special characters.
|
|
27
|
+
*/
|
|
28
|
+
constructor(lockName: string);
|
|
29
|
+
/**
|
|
30
|
+
* Try to acquire the shared resource. Returns false if it is already in use
|
|
31
|
+
* without acquiring the resource. Subsequent tryLock calls after obtaining a
|
|
32
|
+
* lock will return false.
|
|
33
|
+
*/
|
|
34
|
+
tryLock(): Promise<boolean>;
|
|
35
|
+
/**
|
|
36
|
+
* Acquire the shared resource, waiting for it to be available.
|
|
37
|
+
*/
|
|
38
|
+
lock(): Promise<void>;
|
|
39
|
+
private waitUntilPipeDeath;
|
|
40
|
+
/**
|
|
41
|
+
* Release the shared resource
|
|
42
|
+
*/
|
|
43
|
+
unlock(): Promise<void>;
|
|
44
|
+
}
|
|
@@ -1,145 +1,148 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Copyright (c) Microsoft Corporation.
|
|
4
|
-
* Licensed under the MIT License.
|
|
5
|
-
*
|
|
6
|
-
* @format
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
* -
|
|
21
|
-
* the pipe
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
*
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
this.ipcPath =
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
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
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
if (
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Copyright (c) Microsoft Corporation.
|
|
4
|
+
* Licensed under the MIT License.
|
|
5
|
+
*
|
|
6
|
+
* @format
|
|
7
|
+
*/
|
|
8
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
9
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
const net_1 = __importDefault(require("net"));
|
|
13
|
+
const path_1 = __importDefault(require("path"));
|
|
14
|
+
const os_1 = require("os");
|
|
15
|
+
/**
|
|
16
|
+
* CrossProcessLock implements a non-polling cross-process asynchronous barrier.
|
|
17
|
+
*
|
|
18
|
+
* - The lock is acquired by creating a named pipe
|
|
19
|
+
*
|
|
20
|
+
* - If named pipe creation fails due to an existing pipe, the process
|
|
21
|
+
* subscribes to the pipe, waiting asynchronously until it dies.
|
|
22
|
+
*
|
|
23
|
+
* - Once the pipe dies, any subscribers will race to acquire the lock (create
|
|
24
|
+
* the pipe server)
|
|
25
|
+
*/
|
|
26
|
+
class CrossProcessLock {
|
|
27
|
+
/**
|
|
28
|
+
* Create the lock instance. Does not yet allocate any resources.
|
|
29
|
+
*
|
|
30
|
+
* @param lockName unique name of the shared resource. Must be under 256
|
|
31
|
+
* chars and not use special characters.
|
|
32
|
+
*/
|
|
33
|
+
constructor(lockName) {
|
|
34
|
+
if ((0, os_1.platform)() === 'win32') {
|
|
35
|
+
this.ipcPath = `\\\\.\\pipe\\${lockName}`;
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
this.ipcPath = path_1.default.join((0, os_1.tmpdir)(), `${lockName}`);
|
|
39
|
+
}
|
|
40
|
+
this.server = net_1.default.createServer();
|
|
41
|
+
this.connections = new Set();
|
|
42
|
+
this.server.on('connection', conn => {
|
|
43
|
+
this.connections.add(conn);
|
|
44
|
+
conn.on('close', () => this.connections.delete(conn));
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Try to acquire the shared resource. Returns false if it is already in use
|
|
49
|
+
* without acquiring the resource. Subsequent tryLock calls after obtaining a
|
|
50
|
+
* lock will return false.
|
|
51
|
+
*/
|
|
52
|
+
tryLock() {
|
|
53
|
+
if (this.server.listening) {
|
|
54
|
+
return Promise.resolve(false);
|
|
55
|
+
}
|
|
56
|
+
return new Promise((resolve, reject) => {
|
|
57
|
+
const onListening = () => {
|
|
58
|
+
this.server.off('error', onError);
|
|
59
|
+
resolve(true);
|
|
60
|
+
};
|
|
61
|
+
const onError = (err) => {
|
|
62
|
+
this.server.off('listening', onListening);
|
|
63
|
+
// @ts-ignore Typings for EventEmitter only know about generic JS errors
|
|
64
|
+
if (err.code === 'EADDRINUSE') {
|
|
65
|
+
resolve(false);
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
reject(err);
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
this.server.once('listening', onListening);
|
|
72
|
+
this.server.once('error', onError);
|
|
73
|
+
try {
|
|
74
|
+
this.server.listen({
|
|
75
|
+
path: this.ipcPath,
|
|
76
|
+
exclusive: true,
|
|
77
|
+
readableAll: true,
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
catch (ex) {
|
|
81
|
+
// Old versions of Node will throw an extra TypeError when address is
|
|
82
|
+
// in use that we need to ignore https://github.com/nodejs/node/issues/23917
|
|
83
|
+
if (ex.name !== 'TypeError') {
|
|
84
|
+
throw ex;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Acquire the shared resource, waiting for it to be available.
|
|
91
|
+
*/
|
|
92
|
+
async lock() {
|
|
93
|
+
if (this.server.listening) {
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
if (!(await this.tryLock())) {
|
|
97
|
+
await this.waitUntilPipeDeath();
|
|
98
|
+
return this.lock();
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
waitUntilPipeDeath() {
|
|
102
|
+
return new Promise((resolve, reject) => {
|
|
103
|
+
const socket = new net_1.default.Socket();
|
|
104
|
+
// Treat some errors as potential pipe death, since it could have died
|
|
105
|
+
// between the time to create a server and attempting to connect to the
|
|
106
|
+
// existing.
|
|
107
|
+
socket.once('error', err => {
|
|
108
|
+
// @ts-ignore Typings for EventEmitter only know about generic JS errors
|
|
109
|
+
if (err.code === 'ECONNREFUSED' || err.code === 'ECONNRESET') {
|
|
110
|
+
resolve();
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
reject(err);
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
socket.once('close', () => resolve());
|
|
117
|
+
socket.setTimeout(0);
|
|
118
|
+
socket.connect({ path: this.ipcPath });
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Release the shared resource
|
|
123
|
+
*/
|
|
124
|
+
unlock() {
|
|
125
|
+
if (!this.server.listening) {
|
|
126
|
+
return Promise.resolve();
|
|
127
|
+
}
|
|
128
|
+
return new Promise((resolve, reject) => {
|
|
129
|
+
const onClose = () => {
|
|
130
|
+
this.server.off('error', onError);
|
|
131
|
+
resolve();
|
|
132
|
+
};
|
|
133
|
+
const onError = (err) => {
|
|
134
|
+
this.server.off('close', onClose);
|
|
135
|
+
reject(err);
|
|
136
|
+
};
|
|
137
|
+
this.server.once('close', onClose);
|
|
138
|
+
this.server.once('error', onError);
|
|
139
|
+
// Closing will only prevent new connections, instead of killing old
|
|
140
|
+
// ones. Manually destroy all existing connections to let them retry the
|
|
141
|
+
// lock.
|
|
142
|
+
this.server.close();
|
|
143
|
+
this.connections.forEach(conn => conn.destroy());
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
exports.default = CrossProcessLock;
|
|
145
148
|
//# sourceMappingURL=CrossProcessLock.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CrossProcessLock.js","sourceRoot":"","sources":["../src/CrossProcessLock.ts"],"names":[],"mappings":";AAAA;;;;;GAKG
|
|
1
|
+
{"version":3,"file":"CrossProcessLock.js","sourceRoot":"","sources":["../src/CrossProcessLock.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * @format\n */\n\nimport net from 'net';\nimport path from 'path';\nimport {platform, tmpdir} from 'os';\n\n/**\n * CrossProcessLock implements a non-polling cross-process asynchronous barrier.\n *\n * - The lock is acquired by creating a named pipe\n *\n * - If named pipe creation fails due to an existing pipe, the process\n * subscribes to the pipe, waiting asynchronously until it dies.\n *\n * - Once the pipe dies, any subscribers will race to acquire the lock (create\n * the pipe server)\n */\nexport default class CrossProcessLock {\n private readonly ipcPath: string;\n private readonly server: net.Server;\n private readonly connections: Set<net.Socket>;\n\n /**\n * Create the lock instance. Does not yet allocate any resources.\n *\n * @param lockName unique name of the shared resource. Must be under 256\n * chars and not use special characters.\n */\n constructor(lockName: string) {\n if (platform() === 'win32') {\n this.ipcPath = `\\\\\\\\.\\\\pipe\\\\${lockName}`;\n } else {\n this.ipcPath = path.join(tmpdir(), `${lockName}`);\n }\n\n this.server = net.createServer();\n\n this.connections = new Set();\n this.server.on('connection', conn => {\n this.connections.add(conn);\n conn.on('close', () => this.connections.delete(conn));\n });\n }\n\n /**\n * Try to acquire the shared resource. Returns false if it is already in use\n * without acquiring the resource. Subsequent tryLock calls after obtaining a\n * lock will return false.\n */\n tryLock(): Promise<boolean> {\n if (this.server.listening) {\n return Promise.resolve(false);\n }\n\n return new Promise((resolve, reject) => {\n const onListening = () => {\n this.server.off('error', onError);\n resolve(true);\n };\n\n const onError = (err: Error) => {\n this.server.off('listening', onListening);\n // @ts-ignore Typings for EventEmitter only know about generic JS errors\n if (err.code === 'EADDRINUSE') {\n resolve(false);\n } else {\n reject(err);\n }\n };\n\n this.server.once('listening', onListening);\n this.server.once('error', onError);\n\n try {\n this.server.listen({\n path: this.ipcPath,\n exclusive: true,\n readableAll: true,\n });\n } catch (ex) {\n // Old versions of Node will throw an extra TypeError when address is\n // in use that we need to ignore https://github.com/nodejs/node/issues/23917\n if ((ex as Error).name !== 'TypeError') {\n throw ex;\n }\n }\n });\n }\n\n /**\n * Acquire the shared resource, waiting for it to be available.\n */\n async lock(): Promise<void> {\n if (this.server.listening) {\n return;\n }\n\n if (!(await this.tryLock())) {\n await this.waitUntilPipeDeath();\n return this.lock();\n }\n }\n\n private waitUntilPipeDeath(): Promise<void> {\n return new Promise((resolve, reject) => {\n const socket = new net.Socket();\n\n // Treat some errors as potential pipe death, since it could have died\n // between the time to create a server and attempting to connect to the\n // existing.\n socket.once('error', err => {\n // @ts-ignore Typings for EventEmitter only know about generic JS errors\n if (err.code === 'ECONNREFUSED' || err.code === 'ECONNRESET') {\n resolve();\n } else {\n reject(err);\n }\n });\n\n socket.once('close', () => resolve());\n\n socket.setTimeout(0);\n socket.connect({path: this.ipcPath});\n });\n }\n\n /**\n * Release the shared resource\n */\n unlock(): Promise<void> {\n if (!this.server.listening) {\n return Promise.resolve();\n }\n\n return new Promise((resolve, reject) => {\n const onClose = () => {\n this.server.off('error', onError);\n resolve();\n };\n const onError = (err: Error) => {\n this.server.off('close', onClose);\n reject(err);\n };\n\n this.server.once('close', onClose);\n this.server.once('error', onError);\n\n // Closing will only prevent new connections, instead of killing old\n // ones. Manually destroy all existing connections to let them retry the\n // lock.\n this.server.close();\n this.connections.forEach(conn => conn.destroy());\n });\n }\n}\n"]}
|
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright (c) Microsoft Corporation.
|
|
3
|
-
* Licensed under the MIT License.
|
|
4
|
-
*
|
|
5
|
-
* @format
|
|
6
|
-
*/
|
|
7
|
-
import GitReactFileRepository from './GitReactFileRepository';
|
|
8
|
-
import { WritableFileRepository } from './FileRepository';
|
|
9
|
-
/**
|
|
10
|
-
* An UpgradeStrategy describes the process to diff an override to its base
|
|
11
|
-
*/
|
|
12
|
-
export default interface DiffStrategy {
|
|
13
|
-
diff(gitReactRepo: GitReactFileRepository, overrideRepo: WritableFileRepository): Promise<string>;
|
|
14
|
-
}
|
|
15
|
-
export declare const DiffStrategies: {
|
|
16
|
-
/**
|
|
17
|
-
* Assume the override is the same as the original
|
|
18
|
-
*/
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* Assume the override is the same as the original
|
|
22
|
-
*/
|
|
23
|
-
compareBaseFile: (overrideFile: string, baseFile: string, baseVersion: string) => DiffStrategy;
|
|
24
|
-
};
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Microsoft Corporation.
|
|
3
|
+
* Licensed under the MIT License.
|
|
4
|
+
*
|
|
5
|
+
* @format
|
|
6
|
+
*/
|
|
7
|
+
import GitReactFileRepository from './GitReactFileRepository';
|
|
8
|
+
import { WritableFileRepository } from './FileRepository';
|
|
9
|
+
/**
|
|
10
|
+
* An UpgradeStrategy describes the process to diff an override to its base
|
|
11
|
+
*/
|
|
12
|
+
export default interface DiffStrategy {
|
|
13
|
+
diff(gitReactRepo: GitReactFileRepository, overrideRepo: WritableFileRepository): Promise<string>;
|
|
14
|
+
}
|
|
15
|
+
export declare const DiffStrategies: {
|
|
16
|
+
/**
|
|
17
|
+
* Assume the override is the same as the original
|
|
18
|
+
*/
|
|
19
|
+
assumeSame: () => DiffStrategy;
|
|
20
|
+
/**
|
|
21
|
+
* Assume the override is the same as the original
|
|
22
|
+
*/
|
|
23
|
+
compareBaseFile: (overrideFile: string, baseFile: string, baseVersion: string) => DiffStrategy;
|
|
24
|
+
};
|
|
@@ -1,35 +1,35 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Copyright (c) Microsoft Corporation.
|
|
4
|
-
* Licensed under the MIT License.
|
|
5
|
-
*
|
|
6
|
-
* @format
|
|
7
|
-
*/
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.DiffStrategies = void 0;
|
|
10
|
-
exports.DiffStrategies = {
|
|
11
|
-
/**
|
|
12
|
-
* Assume the override is the same as the original
|
|
13
|
-
*/
|
|
14
|
-
|
|
15
|
-
diff: async () => '',
|
|
16
|
-
}),
|
|
17
|
-
/**
|
|
18
|
-
* Assume the override is the same as the original
|
|
19
|
-
*/
|
|
20
|
-
compareBaseFile: (overrideFile, baseFile, baseVersion) => ({
|
|
21
|
-
diff: async (gitReactRepo, overrideRepo) => {
|
|
22
|
-
const overrideContents = await overrideRepo.readFile(overrideFile);
|
|
23
|
-
if (!overrideContents) {
|
|
24
|
-
throw new Error(`Couldn't read override "${overrideFile}"`);
|
|
25
|
-
}
|
|
26
|
-
const patch = await gitReactRepo.generatePatch(baseFile, baseVersion, overrideContents);
|
|
27
|
-
return patch
|
|
28
|
-
.trim()
|
|
29
|
-
.split('\n')
|
|
30
|
-
.slice(4) // Ignore Git gunk
|
|
31
|
-
.join('\n');
|
|
32
|
-
},
|
|
33
|
-
}),
|
|
34
|
-
};
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Copyright (c) Microsoft Corporation.
|
|
4
|
+
* Licensed under the MIT License.
|
|
5
|
+
*
|
|
6
|
+
* @format
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.DiffStrategies = void 0;
|
|
10
|
+
exports.DiffStrategies = {
|
|
11
|
+
/**
|
|
12
|
+
* Assume the override is the same as the original
|
|
13
|
+
*/
|
|
14
|
+
assumeSame: () => ({
|
|
15
|
+
diff: async () => '',
|
|
16
|
+
}),
|
|
17
|
+
/**
|
|
18
|
+
* Assume the override is the same as the original
|
|
19
|
+
*/
|
|
20
|
+
compareBaseFile: (overrideFile, baseFile, baseVersion) => ({
|
|
21
|
+
diff: async (gitReactRepo, overrideRepo) => {
|
|
22
|
+
const overrideContents = await overrideRepo.readFile(overrideFile);
|
|
23
|
+
if (!overrideContents) {
|
|
24
|
+
throw new Error(`Couldn't read override "${overrideFile}"`);
|
|
25
|
+
}
|
|
26
|
+
const patch = await gitReactRepo.generatePatch(baseFile, baseVersion, overrideContents);
|
|
27
|
+
return patch
|
|
28
|
+
.trim()
|
|
29
|
+
.split('\n')
|
|
30
|
+
.slice(4) // Ignore Git gunk
|
|
31
|
+
.join('\n');
|
|
32
|
+
},
|
|
33
|
+
}),
|
|
34
|
+
};
|
|
35
35
|
//# sourceMappingURL=DiffStrategy.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DiffStrategy.js","sourceRoot":"","sources":["../src/DiffStrategy.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAeU,QAAA,cAAc,GAAG;IAC5B;;OAEG;IACH,
|
|
1
|
+
{"version":3,"file":"DiffStrategy.js","sourceRoot":"","sources":["../src/DiffStrategy.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAeU,QAAA,cAAc,GAAG;IAC5B;;OAEG;IACH,UAAU,EAAE,GAAiB,EAAE,CAAC,CAAC;QAC/B,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;KACrB,CAAC;IAEF;;OAEG;IACH,eAAe,EAAE,CACf,YAAoB,EACpB,QAAgB,EAChB,WAAmB,EACL,EAAE,CAAC,CAAC;QAClB,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,EAAE;YACzC,MAAM,gBAAgB,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;YACnE,IAAI,CAAC,gBAAgB,EAAE;gBACrB,MAAM,IAAI,KAAK,CAAC,2BAA2B,YAAY,GAAG,CAAC,CAAC;aAC7D;YAED,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,aAAa,CAC5C,QAAQ,EACR,WAAW,EACX,gBAAgB,CACjB,CAAC;YAEF,OAAO,KAAK;iBACT,IAAI,EAAE;iBACN,KAAK,CAAC,IAAI,CAAC;iBACX,KAAK,CAAC,CAAC,CAAC,CAAC,kBAAkB;iBAC3B,IAAI,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC;KACF,CAAC;CACH,CAAC","sourcesContent":["/**\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * @format\n */\n\nimport GitReactFileRepository from './GitReactFileRepository';\nimport {WritableFileRepository} from './FileRepository';\n\n/**\n * An UpgradeStrategy describes the process to diff an override to its base\n */\nexport default interface DiffStrategy {\n diff(\n gitReactRepo: GitReactFileRepository,\n overrideRepo: WritableFileRepository,\n ): Promise<string>;\n}\n\nexport const DiffStrategies = {\n /**\n * Assume the override is the same as the original\n */\n assumeSame: (): DiffStrategy => ({\n diff: async () => '',\n }),\n\n /**\n * Assume the override is the same as the original\n */\n compareBaseFile: (\n overrideFile: string,\n baseFile: string,\n baseVersion: string,\n ): DiffStrategy => ({\n diff: async (gitReactRepo, overrideRepo) => {\n const overrideContents = await overrideRepo.readFile(overrideFile);\n if (!overrideContents) {\n throw new Error(`Couldn't read override \"${overrideFile}\"`);\n }\n\n const patch = await gitReactRepo.generatePatch(\n baseFile,\n baseVersion,\n overrideContents,\n );\n\n return patch\n .trim()\n .split('\\n')\n .slice(4) // Ignore Git gunk\n .join('\\n');\n },\n }),\n};\n"]}
|