@nlabs/lex 1.39.1 → 1.41.0

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 (43) hide show
  1. package/.eslintrc +1 -0
  2. package/.vscode/settings.json +1 -1
  3. package/babel.config.json +13 -0
  4. package/dist/LexConfig.js +30 -26
  5. package/dist/commands/build.js +95 -49
  6. package/dist/commands/bulid.test.js +314 -5
  7. package/dist/commands/clean.js +4 -4
  8. package/dist/commands/clean.test.js +63 -0
  9. package/dist/commands/compile.js +27 -30
  10. package/dist/commands/compile.test.js +93 -0
  11. package/dist/commands/config.js +2 -2
  12. package/dist/commands/copy.js +1 -1
  13. package/dist/commands/create.js +4 -4
  14. package/dist/commands/dev.js +7 -7
  15. package/dist/commands/init.js +13 -13
  16. package/dist/commands/link.js +3 -3
  17. package/dist/commands/lint.js +50 -36
  18. package/dist/commands/migrate.js +4 -4
  19. package/dist/commands/publish.js +7 -7
  20. package/dist/commands/test.js +9 -9
  21. package/dist/commands/update.js +10 -10
  22. package/dist/commands/upgrade.js +7 -7
  23. package/dist/commands/versions.js +8 -9
  24. package/dist/commands/versions.test.js +49 -0
  25. package/dist/create/changelog.js +1 -1
  26. package/dist/lex.js +16 -16
  27. package/dist/lint.js +8 -0
  28. package/dist/utils/app.js +1 -1
  29. package/dist/utils/file.js +4 -4
  30. package/jest.config.cjs +55 -0
  31. package/jest.config.lex.js +27 -28
  32. package/jest.setup.ts +3 -0
  33. package/package.json +76 -71
  34. package/resolver.cjs +86 -0
  35. package/test/javascript.js +6 -0
  36. package/test/typescript.ts +6 -0
  37. package/tsconfig.build.json +1 -1
  38. package/tsconfig.json +1 -1
  39. package/tsconfig.template.json +5 -5
  40. package/webpack.config.js +78 -65
  41. package/dist/resolver.js +0 -70
  42. package/jest.config.js +0 -14
  43. package/jest.setup.js +0 -3
package/dist/utils/app.js CHANGED
@@ -214,4 +214,4 @@ export {
214
214
  setPackageJson,
215
215
  updateTemplateName
216
216
  };
