gate-evm-tools 1.0.23 → 1.0.24

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.
Files changed (89) hide show
  1. package/README.md +64 -5
  2. package/bin/manifest-bootstrap.js +109 -3
  3. package/dist/commands/prepare.d.ts +8 -0
  4. package/dist/commands/prepare.d.ts.map +1 -0
  5. package/dist/commands/prepare.js +78 -0
  6. package/dist/commands/prepare.js.map +1 -0
  7. package/dist/commands/sync.d.ts.map +1 -1
  8. package/dist/commands/sync.js +11 -28
  9. package/dist/commands/sync.js.map +1 -1
  10. package/dist/core/preparation/artifacts.d.ts +21 -0
  11. package/dist/core/preparation/artifacts.d.ts.map +1 -0
  12. package/dist/core/preparation/artifacts.js +80 -0
  13. package/dist/core/preparation/artifacts.js.map +1 -0
  14. package/dist/core/preparation/evm.d.ts +39 -0
  15. package/dist/core/preparation/evm.d.ts.map +1 -0
  16. package/dist/core/preparation/evm.js +290 -0
  17. package/dist/core/preparation/evm.js.map +1 -0
  18. package/dist/core/preparation/index.d.ts +9 -0
  19. package/dist/core/preparation/index.d.ts.map +1 -0
  20. package/dist/core/preparation/index.js +15 -0
  21. package/dist/core/preparation/index.js.map +1 -0
  22. package/dist/core/preparation/manifest.d.ts +43 -0
  23. package/dist/core/preparation/manifest.d.ts.map +1 -0
  24. package/dist/core/preparation/manifest.js +169 -0
  25. package/dist/core/preparation/manifest.js.map +1 -0
  26. package/dist/core/preparation/normalize.d.ts +7 -0
  27. package/dist/core/preparation/normalize.d.ts.map +1 -0
  28. package/dist/core/preparation/normalize.js +496 -0
  29. package/dist/core/preparation/normalize.js.map +1 -0
  30. package/dist/core/preparation/types.d.ts +111 -0
  31. package/dist/core/preparation/types.d.ts.map +1 -0
  32. package/dist/core/preparation/types.js +2 -0
  33. package/dist/core/preparation/types.js.map +1 -0
  34. package/dist/core/preparation/zkManifestSync.d.ts +49 -0
  35. package/dist/core/preparation/zkManifestSync.d.ts.map +1 -0
  36. package/dist/core/preparation/zkManifestSync.js +159 -0
  37. package/dist/core/preparation/zkManifestSync.js.map +1 -0
  38. package/dist/core/preparation/zkUpgradeValidation.d.ts +37 -0
  39. package/dist/core/preparation/zkUpgradeValidation.d.ts.map +1 -0
  40. package/dist/core/preparation/zkUpgradeValidation.js +91 -0
  41. package/dist/core/preparation/zkUpgradeValidation.js.map +1 -0
  42. package/dist/core/preparation/zksync.d.ts +28 -0
  43. package/dist/core/preparation/zksync.d.ts.map +1 -0
  44. package/dist/core/preparation/zksync.js +248 -0
  45. package/dist/core/preparation/zksync.js.map +1 -0
  46. package/dist/index.d.ts.map +1 -1
  47. package/dist/index.js +20 -0
  48. package/dist/index.js.map +1 -1
  49. package/dist/sync/index.d.ts +31 -0
  50. package/dist/sync/index.d.ts.map +1 -0
  51. package/dist/sync/index.js +57 -0
  52. package/dist/sync/index.js.map +1 -0
  53. package/dist/types.d.ts +9 -1
  54. package/dist/types.d.ts.map +1 -1
  55. package/dist/workflow/index.d.ts +5 -0
  56. package/dist/workflow/index.d.ts.map +1 -0
  57. package/dist/workflow/index.js +3 -0
  58. package/dist/workflow/index.js.map +1 -0
  59. package/dist-cjs/core/preparation/artifacts.js +89 -0
  60. package/dist-cjs/core/preparation/artifacts.js.map +1 -0
  61. package/dist-cjs/core/preparation/evm.js +297 -0
  62. package/dist-cjs/core/preparation/evm.js.map +1 -0
  63. package/dist-cjs/core/preparation/index.js +19 -0
  64. package/dist-cjs/core/preparation/index.js.map +1 -0
  65. package/dist-cjs/core/preparation/manifest.js +180 -0
  66. package/dist-cjs/core/preparation/manifest.js.map +1 -0
  67. package/dist-cjs/core/preparation/normalize.js +507 -0
  68. package/dist-cjs/core/preparation/normalize.js.map +1 -0
  69. package/dist-cjs/core/preparation/types.js +3 -0
  70. package/dist-cjs/core/preparation/types.js.map +1 -0
  71. package/dist-cjs/core/preparation/zkManifestSync.js +166 -0
  72. package/dist-cjs/core/preparation/zkManifestSync.js.map +1 -0
  73. package/dist-cjs/core/preparation/zkUpgradeValidation.js +101 -0
  74. package/dist-cjs/core/preparation/zkUpgradeValidation.js.map +1 -0
  75. package/dist-cjs/core/preparation/zksync.js +252 -0
  76. package/dist-cjs/core/preparation/zksync.js.map +1 -0
  77. package/dist-cjs/core/syncUpgradeJson.js +315 -0
  78. package/dist-cjs/core/syncUpgradeJson.js.map +1 -0
  79. package/dist-cjs/sync/index.js +60 -0
  80. package/dist-cjs/sync/index.js.map +1 -0
  81. package/dist-cjs/types.js +3 -0
  82. package/dist-cjs/types.js.map +1 -0
  83. package/dist-cjs/utils/manifestTransaction.js +302 -0
  84. package/dist-cjs/utils/manifestTransaction.js.map +1 -0
  85. package/dist-cjs/utils/openzeppelin.js +57 -0
  86. package/dist-cjs/utils/openzeppelin.js.map +1 -0
  87. package/dist-cjs/workflow/index.js +12 -0
  88. package/dist-cjs/workflow/index.js.map +1 -0
  89. package/package.json +42 -2
