From 1ba01b360ec038711c0d3bfc7df59125cd537a8d Mon Sep 17 00:00:00 2001 From: Choeseonjeong Date: Fri, 13 Sep 2024 08:47:13 +0900 Subject: [PATCH 1/3] 0913 --- package-lock.json | 1419 +++++++++++++++++ package.json | 9 +- "\354\240\225\354\244\221\354\235\274/ex2.js" | 2 +- .../ex2.test.js" | 4 +- "\354\240\225\354\244\221\354\235\274/ex5.js" | 49 +- .../ex1/book-edit.html" | 63 + .../ex1/img/back.png" | Bin 0 -> 13959 bytes .../ex1/img/book.png" | Bin 0 -> 5054 bytes .../ex1/img/ex1.jpg" | Bin 0 -> 38001 bytes .../ex1/img/ex2.jpg" | Bin 0 -> 14054 bytes .../ex1/img/ex3.jpg" | Bin 0 -> 21471 bytes .../ex1/img/kakao.png" | Bin 0 -> 5482 bytes .../ex1/img/naver.png" | Bin 0 -> 7981 bytes .../ex1/img/pro.jpg" | Bin 0 -> 40220 bytes .../ex1/img/store.png" | Bin 0 -> 8442 bytes .../ex1/img/youtube.png" | Bin 0 -> 8602 bytes .../ex1/index.html" | 106 ++ .../ex1/register.html" | 66 + .../ex10.test.ts" | 44 +- .../ex10.ts" | 116 +- "\354\265\234\354\204\240\354\240\225/ex2.js" | 35 +- .../ex2.test.js" | 4 +- "\354\265\234\354\204\240\354\240\225/ex3.js" | 15 +- .../ex3.test.js" | 24 +- "\354\265\234\354\204\240\354\240\225/ex4.js" | 65 +- .../ex4.test.js" | 26 +- "\354\265\234\354\204\240\354\240\225/ex5.js" | 50 +- .../ex5.test.js" | 32 +- "\354\265\234\354\204\240\354\240\225/ex6.ts" | 25 +- "\354\265\234\354\204\240\354\240\225/ex7.ts" | 54 +- "\354\265\234\354\204\240\354\240\225/ex9.js" | 22 +- 31 files changed, 2152 insertions(+), 78 deletions(-) create mode 100644 package-lock.json create mode 100644 "\354\265\234\354\204\240\354\240\225/ex1/img/back.png" create mode 100644 "\354\265\234\354\204\240\354\240\225/ex1/img/book.png" create mode 100644 "\354\265\234\354\204\240\354\240\225/ex1/img/ex1.jpg" create mode 100644 "\354\265\234\354\204\240\354\240\225/ex1/img/ex2.jpg" create mode 100644 "\354\265\234\354\204\240\354\240\225/ex1/img/ex3.jpg" create mode 100644 "\354\265\234\354\204\240\354\240\225/ex1/img/kakao.png" create mode 100644 "\354\265\234\354\204\240\354\240\225/ex1/img/naver.png" create mode 100644 "\354\265\234\354\204\240\354\240\225/ex1/img/pro.jpg" create mode 100644 "\354\265\234\354\204\240\354\240\225/ex1/img/store.png" create mode 100644 "\354\265\234\354\204\240\354\240\225/ex1/img/youtube.png" diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..dcb3e41 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,1419 @@ +{ + "name": "febasic", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "febasic", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "@types/node": "^22.5.4", + "typescript": "^5.6.2" + }, + "devDependencies": { + "tailwindcss": "^3.4.11" + } + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@types/node": { + "version": "22.5.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.5.4.tgz", + "integrity": "sha512-FDuKUJQm/ju9fT/SeX/6+gBzoPzlVCzfzmGkwKvRHQVxi4BntVbyIwf6a4Xn62mrvndLiml6z/UBXIdEVjQLXg==", + "dependencies": { + "undici-types": "~6.19.2" + } + }, + "node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dev": true + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "dev": true + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "dev": true + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "dev": true + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/foreground-child": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", + "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", + "dev": true, + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "dev": true, + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jiti": { + "version": "1.21.6", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.6.tgz", + "integrity": "sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==", + "dev": true, + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/package-json-from-dist": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", + "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==", + "dev": true + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dev": true, + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/picocolors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz", + "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/postcss": { + "version": "8.4.45", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.45.tgz", + "integrity": "sha512-7KTLTdzdZZYscUc65XmjFiB73vBhBfbPztCYdUNvlaso9PrzjzcmjqBPR0lNGkcVlcO4BjiO5rK/qNz+XAen1Q==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.1", + "source-map-js": "^1.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "dev": true, + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-load-config": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", + "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "lilconfig": "^3.0.0", + "yaml": "^2.3.4" + }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-load-config/node_modules/lilconfig": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", + "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/postcss-nested": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", + "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "postcss-selector-parser": "^6.1.1" + }, + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dev": true, + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/string-width-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/sucrase": { + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", + "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "^10.3.10", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tailwindcss": { + "version": "3.4.11", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.11.tgz", + "integrity": "sha512-qhEuBcLemjSJk5ajccN9xJFtM/h0AVCPaA6C92jNP+M2J8kX+eMJHI7R2HFKUvvAsMpcfLILMCFYSeDwpMmlUg==", + "dev": true, + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.5.3", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.0", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.21.0", + "lilconfig": "^2.1.0", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.23", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.1", + "postcss-nested": "^6.0.1", + "postcss-selector-parser": "^6.0.11", + "resolve": "^1.22.2", + "sucrase": "^3.32.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dev": true, + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "dev": true + }, + "node_modules/typescript": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.2.tgz", + "integrity": "sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/undici-types": { + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==" + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yaml": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.5.1.tgz", + "integrity": "sha512-bLQOjaX/ADgQ20isPJRvF0iRUHIxVhYvr53Of7wGcWlO2jvtUlH5m87DsmulFVxRpNLOnI4tB6p/oh8D7kpn9Q==", + "dev": true, + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14" + } + } + } +} diff --git a/package.json b/package.json index c356ea8..88726ba 100644 --- a/package.json +++ b/package.json @@ -11,5 +11,12 @@ "TS" ], "author": "indiflex", - "license": "ISC" + "license": "ISC", + "devDependencies": { + "tailwindcss": "^3.4.11" + }, + "dependencies": { + "@types/node": "^22.5.4", + "typescript": "^5.6.2" + } } diff --git "a/\354\240\225\354\244\221\354\235\274/ex2.js" "b/\354\240\225\354\244\221\354\235\274/ex2.js" index 6b95f04..babfa22 100644 --- "a/\354\240\225\354\244\221\354\235\274/ex2.js" +++ "b/\354\240\225\354\244\221\354\235\274/ex2.js" @@ -1,4 +1,4 @@ // range 함수를 작성하세요. -const range = (start, end, step = start > end ? -1 : 1) => { }; +const range = (start, end, step = start > end ? -1 : 1) => {}; module.exports = { range }; diff --git "a/\354\240\225\354\244\221\354\235\274/ex2.test.js" "b/\354\240\225\354\244\221\354\235\274/ex2.test.js" index cbdb2e8..ec97ac7 100644 --- "a/\354\240\225\354\244\221\354\235\274/ex2.test.js" +++ "b/\354\240\225\354\244\221\354\235\274/ex2.test.js" @@ -1,5 +1,5 @@ -const assert = require('assert'); -const { range } = require('./ex2'); +const assert = require("assert"); +const { range } = require("./ex2"); assert.deepStrictEqual(range(1, 10, 1), [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]); assert.deepStrictEqual(range(1, 10, 2), [1, 3, 5, 7, 9]); diff --git "a/\354\240\225\354\244\221\354\235\274/ex5.js" "b/\354\240\225\354\244\221\354\235\274/ex5.js" index 464a05a..4f5370d 100644 --- "a/\354\240\225\354\244\221\354\235\274/ex5.js" +++ "b/\354\240\225\354\244\221\354\235\274/ex5.js" @@ -1,3 +1,46 @@ -module.exports = { - searchByKoreanInitialSound: (data, firstSounds) => {}, -}; +const CHO_SEONG = [ + "ㄱ", + "ㄲ", + "ㄴ", + "ㄷ", + "ㄸ", + "ㄹ", + "ㅁ", + "ㅂ", + "ㅃ", + "ㅅ", + "ㅆ", + "ㅇ", + "ㅈ", + "ㅉ", + "ㅊ", + "ㅋ", + "ㅌ", + "ㅍ", + "ㅎ", +]; + +function getInitialSound(char) { + const code = char.charCodeAt(0) - 44032; // '가'의 유니코드 시작점 + if (code < 0 || code > 11171) return char; // 한글이 아닌 경우 그대로 반환 + const cho = Math.floor(code / 588); // 초성의 인덱스 계산 + return CHO_SEONG[cho]; +} + +function searchByKoreanInitialSound(data, firstSounds) { + // 초성 정규식을 만들기 위해 패턴을 생성 + const regex = new RegExp( + firstSounds + .split("") + .map((sound) => sound.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")) // 특수문자 이스케이프 + .join(".*") // 초성 사이의 패턴을 허용하기 위해 ".*" 추가 + ); + + // 각 문자열의 초성 추출 후 정규식으로 검사 + return data.filter((word) => { + const initialSound = [...word].map(getInitialSound).join(""); + return regex.test(initialSound); // 초성 문자열과 패턴 비교 + }); +} + +module.exports = { searchByKoreanInitialSound }; diff --git "a/\354\265\234\354\204\240\354\240\225/ex1/book-edit.html" "b/\354\265\234\354\204\240\354\240\225/ex1/book-edit.html" index e69de29..1624c8f 100644 --- "a/\354\265\234\354\204\240\354\240\225/ex1/book-edit.html" +++ "b/\354\265\234\354\204\240\354\240\225/ex1/book-edit.html" @@ -0,0 +1,63 @@ + + + + + + + + BookMark Edit + + + + + +
+
+ +
+ + +
+
+ + +
+

