react-native-platform-override 1.9.21 → 1.9.23
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/lib-commonjs/Api.d.ts +57 -57
- package/lib-commonjs/Api.js +187 -187
- package/lib-commonjs/BatchingQueue.d.ts +15 -15
- package/lib-commonjs/BatchingQueue.js +57 -57
- package/lib-commonjs/Cli.d.ts +7 -7
- package/lib-commonjs/Cli.js +323 -323
- package/lib-commonjs/CrossProcessLock.d.ts +44 -44
- package/lib-commonjs/CrossProcessLock.js +147 -147
- package/lib-commonjs/DiffStrategy.d.ts +24 -24
- package/lib-commonjs/DiffStrategy.js +34 -34
- package/lib-commonjs/FileRepository.d.ts +62 -62
- package/lib-commonjs/FileRepository.js +21 -21
- package/lib-commonjs/FileSearch.d.ts +21 -21
- package/lib-commonjs/FileSearch.js +77 -77
- package/lib-commonjs/FileSystemRepository.d.ts +20 -20
- package/lib-commonjs/FileSystemRepository.js +62 -62
- package/lib-commonjs/GitReactFileRepository.d.ts +56 -56
- package/lib-commonjs/GitReactFileRepository.js +202 -202
- package/lib-commonjs/Hash.d.ts +33 -33
- package/lib-commonjs/Hash.js +81 -81
- package/lib-commonjs/Manifest.d.ts +80 -80
- package/lib-commonjs/Manifest.js +157 -157
- package/lib-commonjs/Override.d.ts +182 -182
- package/lib-commonjs/Override.js +248 -248
- package/lib-commonjs/OverrideFactory.d.ts +33 -33
- package/lib-commonjs/OverrideFactory.js +85 -85
- package/lib-commonjs/OverridePrompt.d.ts +30 -30
- package/lib-commonjs/OverridePrompt.js +130 -130
- package/lib-commonjs/PackageUtils.d.ts +15 -15
- package/lib-commonjs/PackageUtils.js +40 -40
- package/lib-commonjs/PathUtils.d.ts +14 -14
- package/lib-commonjs/PathUtils.js +31 -31
- package/lib-commonjs/Serialized.d.ts +158 -158
- package/lib-commonjs/Serialized.js +145 -145
- package/lib-commonjs/UpgradeStrategy.d.ts +39 -39
- package/lib-commonjs/UpgradeStrategy.js +102 -102
- package/lib-commonjs/ValidationStrategy.d.ts +57 -57
- package/lib-commonjs/ValidationStrategy.js +124 -124
- package/lib-commonjs/refFromVersion.d.ts +10 -10
- package/lib-commonjs/refFromVersion.js +98 -98
- package/lib-commonjs/refFromVersion.js.map +1 -1
- package/lib-commonjs/scripts/generateManifest.d.ts +7 -7
- package/lib-commonjs/scripts/generateManifest.js +196 -196
- package/lib-commonjs/scripts/hashFile.d.ts +7 -7
- package/lib-commonjs/scripts/hashFile.js +17 -17
- package/lib-commonjs/scripts/testLocks.d.ts +1 -1
- package/lib-commonjs/scripts/testLocks.js +29 -29
- package/package.json +10 -10
|
@@ -1,197 +1,197 @@
|
|
|
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
|
-
}
|
|
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
|
+
}
|
|
197
197
|
//# sourceMappingURL=generateManifest.js.map
|
|
@@ -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,18 +1,18 @@
|
|
|
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
|
-
})();
|
|
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
|
+
})();
|
|
18
18
|
//# sourceMappingURL=hashFile.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export {};
|
|
1
|
+
export {};
|
|
@@ -1,30 +1,30 @@
|
|
|
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
|
-
})();
|
|
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
|
+
})();
|
|
30
30
|
//# sourceMappingURL=testLocks.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-platform-override",
|
|
3
|
-
"version": "1.9.
|
|
3
|
+
"version": "1.9.23",
|
|
4
4
|
"description": "react-native-platform-override offers CLI tools to manage Javascript overrides in out-of-tree React Native platforms",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"main": "./lib-commonjs/Api.js",
|
|
@@ -22,8 +22,8 @@
|
|
|
22
22
|
"react-native-platform-override": "./bin.js"
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@react-native-windows/fs": "^0.0.0-canary.
|
|
26
|
-
"@react-native-windows/package-utils": "^0.0.0-canary.
|
|
25
|
+
"@react-native-windows/fs": "^0.0.0-canary.36",
|
|
26
|
+
"@react-native-windows/package-utils": "^0.0.0-canary.62",
|
|
27
27
|
"@typescript-eslint/eslint-plugin": "^5.30.5",
|
|
28
28
|
"@typescript-eslint/parser": "^5.57.1",
|
|
29
29
|
"async": "^3.2.3",
|
|
@@ -46,9 +46,9 @@
|
|
|
46
46
|
"@babel/core": "^7.20.0",
|
|
47
47
|
"@babel/preset-env": "^7.20.0",
|
|
48
48
|
"@babel/preset-typescript": "^7.8.3",
|
|
49
|
-
"@rnw-scripts/eslint-config": "1.2.
|
|
50
|
-
"@rnw-scripts/jest-unittest-config": "1.5.
|
|
51
|
-
"@rnw-scripts/just-task": "2.3.
|
|
49
|
+
"@rnw-scripts/eslint-config": "1.2.7",
|
|
50
|
+
"@rnw-scripts/jest-unittest-config": "1.5.8",
|
|
51
|
+
"@rnw-scripts/just-task": "2.3.23",
|
|
52
52
|
"@rnw-scripts/ts-config": "2.0.5",
|
|
53
53
|
"@types/async": "^3.2.5",
|
|
54
54
|
"@types/chalk": "^2.2.0",
|
|
@@ -63,13 +63,13 @@
|
|
|
63
63
|
"@types/ora": "^3.2.0",
|
|
64
64
|
"@types/semver": "^7.3.3",
|
|
65
65
|
"@types/yargs": "^16.0.0",
|
|
66
|
-
"babel-jest": "^29.3
|
|
66
|
+
"babel-jest": "^29.6.3",
|
|
67
67
|
"diff-match-patch": "^1.0.4",
|
|
68
68
|
"eslint": "^8.19.0",
|
|
69
|
-
"jest": "^29.
|
|
69
|
+
"jest": "^29.6.3",
|
|
70
70
|
"minimatch": "^3.0.4",
|
|
71
|
-
"prettier": "
|
|
72
|
-
"typescript": "
|
|
71
|
+
"prettier": "2.8.8",
|
|
72
|
+
"typescript": "5.0.4"
|
|
73
73
|
},
|
|
74
74
|
"peerDependencies": {
|
|
75
75
|
"react-native": "*"
|