{"_id":"make-synchronous","_rev":"8-d735deab2b1268c24e8cf22f47884320","name":"make-synchronous","dist-tags":{"latest":"2.1.0"},"versions":{"0.1.0":{"name":"make-synchronous","version":"0.1.0","keywords":["function","synchronous","sync","block","main","thread","deasync","fiber","asynchronous","async"],"author":{"url":"https://sindresorhus.com","name":"Sindre Sorhus","email":"sindresorhus@gmail.com"},"license":"MIT","_id":"make-synchronous@0.1.0","maintainers":[{"name":"sindresorhus","email":"sindresorhus@gmail.com"}],"homepage":"https://github.com/sindresorhus/make-synchronous#readme","bugs":{"url":"https://github.com/sindresorhus/make-synchronous/issues"},"dist":{"shasum":"d117ef54364130775e900bd52726293cda420c0d","tarball":"https://registry.npmjs.org/make-synchronous/-/make-synchronous-0.1.0.tgz","fileCount":5,"integrity":"sha512-KgHpheDCBClcMtPN9EKB+BXyL7cAM8zrRVq8FbJBZzPbXgWlJqRAPMNU6NyJ05kEp4pmMOEgvftK7Jnaxpz2bA==","signatures":[{"sig":"MEYCIQDxHZqgYAWDz5Lun094pmlsee6SfSaakDDVlCBK/YtxUQIhAJ2T3dWzYMCqeppMWQQ0dNOq7+G7q0QZ12P5jSAQH6Oe","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":6346,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfPAcjCRA9TVsSAnZWagAAw0oP/0Kl7hizG9YSx1P918e3\njFQwd2x/oLHmtBp4k0Wh2RfH/ONTyQAaDhr9H3Lb+MZeq8PIJc0MPJiqqvbs\n8mEvVbY2eRGEM2lVPc5SLIUBc/fxaP/7lxQn6RNMIacvFgCN3Jy5CP1Pzo3O\nON91Zf7kO5h301QIqS3RRXTVEsCnL9ICBFc6V86jA0JTaIUvRwdW2EQazIfC\n19Vh7VBMBRXaJG7y0Sq24azqpihNYxLhlLDdhyVwg+5lVO9quQmghfUUkVPu\ng3kLZUiWYlvo2Bp8jPrP2pyAtqrkjiuW9A4yHgIiXVSuwsT2CnFhsM6O0XB9\ndSuabyhzLiEaKgtvZqMTgWNnB3chXiTAwIc7sh9HYrtoSwUJbSNnuwKnw/wg\nHCg2K9eH09hx+n9W99pLtLKDRcuA2whqo5m7RvhGAKr80k/q0G//tkr0V5Jp\nggfj+ZRJQoGOmIYRERqy3eDlUeTzllfMUoZDrobsIlnRmv9ZPyGBwj6oSvfs\n1DR5yQSIVyHQ1NSdKXf4dVWtRtXJFiHkObe5bizzvlAO3jn9oNRzOzV+rTip\nKjU0oP9b7EWMs44FJR6Wru0v5nRFocj2ZTtbFoGT+9hg95xwdp5FOD2vOJsz\n5IrsBUU41A1W+RcILUMzA3+2QrYCCgDLfTnTqcEIRVgGHJBi4JMV9o+NFhTA\nOGDg\r\n=5JDB\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=12"},"funding":"https://github.com/sponsors/sindresorhus","gitHead":"6796cca6109a5e5068c5f1cadc99ef7e0d9b8e6a","scripts":{"test":"xo && ava && tsd"},"_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"repository":{"url":"git+https://github.com/sindresorhus/make-synchronous.git","type":"git"},"_npmVersion":"6.14.7","description":"Make an asynchronous function synchronous","directories":{},"_nodeVersion":"12.18.2","dependencies":{"subsume":"^3.0.0","type-fest":"^0.16.0"},"_hasShrinkwrap":false,"devDependencies":{"xo":"^0.33.0","ava":"^2.4.0","tsd":"^0.13.1","delay":"^4.4.0","in-range":"^2.0.0","time-span":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/make-synchronous_0.1.0_1597769506744_0.8002626557776316","host":"s3://npm-registry-packages"}},"0.1.1":{"name":"make-synchronous","version":"0.1.1","keywords":["function","synchronous","sync","block","main","thread","deasync","fiber","asynchronous","async"],"author":{"url":"https://sindresorhus.com","name":"Sindre Sorhus","email":"sindresorhus@gmail.com"},"license":"MIT","_id":"make-synchronous@0.1.1","maintainers":[{"name":"sindresorhus","email":"sindresorhus@gmail.com"}],"homepage":"https://github.com/sindresorhus/make-synchronous#readme","bugs":{"url":"https://github.com/sindresorhus/make-synchronous/issues"},"dist":{"shasum":"0169f6ec769c3cf8948d66790da262740c1209e7","tarball":"https://registry.npmjs.org/make-synchronous/-/make-synchronous-0.1.1.tgz","fileCount":5,"integrity":"sha512-Y4SxxqhaoyMDokJQ0AZz0E+bLhRkOSR7Z/IQoTKPdS6HYi3aobal2kMHoHHoqBadPWjf07P4K1FQLXOx3wf9Yw==","signatures":[{"sig":"MEYCIQDDpcKGpS6BE6HeKpf7Y5y3ngh04u5woGPjJAr+AdyGawIhAOwDQL6VntiH3lpEZeLDjuN23hQmtS+4HbOG7mNEwHw2","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":6412,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfP4yMCRA9TVsSAnZWagAAAL0P/0AkrN5d2Z7EKvBbEf9w\nGjoECbIwlQ4crP7a7dzVvA8bPqOtd7C0/+A98XZxaiYufsRGZftKrUyAXpGX\nqyH8ocihDKllpCO60cxsZKzNOsS17HRUJJMJ2R/+FIcdtAowqrY1m9x0TqWH\nttH6kKeHF9vkGAqujr8XV3IyYlwwIhK1aC/9MmomC+ekgVTYerCK2y61qYxj\ngKG3k/10TfCZ3LTfSdH1/JD1BJYx7wsQKFZjuUE7pbyHX3mIC/kcCgYeEPYR\nqyy8mzftJ6v0lEt83ulVWGkZpwVWR0Exc6yLHRSb9Ponl7Teyiq45nq5JXdk\nRR+VC6oUhj/7IdLqA/rtMlx+QSdeuphGoc6t6gIYWmVjTz2/2hp9WIIaUo5r\n/KxPUBpvqjtpbHjHSuwyMqss4KQto3RiePrDWfpX1x9C5oy27CnDfw/5V2bc\nDe25N6F0P5hNqyovG5PUzffXZCOlqbwfnP8ou17t53LA/Eq4r3+CenDpB+Tn\nTLZgjwsb/nyr39jgc3G0ZkGIhxswJs93UAFgm+cuHjFkE/rLaKWubz/GzGLr\nK8x7vYjknRuroc4NOiVxnzE9mY9spTNflX6Sq86x7AlTDsfNDOaSvPsTBgM1\nwyANyfDyG/n7Ny2vtEWwG95L1gFDU0Se2VEIGzrcvrFAb+0c35kCSVxvq3dN\nDdh/\r\n=A24e\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=12"},"funding":"https://github.com/sponsors/sindresorhus","gitHead":"904aced25a1e16a6e018e72322746960e086a8e0","scripts":{"test":"xo && ava && tsd"},"_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"repository":{"url":"git+https://github.com/sindresorhus/make-synchronous.git","type":"git"},"_npmVersion":"6.14.7","description":"Make an asynchronous function synchronous","directories":{},"_nodeVersion":"12.18.2","dependencies":{"subsume":"^3.0.0","type-fest":"^0.16.0"},"_hasShrinkwrap":false,"devDependencies":{"xo":"^0.33.0","ava":"^2.4.0","tsd":"^0.13.1","delay":"^4.4.0","in-range":"^2.0.0","time-span":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/make-synchronous_0.1.1_1598000267797_0.35408918858005234","host":"s3://npm-registry-packages"}},"1.0.0":{"name":"make-synchronous","version":"1.0.0","keywords":["function","synchronous","sync","block","main","thread","deasync","fiber","asynchronous","async"],"author":{"url":"https://sindresorhus.com","name":"Sindre Sorhus","email":"sindresorhus@gmail.com"},"license":"MIT","_id":"make-synchronous@1.0.0","maintainers":[{"name":"sindresorhus","email":"sindresorhus@gmail.com"}],"homepage":"https://github.com/sindresorhus/make-synchronous#readme","bugs":{"url":"https://github.com/sindresorhus/make-synchronous/issues"},"dist":{"shasum":"882ed3fa6e215487b7bc67ecc3feb171f1d5ffff","tarball":"https://registry.npmjs.org/make-synchronous/-/make-synchronous-1.0.0.tgz","fileCount":5,"integrity":"sha512-IgPLsc2Pf6c7qiIGRQiE8ns0GaCdHmwfz1dJBqJAOwMN2naVp9+JlirSqNPYlGsDSrNRCgVqEiPOieaNqWxeqA==","signatures":[{"sig":"MEUCIQDqJa3McyaFZ2dH+fmOgbqDN/9zw63CuIkkbqT13RkgMwIgFr8yWwwYMaIckLL7rPulsUcYsrCz5CecBLMQ+ak4Z2o=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":6500,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh2ymoCRA9TVsSAnZWagAAiCYP/RAtAp0oaQJJw7S2k0q6\nhrFhW9LUjPKZ04oGbTaig2QooW5c5FUj/qp0po+zF67XYPbMmDHFyMvsaXRG\nV+CeH5ESBaihZgOwhAW08+nnR5ZDT6Oe+8skB0USezn7PPYjRv49dp9HLCMx\nzdTLcXJ9N9twviNrOtmK1npbCItoQ1dKUVgUNH1bDuL+QtoN57mCyldkX0wl\nxlYE+YEqzhVn4N/ox3JX4prEhhNRChiX/twSYPa7Muh4g0uf4L5hhQVGhhtT\nv3Ago1LBUU7m0KA3XV7kULHqB+qfe7oLgv9zy1aGhedwicFeLMU8wNOgz3G/\nPN2tmSXeJ2V0s3+DsHSR+cuSMMTGvUrMlpky3gwyUtPAUfQcwanLf3RBU8iC\nm0yZAIVJn2Z3eqVrB0BrvOHfeZRjjdcWeizJPAE2jOkEoEJt6VtqJsC8tdp7\nxPzVTXH7hVOi98jYebDIEd93fPNfMsuLkzWn6mJVJb82vmdsvNpg1rgfQ7Uf\nzw+vlEYMvkpmBmWbXvqYQtilEZETMfPqdkQTAW+d78Pg9ULP3FHKw90/kgjC\nJLZM/JUc1myyzrRbLJsmVow0Z73iZg3vEJdr9N8sEIt+YlxUiUW9xEiob2xY\nDm904gAlS7DgjeCOG/ji4ICchESbmZ6/I9OMHa94V5YAJtUq8oF/hm8QYwHZ\n17Rb\r\n=FTD3\r\n-----END PGP SIGNATURE-----\r\n"},"type":"module","engines":{"node":"^12.20.0 || ^14.13.1 || >=16.0.0"},"exports":"./index.js","funding":"https://github.com/sponsors/sindresorhus","gitHead":"e75c799c7ca54cc3d193c63aa26f01f49b040976","scripts":{"test":"xo && ava && tsd"},"_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"repository":{"url":"git+https://github.com/sindresorhus/make-synchronous.git","type":"git"},"_npmVersion":"7.20.3","description":"Make an asynchronous function synchronous","directories":{},"_nodeVersion":"12.22.1","dependencies":{"subsume":"^4.0.0","type-fest":"^2.3.3"},"_hasShrinkwrap":false,"devDependencies":{"xo":"^0.44.0","ava":"^3.15.0","tsd":"^0.17.0","delay":"^5.0.0","in-range":"^3.0.0","time-span":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/make-synchronous_1.0.0_1631906482226_0.8003812884797545","host":"s3://npm-registry-packages"}},"2.0.0":{"name":"make-synchronous","version":"2.0.0","keywords":["function","synchronous","sync","block","main","thread","deasync","fiber","asynchronous","async","worker"],"author":{"url":"https://sindresorhus.com","name":"Sindre Sorhus","email":"sindresorhus@gmail.com"},"license":"MIT","_id":"make-synchronous@2.0.0","maintainers":[{"name":"sindresorhus","email":"sindresorhus@gmail.com"}],"homepage":"https://github.com/sindresorhus/make-synchronous#readme","bugs":{"url":"https://github.com/sindresorhus/make-synchronous/issues"},"dist":{"shasum":"42dc562d27146162d9de9e1ec8a8e409abf3f341","tarball":"https://registry.npmjs.org/make-synchronous/-/make-synchronous-2.0.0.tgz","fileCount":6,"integrity":"sha512-BZcOaGtmt5Q96zkAKv5CtAwueYZBGUBvAe7BQQrEFkA3kwpIe+qZxUzlXg/nVG7TRi2QJLPgSOl3l2Ttj9oI+A==","signatures":[{"sig":"MEUCIHxP18Z64CzRDj/9plwRa9b3VR1b3momXUlV5LQKnej5AiEAkEBthqga72dwI7pP/5T2Xf2hBG32nQAwhxJ5PYfmGqQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9273},"type":"module","types":"./index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./index.d.ts","default":"./index.js"},"./subprocess":{"types":"./index.d.ts","default":"./subprocess.js"}},"funding":"https://github.com/sponsors/sindresorhus","gitHead":"ae5291cd8bec0bb10c59c8532013d5fa0581ebcb","scripts":{"test":"xo && ava && tsd"},"_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"repository":{"url":"git+https://github.com/sindresorhus/make-synchronous.git","type":"git"},"_npmVersion":"10.9.2","description":"Make an asynchronous function synchronous","directories":{},"sideEffects":false,"_nodeVersion":"23.6.1","dependencies":{"subsume":"^4.0.0","type-fest":"^4.40.1"},"_hasShrinkwrap":false,"devDependencies":{"xo":"^0.60.0","ava":"^6.2.0","tsd":"^0.32.0","delay":"^6.0.0","in-range":"^3.0.0","time-span":"^5.1.0"},"_npmOperationalInternal":{"tmp":"tmp/make-synchronous_2.0.0_1746008623274_0.7824456552867602","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"make-synchronous","version":"2.0.1","keywords":["function","synchronous","sync","block","main","thread","deasync","fiber","asynchronous","async","worker"],"author":{"url":"https://sindresorhus.com","name":"Sindre Sorhus","email":"sindresorhus@gmail.com"},"license":"MIT","_id":"make-synchronous@2.0.1","maintainers":[{"name":"sindresorhus","email":"sindresorhus@gmail.com"}],"homepage":"https://github.com/sindresorhus/make-synchronous#readme","bugs":{"url":"https://github.com/sindresorhus/make-synchronous/issues"},"dist":{"shasum":"91c8ba82ca7c4dcee0e97e1acd091db181b391e9","tarball":"https://registry.npmjs.org/make-synchronous/-/make-synchronous-2.0.1.tgz","fileCount":6,"integrity":"sha512-RPn5vkYaV31gWOCoLZhVTkEmt3qnbNn0y0W0u372roFHzfrhXS59VT3q6bJSfC8+3eEyp1dCJKi5fq5X5diLeg==","signatures":[{"sig":"MEUCIGBHhc0WVZA1kRy+crAX/m630F0dRV9CZkUWSLAM2UubAiEAiDFZEhKvi1cZD3PaulXL4ZI8+hrjbfuIpEIMJOHlAEA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9294},"type":"module","types":"./index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./index.d.ts","default":"./index.js"},"./subprocess":{"types":"./index.d.ts","default":"./subprocess.js"}},"funding":"https://github.com/sponsors/sindresorhus","gitHead":"909589b3fd2b22db60feca7afc94cc7503ca4266","scripts":{"test":"xo && ava && tsd"},"_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"repository":{"url":"git+https://github.com/sindresorhus/make-synchronous.git","type":"git"},"_npmVersion":"10.9.2","description":"Make an asynchronous function synchronous","directories":{},"sideEffects":false,"_nodeVersion":"20.19.1","dependencies":{"subsume":"^4.0.0","type-fest":"^4.40.1"},"_hasShrinkwrap":false,"devDependencies":{"xo":"^0.60.0","ava":"^6.2.0","tsd":"^0.32.0","delay":"^6.0.0","in-range":"^3.0.0","time-span":"^5.1.0"},"_npmOperationalInternal":{"tmp":"tmp/make-synchronous_2.0.1_1749166880040_0.4872150093256209","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"make-synchronous","version":"2.1.0","description":"Make an asynchronous function synchronous","license":"MIT","repository":{"type":"git","url":"git+https://github.com/sindresorhus/make-synchronous.git"},"funding":"https://github.com/sponsors/sindresorhus","author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"https://sindresorhus.com"},"type":"module","exports":{".":{"types":"./index.d.ts","default":"./index.js"},"./subprocess":{"types":"./index.d.ts","default":"./subprocess.js"}},"sideEffects":false,"engines":{"node":">=20"},"scripts":{"test":"xo && ava && tsd"},"keywords":["function","synchronous","sync","block","main","thread","deasync","fiber","asynchronous","async","worker"],"dependencies":{"subsume":"^4.0.0","type-fest":"^4.40.1"},"devDependencies":{"ava":"^6.2.0","delay":"^6.0.0","in-range":"^3.0.0","time-span":"^5.1.0","tsd":"^0.32.0","xo":"^0.60.0"},"gitHead":"f1b834bb621389db2d21519bdad639fc509c59cf","types":"./index.d.ts","_id":"make-synchronous@2.1.0","bugs":{"url":"https://github.com/sindresorhus/make-synchronous/issues"},"homepage":"https://github.com/sindresorhus/make-synchronous#readme","_nodeVersion":"25.3.0","_npmVersion":"11.7.0","dist":{"integrity":"sha512-4ZFUrdoJbeCpWpNtpO0aJSh3uTR7tfuWwKj3wHai7fyrkjRoSOhbETz622o52ZuwaQONIi9XnwFvCtu/kD81dw==","shasum":"d8b1da7e04f9013a6f6d7029f921828166291d56","tarball":"https://registry.npmjs.org/make-synchronous/-/make-synchronous-2.1.0.tgz","fileCount":6,"unpackedSize":9516,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIGM5mNAMUXC1v52o+Dm+jlaSKY5y7hmRbz6u7dlFRs0KAiEA6AWYoHMHczcXI9r7qe8VfJuU9oGRXxiRND5ZpTxiE0I="}]},"_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"directories":{},"maintainers":[{"name":"sindresorhus","email":"sindresorhus@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/make-synchronous_2.1.0_1770105453762_0.9514776543617032"},"_hasShrinkwrap":false}},"time":{"created":"2020-08-18T16:51:46.743Z","modified":"2026-02-03T07:57:34.009Z","0.1.0":"2020-08-18T16:51:46.845Z","0.1.1":"2020-08-21T08:57:47.889Z","1.0.0":"2021-09-17T19:21:22.372Z","2.0.0":"2025-04-30T10:23:43.462Z","2.0.1":"2025-06-05T23:41:20.190Z","2.1.0":"2026-02-03T07:57:33.903Z"},"bugs":{"url":"https://github.com/sindresorhus/make-synchronous/issues"},"author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"https://sindresorhus.com"},"license":"MIT","homepage":"https://github.com/sindresorhus/make-synchronous#readme","keywords":["function","synchronous","sync","block","main","thread","deasync","fiber","asynchronous","async","worker"],"repository":{"type":"git","url":"git+https://github.com/sindresorhus/make-synchronous.git"},"description":"Make an asynchronous function synchronous","maintainers":[{"name":"sindresorhus","email":"sindresorhus@gmail.com"}],"readme":"# make-synchronous\n\n> Make an asynchronous function synchronous\n\n**This is the wrong tool for most tasks!** Prefer async APIs whenever possible.\n\nThe benefit of this package over packages like [`deasync`](https://github.com/abbr/deasync) is that this one is not a native Node.js addon (which comes with a lot of problems). Instead, this package executes the given function synchronously in a [`worker`](https://nodejs.org/api/worker_threads.html) or [`subprocess`](https://nodejs.org/api/child_process.html).\n\nWorks in Node.js only — not the browser.\n\n## Install\n\n```sh\nnpm install make-synchronous\n```\n\n## Usage\n\nRuns in a worker thread by default:\n\n```js\nimport makeSynchronous from 'make-synchronous';\n\nconst fn = makeSynchronous(async number => {\n\tconst {default: delay} = await import('delay');\n\n\tawait delay(100);\n\n\treturn number * 2;\n});\n\nconsole.log(fn(2));\n//=> 4\n```\n\nTo run in a subprocess instead:\n\n```js\nimport makeSynchronous from 'make-synchronous/subprocess';\n\nmakeSynchronous(async () => {\n\t// Runs in a subprocess.\n});\n```\n\nSubprocess execution is slower, but has the benefit of full process isolation.\n\n## API\n\n### makeSynchronous(asyncFunction | string)\n\nReturns a wrapped version of the given async function or a string representation to a async function which executes synchronously. This means no other code will execute (not even async code) until the given async function is done.\n\nThe function is executed in a worker or subprocess, so you cannot access variables or imports from outside its scope. Use `await import(…)` to import dependencies inside the function.\n\nUses [`MessagePort#postMessage()`](https://nodejs.org/api/worker_threads.html#portpostmessagevalue-transferlist) or the V8 serialization API to transfer arguments, return values, errors between the worker or subprocess and the current process. Most values are supported — except functions and symbols.\n\n## Related\n\n- [make-asynchronous](https://github.com/sindresorhus/make-asynchronous) - Make a synchronous function asynchronous by running it in a worker\n- [sleep-synchronously](https://github.com/sindresorhus/sleep-synchronously) - Block the main thread for a given amount of time\n- [make-synchronized](https://github.com/fisker/make-synchronized) - For advanced cases like fully synchronizing an existing module or needing top-level imports\n","readmeFilename":"readme.md"}