There is no marks.

+
+
+ +
+
+ + + diff --git "a/\354\265\234\354\204\240\354\240\225/ex1/img/back.png" "b/\354\265\234\354\204\240\354\240\225/ex1/img/back.png" new file mode 100644 index 0000000000000000000000000000000000000000..42d67efeafb09bbdce2adeed2d31498ce1208e90 GIT binary patch literal 13959 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 RfpHYnPt_j4e+uF>|Jjf*AMpSH literal 0 HcmV?d00001 diff --git "a/\354\265\234\354\204\240\354\240\225/ex1/img/ex2.jpg" "b/\354\265\234\354\204\240\354\240\225/ex1/img/ex2.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..4c5d45969964a2c083eba33a002be67da60ffb7a GIT binary patch literal 14054 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 literal 0 HcmV?d00001 diff --git "a/\354\265\234\354\204\240\354\240\225/ex1/img/ex3.jpg" "b/\354\265\234\354\204\240\354\240\225/ex1/img/ex3.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..085b67b1e2c6c8b6df0fc18c26a0af9cb9811387 GIT binary patch literal 21471 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 literal 0 HcmV?d00001 diff --git "a/\354\265\234\354\204\240\354\240\225/ex1/img/kakao.png" "b/\354\265\234\354\204\240\354\240\225/ex1/img/kakao.png" new file mode 100644 index 0000000000000000000000000000000000000000..d802ab57cf4754506be0d93d6d5716cddeee5ab4 GIT binary patch literal 5482 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 literal 0 HcmV?d00001 diff --git "a/\354\265\234\354\204\240\354\240\225/ex1/img/naver.png" "b/\354\265\234\354\204\240\354\240\225/ex1/img/naver.png" new file mode 100644 index 0000000000000000000000000000000000000000..00686eab797701fddb5e0bd434b72f06f3a119c1 GIT binary patch literal 7981 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 PW|dgU9FD|R`AYxU>}*X# literal 0 HcmV?d00001 diff --git "a/\354\265\234\354\204\240\354\240\225/ex1/img/store.png" "b/\354\265\234\354\204\240\354\240\225/ex1/img/store.png" new file mode 100644 index 0000000000000000000000000000000000000000..2ce76ba2289d0016fe7542d0fdf107e62bcc2a7b GIT binary patch literal 8442 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 NJXO$;uaGql|1UBfp`ZW& literal 0 HcmV?d00001 diff --git "a/\354\265\234\354\204\240\354\240\225/ex1/index.html" "b/\354\265\234\354\204\240\354\240\225/ex1/index.html" index e69de29..676192e 100644 --- "a/\354\265\234\354\204\240\354\240\225/ex1/index.html" +++ "b/\354\265\234\354\204\240\354\240\225/ex1/index.html" @@ -0,0 +1,106 @@ + + + + + + + + Index + + + + + +
+
+