217
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL3V0aWxzL2FwcC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCBib3hlbiBmcm9tICdib3hlbic7XG5pbXBvcnQge2NvcHlGaWxlLCBleGlzdHNTeW5jLCBsc3RhdFN5bmMsIG1rZGlyU3luYywgcmVhZGRpclN5bmMsIHJlYWRGaWxlU3luYywgd3JpdGVGaWxlU3luY30gZnJvbSAnZnMnO1xuaW1wb3J0IHtnbG9iU3luY30gZnJvbSAnZ2xvYic7XG5pbXBvcnQgaXNFbXB0eSBmcm9tICdsb2Rhc2gvaXNFbXB0eS5qcyc7XG5pbXBvcnQgb3JhIGZyb20gJ29yYSc7XG5pbXBvcnQge2Jhc2VuYW1lIGFzIHBhdGhCYXNlbmFtZSwgam9pbiBhcyBwYXRoSm9pbiwgcmVsYXRpdmUgYXMgcGF0aFJlbGF0aXZlLCByZXNvbHZlIGFzIHBhdGhSZXNvbHZlfSBmcm9tICdwYXRoJztcbmltcG9ydCB7cmltcmFmU3luY30gZnJvbSAncmltcmFmJztcblxuaW1wb3J0IHtsb2d9IGZyb20gJy4vbG9nLmpzJztcbmltcG9ydCB0eXBlIHtMZXhDb25maWdUeXBlfSBmcm9tICcuLi9MZXhDb25maWcuanMnO1xuXG5leHBvcnQgY29uc3QgY3dkOiBzdHJpbmcgPSBwcm9jZXNzLmN3ZCgpO1xuXG5leHBvcnQgY29uc3QgZ2V0RmlsZW5hbWVzID0gKHByb3BzOiBhbnkpID0+IHtcbiAgY29uc3Qge2NhbGxiYWNrLCBjbGlOYW1lLCBuYW1lLCBxdWlldCwgdHlwZSwgdXNlVHlwZXNjcmlwdH0gPSBwcm9wcztcblxuICAvLyBTZXQgZmlsZW5hbWVcbiAgbGV0IG5hbWVDYXBzOiBzdHJpbmc7XG4gIGNvbnN0IGl0ZW1UeXBlczogc3RyaW5nW10gPSBbJ3N0b3JlcycsICd2aWV3cyddO1xuXG4gIGlmKCFuYW1lKSB7XG4gICAgaWYoaXRlbVR5cGVzLmluY2x1ZGVzKHR5cGUpKSB7XG4gICAgICBsb2coYFxcbiR7Y2xpTmFtZX0gRXJyb3I6ICR7dHlwZX0gbmFtZSBpcyByZXF1aXJlZC4gUGxlYXNlIHVzZSAnbGV4IC1oJyBmb3Igb3B0aW9ucy5gLCAnZXJyb3InLCBxdWlldCk7XG4gICAgICByZXR1cm4gY2FsbGJhY2soMSk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIG5hbWVDYXBzID0gYCR7bmFtZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKX0ke25hbWUuc3Vic3RyKDEpfWA7XG4gIH1cblxuICAvLyBEaXNwbGF5IG1lc3NhZ2VcbiAgbG9nKGAke2NsaU5hbWV9IGFkZGluZyAke25hbWV9ICR7dHlwZX0uLi5gLCAnaW5mbycsIHF1aWV0KTtcblxuICAvLyBUZW1wbGF0ZSBkaXJlY3RvcnlcbiAgbGV0IHRlbXBsYXRlUGF0aDogc3RyaW5nO1xuICBsZXQgdGVtcGxhdGVFeHQ6IHN0cmluZztcbiAgbGV0IHRlbXBsYXRlUmVhY3Q6IHN0cmluZztcblxuICBpZih1c2VUeXBlc2NyaXB0KSB7XG4gICAgdGVtcGxhdGVQYXRoID0gJy4uLy4uL3RlbXBsYXRlcy90eXBlc2NyaXB0JztcbiAgICB0ZW1wbGF0ZUV4dCA9ICcudHMnO1xuICAgIHRlbXBsYXRlUmVhY3QgPSAnLnRzeCc7XG4gIH0gZWxzZSB7XG4gICAgdGVtcGxhdGVQYXRoID0gJy4uLy4uL3RlbXBsYXRlcy9mbG93JztcbiAgICB0ZW1wbGF0ZUV4dCA9ICcuanMnO1xuICAgIHRlbXBsYXRlUmVhY3QgPSAnLmpzJztcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgbmFtZUNhcHMsXG4gICAgdGVtcGxhdGVFeHQsXG4gICAgdGVtcGxhdGVQYXRoLFxuICAgIHRlbXBsYXRlUmVhY3RcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVTcGlubmVyID0gKHF1aWV0ID0gZmFsc2UpOiBhbnkgPT4ge1xuICBpZihxdWlldCkge1xuICAgIHJldHVybiB7XG4gICAgICBmYWlsOiAoKSA9PiB7fSxcbiAgICAgIHN0YXJ0OiAoKSA9PiB7fSxcbiAgICAgIHN1Y2NlZWQ6ICgpID0+IHt9XG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiBvcmEoe2NvbG9yOiAneWVsbG93J30pO1xufTtcblxuZXhwb3J0IGNvbnN0IGNvcHlGaWxlcyA9IGFzeW5jIChmaWxlczogc3RyaW5nW10sIHR5cGVOYW1lOiBzdHJpbmcsIHNwaW5uZXIsIGNvbmZpZzogTGV4Q29uZmlnVHlwZSkgPT4ge1xuICBjb25zdCB7b3V0cHV0RnVsbFBhdGgsIHNvdXJjZUZ1bGxQYXRofSA9IGNvbmZpZztcbiAgY29uc3QgaXRlbXMgPSBmaWxlcy5tYXAoKGZpbGVOYW1lOiBzdHJpbmcpID0+ICh7XG4gICAgZnJvbTogZmlsZU5hbWUsXG4gICAgdG86IHBhdGhSZXNvbHZlKG91dHB1dEZ1bGxQYXRoLCBwYXRoUmVsYXRpdmUoc291cmNlRnVsbFBhdGgsIGZpbGVOYW1lKSlcbiAgfSkpO1xuXG4gIHRyeSB7XG4gICAgc3Bpbm5lci5zdGFydChgQ29weWluZyAke3R5cGVOYW1lfSBmaWxlcy4uLmApO1xuICAgIGF3YWl0IFByb21pc2UuYWxsKGl0ZW1zLm1hcCgoe2Zyb20sIHRvfSkgPT4gbmV3IFByb21pc2UoXG4gICAgICAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIG1rZGlyU3luYyhwYXRoUmVzb2x2ZSh0bywgJy4uJyksIHtyZWN1cnNpdmU6IHRydWV9KTtcbiAgICAgICAgcmV0dXJuIGNvcHlGaWxlKGZyb20sIHRvLCAoY29weUVycm9yKSA9PiB7XG4gICAgICAgICAgaWYoY29weUVycm9yKSB7XG4gICAgICAgICAgICByZWplY3QoKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzb2x2ZSh0cnVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICkpKTtcbiAgICBzcGlubmVyLnN1Y2NlZWQoYFN1Y2Nlc3NmdWxseSBjb3BpZWQgJHtmaWxlcy5sZW5ndGh9ICR7dHlwZU5hbWV9IGZpbGVzIWApO1xuICB9IGNhdGNoKGVycm9yKSB7XG4gICAgLy8gU3RvcCBzcGlubmVyXG4gICAgc3Bpbm5lci5mYWlsKGBDb3B5aW5nIG9mICR7dHlwZU5hbWV9IGZpbGVzIGZhaWxlZC5gKTtcbiAgICBsb2coYEVycm9yOiAke2Vycm9yLm1lc3NhZ2V9YCwgJ2Vycm9yJyk7XG4gICAgY29uc29sZS5sb2coZXJyb3IpO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgY29weUZpbGVTeW5jID0gKHNvdXJjZTogc3RyaW5nLCB0YXJnZXQ6IHN0cmluZykgPT4ge1xuICBsZXQgdGFyZ2V0RmlsZTogc3RyaW5nID0gdGFyZ2V0O1xuXG4gIC8vIElmIHRhcmdldCBpcyBhIGRpcmVjdG9yeSBhIG5ldyBmaWxlIHdpdGggdGhlIHNhbWUgbmFtZSB3aWxsIGJlIGNyZWF0ZWRcbiAgaWYoZXhpc3RzU3luYyh0YXJnZXQpKSB7XG4gICAgaWYobHN0YXRTeW5jKHRhcmdldCkuaXNEaXJlY3RvcnkoKSkge1xuICAgICAgdGFyZ2V0RmlsZSA9IHBhdGhKb2luKHRhcmdldCwgcGF0aEJhc2VuYW1lKHNvdXJjZSkpO1xuICAgIH1cbiAgfVxuXG4gIHdyaXRlRmlsZVN5bmModGFyZ2V0RmlsZSwgcmVhZEZpbGVTeW5jKHNvdXJjZSkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGNvcHlGb2xkZXJSZWN1cnNpdmVTeW5jID0gKHNvdXJjZTogc3RyaW5nLCB0YXJnZXQ6IHN0cmluZyk6IHZvaWQgPT4ge1xuICBsZXQgZmlsZXM6IHN0cmluZ1tdID0gW107XG5cbiAgLy8gQ2hlY2sgaWYgZm9sZGVyIG5lZWRzIHRvIGJlIGNyZWF0ZWQgb3IgaW50ZWdyYXRlZFxuICBjb25zdCB0YXJnZXRGb2xkZXI6IHN0cmluZyA9IHBhdGhKb2luKHRhcmdldCwgcGF0aEJhc2VuYW1lKHNvdXJjZSkpO1xuXG4gIGlmKCFleGlzdHNTeW5jKHRhcmdldEZvbGRlcikpIHtcbiAgICBta2RpclN5bmModGFyZ2V0Rm9sZGVyKTtcbiAgfVxuXG4gIC8vIENvcHlcbiAgaWYobHN0YXRTeW5jKHNvdXJjZSkuaXNEaXJlY3RvcnkoKSkge1xuICAgIGZpbGVzID0gcmVhZGRpclN5bmMoc291cmNlKTtcbiAgICBmaWxlcy5mb3JFYWNoKChmaWxlOiBzdHJpbmcpID0+IHtcbiAgICAgIGNvbnN0IGN1clNvdXJjZTogc3RyaW5nID0gcGF0aEpvaW4oc291cmNlLCBmaWxlKTtcblxuICAgICAgaWYobHN0YXRTeW5jKGN1clNvdXJjZSkuaXNEaXJlY3RvcnkoKSkge1xuICAgICAgICBjb3B5Rm9sZGVyUmVjdXJzaXZlU3luYyhjdXJTb3VyY2UsIHRhcmdldEZvbGRlcik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb3B5RmlsZVN5bmMoY3VyU291cmNlLCB0YXJnZXRGb2xkZXIpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0UGFja2FnZUpzb24gPSAocGFja2FnZVBhdGg/OiBzdHJpbmcpID0+IHtcbiAgY29uc3QgZm9ybWF0UGF0aDogc3RyaW5nID0gcGFja2FnZVBhdGggfHwgYCR7cHJvY2Vzcy5jd2QoKX0vcGFja2FnZS5qc29uYDtcblxuICAvLyBDb25maWd1cmUgcGFja2FnZS5qc29uXG4gIGNvbnN0IHBhY2thZ2VEYXRhOiBzdHJpbmcgPSByZWFkRmlsZVN5bmMoZm9ybWF0UGF0aCkudG9TdHJpbmcoKTtcbiAgcmV0dXJuIEpTT04ucGFyc2UocGFja2FnZURhdGEpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEZpbGVzQnlFeHQgPSAoZXh0OiBzdHJpbmcsIGNvbmZpZzogTGV4Q29uZmlnVHlwZSk6IHN0cmluZ1tdID0+IHtcbiAgY29uc3Qge3NvdXJjZUZ1bGxQYXRofSA9IGNvbmZpZztcbiAgcmV0dXJuIGdsb2JTeW5jKGAke3NvdXJjZUZ1bGxQYXRofS8qKi8qKiR7ZXh0fWApO1xufTtcblxuZXhwb3J0IGNvbnN0IHJlbW92ZUNvbmZsaWN0TW9kdWxlcyA9IChtb2R1bGVMaXN0OiBvYmplY3QpID0+IHtcbiAgY29uc3QgdXBkYXRlZExpc3Q6IG9iamVjdCA9IHsuLi5tb2R1bGVMaXN0fTtcblxuICBPYmplY3Qua2V5cyh1cGRhdGVkTGlzdCkuZm9yRWFjaCgobW9kdWxlTmFtZTogc3RyaW5nKSA9PiB7XG4gICAgY29uc3QgcmVnZXg6IFJlZ0V4cCA9IG5ldyBSZWdFeHAoJ14oPyFAdHlwZXNcXC8pLiooamVzdHx3ZWJwYWNrKS4qJCcsICdnaScpO1xuICAgIGlmKHJlZ2V4LnRlc3QobW9kdWxlTmFtZSkpIHtcbiAgICAgIGRlbGV0ZSB1cGRhdGVkTGlzdFttb2R1bGVOYW1lXTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiB1cGRhdGVkTGlzdDtcbn07XG5cbmV4cG9ydCBjb25zdCByZW1vdmVGaWxlcyA9IChmaWxlTmFtZTogc3RyaW5nLCBpc1JlbGF0aXZlOiBib29sZWFuID0gZmFsc2UpID0+IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgY29uc3QgZmlsZVBhdGg6IHN0cmluZyA9IGlzUmVsYXRpdmUgPyBwYXRoUmVzb2x2ZShjd2QsIGZpbGVOYW1lKSA6IGZpbGVOYW1lO1xuICB0cnkge1xuICAgIHJpbXJhZlN5bmMoZmlsZVBhdGgpO1xuICAgIHJldHVybiByZXNvbHZlKG51bGwpO1xuICB9IGNhdGNoKGVycm9yKSB7XG4gICAgcmV0dXJuIHJlamVjdChlcnJvcik7XG4gIH1cbn0pO1xuXG5leHBvcnQgY29uc3QgcmVtb3ZlTW9kdWxlcyA9ICgpID0+IG5ldyBQcm9taXNlKGFzeW5jIChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgdHJ5IHtcbiAgICAvLyBSZW1vdmUgbm9kZV9tb2R1bGVzXG4gICAgYXdhaXQgcmVtb3ZlRmlsZXMoJy4vbm9kZV9tb2R1bGVzJywgdHJ1ZSk7XG5cbiAgICAvLyBSZW1vdmUgeWFybiBsb2NrXG4gICAgYXdhaXQgcmVtb3ZlRmlsZXMoJy4veWFybi5sb2NrJywgdHJ1ZSk7XG5cbiAgICAvLyBSZW1vdmUgbnBtIGxvY2tcbiAgICBhd2FpdCByZW1vdmVGaWxlcygnLi9wYWNrYWdlLWxvY2suanNvbicsIHRydWUpO1xuXG4gICAgcmVzb2x2ZShudWxsKTtcbiAgfSBjYXRjaChlcnJvcikge1xuICAgIHJlamVjdChlcnJvcik7XG4gIH1cbn0pO1xuXG5leHBvcnQgY29uc3Qgc2V0UGFja2FnZUpzb24gPSAoanNvbiwgcGFja2FnZVBhdGg/OiBzdHJpbmcpID0+IHtcbiAgaWYoIWpzb24pIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBmb3JtYXRQYXRoOiBzdHJpbmcgPSBwYWNrYWdlUGF0aCB8fCBgJHtwcm9jZXNzLmN3ZCgpfS9wYWNrYWdlLmpzb25gO1xuXG4gIC8vIFVwZGF0ZSBwYWNrYWdlLmpzb25cbiAgd3JpdGVGaWxlU3luYyhmb3JtYXRQYXRoLCBKU09OLnN0cmluZ2lmeShqc29uLCBudWxsLCAyKSk7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIExpbmtlZE1vZHVsZVR5cGUge1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHBhdGg6IHN0cmluZztcbn1cblxuZXhwb3J0IGNvbnN0IGxpbmtlZE1vZHVsZXMgPSAoc3RhcnRQYXRoPzogc3RyaW5nKTogTGlua2VkTW9kdWxlVHlwZVtdID0+IHtcbiAgY29uc3Qgd29ya2luZ1BhdGg6IHN0cmluZyA9IHN0YXJ0UGF0aCB8fCBwcm9jZXNzLmN3ZCgpO1xuICBsZXQgbW9kdWxlUGF0aDogc3RyaW5nO1xuICBsZXQgcHJlZml4OiBzdHJpbmc7XG5cbiAgLy8gaWYgd2UgaGF2ZSBhIHNjb3BlIHdlIHNob3VsZCBjaGVjayBpZiB0aGUgbW9kdWxlcyBpbnNpZGUgdGhlIGZvbGRlciBpcyBsaW5rZWRcbiAgaWYod29ya2luZ1BhdGguaW5jbHVkZXMoJ0AnKSkge1xuICAgIHByZWZpeCA9IGBAJHt3b3JraW5nUGF0aC5zcGxpdCgnQCcpLnBvcCgpfWA7XG4gICAgbW9kdWxlUGF0aCA9IHdvcmtpbmdQYXRoO1xuICB9IGVsc2Uge1xuICAgIG1vZHVsZVBhdGggPSBwYXRoSm9pbih3b3JraW5nUGF0aCwgJ25vZGVfbW9kdWxlcycpO1xuICB9XG5cbiAgY29uc3QgZm91bmRQYXRoczogc3RyaW5nW10gPSBnbG9iU3luYyhgJHttb2R1bGVQYXRofS8qYCk7XG4gIHJldHVybiBmb3VuZFBhdGhzLnJlZHVjZSgobGlzdDogTGlua2VkTW9kdWxlVHlwZVtdLCBmb3VuZFBhdGg6IHN0cmluZykgPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBzdGF0cyA9IGxzdGF0U3luYyhmb3VuZFBhdGgpO1xuXG4gICAgICBpZihzdGF0cy5pc0RpcmVjdG9yeSgpKSB7XG4gICAgICAgIGNvbnN0IGRlZXBMaXN0OiBMaW5rZWRNb2R1bGVUeXBlW10gPSBsaW5rZWRNb2R1bGVzKGZvdW5kUGF0aCk7XG4gICAgICAgIGxpc3QucHVzaCguLi5kZWVwTGlzdCk7XG4gICAgICB9IGVsc2UgaWYoc3RhdHMuaXNTeW1ib2xpY0xpbmsoKSkge1xuICAgICAgICBjb25zdCBtb2R1bGVOYW1lczogc3RyaW5nW10gPSAoW3ByZWZpeCwgcGF0aEJhc2VuYW1lKGZvdW5kUGF0aCldKS5maWx0ZXIoKGl0ZW06IHN0cmluZykgPT4gIWlzRW1wdHkoaXRlbSkpO1xuICAgICAgICBsaXN0LnB1c2goe25hbWU6IGAke21vZHVsZU5hbWVzLmpvaW4oJy8nKX1gLCBwYXRoOiBmb3VuZFBhdGh9KTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGxpc3Q7XG4gICAgfSBjYXRjaChmc0Vycm9yKSB7XG4gICAgICB0aHJvdyBmc0Vycm9yO1xuICAgIH1cbiAgfSwgW10pO1xufTtcblxuLy8gQ2hlY2sgZm9yIGxpbmtlZCBtb2R1bGVzXG5leHBvcnQgY29uc3QgY2hlY2tMaW5rZWRNb2R1bGVzID0gKCkgPT4ge1xuICBjb25zdCBsaW5rZWQgPSBsaW5rZWRNb2R1bGVzKCk7XG5cbiAgaWYobGlua2VkLmxlbmd0aCkge1xuICAgIGNvbnN0IG1zZ01vZHVsZTogc3RyaW5nID0gbGlua2VkLmxlbmd0aCA+IDEgPyAnTW9kdWxlcycgOiAnTW9kdWxlJztcbiAgICBjb25zdCBsaW5rZWRNc2c6IHN0cmluZyA9IGxpbmtlZC5yZWR1Y2UoXG4gICAgICAobXNnOiBzdHJpbmcsIGxpbmtlZE1vZHVsZTogTGlua2VkTW9kdWxlVHlwZSkgPT5cbiAgICAgICAgYCR7bXNnfVxcbiAqICR7bGlua2VkTW9kdWxlLm5hbWV9YCxcbiAgICAgIGBMaW5rZWQgJHttc2dNb2R1bGV9OmBcbiAgICApO1xuICAgIGxvZyhib3hlbihsaW5rZWRNc2csIHtkaW1Cb3JkZXI6IHRydWUsIHBhZGRpbmc6IDF9KSwgJ3dhcm4nKTtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IHVwZGF0ZVRlbXBsYXRlTmFtZSA9IChmaWxlUGF0aDogc3RyaW5nLCByZXBsYWNlOiBzdHJpbmcsIHJlcGxhY2VDYXBzOiBzdHJpbmcpID0+IHtcbiAgbGV0IGRhdGE6IHN0cmluZyA9IHJlYWRGaWxlU3luYyhmaWxlUGF0aCwgJ3V0ZjgnKTtcbiAgZGF0YSA9IGRhdGEucmVwbGFjZSgvc2FtcGxlL2csIHJlcGxhY2UpO1xuICBkYXRhID0gZGF0YS5yZXBsYWNlKC9TYW1wbGUvZywgcmVwbGFjZUNhcHMpO1xuICB3cml0ZUZpbGVTeW5jKGZpbGVQYXRoLCBkYXRhLCAndXRmOCcpO1xufTtcbiJdLAogICJtYXBwaW5ncyI6ICJBQUlBLE9BQU8sV0FBVztBQUNsQixTQUFRLFVBQVUsWUFBWSxXQUFXLFdBQVcsYUFBYSxjQUFjLHFCQUFvQjtBQUNuRyxTQUFRLGdCQUFlO0FBQ3ZCLE9BQU8sYUFBYTtBQUNwQixPQUFPLFNBQVM7QUFDaEIsU0FBUSxZQUFZLGNBQWMsUUFBUSxVQUFVLFlBQVksY0FBYyxXQUFXLG1CQUFrQjtBQUMzRyxTQUFRLGtCQUFpQjtBQUV6QixTQUFRLFdBQVU7QUFHWCxNQUFNLE1B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
217
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL3V0aWxzL2FwcC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCBib3hlbiBmcm9tICdib3hlbic7XG5pbXBvcnQge2NvcHlGaWxlLCBleGlzdHNTeW5jLCBsc3RhdFN5bmMsIG1rZGlyU3luYywgcmVhZGRpclN5bmMsIHJlYWRGaWxlU3luYywgd3JpdGVGaWxlU3luY30gZnJvbSAnZnMnO1xuaW1wb3J0IHtnbG9iU3luY30gZnJvbSAnZ2xvYic7XG5pbXBvcnQgaXNFbXB0eSBmcm9tICdsb2Rhc2gvaXNFbXB0eS5qcyc7XG5pbXBvcnQgb3JhIGZyb20gJ29yYSc7XG5pbXBvcnQge2Jhc2VuYW1lIGFzIHBhdGhCYXNlbmFtZSwgam9pbiBhcyBwYXRoSm9pbiwgcmVsYXRpdmUgYXMgcGF0aFJlbGF0aXZlLCByZXNvbHZlIGFzIHBhdGhSZXNvbHZlfSBmcm9tICdwYXRoJztcbmltcG9ydCB7cmltcmFmU3luY30gZnJvbSAncmltcmFmJztcblxuaW1wb3J0IHtsb2d9IGZyb20gJy4vbG9nLmpzJztcbmltcG9ydCB0eXBlIHtMZXhDb25maWdUeXBlfSBmcm9tICcuLi9MZXhDb25maWcuanMnO1xuXG5leHBvcnQgY29uc3QgY3dkOiBzdHJpbmcgPSBwcm9jZXNzLmN3ZCgpO1xuXG5leHBvcnQgY29uc3QgZ2V0RmlsZW5hbWVzID0gKHByb3BzOiBhbnkpID0+IHtcbiAgY29uc3Qge2NhbGxiYWNrLCBjbGlOYW1lLCBuYW1lLCBxdWlldCwgdHlwZSwgdXNlVHlwZXNjcmlwdH0gPSBwcm9wcztcblxuICAvLyBTZXQgZmlsZW5hbWVcbiAgbGV0IG5hbWVDYXBzOiBzdHJpbmc7XG4gIGNvbnN0IGl0ZW1UeXBlczogc3RyaW5nW10gPSBbJ3N0b3JlcycsICd2aWV3cyddO1xuXG4gIGlmKCFuYW1lKSB7XG4gICAgaWYoaXRlbVR5cGVzLmluY2x1ZGVzKHR5cGUpKSB7XG4gICAgICBsb2coYFxcbiR7Y2xpTmFtZX0gRXJyb3I6ICR7dHlwZX0gbmFtZSBpcyByZXF1aXJlZC4gUGxlYXNlIHVzZSAnbGV4IC1oJyBmb3Igb3B0aW9ucy5gLCAnZXJyb3InLCBxdWlldCk7XG4gICAgICByZXR1cm4gY2FsbGJhY2soMSk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIG5hbWVDYXBzID0gYCR7bmFtZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKX0ke25hbWUuc3Vic3RyKDEpfWA7XG4gIH1cblxuICAvLyBEaXNwbGF5IG1lc3NhZ2VcbiAgbG9nKGAke2NsaU5hbWV9IGFkZGluZyAke25hbWV9ICR7dHlwZX0uLi5gLCAnaW5mbycsIHF1aWV0KTtcblxuICAvLyBUZW1wbGF0ZSBkaXJlY3RvcnlcbiAgbGV0IHRlbXBsYXRlUGF0aDogc3RyaW5nO1xuICBsZXQgdGVtcGxhdGVFeHQ6IHN0cmluZztcbiAgbGV0IHRlbXBsYXRlUmVhY3Q6IHN0cmluZztcblxuICBpZih1c2VUeXBlc2NyaXB0KSB7XG4gICAgdGVtcGxhdGVQYXRoID0gJy4uLy4uL3RlbXBsYXRlcy90eXBlc2NyaXB0JztcbiAgICB0ZW1wbGF0ZUV4dCA9ICcudHMnO1xuICAgIHRlbXBsYXRlUmVhY3QgPSAnLnRzeCc7XG4gIH0gZWxzZSB7XG4gICAgdGVtcGxhdGVQYXRoID0gJy4uLy4uL3RlbXBsYXRlcy9mbG93JztcbiAgICB0ZW1wbGF0ZUV4dCA9ICcuanMnO1xuICAgIHRlbXBsYXRlUmVhY3QgPSAnLmpzJztcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgbmFtZUNhcHMsXG4gICAgdGVtcGxhdGVFeHQsXG4gICAgdGVtcGxhdGVQYXRoLFxuICAgIHRlbXBsYXRlUmVhY3RcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVTcGlubmVyID0gKHF1aWV0ID0gZmFsc2UpOiBhbnkgPT4ge1xuICBpZihxdWlldCkge1xuICAgIHJldHVybiB7XG4gICAgICBmYWlsOiAoKSA9PiB7fSxcbiAgICAgIHN0YXJ0OiAoKSA9PiB7fSxcbiAgICAgIHN1Y2NlZWQ6ICgpID0+IHt9XG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiBvcmEoe2NvbG9yOiAneWVsbG93J30pO1xufTtcblxuZXhwb3J0IGNvbnN0IGNvcHlGaWxlcyA9IGFzeW5jIChmaWxlczogc3RyaW5nW10sIHR5cGVOYW1lOiBzdHJpbmcsIHNwaW5uZXIsIGNvbmZpZzogTGV4Q29uZmlnVHlwZSkgPT4ge1xuICBjb25zdCB7b3V0cHV0RnVsbFBhdGgsIHNvdXJjZUZ1bGxQYXRofSA9IGNvbmZpZztcbiAgY29uc3QgaXRlbXMgPSBmaWxlcy5tYXAoKGZpbGVOYW1lOiBzdHJpbmcpID0+ICh7XG4gICAgZnJvbTogZmlsZU5hbWUsXG4gICAgdG86IHBhdGhSZXNvbHZlKG91dHB1dEZ1bGxQYXRoLCBwYXRoUmVsYXRpdmUoc291cmNlRnVsbFBhdGgsIGZpbGVOYW1lKSlcbiAgfSkpO1xuXG4gIHRyeSB7XG4gICAgc3Bpbm5lci5zdGFydChgQ29weWluZyAke3R5cGVOYW1lfSBmaWxlcy4uLmApO1xuICAgIGF3YWl0IFByb21pc2UuYWxsKGl0ZW1zLm1hcCgoe2Zyb20sIHRvfSkgPT4gbmV3IFByb21pc2UoXG4gICAgICAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIG1rZGlyU3luYyhwYXRoUmVzb2x2ZSh0bywgJy4uJyksIHtyZWN1cnNpdmU6IHRydWV9KTtcbiAgICAgICAgcmV0dXJuIGNvcHlGaWxlKGZyb20sIHRvLCAoY29weUVycm9yKSA9PiB7XG4gICAgICAgICAgaWYoY29weUVycm9yKSB7XG4gICAgICAgICAgICByZWplY3QoKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzb2x2ZSh0cnVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICkpKTtcbiAgICBzcGlubmVyLnN1Y2NlZWQoYFN1Y2Nlc3NmdWxseSBjb3BpZWQgJHtmaWxlcy5sZW5ndGh9ICR7dHlwZU5hbWV9IGZpbGVzIWApO1xuICB9IGNhdGNoKGVycm9yKSB7XG4gICAgLy8gU3RvcCBzcGlubmVyXG4gICAgc3Bpbm5lci5mYWlsKGBDb3B5aW5nIG9mICR7dHlwZU5hbWV9IGZpbGVzIGZhaWxlZC5gKTtcbiAgICBsb2coYEVycm9yOiAke2Vycm9yLm1lc3NhZ2V9YCwgJ2Vycm9yJyk7XG4gICAgY29uc29sZS5sb2coZXJyb3IpO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgY29weUZpbGVTeW5jID0gKHNvdXJjZTogc3RyaW5nLCB0YXJnZXQ6IHN0cmluZykgPT4ge1xuICBsZXQgdGFyZ2V0RmlsZTogc3RyaW5nID0gdGFyZ2V0O1xuXG4gIC8vIElmIHRhcmdldCBpcyBhIGRpcmVjdG9yeSBhIG5ldyBmaWxlIHdpdGggdGhlIHNhbWUgbmFtZSB3aWxsIGJlIGNyZWF0ZWRcbiAgaWYoZXhpc3RzU3luYyh0YXJnZXQpKSB7XG4gICAgaWYobHN0YXRTeW5jKHRhcmdldCkuaXNEaXJlY3RvcnkoKSkge1xuICAgICAgdGFyZ2V0RmlsZSA9IHBhdGhKb2luKHRhcmdldCwgcGF0aEJhc2VuYW1lKHNvdXJjZSkpO1xuICAgIH1cbiAgfVxuXG4gIHdyaXRlRmlsZVN5bmModGFyZ2V0RmlsZSwgcmVhZEZpbGVTeW5jKHNvdXJjZSkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGNvcHlGb2xkZXJSZWN1cnNpdmVTeW5jID0gKHNvdXJjZTogc3RyaW5nLCB0YXJnZXQ6IHN0cmluZyk6IHZvaWQgPT4ge1xuICBsZXQgZmlsZXM6IHN0cmluZ1tdID0gW107XG5cbiAgLy8gQ2hlY2sgaWYgZm9sZGVyIG5lZWRzIHRvIGJlIGNyZWF0ZWQgb3IgaW50ZWdyYXRlZFxuICBjb25zdCB0YXJnZXRGb2xkZXI6IHN0cmluZyA9IHBhdGhKb2luKHRhcmdldCwgcGF0aEJhc2VuYW1lKHNvdXJjZSkpO1xuXG4gIGlmKCFleGlzdHNTeW5jKHRhcmdldEZvbGRlcikpIHtcbiAgICBta2RpclN5bmModGFyZ2V0Rm9sZGVyKTtcbiAgfVxuXG4gIC8vIENvcHlcbiAgaWYobHN0YXRTeW5jKHNvdXJjZSkuaXNEaXJlY3RvcnkoKSkge1xuICAgIGZpbGVzID0gcmVhZGRpclN5bmMoc291cmNlKTtcbiAgICBmaWxlcy5mb3JFYWNoKChmaWxlOiBzdHJpbmcpID0+IHtcbiAgICAgIGNvbnN0IGN1clNvdXJjZTogc3RyaW5nID0gcGF0aEpvaW4oc291cmNlLCBmaWxlKTtcblxuICAgICAgaWYobHN0YXRTeW5jKGN1clNvdXJjZSkuaXNEaXJlY3RvcnkoKSkge1xuICAgICAgICBjb3B5Rm9sZGVyUmVjdXJzaXZlU3luYyhjdXJTb3VyY2UsIHRhcmdldEZvbGRlcik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb3B5RmlsZVN5bmMoY3VyU291cmNlLCB0YXJnZXRGb2xkZXIpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0UGFja2FnZUpzb24gPSAocGFja2FnZVBhdGg/OiBzdHJpbmcpID0+IHtcbiAgY29uc3QgZm9ybWF0UGF0aDogc3RyaW5nID0gcGFja2FnZVBhdGggfHwgYCR7cHJvY2Vzcy5jd2QoKX0vcGFja2FnZS5qc29uYDtcblxuICAvLyBDb25maWd1cmUgcGFja2FnZS5qc29uXG4gIGNvbnN0IHBhY2thZ2VEYXRhOiBzdHJpbmcgPSByZWFkRmlsZVN5bmMoZm9ybWF0UGF0aCkudG9TdHJpbmcoKTtcbiAgcmV0dXJuIEpTT04ucGFyc2UocGFja2FnZURhdGEpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEZpbGVzQnlFeHQgPSAoZXh0OiBzdHJpbmcsIGNvbmZpZzogTGV4Q29uZmlnVHlwZSk6IHN0cmluZ1tdID0+IHtcbiAgY29uc3Qge3NvdXJjZUZ1bGxQYXRofSA9IGNvbmZpZztcbiAgcmV0dXJuIGdsb2JTeW5jKGAke3NvdXJjZUZ1bGxQYXRofS8qKi8qKiR7ZXh0fWApO1xufTtcblxuZXhwb3J0IGNvbnN0IHJlbW92ZUNvbmZsaWN0TW9kdWxlcyA9IChtb2R1bGVMaXN0OiBvYmplY3QpID0+IHtcbiAgY29uc3QgdXBkYXRlZExpc3Q6IG9iamVjdCA9IHsuLi5tb2R1bGVMaXN0fTtcblxuICBPYmplY3Qua2V5cyh1cGRhdGVkTGlzdCkuZm9yRWFjaCgobW9kdWxlTmFtZTogc3RyaW5nKSA9PiB7XG4gICAgY29uc3QgcmVnZXg6IFJlZ0V4cCA9IG5ldyBSZWdFeHAoJ14oPyFAdHlwZXNcXC8pLiooamVzdHx3ZWJwYWNrKS4qJCcsICdnaScpO1xuICAgIGlmKHJlZ2V4LnRlc3QobW9kdWxlTmFtZSkpIHtcbiAgICAgIGRlbGV0ZSB1cGRhdGVkTGlzdFttb2R1bGVOYW1lXTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiB1cGRhdGVkTGlzdDtcbn07XG5cbmV4cG9ydCBjb25zdCByZW1vdmVGaWxlcyA9IChmaWxlTmFtZTogc3RyaW5nLCBpc1JlbGF0aXZlOiBib29sZWFuID0gZmFsc2UpID0+IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgY29uc3QgZmlsZVBhdGg6IHN0cmluZyA9IGlzUmVsYXRpdmUgPyBwYXRoUmVzb2x2ZShjd2QsIGZpbGVOYW1lKSA6IGZpbGVOYW1lO1xuICB0cnkge1xuICAgIHJpbXJhZlN5bmMoZmlsZVBhdGgpO1xuICAgIHJldHVybiByZXNvbHZlKG51bGwpO1xuICB9IGNhdGNoKGVycm9yKSB7XG4gICAgcmV0dXJuIHJlamVjdChlcnJvcik7XG4gIH1cbn0pO1xuXG5leHBvcnQgY29uc3QgcmVtb3ZlTW9kdWxlcyA9ICgpID0+IG5ldyBQcm9taXNlKGFzeW5jIChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgdHJ5IHtcbiAgICAvLyBSZW1vdmUgbm9kZV9tb2R1bGVzXG4gICAgYXdhaXQgcmVtb3ZlRmlsZXMoJy4vbm9kZV9tb2R1bGVzJywgdHJ1ZSk7XG5cbiAgICAvLyBSZW1vdmUgeWFybiBsb2NrXG4gICAgYXdhaXQgcmVtb3ZlRmlsZXMoJy4veWFybi5sb2NrJywgdHJ1ZSk7XG5cbiAgICAvLyBSZW1vdmUgbnBtIGxvY2tcbiAgICBhd2FpdCByZW1vdmVGaWxlcygnLi9wYWNrYWdlLWxvY2suanNvbicsIHRydWUpO1xuXG4gICAgcmVzb2x2ZShudWxsKTtcbiAgfSBjYXRjaChlcnJvcikge1xuICAgIHJlamVjdChlcnJvcik7XG4gIH1cbn0pO1xuXG5leHBvcnQgY29uc3Qgc2V0UGFja2FnZUpzb24gPSAoanNvbiwgcGFja2FnZVBhdGg/OiBzdHJpbmcpID0+IHtcbiAgaWYoIWpzb24pIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBmb3JtYXRQYXRoOiBzdHJpbmcgPSBwYWNrYWdlUGF0aCB8fCBgJHtwcm9jZXNzLmN3ZCgpfS9wYWNrYWdlLmpzb25gO1xuXG4gIC8vIFVwZGF0ZSBwYWNrYWdlLmpzb25cbiAgd3JpdGVGaWxlU3luYyhmb3JtYXRQYXRoLCBKU09OLnN0cmluZ2lmeShqc29uLCBudWxsLCAyKSk7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIExpbmtlZE1vZHVsZVR5cGUge1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHBhdGg6IHN0cmluZztcbn1cblxuZXhwb3J0IGNvbnN0IGxpbmtlZE1vZHVsZXMgPSAoc3RhcnRQYXRoPzogc3RyaW5nKTogTGlua2VkTW9kdWxlVHlwZVtdID0+IHtcbiAgY29uc3Qgd29ya2luZ1BhdGg6IHN0cmluZyA9IHN0YXJ0UGF0aCB8fCBwcm9jZXNzLmN3ZCgpO1xuICBsZXQgbW9kdWxlUGF0aDogc3RyaW5nO1xuICBsZXQgcHJlZml4OiBzdHJpbmc7XG5cbiAgLy8gaWYgd2UgaGF2ZSBhIHNjb3BlIHdlIHNob3VsZCBjaGVjayBpZiB0aGUgbW9kdWxlcyBpbnNpZGUgdGhlIGZvbGRlciBpcyBsaW5rZWRcbiAgaWYod29ya2luZ1BhdGguaW5jbHVkZXMoJ0AnKSkge1xuICAgIHByZWZpeCA9IGBAJHt3b3JraW5nUGF0aC5zcGxpdCgnQCcpLnBvcCgpfWA7XG4gICAgbW9kdWxlUGF0aCA9IHdvcmtpbmdQYXRoO1xuICB9IGVsc2Uge1xuICAgIG1vZHVsZVBhdGggPSBwYXRoSm9pbih3b3JraW5nUGF0aCwgJ25vZGVfbW9kdWxlcycpO1xuICB9XG5cbiAgY29uc3QgZm91bmRQYXRoczogc3RyaW5nW10gPSBnbG9iU3luYyhgJHttb2R1bGVQYXRofS8qYCk7XG4gIHJldHVybiBmb3VuZFBhdGhzLnJlZHVjZSgobGlzdDogTGlua2VkTW9kdWxlVHlwZVtdLCBmb3VuZFBhdGg6IHN0cmluZykgPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBzdGF0cyA9IGxzdGF0U3luYyhmb3VuZFBhdGgpO1xuXG4gICAgICBpZihzdGF0cy5pc0RpcmVjdG9yeSgpKSB7XG4gICAgICAgIGNvbnN0IGRlZXBMaXN0OiBMaW5rZWRNb2R1bGVUeXBlW10gPSBsaW5rZWRNb2R1bGVzKGZvdW5kUGF0aCk7XG4gICAgICAgIGxpc3QucHVzaCguLi5kZWVwTGlzdCk7XG4gICAgICB9IGVsc2UgaWYoc3RhdHMuaXNTeW1ib2xpY0xpbmsoKSkge1xuICAgICAgICBjb25zdCBtb2R1bGVOYW1lczogc3RyaW5nW10gPSAoW3ByZWZpeCwgcGF0aEJhc2VuYW1lKGZvdW5kUGF0aCldKS5maWx0ZXIoKGl0ZW06IHN0cmluZykgPT4gIWlzRW1wdHkoaXRlbSkpO1xuICAgICAgICBsaXN0LnB1c2goe25hbWU6IGAke21vZHVsZU5hbWVzLmpvaW4oJy8nKX1gLCBwYXRoOiBmb3VuZFBhdGh9KTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGxpc3Q7XG4gICAgfSBjYXRjaChmc0Vycm9yKSB7XG4gICAgICB0aHJvdyBmc0Vycm9yO1xuICAgIH1cbiAgfSwgW10pO1xufTtcblxuLy8gQ2hlY2sgZm9yIGxpbmtlZCBtb2R1bGVzXG5leHBvcnQgY29uc3QgY2hlY2tMaW5rZWRNb2R1bGVzID0gKCkgPT4ge1xuICBjb25zdCBsaW5rZWQgPSBsaW5rZWRNb2R1bGVzKCk7XG5cbiAgaWYobGlua2VkLmxlbmd0aCkge1xuICAgIGNvbnN0IG1zZ01vZHVsZTogc3RyaW5nID0gbGlua2VkLmxlbmd0aCA+IDEgPyAnTW9kdWxlcycgOiAnTW9kdWxlJztcbiAgICBjb25zdCBsaW5rZWRNc2c6IHN0cmluZyA9IGxpbmtlZC5yZWR1Y2UoXG4gICAgICAobXNnOiBzdHJpbmcsIGxpbmtlZE1vZHVsZTogTGlua2VkTW9kdWxlVHlwZSkgPT5cbiAgICAgICAgYCR7bXNnfVxcbiAqICR7bGlua2VkTW9kdWxlLm5hbWV9YCxcbiAgICAgIGBMaW5rZWQgJHttc2dNb2R1bGV9OmBcbiAgICApO1xuICAgIGxvZyhib3hlbihsaW5rZWRNc2csIHtkaW1Cb3JkZXI6IHRydWUsIHBhZGRpbmc6IDF9KSwgJ3dhcm4nKTtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IHVwZGF0ZVRlbXBsYXRlTmFtZSA9IChmaWxlUGF0aDogc3RyaW5nLCByZXBsYWNlOiBzdHJpbmcsIHJlcGxhY2VDYXBzOiBzdHJpbmcpID0+IHtcbiAgbGV0IGRhdGE6IHN0cmluZyA9IHJlYWRGaWxlU3luYyhmaWxlUGF0aCwgJ3V0ZjgnKTtcbiAgZGF0YSA9IGRhdGEucmVwbGFjZSgvc2FtcGxlL2csIHJlcGxhY2UpO1xuICBkYXRhID0gZGF0YS5yZXBsYWNlKC9TYW1wbGUvZywgcmVwbGFjZUNhcHMpO1xuICB3cml0ZUZpbGVTeW5jKGZpbGVQYXRoLCBkYXRhLCAndXRmOCcpO1xufTtcbiJdLAogICJtYXBwaW5ncyI6ICJBQUlBLE9BQU8sV0FBVztBQUNsQixTQUFRLFVBQVUsWUFBWSxXQUFXLFdBQVcsYUFBYSxjQUFjLHFCQUFvQjtBQUNuRyxTQUFRLGdCQUFlO0FBQ3ZCLE9BQU8sYUFBYTtBQUNwQixPQUFPLFNBQVM7QUFDaEIsU0FBUSxZQUFZLGNBQWMsUUFBUSxVQUFVLFlBQVksY0FBYyxXQUFXLG1CQUFrQjtBQUMzRyxTQUFRLGtCQUFpQjtBQUV6QixTQUFRLFdBQVU7QUFHWCxNQUFNLE1B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
@@ -1,7 +1,7 @@
1
1
  import findFileUp from "find-file-up";
