├── .gitignore
├── .gitattributes
├── public
├── google97652615ab1c0a78.html
└── favicon.ico
├── src
├── assets
│ └── logo.png
├── App.vue
├── index.css
├── main.js
├── components
│ └── HelloWorld.vue
└── plugins
│ └── vue3-google-oauth2.js
├── vite.config.js
├── index.html
├── package.json
├── README.md
├── LICENSE
└── yarn.lock
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | .DS_Store
3 | dist
4 | *.local
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Auto detect text files and perform LF normalization
2 | * text=auto
3 |
--------------------------------------------------------------------------------
/public/google97652615ab1c0a78.html:
--------------------------------------------------------------------------------
1 | google-site-verification: google97652615ab1c0a78.html
--------------------------------------------------------------------------------
/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guruahn/vue3-google-oauth2-front-sample/HEAD/public/favicon.ico
--------------------------------------------------------------------------------
/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guruahn/vue3-google-oauth2-front-sample/HEAD/src/assets/logo.png
--------------------------------------------------------------------------------
/vite.config.js:
--------------------------------------------------------------------------------
1 | import { defineConfig } from 'vite'
2 | import vue from '@vitejs/plugin-vue'
3 |
4 | // https://vitejs.dev/config/
5 | export default defineConfig({
6 | plugins: [vue()]
7 | })
8 |
--------------------------------------------------------------------------------
/src/App.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
9 |
--------------------------------------------------------------------------------
/src/index.css:
--------------------------------------------------------------------------------
1 | #app {
2 | font-family: Avenir, Helvetica, Arial, sans-serif;
3 | -webkit-font-smoothing: antialiased;
4 | -moz-osx-font-smoothing: grayscale;
5 | text-align: center;
6 | color: #2c3e50;
7 | margin-top: 60px;
8 | }
9 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Vite App
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "vue3-google-oauth2-front-sample2",
3 | "version": "1.0.1",
4 | "scripts": {
5 | "dev": "vite",
6 | "build": "vite build",
7 | "preview": "vite preview"
8 | },
9 | "dependencies": {
10 | "vue": "^3.2.25",
11 | "vue3-google-oauth2": "^1.0.6"
12 | },
13 | "devDependencies": {
14 | "@vitejs/plugin-vue": "^2.0.0",
15 | "vite": "^2.7.2"
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/src/main.js:
--------------------------------------------------------------------------------
1 | import { createApp } from 'vue'
2 | import App from './App.vue'
3 | import './index.css'
4 | import gAuthPlugin from 'vue3-google-oauth2';
5 | const app = createApp(App)
6 | let gauthClientId = "768834812579-ivi0oopbkqe05cg6t41p83t7gteekut6.apps.googleusercontent.com";
7 | app.use(gAuthPlugin, { clientId: gauthClientId, scope: 'email', prompt: 'consent', fetch_basic_profile: false })
8 |
9 | app.mount('#app')
10 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # vue3-google-oauth2-front-sample
2 | > Sample project for [vue3-google-oauth2](https://github.com/guruahn/vue3-google-oauth2) plugin.
3 | > [Demo](https://boring-lamport-199b25.netlify.app/)
4 | ## Project setup
5 |
6 | ### 1. install
7 | ```
8 | yarn install
9 | ```
10 | ### 2. set your google clientId
11 | ```javascript
12 | app.use(gAuthPlugin, { clientId: '394838939483-rq7d2rfj39gkdfjd9jenu670ounoi01.apps.googleusercontent.com', scope: 'email', prompt: 'consent', fetch_basic_profile: false })
13 | ```
14 |
15 | ### Compiles and hot-reloads for development
16 | ```
17 | yarn run dev
18 | ```
19 |
20 | ### Compiles and minifies for production
21 | ```
22 | yarn run build
23 | ```
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2020 Jeong woo Ahn
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/src/components/HelloWorld.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
IsInit: {{ Vue3GoogleOauth.isInit }}
4 | IsAuthorized: {{ Vue3GoogleOauth.isAuthorized }}
5 | signed user: {{user}}
6 | sign in
7 | get authCode
8 | sign out
9 | disconnect
10 |
11 |
12 |
13 |
90 |
91 |
121 |
--------------------------------------------------------------------------------
/src/plugins/vue3-google-oauth2.js:
--------------------------------------------------------------------------------
1 | import { reactive, readonly } from "vue";
2 | let Vue3GoogleOauth;
3 | Vue3GoogleOauth = reactive({
4 | isInit: false,
5 | isAuthorized: false,
6 | })
7 | const googleAuth = (function () {
8 |
9 | function installClient() {
10 | const apiUrl = 'https://apis.google.com/js/api.js';
11 | return new Promise((resolve) => {
12 | let script = document.createElement('script');
13 | script.src = apiUrl;
14 | script.onreadystatechange = script.onload = function () {
15 | if (!script.readyState || /loaded|complete/.test(script.readyState)) {
16 | setTimeout(function () {
17 | resolve()
18 | }, 500)
19 | }
20 | }
21 | document.getElementsByTagName('head')[0].appendChild(script);
22 | })
23 | }
24 |
25 | function initClient(config) {
26 | return new Promise((resolve, reject) => {
27 | window.gapi.load('auth2', () => {
28 | window.gapi.auth2.init(config)
29 | .then(() => {
30 | resolve(window.gapi);
31 | }).catch((error) => {
32 | reject(error);
33 | })
34 | })
35 | })
36 |
37 | }
38 |
39 | function Auth() {
40 | if (!(this instanceof Auth))
41 | return new Auth();
42 | this.instance = null; /* window.gapi.auth2.getAuthInstance() */
43 | this.load = (config) => {
44 | installClient()
45 | .then(() => {
46 | return initClient(config)
47 | })
48 | .then((gapi) => {
49 | this.instance = gapi.auth2.getAuthInstance();
50 |
51 | this.prompt = config.prompt;
52 | Vue3GoogleOauth.instance = gapi.auth2.getAuthInstance();
53 | Vue3GoogleOauth.isInit = true;
54 | Vue3GoogleOauth.isAuthorized = this.instance.isSignedIn.get();
55 | }).catch((error) => {
56 | console.error(error);
57 | })
58 | };
59 |
60 | this.signIn = () => {
61 | return new Promise((resolve, reject) => {
62 | if (!this.instance) {
63 | reject(false)
64 | return
65 | }
66 | this.instance.signIn()
67 | .then(googleUser => {
68 | Vue3GoogleOauth.isAuthorized = this.instance.isSignedIn.get();
69 | resolve(googleUser);
70 | })
71 | .catch(error => {
72 | reject(error);
73 | })
74 | })
75 | };
76 |
77 | this.getAuthCode = () => {
78 | return new Promise((resolve, reject) => {
79 | if (!this.instance) {
80 | reject(false)
81 | return
82 | }
83 | this.instance.grantOfflineAccess({ prompt: this.prompt })
84 | .then(function (resp) {
85 | resolve(resp.code)
86 | })
87 | .catch(function (error) {
88 | reject(error)
89 | })
90 | })
91 | };
92 |
93 | this.signOut = () => {
94 | return new Promise((resolve, reject) => {
95 | if (!this.instance) {
96 | reject(false)
97 | return
98 | }
99 | this.instance.signOut()
100 | .then(() => {
101 | Vue3GoogleOauth.isAuthorized = false;
102 | resolve(true)
103 | })
104 | .catch(error => {
105 | reject(error)
106 | })
107 | })
108 | };
109 | }
110 |
111 | return new Auth()
112 | })();
113 |
114 | export default {
115 | install: (app, options) => {
116 | /* eslint-disable */
117 | //set config
118 | let config = null
119 | let defaultConfig = { scope: 'profile email', prompt: 'select_account' };
120 | if (typeof options === 'object') {
121 | config = Object.assign(defaultConfig, options);
122 | if (!options.clientId) {
123 | throw new Error('clientId is require');
124 | }
125 | } else {
126 | throw new TypeError('invalid option type. Object type accepted only');
127 | }
128 |
129 | //Install Vue plugin
130 | googleAuth.load(config);
131 | app.config.globalProperties.$gAuth = googleAuth;
132 | app.provide('Vue3GoogleOauth', readonly(Vue3GoogleOauth));
133 |
134 | }
135 | }
--------------------------------------------------------------------------------
/yarn.lock:
--------------------------------------------------------------------------------
1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 | # yarn lockfile v1
3 |
4 |
5 | "@babel/parser@^7.16.4":
6 | version "7.16.7"
7 | resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.16.7.tgz#d372dda9c89fcec340a82630a9f533f2fe15877e"
8 | integrity sha512-sR4eaSrnM7BV7QPzGfEX5paG/6wrZM3I0HDzfIAK06ESvo9oy3xBuVBxE3MbQaKNhvg8g/ixjMWo2CGpzpHsDA==
9 |
10 | "@vitejs/plugin-vue@^2.0.0":
11 | version "2.0.1"
12 | resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-2.0.1.tgz#db0e5eacf96358e04cc501c9008079b25a70a4ac"
13 | integrity sha512-wtdMnGVvys9K8tg+DxowU1ytTrdVveXr3LzdhaKakysgGXyrsfaeds2cDywtvujEASjWOwWL/OgWM+qoeM8Plg==
14 |
15 | "@vue/compiler-core@3.2.26":
16 | version "3.2.26"
17 | resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.2.26.tgz#9ab92ae624da51f7b6064f4679c2d4564f437cc8"
18 | integrity sha512-N5XNBobZbaASdzY9Lga2D9Lul5vdCIOXvUMd6ThcN8zgqQhPKfCV+wfAJNNJKQkSHudnYRO2gEB+lp0iN3g2Tw==
19 | dependencies:
20 | "@babel/parser" "^7.16.4"
21 | "@vue/shared" "3.2.26"
22 | estree-walker "^2.0.2"
23 | source-map "^0.6.1"
24 |
25 | "@vue/compiler-dom@3.2.26":
26 | version "3.2.26"
27 | resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.2.26.tgz#c7a7b55d50a7b7981dd44fc28211df1450482667"
28 | integrity sha512-smBfaOW6mQDxcT3p9TKT6mE22vjxjJL50GFVJiI0chXYGU/xzC05QRGrW3HHVuJrmLTLx5zBhsZ2dIATERbarg==
29 | dependencies:
30 | "@vue/compiler-core" "3.2.26"
31 | "@vue/shared" "3.2.26"
32 |
33 | "@vue/compiler-sfc@3.2.26":
34 | version "3.2.26"
35 | resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.2.26.tgz#3ce76677e4aa58311655a3bea9eb1cb804d2273f"
36 | integrity sha512-ePpnfktV90UcLdsDQUh2JdiTuhV0Skv2iYXxfNMOK/F3Q+2BO0AulcVcfoksOpTJGmhhfosWfMyEaEf0UaWpIw==
37 | dependencies:
38 | "@babel/parser" "^7.16.4"
39 | "@vue/compiler-core" "3.2.26"
40 | "@vue/compiler-dom" "3.2.26"
41 | "@vue/compiler-ssr" "3.2.26"
42 | "@vue/reactivity-transform" "3.2.26"
43 | "@vue/shared" "3.2.26"
44 | estree-walker "^2.0.2"
45 | magic-string "^0.25.7"
46 | postcss "^8.1.10"
47 | source-map "^0.6.1"
48 |
49 | "@vue/compiler-ssr@3.2.26":
50 | version "3.2.26"
51 | resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.2.26.tgz#fd049523341fbf4ab5e88e25eef566d862894ba7"
52 | integrity sha512-2mywLX0ODc4Zn8qBoA2PDCsLEZfpUGZcyoFRLSOjyGGK6wDy2/5kyDOWtf0S0UvtoyVq95OTSGIALjZ4k2q/ag==
53 | dependencies:
54 | "@vue/compiler-dom" "3.2.26"
55 | "@vue/shared" "3.2.26"
56 |
57 | "@vue/reactivity-transform@3.2.26":
58 | version "3.2.26"
59 | resolved "https://registry.yarnpkg.com/@vue/reactivity-transform/-/reactivity-transform-3.2.26.tgz#6d8f20a4aa2d19728f25de99962addbe7c4d03e9"
60 | integrity sha512-XKMyuCmzNA7nvFlYhdKwD78rcnmPb7q46uoR00zkX6yZrUmcCQ5OikiwUEVbvNhL5hBJuvbSO95jB5zkUon+eQ==
61 | dependencies:
62 | "@babel/parser" "^7.16.4"
63 | "@vue/compiler-core" "3.2.26"
64 | "@vue/shared" "3.2.26"
65 | estree-walker "^2.0.2"
66 | magic-string "^0.25.7"
67 |
68 | "@vue/reactivity@3.2.26":
69 | version "3.2.26"
70 | resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.2.26.tgz#d529191e581521c3c12e29ef986d4c8a933a0f83"
71 | integrity sha512-h38bxCZLW6oFJVDlCcAiUKFnXI8xP8d+eO0pcDxx+7dQfSPje2AO6M9S9QO6MrxQB7fGP0DH0dYQ8ksf6hrXKQ==
72 | dependencies:
73 | "@vue/shared" "3.2.26"
74 |
75 | "@vue/runtime-core@3.2.26":
76 | version "3.2.26"
77 | resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.2.26.tgz#5c59cc440ed7a39b6dbd4c02e2d21c8d1988f0de"
78 | integrity sha512-BcYi7qZ9Nn+CJDJrHQ6Zsmxei2hDW0L6AB4vPvUQGBm2fZyC0GXd/4nVbyA2ubmuhctD5RbYY8L+5GUJszv9mQ==
79 | dependencies:
80 | "@vue/reactivity" "3.2.26"
81 | "@vue/shared" "3.2.26"
82 |
83 | "@vue/runtime-dom@3.2.26":
84 | version "3.2.26"
85 | resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.2.26.tgz#84d3ae2584488747717c2e072d5d9112c0d2e6c2"
86 | integrity sha512-dY56UIiZI+gjc4e8JQBwAifljyexfVCkIAu/WX8snh8vSOt/gMSEGwPRcl2UpYpBYeyExV8WCbgvwWRNt9cHhQ==
87 | dependencies:
88 | "@vue/runtime-core" "3.2.26"
89 | "@vue/shared" "3.2.26"
90 | csstype "^2.6.8"
91 |
92 | "@vue/server-renderer@3.2.26":
93 | version "3.2.26"
94 | resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.2.26.tgz#f16a4b9fbcc917417b4cea70c99afce2701341cf"
95 | integrity sha512-Jp5SggDUvvUYSBIvYEhy76t4nr1vapY/FIFloWmQzn7UxqaHrrBpbxrqPcTrSgGrcaglj0VBp22BKJNre4aA1w==
96 | dependencies:
97 | "@vue/compiler-ssr" "3.2.26"
98 | "@vue/shared" "3.2.26"
99 |
100 | "@vue/shared@3.2.26":
101 | version "3.2.26"
102 | resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.2.26.tgz#7acd1621783571b9a82eca1f041b4a0a983481d9"
103 | integrity sha512-vPV6Cq+NIWbH5pZu+V+2QHE9y1qfuTq49uNWw4f7FDEeZaDU2H2cx5jcUZOAKW7qTrUS4k6qZPbMy1x4N96nbA==
104 |
105 | csstype@^2.6.8:
106 | version "2.6.19"
107 | resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.19.tgz#feeb5aae89020bb389e1f63669a5ed490e391caa"
108 | integrity sha512-ZVxXaNy28/k3kJg0Fou5MiYpp88j7H9hLZp8PDC3jV0WFjfH5E9xHb56L0W59cPbKbcHXeP4qyT8PrHp8t6LcQ==
109 |
110 | esbuild-android-arm64@0.13.15:
111 | version "0.13.15"
112 | resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.13.15.tgz#3fc3ff0bab76fe35dd237476b5d2b32bb20a3d44"
113 | integrity sha512-m602nft/XXeO8YQPUDVoHfjyRVPdPgjyyXOxZ44MK/agewFFkPa8tUo6lAzSWh5Ui5PB4KR9UIFTSBKh/RrCmg==
114 |
115 | esbuild-darwin-64@0.13.15:
116 | version "0.13.15"
117 | resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.13.15.tgz#8e9169c16baf444eacec60d09b24d11b255a8e72"
118 | integrity sha512-ihOQRGs2yyp7t5bArCwnvn2Atr6X4axqPpEdCFPVp7iUj4cVSdisgvEKdNR7yH3JDjW6aQDw40iQFoTqejqxvQ==
119 |
120 | esbuild-darwin-arm64@0.13.15:
121 | version "0.13.15"
122 | resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.13.15.tgz#1b07f893b632114f805e188ddfca41b2b778229a"
123 | integrity sha512-i1FZssTVxUqNlJ6cBTj5YQj4imWy3m49RZRnHhLpefFIh0To05ow9DTrXROTE1urGTQCloFUXTX8QfGJy1P8dQ==
124 |
125 | esbuild-freebsd-64@0.13.15:
126 | version "0.13.15"
127 | resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.13.15.tgz#0b8b7eca1690c8ec94c75680c38c07269c1f4a85"
128 | integrity sha512-G3dLBXUI6lC6Z09/x+WtXBXbOYQZ0E8TDBqvn7aMaOCzryJs8LyVXKY4CPnHFXZAbSwkCbqiPuSQ1+HhrNk7EA==
129 |
130 | esbuild-freebsd-arm64@0.13.15:
131 | version "0.13.15"
132 | resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.13.15.tgz#2e1a6c696bfdcd20a99578b76350b41db1934e52"
133 | integrity sha512-KJx0fzEDf1uhNOZQStV4ujg30WlnwqUASaGSFPhznLM/bbheu9HhqZ6mJJZM32lkyfGJikw0jg7v3S0oAvtvQQ==
134 |
135 | esbuild-linux-32@0.13.15:
136 | version "0.13.15"
137 | resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.13.15.tgz#6fd39f36fc66dd45b6b5f515728c7bbebc342a69"
138 | integrity sha512-ZvTBPk0YWCLMCXiFmD5EUtB30zIPvC5Itxz0mdTu/xZBbbHJftQgLWY49wEPSn2T/TxahYCRDWun5smRa0Tu+g==
139 |
140 | esbuild-linux-64@0.13.15:
141 | version "0.13.15"
142 | resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.13.15.tgz#9cb8e4bcd7574e67946e4ee5f1f1e12386bb6dd3"
143 | integrity sha512-eCKzkNSLywNeQTRBxJRQ0jxRCl2YWdMB3+PkWFo2BBQYC5mISLIVIjThNtn6HUNqua1pnvgP5xX0nHbZbPj5oA==
144 |
145 | esbuild-linux-arm64@0.13.15:
146 | version "0.13.15"
147 | resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.13.15.tgz#3891aa3704ec579a1b92d2a586122e5b6a2bfba1"
148 | integrity sha512-bYpuUlN6qYU9slzr/ltyLTR9YTBS7qUDymO8SV7kjeNext61OdmqFAzuVZom+OLW1HPHseBfJ/JfdSlx8oTUoA==
149 |
150 | esbuild-linux-arm@0.13.15:
151 | version "0.13.15"
152 | resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.13.15.tgz#8a00e99e6a0c6c9a6b7f334841364d8a2b4aecfe"
153 | integrity sha512-wUHttDi/ol0tD8ZgUMDH8Ef7IbDX+/UsWJOXaAyTdkT7Yy9ZBqPg8bgB/Dn3CZ9SBpNieozrPRHm0BGww7W/jA==
154 |
155 | esbuild-linux-mips64le@0.13.15:
156 | version "0.13.15"
157 | resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.13.15.tgz#36b07cc47c3d21e48db3bb1f4d9ef8f46aead4f7"
158 | integrity sha512-KlVjIG828uFPyJkO/8gKwy9RbXhCEUeFsCGOJBepUlpa7G8/SeZgncUEz/tOOUJTcWMTmFMtdd3GElGyAtbSWg==
159 |
160 | esbuild-linux-ppc64le@0.13.15:
161 | version "0.13.15"
162 | resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.13.15.tgz#f7e6bba40b9a11eb9dcae5b01550ea04670edad2"
163 | integrity sha512-h6gYF+OsaqEuBjeesTBtUPw0bmiDu7eAeuc2OEH9S6mV9/jPhPdhOWzdeshb0BskRZxPhxPOjqZ+/OqLcxQwEQ==
164 |
165 | esbuild-netbsd-64@0.13.15:
166 | version "0.13.15"
167 | resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.13.15.tgz#a2fedc549c2b629d580a732d840712b08d440038"
168 | integrity sha512-3+yE9emwoevLMyvu+iR3rsa+Xwhie7ZEHMGDQ6dkqP/ndFzRHkobHUKTe+NCApSqG5ce2z4rFu+NX/UHnxlh3w==
169 |
170 | esbuild-openbsd-64@0.13.15:
171 | version "0.13.15"
172 | resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.13.15.tgz#b22c0e5806d3a1fbf0325872037f885306b05cd7"
173 | integrity sha512-wTfvtwYJYAFL1fSs8yHIdf5GEE4NkbtbXtjLWjM3Cw8mmQKqsg8kTiqJ9NJQe5NX/5Qlo7Xd9r1yKMMkHllp5g==
174 |
175 | esbuild-sunos-64@0.13.15:
176 | version "0.13.15"
177 | resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.13.15.tgz#d0b6454a88375ee8d3964daeff55c85c91c7cef4"
178 | integrity sha512-lbivT9Bx3t1iWWrSnGyBP9ODriEvWDRiweAs69vI+miJoeKwHWOComSRukttbuzjZ8r1q0mQJ8Z7yUsDJ3hKdw==
179 |
180 | esbuild-windows-32@0.13.15:
181 | version "0.13.15"
182 | resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.13.15.tgz#c96d0b9bbb52f3303322582ef8e4847c5ad375a7"
183 | integrity sha512-fDMEf2g3SsJ599MBr50cY5ve5lP1wyVwTe6aLJsM01KtxyKkB4UT+fc5MXQFn3RLrAIAZOG+tHC+yXObpSn7Nw==
184 |
185 | esbuild-windows-64@0.13.15:
186 | version "0.13.15"
187 | resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.13.15.tgz#1f79cb9b1e1bb02fb25cd414cb90d4ea2892c294"
188 | integrity sha512-9aMsPRGDWCd3bGjUIKG/ZOJPKsiztlxl/Q3C1XDswO6eNX/Jtwu4M+jb6YDH9hRSUflQWX0XKAfWzgy5Wk54JQ==
189 |
190 | esbuild-windows-arm64@0.13.15:
191 | version "0.13.15"
192 | resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.13.15.tgz#482173070810df22a752c686509c370c3be3b3c3"
193 | integrity sha512-zzvyCVVpbwQQATaf3IG8mu1IwGEiDxKkYUdA4FpoCHi1KtPa13jeScYDjlW0Qh+ebWzpKfR2ZwvqAQkSWNcKjA==
194 |
195 | esbuild@^0.13.12:
196 | version "0.13.15"
197 | resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.13.15.tgz#db56a88166ee373f87dbb2d8798ff449e0450cdf"
198 | integrity sha512-raCxt02HBKv8RJxE8vkTSCXGIyKHdEdGfUmiYb8wnabnaEmHzyW7DCHb5tEN0xU8ryqg5xw54mcwnYkC4x3AIw==
199 | optionalDependencies:
200 | esbuild-android-arm64 "0.13.15"
201 | esbuild-darwin-64 "0.13.15"
202 | esbuild-darwin-arm64 "0.13.15"
203 | esbuild-freebsd-64 "0.13.15"
204 | esbuild-freebsd-arm64 "0.13.15"
205 | esbuild-linux-32 "0.13.15"
206 | esbuild-linux-64 "0.13.15"
207 | esbuild-linux-arm "0.13.15"
208 | esbuild-linux-arm64 "0.13.15"
209 | esbuild-linux-mips64le "0.13.15"
210 | esbuild-linux-ppc64le "0.13.15"
211 | esbuild-netbsd-64 "0.13.15"
212 | esbuild-openbsd-64 "0.13.15"
213 | esbuild-sunos-64 "0.13.15"
214 | esbuild-windows-32 "0.13.15"
215 | esbuild-windows-64 "0.13.15"
216 | esbuild-windows-arm64 "0.13.15"
217 |
218 | estree-walker@^2.0.2:
219 | version "2.0.2"
220 | resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac"
221 | integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==
222 |
223 | fsevents@~2.3.2:
224 | version "2.3.2"
225 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
226 | integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
227 |
228 | function-bind@^1.1.1:
229 | version "1.1.1"
230 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
231 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
232 |
233 | has@^1.0.3:
234 | version "1.0.3"
235 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
236 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
237 | dependencies:
238 | function-bind "^1.1.1"
239 |
240 | is-core-module@^2.8.0:
241 | version "2.8.1"
242 | resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.1.tgz#f59fdfca701d5879d0a6b100a40aa1560ce27211"
243 | integrity sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==
244 | dependencies:
245 | has "^1.0.3"
246 |
247 | magic-string@^0.25.7:
248 | version "0.25.7"
249 | resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.7.tgz#3f497d6fd34c669c6798dcb821f2ef31f5445051"
250 | integrity sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==
251 | dependencies:
252 | sourcemap-codec "^1.4.4"
253 |
254 | nanoid@^3.1.30:
255 | version "3.1.30"
256 | resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.30.tgz#63f93cc548d2a113dc5dfbc63bfa09e2b9b64362"
257 | integrity sha512-zJpuPDwOv8D2zq2WRoMe1HsfZthVewpel9CAvTfc/2mBD1uUT/agc5f7GHGWXlYkFvi1mVxe4IjvP2HNrop7nQ==
258 |
259 | path-parse@^1.0.7:
260 | version "1.0.7"
261 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
262 | integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
263 |
264 | picocolors@^1.0.0:
265 | version "1.0.0"
266 | resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"
267 | integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==
268 |
269 | postcss@^8.1.10, postcss@^8.4.5:
270 | version "8.4.5"
271 | resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.5.tgz#bae665764dfd4c6fcc24dc0fdf7e7aa00cc77f95"
272 | integrity sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==
273 | dependencies:
274 | nanoid "^3.1.30"
275 | picocolors "^1.0.0"
276 | source-map-js "^1.0.1"
277 |
278 | resolve@^1.20.0:
279 | version "1.21.0"
280 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.21.0.tgz#b51adc97f3472e6a5cf4444d34bc9d6b9037591f"
281 | integrity sha512-3wCbTpk5WJlyE4mSOtDLhqQmGFi0/TD9VPwmiolnk8U0wRgMEktqCXd3vy5buTO3tljvalNvKrjHEfrd2WpEKA==
282 | dependencies:
283 | is-core-module "^2.8.0"
284 | path-parse "^1.0.7"
285 | supports-preserve-symlinks-flag "^1.0.0"
286 |
287 | rollup@^2.59.0:
288 | version "2.63.0"
289 | resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.63.0.tgz#fe2f7fec2133f3fab9e022b9ac245628d817c6bb"
290 | integrity sha512-nps0idjmD+NXl6OREfyYXMn/dar3WGcyKn+KBzPdaLecub3x/LrId0wUcthcr8oZUAcZAR8NKcfGGFlNgGL1kQ==
291 | optionalDependencies:
292 | fsevents "~2.3.2"
293 |
294 | source-map-js@^1.0.1:
295 | version "1.0.1"
296 | resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.1.tgz#a1741c131e3c77d048252adfa24e23b908670caf"
297 | integrity sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA==
298 |
299 | source-map@^0.6.1:
300 | version "0.6.1"
301 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
302 | integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
303 |
304 | sourcemap-codec@^1.4.4:
305 | version "1.4.8"
306 | resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4"
307 | integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==
308 |
309 | supports-preserve-symlinks-flag@^1.0.0:
310 | version "1.0.0"
311 | resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
312 | integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
313 |
314 | vite@^2.7.2:
315 | version "2.7.10"
316 | resolved "https://registry.yarnpkg.com/vite/-/vite-2.7.10.tgz#d12c4c10e56a0ecf7890cb529c15996c6111218f"
317 | integrity sha512-KEY96ntXUid1/xJihJbgmLZx7QSC2D4Tui0FdS0Old5OokYzFclcofhtxtjDdGOk/fFpPbHv9yw88+rB93Tb8w==
318 | dependencies:
319 | esbuild "^0.13.12"
320 | postcss "^8.4.5"
321 | resolve "^1.20.0"
322 | rollup "^2.59.0"
323 | optionalDependencies:
324 | fsevents "~2.3.2"
325 |
326 | vue3-google-oauth2@^1.0.6:
327 | version "1.0.6"
328 | resolved "https://registry.yarnpkg.com/vue3-google-oauth2/-/vue3-google-oauth2-1.0.6.tgz#bde2e17a565e83979d54f83e27bac8e7ced03b1a"
329 | integrity sha512-ebUW3V1jejImw2z9nggjczPj4jUnZArNq+kgTdLdGuf6k/zQDDCeGTLmTUiy5gSXMbzVz9PQWiVEj8eX6y/I0Q==
330 |
331 | vue@^3.2.25:
332 | version "3.2.26"
333 | resolved "https://registry.yarnpkg.com/vue/-/vue-3.2.26.tgz#5db575583ecae495c7caa5c12fd590dffcbb763e"
334 | integrity sha512-KD4lULmskL5cCsEkfhERVRIOEDrfEL9CwAsLYpzptOGjaGFNWo3BQ9g8MAb7RaIO71rmVOziZ/uEN/rHwcUIhg==
335 | dependencies:
336 | "@vue/compiler-dom" "3.2.26"
337 | "@vue/compiler-sfc" "3.2.26"
338 | "@vue/runtime-dom" "3.2.26"
339 | "@vue/server-renderer" "3.2.26"
340 | "@vue/shared" "3.2.26"
341 |
--------------------------------------------------------------------------------