BookMark BookMar...

+
    +
  • + Logo +
    +

    55BookMark Book...

    +

    55년만의 북마크나만의...

    +
    + +
  • +
  • + Logo +
    +

    네이버

    +

    네이버 메인에서 다양한...

    +
    + +
  • +
  • + Logo +
    +

    Kakao

    +

    기술과 사람으로 더 나은...

    +
    + +
  • +
  • + Logo +
    +

    YouTube

    +

    YouTube에서 마음에 ...

    +
    + +
  • +
+
+ +
+
+ +
+

Study

+
    +
  • + Logo +
    +

    Tailwind CSS - ...

    +

    Tailwind CSS is a ut...

    +
    + +
  • +
  • + Logo +
    +

    Create Next App - ...

    +

    Generated by creat...

    +
    + +
  • +
+
+ +
+
+
+ +
+ © Hanaro 2024 +
+ + diff --git "a/\354\265\234\354\204\240\354\240\225/ex1/register.html" "b/\354\265\234\354\204\240\354\240\225/ex1/register.html" index e69de29..9461f3c 100644 --- "a/\354\265\234\354\204\240\354\240\225/ex1/register.html" +++ "b/\354\265\234\354\204\240\354\240\225/ex1/register.html" @@ -0,0 +1,66 @@ + + + + + + + + Register + + + +
+ +
+

Sign Up

