From ae72a31d8001c7c09fdf68d7e2a9f313bf368fdc Mon Sep 17 00:00:00 2001 From: milooy Date: Tue, 14 Jan 2025 10:59:50 +0900 Subject: [PATCH 1/3] fix: remove unnessesory license text --- LICENSE.md | 6 ------ 1 file changed, 6 deletions(-) diff --git a/LICENSE.md b/LICENSE.md index 1761b21c..fe0b5a51 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -19,9 +19,3 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ---- - -Some of the test code in this software comes from the lodash library (https://github.com/lodash/lodash). - -The copyright for this imported test code from lodash is owned by the JS Foundation and other contributors . \ No newline at end of file From f601aa143d8d87ad111ecfde6c51c684e4e51b9e Mon Sep 17 00:00:00 2001 From: milooy Date: Tue, 14 Jan 2025 11:00:23 +0900 Subject: [PATCH 2/3] feat: update readme to en --- README.md | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index 4f0bcc4a..202b8c46 100644 --- a/README.md +++ b/README.md @@ -1,27 +1,27 @@ ![Frontend Fundamentals](./public/images/ff-meta.png) # Frontend Fundamentals -> 변경하기 쉬운 프론트엔드 코드를 위한 지침서 +> Guidelines for easily modifiable frontend code -Frontend Fundamentals(FF)는 좋은 프론트엔드 코드의 기준을 제공해요. 프론트엔드 개발자로서 코드 품질을 높이고자 할 때 방향을 찾는 나침반처럼 활용해 보세요. -좋은 코드에 대한 4개 원칙과 함께, 구체적인 예시 및 해결 방안을 제시해요. -https://frontend-fundamentals.com +**Frontend Fundamentals (FF)** provides standards for writing great frontend code. Think of it as a compass to help you navigate towards better code quality as a frontend developer. +It introduces four core principles of good code, along with practical examples and solutions. +https://frontend-fundamentals.com/en/ -## 이럴 때 활용해 보세요 -- 🦨 코드에 대해서 고민되는데 논리적으로 설명하기 어려운 개발자 -- 👀 나쁜 코드를 빠르게 감지하고 개선하는 방법을 공부하고 싶은 개발자 -- 🤓 코드 리뷰 등에서 누가 전달해준 링크를 타고 들어와 "내 코드가 이랬구나"를 객관적 시각으로 인지하게 될 개발자 -- 👥 팀과 함께 공통의 코딩 스타일과 코드 품질의 기준을 세워보고 싶은 개발자 +## When to Use +- 🦨 When you're unsure about your code but find it hard to explain the issues logically +- 👀 When you want to learn how to quickly identify and fix bad code +- 🤓 When you find yourself exploring a shared link during a code review and realize, "This is exactly what my code looks like," from an objective perspective +- 👥 When your team wants to establish a shared coding style and standards for code quality ## Contributing -Frontend Fundamentals(FF)는 커뮤니티와 함께 좋은 코드의 기준을 만들어 가고 있어요. +**Frontend Fundamentals (FF)** is a community-driven project to establish standards for writing good code. -고민되는 코드가 있다면 깃허브 디스커션에 글을 올려 보세요. -내 코드에 대해서 커뮤니티에서 다각도로 리뷰를 받을 수 있고, 좋은 코드의 기준에 대해 커뮤니티와 함께 고민할 수 있어요. -많은 공감을 받은 사례는 직접 Frontend Fundamentals 문서에 올릴 수 있어요. 기여 방법은 추후 공개될 예정이에요. +If you have a piece of code you're unsure about, post it on the GitHub Discussions page. +The community can provide diverse reviews of your code, helping you and others think critically about what makes good code. +Highly supported cases may even make it into the Frontend Fundamentals documentation. Contribution guidelines will be announced soon. -- [깃허브 디스커션에 글 올리기](https://github.com/toss/frontend-fundamentals/discussions) +- [Post on GitHub Discussions](https://github.com/toss/frontend-fundamentals/discussions) ## License @@ -32,4 +32,4 @@ MIT © Viva Republica, Inc. See [LICENSE](./LICENSE.md) for details. Toss - + \ No newline at end of file From 4b242000b352262c9f66ad8891abe1af9dd082be Mon Sep 17 00:00:00 2001 From: milooy Date: Tue, 14 Jan 2025 11:01:09 +0900 Subject: [PATCH 3/3] feat: initialize amplitude --- .env.example | 1 + .pnp.cjs | 137 ++++++++++++++++++++++++++++++++++++++ .vitepress/theme/index.ts | 11 ++- package.json | 1 + yarn.lock | 121 +++++++++++++++++++++++++++++++++ 5 files changed, 269 insertions(+), 2 deletions(-) create mode 100644 .env.example diff --git a/.env.example b/.env.example new file mode 100644 index 00000000..3c5ab22f --- /dev/null +++ b/.env.example @@ -0,0 +1 @@ +VITE_AMPLITUDE_API_KEY=YOUR_AMPLITUDE_API_KEY diff --git a/.pnp.cjs b/.pnp.cjs index f29c0b3a..c2e2392e 100755 --- a/.pnp.cjs +++ b/.pnp.cjs @@ -27,6 +27,7 @@ const RAW_RUNTIME_STATE = [null, {\ "packageLocation": "./",\ "packageDependencies": [\ + ["@amplitude/analytics-browser", "npm:2.11.11::__archiveUrl=http%3A%2F%2Fnexus.toss.bz%2Frepository%2Fnpm-group%2F%40amplitude%2Fanalytics-browser%2F-%2Fanalytics-browser-2.11.11.tgz"],\ ["markdown-it-footnote", "npm:4.0.0::__archiveUrl=http%3A%2F%2Fnexus.toss.bz%2Frepository%2Fnpm-group%2Fmarkdown-it-footnote%2F-%2Fmarkdown-it-footnote-4.0.0.tgz"],\ ["typescript", "patch:typescript@npm%3A5.7.2%3A%3A__archiveUrl=http%253A%252F%252Fnexus.toss.bz%252Frepository%252Fnpm-group%252Ftypescript%252F-%252Ftypescript-5.7.2.tgz#optional!builtin::version=5.7.2&hash=5786d5"],\ ["vitepress", "virtual:8c216222b1c54af74596de40aa0c4810fe1d1325c40a0af73c97f9cabeb3af3b5880f8d7761d3e9ca53e11510ac980848036cc6bd0f80a6d61c9a5de5a9d6805#npm:1.5.0::__archiveUrl=http%3A%2F%2Fnexus.toss.bz%2Frepository%2Fnpm-group%2Fvitepress%2F-%2Fvitepress-1.5.0.tgz"]\ @@ -294,6 +295,113 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["@amplitude/analytics-browser", [\ + ["npm:2.11.11::__archiveUrl=http%3A%2F%2Fnexus.toss.bz%2Frepository%2Fnpm-group%2F%40amplitude%2Fanalytics-browser%2F-%2Fanalytics-browser-2.11.11.tgz", {\ + "packageLocation": "./.yarn/cache/@amplitude-analytics-browser-npm-2.11.11-ccc2fad429-103f7117f5.zip/node_modules/@amplitude/analytics-browser/",\ + "packageDependencies": [\ + ["@amplitude/analytics-browser", "npm:2.11.11::__archiveUrl=http%3A%2F%2Fnexus.toss.bz%2Frepository%2Fnpm-group%2F%40amplitude%2Fanalytics-browser%2F-%2Fanalytics-browser-2.11.11.tgz"],\ + ["@amplitude/analytics-client-common", "npm:2.3.7::__archiveUrl=http%3A%2F%2Fnexus.toss.bz%2Frepository%2Fnpm-group%2F%40amplitude%2Fanalytics-client-common%2F-%2Fanalytics-client-common-2.3.7.tgz"],\ + ["@amplitude/analytics-core", "npm:2.5.5::__archiveUrl=http%3A%2F%2Fnexus.toss.bz%2Frepository%2Fnpm-group%2F%40amplitude%2Fanalytics-core%2F-%2Fanalytics-core-2.5.5.tgz"],\ + ["@amplitude/analytics-remote-config", "npm:0.4.1::__archiveUrl=http%3A%2F%2Fnexus.toss.bz%2Frepository%2Fnpm-group%2F%40amplitude%2Fanalytics-remote-config%2F-%2Fanalytics-remote-config-0.4.1.tgz"],\ + ["@amplitude/analytics-types", "npm:2.8.4::__archiveUrl=http%3A%2F%2Fnexus.toss.bz%2Frepository%2Fnpm-group%2F%40amplitude%2Fanalytics-types%2F-%2Fanalytics-types-2.8.4.tgz"],\ + ["@amplitude/plugin-autocapture-browser", "npm:1.0.4::__archiveUrl=http%3A%2F%2Fnexus.toss.bz%2Frepository%2Fnpm-group%2F%40amplitude%2Fplugin-autocapture-browser%2F-%2Fplugin-autocapture-browser-1.0.4.tgz"],\ + ["@amplitude/plugin-page-view-tracking-browser", "npm:2.3.7::__archiveUrl=http%3A%2F%2Fnexus.toss.bz%2Frepository%2Fnpm-group%2F%40amplitude%2Fplugin-page-view-tracking-browser%2F-%2Fplugin-page-view-tracking-browser-2.3.7.tgz"],\ + ["tslib", "npm:2.8.1::__archiveUrl=http%3A%2F%2Fnexus.toss.bz%2Frepository%2Fnpm-group%2Ftslib%2F-%2Ftslib-2.8.1.tgz"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@amplitude/analytics-client-common", [\ + ["npm:2.3.7::__archiveUrl=http%3A%2F%2Fnexus.toss.bz%2Frepository%2Fnpm-group%2F%40amplitude%2Fanalytics-client-common%2F-%2Fanalytics-client-common-2.3.7.tgz", {\ + "packageLocation": "./.yarn/cache/@amplitude-analytics-client-common-npm-2.3.7-e0d2ce283e-c1ecb7493b.zip/node_modules/@amplitude/analytics-client-common/",\ + "packageDependencies": [\ + ["@amplitude/analytics-client-common", "npm:2.3.7::__archiveUrl=http%3A%2F%2Fnexus.toss.bz%2Frepository%2Fnpm-group%2F%40amplitude%2Fanalytics-client-common%2F-%2Fanalytics-client-common-2.3.7.tgz"],\ + ["@amplitude/analytics-connector", "npm:1.6.2::__archiveUrl=http%3A%2F%2Fnexus.toss.bz%2Frepository%2Fnpm-group%2F%40amplitude%2Fanalytics-connector%2F-%2Fanalytics-connector-1.6.2.tgz"],\ + ["@amplitude/analytics-core", "npm:2.5.5::__archiveUrl=http%3A%2F%2Fnexus.toss.bz%2Frepository%2Fnpm-group%2F%40amplitude%2Fanalytics-core%2F-%2Fanalytics-core-2.5.5.tgz"],\ + ["@amplitude/analytics-types", "npm:2.8.4::__archiveUrl=http%3A%2F%2Fnexus.toss.bz%2Frepository%2Fnpm-group%2F%40amplitude%2Fanalytics-types%2F-%2Fanalytics-types-2.8.4.tgz"],\ + ["tslib", "npm:2.8.1::__archiveUrl=http%3A%2F%2Fnexus.toss.bz%2Frepository%2Fnpm-group%2Ftslib%2F-%2Ftslib-2.8.1.tgz"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@amplitude/analytics-connector", [\ + ["npm:1.6.2::__archiveUrl=http%3A%2F%2Fnexus.toss.bz%2Frepository%2Fnpm-group%2F%40amplitude%2Fanalytics-connector%2F-%2Fanalytics-connector-1.6.2.tgz", {\ + "packageLocation": "./.yarn/cache/@amplitude-analytics-connector-npm-1.6.2-03b1512977-b9653ce55b.zip/node_modules/@amplitude/analytics-connector/",\ + "packageDependencies": [\ + ["@amplitude/analytics-connector", "npm:1.6.2::__archiveUrl=http%3A%2F%2Fnexus.toss.bz%2Frepository%2Fnpm-group%2F%40amplitude%2Fanalytics-connector%2F-%2Fanalytics-connector-1.6.2.tgz"],\ + ["@amplitude/experiment-core", "npm:0.10.1::__archiveUrl=http%3A%2F%2Fnexus.toss.bz%2Frepository%2Fnpm-group%2F%40amplitude%2Fexperiment-core%2F-%2Fexperiment-core-0.10.1.tgz"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@amplitude/analytics-core", [\ + ["npm:2.5.5::__archiveUrl=http%3A%2F%2Fnexus.toss.bz%2Frepository%2Fnpm-group%2F%40amplitude%2Fanalytics-core%2F-%2Fanalytics-core-2.5.5.tgz", {\ + "packageLocation": "./.yarn/cache/@amplitude-analytics-core-npm-2.5.5-a6b93e8377-c68e3fb614.zip/node_modules/@amplitude/analytics-core/",\ + "packageDependencies": [\ + ["@amplitude/analytics-core", "npm:2.5.5::__archiveUrl=http%3A%2F%2Fnexus.toss.bz%2Frepository%2Fnpm-group%2F%40amplitude%2Fanalytics-core%2F-%2Fanalytics-core-2.5.5.tgz"],\ + ["@amplitude/analytics-types", "npm:2.8.4::__archiveUrl=http%3A%2F%2Fnexus.toss.bz%2Frepository%2Fnpm-group%2F%40amplitude%2Fanalytics-types%2F-%2Fanalytics-types-2.8.4.tgz"],\ + ["tslib", "npm:2.8.1::__archiveUrl=http%3A%2F%2Fnexus.toss.bz%2Frepository%2Fnpm-group%2Ftslib%2F-%2Ftslib-2.8.1.tgz"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@amplitude/analytics-remote-config", [\ + ["npm:0.4.1::__archiveUrl=http%3A%2F%2Fnexus.toss.bz%2Frepository%2Fnpm-group%2F%40amplitude%2Fanalytics-remote-config%2F-%2Fanalytics-remote-config-0.4.1.tgz", {\ + "packageLocation": "./.yarn/cache/@amplitude-analytics-remote-config-npm-0.4.1-c0e4393cff-b48564fe18.zip/node_modules/@amplitude/analytics-remote-config/",\ + "packageDependencies": [\ + ["@amplitude/analytics-remote-config", "npm:0.4.1::__archiveUrl=http%3A%2F%2Fnexus.toss.bz%2Frepository%2Fnpm-group%2F%40amplitude%2Fanalytics-remote-config%2F-%2Fanalytics-remote-config-0.4.1.tgz"],\ + ["@amplitude/analytics-client-common", "npm:2.3.7::__archiveUrl=http%3A%2F%2Fnexus.toss.bz%2Frepository%2Fnpm-group%2F%40amplitude%2Fanalytics-client-common%2F-%2Fanalytics-client-common-2.3.7.tgz"],\ + ["@amplitude/analytics-core", "npm:2.5.5::__archiveUrl=http%3A%2F%2Fnexus.toss.bz%2Frepository%2Fnpm-group%2F%40amplitude%2Fanalytics-core%2F-%2Fanalytics-core-2.5.5.tgz"],\ + ["@amplitude/analytics-types", "npm:2.8.4::__archiveUrl=http%3A%2F%2Fnexus.toss.bz%2Frepository%2Fnpm-group%2F%40amplitude%2Fanalytics-types%2F-%2Fanalytics-types-2.8.4.tgz"],\ + ["tslib", "npm:2.8.1::__archiveUrl=http%3A%2F%2Fnexus.toss.bz%2Frepository%2Fnpm-group%2Ftslib%2F-%2Ftslib-2.8.1.tgz"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@amplitude/analytics-types", [\ + ["npm:2.8.4::__archiveUrl=http%3A%2F%2Fnexus.toss.bz%2Frepository%2Fnpm-group%2F%40amplitude%2Fanalytics-types%2F-%2Fanalytics-types-2.8.4.tgz", {\ + "packageLocation": "./.yarn/cache/@amplitude-analytics-types-npm-2.8.4-a6523f54df-ad9cb6b8a7.zip/node_modules/@amplitude/analytics-types/",\ + "packageDependencies": [\ + ["@amplitude/analytics-types", "npm:2.8.4::__archiveUrl=http%3A%2F%2Fnexus.toss.bz%2Frepository%2Fnpm-group%2F%40amplitude%2Fanalytics-types%2F-%2Fanalytics-types-2.8.4.tgz"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@amplitude/experiment-core", [\ + ["npm:0.10.1::__archiveUrl=http%3A%2F%2Fnexus.toss.bz%2Frepository%2Fnpm-group%2F%40amplitude%2Fexperiment-core%2F-%2Fexperiment-core-0.10.1.tgz", {\ + "packageLocation": "./.yarn/cache/@amplitude-experiment-core-npm-0.10.1-cedca0f107-39ddf992b2.zip/node_modules/@amplitude/experiment-core/",\ + "packageDependencies": [\ + ["@amplitude/experiment-core", "npm:0.10.1::__archiveUrl=http%3A%2F%2Fnexus.toss.bz%2Frepository%2Fnpm-group%2F%40amplitude%2Fexperiment-core%2F-%2Fexperiment-core-0.10.1.tgz"],\ + ["js-base64", "npm:3.7.7::__archiveUrl=http%3A%2F%2Fnexus.toss.bz%2Frepository%2Fnpm-group%2Fjs-base64%2F-%2Fjs-base64-3.7.7.tgz"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@amplitude/plugin-autocapture-browser", [\ + ["npm:1.0.4::__archiveUrl=http%3A%2F%2Fnexus.toss.bz%2Frepository%2Fnpm-group%2F%40amplitude%2Fplugin-autocapture-browser%2F-%2Fplugin-autocapture-browser-1.0.4.tgz", {\ + "packageLocation": "./.yarn/cache/@amplitude-plugin-autocapture-browser-npm-1.0.4-61c2959b3a-3dc4ee8711.zip/node_modules/@amplitude/plugin-autocapture-browser/",\ + "packageDependencies": [\ + ["@amplitude/plugin-autocapture-browser", "npm:1.0.4::__archiveUrl=http%3A%2F%2Fnexus.toss.bz%2Frepository%2Fnpm-group%2F%40amplitude%2Fplugin-autocapture-browser%2F-%2Fplugin-autocapture-browser-1.0.4.tgz"],\ + ["@amplitude/analytics-client-common", "npm:2.3.7::__archiveUrl=http%3A%2F%2Fnexus.toss.bz%2Frepository%2Fnpm-group%2F%40amplitude%2Fanalytics-client-common%2F-%2Fanalytics-client-common-2.3.7.tgz"],\ + ["@amplitude/analytics-types", "npm:2.8.4::__archiveUrl=http%3A%2F%2Fnexus.toss.bz%2Frepository%2Fnpm-group%2F%40amplitude%2Fanalytics-types%2F-%2Fanalytics-types-2.8.4.tgz"],\ + ["rxjs", "npm:7.8.1::__archiveUrl=http%3A%2F%2Fnexus.toss.bz%2Frepository%2Fnpm-group%2Frxjs%2F-%2Frxjs-7.8.1.tgz"],\ + ["tslib", "npm:2.8.1::__archiveUrl=http%3A%2F%2Fnexus.toss.bz%2Frepository%2Fnpm-group%2Ftslib%2F-%2Ftslib-2.8.1.tgz"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@amplitude/plugin-page-view-tracking-browser", [\ + ["npm:2.3.7::__archiveUrl=http%3A%2F%2Fnexus.toss.bz%2Frepository%2Fnpm-group%2F%40amplitude%2Fplugin-page-view-tracking-browser%2F-%2Fplugin-page-view-tracking-browser-2.3.7.tgz", {\ + "packageLocation": "./.yarn/cache/@amplitude-plugin-page-view-tracking-browser-npm-2.3.7-fd551051b4-e07570e342.zip/node_modules/@amplitude/plugin-page-view-tracking-browser/",\ + "packageDependencies": [\ + ["@amplitude/plugin-page-view-tracking-browser", "npm:2.3.7::__archiveUrl=http%3A%2F%2Fnexus.toss.bz%2Frepository%2Fnpm-group%2F%40amplitude%2Fplugin-page-view-tracking-browser%2F-%2Fplugin-page-view-tracking-browser-2.3.7.tgz"],\ + ["@amplitude/analytics-client-common", "npm:2.3.7::__archiveUrl=http%3A%2F%2Fnexus.toss.bz%2Frepository%2Fnpm-group%2F%40amplitude%2Fanalytics-client-common%2F-%2Fanalytics-client-common-2.3.7.tgz"],\ + ["@amplitude/analytics-types", "npm:2.8.4::__archiveUrl=http%3A%2F%2Fnexus.toss.bz%2Frepository%2Fnpm-group%2F%40amplitude%2Fanalytics-types%2F-%2Fanalytics-types-2.8.4.tgz"],\ + ["tslib", "npm:2.8.1::__archiveUrl=http%3A%2F%2Fnexus.toss.bz%2Frepository%2Fnpm-group%2Ftslib%2F-%2Ftslib-2.8.1.tgz"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["@babel/helper-string-parser", [\ ["npm:7.25.9::__archiveUrl=http%3A%2F%2Fnexus.toss.bz%2Frepository%2Fnpm-group%2F%40babel%2Fhelper-string-parser%2F-%2Fhelper-string-parser-7.25.9.tgz", {\ "packageLocation": "./.yarn/cache/@babel-helper-string-parser-npm-7.25.9-dbfd15121a-c28656c52b.zip/node_modules/@babel/helper-string-parser/",\ @@ -1703,6 +1811,7 @@ const RAW_RUNTIME_STATE = "packageLocation": "./",\ "packageDependencies": [\ ["frontend-fundamentals", "workspace:."],\ + ["@amplitude/analytics-browser", "npm:2.11.11::__archiveUrl=http%3A%2F%2Fnexus.toss.bz%2Frepository%2Fnpm-group%2F%40amplitude%2Fanalytics-browser%2F-%2Fanalytics-browser-2.11.11.tgz"],\ ["markdown-it-footnote", "npm:4.0.0::__archiveUrl=http%3A%2F%2Fnexus.toss.bz%2Frepository%2Fnpm-group%2Fmarkdown-it-footnote%2F-%2Fmarkdown-it-footnote-4.0.0.tgz"],\ ["typescript", "patch:typescript@npm%3A5.7.2%3A%3A__archiveUrl=http%253A%252F%252Fnexus.toss.bz%252Frepository%252Fnpm-group%252Ftypescript%252F-%252Ftypescript-5.7.2.tgz#optional!builtin::version=5.7.2&hash=5786d5"],\ ["vitepress", "virtual:8c216222b1c54af74596de40aa0c4810fe1d1325c40a0af73c97f9cabeb3af3b5880f8d7761d3e9ca53e11510ac980848036cc6bd0f80a6d61c9a5de5a9d6805#npm:1.5.0::__archiveUrl=http%3A%2F%2Fnexus.toss.bz%2Frepository%2Fnpm-group%2Fvitepress%2F-%2Fvitepress-1.5.0.tgz"]\ @@ -1908,6 +2017,15 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["js-base64", [\ + ["npm:3.7.7::__archiveUrl=http%3A%2F%2Fnexus.toss.bz%2Frepository%2Fnpm-group%2Fjs-base64%2F-%2Fjs-base64-3.7.7.tgz", {\ + "packageLocation": "./.yarn/cache/js-base64-npm-3.7.7-e78f8269d6-185e34c536.zip/node_modules/js-base64/",\ + "packageDependencies": [\ + ["js-base64", "npm:3.7.7::__archiveUrl=http%3A%2F%2Fnexus.toss.bz%2Frepository%2Fnpm-group%2Fjs-base64%2F-%2Fjs-base64-3.7.7.tgz"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["jsbn", [\ ["npm:1.1.0::__archiveUrl=http%3A%2F%2Fnexus.toss.bz%2Frepository%2Fnpm-group%2Fjsbn%2F-%2Fjsbn-1.1.0.tgz", {\ "packageLocation": "./.yarn/cache/jsbn-npm-1.1.0-6ec1670969-bebe7ae829.zip/node_modules/jsbn/",\ @@ -2421,6 +2539,16 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["rxjs", [\ + ["npm:7.8.1::__archiveUrl=http%3A%2F%2Fnexus.toss.bz%2Frepository%2Fnpm-group%2Frxjs%2F-%2Frxjs-7.8.1.tgz", {\ + "packageLocation": "./.yarn/cache/rxjs-npm-7.8.1-486b587945-b10cac1a52.zip/node_modules/rxjs/",\ + "packageDependencies": [\ + ["rxjs", "npm:7.8.1::__archiveUrl=http%3A%2F%2Fnexus.toss.bz%2Frepository%2Fnpm-group%2Frxjs%2F-%2Frxjs-7.8.1.tgz"],\ + ["tslib", "npm:2.8.1::__archiveUrl=http%3A%2F%2Fnexus.toss.bz%2Frepository%2Fnpm-group%2Ftslib%2F-%2Ftslib-2.8.1.tgz"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["safer-buffer", [\ ["npm:2.1.2::__archiveUrl=http%3A%2F%2Fnexus.toss.bz%2Frepository%2Fnpm-group%2Fsafer-buffer%2F-%2Fsafer-buffer-2.1.2.tgz", {\ "packageLocation": "./.yarn/cache/safer-buffer-npm-2.1.2-1291d4b4b9-7eaf7a0cf3.zip/node_modules/safer-buffer/",\ @@ -2654,6 +2782,15 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["tslib", [\ + ["npm:2.8.1::__archiveUrl=http%3A%2F%2Fnexus.toss.bz%2Frepository%2Fnpm-group%2Ftslib%2F-%2Ftslib-2.8.1.tgz", {\ + "packageLocation": "./.yarn/cache/tslib-npm-2.8.1-fd69b02284-3e2e043d5c.zip/node_modules/tslib/",\ + "packageDependencies": [\ + ["tslib", "npm:2.8.1::__archiveUrl=http%3A%2F%2Fnexus.toss.bz%2Frepository%2Fnpm-group%2Ftslib%2F-%2Ftslib-2.8.1.tgz"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["typescript", [\ ["patch:typescript@npm%3A5.7.2%3A%3A__archiveUrl=http%253A%252F%252Fnexus.toss.bz%252Frepository%252Fnpm-group%252Ftypescript%252F-%252Ftypescript-5.7.2.tgz#optional!builtin::version=5.7.2&hash=5786d5", {\ "packageLocation": "./.yarn/cache/typescript-patch-7562ef23eb-d75ca10141.zip/node_modules/typescript/",\ diff --git a/.vitepress/theme/index.ts b/.vitepress/theme/index.ts index 0d703835..560f3515 100644 --- a/.vitepress/theme/index.ts +++ b/.vitepress/theme/index.ts @@ -1,5 +1,12 @@ -import Layout from './Layout.vue' +import Layout from "./Layout.vue"; +import * as amplitude from "@amplitude/analytics-browser"; export default { Layout, -} \ No newline at end of file + async enhanceApp() { + if (typeof window !== 'undefined') { + const amplitudeApiKey = (import.meta as any).env.VITE_AMPLITUDE_API_KEY; + amplitude.init(amplitudeApiKey, { autocapture: true }); + } + } +}; \ No newline at end of file diff --git a/package.json b/package.json index dc82313f..2f7f74b8 100644 --- a/package.json +++ b/package.json @@ -7,6 +7,7 @@ "docs:preview": "vitepress preview" }, "dependencies": { + "@amplitude/analytics-browser": "^2.11.11", "markdown-it-footnote": "^4.0.0", "typescript": "^5.6.3", "vitepress": "^1.4.1" diff --git a/yarn.lock b/yarn.lock index 36f6f08e..09740421 100644 --- a/yarn.lock +++ b/yarn.lock @@ -190,6 +190,103 @@ __metadata: languageName: node linkType: hard +"@amplitude/analytics-browser@npm:^2.11.11": + version: 2.11.11 + resolution: "@amplitude/analytics-browser@npm:2.11.11::__archiveUrl=http%3A%2F%2Fnexus.toss.bz%2Frepository%2Fnpm-group%2F%40amplitude%2Fanalytics-browser%2F-%2Fanalytics-browser-2.11.11.tgz" + dependencies: + "@amplitude/analytics-client-common": "npm:^2.3.7" + "@amplitude/analytics-core": "npm:^2.5.5" + "@amplitude/analytics-remote-config": "npm:^0.4.0" + "@amplitude/analytics-types": "npm:^2.8.4" + "@amplitude/plugin-autocapture-browser": "npm:^1.0.2" + "@amplitude/plugin-page-view-tracking-browser": "npm:^2.3.7" + tslib: "npm:^2.4.1" + checksum: 10/103f7117f5ac1254b17f6aa6a9434180269d786d95d572a04c6fc1210ae273c785f9a876fab1d00502fadd138dea2d0ef6bf55c2da84644a5ad8fca312904215 + languageName: node + linkType: hard + +"@amplitude/analytics-client-common@npm:>=1 <3, @amplitude/analytics-client-common@npm:^2.3.7": + version: 2.3.7 + resolution: "@amplitude/analytics-client-common@npm:2.3.7::__archiveUrl=http%3A%2F%2Fnexus.toss.bz%2Frepository%2Fnpm-group%2F%40amplitude%2Fanalytics-client-common%2F-%2Fanalytics-client-common-2.3.7.tgz" + dependencies: + "@amplitude/analytics-connector": "npm:^1.4.8" + "@amplitude/analytics-core": "npm:^2.5.5" + "@amplitude/analytics-types": "npm:^2.8.4" + tslib: "npm:^2.4.1" + checksum: 10/c1ecb7493bc5a7cd713180ea26f745865bf53589b0eef1f2792bb22e0075e6153871b09494d35e48c33e14a69fe7c05012dff69cc4015d954a7e7c08af23b832 + languageName: node + linkType: hard + +"@amplitude/analytics-connector@npm:^1.4.8": + version: 1.6.2 + resolution: "@amplitude/analytics-connector@npm:1.6.2::__archiveUrl=http%3A%2F%2Fnexus.toss.bz%2Frepository%2Fnpm-group%2F%40amplitude%2Fanalytics-connector%2F-%2Fanalytics-connector-1.6.2.tgz" + dependencies: + "@amplitude/experiment-core": "npm:^0.10.1" + checksum: 10/b9653ce55bb18983b2434720e61be24cd8374fd3e9fb4d33b8e0ff3f9bfd25edbf2637672c77861a14133a3b9dbad807fc4e43dffa937f89c192559292962ef0 + languageName: node + linkType: hard + +"@amplitude/analytics-core@npm:>=1 <3, @amplitude/analytics-core@npm:^2.5.5": + version: 2.5.5 + resolution: "@amplitude/analytics-core@npm:2.5.5::__archiveUrl=http%3A%2F%2Fnexus.toss.bz%2Frepository%2Fnpm-group%2F%40amplitude%2Fanalytics-core%2F-%2Fanalytics-core-2.5.5.tgz" + dependencies: + "@amplitude/analytics-types": "npm:^2.8.4" + tslib: "npm:^2.4.1" + checksum: 10/c68e3fb614d44413914045ad604598a6cfcbf7e0d25df9c6a0f943b196436b45e01cf5a1fa0979bf8f3c05e9c284664c09e259718972929d1b0259ab59d8be01 + languageName: node + linkType: hard + +"@amplitude/analytics-remote-config@npm:^0.4.0": + version: 0.4.1 + resolution: "@amplitude/analytics-remote-config@npm:0.4.1::__archiveUrl=http%3A%2F%2Fnexus.toss.bz%2Frepository%2Fnpm-group%2F%40amplitude%2Fanalytics-remote-config%2F-%2Fanalytics-remote-config-0.4.1.tgz" + dependencies: + "@amplitude/analytics-client-common": "npm:>=1 <3" + "@amplitude/analytics-core": "npm:>=1 <3" + "@amplitude/analytics-types": "npm:>=1 <3" + tslib: "npm:^2.4.1" + checksum: 10/b48564fe1830c390b8463e1fc55438f4e07d552ce1a1f8deecac59f365c5fa41ff6ea649ddb17a23b366d64971dbd0e5a489e0c837531fc6d9351bc62888fd1c + languageName: node + linkType: hard + +"@amplitude/analytics-types@npm:>=1 <3, @amplitude/analytics-types@npm:^2.8.2, @amplitude/analytics-types@npm:^2.8.4": + version: 2.8.4 + resolution: "@amplitude/analytics-types@npm:2.8.4::__archiveUrl=http%3A%2F%2Fnexus.toss.bz%2Frepository%2Fnpm-group%2F%40amplitude%2Fanalytics-types%2F-%2Fanalytics-types-2.8.4.tgz" + checksum: 10/ad9cb6b8a758149d870641209f166ab9fe6dd4572e5a46df6c94d5a9dbfbaddcde7935c64d7d0f09b7fa9a5ca955b2dbccff65b4208e9ca19d93a24c50d04959 + languageName: node + linkType: hard + +"@amplitude/experiment-core@npm:^0.10.1": + version: 0.10.1 + resolution: "@amplitude/experiment-core@npm:0.10.1::__archiveUrl=http%3A%2F%2Fnexus.toss.bz%2Frepository%2Fnpm-group%2F%40amplitude%2Fexperiment-core%2F-%2Fexperiment-core-0.10.1.tgz" + dependencies: + js-base64: "npm:^3.7.5" + checksum: 10/39ddf992b2c522827450c1c5ab363fb1344806b392c980332d79143f04536d0ec8c6e3c3fa392cf9a937a87b30e7e479431e0aaa9979518c45449d6a01973379 + languageName: node + linkType: hard + +"@amplitude/plugin-autocapture-browser@npm:^1.0.2": + version: 1.0.4 + resolution: "@amplitude/plugin-autocapture-browser@npm:1.0.4::__archiveUrl=http%3A%2F%2Fnexus.toss.bz%2Frepository%2Fnpm-group%2F%40amplitude%2Fplugin-autocapture-browser%2F-%2Fplugin-autocapture-browser-1.0.4.tgz" + dependencies: + "@amplitude/analytics-client-common": "npm:>=1 <3" + "@amplitude/analytics-types": "npm:^2.8.2" + rxjs: "npm:^7.8.1" + tslib: "npm:^2.4.1" + checksum: 10/3dc4ee871189350ee9c85639e55ce862a670072dd462b1977043b51654433caac4806b51bf69b5f8933c36a312a94d278cb73fea579e8f3ac23f056d25097361 + languageName: node + linkType: hard + +"@amplitude/plugin-page-view-tracking-browser@npm:^2.3.7": + version: 2.3.7 + resolution: "@amplitude/plugin-page-view-tracking-browser@npm:2.3.7::__archiveUrl=http%3A%2F%2Fnexus.toss.bz%2Frepository%2Fnpm-group%2F%40amplitude%2Fplugin-page-view-tracking-browser%2F-%2Fplugin-page-view-tracking-browser-2.3.7.tgz" + dependencies: + "@amplitude/analytics-client-common": "npm:^2.3.7" + "@amplitude/analytics-types": "npm:^2.8.4" + tslib: "npm:^2.4.1" + checksum: 10/e07570e34238dc8be51b80288fbfb01234b34bc1d5c6c90f9724c5c17a5b7a56e47b256659dce56c7c0b02f8f26f71027589848fcdebe7eb1fcb908ccd704ac0 + languageName: node + linkType: hard + "@babel/helper-string-parser@npm:^7.25.9": version: 7.25.9 resolution: "@babel/helper-string-parser@npm:7.25.9::__archiveUrl=http%3A%2F%2Fnexus.toss.bz%2Frepository%2Fnpm-group%2F%40babel%2Fhelper-string-parser%2F-%2Fhelper-string-parser-7.25.9.tgz" @@ -1377,6 +1474,7 @@ __metadata: version: 0.0.0-use.local resolution: "frontend-fundamentals@workspace:." dependencies: + "@amplitude/analytics-browser": "npm:^2.11.11" markdown-it-footnote: "npm:^4.0.0" typescript: "npm:^5.6.3" vitepress: "npm:^1.4.1" @@ -1570,6 +1668,13 @@ __metadata: languageName: node linkType: hard +"js-base64@npm:^3.7.5": + version: 3.7.7 + resolution: "js-base64@npm:3.7.7::__archiveUrl=http%3A%2F%2Fnexus.toss.bz%2Frepository%2Fnpm-group%2Fjs-base64%2F-%2Fjs-base64-3.7.7.tgz" + checksum: 10/185e34c536a6b1c4e1ad8bd96d25b49a9ea4e6803e259eaaaca95f1b392a0d590b2933c5ca8580c776f7279507944b81ff1faf889d84baa5e31f026e96d676a5 + languageName: node + linkType: hard + "jsbn@npm:1.1.0": version: 1.1.0 resolution: "jsbn@npm:1.1.0::__archiveUrl=http%3A%2F%2Fnexus.toss.bz%2Frepository%2Fnpm-group%2Fjsbn%2F-%2Fjsbn-1.1.0.tgz" @@ -2068,6 +2173,15 @@ __metadata: languageName: node linkType: hard +"rxjs@npm:^7.8.1": + version: 7.8.1 + resolution: "rxjs@npm:7.8.1::__archiveUrl=http%3A%2F%2Fnexus.toss.bz%2Frepository%2Fnpm-group%2Frxjs%2F-%2Frxjs-7.8.1.tgz" + dependencies: + tslib: "npm:^2.1.0" + checksum: 10/b10cac1a5258f885e9dd1b70d23c34daeb21b61222ee735d2ec40a8685bdca40429000703a44f0e638c27a684ac139e1c37e835d2a0dc16f6fc061a138ae3abb + languageName: node + linkType: hard + "safer-buffer@npm:>= 2.1.2 < 3.0.0": version: 2.1.2 resolution: "safer-buffer@npm:2.1.2::__archiveUrl=http%3A%2F%2Fnexus.toss.bz%2Frepository%2Fnpm-group%2Fsafer-buffer%2F-%2Fsafer-buffer-2.1.2.tgz" @@ -2273,6 +2387,13 @@ __metadata: languageName: node linkType: hard +"tslib@npm:^2.1.0, tslib@npm:^2.4.1": + version: 2.8.1 + resolution: "tslib@npm:2.8.1::__archiveUrl=http%3A%2F%2Fnexus.toss.bz%2Frepository%2Fnpm-group%2Ftslib%2F-%2Ftslib-2.8.1.tgz" + checksum: 10/3e2e043d5c2316461cb54e5c7fe02c30ef6dccb3384717ca22ae5c6b5bc95232a6241df19c622d9c73b809bea33b187f6dbc73030963e29950c2141bc32a79f7 + languageName: node + linkType: hard + "typescript@npm:^5.6.3": version: 5.7.2 resolution: "typescript@npm:5.7.2::__archiveUrl=http%3A%2F%2Fnexus.toss.bz%2Frepository%2Fnpm-group%2Ftypescript%2F-%2Ftypescript-5.7.2.tgz"