2
2
  import { existsSync } from "fs";
3
3
  import { resolve as pathResolve } from "path";
4
- import { fileURLToPath } from "url";
4
+ import { URL } from "url";
5
5
  const relativeFilePath = (filename, dirPath = "./", backUp = 0) => {
6
6
  const nestDepth = 10;
7
7
  if (backUp) {
@@ -15,14 +15,14 @@ const relativeNodePath = (filename, dirPath = "./", backUp = 0) => {
15
15
  const nestDepth = 10;
16
16
  if (backUp) {
17
17
  const filePath = findFileUp.sync(`node_modules/${filename}`, dirPath, nestDepth);
18
- const previousPath = Array(backUp).fill(null).map(() => "../").join("");
18
+ const previousPath = Array(nestDepth).fill(null).map(() => "../").join("");
19
19
  return pathResolve(filePath, previousPath);
20
20
  }
21
21
  return findFileUp.sync(`node_modules/${filename}`, dirPath, nestDepth);
22
22
  };
23
23
  const getNodePath = (moduleName) => {
24
+ const dirName = new URL(".", import.meta.url).pathname;
24
25
  const modulePath = `node_modules/${moduleName}`;
25
- const dirName = fileURLToPath(new URL(".", import.meta.url));
26
26
  const repoPath = findFileUp.sync(modulePath, dirName);
27
27
  if (repoPath && existsSync(repoPath)) {
28
28
  return repoPath;
@@ -35,4 +35,4 @@ export {
35
35
  relativeFilePath,
36
36
  relativeNodePath
37
37
  };
38
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL3V0aWxzL2ZpbGUudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDIyLVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5pbXBvcnQgZmluZEZpbGVVcCBmcm9tICdmaW5kLWZpbGUtdXAnO1xuaW1wb3J0IHtleGlzdHNTeW5jfSBmcm9tICdmcyc7XG5pbXBvcnQge3Jlc29sdmUgYXMgcGF0aFJlc29sdmV9IGZyb20gJ3BhdGgnO1xuaW1wb3J0IHtmaWxlVVJMVG9QYXRofSBmcm9tICd1cmwnO1xuXG4vLyBHZXQgZmlsZSBwYXRocyByZWxhdGl2ZSB0byBMZXhcbmV4cG9ydCBjb25zdCByZWxhdGl2ZUZpbGVQYXRoID0gKGZpbGVuYW1lOiBzdHJpbmcsIGRpclBhdGg6IHN0cmluZyA9ICcuLycsIGJhY2tVcDogbnVtYmVyID0gMCk6IHN0cmluZyA9PiB7XG4gIGNvbnN0IG5lc3REZXB0aDogbnVtYmVyID0gMTA7XG5cbiAgaWYoYmFja1VwKSB7XG4gICAgY29uc3QgZmlsZVBhdGg6IHN0cmluZyA9IGZpbmRGaWxlVXAuc3luYyhmaWxlbmFtZSwgZGlyUGF0aCwgbmVzdERlcHRoKTtcbiAgICBjb25zdCBwcmV2aW91c1BhdGg6IHN0cmluZyA9IEFycmF5KGJhY2tVcCkuZmlsbChudWxsKS5tYXAoKCkgPT4gJy4uLycpLmpvaW4oJycpO1xuICAgIHJldHVybiBwYXRoUmVzb2x2ZShmaWxlUGF0aCwgcHJldmlvdXNQYXRoKTtcbiAgfVxuXG4gIHJldHVybiBmaW5kRmlsZVVwLnN5bmMoZmlsZW5hbWUsIGRpclBhdGgsIG5lc3REZXB0aCk7XG59O1xuXG5leHBvcnQgY29uc3QgcmVsYXRpdmVOb2RlUGF0aCA9IChmaWxlbmFtZTogc3RyaW5nLCBkaXJQYXRoOiBzdHJpbmcgPSAnLi8nLCBiYWNrVXA6IG51bWJlciA9IDApOiBzdHJpbmcgPT4ge1xuICBjb25zdCBuZXN0RGVwdGg6IG51bWJlciA9IDEwO1xuXG4gIGlmKGJhY2tVcCkge1xuICAgIGNvbnN0IGZpbGVQYXRoOiBzdHJpbmcgPSBmaW5kRmlsZVVwLnN5bmMoYG5vZGVfbW9kdWxlcy8ke2ZpbGVuYW1lfWAsIGRpclBhdGgsIG5lc3REZXB0aCk7XG4gICAgY29uc3QgcHJldmlvdXNQYXRoOiBzdHJpbmcgPSBBcnJheShiYWNrVXApLmZpbGwobnVsbCkubWFwKCgpID0+ICcuLi8nKS5qb2luKCcnKTtcbiAgICByZXR1cm4gcGF0aFJlc29sdmUoZmlsZVBhdGgsIHByZXZpb3VzUGF0aCk7XG4gIH1cblxuICByZXR1cm4gZmluZEZpbGVVcC5zeW5jKGBub2RlX21vZHVsZXMvJHtmaWxlbmFtZX1gLCBkaXJQYXRoLCBuZXN0RGVwdGgpO1xufTtcblxuLy8gR2V0IGZpbGUgcGF0aHMgcmVsYXRpdmUgdG8gTGV4XG5leHBvcnQgY29uc3QgZ2V0Tm9kZVBhdGggPSAobW9kdWxlTmFtZTogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgY29uc3QgbW9kdWxlUGF0aDogc3RyaW5nID0gYG5vZGVfbW9kdWxlcy8ke21vZHVsZU5hbWV9YDtcbiAgY29uc3QgZGlyTmFtZSA9IGZpbGVVUkxUb1BhdGgobmV3IFVSTCgnLicsIGltcG9ydC5tZXRhLnVybCkpO1xuICBjb25zdCByZXBvUGF0aDogc3RyaW5nID0gZmluZEZpbGVVcC5zeW5jKG1vZHVsZVBhdGgsIGRpck5hbWUpO1xuXG4gIGlmKHJlcG9QYXRoICYmIGV4aXN0c1N5bmMocmVwb1BhdGgpKSB7XG4gICAgcmV0dXJuIHJlcG9QYXRoO1xuICB9XG5cbiAgY29uc3QgbG9jYWxQYXRoOiBzdHJpbmcgPSBmaW5kRmlsZVVwLnN5bmMobW9kdWxlUGF0aCwgJy4vJywgMTApIHx8IGAuLyR7bW9kdWxlUGF0aH1gO1xuICByZXR1cm4gbG9jYWxQYXRoO1xufTsiXSwKICAibWFwcGluZ3MiOiAiQUFJQSxPQUFPLGdCQUFnQjtBQUN2QixTQUFRLGtCQUFpQjtBQUN6QixTQUFRLFdBQVcsbUJBQWtCO0FBQ3JDLFNBQVEscUJBQW9CO0FBR3JCLE1BQU0sbUJBQW1CLENBQUMsVUFBa0IsVUFBa0IsTUFBTSxTQUFpQixNQUFjO0FBQ3hHLFFBQU0sWUFBb0I7QUFFMUIsTUFBRyxRQUFRO0FBQ1QsVUFBTSxXQUFtQixXQUFXLEtBQUssVUFBVSxTQUFTLFNBQVM7QUFDckUsVUFBTSxlQUF1QixNQUFNLE1BQU0sRUFBRSxLQUFLLElBQUksRUFBRSxJQUFJLE1BQU0sS0FBSyxFQUFFLEtBQUssRUFBRTtBQUM5RSxXQUFPLFlBQVksVUFBVSxZQUFZO0FBQUEsRUFDM0M7QUFFQSxTQUFPLFdBQVcsS0FBSyxVQUFVLFNBQVMsU0FBUztBQUNyRDtBQUVPLE1BQU0sbUJBQW1CLENBQUMsVUFBa0IsVUFBa0IsTUFBTSxTQUFpQixNQUFjO0FBQ3hHLFFBQU0sWUFBb0I7QUFFMUIsTUFBRyxRQUFRO0FBQ1QsVUFBTSxXQUFtQixXQUFXLEtBQUssZ0JBQWdCLFlBQVksU0FBUyxTQUFTO0FBQ3ZGLFVBQU0sZUFBdUIsTUFBTSxNQUFNLEVBQUUsS0FBSyxJQUFJLEVBQUUsSUFBSSxNQUFNLEtBQUssRUFBRSxLQUFLLEVBQUU7QUFDOUUsV0FBTyxZQUFZLFVBQVUsWUFBWTtBQUFBLEVBQzNDO0FBRUEsU0FBTyxXQUFXLEtBQUssZ0JBQWdCLFlBQVksU0FBUyxTQUFTO0FBQ3ZFO0FBR08sTUFBTSxjQUFjLENBQUMsZUFBK0I7QUFDekQsUUFBTSxhQUFxQixnQkFBZ0I7QUFDM0MsUUFBTSxVQUFVLGNBQWMsSUFBSSxJQUFJLEtBQUssWUFBWSxHQUFHLENBQUM7QUFDM0QsUUFBTSxXQUFtQixXQUFXLEtBQUssWUFBWSxPQUFPO0FBRTVELE1BQUcsWUFBWSxXQUFXLFFBQVEsR0FBRztBQUNuQyxXQUFPO0FBQUEsRUFDVDtBQUVBLFFBQU0sWUFBb0IsV0FBVyxLQUFLLFlBQVksTUFBTSxFQUFFLEtBQUssS0FBSztBQUN4RSxTQUFPO0FBQ1Q7IiwKICAibmFtZXMiOiBbXQp9Cg==
38
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL3V0aWxzL2ZpbGUudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDIyLVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5pbXBvcnQgZmluZEZpbGVVcCBmcm9tICdmaW5kLWZpbGUtdXAnO1xuaW1wb3J0IHtleGlzdHNTeW5jfSBmcm9tICdmcyc7XG5pbXBvcnQge3Jlc29sdmUgYXMgcGF0aFJlc29sdmV9IGZyb20gJ3BhdGgnO1xuaW1wb3J0IHtVUkx9IGZyb20gJ3VybCc7XG5cbi8vIEdldCBmaWxlIHBhdGhzIHJlbGF0aXZlIHRvIExleFxuZXhwb3J0IGNvbnN0IHJlbGF0aXZlRmlsZVBhdGggPSAoZmlsZW5hbWU6IHN0cmluZywgZGlyUGF0aDogc3RyaW5nID0gJy4vJywgYmFja1VwOiBudW1iZXIgPSAwKTogc3RyaW5nID0+IHtcbiAgY29uc3QgbmVzdERlcHRoOiBudW1iZXIgPSAxMDtcblxuICBpZihiYWNrVXApIHtcbiAgICBjb25zdCBmaWxlUGF0aDogc3RyaW5nID0gZmluZEZpbGVVcC5zeW5jKGZpbGVuYW1lLCBkaXJQYXRoLCBuZXN0RGVwdGgpO1xuICAgIGNvbnN0IHByZXZpb3VzUGF0aDogc3RyaW5nID0gQXJyYXkoYmFja1VwKS5maWxsKG51bGwpLm1hcCgoKSA9PiAnLi4vJykuam9pbignJyk7XG4gICAgcmV0dXJuIHBhdGhSZXNvbHZlKGZpbGVQYXRoLCBwcmV2aW91c1BhdGgpO1xuICB9XG5cbiAgcmV0dXJuIGZpbmRGaWxlVXAuc3luYyhmaWxlbmFtZSwgZGlyUGF0aCwgbmVzdERlcHRoKTtcbn07XG5cbmV4cG9ydCBjb25zdCByZWxhdGl2ZU5vZGVQYXRoID0gKGZpbGVuYW1lOiBzdHJpbmcsIGRpclBhdGg6IHN0cmluZyA9ICcuLycsIGJhY2tVcDogbnVtYmVyID0gMCk6IHN0cmluZyA9PiB7XG4gIGNvbnN0IG5lc3REZXB0aDogbnVtYmVyID0gMTA7XG5cbiAgaWYoYmFja1VwKSB7XG4gICAgY29uc3QgZmlsZVBhdGg6IHN0cmluZyA9IGZpbmRGaWxlVXAuc3luYyhgbm9kZV9tb2R1bGVzLyR7ZmlsZW5hbWV9YCwgZGlyUGF0aCwgbmVzdERlcHRoKTtcbiAgICBjb25zdCBwcmV2aW91c1BhdGg6IHN0cmluZyA9IEFycmF5KG5lc3REZXB0aCkuZmlsbChudWxsKS5tYXAoKCkgPT4gJy4uLycpLmpvaW4oJycpO1xuICAgIHJldHVybiBwYXRoUmVzb2x2ZShmaWxlUGF0aCwgcHJldmlvdXNQYXRoKTtcbiAgfVxuXG4gIHJldHVybiBmaW5kRmlsZVVwLnN5bmMoYG5vZGVfbW9kdWxlcy8ke2ZpbGVuYW1lfWAsIGRpclBhdGgsIG5lc3REZXB0aCk7XG59O1xuXG4vLyBHZXQgZmlsZSBwYXRocyByZWxhdGl2ZSB0byBMZXhcbmV4cG9ydCBjb25zdCBnZXROb2RlUGF0aCA9IChtb2R1bGVOYW1lOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICBjb25zdCBkaXJOYW1lID0gbmV3IFVSTCgnLicsIGltcG9ydC5tZXRhLnVybCkucGF0aG5hbWU7XG4gIGNvbnN0IG1vZHVsZVBhdGg6IHN0cmluZyA9IGBub2RlX21vZHVsZXMvJHttb2R1bGVOYW1lfWA7XG4gIGNvbnN0IHJlcG9QYXRoOiBzdHJpbmcgPSBmaW5kRmlsZVVwLnN5bmMobW9kdWxlUGF0aCwgZGlyTmFtZSk7XG5cbiAgaWYocmVwb1BhdGggJiYgZXhpc3RzU3luYyhyZXBvUGF0aCkpIHtcbiAgICByZXR1cm4gcmVwb1BhdGg7XG4gIH1cblxuICBjb25zdCBsb2NhbFBhdGg6IHN0cmluZyA9IGZpbmRGaWxlVXAuc3luYyhtb2R1bGVQYXRoLCAnLi8nLCAxMCkgfHwgYC4vJHttb2R1bGVQYXRofWA7XG4gIHJldHVybiBsb2NhbFBhdGg7XG59O1xuIl0sCiAgIm1hcHBpbmdzIjogIkFBSUEsT0FBTyxnQkFBZ0I7QUFDdkIsU0FBUSxrQkFBaUI7QUFDekIsU0FBUSxXQUFXLG1CQUFrQjtBQUNyQyxTQUFRLFdBQVU7QUFHWCxNQUFNLG1CQUFtQixDQUFDLFVBQWtCLFVBQWtCLE1BQU0sU0FBaUIsTUFBYztBQUN4RyxRQUFNLFlBQW9CO0FBRTFCLE1BQUcsUUFBUTtBQUNULFVBQU0sV0FBbUIsV0FBVyxLQUFLLFVBQVUsU0FBUyxTQUFTO0FBQ3JFLFVBQU0sZUFBdUIsTUFBTSxNQUFNLEVBQUUsS0FBSyxJQUFJLEVBQUUsSUFBSSxNQUFNLEtBQUssRUFBRSxLQUFLLEVBQUU7QUFDOUUsV0FBTyxZQUFZLFVBQVUsWUFBWTtBQUFBLEVBQzNDO0FBRUEsU0FBTyxXQUFXLEtBQUssVUFBVSxTQUFTLFNBQVM7QUFDckQ7QUFFTyxNQUFNLG1CQUFtQixDQUFDLFVBQWtCLFVBQWtCLE1BQU0sU0FBaUIsTUFBYztBQUN4RyxRQUFNLFlBQW9CO0FBRTFCLE1BQUcsUUFBUTtBQUNULFVBQU0sV0FBbUIsV0FBVyxLQUFLLGdCQUFnQixRQUFRLElBQUksU0FBUyxTQUFTO0FBQ3ZGLFVBQU0sZUFBdUIsTUFBTSxTQUFTLEVBQUUsS0FBSyxJQUFJLEVBQUUsSUFBSSxNQUFNLEtBQUssRUFBRSxLQUFLLEVBQUU7QUFDakYsV0FBTyxZQUFZLFVBQVUsWUFBWTtBQUFBLEVBQzNDO0FBRUEsU0FBTyxXQUFXLEtBQUssZ0JBQWdCLFFBQVEsSUFBSSxTQUFTLFNBQVM7QUFDdkU7QUFHTyxNQUFNLGNBQWMsQ0FBQyxlQUErQjtBQUN6RCxRQUFNLFVBQVUsSUFBSSxJQUFJLEtBQUssWUFBWSxHQUFHLEVBQUU7QUFDOUMsUUFBTSxhQUFxQixnQkFBZ0IsVUFBVTtBQUNyRCxRQUFNLFdBQW1CLFdBQVcsS0FBSyxZQUFZLE9BQU87QUFFNUQsTUFBRyxZQUFZLFdBQVcsUUFBUSxHQUFHO0FBQ25DLFdBQU87QUFBQSxFQUNUO0FBRUEsUUFBTSxZQUFvQixXQUFXLEtBQUssWUFBWSxNQUFNLEVBQUUsS0FBSyxLQUFLLFVBQVU7QUFDbEYsU0FBTztBQUNUOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Copyright (c) 2018-Present, Nitrogen Labs, Inc.
3
+ * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
4
+ */
5
+ const base = require('../../jest.config.base');
6
+ const pack = require('./package.json');
7
+
8
+ module.exports = {
9
+ ...base,
10
+ collectCoverage: true,
11
+ coveragePathIgnorePatterns: [
12
+ '/node_modules/',
13
+ '(tests/.*.mock).(jsx?|tsx?)$'
14
+ ],
15
+ coverageReporters: ['html', 'text'],
16
+ coverageThreshold: {
17
+ global: {
18
+ branches: 80,
19
+ functions: 90,
20
+ lines: 80,
21
+ statements: 80
22
+ }
23
+ },
24
+ displayName: pack.name,
25
+ extensionsToTreatAsEsm: ['.ts'],
26
+ moduleFileExtensions: ['js', 'ts', 'tsx', 'json'],
27
+ moduleNameMapper: {
28
+ '^(\\.{1,2}/.*)\\.js$': '$1'
29
+ },
30
+ rootDir: './',
31
+ setupFiles: ['<rootDir>/jest.setup.ts'],
32
+ testMatch: ['<rootDir>/**/*.test.ts*'],
33
+ transform: {
34
+ '\\.[jt]sx?$': [
35
+ 'ts-jest',
36
+ {
37
+ astTransformers: {
38
+ before: [
39
+ {
40
+ path: '../../node_modules/ts-jest-mock-import-meta',
41
+ options: {metaObjectReplacement: {url: 'https://www.url.com'}}
42
+ }
43
+ ]
44
+ },
45
+ diagnostics: {
46
+ ignoreCodes: [1343]
47
+ },
48
+ useESM: true
49
+ }
50
+ ]
51
+ },
52
+ transformIgnorePatterns: [
53
+ '!/node_modules/(?!execa)'
54
+ ]
55
+ };
@@ -1,21 +1,20 @@
1
- const {resolve} = require('path');
1
+ import {resolve as pathResolve} from 'path';
2
+ import {URL} from 'url';
2
3
 
3
- const {getNodePath} = require('./dist/utils/file');
4
+ import {getNodePath} from './dist/utils/file.js';
4
5
 
5
6
  const rootDir = process.cwd();
6
7
  const {jest, sourceFullPath, targetEnvironment, useTypescript} = JSON.parse(process.env.LEX_CONFIG || '{}');
7
8
 
8
9
  // Polyfill path
9
- const nodePath = resolve(__dirname, './node_modules');
10
- const setupFiles = [
11
- getNodePath('core-js'),
12
- getNodePath('regenerator-runtime/runtime.js')
13
- ];
10
+ const dirName = new URL('.', import.meta.url).pathname;
11
+ const nodePath = pathResolve(dirName, './node_modules');
12
+
14
13
  let testEnvironment = 'node';
15
14
  let testEnvironmentOptions = {};
16
15
 
17
16
  if(targetEnvironment === 'web') {
18
- testEnvironment = 'jsdom';
17
+ testEnvironment = 'jsdom';
19
18
  testEnvironmentOptions = {
20
19
  url: 'http://localhost'
21
20
  };
@@ -31,7 +30,7 @@ if(useTypescript) {
31
30
  transformIgnorePatterns = ['[/\\\\]node_modules[/\\\\].+\\.(js|ts|tsx)$'];
32
31
  }
33
32
 
34
- module.exports = {
33
+ export default {
35
34
  collectCoverage: true,
36
35
  coverageDirectory: '<rootDir>/coverage',
37
36
  coveragePathIgnorePatterns: ['/node_modules/', '/dist', '/lib', '__snapshots__', '.d.ts'],
@@ -41,16 +40,20 @@ module.exports = {
41
40
  nodePath
42
41
  ],
43
42
  moduleFileExtensions,
44
- moduleNameMapper: {'\\.(css|jpg|png|svg|txt)$': resolve(__dirname, './emptyModule')},
43
+ moduleNameMapper: {'\\.(css|jpg|png|svg|txt)$': pathResolve(dirName, './emptyModule')},
45
44
  modulePaths: [
46
45
  rootDir,
47
46
  `${rootDir}/node_modules`,
48
47
  nodePath,
49
48
  sourceFullPath
50
49
  ],
51
- resolver: resolve(__dirname, './dist/resolver.js'),
50
+ // preset: 'ts-jest/presets/js-with-ts-esm',
51
+ resolver: pathResolve(dirName, './resolver.cjs'),
52
52
  rootDir,
53
- setupFiles,
53
+ setupFiles: [
54
+ getNodePath('core-js'),
55
+ getNodePath('regenerator-runtime/runtime.js')
56
+ ],
54
57
  testEnvironment,
55
58
  testEnvironmentOptions,
56
59
  testPathIgnorePatterns: [
@@ -60,24 +63,20 @@ module.exports = {
60
63
  testRegex,
61
64
  testRunner: getNodePath('jest-circus/runner.js'),
62
65
  transform: {
63
- '^.+\\.tsx?$': [
64
- getNodePath('@nlabs/esbuild-jest/dist/index.js'),
66
+ '\\.[jt]sx?$': [
67
+ 'ts-jest',
65
68
  {
66
- loaders: {
67
- '.js': 'js',
68
- '.ts': 'ts',
69
- '.test.ts': 'ts',
70
- '.spec.ts': 'ts',
71
- '.tsx': 'tsx',
72
- '.test.tsx': 'tsx',
73
- '.spec.tsx': 'tsx'
69
+ diagnostics: {
70
+ ignoreCodes: [1343]
74
71
  },
75
- presets: [
76
- 'react',
77
- 'react-native',
78
- 'typescript'
79
- ],
80
- sourcemap: true
72
+ astTransformers: {
73
+ before: [
74
+ {
75
+ path: getNodePath('ts-jest-mock-import-meta'),
76
+ options: {metaObjectReplacement: {url: 'https://www.url.com'}}
77
+ }
78
+ ]
79
+ }
81
80
  }
82
81
  ],
83
82
  '\\.(gql|graphql)$': 'jest-transform-graphql'
package/jest.setup.ts ADDED
@@ -0,0 +1,3 @@
1
+ // const execaMock = require('@nlabs/execa-mock');
2
+
3
+ // jest.mock('execa', execaMock);
package/package.json CHANGED
@@ -1,12 +1,10 @@
1
1
  {
2
2
  "name": "@nlabs/lex",
3
- "version": "1.39.1",
3
+ "version": "1.41.0",
4
4
  "description": "Lex",
5
5
  "license": "MIT",
6
6
  "type": "module",
7
- "bin": {
8
- "lex": "./dist/lex.js"
9
- },
7
+ "bin": "./dist/lex.js",
10
8
  "keywords": [
11
9
  "arkhamjs",
12
10
  "lex",
@@ -27,128 +25,135 @@
27
25
  "url": "https://github.com/nitrogenlabs/lex/issues"
28
26
  },
29
27
  "engines": {
30
- "node": ">=18"
28
+ "node": ">=20"
31
29
  },
32
- "browserslist": [
33
- "last 5 version",
34
- "ie 11"
35
- ],
36
30
  "scripts": {
37
- "build": "NODE_ENV=production && rm -rf dist && esbuild src/**/**.ts* src/**.ts* --platform=node --outdir=./dist --sourcemap=inline --target=esnext --format=esm",
31
+ "build": "NODE_ENV=production && rm -rf dist && esbuild ./src/**/**.ts* ./src/**.ts* --platform=node --outdir=./dist --sourcemap=inline --target=esnext --format=esm --packages=external",
38
32
  "clean": "rm -rf dist node_modules package-lock.json *.log coverage",
39
33
  "compile": "tsc -p tsconfig.build.json",
40
34
  "env": "LEX_CONFIG='{\"useTypescript\":true}'",
41
35
  "lint": "eslint ./src --ext .ts,.tsx",
42
- "prepublishOnly": "yarn build",
36
+ "prepublishOnly": "npm run build",
43
37
  "publish:major": "npm version major && npm publish",
44
38
  "publish:minor": "npm version minor && npm publish",
45
39
  "publish:patch": "npm version patch && npm publish",
46
40
  "reset": "rm -rf node_modules packages-lock.json",
47
- "test": "yarn lint && NODE_ENV=test && yarn env && jest",
48
- "update": "yarn upgradeInteractive --latest",
49
- "watch": "NODE_ENV=development rm -rf dist && yarn compile -w"
41
+ "test": "NODE_ENV=test && npm run lint && npm run env && jest",
42
+ "update": "npm-check-updates -i",
43
+ "watch": "NODE_ENV=development rm -rf dist && npm run compile -w"
50
44
  },
51
45
  "dependencies": {
46
+ "@babel/core": "^7.23.6",
47
+ "@babel/preset-env": "^7.23.6",
48
+ "@babel/preset-typescript": "7.23.3",
52
49
  "@luckycatfactory/esbuild-graphql-loader": "^3.8.1",
53
- "@nlabs/esbuild-jest": "^1.37.8",
50
+ "@nlabs/execa-mock": "^1.39.1",
54
51
  "@nlabs/gothamjs": "^0.8.2",
55
52
  "@nlabs/webpack-plugin-static-site": "^0.1.1",
56
- "acorn": "^8.8.2",
53
+ "acorn": "^8.11.2",
57
54
  "acorn-dynamic-import": "^4.0.0",
58
- "assert": "^2.0.0",
59
- "boxen": "7.0.2",
60
- "caniuse-lite": "1.0.30001469",
61
- "chalk": "^5.2.0",
62
- "commander": "^10.0.0",
63
- "compare-versions": "^6.0.0-rc.1",
55
+ "assert": "^2.1.0",
56
+ "autoprefixer": "^10.4.16",
57
+ "babel-jest": "^29.7.0",
58
+ "boxen": "7.1.1",
59
+ "caniuse-lite": "1.0.30001572",
60
+ "chalk": "^5.3.0",
61
+ "commander": "^11.1.0",
62
+ "compare-versions": "^6.1.0",
64
63
  "compression-webpack-plugin": "^10.0.0",
65
64
  "config-webpack-plugin": "^1.1.0",
66
65
  "copy-webpack-plugin": "^11.0.0",
67
- "core-js": "^3.29.1",
66
+ "core-js": "^3.34.0",
68
67
  "crypto-browserify": "^3.12.0",
69
- "css-loader": "^6.7.3",
70
- "cssnano": "^5.1.15",
68
+ "css-loader": "^6.8.1",
69
+ "cssnano": "^6.0.2",
71
70
  "dotenv-webpack": "^8.0.1",
72
71
  "download-npm-package": "^3.1.12",
73
- "esbuild": "^0.17.12",
74
- "esbuild-loader": "^3.0.1",
75
- "execa": "7.1.1",
72
+ "esbuild": "0.19.10",
73
+ "esbuild-loader": "4.0.2",
74
+ "execa": "8.0.1",
76
75
  "exports-loader": "^4.0.0",
77
- "favicons-webpack-plugin": "^6.0.0",
76
+ "favicons-webpack-plugin": "^6.0.1",
78
77
  "file-loader": "^6.2.0",
79
78
  "find-file-up": "^2.0.1",
80
- "glob": "^9.3.1",
81
- "graphql": "^16.6.0",
79
+ "glob": "^10.3.10",
80
+ "graphql": "^16.8.1",
82
81
  "graphql-tag": "^2.12.6",
83
82
  "html-loader": "^4.2.0",
84
- "html-webpack-plugin": "^5.5.0",
83
+ "html-webpack-plugin": "^5.6.0",
85
84
  "https-browserify": "^1.0.0",
86
85
  "imports-loader": "^4.0.1",
87
- "jest": "^29.5.0",
88
- "jest-circus": "^29.5.0",
89
- "jest-cli": "^29.5.0",
90
- "jest-environment-jsdom": "^29.5.0",
91
- "jest-transform-graphql": "^2.1.0",
92
- "json-d-ts": "^1.0.1",
86
+ "jest": "29.7.0",
87
+ "jest-circus": "29.7.0",
88
+ "jest-cli": "29.7.0",
89
+ "jest-environment-jsdom": "29.7.0",
90
+ "jest-transform-graphql": "2.1.0",
91
+ "json-d-ts": "1.0.1",
93
92
  "latest-version": "7.0.0",
94
93
  "lodash": "^4.17.21",
95
- "luxon": "^3.3.0",
94
+ "luxon": "^3.4.4",
96
95
  "net": "^1.0.2",
97
- "npm-check-updates": "^16.7.13",
98
- "ora": "6.2.0",
96
+ "ora": "8.0.1",
99
97
  "os-browserify": "^0.3.0",
100
98
  "path-browserify": "^1.0.1",
101
- "postcss-browser-reporter": "^0.6.0",
102
- "postcss-cli": "^10.1.0",
103
- "postcss-custom-properties": "^13.1.4",
99
+ "postcss-browser-reporter": "^0.7.0",
100
+ "postcss-cli": "^11.0.0",
101
+ "postcss-custom-properties": "^13.3.3",
104
102
  "postcss-flexbugs-fixes": "^5.0.2",
105
103
  "postcss-for": "^2.1.1",
106
104
  "postcss-hash": "^3.0.0",
107
105
  "postcss-import": "15.1.0",
108
- "postcss-loader": "^7.1.0",
109
- "postcss-nesting": "^11.2.1",
106
+ "postcss-loader": "^7.3.4",
107
+ "postcss-nesting": "^12.0.2",
110
108
  "postcss-percentage": "^0.0.0",
111
- "postcss-preset-env": "^8.0.1",
109
+ "postcss-preset-env": "^9.3.0",
112
110
  "postcss-simple-vars": "^7.0.1",
113
- "postcss-svgo": "5.1.0",
111
+ "postcss-svgo": "6.0.1",
114
112
  "postcss-url": "10.1.3",
115
113
  "process": "^0.11.10",
116
- "react": "^18.0.0",
117
- "react-dom": "^18.0.0",
118
- "regenerator-runtime": "^0.13.11",
119
- "resolve": "^1.22.0",
120
- "rimraf": "^4.4.0",
121
- "semver": "^7.3.8",
122
- "source-map-loader": "^4.0.1",
114
+ "react": "^18.2.0",
115
+ "react-dom": "^18.2.0",
116
+ "regenerator-runtime": "^0.14.1",
117
+ "resolve": "^1.22.8",
118
+ "rimraf": "^5.0.5",
119
+ "semver": "^7.5.4",
120
+ "source-map-loader": "^4.0.2",
123
121
  "source-map-support": "^0.5.21",
124
122
  "speed-measure-webpack-plugin": "^1.5.0",
125
123
  "static-site-generator-webpack-plugin": "^3.4.2",
126
124
  "stream-browserify": "^3.0.0",
127
125
  "stream-http": "^3.2.0",
128
- "style-loader": "^3.3.2",
129
- "svg-spritemap-webpack-plugin": "^4.4.0",
130
- "svgo": "3.0.2",
126
+ "style-loader": "^3.3.3",
127
+ "svg-spritemap-webpack-plugin": "^4.5.0",
128
+ "svgo": "3.1.0",
131
129
  "tls": "^0.0.1",
132
- "typescript": "^5.0.2",
130
+ "ts-jest": "29.1.1",
131
+ "ts-node": "^10.9.2",
132
+ "typescript": "5.3.3",
133
133
  "url-loader": "^4.1.1",
134
134
  "util": "^0.12.5",
135
- "webpack": "5.76.3",
136
- "webpack-bundle-analyzer": "^4.8.0",
137
- "webpack-cli": "^5.0.1",
138
- "webpack-merge": "^5.8.0",
135
+ "webpack": "5.89.0",
136
+ "webpack-bundle-analyzer": "^4.10.1",
137
+ "webpack-cli": "^5.1.4",
138
+ "webpack-merge": "^5.10.0",
139
139
  "webpack-nano": "^1.1.1",
140
140
  "webpack-plugin-serve": "^1.6.0"
141
141
  },
142
142
  "devDependencies": {
143
- "@nlabs/execa-mock": "^1.37.8",
144
- "@types/jest": "^29.5.0",
145
- "@types/luxon": "^3.2.0",
146
- "@types/node": "^18.15.5",
143
+ "@babel/plugin-transform-runtime": "^7.23.6",
144
+ "@babel/preset-react": "^7.23.3",
145
+ "@nlabs/execa-mock": "^1.39.1",
146
+ "@types/jest": "^29.5.11",
147
+ "@types/luxon": "^3.3.7",
148
+ "@types/node": "^20.10.5",
147
149
  "@types/ora": "^3.2.0",
148
- "@types/react": "^18.0.28",
149
- "@types/webpack": "^5.28.0",
150
- "eslint": "^8.36.0",
151
- "eslint-config-styleguidejs": "^3.2.1"
150
+ "@types/react": "^18.2.45",
151
+ "@types/webpack": "^5.28.5",
152
+ "babel-plugin-transform-import-meta": "^2.2.1",
153
+ "babel-plugin-transform-vite-meta-env": "^1.0.3",
154
+ "eslint": "^8.56.0",
155
+ "eslint-config-styleguidejs": "^3.2.1",
156
+ "npm-check-updates": "^16.14.12"
152
157
  },
153
158
  "gitHead": "0f5fb22fc0f0ab1abab5adf62afed24c7c87e4a8"
154
159
  }
package/resolver.cjs ADDED
@@ -0,0 +1,86 @@
1
+ /**
2
+ * Copyright (c) 2018-Present, Nitrogen Labs, Inc.
3
+ * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
4
+ */
5
+ const {existsSync} = require('fs');
6
+ const {extname: pathExtname, resolve: pathResolve} = require('path');
7
+ const resolveSync = require('resolve/sync');
8
+
9
+ const getFullPath = (basedir, name, extensions) => {
10
+ let fileName = name;
11
+
12
+ extensions.some((ext) => {
13
+ if(fileName !== '..') {
14
+ const fullPath = pathResolve(`${basedir}/${fileName}${ext}`);
15
+
16
+ if(existsSync(fullPath)) {
17
+ fileName = fullPath;
18
+ return true;
19
+ }
20
+ }
21
+
22
+ if(fileName !== 'index') {
23
+ const indexFile = pathResolve(`${basedir}/${fileName}/index${ext}`);
24
+
25
+ if(existsSync(indexFile)) {
26
+ fileName = indexFile;
27
+ return true;
28
+ }
29
+ }
30
+
31
+ return false;
32
+ });
33
+
34
+ return fileName;
35
+ };
36
+
37
+ module.exports = (value, options) => {
38
+ let fileName = value;
39
+
40
+ if(fileName === '') {
41
+ return null;
42
+ }
43
+
44
+ const isSequencer = fileName.startsWith('jest-sequencer-');
45
+
46
+ if(isSequencer) {
47
+ fileName = fileName.replace('jest-sequencer-', '');
48
+ }
49
+
50
+ const {basedir, extensions = ['.js', '.ts']} = options;
51
+ const existingExt = pathExtname(fileName) || '';
52
+ const hasExtension = existingExt !== '' && extensions.includes(existingExt);
53
+ const isAbsolute = fileName.indexOf('/') === 0;
54
+
55
+ if(isAbsolute) {
56
+ if(hasExtension) {
57
+ return existsSync(fileName) ? fileName : null;
58
+ }
59
+
60
+ return getFullPath(fileName, 'index', extensions);
61
+ }
62
+
63
+ if(fileName === '..') {
64
+ return getFullPath(basedir, '..', extensions);
65
+ }
66
+
67
+ const hasBase = fileName.indexOf('./') >= 0 || fileName.indexOf('../') >= 0;
68
+
69
+ if(hasBase) {
70
+ if(hasExtension) {
71
+ return pathResolve(`${basedir}/${fileName}`);
72
+ }
73
+
74
+ return getFullPath(basedir, fileName, extensions);
75
+ }
76
+
77
+ try {
78
+ return resolveSync(fileName, {basedir: `${__dirname}/../`, extensions});
79
+ } catch(error) {
80
+ try {
81
+ return resolveSync(fileName, {basedir: process.cwd(), extensions});
82
+ } catch(error) {
83
+ return null;
84
+ }
85
+ }
86
+ };
@@ -0,0 +1,6 @@
1
+ const fnc = () => {
2
+ const now = new Date();
3
+ return now.getFullYear();
4
+ };
5
+
6
+ export default fnc;
@@ -0,0 +1,6 @@
1
+ const fnc = (): number => {
2
+ const now: Date = new Date();
3
+ return now.getFullYear();
4
+ };
5
+
6
+ export default fnc;
@@ -6,7 +6,7 @@
6
6
  "lib": [
7
7
  "es2020"
8
8
  ],
9
- "module": "commonjs",
9
+ "module": "esnext",
10
10
  "outDir": "./dist",
11
11
  "skipLibCheck": true,
12
12
  "target": "es2020"
package/tsconfig.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "./dist",
5
5
  "./node_modules"
6
6
  ],
7
- "extends": "../../tsconfig.json",
7
+ "extends": "../../tsconfig.base.json",
8
8
  "include": [
9
9
  "./src"
10
10
  ]