diff --git a/lib/src/commands/create/templates/very_good_dart_cli/very_good_dart_cli_bundle.dart b/lib/src/commands/create/templates/very_good_dart_cli/very_good_dart_cli_bundle.dart index cdc18294a..b65615999 100644 --- a/lib/src/commands/create/templates/very_good_dart_cli/very_good_dart_cli_bundle.dart +++ b/lib/src/commands/create/templates/very_good_dart_cli/very_good_dart_cli_bundle.dart @@ -44,13 +44,13 @@ final veryGoodDartCliBundle = MasonBundle.fromJson({ { "path": "lib/src/command_runner.dart", "data": - "Ly8gQ29weXJpZ2h0IChjKSB7e2N1cnJlbnRfeWVhcn19LCBWZXJ5IEdvb2QgVmVudHVyZXMKLy8gaHR0cHM6Ly92ZXJ5Z29vZC52ZW50dXJlcwovLwovLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUKLy8gbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIG9yIGF0Ci8vIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlULgoKaW1wb3J0ICdwYWNrYWdlOmFyZ3MvYXJncy5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOmFyZ3MvY29tbWFuZF9ydW5uZXIuZGFydCc7CmltcG9ydCAncGFja2FnZTptYXNvbl9sb2dnZXIvbWFzb25fbG9nZ2VyLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6e3twcm9qZWN0X25hbWUuc25ha2VDYXNlKCl9fS9zcmMvY29tbWFuZHMvY29tbWFuZHMuZGFydCc7CmltcG9ydCAncGFja2FnZTp7e3Byb2plY3RfbmFtZS5zbmFrZUNhc2UoKX19L3NyYy92ZXJzaW9uLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6cHViX3VwZGF0ZXIvcHViX3VwZGF0ZXIuZGFydCc7Cgpjb25zdCBleGVjdXRhYmxlTmFtZSA9ICd7e2V4ZWN1dGFibGVfbmFtZS5zbmFrZUNhc2UoKX19JzsKY29uc3QgcGFja2FnZU5hbWUgPSAne3twcm9qZWN0X25hbWUuc25ha2VDYXNlKCl9fSc7CmNvbnN0IGRlc2NyaXB0aW9uID0gJ3t7ZGVzY3JpcHRpb259fSc7CgovLy8ge0B0ZW1wbGF0ZSB7e3Byb2plY3RfbmFtZS5zbmFrZUNhc2UoKX19X2NvbW1hbmRfcnVubmVyfQovLy8gQSBbQ29tbWFuZFJ1bm5lcl0gZm9yIHRoZSBDTEkuCi8vLwovLy8gYGBgCi8vLyAkIHt7ZXhlY3V0YWJsZV9uYW1lLnNuYWtlQ2FzZSgpfX0gLS12ZXJzaW9uCi8vLyBgYGAKLy8vIHtAZW5kdGVtcGxhdGV9CmNsYXNzIHt7cHJvamVjdF9uYW1lLnBhc2NhbENhc2UoKX19Q29tbWFuZFJ1bm5lciBleHRlbmRzIENvbW1hbmRSdW5uZXI8aW50PiB7CiAgLy8vIHtAbWFjcm8ge3twcm9qZWN0X25hbWUuc25ha2VDYXNlKCl9fV9jb21tYW5kX3J1bm5lcn0KICB7e3Byb2plY3RfbmFtZS5wYXNjYWxDYXNlKCl9fUNvbW1hbmRSdW5uZXIoewogICAgTG9nZ2VyPyBsb2dnZXIsCiAgICBQdWJVcGRhdGVyPyBwdWJVcGRhdGVyLAogIH0pICA6IF9sb2dnZXIgPSBsb2dnZXIgPz8gTG9nZ2VyKCksCiAgICAgICAgX3B1YlVwZGF0ZXIgPSBwdWJVcGRhdGVyID8/IFB1YlVwZGF0ZXIoKSwKICAgICAgICBzdXBlcihleGVjdXRhYmxlTmFtZSwgZGVzY3JpcHRpb24pIHsKICAgIC8vIEFkZCByb290IG9wdGlvbnMgYW5kIGZsYWdzCiAgICBhcmdQYXJzZXIuYWRkRmxhZygKICAgICAgJ3ZlcnNpb24nLAogICAgICBhYmJyOiAndicsCiAgICAgIG5lZ2F0YWJsZTogZmFsc2UsCiAgICAgIGhlbHA6ICdQcmludCB0aGUgY3VycmVudCB2ZXJzaW9uLicsCiAgICApOwoKICAgIC8vIEFkZCBzdWIgY29tbWFuZHMKICAgIGFkZENvbW1hbmQoU2FtcGxlQ29tbWFuZChsb2dnZXI6IGxvZ2dlcikpOwogIH0KCiAgZmluYWwgTG9nZ2VyIF9sb2dnZXI7CiAgZmluYWwgUHViVXBkYXRlciBfcHViVXBkYXRlcjsKCiAgQG92ZXJyaWRlCiAgRnV0dXJlPGludD4gcnVuKEl0ZXJhYmxlPFN0cmluZz4gYXJncykgYXN5bmMgewogICAgdHJ5IHsKICAgICAgZmluYWwgdG9wTGV2ZWxSZXN1bHRzID0gcGFyc2UoYXJncyk7CiAgICAgIHJldHVybiBhd2FpdCBydW5Db21tYW5kKHRvcExldmVsUmVzdWx0cykgPz8gRXhpdENvZGUuc3VjY2Vzcy5jb2RlOwogICAgfSBvbiBGb3JtYXRFeGNlcHRpb24gY2F0Y2ggKGUsIHN0YWNrVHJhY2UpIHsKICAgICAgLy8gT24gZm9ybWF0IGVycm9ycywgc2hvdyB0aGUgY29tbWFuZHMgZXJyb3IgbWVzc2FnZSwgcm9vdCB1c2FnZSBhbmQKICAgICAgLy8gZXhpdCB3aXRoIGFuIGVycm9yIGNvZGUKICAgICAgX2xvZ2dlcgogICAgICAgIC4uZXJyKGUubWVzc2FnZSkKICAgICAgICAuLmVycignJHN0YWNrVHJhY2UnKQogICAgICAgIC4uaW5mbygnJykKICAgICAgICAuLmluZm8odXNhZ2UpOwogICAgICByZXR1cm4gRXhpdENvZGUudXNhZ2UuY29kZTsKICAgIH0gb24gVXNhZ2VFeGNlcHRpb24gY2F0Y2ggKGUpIHsKICAgICAgLy8gT24gdXNhZ2UgZXJyb3JzLCBzaG93IHRoZSBjb21tYW5kcyB1c2FnZSBtZXNzYWdlIGFuZAogICAgICAvLyBleGl0IHdpdGggYW4gZXJyb3IgY29kZQogICAgICBfbG9nZ2VyCiAgICAgICAgLi5lcnIoZS5tZXNzYWdlKQogICAgICAgIC4uaW5mbygnJykKICAgICAgICAuLmluZm8oZS51c2FnZSk7CiAgICAgIHJldHVybiBFeGl0Q29kZS51c2FnZS5jb2RlOwogICAgfQogIH0KCiAgQG92ZXJyaWRlCiAgRnV0dXJlPGludD8+IHJ1bkNvbW1hbmQoQXJnUmVzdWx0cyB0b3BMZXZlbFJlc3VsdHMpIGFzeW5jIHsKICAgIGZpbmFsIGludD8gZXhpdENvZGU7CiAgICBpZiAodG9wTGV2ZWxSZXN1bHRzWyd2ZXJzaW9uJ10gPT0gdHJ1ZSkgewogICAgICBfbG9nZ2VyLmluZm8ocGFja2FnZVZlcnNpb24pOwogICAgICBleGl0Q29kZSA9IEV4aXRDb2RlLnN1Y2Nlc3MuY29kZTsKICAgIH0gZWxzZSB7CiAgICAgIGV4aXRDb2RlID0gYXdhaXQgc3VwZXIucnVuQ29tbWFuZCh0b3BMZXZlbFJlc3VsdHMpOwogICAgfQogICAgYXdhaXQgX2NoZWNrRm9yVXBkYXRlcygpOwogICAgcmV0dXJuIGV4aXRDb2RlOwogIH0KCiAgLy8vIENoZWNrcyBpZiB0aGUgY3VycmVudCB2ZXJzaW9uIChzZXQgYnkgdGhlIGJ1aWxkIHJ1bm5lciBvbiB0aGUKICAvLy8gdmVyc2lvbi5kYXJ0IGZpbGUpIGlzIHRoZSBtb3N0IHJlY2VudCBvbmUuIElmIG5vdCwgc2hvdyBhIHByb21wdCB0byB0aGUKICAvLy8gdXNlci4KICBGdXR1cmU8dm9pZD4gX2NoZWNrRm9yVXBkYXRlcygpIGFzeW5jIHsKICAgIHRyeSB7CiAgICAgIGZpbmFsIGxhdGVzdFZlcnNpb24gPSBhd2FpdCBfcHViVXBkYXRlci5nZXRMYXRlc3RWZXJzaW9uKHBhY2thZ2VOYW1lKTsKICAgICAgZmluYWwgaXNVcFRvRGF0ZSA9IHBhY2thZ2VWZXJzaW9uID09IGxhdGVzdFZlcnNpb247CiAgICAgIGlmICghaXNVcFRvRGF0ZSkgewogICAgICAgIF9sb2dnZXIKICAgICAgICAgIC4uaW5mbygnJykKICAgICAgICAgIC4uaW5mbygKICAgICAgICAgICAgJycnCiR7bGlnaHRZZWxsb3cud3JhcCgnVXBkYXRlIGF2YWlsYWJsZSEnKX0gJHtsaWdodEN5YW4ud3JhcChwYWNrYWdlVmVyc2lvbil9IFx1MjE5MiAke2xpZ2h0Q3lhbi53cmFwKGxhdGVzdFZlcnNpb24pfQpSdW4gJHtsaWdodEN5YW4ud3JhcCgnZGFydCBwdWIgZ2xvYmFsIGFjdGl2YXRlIHt7cHJvamVjdF9uYW1lLnNuYWtlQ2FzZSgpfX0nKX0gdG8gdXBkYXRlJycnLAogICAgICAgICAgKTsKICAgICAgfQogICAgfSBjYXRjaCAoXykge30KICB9Cn0K", + "Ly8gQ29weXJpZ2h0IChjKSB7e2N1cnJlbnRfeWVhcn19LCBWZXJ5IEdvb2QgVmVudHVyZXMKLy8gaHR0cHM6Ly92ZXJ5Z29vZC52ZW50dXJlcwovLwovLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUKLy8gbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIG9yIGF0Ci8vIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlULgoKaW1wb3J0ICdwYWNrYWdlOmFyZ3MvYXJncy5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOmFyZ3MvY29tbWFuZF9ydW5uZXIuZGFydCc7CmltcG9ydCAncGFja2FnZTptYXNvbl9sb2dnZXIvbWFzb25fbG9nZ2VyLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6e3twcm9qZWN0X25hbWUuc25ha2VDYXNlKCl9fS9zcmMvY29tbWFuZHMvY29tbWFuZHMuZGFydCc7CmltcG9ydCAncGFja2FnZTp7e3Byb2plY3RfbmFtZS5zbmFrZUNhc2UoKX19L3NyYy92ZXJzaW9uLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6cHViX3VwZGF0ZXIvcHViX3VwZGF0ZXIuZGFydCc7Cgpjb25zdCBleGVjdXRhYmxlTmFtZSA9ICd7e2V4ZWN1dGFibGVfbmFtZS5zbmFrZUNhc2UoKX19JzsKY29uc3QgcGFja2FnZU5hbWUgPSAne3twcm9qZWN0X25hbWUuc25ha2VDYXNlKCl9fSc7CmNvbnN0IGRlc2NyaXB0aW9uID0gJ3t7ZGVzY3JpcHRpb259fSc7CgovLy8ge0B0ZW1wbGF0ZSB7e3Byb2plY3RfbmFtZS5zbmFrZUNhc2UoKX19X2NvbW1hbmRfcnVubmVyfQovLy8gQSBbQ29tbWFuZFJ1bm5lcl0gZm9yIHRoZSBDTEkuCi8vLwovLy8gYGBgCi8vLyAkIHt7ZXhlY3V0YWJsZV9uYW1lLnNuYWtlQ2FzZSgpfX0gLS12ZXJzaW9uCi8vLyBgYGAKLy8vIHtAZW5kdGVtcGxhdGV9CmNsYXNzIHt7cHJvamVjdF9uYW1lLnBhc2NhbENhc2UoKX19Q29tbWFuZFJ1bm5lciBleHRlbmRzIENvbW1hbmRSdW5uZXI8aW50PiB7CiAgLy8vIHtAbWFjcm8ge3twcm9qZWN0X25hbWUuc25ha2VDYXNlKCl9fV9jb21tYW5kX3J1bm5lcn0KICB7e3Byb2plY3RfbmFtZS5wYXNjYWxDYXNlKCl9fUNvbW1hbmRSdW5uZXIoewogICAgTG9nZ2VyPyBsb2dnZXIsCiAgICBQdWJVcGRhdGVyPyBwdWJVcGRhdGVyLAogIH0pICA6IF9sb2dnZXIgPSBsb2dnZXIgPz8gTG9nZ2VyKCksCiAgICAgICAgX3B1YlVwZGF0ZXIgPSBwdWJVcGRhdGVyID8/IFB1YlVwZGF0ZXIoKSwKICAgICAgICBzdXBlcihleGVjdXRhYmxlTmFtZSwgZGVzY3JpcHRpb24pIHsKICAgIC8vIEFkZCByb290IG9wdGlvbnMgYW5kIGZsYWdzCiAgICBhcmdQYXJzZXIuYWRkRmxhZygKICAgICAgJ3ZlcnNpb24nLAogICAgICBhYmJyOiAndicsCiAgICAgIG5lZ2F0YWJsZTogZmFsc2UsCiAgICAgIGhlbHA6ICdQcmludCB0aGUgY3VycmVudCB2ZXJzaW9uLicsCiAgICApOwoKICAgIC8vIEFkZCBzdWIgY29tbWFuZHMKICAgIGFkZENvbW1hbmQoU2FtcGxlQ29tbWFuZChsb2dnZXI6IF9sb2dnZXIpKTsKICAgIGFkZENvbW1hbmQoVXBkYXRlQ29tbWFuZChsb2dnZXI6IF9sb2dnZXIsIHB1YlVwZGF0ZXI6IF9wdWJVcGRhdGVyKSk7CiAgfQoKICBmaW5hbCBMb2dnZXIgX2xvZ2dlcjsKICBmaW5hbCBQdWJVcGRhdGVyIF9wdWJVcGRhdGVyOwoKICBAb3ZlcnJpZGUKICBGdXR1cmU8aW50PiBydW4oSXRlcmFibGU8U3RyaW5nPiBhcmdzKSBhc3luYyB7CiAgICB0cnkgewogICAgICBmaW5hbCB0b3BMZXZlbFJlc3VsdHMgPSBwYXJzZShhcmdzKTsKICAgICAgcmV0dXJuIGF3YWl0IHJ1bkNvbW1hbmQodG9wTGV2ZWxSZXN1bHRzKSA/PyBFeGl0Q29kZS5zdWNjZXNzLmNvZGU7CiAgICB9IG9uIEZvcm1hdEV4Y2VwdGlvbiBjYXRjaCAoZSwgc3RhY2tUcmFjZSkgewogICAgICAvLyBPbiBmb3JtYXQgZXJyb3JzLCBzaG93IHRoZSBjb21tYW5kcyBlcnJvciBtZXNzYWdlLCByb290IHVzYWdlIGFuZAogICAgICAvLyBleGl0IHdpdGggYW4gZXJyb3IgY29kZQogICAgICBfbG9nZ2VyCiAgICAgICAgLi5lcnIoZS5tZXNzYWdlKQogICAgICAgIC4uZXJyKCckc3RhY2tUcmFjZScpCiAgICAgICAgLi5pbmZvKCcnKQogICAgICAgIC4uaW5mbyh1c2FnZSk7CiAgICAgIHJldHVybiBFeGl0Q29kZS51c2FnZS5jb2RlOwogICAgfSBvbiBVc2FnZUV4Y2VwdGlvbiBjYXRjaCAoZSkgewogICAgICAvLyBPbiB1c2FnZSBlcnJvcnMsIHNob3cgdGhlIGNvbW1hbmRzIHVzYWdlIG1lc3NhZ2UgYW5kCiAgICAgIC8vIGV4aXQgd2l0aCBhbiBlcnJvciBjb2RlCiAgICAgIF9sb2dnZXIKICAgICAgICAuLmVycihlLm1lc3NhZ2UpCiAgICAgICAgLi5pbmZvKCcnKQogICAgICAgIC4uaW5mbyhlLnVzYWdlKTsKICAgICAgcmV0dXJuIEV4aXRDb2RlLnVzYWdlLmNvZGU7CiAgICB9CiAgfQoKICBAb3ZlcnJpZGUKICBGdXR1cmU8aW50Pz4gcnVuQ29tbWFuZChBcmdSZXN1bHRzIHRvcExldmVsUmVzdWx0cykgYXN5bmMgewogICAgZmluYWwgaW50PyBleGl0Q29kZTsKICAgIGlmICh0b3BMZXZlbFJlc3VsdHNbJ3ZlcnNpb24nXSA9PSB0cnVlKSB7CiAgICAgIF9sb2dnZXIuaW5mbyhwYWNrYWdlVmVyc2lvbik7CiAgICAgIGV4aXRDb2RlID0gRXhpdENvZGUuc3VjY2Vzcy5jb2RlOwogICAgfSBlbHNlIHsKICAgICAgZXhpdENvZGUgPSBhd2FpdCBzdXBlci5ydW5Db21tYW5kKHRvcExldmVsUmVzdWx0cyk7CiAgICB9CiAgICBhd2FpdCBfY2hlY2tGb3JVcGRhdGVzKCk7CiAgICByZXR1cm4gZXhpdENvZGU7CiAgfQoKICAvLy8gQ2hlY2tzIGlmIHRoZSBjdXJyZW50IHZlcnNpb24gKHNldCBieSB0aGUgYnVpbGQgcnVubmVyIG9uIHRoZQogIC8vLyB2ZXJzaW9uLmRhcnQgZmlsZSkgaXMgdGhlIG1vc3QgcmVjZW50IG9uZS4gSWYgbm90LCBzaG93IGEgcHJvbXB0IHRvIHRoZQogIC8vLyB1c2VyLgogIEZ1dHVyZTx2b2lkPiBfY2hlY2tGb3JVcGRhdGVzKCkgYXN5bmMgewogICAgdHJ5IHsKICAgICAgZmluYWwgbGF0ZXN0VmVyc2lvbiA9IGF3YWl0IF9wdWJVcGRhdGVyLmdldExhdGVzdFZlcnNpb24ocGFja2FnZU5hbWUpOwogICAgICBmaW5hbCBpc1VwVG9EYXRlID0gcGFja2FnZVZlcnNpb24gPT0gbGF0ZXN0VmVyc2lvbjsKICAgICAgaWYgKCFpc1VwVG9EYXRlKSB7CiAgICAgICAgX2xvZ2dlcgogICAgICAgICAgLi5pbmZvKCcnKQogICAgICAgICAgLi5pbmZvKAogICAgICAgICAgICAnJycKJHtsaWdodFllbGxvdy53cmFwKCdVcGRhdGUgYXZhaWxhYmxlIScpfSAke2xpZ2h0Q3lhbi53cmFwKHBhY2thZ2VWZXJzaW9uKX0gXHUyMTkyICR7bGlnaHRDeWFuLndyYXAobGF0ZXN0VmVyc2lvbil9ClJ1biAke2xpZ2h0Q3lhbi53cmFwKCdkYXJ0IHB1YiBnbG9iYWwgYWN0aXZhdGUge3twcm9qZWN0X25hbWUuc25ha2VDYXNlKCl9fScpfSB0byB1cGRhdGUnJycsCiAgICAgICAgICApOwogICAgICB9CiAgICB9IGNhdGNoIChfKSB7fQogIH0KfQo=", "type": "text" }, { "path": "lib/src/commands/commands.dart", "data": - "Ly8gQ29weXJpZ2h0IChjKSB7e2N1cnJlbnRfeWVhcn19LCBWZXJ5IEdvb2QgVmVudHVyZXMKLy8gaHR0cHM6Ly92ZXJ5Z29vZC52ZW50dXJlcwovLwovLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUKLy8gbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIG9yIGF0Ci8vIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlULgoKZXhwb3J0ICdzYW1wbGVfY29tbWFuZC5kYXJ0JzsK", + "Ly8gQ29weXJpZ2h0IChjKSB7e2N1cnJlbnRfeWVhcn19LCBWZXJ5IEdvb2QgVmVudHVyZXMKLy8gaHR0cHM6Ly92ZXJ5Z29vZC52ZW50dXJlcwovLwovLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUKLy8gbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIG9yIGF0Ci8vIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlULgoKZXhwb3J0ICdzYW1wbGVfY29tbWFuZC5kYXJ0JzsKZXhwb3J0ICd1cGRhdGVfY29tbWFuZC5kYXJ0JzsK", "type": "text" }, { @@ -59,6 +59,12 @@ final veryGoodDartCliBundle = MasonBundle.fromJson({ "Ly8gQ29weXJpZ2h0IChjKSB7e2N1cnJlbnRfeWVhcn19LCBWZXJ5IEdvb2QgVmVudHVyZXMKLy8gaHR0cHM6Ly92ZXJ5Z29vZC52ZW50dXJlcwovLwovLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUKLy8gbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIG9yIGF0Ci8vIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlULgoKaW1wb3J0ICdwYWNrYWdlOmFyZ3MvY29tbWFuZF9ydW5uZXIuZGFydCc7CmltcG9ydCAncGFja2FnZTptYXNvbl9sb2dnZXIvbWFzb25fbG9nZ2VyLmRhcnQnOwoKLy8vIHtAdGVtcGxhdGUgc2FtcGxlX2NvbW1hbmR9Ci8vLwovLy8gYHt7ZXhlY3V0YWJsZV9uYW1lLnNuYWtlQ2FzZSgpfX0gc2FtcGxlYAovLy8gQSBbQ29tbWFuZF0gdG8gZXhlbXBsaWZ5IGEgc3ViIGNvbW1hbmQKLy8vIHtAZW5kdGVtcGxhdGV9CmNsYXNzIFNhbXBsZUNvbW1hbmQgZXh0ZW5kcyBDb21tYW5kPGludD4gewogIC8vLyB7QG1hY3JvIHNhbXBsZV9jb21tYW5kfQogIFNhbXBsZUNvbW1hbmQoewogICAgTG9nZ2VyPyBsb2dnZXIsCiAgfSkgOiBfbG9nZ2VyID0gbG9nZ2VyID8/IExvZ2dlcigpIHsKICAgIGFyZ1BhcnNlci5hZGRGbGFnKAogICAgICAnY3lhbicsCiAgICAgIGFiYnI6ICdjJywKICAgICAgaGVscDogJ1ByaW50cyB0aGUgc2FtZSBqb2tlLCBidXQgaW4gY3lhbicsCiAgICAgIG5lZ2F0YWJsZTogZmFsc2UsCiAgICApOwogIH0KCiAgQG92ZXJyaWRlCiAgU3RyaW5nIGdldCBkZXNjcmlwdGlvbiA9PiAnQSBzYW1wbGUgc3ViIGNvbW1hbmQgdGhhdCBqdXN0IHByaW50cyBvbmUgam9rZSc7CgogIEBvdmVycmlkZQogIFN0cmluZyBnZXQgbmFtZSA9PiAnc2FtcGxlJzsKCiAgZmluYWwgTG9nZ2VyIF9sb2dnZXI7CgogIEBvdmVycmlkZQogIEZ1dHVyZTxpbnQ+IHJ1bigpIGFzeW5jIHsKICAgIHZhciBvdXRwdXQgPSAnV2hpY2ggdW5pY29ybiBoYXMgYSBjb2xkPyBUaGUgQWNob28tbmljb3JuISc7CiAgICBpZiAoYXJnUmVzdWx0cz9bJ2N5YW4nXSA9PSB0cnVlKSB7CiAgICAgIG91dHB1dCA9IGxpZ2h0Q3lhbi53cmFwKG91dHB1dCkhOwogICAgfQogICAgX2xvZ2dlci5pbmZvKG91dHB1dCk7CiAgICByZXR1cm4gRXhpdENvZGUuc3VjY2Vzcy5jb2RlOwogIH0KfQo=", "type": "text" }, + { + "path": "lib/src/commands/update_command.dart", + "data": + "Ly8gQ29weXJpZ2h0IChjKSB7e2N1cnJlbnRfeWVhcn19LCBWZXJ5IEdvb2QgVmVudHVyZXMKLy8gaHR0cHM6Ly92ZXJ5Z29vZC52ZW50dXJlcwovLwovLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUKLy8gbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIG9yIGF0Ci8vIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlULgoKaW1wb3J0ICdwYWNrYWdlOmFyZ3MvY29tbWFuZF9ydW5uZXIuZGFydCc7CmltcG9ydCAncGFja2FnZTptYXNvbl9sb2dnZXIvbWFzb25fbG9nZ2VyLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6e3twcm9qZWN0X25hbWUuc25ha2VDYXNlKCl9fS9zcmMvY29tbWFuZF9ydW5uZXIuZGFydCc7CmltcG9ydCAncGFja2FnZTp7e3Byb2plY3RfbmFtZS5zbmFrZUNhc2UoKX19L3NyYy92ZXJzaW9uLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6cHViX3VwZGF0ZXIvcHViX3VwZGF0ZXIuZGFydCc7CgovLy8ge0B0ZW1wbGF0ZSB1cGRhdGVfY29tbWFuZH0KLy8vIEEgY29tbWFuZCB3aGljaCB1cGRhdGVzIHRoZSBDTEkuCi8vLyB7QGVuZHRlbXBsYXRlfQpjbGFzcyBVcGRhdGVDb21tYW5kIGV4dGVuZHMgQ29tbWFuZDxpbnQ+IHsKICAvLy8ge0BtYWNybyB1cGRhdGVfY29tbWFuZH0KICBVcGRhdGVDb21tYW5kKHsKICAgIExvZ2dlcj8gbG9nZ2VyLAogICAgUHViVXBkYXRlcj8gcHViVXBkYXRlciwKICB9KSAgOiBfbG9nZ2VyID0gbG9nZ2VyID8/IExvZ2dlcigpLAogICAgICAgIF9wdWJVcGRhdGVyID0gcHViVXBkYXRlciA/PyBQdWJVcGRhdGVyKCk7CgogIGZpbmFsIExvZ2dlciBfbG9nZ2VyOwogIGZpbmFsIFB1YlVwZGF0ZXIgX3B1YlVwZGF0ZXI7CgogIEBvdmVycmlkZQogIFN0cmluZyBnZXQgZGVzY3JpcHRpb24gPT4gJ1VwZGF0ZSB0aGUgQ0xJLic7CgogIEBvdmVycmlkZQogIFN0cmluZyBnZXQgbmFtZSA9PiAndXBkYXRlJzsKCiAgQG92ZXJyaWRlCiAgRnV0dXJlPGludD4gcnVuKCkgYXN5bmMgewogICAgZmluYWwgdXBkYXRlQ2hlY2tQcm9ncmVzcyA9IF9sb2dnZXIucHJvZ3Jlc3MoJ0NoZWNraW5nIGZvciB1cGRhdGVzJyk7CiAgICBsYXRlIGZpbmFsIFN0cmluZyBsYXRlc3RWZXJzaW9uOwogICAgdHJ5IHsKICAgICAgbGF0ZXN0VmVyc2lvbiA9IGF3YWl0IF9wdWJVcGRhdGVyLmdldExhdGVzdFZlcnNpb24ocGFja2FnZU5hbWUpOwogICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgdXBkYXRlQ2hlY2tQcm9ncmVzcy5mYWlsKCk7CiAgICAgIF9sb2dnZXIuZXJyKCckZXJyb3InKTsKICAgICAgcmV0dXJuIEV4aXRDb2RlLnNvZnR3YXJlLmNvZGU7CiAgICB9CiAgICB1cGRhdGVDaGVja1Byb2dyZXNzLmNvbXBsZXRlKCdDaGVja2VkIGZvciB1cGRhdGVzJyk7CgogICAgZmluYWwgaXNVcFRvRGF0ZSA9IHBhY2thZ2VWZXJzaW9uID09IGxhdGVzdFZlcnNpb247CiAgICBpZiAoaXNVcFRvRGF0ZSkgewogICAgICBfbG9nZ2VyLmluZm8oJ0NMSSBpcyBhbHJlYWR5IGF0IHRoZSBsYXRlc3QgdmVyc2lvbi4nKTsKICAgICAgcmV0dXJuIEV4aXRDb2RlLnN1Y2Nlc3MuY29kZTsKICAgIH0KCiAgICBmaW5hbCB1cGRhdGVQcm9ncmVzcyA9IF9sb2dnZXIucHJvZ3Jlc3MoJ1VwZGF0aW5nIHRvICRsYXRlc3RWZXJzaW9uJyk7CiAgICB0cnkgewogICAgICBhd2FpdCBfcHViVXBkYXRlci51cGRhdGUocGFja2FnZU5hbWU6IHBhY2thZ2VOYW1lKTsKICAgIH0gY2F0Y2ggKGVycm9yKSB7CiAgICAgIHVwZGF0ZVByb2dyZXNzLmZhaWwoKTsKICAgICAgX2xvZ2dlci5lcnIoJyRlcnJvcicpOwogICAgICByZXR1cm4gRXhpdENvZGUuc29mdHdhcmUuY29kZTsKICAgIH0KICAgIHVwZGF0ZVByb2dyZXNzLmNvbXBsZXRlKCdVcGRhdGVkIHRvICRsYXRlc3RWZXJzaW9uJyk7CgogICAgcmV0dXJuIEV4aXRDb2RlLnN1Y2Nlc3MuY29kZTsKICB9Cn0K", + "type": "text" + }, { "path": "lib/src/version.dart", "data": @@ -106,6 +112,12 @@ final veryGoodDartCliBundle = MasonBundle.fromJson({ "data": "Ly8gQ29weXJpZ2h0IChjKSB7e2N1cnJlbnRfeWVhcn19LCBWZXJ5IEdvb2QgVmVudHVyZXMKLy8gaHR0cHM6Ly92ZXJ5Z29vZC52ZW50dXJlcwovLwovLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUKLy8gbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIG9yIGF0Ci8vIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlULgoKaW1wb3J0ICdwYWNrYWdlOm1hc29uX2xvZ2dlci9tYXNvbl9sb2dnZXIuZGFydCc7CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnt7cHJvamVjdF9uYW1lLnNuYWtlQ2FzZSgpfX0vc3JjL2NvbW1hbmRfcnVubmVyLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6e3twcm9qZWN0X25hbWUuc25ha2VDYXNlKCl9fS9zcmMvY29tbWFuZHMvY29tbWFuZHMuZGFydCc7CmltcG9ydCAncGFja2FnZTp7e3Byb2plY3RfbmFtZS5zbmFrZUNhc2UoKX19L3NyYy92ZXJzaW9uLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6cHViX3VwZGF0ZXIvcHViX3VwZGF0ZXIuZGFydCc7CmltcG9ydCAncGFja2FnZTp0ZXN0L3Rlc3QuZGFydCc7CgpjbGFzcyBNb2NrTG9nZ2VyIGV4dGVuZHMgTW9jayBpbXBsZW1lbnRzIExvZ2dlciB7fQoKY2xhc3MgTW9ja1B1YlVwZGF0ZXIgZXh0ZW5kcyBNb2NrIGltcGxlbWVudHMgUHViVXBkYXRlciB7fQoKdm9pZCBtYWluKCkgewogIGdyb3VwKCdzYW1wbGUnLCAoKSB7CiAgICBsYXRlIFB1YlVwZGF0ZXIgcHViVXBkYXRlcjsKICAgIGxhdGUgTG9nZ2VyIGxvZ2dlcjsKICAgIGxhdGUge3twcm9qZWN0X25hbWUucGFzY2FsQ2FzZSgpfX1Db21tYW5kUnVubmVyIGNvbW1hbmRSdW5uZXI7CgogICAgc2V0VXAoKCkgewogICAgICBwdWJVcGRhdGVyID0gTW9ja1B1YlVwZGF0ZXIoKTsKCiAgICAgIHdoZW4oCiAgICAgICAgKCkgPT4gcHViVXBkYXRlci5nZXRMYXRlc3RWZXJzaW9uKGFueSgpKSwKICAgICAgKS50aGVuQW5zd2VyKChfKSBhc3luYyA9PiBwYWNrYWdlVmVyc2lvbik7CgogICAgICBsb2dnZXIgPSBNb2NrTG9nZ2VyKCk7CiAgICAgIGNvbW1hbmRSdW5uZXIgPSB7e3Byb2plY3RfbmFtZS5wYXNjYWxDYXNlKCl9fUNvbW1hbmRSdW5uZXIoCiAgICAgICAgbG9nZ2VyOiBsb2dnZXIsCiAgICAgICAgcHViVXBkYXRlcjogcHViVXBkYXRlciwKICAgICAgKTsKICAgIH0pOwoKICAgIHRlc3QoJ2NhbiBiZSBpbnN0YW50aWF0ZWQgd2l0aG91dCBleHBsaWNpdCBsb2dnZXInLCAoKSB7CiAgICAgIGZpbmFsIGNvbW1hbmQgPSBTYW1wbGVDb21tYW5kKCk7CiAgICAgIGV4cGVjdChjb21tYW5kLCBpc05vdE51bGwpOwogICAgfSk7CgogICAgdGVzdCgndGVsbHMgYSBqb2tlJywgKCkgYXN5bmMgewogICAgICBmaW5hbCBleGl0Q29kZSA9IGF3YWl0IGNvbW1hbmRSdW5uZXIucnVuKFsnc2FtcGxlJ10pOwoKICAgICAgZXhwZWN0KGV4aXRDb2RlLCBFeGl0Q29kZS5zdWNjZXNzLmNvZGUpOwoKICAgICAgdmVyaWZ5KAogICAgICAgICgpID0+IGxvZ2dlci5pbmZvKCdXaGljaCB1bmljb3JuIGhhcyBhIGNvbGQ/IFRoZSBBY2hvby1uaWNvcm4hJyksCiAgICAgICkuY2FsbGVkKDEpOwogICAgfSk7CiAgICB0ZXN0KCd0ZWxscyBhIGpva2UgaW4gY3lhbicsICgpIGFzeW5jIHsKICAgICAgZmluYWwgZXhpdENvZGUgPSBhd2FpdCBjb21tYW5kUnVubmVyLnJ1bihbJ3NhbXBsZScsICctYyddKTsKCiAgICAgIGV4cGVjdChleGl0Q29kZSwgRXhpdENvZGUuc3VjY2Vzcy5jb2RlKTsKCiAgICAgIHZlcmlmeSgKICAgICAgICAoKSA9PiBsb2dnZXIuaW5mbygKICAgICAgICAgIGxpZ2h0Q3lhbi53cmFwKCdXaGljaCB1bmljb3JuIGhhcyBhIGNvbGQ/IFRoZSBBY2hvby1uaWNvcm4hJyksCiAgICAgICAgKSwKICAgICAgKS5jYWxsZWQoMSk7CiAgICB9KTsKCiAgICB0ZXN0KCd3cm9uZyB1c2FnZScsICgpIGFzeW5jIHsKICAgICAgZmluYWwgZXhpdENvZGUgPSBhd2FpdCBjb21tYW5kUnVubmVyLnJ1bihbJ3NhbXBsZScsICctcCddKTsKCiAgICAgIGV4cGVjdChleGl0Q29kZSwgRXhpdENvZGUudXNhZ2UuY29kZSk7CgogICAgICB2ZXJpZnkoKCkgPT4gbG9nZ2VyLmVycignQ291bGQgbm90IGZpbmQgYW4gb3B0aW9uIG9yIGZsYWcgIi1wIi4nKSkKICAgICAgICAgIC5jYWxsZWQoMSk7CiAgICAgIHZlcmlmeSgKICAgICAgICAoKSA9PiBsb2dnZXIuaW5mbygKICAgICAgICAgICcnJwpVc2FnZToge3tleGVjdXRhYmxlX25hbWUuc25ha2VDYXNlKCl9fSBzYW1wbGUgW2FyZ3VtZW50c10KLWgsIC0taGVscCAgICBQcmludCB0aGlzIHVzYWdlIGluZm9ybWF0aW9uLgotYywgLS1jeWFuICAgIFByaW50cyB0aGUgc2FtZSBqb2tlLCBidXQgaW4gY3lhbgoKUnVuICJ7e2V4ZWN1dGFibGVfbmFtZS5zbmFrZUNhc2UoKX19IGhlbHAiIHRvIHNlZSBnbG9iYWwgb3B0aW9ucy4nJycsCiAgICAgICAgKSwKICAgICAgKS5jYWxsZWQoMSk7CiAgICB9KTsKICB9KTsKfQo=", "type": "text" + }, + { + "path": "test/src/commands/update_command_test.dart", + "data": + "Ly8gQ29weXJpZ2h0IChjKSB7e2N1cnJlbnRfeWVhcn19LCBWZXJ5IEdvb2QgVmVudHVyZXMKLy8gaHR0cHM6Ly92ZXJ5Z29vZC52ZW50dXJlcwovLwovLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUKLy8gbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIG9yIGF0Ci8vIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlULgoKaW1wb3J0ICdwYWNrYWdlOm1hc29uX2xvZ2dlci9tYXNvbl9sb2dnZXIuZGFydCc7CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnt7cHJvamVjdF9uYW1lLnNuYWtlQ2FzZSgpfX0vc3JjL2NvbW1hbmRfcnVubmVyLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6e3twcm9qZWN0X25hbWUuc25ha2VDYXNlKCl9fS9zcmMvY29tbWFuZHMvY29tbWFuZHMuZGFydCc7CmltcG9ydCAncGFja2FnZTp7e3Byb2plY3RfbmFtZS5zbmFrZUNhc2UoKX19L3NyYy92ZXJzaW9uLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6cHViX3VwZGF0ZXIvcHViX3VwZGF0ZXIuZGFydCc7CmltcG9ydCAncGFja2FnZTp0ZXN0L3Rlc3QuZGFydCc7CmltcG9ydCAncGFja2FnZTp1bml2ZXJzYWxfaW8vaW8uZGFydCc7CgpjbGFzcyBGYWtlUHJvY2Vzc1Jlc3VsdCBleHRlbmRzIEZha2UgaW1wbGVtZW50cyBQcm9jZXNzUmVzdWx0IHt9CgpjbGFzcyBNb2NrTG9nZ2VyIGV4dGVuZHMgTW9jayBpbXBsZW1lbnRzIExvZ2dlciB7fQoKY2xhc3MgTW9ja1Byb2dyZXNzIGV4dGVuZHMgTW9jayBpbXBsZW1lbnRzIFByb2dyZXNzIHt9CgpjbGFzcyBNb2NrUHViVXBkYXRlciBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBQdWJVcGRhdGVyIHt9Cgp2b2lkIG1haW4oKSB7CiAgY29uc3QgbGF0ZXN0VmVyc2lvbiA9ICcwLjAuMCc7CgogIGdyb3VwKCd1cGRhdGUnLCAoKSB7CiAgICBsYXRlIFB1YlVwZGF0ZXIgcHViVXBkYXRlcjsKICAgIGxhdGUgTG9nZ2VyIGxvZ2dlcjsKICAgIGxhdGUge3twcm9qZWN0X25hbWUucGFzY2FsQ2FzZSgpfX1Db21tYW5kUnVubmVyIGNvbW1hbmRSdW5uZXI7CgogICAgc2V0VXAoKCkgewogICAgICBmaW5hbCBwcm9ncmVzcyA9IE1vY2tQcm9ncmVzcygpOwogICAgICBmaW5hbCBwcm9ncmVzc0xvZ3MgPSA8U3RyaW5nPltdOwogICAgICBwdWJVcGRhdGVyID0gTW9ja1B1YlVwZGF0ZXIoKTsKICAgICAgbG9nZ2VyID0gTW9ja0xvZ2dlcigpOwogICAgICBjb21tYW5kUnVubmVyID0ge3twcm9qZWN0X25hbWUucGFzY2FsQ2FzZSgpfX1Db21tYW5kUnVubmVyKAogICAgICAgIGxvZ2dlcjogbG9nZ2VyLAogICAgICAgIHB1YlVwZGF0ZXI6IHB1YlVwZGF0ZXIsCiAgICAgICk7CgogICAgICB3aGVuKAogICAgICAgICgpID0+IHB1YlVwZGF0ZXIuZ2V0TGF0ZXN0VmVyc2lvbihhbnkoKSksCiAgICAgICkudGhlbkFuc3dlcigoXykgYXN5bmMgPT4gcGFja2FnZVZlcnNpb24pOwogICAgICB3aGVuKCgpID0+IHByb2dyZXNzLmNvbXBsZXRlKGFueSgpKSkudGhlbkFuc3dlcigoXykgewogICAgICAgIGZpbmFsIG1lc3NhZ2UgPSBfLnBvc2l0aW9uYWxBcmd1bWVudHMuZWxlbWVudEF0KDApIGFzIFN0cmluZz87CiAgICAgICAgaWYgKG1lc3NhZ2UgIT0gbnVsbCkgcHJvZ3Jlc3NMb2dzLmFkZChtZXNzYWdlKTsKICAgICAgfSk7CiAgICAgIHdoZW4oKCkgPT4gbG9nZ2VyLnByb2dyZXNzKGFueSgpKSkudGhlblJldHVybihwcm9ncmVzcyk7CiAgICAgIHdoZW4oCiAgICAgICAgKCkgPT4gcHViVXBkYXRlci5pc1VwVG9EYXRlKAogICAgICAgICAgcGFja2FnZU5hbWU6IGFueShuYW1lZDogJ3BhY2thZ2VOYW1lJyksCiAgICAgICAgICBjdXJyZW50VmVyc2lvbjogYW55KG5hbWVkOiAnY3VycmVudFZlcnNpb24nKSwKICAgICAgICApLAogICAgICApLnRoZW5BbnN3ZXIoKF8pID0+IEZ1dHVyZS52YWx1ZSh0cnVlKSk7CiAgICB9KTsKCiAgICB0ZXN0KCdjYW4gYmUgaW5zdGFudGlhdGVkIHdpdGhvdXQgZXhwbGljaXQgbG9nZ2VyIGFuZCBwdWIgdXBkYXRlcicsICgpIHsKICAgICAgZmluYWwgY29tbWFuZCA9IFVwZGF0ZUNvbW1hbmQoKTsKICAgICAgZXhwZWN0KGNvbW1hbmQsIGlzTm90TnVsbCk7CiAgICB9KTsKCiAgICB0ZXN0KAogICAgICAnaGFuZGxlcyBwdWIgbGF0ZXN0IHZlcnNpb24gcXVlcnkgZXJyb3JzJywKICAgICAgKCkgYXN5bmMgewogICAgICAgIHdoZW4oCiAgICAgICAgICAoKSA9PiBwdWJVcGRhdGVyLmdldExhdGVzdFZlcnNpb24oYW55KCkpLAogICAgICAgICkudGhlblRocm93KEV4Y2VwdGlvbignb29wcycpKTsKICAgICAgICBmaW5hbCByZXN1bHQgPSBhd2FpdCBjb21tYW5kUnVubmVyLnJ1bihbJ3VwZGF0ZSddKTsKICAgICAgICBleHBlY3QocmVzdWx0LCBlcXVhbHMoRXhpdENvZGUuc29mdHdhcmUuY29kZSkpOwogICAgICAgIHZlcmlmeSgoKSA9PiBsb2dnZXIucHJvZ3Jlc3MoJ0NoZWNraW5nIGZvciB1cGRhdGVzJykpLmNhbGxlZCgxKTsKICAgICAgICB2ZXJpZnkoKCkgPT4gbG9nZ2VyLmVycignRXhjZXB0aW9uOiBvb3BzJykpOwogICAgICAgIHZlcmlmeU5ldmVyKAogICAgICAgICAgKCkgPT4gcHViVXBkYXRlci51cGRhdGUocGFja2FnZU5hbWU6IGFueShuYW1lZDogJ3BhY2thZ2VOYW1lJykpLAogICAgICAgICk7CiAgICAgIH0sCiAgICApOwoKICAgIHRlc3QoCiAgICAgICdoYW5kbGVzIHB1YiB1cGRhdGUgZXJyb3JzJywKICAgICAgKCkgYXN5bmMgewogICAgICAgIHdoZW4oCiAgICAgICAgICAoKSA9PiBwdWJVcGRhdGVyLmdldExhdGVzdFZlcnNpb24oYW55KCkpLAogICAgICAgICkudGhlbkFuc3dlcigoXykgYXN5bmMgPT4gbGF0ZXN0VmVyc2lvbik7CiAgICAgICAgd2hlbigKICAgICAgICAgICgpID0+IHB1YlVwZGF0ZXIudXBkYXRlKHBhY2thZ2VOYW1lOiBhbnkobmFtZWQ6ICdwYWNrYWdlTmFtZScpKSwKICAgICAgICApLnRoZW5UaHJvdyhFeGNlcHRpb24oJ29vcHMnKSk7CiAgICAgICAgZmluYWwgcmVzdWx0ID0gYXdhaXQgY29tbWFuZFJ1bm5lci5ydW4oWyd1cGRhdGUnXSk7CiAgICAgICAgZXhwZWN0KHJlc3VsdCwgZXF1YWxzKEV4aXRDb2RlLnNvZnR3YXJlLmNvZGUpKTsKICAgICAgICB2ZXJpZnkoKCkgPT4gbG9nZ2VyLnByb2dyZXNzKCdDaGVja2luZyBmb3IgdXBkYXRlcycpKS5jYWxsZWQoMSk7CiAgICAgICAgdmVyaWZ5KCgpID0+IGxvZ2dlci5lcnIoJ0V4Y2VwdGlvbjogb29wcycpKTsKICAgICAgICB2ZXJpZnkoCiAgICAgICAgICAoKSA9PiBwdWJVcGRhdGVyLnVwZGF0ZShwYWNrYWdlTmFtZTogYW55KG5hbWVkOiAncGFja2FnZU5hbWUnKSksCiAgICAgICAgKS5jYWxsZWQoMSk7CiAgICAgIH0sCiAgICApOwoKICAgIHRlc3QoCiAgICAgICd1cGRhdGVzIHdoZW4gbmV3ZXIgdmVyc2lvbiBleGlzdHMnLAogICAgICAoKSBhc3luYyB7CiAgICAgICAgd2hlbigKICAgICAgICAgICgpID0+IHB1YlVwZGF0ZXIuZ2V0TGF0ZXN0VmVyc2lvbihhbnkoKSksCiAgICAgICAgKS50aGVuQW5zd2VyKChfKSBhc3luYyA9PiBsYXRlc3RWZXJzaW9uKTsKICAgICAgICB3aGVuKAogICAgICAgICAgKCkgPT4gcHViVXBkYXRlci51cGRhdGUocGFja2FnZU5hbWU6IHBhY2thZ2VOYW1lKSwKICAgICAgICApLnRoZW5BbnN3ZXIoKF8pID0+IEZ1dHVyZS52YWx1ZShGYWtlUHJvY2Vzc1Jlc3VsdCgpKSk7CiAgICAgICAgd2hlbigoKSA9PiBsb2dnZXIucHJvZ3Jlc3MoYW55KCkpKS50aGVuUmV0dXJuKE1vY2tQcm9ncmVzcygpKTsKICAgICAgICBmaW5hbCByZXN1bHQgPSBhd2FpdCBjb21tYW5kUnVubmVyLnJ1bihbJ3VwZGF0ZSddKTsKICAgICAgICBleHBlY3QocmVzdWx0LCBlcXVhbHMoRXhpdENvZGUuc3VjY2Vzcy5jb2RlKSk7CiAgICAgICAgdmVyaWZ5KCgpID0+IGxvZ2dlci5wcm9ncmVzcygnQ2hlY2tpbmcgZm9yIHVwZGF0ZXMnKSkuY2FsbGVkKDEpOwogICAgICAgIHZlcmlmeSgoKSA9PiBsb2dnZXIucHJvZ3Jlc3MoJ1VwZGF0aW5nIHRvICRsYXRlc3RWZXJzaW9uJykpLmNhbGxlZCgxKTsKICAgICAgICB2ZXJpZnkoKCkgPT4gcHViVXBkYXRlci51cGRhdGUocGFja2FnZU5hbWU6IHBhY2thZ2VOYW1lKSkuY2FsbGVkKDEpOwogICAgICB9LAogICAgKTsKCiAgICB0ZXN0KAogICAgICAnZG9lcyBub3QgdXBkYXRlIHdoZW4gYWxyZWFkeSBvbiBsYXRlc3QgdmVyc2lvbicsCiAgICAgICgpIGFzeW5jIHsKICAgICAgICB3aGVuKAogICAgICAgICAgKCkgPT4gcHViVXBkYXRlci5nZXRMYXRlc3RWZXJzaW9uKGFueSgpKSwKICAgICAgICApLnRoZW5BbnN3ZXIoKF8pIGFzeW5jID0+IHBhY2thZ2VWZXJzaW9uKTsKICAgICAgICB3aGVuKCgpID0+IGxvZ2dlci5wcm9ncmVzcyhhbnkoKSkpLnRoZW5SZXR1cm4oTW9ja1Byb2dyZXNzKCkpOwogICAgICAgIGZpbmFsIHJlc3VsdCA9IGF3YWl0IGNvbW1hbmRSdW5uZXIucnVuKFsndXBkYXRlJ10pOwogICAgICAgIGV4cGVjdChyZXN1bHQsIGVxdWFscyhFeGl0Q29kZS5zdWNjZXNzLmNvZGUpKTsKICAgICAgICB2ZXJpZnkoCiAgICAgICAgICAoKSA9PiBsb2dnZXIuaW5mbygnQ0xJIGlzIGFscmVhZHkgYXQgdGhlIGxhdGVzdCB2ZXJzaW9uLicpLAogICAgICAgICkuY2FsbGVkKDEpOwogICAgICAgIHZlcmlmeU5ldmVyKCgpID0+IGxvZ2dlci5wcm9ncmVzcygnVXBkYXRpbmcgdG8gJGxhdGVzdFZlcnNpb24nKSk7CiAgICAgICAgdmVyaWZ5TmV2ZXIoKCkgPT4gcHViVXBkYXRlci51cGRhdGUocGFja2FnZU5hbWU6IHBhY2thZ2VOYW1lKSk7CiAgICAgIH0sCiAgICApOwogIH0pOwp9Cg==", + "type": "text" } ], "hooks": [