@@ -0,0 +1,315 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.syncNetworkFile = syncNetworkFile;
37
+ const path = __importStar(require("path"));
38
+ const fs = __importStar(require("fs"));
39
+ const openzeppelin_js_1 = require("../utils/openzeppelin.js");
40
+ const manifestTransaction_js_1 = require("../utils/manifestTransaction.js");
41
+ /**
42
+ * 同步链上合约状态到本地 .openzeppelin 网络文件
43
+ *
44
+ * 使用场景:
45
+ * 当合约升级是通过 calldata 方式由其他人执行时,本地的 .openzeppelin 文件不会自动更新
46
+ * 使用此脚本可以从链上读取最新状态并更新本地文件,确保下次升级验证时有正确的参考
47
+ *
48
+ * @param options - 同步选项
49
+ */
50
+ async function syncNetworkFile(options) {
51
+ const { proxyAddress, contractName, networkName, constructorArgs, skipTxHash, hre } = options;
52
+ console.log('\n🔄 开始同步链上状态到本地网络文件...');
53
+ console.log('=====================================\n');
54
+ const PROXY_ADDRESS = proxyAddress;
55
+ const CONTRACT_NAME = contractName;
56
+ const CONSTRUCTOR_ARGS = constructorArgs || [];
57
+ // 获取网络名称和 chainId
58
+ const network = await hre.ethers.provider.getNetwork();
59
+ const chainId = Number(network.chainId);
60
+ const NETWORK_NAME = networkName || network.name;
61
+ console.log('📋 同步配置:');
62
+ console.log('-------------------------------------');
63
+ console.log('代理合约地址:', PROXY_ADDRESS);
64
+ console.log('合约名称:', CONTRACT_NAME);
65
+ console.log('网络:', NETWORK_NAME);
66
+ console.log('Chain ID:', chainId);
67
+ if (CONSTRUCTOR_ARGS.length > 0) {
68
+ console.log('构造函数参数:', CONSTRUCTOR_ARGS);
69
+ }
70
+ console.log('-------------------------------------\n');
71
+ // Step 1: 编译合约以获取最新的存储布局
72
+ console.log('🔨 Step 1: 编译合约获取存储布局...');
73
+ try {
74
+ await hre.run('compile', { quiet: true });
75
+ console.log('✅ 编译完成\n');
76
+ }
77
+ catch (error) {
78
+ console.error('❌ 编译失败:', error.message);
79
+ throw error;
80
+ }
81
+ // Step 2: 从链上读取当前实现合约地址
82
+ console.log('🔍 Step 2: 读取链上实现合约地址...');
83
+ let currentImplementation;
84
+ try {
85
+ currentImplementation = await hre.upgrades.erc1967.getImplementationAddress(PROXY_ADDRESS);
86
+ console.log('✅ 当前实现合约:', currentImplementation);
87
+ console.log('');
88
+ }
89
+ catch (error) {
90
+ console.error('❌ 读取实现地址失败:', error.message);
91
+ throw error;
92
+ }
93
+ // Step 3: 获取实现合约的部署交易哈希(尝试从事件获取)
94
+ console.log('🔍 Step 3: 获取实现合约部署信息...');
95
+ let implTxHash = '0x0'; // 默认值,如果无法获取
96
+ if (skipTxHash) {
97
+ console.log('⏭️ 已通过参数禁用 txHash 补充,跳过事件查询');
98
+ }
99
+ else {
100
+ try {
101
+ // 尝试通过 Upgraded 事件获取升级交易哈希
102
+ const proxyContract = await hre.ethers.getContractAt('UUPSUpgradeable', PROXY_ADDRESS);
103
+ const currentBlock = await hre.ethers.provider.getBlockNumber();
104
+ // 免费 RPC 节点通常限制查询范围,使用较小的区块范围
105
+ // 可以分批查询,从最近的区块开始往前查
106
+ const batchSize = 5000; // 每次查询 5000 个区块
107
+ const maxBatches = 3000; // 最多查 3000 批(15000000 个区块)
108
+ let found = false;
109
+ for (let i = 0; i < maxBatches && !found; i++) {
110
+ const toBlock = currentBlock - (i * batchSize);
111
+ const fromBlock = Math.max(0, toBlock - batchSize);
112
+ try {
113
+ const filter = proxyContract.filters.Upgraded();
114
+ const events = await proxyContract.queryFilter(filter, fromBlock, toBlock);
115
+ if (events.length > 0) {
116
+ // 找到最后一次升级到当前实现的事件
117
+ const latestUpgrade = events
118
+ .reverse()
119
+ .find((event) => event.args && event.args[0].toLowerCase() === currentImplementation.toLowerCase());
120
+ if (latestUpgrade) {
121
+ implTxHash = latestUpgrade.transactionHash;
122
+ console.log('✅ 找到升级交易:', implTxHash);
123
+ found = true;
124
+ break;
125
+ }
126
+ }
127
+ }
128
+ catch (batchError) {
129
+ if (i === 0) {
130
+ console.log(`⚠️ 查询区块范围 ${fromBlock}-${toBlock} 失败: ${batchError.message}`);
131
+ }
132
+ }
133
+ }
134
+ if (!found) {
135
+ console.log('⚠️ 未找到对应的升级事件(可能需要查询更早的区块),使用默认交易哈希');
136
+ }
137
+ }
138
+ catch (error) {
139
+ console.log('⚠️ 获取交易哈希失败,使用默认值:', error.message);
140
+ }
141
+ }
142
+ console.log('');
143
+ const projectRoot = process.cwd();
144
+ const manifestPaths = await (0, openzeppelin_js_1.getOpenZeppelinManifestPaths)(hre);
145
+ const networkFilePath = manifestPaths.file;
146
+ const transaction = await (0, manifestTransaction_js_1.withManifestTransaction)({
147
+ root: projectRoot,
148
+ manifestFile: networkFilePath,
149
+ fallbackFile: manifestPaths.fallbackFile,
150
+ operation: async ({ writeManifestAtomic }) => {
151
+ // Step 4: 使用 OpenZeppelin 官方的 forceImport 方法同步状态
152
+ console.log('📊 Step 4: 使用 forceImport 同步链上状态...');
153
+ console.log(' 这会自动更新 .openzeppelin 文件,包括完整的存储布局和命名空间');
154
+ console.log('');
155
+ try {
156
+ const ContractFactory = await hre.ethers.getContractFactory(CONTRACT_NAME);
157
+ if (CONSTRUCTOR_ARGS.length > 0) {
158
+ console.log(` 📝 使用构造函数参数:`, CONSTRUCTOR_ARGS);
159
+ console.log('');
160
+ }
161
+ // forceImport: 强制导入已存在的代理,更新本地 .openzeppelin 文件
162
+ // 这是 OpenZeppelin 官方推荐的同步方式
163
+ const importOptions = {
164
+ kind: 'uups',
165
+ unsafeAllow: (0, openzeppelin_js_1.mergeUnsafeAllow)()
166
+ };
167
+ // 如果有构造函数参数,添加到选项中
168
+ if (CONSTRUCTOR_ARGS.length > 0) {
169
+ importOptions.constructorArgs = CONSTRUCTOR_ARGS;
170
+ }
171
+ await (0, openzeppelin_js_1.forceImportWithRetry)(hre, PROXY_ADDRESS, ContractFactory, importOptions);
172
+ console.log('✅ forceImport 完成!');
173
+ console.log('');
174
+ }
175
+ catch (error) {
176
+ console.error('❌ forceImport 失败:', error.message);
177
+ console.error(` 代理合约状态: ${await (0, openzeppelin_js_1.getCodeStatus)(hre, PROXY_ADDRESS)}`);
178
+ console.error(` 实现合约状态: ${await (0, openzeppelin_js_1.getCodeStatus)(hre, currentImplementation)}`);
179
+ console.error('');
180
+ throw error;
181
+ }
182
+ // Step 5: 查找正确的网络文件并补充交易哈希
183
+ console.log('📊 Step 5: 查找网络文件并补充交易哈希...');
184
+ const actualNetworkName = path.basename(networkFilePath, '.json');
185
+ console.log(' ✅ OpenZeppelin manifest 文件:', path.basename(networkFilePath));
186
+ if (!fs.existsSync(networkFilePath)) {
187
+ const error = new Error('未找到 .openzeppelin 网络文件');
188
+ console.error('❌ 错误: 未找到 .openzeppelin 网络文件');
189
+ console.error(` OpenZeppelin 预期文件: ${networkFilePath}`);
190
+ console.error(' 请确认 forceImport 已成功执行');
191
+ throw error;
192
+ }
193
+ console.log(' 📄 使用网络文件:', actualNetworkName + '.json');
194
+ console.log('');
195
+ let networkFile = JSON.parse(fs.readFileSync(networkFilePath, 'utf8'));
196
+ // 查找当前代理的实现信息
197
+ const proxyInfo = networkFile.proxies?.find((p) => p.address.toLowerCase() === PROXY_ADDRESS.toLowerCase());
198
+ if (!proxyInfo) {
199
+ const error = new Error('代理信息未找到');
200
+ console.error('❌ 错误: 代理信息未找到');
201
+ throw error;
202
+ }
203
+ // 查找实现合约的布局信息
204
+ let layoutInfo = null;
205
+ let layoutHash = '';
206
+ let needsSave = false;
207
+ for (const [hash, impl] of Object.entries(networkFile.impls || {})) {
208
+ const implData = impl;
209
+ // 检查是否匹配:
210
+ // 1. 直接匹配 address 字段
211
+ // 2. 在 allAddresses 数组中查找(多次升级可能共享相同布局)
212
+ const isMatch = implData.address.toLowerCase() === currentImplementation.toLowerCase() ||
213
+ (implData.allAddresses && Array.isArray(implData.allAddresses) &&
214
+ implData.allAddresses.some((addr) => addr.toLowerCase() === currentImplementation.toLowerCase()));
215
+ if (isMatch) {
216
+ layoutHash = hash;
217
+ layoutInfo = implData.layout;
218
+ console.log(' ✅ 找到实现合约的布局信息');
219
+ if (implData.allAddresses && implData.allAddresses.length > 1) {
220
+ console.log(` 📋 该布局被 ${implData.allAddresses.length} 个实现合约共享`);
221
+ console.log(` 主地址: ${implData.address}`);
222
+ console.log(` 所有地址: ${implData.allAddresses.join(', ')}`);
223
+ }
224
+ console.log('');
225
+ // 检查并补充交易哈希(只对主地址有效)
226
+ if (implData.address.toLowerCase() === currentImplementation.toLowerCase()) {
227
+ if (!implData.txHash && implTxHash && implTxHash !== '0x0') {
228
+ console.log(' 💾 补充交易哈希到记录...');
229
+ console.log(' 交易哈希:', implTxHash);
230
+ // 重新构建对象,确保字段顺序
231
+ const newImpl = {
232
+ address: implData.address,
233
+ txHash: implTxHash,
234
+ layout: implData.layout
235
+ };
236
+ // 保留 allAddresses 字段(如果存在)
237
+ if (implData.allAddresses) {
238
+ newImpl.allAddresses = implData.allAddresses;
239
+ }
240
+ // 替换原有的实现记录
241
+ networkFile.impls[hash] = newImpl;
242
+ needsSave = true;
243
+ }
244
+ else if (implData.txHash) {
245
+ console.log(' ✅ 交易哈希已存在:', implData.txHash);
246
+ }
247
+ else {
248
+ console.log(' ⚠️ 未获取到交易哈希');
249
+ }
250
+ }
251
+ break;
252
+ }
253
+ }
254
+ // 保存更新后的文件
255
+ if (needsSave) {
256
+ try {
257
+ writeManifestAtomic(Buffer.from(`${JSON.stringify(networkFile, null, 2)}\n`));
258
+ console.log(' 💾 文件已保存');
259
+ }
260
+ catch (error) {
261
+ console.error(' ❌ 保存文件失败:', error.message);
262
+ throw error;
263
+ }
264
+ }
265
+ console.log('');
266
+ if (!layoutInfo) {
267
+ const error = new Error('未找到实现合约的布局信息');
268
+ console.error('❌ 错误: 未找到实现合约的布局信息');
269
+ throw error;
270
+ }
271
+ console.log('✅ 同步结果验证通过!');
272
+ console.log('');
273
+ // 总结
274
+ console.log('=====================================');
275
+ console.log('✅ 同步完成!');
276
+ console.log('=====================================');
277
+ console.log('');
278
+ console.log('📋 同步摘要:');
279
+ console.log('-------------------------------------');
280
+ console.log('代理合约:', PROXY_ADDRESS);
281
+ console.log('实现合约:', currentImplementation);
282
+ console.log('布局哈希:', layoutHash.substring(0, 16) + '...');
283
+ console.log('存储变量:', layoutInfo.storage?.length || 0, '个');
284
+ console.log('命名空间:', Object.keys(layoutInfo.namespaces || {}).length, '个');
285
+ console.log('类型定义:', Object.keys(layoutInfo.types || {}).length, '个');
286
+ console.log('网络文件:', networkFilePath);
287
+ console.log('-------------------------------------');
288
+ console.log('');
289
+ // 显示命名空间详情
290
+ if (layoutInfo.namespaces && Object.keys(layoutInfo.namespaces).length > 0) {
291
+ console.log('📦 命名空间详情:');
292
+ for (const [namespace, vars] of Object.entries(layoutInfo.namespaces)) {
293
+ console.log(` - ${namespace}: ${vars.length} 个变量`);
294
+ }
295
+ console.log('');
296
+ }
297
+ return {
298
+ proxyAddress: PROXY_ADDRESS,
299
+ implementationAddress: currentImplementation,
300
+ layoutHash: layoutHash.substring(0, 16) + '...',
301
+ networkFile: networkFilePath,
302
+ success: true,
303
+ };
304
+ },
305
+ });
306
+ console.log('Manifest before hash:', transaction.report.beforeHash);
307
+ console.log('Manifest after hash:', transaction.report.afterHash);
308
+ console.log('Sync report:', transaction.reportFile);
309
+ return {
310
+ ...transaction.value,
311
+ manifestTransaction: transaction.report,
312
+ syncReport: transaction.reportFile,
313
+ };
314
+ }
315
+ //# sourceMappingURL=syncUpgradeJson.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"syncUpgradeJson.js","sourceRoot":"","sources":["../../src/core/syncUpgradeJson.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.syncWithHre = syncWithHre;
4
+ const syncUpgradeJson_js_1 = require("../core/syncUpgradeJson.js");
5
+ const zkManifestSync_js_1 = require("../core/preparation/zkManifestSync.js");
6
+ const parseConstructorArgs = (raw) => {
7
+ if (raw === undefined)
8
+ return [];
9
+ if (Array.isArray(raw))
10
+ return raw;
11
+ let parsed;
12
+ try {
13
+ parsed = JSON.parse(raw);
14
+ }
15
+ catch (error) {
16
+ const message = error instanceof Error ? error.message : String(error);
17
+ throw new Error(`构造函数参数格式错误: ${message}`);
18
+ }
19
+ if (!Array.isArray(parsed))
20
+ throw new Error('构造函数参数必须是一个数组');
21
+ return parsed;
22
+ };
23
+ async function syncWithHre(options, hre, root = process.cwd(), dependencies = {
24
+ syncEvm: syncUpgradeJson_js_1.syncNetworkFile,
25
+ syncZk: zkManifestSync_js_1.syncZkManifest,
26
+ }) {
27
+ if (options.network && options.network !== hre.network.name) {
28
+ throw new Error(`sync network ${options.network} does not match Hardhat network ${hre.network.name}`);
29
+ }
30
+ const scheme = options.scheme ?? 'evm';
31
+ const constructorArgs = parseConstructorArgs(options.constructorArgs);
32
+ if (scheme === 'zksync-eravm') {
33
+ if (!options.network)
34
+ throw new Error('zkSync sync network is required');
35
+ if (!options.target)
36
+ throw new Error('zkSync sync target is required');
37
+ return dependencies.syncZk({
38
+ root,
39
+ scheme,
40
+ network: options.network,
41
+ target: options.target,
42
+ proxy: options.proxy,
43
+ contract: options.contract,
44
+ constructorArgs,
45
+ transactionHash: options.transactionHash,
46
+ hre,
47
+ });
48
+ }
49
+ if (scheme !== 'evm')
50
+ throw new Error('sync scheme must be evm or zksync-eravm');
51
+ return dependencies.syncEvm({
52
+ proxyAddress: options.proxy,
53
+ contractName: options.contract,
54
+ networkName: options.network,
55
+ constructorArgs,
56
+ skipTxHash: options.skipTxHash,
57
+ hre,
58
+ });
59
+ }
60
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sync/index.ts"],"names":[],"mappings":";;AAuBA,kCAwCC;AA9DD,mEAA6D;AAC7D,6EAAuE;AAOvE,MAAM,oBAAoB,GAAG,CAAC,GAAmC,EAAa,EAAE;IAC9E,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IACjC,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC;IACnC,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAY,CAAC;IACtC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,MAAM,IAAI,KAAK,CAAC,eAAe,OAAO,EAAE,CAAC,CAAC;IAC5C,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;IAC7D,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEK,KAAK,UAAU,WAAW,CAC/B,OAAoB,EACpB,GAAQ,EACR,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE,EACpB,eAAiC;IAC/B,OAAO,EAAE,oCAAe;IACxB,MAAM,EAAE,kCAAc;CACvB;IAED,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,KAAK,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAC5D,MAAM,IAAI,KAAK,CACb,gBAAgB,OAAO,CAAC,OAAO,mCAAmC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CACrF,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC;IACvC,MAAM,eAAe,GAAG,oBAAoB,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IACtE,IAAI,MAAM,KAAK,cAAc,EAAE,CAAC;QAC9B,IAAI,CAAC,OAAO,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACzE,IAAI,CAAC,OAAO,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACvE,OAAO,YAAY,CAAC,MAAM,CAAC;YACzB,IAAI;YACJ,MAAM;YACN,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,eAAe;YACf,eAAe,EAAE,OAAO,CAAC,eAAe;YACxC,GAAG;SACJ,CAAC,CAAC;IACL,CAAC;IACD,IAAI,MAAM,KAAK,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IACjF,OAAO,YAAY,CAAC,OAAO,CAAC;QAC1B,YAAY,EAAE,OAAO,CAAC,KAAK;QAC3B,YAAY,EAAE,OAAO,CAAC,QAAQ;QAC9B,WAAW,EAAE,OAAO,CAAC,OAAO;QAC5B,eAAe;QACf,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,GAAG;KACJ,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}