Socket
Socket
Sign inDemoInstall

@convex-dev/cli

Package Overview
Dependencies
46
Maintainers
6
Versions
15
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.0.45 to 0.0.48

src/auth.ts

20

.rush/temp/package-deps_build.json

@@ -5,16 +5,18 @@ {

"@convex-dev/cli/bin/main.js": "021b6dbb88cbe0c24ef561550c1e2285d244af2d",
"@convex-dev/cli/package-lock.json": "bcf9d9af1cbe0a0c052dc052cd86d1581900e279",
"@convex-dev/cli/package.json": "bc2a2fe4b6e0ee1543444b57c2c74d7ca97b6f28",
"@convex-dev/cli/src/config.ts": "c57c5d92a448dc484f1ba269fa0c8fb482a84462",
"@convex-dev/cli/src/dashboard.ts": "3c63b54007ffc59973fd1e8fa130c72aaf71a5bc",
"@convex-dev/cli/src/deactivate.ts": "c285728d53fcb2624ed41e9b0a765e6afa5efbeb",
"@convex-dev/cli/src/index.ts": "72adfaf5fbc60ff2fae008e13e6728fbdb4a02d0",
"@convex-dev/cli/src/init.ts": "12a686d44e3c49e9a7fb9ee5c5d7776e93cdcaa9",
"@convex-dev/cli/src/push.ts": "62d466e02ce1e840c885e307c6b58ab487bdb9a7",
"@convex-dev/cli/package.json": "61da290dbde8acb0aeb26a093feb805ad728c491",
"@convex-dev/cli/src/auth.ts": "196fb5e9e9a4b68551f9e1334508d6d295eca3cb",
"@convex-dev/cli/src/config.ts": "269369c2a165b5fcb71c07490cf57b76fb64abf6",
"@convex-dev/cli/src/dashboard.ts": "f1a4d9da9b2c52f8d330c82141b6fd42b6d4cbf0",
"@convex-dev/cli/src/deactivate.ts": "db6abf3d37698183a3c429c131194a536169ac26",
"@convex-dev/cli/src/index.ts": "e9937a4fcd1b470e20ee5f53d69d63329fe00ccc",
"@convex-dev/cli/src/init.ts": "306bbb8f043998d69c3d8a4d9bffe297674f2673",
"@convex-dev/cli/src/list_instances.ts": "c53161b43b33ab2118eeac8d898a02b3d130e2ab",
"@convex-dev/cli/src/push.ts": "46f10deced1b9f3acf5d598c571dee1bff6f2b9d",
"@convex-dev/cli/src/reinit.ts": "91e49b1f9ae5b70e798ca60348f2ef167ea36343",
"@convex-dev/cli/src/utils.ts": "5791efae8a7fd5d83c7d7fa1a141fe117a0c7e33",
"@convex-dev/cli/src/watch.ts": "06b8434eb2dccd7ec7dc50f18b95fa776288a934",
"@convex-dev/cli/tsconfig.json": "a25a789051a68ad6839f4921ee9cf80af1a88bf8",
"@convex-dev/cli/.rush/temp/shrinkwrap-deps.json": "d4d9101e59fd10997fa0fdbf60e3e9c7458aba82"
"@convex-dev/cli/.rush/temp/shrinkwrap-deps.json": "92136465f6bcddf1b166d1b2a827fa2ec6a0aeb9"
},
"arguments": "tsc -noEmit && esbuild src/index.ts --bundle --platform=node --target=node16 --external:esbuild --external:fsevents --outfile=dist/index.js --log-level=silent "
}
{
"@babel/runtime@7.16.5": "sha512-TXWihFIS3Pyv5hzR7j6ihmeLkZfrXGxAr5UfSl8CHf+6q/wpiYDkUau0czckpYG8QmnCIuPpdLtuA9VmuGGyMA==",
"@babel/runtime@7.17.0": "sha512-etcO/ohMNaNA2UBdaXBBSX/3aEzFMRrVfaPv8Ptc0k+cWpWW0QFiGZ2XnVqQZI1Cf734LbPGmqBKWESfW4x/dQ==",
"@types/deep-equal@1.0.1": "sha512-mMUu4nWHLBlHtxXY17Fg6+ucS/MnndyOWyOe7MmwkoMYxvfQU2ajtRaEvqSUv+aVkMqH/C0NCI8UoVfRNQ10yg==",
"@types/node@16.11.17": "sha512-C1vTZME8cFo8uxY2ui41xcynEotVkczIVI5AjLmy5pkpBv/FtG+jhtOlfcPysI8VRVwoOMv6NJm44LGnoMSWkw==",
"@types/inquirer@8.2.0": "sha512-BNoMetRf3gmkpAlV5we+kxyZTle7YibdOntIZbU5pyIfMdcwy784KfeZDAcuyMznkh5OLa17RVXZOGA5LTlkgQ==",
"@types/node@16.11.22": "sha512-DYNtJWauMQ9RNpesl4aVothr97/tIJM8HbyOXJ0AYT1Z2bEjLHyfjOBPAQQVMLf8h3kSShYfNk8Wnto8B2zHUA==",
"@types/through@0.0.30": "sha512-FvnCJljyxhPM3gkRgWmxmDZyAQSiBQQWLI0A0VFL0K7W1oRUrPJSqNO0NvTnLkBcotdlp3lKvaT0JrnyRDkzOg==",
"ansi-escapes@4.3.2": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==",
"ansi-regex@5.0.1": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
"ansi-styles@4.3.0": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"anymatch@3.1.2": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==",
"available-typed-arrays@1.0.5": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==",
"axios-case-converter@0.9.0_axios@0.24.0": "sha512-G6tOanR1cdIrBtRyiPvR+xXyWCCZacSw8LtT8bmImvpye+XiyoOlLluz0N61IfetznNQ9BeMi5yA0rIyYDr8mQ==",
"axios-case-converter@0.9.0_axios@0.25.0": "sha512-G6tOanR1cdIrBtRyiPvR+xXyWCCZacSw8LtT8bmImvpye+XiyoOlLluz0N61IfetznNQ9BeMi5yA0rIyYDr8mQ==",
"axios-retry@3.2.4": "sha512-Co3UXiv4npi6lM963mfnuH90/YFLKWWDmoBYfxkHT5xtkSSWNqK9zdG3fw5/CP/dsoKB5aMMJCsgab+tp1OxLQ==",
"axios@0.24.0": "sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==",
"axios@0.25.0": "sha512-cD8FOb0tRH3uuEe6+evtAbgJtfxr7ly3fQjYcMcuPlgkwVS9xboaVIpcDV+cYQe+yGykgwZCs1pzjntcGa6l5g==",
"base64-js@1.5.1": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
"binary-extensions@2.2.0": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
"bl@4.1.0": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
"braces@3.0.2": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
"buffer@5.7.1": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
"call-bind@1.0.2": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",

@@ -17,3 +24,8 @@ "camel-case@4.1.2": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==",

"chalk@4.1.2": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"chardet@0.7.0": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==",
"chokidar@3.5.2": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==",
"cli-cursor@3.1.0": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
"cli-spinners@2.6.1": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==",
"cli-width@3.0.0": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==",
"clone@1.0.4": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=",
"color-convert@2.0.1": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",

@@ -23,5 +35,7 @@ "color-name@1.1.4": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",

"deep-equal@2.0.5": "sha512-nPiRgmbAtm1a3JsnLCf6/SLfXcjyN5v8L1TXzdCmHrXJ4hx+gW/w1YCcn7z8gJtSiDArZCgYtbao3QqLm/N1Sw==",
"defaults@1.0.3": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=",
"define-lazy-prop@2.0.0": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==",
"define-properties@1.1.3": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
"dot-case@3.0.4": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==",
"emoji-regex@8.0.0": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
"envfile@6.17.0": "sha512-RnhtVw3auDZeeh5VtaNrbE7s6Kq8BoRtGIzcbMpMsJ+wIpRgs5jiDG4gQjW+vfws5QPlizE57/fUU0Tj6Nrs8A==",

@@ -31,23 +45,26 @@ "es-abstract@1.19.1": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==",

"es-to-primitive@1.2.1": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
"esbuild-android-arm64@0.14.8": "sha512-tAEoSHnPBSH0cCAFa/aYs3LPsoTY4SwsP6wDKi4PaelbQYNJjqNpAeweyJ8l98g1D6ZkLyqsHbkYj+209sezkA==",
"esbuild-darwin-64@0.14.8": "sha512-t7p7WzTb+ybiD/irkMt5j/NzB+jY+8yPTsrXk5zCOH1O7DdthRnAUJ7pJPwImdL7jAGRbLtYRxUPgCHs/0qUPw==",
"esbuild-darwin-arm64@0.14.8": "sha512-5FeaT2zMUajKnBwUMSsjZev5iA38YHrDmXhkOCwZQIFUvhqojinqCrvv/X7dyxb1987bcY9KGwJ+EwDwd922HQ==",
"esbuild-freebsd-64@0.14.8": "sha512-pGHBLSf7ynfyDZXUtbq/GsA2VIwQlWXrUj1AMcE0id47mRdEUM8/1ZuqMGZx63hRnNgtK9zNJ8OIu2c7qq76Qw==",
"esbuild-freebsd-arm64@0.14.8": "sha512-g4GgAnrx6Gh1BjKJjJWgPnOR4tW2FcAx9wFvyUjRsIjB35gT+aAFR+P/zStu5OG9LnbS8Pvjd4wS68QIXk+2dA==",
"esbuild-linux-32@0.14.8": "sha512-wPfQJadF5vTzriw/B8Ide74PeAJlZW7czNx3NIUHkHlXb+En1SeIqNzl6jG9DuJUl57xD9Ucl9YJFEkFeX8eLg==",
"esbuild-linux-64@0.14.8": "sha512-+RNuLk9RhRDL2kG+KTEYl5cIgF6AGLkRnKKWEu9DpCZaickONEqrKyQSVn410Hj105DLdW6qvIXQQHPycJhExg==",
"esbuild-linux-arm64@0.14.8": "sha512-BtWoKNYul9UoxUvQUSdSrvSmJyFL1sGnNPTSqWCg1wMe4kmc8UY2yVsXSSkKO8N2jtHxlgFyz/XhvNBzEwGVcw==",
"esbuild-linux-arm@0.14.8": "sha512-HIct38SvUAIJbiTwV/PVQroimQo96TGtzRDAEZxTorB4vsAj1r8bd0keXExPU4RH7G0zIqC4loQQpWYL+nH4Vg==",
"esbuild-linux-mips64le@0.14.8": "sha512-0DxnCl9XTvaQtsX6Qa+Phr5i9b04INwwSv2RbQ2UWRLoQ/037iaFzbmuhgrcmaGOcRwPkCa+4Qo5EgI01MUgsQ==",
"esbuild-linux-ppc64le@0.14.8": "sha512-Uzr/OMj97Q0qoWLXCvXCKUY/z1SNI4iSZEuYylM5Nd71HGStL32XWq/MReJ0PYMvUMKKJicKSKw2jWM1uBQ84Q==",
"esbuild-linux-s390x@0.14.8": "sha512-vURka7aCA5DrRoOqOn6pXYwFlDSoQ4qnqam8AC0Ikn6tibutuhgar6M3Ek2DCuz9yqd396mngdYr5A8x2TPkww==",
"esbuild-netbsd-64@0.14.8": "sha512-tjyDak2/pp0VUAhBW6/ueuReMd5qLHNlisXl5pq0Xn0z+kH9urA/t1igm0JassWbdMz123td5ZEQWoD9KbtOAw==",
"esbuild-openbsd-64@0.14.8": "sha512-zAKKV15fIyAuDDga5rQv0lW2ufBWj/OCjqjDBb3dJf5SfoAi/DMIHuzmkKQeDQ+oxt9Rp1D7ZOlOBVflutFTqQ==",
"esbuild-sunos-64@0.14.8": "sha512-xV41Wa8imziM/2dbWZjLKQbIETRgo5dE0oc/uPsgaecJhsrdA0VkGa/V432LJSUYv967xHDQdoRRl5tr80+NnQ==",
"esbuild-windows-32@0.14.8": "sha512-AxpdeLKQSyCZo7MzdOyV4OgEbEJcjnrS/2niAjbHESbjuS5P1DN/5vZoJ/JSWDVa/40OkBuHBhAXMx1HK3UDsg==",
"esbuild-windows-64@0.14.8": "sha512-/3pllNoy8mrz/E1rYalwiwwhzJBrYQhEapwAteHZbFVhGzYuB8F80e8x5eA8dhFHxDiZh1VzK+hREwwSt8UTQA==",
"esbuild-windows-arm64@0.14.8": "sha512-lTm5naoNgaUvzIiax3XYIEebqwr3bIIEEtqUhzQ2UQ+JMBmvhr02w3sJIJqF3axTX6TgWrC1OtM7DYNvFG+aXA==",
"esbuild@0.14.8": "sha512-stMsCBmxwaMpeK8GC/49L/cRGIwsHwoEN7Twk5zDTHlm/63c0KXFKzDC8iM2Mi3fyCKwS002TAH6IlAvqR6t3g==",
"esbuild-android-arm64@0.14.18": "sha512-AuE8vIwc6QLquwykyscFk0Ji3RFczoOvjka64FJlcjLLhD6VsS584RYlQrSnPpRkv69PunUvyrBoEF7JFTJijg==",
"esbuild-darwin-64@0.14.18": "sha512-nN1XziZtDy8QYOggaXC3zu0vVh8YJpS8Bol7bHaxx0enTLDSFBCXUUJEKYpmAAJ4OZRPgjXv8NzEHHQWQvLzXg==",
"esbuild-darwin-arm64@0.14.18": "sha512-v0i2n6TCsbxco/W1fN8RgQt3RW00Q9zJO2eqiAdmLWg6Hx0HNHloZyfhF11i7nMUUgW8r5n++ZweIXjAFPE/gQ==",
"esbuild-freebsd-64@0.14.18": "sha512-XLyJZTWbSuQJOqw867tBxvto6GjxULvWZYKs6RFHYQPCqgQ0ODLRtBmp4Fqqpde52yOe45npaaoup9IXNfr32A==",
"esbuild-freebsd-arm64@0.14.18": "sha512-0ItfrR8hePnDcUXxUQxY+VfICcBfeMJCdK6mcNUXnXw6LyHjyUYXWpFXF+J18pg1/YUWRWO1HbsJ7FEwELcQIA==",
"esbuild-linux-32@0.14.18": "sha512-mnG84D9NsEsoQdBpBT0IsFjm5iAwnd81SP4tRMXZLl09lPvIWjHHSq6LDlb4+L5H5K5y68WC//X5Dr2MtNY3DQ==",
"esbuild-linux-64@0.14.18": "sha512-HvExRtkeA8l/p+7Lf6aBrnLH+jTCFJTUMJxGKExh2RD8lCXGTeDJFyP+BOEetP80fuuH+Syj79+LVQ9MihdBsg==",
"esbuild-linux-arm64@0.14.18": "sha512-CCWmilODE1ckw+M7RVqoqKWA4UB0alCyK2bv0ikEeEAwkzinlJeoe94t9CnT/ECSQ2sL+C16idsr+aUviGp7sg==",
"esbuild-linux-arm@0.14.18": "sha512-+ZL8xfXVNaeaZ2Kxqlw2VYZWRDZ7NSK4zOV9GKNAtkkWURLsPUU84aUOBatRe9BH1O5FDo3LLQSlaA04ed6lhA==",
"esbuild-linux-mips64le@0.14.18": "sha512-8LjO4+6Vxz5gbyCHO4OONYMF689nLderCtzb8lG1Bncs4ZXHpo6bjvuWeTMRbGUkvAhp+P6hMTzia7RHOC53wQ==",
"esbuild-linux-ppc64le@0.14.18": "sha512-0OJk/6iYEmF1J7LXY6+cqf6Ga5vG4an7n1nubTKce7kYqaTyNGfYcTjDZce6lnDVlZTJtwntIMszq1+ZX7Kenw==",
"esbuild-linux-s390x@0.14.18": "sha512-UNY7YKZHjY31KcNanJK4QaT2/aoIQyS+jViP3QuDRIoYAogRnc6WydylzIkkEzGMaC4fzaXOmQ8fxwpLAXK4Yg==",
"esbuild-netbsd-64@0.14.18": "sha512-wE/2xT9KNzLCfEBw24YbVmMmXH92cFIzrRPUlwWH9dIizjvEYYcyQ+peTMVkqzUum7pdlVLZ2CDDqAaZo/nW/w==",
"esbuild-openbsd-64@0.14.18": "sha512-vdymE2jyuH/FRmTvrguCYSrq81/rUwuhMYyvt/6ibv9ac7xQ674c8qTdT+RH73sR9/2WUD/NsYxrBA/wUVTxcg==",
"esbuild-sunos-64@0.14.18": "sha512-X/Tesy6K1MdJF1d5cbzFDxrIMMn0ye+VgTQRI8P5Vo2CcKxOdckwsKUwpRAvg+VDZ6MxrSOTYS9OOoggPUjxTg==",
"esbuild-windows-32@0.14.18": "sha512-glG23I/JzCL4lu7DWFUtVwqFwNwlL0g+ks+mcjjUisHcINoSXTeCNToUN0bHhzn6IlXXnggNQ38Ew/idHPM8+g==",
"esbuild-windows-64@0.14.18": "sha512-zEiFKHgV/3z14wsVamV98/5mxeOwz+ecyg0pD3fWcBz9j4EOIT1Tg47axypD4QLwiKFvve9mUBYX1cD99qxOyw==",
"esbuild-windows-arm64@0.14.18": "sha512-Mh8lZFcPLat13dABN7lZThGUOn9YxoH5RYkhBq0U3WqQohHzKRhllYh7ibFixnkpMLnv8OZEbl8bGLMy03MpfA==",
"esbuild@0.14.18": "sha512-vCUoISSltnX7ax01w70pWOSQT+e55o+2P/a+A9MSTukJAt3T4aDZajcjeG4fnZbkvOEv+dkKgdkvljz6vVQD4A==",
"escape-string-regexp@1.0.5": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
"external-editor@3.1.0": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==",
"figures@3.2.0": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==",
"fill-range@7.0.1": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
"follow-redirects@1.14.6": "sha512-fhUl5EwSJbbl8AR+uYL2KQDxLkdSjZGR36xy46AO7cOMTrCMON6Sa28FmAnC2tRTDbd/Uuzz3aJBv7EBN7JH8A==",
"follow-redirects@1.14.7": "sha512-+hbxoLbFMbRKDwohX8GkTataGqO6Jb7jGwpAlwgy2bIz25XtRm7KEzJM76R1WiNT5SwZkX4Y75SwBolkpmE7iQ==",
"foreach@2.0.5": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=",

@@ -65,2 +82,6 @@ "fsevents@2.3.2": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",

"header-case@2.0.4": "sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==",
"iconv-lite@0.4.24": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
"ieee754@1.2.1": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
"inherits@2.0.4": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
"inquirer@8.2.0": "sha512-0crLweprevJ02tTuA6ThpoAERAGyVILC4sS74uib58Xf/zSr1/ZWtmm7D5CI+bSQEaA04f0K7idaHpQbSWgiVQ==",
"internal-slot@1.0.3": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==",

@@ -75,3 +96,5 @@ "is-arguments@1.1.1": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==",

"is-extglob@2.1.1": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
"is-fullwidth-code-point@3.0.0": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
"is-glob@4.0.3": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
"is-interactive@1.0.0": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==",
"is-map@2.0.2": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==",

@@ -88,2 +111,3 @@ "is-negative-zero@2.0.2": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==",

"is-typed-array@1.1.8": "sha512-HqH41TNZq2fgtGT8WHVFVJhBVGuY3AnP3Q36K8JKXUxSxRgk/d+7NjmwG2vo2mYmXK8UYZKu0qH8bVP5gEisjA==",
"is-unicode-supported@0.1.0": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==",
"is-weakmap@2.0.1": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==",

@@ -94,3 +118,7 @@ "is-weakref@1.0.2": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==",

"isarray@2.0.5": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==",
"lodash@4.17.21": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
"log-symbols@4.1.0": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==",
"lower-case@2.0.2": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==",
"mimic-fn@2.1.0": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
"mute-stream@0.0.8": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==",
"no-case@3.0.4": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==",

@@ -102,18 +130,36 @@ "normalize-path@3.0.0": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",

"object.assign@4.1.2": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==",
"onetime@5.1.2": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
"open@8.4.0": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==",
"ora@5.4.1": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==",
"os-tmpdir@1.0.2": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
"pascal-case@3.1.2": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==",
"picomatch@2.3.0": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==",
"picomatch@2.3.1": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
"readable-stream@3.6.0": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
"readdirp@3.6.0": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
"regenerator-runtime@0.13.9": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==",
"regexp.prototype.flags@1.3.1": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==",
"regexp.prototype.flags@1.4.1": "sha512-pMR7hBVUUGI7PMA37m2ofIdQCsomVnas+Jn5UPGAHQ+/LlwKm/aTLJHdasmHRzlfeZwHiAOaRSo2rbBDm3nNUQ==",
"restore-cursor@3.1.0": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==",
"run-async@2.4.1": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==",
"rxjs@7.5.2": "sha512-PwDt186XaL3QN5qXj/H9DGyHhP3/RYYgZZwqBv9Tv8rsAaiwFH1IsJJlcgD37J7UW5a6O67qX0KWKS3/pu0m4w==",
"safe-buffer@5.2.1": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
"safer-buffer@2.1.2": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
"side-channel@1.0.4": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
"signal-exit@3.0.7": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
"snake-case@3.0.4": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==",
"string-width@4.2.3": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
"string.prototype.trimend@1.0.4": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==",
"string.prototype.trimstart@1.0.4": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==",
"string_decoder@1.3.0": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
"strip-ansi@6.0.1": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
"supports-color@7.2.0": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"through@2.3.8": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
"tmp@0.0.33": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
"to-regex-range@5.0.1": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
"tslib@2.3.1": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==",
"typescript@4.5.4": "sha512-VgYs2A2QIRuGphtzFV7aQJduJ2gyfTljngLzjpfW9FoYZF6xuw1W0vW9ghCKLfcWrCFxK81CSGRAvS1pn4fIUg==",
"type-fest@0.21.3": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==",
"typescript@4.5.5": "sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA==",
"unbox-primitive@1.0.1": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==",
"upper-case-first@2.0.2": "sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==",
"util-deprecate@1.0.2": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
"wcwidth@1.0.1": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=",
"which-boxed-primitive@1.0.2": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==",

@@ -120,0 +166,0 @@ "which-collection@1.0.1": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==",

{
"name": "@convex-dev/cli",
"description": "Command-line interface for Convex Cloud backend.",
"version": "0.0.45",
"author": "Convex, Inc. <team@convex.dev>",
"homepage": "https://convex.dev",
"license": "MIT",
"bin": {
"convex": "bin/main.js"
},
"dependencies": {
"axios-case-converter": "~0.9.0",
"axios-retry": "~3.2.4",
"esbuild": "~0.14.8"
},
"devDependencies": {
"@convex-dev/bundler": "0.0.45",
"@convex-dev/common": "0.0.45",
"@types/deep-equal": "1.0.1",
"@types/node": "^16.11.7",
"axios": "~0.24.0",
"chalk": "4",
"chokidar": "3.5.2",
"commander": "8.1.0",
"deep-equal": "2.0.5",
"envfile": "6.17.0",
"open": "^8.3.0",
"typescript": "^4.5.4"
},
"scripts": {
"build": "tsc -noEmit && esbuild src/index.ts --bundle --platform=node --target=node16 --external:esbuild --external:fsevents --outfile=dist/index.js --log-level=silent",
"clean": "rm -rf dist"
}
}
"name": "@convex-dev/cli",
"description": "Command-line interface for Convex Cloud backend.",
"version": "0.0.48",
"author": "Convex, Inc. <team@convex.dev>",
"homepage": "https://convex.dev",
"license": "MIT",
"bin": {
"convex": "bin/main.js"
},
"dependencies": {
"axios-case-converter": "~0.9.0",
"axios-retry": "~3.2.4",
"esbuild": "~0.14.16"
},
"devDependencies": {
"@convex-dev/bundler": "0.0.48",
"@convex-dev/common": "0.0.48",
"@types/deep-equal": "1.0.1",
"@types/node": "~16.11.12",
"axios": "0.25.0",
"chalk": "4",
"chokidar": "3.5.2",
"commander": "8.1.0",
"deep-equal": "2.0.5",
"envfile": "6.17.0",
"open": "^8.3.0",
"typescript": "^4.5.4",
"inquirer": "~8.2.0",
"@types/inquirer": "~8.2.0",
"esbuild": "~0.14.16"
},
"engines": {
"npm": ">=7.0.0",
"node": ">=16.0.0"
},
"scripts": {
"build": "tsc -noEmit && esbuild src/index.ts --bundle --platform=node --target=node16 --external:esbuild --external:fsevents --outfile=dist/index.js --log-level=silent",
"clean": "rm -rf dist"
},
"readme": "# @convex-dev/cli\n\nCommand line utility for provisioning and syncing Convex Cloud instances.\n\nConvex is a platform for building dynamic applications without the complexity of\nmanaging a backend or interacting with a database. Data access functions run on\nthe Convex Cloud platform and use the\n[@convex-dev/server](https://www.npmjs.com/package/@convex-dev/server) libraries\nto read and manipulate data. The\n[@convex-dev/browser](https://www.npmjs.com/package/@convex-dev/browser) or\n[@convex-dev/react](https://www.npmjs.com/package/@convex-dev/react) packages\nare used in frontend code to interact with these functions. This package is used\nto provision new Convex Cloud instances and to sync cloud functions.\n\n## Usage\n\nSee\n[the Convex documentation](https://docs.convex.dev/getting-started/hello-convex)\nto get started!\n\n## See Also\n\n- [@convex-dev/browser](https://www.npmjs.com/package/@convex-dev/browser) is\n the library used by browser JavaScript/TypeScript code to interact with Convex\n server functions.\n- [@convex-dev/react](https://www.npmjs.com/package/@convex-dev/react) is layer\n on top of\n [@convex-dev/browser](https://www.npmjs.com/package/@convex-dev/browser) that\n provides more convenient binding with React components.\n- [@convex-dev/server](https://www.npmjs.com/package/@convex-dev/server) is the\n library used by Convex server functions to interact with data.\n"
}

