react-native-platform-override 0.4.6 → 0.81.0-preview.10
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 -524
- package/CHANGELOG.md +0 -230
|
@@ -1,171 +1,197 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Copyright (c) Microsoft Corporation.
|
|
4
|
-
* Licensed under the MIT License.
|
|
5
|
-
*
|
|
6
|
-
* @format
|
|
7
|
-
*/
|
|
8
|
-
Object.
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
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
|
-
|
|
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
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Copyright (c) Microsoft Corporation.
|
|
4
|
+
* Licensed under the MIT License.
|
|
5
|
+
*
|
|
6
|
+
* @format
|
|
7
|
+
*/
|
|
8
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
9
|
+
if (k2 === undefined) k2 = k;
|
|
10
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
11
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
12
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
13
|
+
}
|
|
14
|
+
Object.defineProperty(o, k2, desc);
|
|
15
|
+
}) : (function(o, m, k, k2) {
|
|
16
|
+
if (k2 === undefined) k2 = k;
|
|
17
|
+
o[k2] = m[k];
|
|
18
|
+
}));
|
|
19
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
20
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
21
|
+
}) : function(o, v) {
|
|
22
|
+
o["default"] = v;
|
|
23
|
+
});
|
|
24
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
25
|
+
if (mod && mod.__esModule) return mod;
|
|
26
|
+
var result = {};
|
|
27
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
28
|
+
__setModuleDefault(result, mod);
|
|
29
|
+
return result;
|
|
30
|
+
};
|
|
31
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
32
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
33
|
+
};
|
|
34
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
35
|
+
const FileRepository = __importStar(require("../FileRepository"));
|
|
36
|
+
const Serialized = __importStar(require("../Serialized"));
|
|
37
|
+
const ora_1 = __importDefault(require("ora"));
|
|
38
|
+
const path_1 = __importDefault(require("path"));
|
|
39
|
+
const yargs_1 = __importDefault(require("yargs"));
|
|
40
|
+
const FileSystemRepository_1 = __importDefault(require("../FileSystemRepository"));
|
|
41
|
+
const GitReactFileRepository_1 = __importDefault(require("../GitReactFileRepository"));
|
|
42
|
+
const diff_match_patch_1 = require("diff-match-patch");
|
|
43
|
+
const PackageUtils_1 = require("../PackageUtils");
|
|
44
|
+
const Hash_1 = require("../Hash");
|
|
45
|
+
const isutf8_1 = __importDefault(require("isutf8"));
|
|
46
|
+
const { extensions, directory } = yargs_1.default
|
|
47
|
+
.options({
|
|
48
|
+
directory: {
|
|
49
|
+
description: 'The directory containing files that should be in the manifest',
|
|
50
|
+
type: 'string',
|
|
51
|
+
demandOption: true,
|
|
52
|
+
},
|
|
53
|
+
extensions: {
|
|
54
|
+
description: 'A list of platform specific JS extensions to include',
|
|
55
|
+
type: 'array',
|
|
56
|
+
demandOption: true,
|
|
57
|
+
},
|
|
58
|
+
})
|
|
59
|
+
.version(false).argv;
|
|
60
|
+
const extensionsRegex = new RegExp(extensions.map(e => `\\.${e}`).join('|'));
|
|
61
|
+
(async () => {
|
|
62
|
+
const spinner = (0, ora_1.default)();
|
|
63
|
+
spinner.start('Creating manifest');
|
|
64
|
+
const version = await (0, PackageUtils_1.getInstalledRNVersion)();
|
|
65
|
+
const [overrides, reactSources] = await getFileRepos(directory, version);
|
|
66
|
+
const manifest = {
|
|
67
|
+
includePatterns: undefined,
|
|
68
|
+
excludePatterns: undefined,
|
|
69
|
+
baseVersion: version,
|
|
70
|
+
overrides: [],
|
|
71
|
+
};
|
|
72
|
+
const overrideFiles = await overrides.listFiles();
|
|
73
|
+
let i = 0;
|
|
74
|
+
for (const file of overrideFiles) {
|
|
75
|
+
spinner.text = `Creating manifest (${++i}/${overrideFiles.length})`;
|
|
76
|
+
const contents = (await overrides.readFile(file));
|
|
77
|
+
(await tryAddCopy(file, contents, reactSources, manifest)) ||
|
|
78
|
+
(await tryAddPatch(file, contents, reactSources, manifest)) ||
|
|
79
|
+
(await tryAddDerived(file, contents, reactSources, manifest)) ||
|
|
80
|
+
addUnknown(file, manifest);
|
|
81
|
+
}
|
|
82
|
+
const ovrFile = path_1.default.join(directory, 'overrides.json');
|
|
83
|
+
await Serialized.writeManifestToFile(manifest, ovrFile);
|
|
84
|
+
spinner.succeed();
|
|
85
|
+
})();
|
|
86
|
+
async function tryAddCopy(filename, overrideContent, reactSources, manifest) {
|
|
87
|
+
const baseContent = await reactSources.readFile(filename);
|
|
88
|
+
if (!baseContent) {
|
|
89
|
+
return false;
|
|
90
|
+
}
|
|
91
|
+
if ((0, Hash_1.hashContent)(baseContent) !== (0, Hash_1.hashContent)(overrideContent)) {
|
|
92
|
+
return false;
|
|
93
|
+
}
|
|
94
|
+
manifest.overrides.push({
|
|
95
|
+
type: 'copy',
|
|
96
|
+
file: filename,
|
|
97
|
+
baseFile: filename,
|
|
98
|
+
baseVersion: undefined,
|
|
99
|
+
baseHash: (0, Hash_1.hashContent)(baseContent),
|
|
100
|
+
issue: undefined,
|
|
101
|
+
});
|
|
102
|
+
return true;
|
|
103
|
+
}
|
|
104
|
+
async function tryAddPatch(filename, overrideContent, reactSources, manifest) {
|
|
105
|
+
const baseFile = filename.replace(extensionsRegex, '');
|
|
106
|
+
const baseContent = await reactSources.readFile(baseFile);
|
|
107
|
+
if (!baseContent) {
|
|
108
|
+
return false;
|
|
109
|
+
}
|
|
110
|
+
const { similar } = computeSimilarity(overrideContent, baseContent);
|
|
111
|
+
if (similar) {
|
|
112
|
+
manifest.overrides.push({
|
|
113
|
+
type: 'patch',
|
|
114
|
+
file: filename,
|
|
115
|
+
baseFile: baseFile,
|
|
116
|
+
baseVersion: undefined,
|
|
117
|
+
baseHash: (0, Hash_1.hashContent)(baseContent),
|
|
118
|
+
issue: undefined,
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
addUnknown(filename, manifest);
|
|
123
|
+
}
|
|
124
|
+
return true;
|
|
125
|
+
}
|
|
126
|
+
async function tryAddDerived(filename, overrideContent, reactSources, manifest) {
|
|
127
|
+
const matches = [];
|
|
128
|
+
const droidFile = filename.replace(extensionsRegex, '.android');
|
|
129
|
+
const droidContents = await reactSources.readFile(droidFile);
|
|
130
|
+
const droidSim = droidContents && computeSimilarity(overrideContent, droidContents);
|
|
131
|
+
if (droidSim && droidSim.similar) {
|
|
132
|
+
matches.push({
|
|
133
|
+
file: droidFile,
|
|
134
|
+
contents: droidContents,
|
|
135
|
+
dist: droidSim.editDistance,
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
const iosFile = filename.replace(extensionsRegex, '.ios');
|
|
139
|
+
const iosContents = await reactSources.readFile(iosFile);
|
|
140
|
+
const iosSim = iosContents && computeSimilarity(overrideContent, iosContents);
|
|
141
|
+
if (iosSim && iosSim.similar) {
|
|
142
|
+
matches.push({
|
|
143
|
+
file: iosFile,
|
|
144
|
+
contents: iosContents,
|
|
145
|
+
dist: iosSim.editDistance,
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
if (matches.length === 0) {
|
|
149
|
+
return false;
|
|
150
|
+
}
|
|
151
|
+
const bestMatch = matches.reduce((a, b) => (a.dist < b.dist ? a : b));
|
|
152
|
+
manifest.overrides.push({
|
|
153
|
+
type: 'derived',
|
|
154
|
+
file: filename,
|
|
155
|
+
baseFile: bestMatch.file,
|
|
156
|
+
baseVersion: undefined,
|
|
157
|
+
baseHash: (0, Hash_1.hashContent)(bestMatch.contents),
|
|
158
|
+
issue: undefined,
|
|
159
|
+
});
|
|
160
|
+
return true;
|
|
161
|
+
}
|
|
162
|
+
function addUnknown(filename, manifest) {
|
|
163
|
+
manifest.overrides.push({
|
|
164
|
+
type: '???',
|
|
165
|
+
file: filename,
|
|
166
|
+
baseFile: '???',
|
|
167
|
+
baseHash: '???',
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
async function getFileRepos(overrideovrPath, rnVersion) {
|
|
171
|
+
const overrides = new FileSystemRepository_1.default(overrideovrPath);
|
|
172
|
+
const versionedReactSources = await GitReactFileRepository_1.default.createAndInit();
|
|
173
|
+
const reactSources = FileRepository.bindVersion(versionedReactSources, rnVersion);
|
|
174
|
+
return [overrides, reactSources];
|
|
175
|
+
}
|
|
176
|
+
function computeSimilarity(override, source) {
|
|
177
|
+
if (!(0, isutf8_1.default)(override) || !(0, isutf8_1.default)(source)) {
|
|
178
|
+
return { similar: false, editDistance: NaN };
|
|
179
|
+
}
|
|
180
|
+
let overrideStr = override.toString();
|
|
181
|
+
let sourceStr = source.toString();
|
|
182
|
+
overrideStr = stripCopyrightHeaders(overrideStr);
|
|
183
|
+
sourceStr = stripCopyrightHeaders(sourceStr);
|
|
184
|
+
const differ = new diff_match_patch_1.diff_match_patch();
|
|
185
|
+
const diffs = differ.diff_main(sourceStr, overrideStr);
|
|
186
|
+
const editDistance = differ.diff_levenshtein(diffs);
|
|
187
|
+
const similar = editDistance / Math.max(overrideStr.length, sourceStr.length) < 0.8;
|
|
188
|
+
return { similar, editDistance };
|
|
189
|
+
}
|
|
190
|
+
function stripCopyrightHeaders(str) {
|
|
191
|
+
if (!str.startsWith('/*')) {
|
|
192
|
+
return str;
|
|
193
|
+
}
|
|
194
|
+
const headerEnd = str.indexOf('*/') + 1;
|
|
195
|
+
return str.slice(headerEnd);
|
|
196
|
+
}
|
|
171
197
|
//# sourceMappingURL=generateManifest.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateManifest.js","sourceRoot":"","sources":["../../src/scripts/generateManifest.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"generateManifest.js","sourceRoot":"","sources":["../../src/scripts/generateManifest.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 FileRepository from '../FileRepository';\nimport * as Serialized from '../Serialized';\n\nimport ora from 'ora';\nimport path from 'path';\nimport yargs from 'yargs';\n\nimport FileSystemRepository from '../FileSystemRepository';\nimport GitReactFileRepository from '../GitReactFileRepository';\n\nimport {diff_match_patch} from 'diff-match-patch';\nimport {getInstalledRNVersion} from '../PackageUtils';\nimport {hashContent} from '../Hash';\n\nimport isUtf8 from 'isutf8';\n\nconst {extensions, directory} = yargs\n .options({\n directory: {\n description:\n 'The directory containing files that should be in the manifest',\n type: 'string',\n demandOption: true,\n },\n extensions: {\n description: 'A list of platform specific JS extensions to include',\n type: 'array',\n demandOption: true,\n },\n })\n .version(false).argv;\n\nconst extensionsRegex = new RegExp(extensions.map(e => `\\\\.${e}`).join('|'));\n\n(async () => {\n const spinner = ora();\n spinner.start('Creating manifest');\n\n const version = await getInstalledRNVersion();\n const [overrides, reactSources] = await getFileRepos(directory, version);\n const manifest: Serialized.Manifest = {\n includePatterns: undefined,\n excludePatterns: undefined,\n baseVersion: version,\n overrides: [],\n };\n const overrideFiles = await overrides.listFiles();\n\n let i = 0;\n for (const file of overrideFiles) {\n spinner.text = `Creating manifest (${++i}/${overrideFiles.length})`;\n\n const contents = (await overrides.readFile(file))!;\n (await tryAddCopy(file, contents, reactSources, manifest)) ||\n (await tryAddPatch(file, contents, reactSources, manifest)) ||\n (await tryAddDerived(file, contents, reactSources, manifest)) ||\n addUnknown(file, manifest);\n }\n\n const ovrFile = path.join(directory, 'overrides.json');\n await Serialized.writeManifestToFile(manifest, ovrFile);\n\n spinner.succeed();\n})();\n\nasync function tryAddCopy(\n filename: string,\n overrideContent: Buffer,\n reactSources: FileRepository.ReactFileRepository,\n manifest: Serialized.Manifest,\n): Promise<boolean> {\n const baseContent = await reactSources.readFile(filename);\n if (!baseContent) {\n return false;\n }\n\n if (hashContent(baseContent) !== hashContent(overrideContent)) {\n return false;\n }\n\n manifest.overrides.push({\n type: 'copy',\n file: filename,\n baseFile: filename,\n baseVersion: undefined,\n baseHash: hashContent(baseContent),\n issue: undefined,\n });\n\n return true;\n}\n\nasync function tryAddPatch(\n filename: string,\n overrideContent: Buffer,\n reactSources: FileRepository.ReactFileRepository,\n manifest: Serialized.Manifest,\n): Promise<boolean> {\n const baseFile = filename.replace(extensionsRegex, '');\n const baseContent = await reactSources.readFile(baseFile);\n\n if (!baseContent) {\n return false;\n }\n\n const {similar} = computeSimilarity(overrideContent, baseContent);\n if (similar) {\n manifest.overrides.push({\n type: 'patch',\n file: filename,\n baseFile: baseFile,\n baseVersion: undefined,\n baseHash: hashContent(baseContent),\n issue: undefined,\n });\n } else {\n addUnknown(filename, manifest);\n }\n\n return true;\n}\n\nasync function tryAddDerived(\n filename: string,\n overrideContent: Buffer,\n reactSources: FileRepository.ReactFileRepository,\n manifest: Serialized.Manifest,\n): Promise<boolean> {\n const matches: Array<{file: string; contents: Buffer; dist: number}> = [];\n\n const droidFile = filename.replace(extensionsRegex, '.android');\n const droidContents = await reactSources.readFile(droidFile);\n const droidSim =\n droidContents && computeSimilarity(overrideContent, droidContents);\n if (droidSim && droidSim.similar) {\n matches.push({\n file: droidFile,\n contents: droidContents!,\n dist: droidSim.editDistance,\n });\n }\n\n const iosFile = filename.replace(extensionsRegex, '.ios');\n const iosContents = await reactSources.readFile(iosFile);\n const iosSim = iosContents && computeSimilarity(overrideContent, iosContents);\n if (iosSim && iosSim.similar) {\n matches.push({\n file: iosFile,\n contents: iosContents!,\n dist: iosSim.editDistance,\n });\n }\n\n if (matches.length === 0) {\n return false;\n }\n\n const bestMatch = matches.reduce((a, b) => (a.dist < b.dist ? a : b));\n manifest.overrides.push({\n type: 'derived',\n file: filename,\n baseFile: bestMatch.file,\n baseVersion: undefined,\n baseHash: hashContent(bestMatch.contents),\n issue: undefined,\n });\n\n return true;\n}\n\nfunction addUnknown(filename: string, manifest: Serialized.Manifest) {\n (manifest.overrides as Array<any>).push({\n type: '???',\n file: filename,\n baseFile: '???',\n baseHash: '???',\n });\n}\n\nasync function getFileRepos(\n overrideovrPath: string,\n rnVersion: string,\n): Promise<\n [FileRepository.WritableFileRepository, FileRepository.ReactFileRepository]\n> {\n const overrides = new FileSystemRepository(overrideovrPath);\n\n const versionedReactSources = await GitReactFileRepository.createAndInit();\n const reactSources = FileRepository.bindVersion(\n versionedReactSources,\n rnVersion,\n );\n\n return [overrides, reactSources];\n}\n\nfunction computeSimilarity(\n override: Buffer,\n source: Buffer,\n): {similar: boolean; editDistance: number} {\n if (!isUtf8(override) || !isUtf8(source)) {\n return {similar: false, editDistance: NaN};\n }\n\n let overrideStr = override.toString();\n let sourceStr = source.toString();\n\n overrideStr = stripCopyrightHeaders(overrideStr);\n sourceStr = stripCopyrightHeaders(sourceStr);\n\n const differ = new diff_match_patch();\n const diffs = differ.diff_main(sourceStr, overrideStr);\n\n const editDistance = differ.diff_levenshtein(diffs);\n const similar =\n editDistance / Math.max(overrideStr.length, sourceStr.length) < 0.8;\n return {similar, editDistance};\n}\n\nfunction stripCopyrightHeaders(str: string): string {\n if (!str.startsWith('/*')) {\n return str;\n }\n\n const headerEnd = str.indexOf('*/') + 1;\n return str.slice(headerEnd);\n}\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright (c) Microsoft Corporation.
|
|
3
|
-
* Licensed under the MIT License.
|
|
4
|
-
*
|
|
5
|
-
* @format
|
|
6
|
-
*/
|
|
7
|
-
export {};
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Microsoft Corporation.
|
|
3
|
+
* Licensed under the MIT License.
|
|
4
|
+
*
|
|
5
|
+
* @format
|
|
6
|
+
*/
|
|
7
|
+
export {};
|
|
@@ -1,15 +1,18 @@
|
|
|
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
|
-
|
|
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 fs_1 = __importDefault(require("@react-native-windows/fs"));
|
|
13
|
+
const Hash_1 = require("../Hash");
|
|
14
|
+
(async function () {
|
|
15
|
+
const content = await fs_1.default.readFile(process.argv[2]);
|
|
16
|
+
console.log((0, Hash_1.hashContent)(content));
|
|
17
|
+
})();
|
|
15
18
|
//# sourceMappingURL=hashFile.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hashFile.js","sourceRoot":"","sources":["../../src/scripts/hashFile.ts"],"names":[],"mappings":";AAAA;;;;;GAKG
|
|
1
|
+
{"version":3,"file":"hashFile.js","sourceRoot":"","sources":["../../src/scripts/hashFile.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;AAEH,kEAA0C;AAC1C,kCAAoC;AAEpC,CAAC,KAAK;IACJ,MAAM,OAAO,GAAG,MAAM,YAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACnD,OAAO,CAAC,GAAG,CAAC,IAAA,kBAAW,EAAC,OAAO,CAAC,CAAC,CAAC;AACpC,CAAC,CAAC,EAAE,CAAC","sourcesContent":["/**\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * @format\n */\n\nimport fs from '@react-native-windows/fs';\nimport {hashContent} from '../Hash';\n\n(async function () {\n const content = await fs.readFile(process.argv[2]);\n console.log(hashContent(content));\n})();\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export {};
|
|
1
|
+
export {};
|
|
@@ -1,27 +1,30 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
*
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
console.log('
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
/**
|
|
7
|
+
* Copyright (c) Microsoft Corporation.
|
|
8
|
+
* Licensed under the MIT License.
|
|
9
|
+
*
|
|
10
|
+
* @format
|
|
11
|
+
*/
|
|
12
|
+
const CrossProcessLock_1 = __importDefault(require("../CrossProcessLock"));
|
|
13
|
+
/**
|
|
14
|
+
* CrossProcessLock cannot easily be unit tested. In the absence of automated
|
|
15
|
+
* tests, this utility program can be used for simple manual testing.
|
|
16
|
+
*/
|
|
17
|
+
(async () => {
|
|
18
|
+
const lock = new CrossProcessLock_1.default('TestLock');
|
|
19
|
+
console.log('Trying to acquire lock');
|
|
20
|
+
if (await lock.tryLock()) {
|
|
21
|
+
console.log('Lock acquired!');
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
console.log('Failed to acquire lock. Waiting...');
|
|
25
|
+
await lock.lock();
|
|
26
|
+
console.log('Lock acquired!');
|
|
27
|
+
}
|
|
28
|
+
setInterval(() => { }, 5000);
|
|
29
|
+
})();
|
|
27
30
|
//# sourceMappingURL=testLocks.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testLocks.js","sourceRoot":"","sources":["../../src/scripts/testLocks.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"testLocks.js","sourceRoot":"","sources":["../../src/scripts/testLocks.ts"],"names":[],"mappings":";;;;;AAAA;;;;;GAKG;AACH,2EAAmD;AAEnD;;;GAGG;AACH,CAAC,KAAK,IAAI,EAAE;IACV,MAAM,IAAI,GAAG,IAAI,0BAAgB,CAAC,UAAU,CAAC,CAAC;IAE9C,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IACtC,IAAI,MAAM,IAAI,CAAC,OAAO,EAAE,EAAE;QACxB,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;KAC/B;SAAM;QACL,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;QAClD,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;KAC/B;IAED,WAAW,CAAC,GAAG,EAAE,GAAE,CAAC,EAAE,IAAI,CAAC,CAAC;AAC9B,CAAC,CAAC,EAAE,CAAC","sourcesContent":["/**\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * @format\n */\nimport CrossProcessLock from '../CrossProcessLock';\n\n/**\n * CrossProcessLock cannot easily be unit tested. In the absence of automated\n * tests, this utility program can be used for simple manual testing.\n */\n(async () => {\n const lock = new CrossProcessLock('TestLock');\n\n console.log('Trying to acquire lock');\n if (await lock.tryLock()) {\n console.log('Lock acquired!');\n } else {\n console.log('Failed to acquire lock. Waiting...');\n await lock.lock();\n console.log('Lock acquired!');\n }\n\n setInterval(() => {}, 5000);\n})();\n"]}
|