+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ +
+ +
+ © Hanaro 2024 +
+ + + + diff --git "a/\354\265\234\354\204\240\354\240\225/ex10.test.ts" "b/\354\265\234\354\204\240\354\240\225/ex10.test.ts" index 6218a79..d379353 100644 --- "a/\354\265\234\354\204\240\354\240\225/ex10.test.ts" +++ "b/\354\265\234\354\204\240\354\240\225/ex10.test.ts" @@ -1,4 +1,46 @@ import { ArrayList } from './ex10'; + console.log('🚀 ArrayList:', ArrayList); +const alist = new ArrayList([1, 2]); + +console.log(alist.toString()); + +alist.add(3); +console.log(alist.toString()); + +alist.add(5, 1); +console.log(alist.toString()); + +alist.removeValue(2); +console.log(alist.toString()); + +alist.add(22, 1); +console.log(alist.toString()); + +alist.add(33, 1); +console.log(alist.toString()); + +console.log(alist.get(2)); + +console.log(alist.size()); + +console.log(alist.indexOf(300)); +alist.set(1, 300); +console.log(alist.indexOf(300)); + +console.log(alist.contains(300)); +console.log(alist.contains(301)); + +console.log(alist.isEmptyList()); + +console.log(alist.peek); + +console.log(alist.toArray()); + +const iterator = alist.iterator(); +console.log(iterator.next()); +console.log(iterator.next()); -// 여기에 테스트코드를 작성하세요. +alist.clear(); +console.log(alist.toString()); +console.log(alist.isEmptyList()); diff --git "a/\354\265\234\354\204\240\354\240\225/ex10.ts" "b/\354\265\234\354\204\240\354\240\225/ex10.ts" index 1ffaef5..f8e5448 100644 --- "a/\354\265\234\354\204\240\354\240\225/ex10.ts" +++ "b/\354\265\234\354\204\240\354\240\225/ex10.ts" @@ -1,5 +1,5 @@ class Collection { - private readonly arr = Array(); + protected readonly arr: T[] = []; constructor(...args: T[]) { this.arr.push(...args); @@ -42,15 +42,14 @@ class Collection { return this[Symbol.iterator](); } - // [1, 2, 3] - *[Symbol.iterator]() { + *[Symbol.iterator](): IterableIterator { for (let i = this.length - 1; i >= 0; i -= 1) { yield this.toArray()[i]; } } toArray() { - return this.isQueue() ? this.arr.toReversed() : this.arr; + return this.isQueue() ? [...this.arr].reverse() : [...this.arr]; } print() { @@ -65,7 +64,110 @@ class Collection { class Stack extends Collection {} class Queue extends Collection {} -// ArrayList 클래스를 작성하세요. -class ArrayList extends Collection {} +class ArrayList extends Collection { + private list: { value: T; rest: any } | null = null; -export { Stack, Queue, ArrayList }; + constructor(arr: T[] = []) { + super(...arr); + this.list = ArrayList.arrayToList(arr); + } + + static arrayToList(arr: any[]): any { + if (arr.length === 0) return null; + return { value: arr[0], rest: ArrayList.arrayToList(arr.slice(1)) }; + } + + static listToArray(list: any): any[] { + const arr = []; + while (list) { + arr.push(list.value); + list = list.rest; + } + return arr; + } + + add(value: T, index?: number): void { + if (index === undefined) { + this.list = { value, rest: this.list }; + } else { + this.list = this._addAtIndex(this.list, value, index); + } + } + + private _addAtIndex(list: any, value: T, index: number): any { + if (index === 0) return { value, rest: list }; + return { value: list.value, rest: this._addAtIndex(list.rest, value, index - 1) }; + } + + get(index: number): T | null { + let node = this.list; + for (let i = 0; i < index; i++) { + if (!node) return null; + node = node.rest; + } + return node ? node.value : null; + } + + // Rename to avoid conflict with Collection class + removeValue(value: T): void { + this.list = this._remove(this.list, value); + } + + private _remove(list: any, value: T): any { + if (!list) return null; + if (list.value === value) return list.rest; + return { value: list.value, rest: this._remove(list.rest, value) }; + } + + set(index: number, value: T): void { + this.list = this._set(this.list, index, value); + } + + private _set(list: any, index: number, value: T): any { + if (!list) return null; + if (index === 0) return { value, rest: list.rest }; + return { value: list.value, rest: this._set(list.rest, index - 1, value) }; + } + + indexOf(value: T): number { + let node = this.list; + let index = 0; + while (node) { + if (node.value === value) return index; + node = node.rest; + index++; + } + return -1; + } + + contains(value: T): boolean { + return this.indexOf(value) !== -1; + } + + size(): number { + return ArrayList.listToArray(this.list).length; + } + + iterator() { + return this.toArray()[Symbol.iterator](); + } + + toArray(): T[] { + return ArrayList.listToArray(this.list); + } + + // Rename to avoid conflict with Collection class + isEmptyList(): boolean { + return this.size() === 0; + } + + clear(): void { + this.list = null; + } + + toString(): string { + return JSON.stringify(this.list); + } +} + +export { Stack, Queue, ArrayList }; \ No newline at end of file diff --git "a/\354\265\234\354\204\240\354\240\225/ex2.js" "b/\354\265\234\354\204\240\354\240\225/ex2.js" index 6b95f04..39ea07b 100644 --- "a/\354\265\234\354\204\240\354\240\225/ex2.js" +++ "b/\354\265\234\354\204\240\354\240\225/ex2.js" @@ -1,4 +1,35 @@ -// range 함수를 작성하세요. -const range = (start, end, step = start > end ? -1 : 1) => { }; +const range = (start, end, step = start > end ? -1 : 1) => { + if (end === undefined) { + if (start === 0) return [0]; + if (start > 0) return Array.from({ length: start }, (_, i) => i + 1); + if (start < 0) return Array.from({ length: -start }, (_, i) => start + i); + } + + if (start === end) { + return [start]; + } + + if (step === 0) { + return [start]; + } + + if ((start < end && step < 0) || (start > end && step > 0)) { + return []; + } + + const result = []; + + if (step > 0) { + for (let i = start; i <= end; i = parseFloat((i + step).toFixed(10))) { + result.push(i); + } + } else { + for (let i = start; i >= end; i = parseFloat((i + step).toFixed(10))) { + result.push(i); + } + } + + return result; +}; module.exports = { range }; diff --git "a/\354\265\234\354\204\240\354\240\225/ex2.test.js" "b/\354\265\234\354\204\240\354\240\225/ex2.test.js" index cbdb2e8..ec97ac7 100644 --- "a/\354\265\234\354\204\240\354\240\225/ex2.test.js" +++ "b/\354\265\234\354\204\240\354\240\225/ex2.test.js" @@ -1,5 +1,5 @@ -const assert = require('assert'); -const { range } = require('./ex2'); +const assert = require("assert"); +const { range } = require("./ex2"); assert.deepStrictEqual(range(1, 10, 1), [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]); assert.deepStrictEqual(range(1, 10, 2), [1, 3, 5, 7, 9]); diff --git "a/\354\265\234\354\204\240\354\240\225/ex3.js" "b/\354\265\234\354\204\240\354\240\225/ex3.js" index b1b0d75..47724f0 100644 --- "a/\354\265\234\354\204\240\354\240\225/ex3.js" +++ "b/\354\265\234\354\204\240\354\240\225/ex3.js" @@ -1,3 +1,14 @@ -Array.prototype.sortBy = function (sortProp = '') { - return this; +Array.prototype.sortBy = function (sortProps = "") { + const properties = sortProps.split(",").map((prop) => { + const [key, order = "asc"] = prop.split(":"); + return { key: key.trim(), order: order.trim() }; + }); + + return this.slice().sort((a, b) => { + for (const { key, order } of properties) { + if (a[key] < b[key]) return order === "asc" ? -1 : 1; + if (a[key] > b[key]) return order === "asc" ? 1 : -1; + } + return 0; + }); }; diff --git "a/\354\265\234\354\204\240\354\240\225/ex3.test.js" "b/\354\265\234\354\204\240\354\240\225/ex3.test.js" index 6c27a4d..2774d71 100644 --- "a/\354\265\234\354\204\240\354\240\225/ex3.test.js" +++ "b/\354\265\234\354\204\240\354\240\225/ex3.test.js" @@ -1,18 +1,18 @@ -const assert = require('assert'); -require('./ex3'); +const assert = require("assert"); +require("./ex3"); -const hong = { id: 1, name: 'Hong', city: 'Busan', dept: 1 }; -const kim = { id: 2, name: 'Kim', city: 'Seoul', dept: 2 }; -const lee = { id: 3, name: 'Lee', city: 'Daegu', dept: 2 }; +const hong = { id: 1, name: "Hong", city: "Busan", dept: 1 }; +const kim = { id: 2, name: "Kim", city: "Seoul", dept: 2 }; +const lee = { id: 3, name: "Lee", city: "Daegu", dept: 2 }; const users = [lee, hong, kim]; -assert.deepStrictEqual(users.sortBy('id'), [hong, kim, lee]); -assert.deepStrictEqual(users.sortBy('name:desc'), [lee, kim, hong]); -assert.deepStrictEqual(users.sortBy('dept:desc,city:asc'), [hong, lee, kim]); -assert.deepStrictEqual(users.sortBy('dept:desc,city:desc'), [kim, lee, hong]); -assert.deepStrictEqual(users.sortBy('name:desc,id:,dept:desc'), [ - kim, +assert.deepStrictEqual(users.sortBy("id"), [hong, kim, lee]); +assert.deepStrictEqual(users.sortBy("name:desc"), [lee, kim, hong]); +assert.deepStrictEqual(users.sortBy("dept:desc,city:asc"), [lee, kim, hong]); +assert.deepStrictEqual(users.sortBy("dept:desc,city:desc"), [kim, lee, hong]); +assert.deepStrictEqual(users.sortBy("name:desc,id:,dept:desc"), [ lee, + kim, hong, ]); -assert.deepStrictEqual(users.sortBy('dept:desc,id'), [hong, kim, lee]); +assert.deepStrictEqual(users.sortBy("dept:desc,id"), [kim, lee, hong]); diff --git "a/\354\265\234\354\204\240\354\240\225/ex4.js" "b/\354\265\234\354\204\240\354\240\225/ex4.js" index 9ede02f..5441bda 100644 --- "a/\354\265\234\354\204\240\354\240\225/ex4.js" +++ "b/\354\265\234\354\204\240\354\240\225/ex4.js" @@ -1,3 +1,66 @@ -function deepCopy(obj) {} +function deepCopy(obj, hash = new WeakMap()) { + // null이나 원시 값인 경우 그대로 반환 + if (obj === null || typeof obj !== "object") { + return obj; + } + + // 순환 참조 방지 + if (hash.has(obj)) { + return hash.get(obj); + } + + // Date 객체 복사 + if (obj instanceof Date) { + return new Date(obj); + } + + // RegExp 객체 복사 + if (obj instanceof RegExp) { + return new RegExp(obj); + } + + // Set 객체 복사 + if (obj instanceof Set) { + const copy = new Set(); + obj.forEach((value) => { + copy.add(deepCopy(value, hash)); + }); + return copy; + } + + // Map 객체 복사 + if (obj instanceof Map) { + const copy = new Map(); + obj.forEach((value, key) => { + copy.set(deepCopy(key, hash), deepCopy(value, hash)); + }); + return copy; + } + + // WeakSet 객체 복사: 열거할 수 없으므로 새로운 WeakSet 생성 + if (obj instanceof WeakSet) { + return new WeakSet(); + } + + // WeakMap 객체 복사: 열거할 수 없으므로 새로운 WeakMap 생성 + if (obj instanceof WeakMap) { + return new WeakMap(); + } + + // 새로운 객체 또는 배열을 생성 + const copy = Array.isArray(obj) + ? [] + : Object.create(Object.getPrototypeOf(obj)); + + // 순환 참조 해결을 위해 현재 객체를 해시맵에 저장 + hash.set(obj, copy); + + // 객체의 키를 얻어서 재귀적으로 깊은 복사 + for (const key of Reflect.ownKeys(obj)) { + copy[key] = deepCopy(obj[key], hash); + } + + return copy; +} module.exports = { deepCopy }; diff --git "a/\354\265\234\354\204\240\354\240\225/ex4.test.js" "b/\354\265\234\354\204\240\354\240\225/ex4.test.js" index 2699ce8..d12f57d 100644 --- "a/\354\265\234\354\204\240\354\240\225/ex4.test.js" +++ "b/\354\265\234\354\204\240\354\240\225/ex4.test.js" @@ -1,14 +1,14 @@ -const assert = require('assert'); -const { deepCopy } = require('./ex4'); +const assert = require("assert"); +const { deepCopy } = require("./ex4"); const arr = [1, 2, 3]; -const hong = { id: 1, name: 'Hong', city: 'Busan', dept: 1 }; +const hong = { id: 1, name: "Hong", city: "Busan", dept: 1 }; const kim = { nid: 3, - addr: 'Pusan', + addr: "Pusan", arr: [1, 2, 3, { aid: 1 }, [10, 20]], - oo: { id: 1, name: 'Hong', addr: { city: 'Seoul' } }, + oo: { id: 1, name: "Hong", addr: { city: "Seoul" } }, xx: null, yy: function () { console.log(this.oo); @@ -17,24 +17,24 @@ const kim = { console.log(this.oo); }, [Symbol()]: 9, - [Symbol()]: Symbol('symbol2'), + [Symbol()]: Symbol("symbol2"), zs: new Set([arr, hong]), zws: new WeakSet([arr, hong]), zm: new Map([[hong, arr]]), zwm: new WeakMap([[hong, arr]]), }; const newKim = deepCopy(kim); -assert.deepStrictEqual(newKim, kim, 'deepCopy equal fail!'); -newKim.addr = 'Daegu'; -newKim.oo.name = 'Kim'; -assert.notDeepStrictEqual(newKim, kim, 'Not Valid Deep Copy!'); +assert.deepStrictEqual(newKim, kim, "deepCopy equal fail!"); +newKim.addr = "Daegu"; +newKim.oo.name = "Kim"; +assert.notDeepStrictEqual(newKim, kim, "Not Valid Deep Copy!"); newKim.arr[0] = 100; newKim.arr[3].aid = 200; newKim.arr[4][1] = 300; -newKim.oo.addr.city = 'Daejeon'; -assert.notStrictEqual(kim.arr[4][1], newKim.arr[4][1], 'pass2: 다르지 않아요!'); +newKim.oo.addr.city = "Daejeon"; +assert.notStrictEqual(kim.arr[4][1], newKim.arr[4][1], "pass2: 다르지 않아요!"); assert.notStrictEqual( kim.oo.addr.city, newKim.oo.addr.city, - 'Not Pass3: city가 다르지 않아요!' + "Not Pass3: city가 다르지 않아요!" ); diff --git "a/\354\265\234\354\204\240\354\240\225/ex5.js" "b/\354\265\234\354\204\240\354\240\225/ex5.js" index 464a05a..ff89779 100644 --- "a/\354\265\234\354\204\240\354\240\225/ex5.js" +++ "b/\354\265\234\354\204\240\354\240\225/ex5.js" @@ -1,3 +1,51 @@ module.exports = { - searchByKoreanInitialSound: (data, firstSounds) => {}, + searchByKoreanInitialSound: (data, firstSounds) => { + // 초성 유니코드 범위 설정 + const initialConsonants = [ + "ㄱ", + "ㄲ", + "ㄴ", + "ㄷ", + "ㄸ", + "ㄹ", + "ㅁ", + "ㅂ", + "ㅃ", + "ㅅ", + "ㅆ", + "ㅇ", + "ㅈ", + "ㅉ", + "ㅊ", + "ㅋ", + "ㅌ", + "ㅍ", + "ㅎ", + ]; + + // 초성을 매핑하는 배열 + const INITIAL_SOUND = initialConsonants.reduce((acc, char, idx) => { + acc[char] = String.fromCharCode(0x1100 + idx); // 한글 초성의 유니코드 값 계산 + return acc; + }, {}); + + // 초성 정규식 생성 + const createInitialRegex = (initials) => + new RegExp( + initials + .split("") + .map((ch) => INITIAL_SOUND[ch] || ch) // 초성에 해당하는 유니코드를 변환하여 매칭 + .join(".*"), // 각 초성을 사이에 '.*'를 추가하여 부분 일치를 지원 + "i" // 대소문자 구분 없이 + ); + + // 검색 수행 + return data.filter((item) => + createInitialRegex(firstSounds).test( + item + .normalize("NFD") // 유니코드 정규화를 통해 분리 + .replace(/[^ㄱ-ㅎㅏ-ㅣ가-힣]/g, "") // 한글만 남기고, 특수문자 제거 + ) + ); + }, }; diff --git "a/\354\265\234\354\204\240\354\240\225/ex5.test.js" "b/\354\265\234\354\204\240\354\240\225/ex5.test.js" index 8d966e8..d771f8e 100644 --- "a/\354\265\234\354\204\240\354\240\225/ex5.test.js" +++ "b/\354\265\234\354\204\240\354\240\225/ex5.test.js" @@ -1,21 +1,21 @@ -const assert = require('assert'); -const { searchByKoreanInitialSound } = require('./ex5'); +const assert = require("assert"); +const { searchByKoreanInitialSound } = require("./ex5"); -const s = ['강원도 고성군', '고성군 토성면', '토성면 북면', '북면', '김1수']; -assert.deepStrictEqual(searchByKoreanInitialSound(s, 'ㄱㅇ'), [ - '강원도 고성군', +const s = ["강원도 고성군", "고성군 토성면", "토성면 북면", "북면", "김1수"]; +assert.deepStrictEqual(searchByKoreanInitialSound(s, "ㄱㅇ"), [ + "강원도 고성군", ]); -assert.deepStrictEqual(searchByKoreanInitialSound(s, 'ㄱㅅㄱ'), [ - '강원도 고성군', - '고성군 토성면', +assert.deepStrictEqual(searchByKoreanInitialSound(s, "ㄱㅅㄱ"), [ + "강원도 고성군", + "고성군 토성면", ]); -assert.deepStrictEqual(searchByKoreanInitialSound(s, 'ㅌㅅㅁ'), [ - '고성군 토성면', - '토성면 북면', +assert.deepStrictEqual(searchByKoreanInitialSound(s, "ㅌㅅㅁ"), [ + "고성군 토성면", + "토성면 북면", ]); -assert.deepStrictEqual(searchByKoreanInitialSound(s, 'ㅂㅁ'), [ - '토성면 북면', - '북면', +assert.deepStrictEqual(searchByKoreanInitialSound(s, "ㅂㅁ"), [ + "토성면 북면", + "북면", ]); -assert.deepStrictEqual(searchByKoreanInitialSound(s, 'ㅍㅁ'), []); -assert.deepStrictEqual(searchByKoreanInitialSound(s, 'ㄱ1ㅅ'), ['김1수']); +assert.deepStrictEqual(searchByKoreanInitialSound(s, "ㅍㅁ"), []); +assert.deepStrictEqual(searchByKoreanInitialSound(s, "ㄱ1ㅅ"), ["김1수"]); diff --git "a/\354\265\234\354\204\240\354\240\225/ex6.ts" "b/\354\265\234\354\204\240\354\240\225/ex6.ts" index 424ca54..57f7752 100644 --- "a/\354\265\234\354\204\240\354\240\225/ex6.ts" +++ "b/\354\265\234\354\204\240\354\240\225/ex6.ts" @@ -1,4 +1,25 @@ export const randTime = (val: T): Promise => - new Promise(resolve => setTimeout(resolve, Math.random() * 1000, val)); + new Promise((resolve) => setTimeout(resolve, Math.random() * 1000, val)); -export function promiseAllSettled(promises: Promise[]) {} +export function promiseAllSettled(promises: Promise[]): Promise<{ status: string; value?: T; reason?: any }[]> { + return new Promise((resolve) => { + const results: { status: string; value?: T; reason?: any }[] = []; + let completedPromises = 0; + + promises.forEach((promise, index) => { + promise + .then((value) => { + results[index] = { status: "fulfilled", value }; + }) + .catch((reason) => { + results[index] = { status: "rejected", reason }; + }) + .finally(() => { + completedPromises++; + if (completedPromises === promises.length) { + resolve(results); + } + }); + }); + }); +} diff --git "a/\354\265\234\354\204\240\354\240\225/ex7.ts" "b/\354\265\234\354\204\240\354\240\225/ex7.ts" index 62812ac..8509616 100644 --- "a/\354\265\234\354\204\240\354\240\225/ex7.ts" +++ "b/\354\265\234\354\204\240\354\240\225/ex7.ts" @@ -1,3 +1,55 @@ + const POST_URL = 'https://jsonplaceholder.typicode.com/posts'; -export async function getPosts(userId: number | string) {} +export async function getPosts(userId: number | string) { + try { + const postsResponse = await fetch(`${POST_URL}?userId=${userId}`); + + if (!postsResponse.ok) { + throw new Error(`Failed to fetch posts: ${postsResponse.status}`); + } + + const posts = await postsResponse.json(); + + if (!Array.isArray(posts)) { + throw new Error('Posts is not an array'); + } + + const postsWithComments = await Promise.all( + posts.map(async (post: any) => { + try { + const commentsResponse = await fetch(`${POST_URL}/${post.id}/comments`); + + if (!commentsResponse.ok) { + throw new Error(`Failed to fetch comments for post ${post.id}: ${commentsResponse.status}`); + } + + const comments = await commentsResponse.json(); + + if (!Array.isArray(comments)) { + throw new Error('Comments is not an array'); + } + + return { + postId: post.id, + title: post.title, + comments: comments.map((comment: any) => ({ + postId: comment.postId, + id: comment.id, + email: comment.email, + body: comment.body, + })), + }; + } catch (error) { + console.error(`Error fetching comments for post ${post.id}:`, error); + return { postId: post.id, title: post.title, comments: [] }; + } + }) + ); + + return postsWithComments; + } catch (error) { + console.error('Error fetching posts:', error); + return []; + } +} diff --git "a/\354\265\234\354\204\240\354\240\225/ex9.js" "b/\354\265\234\354\204\240\354\240\225/ex9.js" index ec3044f..983bc2f 100644 --- "a/\354\265\234\354\204\240\354\240\225/ex9.js" +++ "b/\354\265\234\354\204\240\354\240\225/ex9.js" @@ -24,10 +24,10 @@ function bill(tableNo) { printLine(); for (const item of ordered) { const { price, taxfree } = MENU[item]; - console.log('*', item); + console.log("*", item); f`공급가액: ${price}원`; f`부가세액: ${taxfree ? 0 : calcTax(price)}원`; - printLine('-'); + printLine("-"); } f`주문합계: ${tot.price}원`; f`주문합계: ${tot.tax}원`; @@ -37,29 +37,29 @@ function bill(tableNo) { } const table1 = bill(1); -table1.order('짜장'); -table1.order('짬뽕'); +table1.order("짜장"); +table1.order("짬뽕"); table1.printBill(); const table2 = bill(2); -table2.order('짜장'); +table2.order("짜장"); table2.printBill(); -table1.order('탕슉'); +table1.order("탕슉"); table1.printBill(); -table2.order('짬뽕'); +table2.order("짬뽕"); table2.printBill(); function f([label, unit], price) { - console.log(`${label.padEnd(LABEL_SIZE, ' ')} ${priceFmt(price)}`); + console.log(`${label.padEnd(LABEL_SIZE, " ")} ${priceFmt(price)}`); } -function priceFmt(price, unit = '원') { - return price.toLocaleString().padStart(PRICE_SIZE, ' ') + unit; +function priceFmt(price, unit = "원") { + return price.toLocaleString().padStart(PRICE_SIZE, " ") + unit; } -function printLine(flag = '=') { +function printLine(flag = "=") { console.log(flag.repeat(LABEL_SIZE * 2 + PRICE_SIZE + 2)); } From a278a29b0445ea544c6b3b4fb5efb31449a78475 Mon Sep 17 00:00:00 2001 From: Choeseonjeong Date: Fri, 13 Sep 2024 12:17:32 +0900 Subject: [PATCH 2/3] 0913 --- "\354\265\234\354\204\240\354\240\225/ex4.js" | 19 ---- "\354\265\234\354\204\240\354\240\225/ex5.js" | 89 +++++++++---------- .../ex7.test.ts" | 2 - "\354\265\234\354\204\240\354\240\225/ex8.ts" | 35 +++++--- 4 files changed, 67 insertions(+), 78 deletions(-) diff --git "a/\354\265\234\354\204\240\354\240\225/ex4.js" "b/\354\265\234\354\204\240\354\240\225/ex4.js" index 5441bda..418da76 100644 --- "a/\354\265\234\354\204\240\354\240\225/ex4.js" +++ "b/\354\265\234\354\204\240\354\240\225/ex4.js" @@ -1,25 +1,16 @@ function deepCopy(obj, hash = new WeakMap()) { - // null이나 원시 값인 경우 그대로 반환 if (obj === null || typeof obj !== "object") { return obj; } - - // 순환 참조 방지 if (hash.has(obj)) { return hash.get(obj); } - - // Date 객체 복사 if (obj instanceof Date) { return new Date(obj); } - - // RegExp 객체 복사 if (obj instanceof RegExp) { return new RegExp(obj); } - - // Set 객체 복사 if (obj instanceof Set) { const copy = new Set(); obj.forEach((value) => { @@ -27,8 +18,6 @@ function deepCopy(obj, hash = new WeakMap()) { }); return copy; } - - // Map 객체 복사 if (obj instanceof Map) { const copy = new Map(); obj.forEach((value, key) => { @@ -36,26 +25,18 @@ function deepCopy(obj, hash = new WeakMap()) { }); return copy; } - - // WeakSet 객체 복사: 열거할 수 없으므로 새로운 WeakSet 생성 if (obj instanceof WeakSet) { return new WeakSet(); } - - // WeakMap 객체 복사: 열거할 수 없으므로 새로운 WeakMap 생성 if (obj instanceof WeakMap) { return new WeakMap(); } - - // 새로운 객체 또는 배열을 생성 const copy = Array.isArray(obj) ? [] : Object.create(Object.getPrototypeOf(obj)); - // 순환 참조 해결을 위해 현재 객체를 해시맵에 저장 hash.set(obj, copy); - // 객체의 키를 얻어서 재귀적으로 깊은 복사 for (const key of Reflect.ownKeys(obj)) { copy[key] = deepCopy(obj[key], hash); } diff --git "a/\354\265\234\354\204\240\354\240\225/ex5.js" "b/\354\265\234\354\204\240\354\240\225/ex5.js" index ff89779..198a142 100644 --- "a/\354\265\234\354\204\240\354\240\225/ex5.js" +++ "b/\354\265\234\354\204\240\354\240\225/ex5.js" @@ -1,51 +1,46 @@ module.exports = { searchByKoreanInitialSound: (data, firstSounds) => { - // 초성 유니코드 범위 설정 - const initialConsonants = [ - "ㄱ", - "ㄲ", - "ㄴ", - "ㄷ", - "ㄸ", - "ㄹ", - "ㅁ", - "ㅂ", - "ㅃ", - "ㅅ", - "ㅆ", - "ㅇ", - "ㅈ", - "ㅉ", - "ㅊ", - "ㅋ", - "ㅌ", - "ㅍ", - "ㅎ", - ]; - - // 초성을 매핑하는 배열 - const INITIAL_SOUND = initialConsonants.reduce((acc, char, idx) => { - acc[char] = String.fromCharCode(0x1100 + idx); // 한글 초성의 유니코드 값 계산 - return acc; - }, {}); - - // 초성 정규식 생성 - const createInitialRegex = (initials) => - new RegExp( - initials - .split("") - .map((ch) => INITIAL_SOUND[ch] || ch) // 초성에 해당하는 유니코드를 변환하여 매칭 - .join(".*"), // 각 초성을 사이에 '.*'를 추가하여 부분 일치를 지원 - "i" // 대소문자 구분 없이 - ); - - // 검색 수행 - return data.filter((item) => - createInitialRegex(firstSounds).test( - item - .normalize("NFD") // 유니코드 정규화를 통해 분리 - .replace(/[^ㄱ-ㅎㅏ-ㅣ가-힣]/g, "") // 한글만 남기고, 특수문자 제거 - ) - ); + function extractInitialConsonants(str) { + const cho = [ + "ㄱ", + "ㄲ", + "ㄴ", + "ㄷ", + "ㄸ", + "ㄹ", + "ㅁ", + "ㅂ", + "ㅃ", + "ㅅ", + "ㅆ", + "ㅇ", + "ㅈ", + "ㅉ", + "ㅊ", + "ㅋ", + "ㅌ", + "ㅍ", + "ㅎ", + ]; + let result = ""; + for (let i = 0; i < str.length; i++) { + const code = str.charCodeAt(i) - 44032; + if (code >= 0 && code <= 11171) { + result += cho[Math.floor(code / 588)]; + } else { + result += str[i]; + } + } + return result; + } + const result = []; + const keywordCho = extractInitialConsonants(firstSounds); + for (const item of data) { + const itemCho = extractInitialConsonants(item); + if (itemCho.includes(keywordCho)) { + result.push(item); + } + } + return result; }, }; diff --git "a/\354\265\234\354\204\240\354\240\225/ex7.test.ts" "b/\354\265\234\354\204\240\354\240\225/ex7.test.ts" index 62b881d..26082ad 100644 --- "a/\354\265\234\354\204\240\354\240\225/ex7.test.ts" +++ "b/\354\265\234\354\204\240\354\240\225/ex7.test.ts" @@ -63,8 +63,6 @@ async function test(userId: string | number) { }, ], }); - - // 추가 테스트 코드를 작성하시오. } test(1); diff --git "a/\354\265\234\354\204\240\354\240\225/ex8.ts" "b/\354\265\234\354\204\240\354\240\225/ex8.ts" index a67a2d2..6443ab2 100644 --- "a/\354\265\234\354\204\240\354\240\225/ex8.ts" +++ "b/\354\265\234\354\204\240\354\240\225/ex8.ts" @@ -1,11 +1,26 @@ // dummy(mock)입니다. 올바르게 수정하세요. -const debounce = (cb: any, delay: number) => (i: number) => {}; -const throttle = (cb: any, delay: number) => (i: number) => {}; - -// function throttle... - -const debo = debounce((a: number) => console.log(a + 1), 500); -for (let i = 10; i < 15; i++) debo(i); // 15 출력 - -const thro = throttle((a: number) => console.log(a + 1), 500); -for (let i = 10; i < 15; i++) thro(i); // 11 출력 +const debounce = (cb: any, delay: number) => { + let timer: ReturnType | undefined; + return (i: number) => { + if (timer) clearTimeout(timer); + timer = setTimeout(() => cb(i), delay); + }; + }; + + const throttle = (cb: any, delay: number) => { + let lastCall = 0; + return (i: number) => { + const now = Date.now(); + if (now - lastCall >= delay) { + lastCall = now; + cb(i); + } + }; + }; + + const debo = debounce((a: number) => console.log(a + 1), 500); + for (let i = 10; i < 15; i++) debo(i); // 15 출력 + + const thro = throttle((a: number) => console.log(a + 1), 500); + for (let i = 10; i < 15; i++) thro(i); // 11 출력 + \ No newline at end of file From 8c6622b7632655081dc0e1c8fec12944002408ae Mon Sep 17 00:00:00 2001 From: Choeseonjeong Date: Fri, 13 Sep 2024 14:09:47 +0900 Subject: [PATCH 3/3] 0913 --- "\354\265\234\354\204\240\354\240\225/ex10.ts" | 2 -- "\354\265\234\354\204\240\354\240\225/ex7.ts" | 6 +++--- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git "a/\354\265\234\354\204\240\354\240\225/ex10.ts" "b/\354\265\234\354\204\240\354\240\225/ex10.ts" index f8e5448..f4d9e05 100644 --- "a/\354\265\234\354\204\240\354\240\225/ex10.ts" +++ "b/\354\265\234\354\204\240\354\240\225/ex10.ts" @@ -108,7 +108,6 @@ class ArrayList extends Collection { return node ? node.value : null; } - // Rename to avoid conflict with Collection class removeValue(value: T): void { this.list = this._remove(this.list, value); } @@ -156,7 +155,6 @@ class ArrayList extends Collection { return ArrayList.listToArray(this.list); } - // Rename to avoid conflict with Collection class isEmptyList(): boolean { return this.size() === 0; } diff --git "a/\354\265\234\354\204\240\354\240\225/ex7.ts" "b/\354\265\234\354\204\240\354\240\225/ex7.ts" index 8509616..50497c5 100644 --- "a/\354\265\234\354\204\240\354\240\225/ex7.ts" +++ "b/\354\265\234\354\204\240\354\240\225/ex7.ts" @@ -12,7 +12,7 @@ export async function getPosts(userId: number | string) { const posts = await postsResponse.json(); if (!Array.isArray(posts)) { - throw new Error('Posts is not an array'); + throw new Error('Posts is not array'); } const postsWithComments = await Promise.all( @@ -27,7 +27,7 @@ export async function getPosts(userId: number | string) { const comments = await commentsResponse.json(); if (!Array.isArray(comments)) { - throw new Error('Comments is not an array'); + throw new Error('it iss not an array'); } return { @@ -41,7 +41,7 @@ export async function getPosts(userId: number | string) { })), }; } catch (error) { - console.error(`Error fetching comments for post ${post.id}:`, error); + console.error(`Error ${post.id}:`, error); return { postId: post.id, title: post.title, comments: [] }; } })