@@ -103,6 +103,9 @@ import chalk from "chalk";

export function configFilename(deployment: string): string {
if (deployment == "") {
export function configFilename(deployment: string | null): string {
if (deployment == null) {
return "convex.json";
} else {
if (deployment == "") {
throw new Error("Can't have empty string for deployment");
}
return `convex.${deployment}.json`;

@@ -114,3 +117,3 @@ }

export async function readConfig(
deployment: string,
deployment: string | null,
verbose: boolean

@@ -171,3 +174,3 @@ ): Promise<{

const env = await readEnv(deployment);
if (env != undefined) {
if (env != null) {
return env;

@@ -191,6 +194,9 @@ }

export function envFilename(deployment: string): string {
if (deployment == "") {
export function envFilename(deployment: string | null): string {
if (deployment == null) {
return ".env.local";
} else {
if (deployment == "") {
throw new Error("Can't have empty string for deployment");
}
return `.env.${deployment}.local`;

@@ -200,3 +206,3 @@ }

export async function readEnv(deployment: string): Promise<Env | undefined> {
export async function readEnv(deployment: string): Promise<Env | null> {
if (process.env.CONVEX_ADMIN_KEY) {

@@ -212,3 +218,3 @@ return { adminKey: process.env.CONVEX_ADMIN_KEY };

} catch (err) {
return undefined;
return null;
}

@@ -218,3 +224,3 @@ const envFile = envfileParse(envContents);

if (!adminKey || adminKey == "undefined") {
return undefined;
return null;
}

@@ -326,9 +332,12 @@ return { adminKey };

}
// If the list of indexes is empty, filter out the key so it won't be serialized into the JSON output.
// There's no need to filter out AuthInfo when unset, as JSON.stringify will skip over values that are `undefined`.
let keys = Object.keys(instanceConfig).filter(
(key) => !(key == "indexes" && instanceConfig.indexes.length == 0)
);
// If the list of indexes is empty, remove it from the object to be written out.
let toWrite = {};
if (instanceConfig.indexes.length == 0) {
let { indexes, ...rest } = instanceConfig;
Object.assign(toWrite, rest);
} else {
Object.assign(toWrite, instanceConfig);
}
try {
await configFile.writeFile(JSON.stringify(instanceConfig, keys, 2) + "\n");
await configFile.writeFile(JSON.stringify(toWrite, undefined, 2) + "\n");
} catch (err) {

@@ -461,5 +470,12 @@ console.error(

function renderModule(functions: string, module: Bundle): String {
function renderModule(
functions: string,
module: Bundle,
verbose: boolean
): String {
const relPath = path.join(functions, module.path);
return relPath + "\n" + module.source;
if (verbose) {
return relPath + "\n" + module.source;
}
return relPath;
}

@@ -472,3 +488,4 @@

newConfig: InstanceConfig,
newModules: Bundle[]
newModules: Bundle[],
verbose: boolean
): String {

@@ -535,3 +552,4 @@ var diff = "";

for (const module of droppedModules) {
diff += "[-] " + renderModule(oldConfig.functions, module) + "\n";
diff +=
"[-] " + renderModule(oldConfig.functions, module, verbose) + "\n";
}

@@ -558,8 +576,47 @@ }

for (const module of addedModules) {
diff += "[+] " + renderModule(newConfig.functions, module) + "\n";
diff +=
"[+] " + renderModule(newConfig.functions, module, verbose) + "\n";
}
}
// TODO: Consider printing out changes to `InstanceConfig.authInfo` here as well.
let droppedAuth = [];
for (const oldAuth of oldConfig.authInfo) {
var matches = false;
for (const newAuth of newConfig.authInfo) {
if (equal(oldAuth, newAuth)) {
matches = true;
break;
}
}
if (!matches) {
droppedAuth.push(oldAuth);
}
}
if (droppedAuth.length > 0) {
diff += "Remove the following auth providers:\n";
for (const authInfo of droppedAuth) {
diff += "[-] " + JSON.stringify(authInfo) + "\n";
}
}
let addedAuth = [];
for (const newAuth of newConfig.authInfo) {
var matches = false;
for (const oldAuth of oldConfig.authInfo) {
if (equal(newAuth, oldAuth)) {
matches = true;
break;
}
}
if (!matches) {
addedAuth.push(newAuth);
}
}
if (addedAuth.length > 0) {
diff += "Add the following auth providers:\n";
for (const auth of addedAuth) {
diff += "[+] " + JSON.stringify(auth) + "\n";
}
}
return diff;
}

@@ -19,9 +19,7 @@ import { Command } from "commander";

"--deployment <name>",
"Name of deployment to show dashboard for (`convex.<name>.json`). Defaults to `convex.json`)",
""
"Name of deployment to show dashboard for (`convex.<name>.json`). Defaults to `convex.json`)"
)
.action(async (options) => {
const deployment = "";
const adminKey = (await mustReadEnv(deployment)).adminKey;
const { instanceConfig } = await readConfig(deployment, false);
const adminKey = (await mustReadEnv(options.deployment)).adminKey;
const { instanceConfig } = await readConfig(options.deployment, false);
const loginUrl = await dashboardLogin(instanceConfig.origin, adminKey);

@@ -28,0 +26,0 @@

@@ -19,3 +19,3 @@ import { Command } from "commander";

"Deactivate an existing instance associated with the Convex app in current directory, " +
"returning your beta-key redemption. The data still lives on convex servers. If you " +
"returning your beta-key redemption. The data still lives on Convex's servers. If you " +
"really want all data purged, please contact support@convex.dev"

@@ -29,4 +29,3 @@ )

"--deployment <name>",
"Name of deployment to deactivate (`convex.<name>.json`). Defaults to `convex.json`)",
""
"Name of deployment to deactivate (`convex.<name>.json`). Defaults to `convex.json`)"
)

@@ -33,0 +32,0 @@ .action(async (options) => {

@@ -8,3 +8,39 @@ #!/usr/bin/env node

import { version } from "@convex-dev/common";
import { auth } from "./auth";
import { listInstances } from "./list_instances";
import { reinit } from "./reinit";
import chalk from "chalk";
const MINIMUM_MAJOR_VERSION = 16;
const nodeVersion = process.versions.node;
const majorVersion = parseInt(nodeVersion.split(".")[0], 10);
if (majorVersion < MINIMUM_MAJOR_VERSION) {
console.log(
chalk.red(
`Your Node version ${nodeVersion} is too old. Convex requires at least Node v${MINIMUM_MAJOR_VERSION}.`
)
);
console.log(
chalk.gray(
`You can use ${chalk.bold(
"nvm"
)} (https://github.com/nvm-sh/nvm#installing-and-updating) to manage different versions of Node.`
)
);
console.log(
chalk.gray(
"After installing `nvm`, install the latest version of Node with " +
chalk.bold("`nvm install node`.")
)
);
console.log(
chalk.gray(
"Then, activate the installed version in your terminal with " +
chalk.bold("`nvm use`.")
)
);
process.exit(1);
}
const program = new Command();

@@ -17,5 +53,8 @@ program.name("convex");

program.addCommand(dashboard);
program.addCommand(listInstances);
program.addCommand(reinit);
program.addCommand(deactivate);
program.addCommand(auth);
program.version(version);
program.parseAsync(process.argv);

@@ -12,2 +12,3 @@ import { Command } from "commander";

envFilename,
readConfig,
} from "./config";

@@ -27,4 +28,3 @@ import { version } from "@convex-dev/common";

"--deployment <name>",
"Name of deployment to create (`convex.<name>.json`). Defaults to `convex.json`)",
""
"Name of deployment to create (`convex.<name>.json`). Defaults to `convex.json`"
)

@@ -53,5 +53,16 @@ .action(async (options) => {

}
const existingConfig = fs
.readdirSync(".")
.find((e) => e.match("^convex.*.json"));
var existingInstanceName;
if (existingConfig != undefined) {
const matches = existingConfig.match("^convex.(.*).json$");
const existingDeployment = matches && matches[1];
const { instanceConfig } = await readConfig(existingDeployment, false);
existingInstanceName = instanceConfig.instanceName;
}
const envFn = envFilename(options.deployment);
const env = await readEnv(options.deployment);
if (env != undefined) {
if (env != null) {
console.error(chalk.red(`File "${envFn}" already exists.`));

@@ -75,3 +86,5 @@ console.error("Remove this file to create a new project.");

const { instanceOrigin, adminKey, redemptionsRemaining } = await provision(
betaKey
betaKey,
existingInstanceName,
options.deployment
);

@@ -127,6 +140,12 @@ // Clear spinner.

betaKey?: string;
existingInstanceName?: string;
deployment?: string;
}
/** Provision a new empty server instance and return the origin. */
async function provision(betaKey?: string): Promise<{
async function provision(
betaKey?: string,
existingInstanceName?: string,
deployment?: string
): Promise<{
instanceName: string;

@@ -140,2 +159,4 @@ instanceOrigin: string;

betaKey,
existingInstanceName,
deployment,
};

@@ -156,3 +177,3 @@ const provisionUrl = `${provisionHost}/api/${version}/provision`;

chalk.gray(
"Pass it with --beta-key; if you don't have one, sign up at https://convex.dev"
"Pass it in with --beta-key; if you don't have one, sign up at https://convex.dev"
)

@@ -159,0 +180,0 @@ );

@@ -16,3 +16,4 @@ import { Command } from "commander";

.description("Push local instance config to Convex Cloud")
.option("-v, --verbose", "Show changes and prompt for confirmation")
.option("-v, --verbose", "Show full listing of changes")
.option("-p, --prompt", "Prompt for confirmation")
.option(

@@ -24,4 +25,3 @@ "--dry-run",

"--deployment <name>",
"Name of deployment to push to (`convex.<name>.json`). Defaults to `convex.json`)",
""
"Name of deployment to push to (`convex.<name>.json`). Defaults to `convex.json`"
)

@@ -46,3 +46,4 @@ .action(async (options) => {

localConfig,
localModules
localModules,
options.verbose
);

@@ -54,9 +55,9 @@ if (diff == "") {

if (options.verbose) {
console.log(
chalk.bold(
"Remote instance config will be overwritten with the following changes:"
)
);
console.log(diff);
console.log(
chalk.bold(
"Remote instance config will be overwritten with the following changes:"
)
);
console.log(diff);
if (options.prompt) {
await prompt("Press enter to continue or ctrl-C to abort.\n");

@@ -63,0 +64,0 @@ }

Sorry, the diff of this file is too big to display

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc