첫 완료
This commit is contained in:
36
.gitignore
vendored
Normal file
36
.gitignore
vendored
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
# dependencies (bun install)
|
||||||
|
node_modules
|
||||||
|
|
||||||
|
# output
|
||||||
|
out
|
||||||
|
dist
|
||||||
|
*.tgz
|
||||||
|
|
||||||
|
# code coverage
|
||||||
|
coverage
|
||||||
|
*.lcov
|
||||||
|
|
||||||
|
# logs
|
||||||
|
logs
|
||||||
|
_.log
|
||||||
|
report.[0-9]_.[0-9]_.[0-9]_.[0-9]_.json
|
||||||
|
|
||||||
|
# dotenv environment variable files
|
||||||
|
.env
|
||||||
|
.env.development.local
|
||||||
|
.env.test.local
|
||||||
|
.env.production.local
|
||||||
|
.env.local
|
||||||
|
|
||||||
|
# caches
|
||||||
|
.eslintcache
|
||||||
|
.cache
|
||||||
|
*.tsbuildinfo
|
||||||
|
|
||||||
|
# IntelliJ based IDEs
|
||||||
|
.idea
|
||||||
|
|
||||||
|
# Finder (MacOS) folder config
|
||||||
|
.DS_Store
|
||||||
|
|
||||||
|
/src/generated/prisma
|
||||||
4
.vscode/settings.json
vendored
Normal file
4
.vscode/settings.json
vendored
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"terminal.integrated.shellIntegration.enabled": false,
|
||||||
|
"terminal.integrated.defaultProfile.windows": "Windows PowerShell"
|
||||||
|
}
|
||||||
15
README.md
Normal file
15
README.md
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
# sung2
|
||||||
|
|
||||||
|
To install dependencies:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
bun install
|
||||||
|
```
|
||||||
|
|
||||||
|
To run:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
bun run index.ts
|
||||||
|
```
|
||||||
|
|
||||||
|
This project was created using `bun init` in bun v1.2.22. [Bun](https://bun.com) is a fast all-in-one JavaScript runtime.
|
||||||
157
app.ts
Normal file
157
app.ts
Normal file
@@ -0,0 +1,157 @@
|
|||||||
|
import prisma from "./src/lib/prisma";
|
||||||
|
import dayjs from "dayjs";
|
||||||
|
import { RankingService } from "./src/services/ranking.service";
|
||||||
|
import { NaverRealEstate } from "./src/services/naver.service";
|
||||||
|
import { realestateTypes, realtorIds } from "./config";
|
||||||
|
|
||||||
|
import {
|
||||||
|
TelegramService,
|
||||||
|
telegramUsers,
|
||||||
|
type TelegramUser,
|
||||||
|
} from "./src/services/telegram.service";
|
||||||
|
import type { RealEstateArticle } from "./src/generated/prisma";
|
||||||
|
import * as XLSX from "xlsx";
|
||||||
|
|
||||||
|
const telegramService = new TelegramService(
|
||||||
|
"233460568:AAHWgRQo5IgcWR0uXdsiMEzNnsmIqjOgk24",
|
||||||
|
false
|
||||||
|
);
|
||||||
|
|
||||||
|
async function main() {
|
||||||
|
await updateRanking();
|
||||||
|
// await sendTelegram();
|
||||||
|
}
|
||||||
|
|
||||||
|
async function sendTelegram() {
|
||||||
|
for (let telegramUser of telegramUsers) {
|
||||||
|
const articles = await prisma.realEstateArticle.findMany({
|
||||||
|
where: {
|
||||||
|
isActive: true,
|
||||||
|
realtorId: telegramUser.realtorId,
|
||||||
|
...(telegramUser.site !== "ALL" && { cpNm: telegramUser.site }),
|
||||||
|
...(telegramUser.site === "부동산포스" && {
|
||||||
|
brokerPhone: telegramUser.phone,
|
||||||
|
}),
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
const excelFilePath = await createExcelFile(telegramUser, articles);
|
||||||
|
|
||||||
|
await telegramService.sendDocument(
|
||||||
|
telegramUser.chatId,
|
||||||
|
excelFilePath,
|
||||||
|
`네이버 부동산 매물 목록 (${dayjs().format("YYYY-MM-DD")})`
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
async function createExcelFile(
|
||||||
|
telegramUser: TelegramUser,
|
||||||
|
articles: RealEstateArticle[]
|
||||||
|
): Promise<string> {
|
||||||
|
// 데이터를 배열로 변환
|
||||||
|
const data = articles.map((item) => {
|
||||||
|
const getOwnerType = () => {
|
||||||
|
if (["MOBL", "NDOC1", "OWNER"].includes(item.verificationType || "")) {
|
||||||
|
if (
|
||||||
|
["VL", "APT", "OPST", "DDDGG"].includes(item.realEstateType || "")
|
||||||
|
) {
|
||||||
|
return "집주인";
|
||||||
|
} else {
|
||||||
|
return "소유자";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (["SITE", "S_VR"].includes(item.verificationType || "")) {
|
||||||
|
return "현장";
|
||||||
|
}
|
||||||
|
return "";
|
||||||
|
};
|
||||||
|
|
||||||
|
const getPrice = () => {
|
||||||
|
return item.prcInfo;
|
||||||
|
};
|
||||||
|
|
||||||
|
return {
|
||||||
|
매물번호: item.articleNumber,
|
||||||
|
바로가기: `https://fin.land.naver.com/articles/${item.articleNumber}`,
|
||||||
|
소유자구분: getOwnerType(),
|
||||||
|
매물형태: item.articleName || "",
|
||||||
|
매매구분: item.tradTpNm || "",
|
||||||
|
주소: `${item.city || ""} ${item.division || ""} ${item.sector || ""}`,
|
||||||
|
상세주소: item.detailAddress || "",
|
||||||
|
층수: item.floorInfo || "",
|
||||||
|
가격: getPrice(),
|
||||||
|
매물특징: item.articleDescription || "",
|
||||||
|
광고사: item.cpNm || "",
|
||||||
|
확인일자: item.articleConfirmDate
|
||||||
|
? dayjs(item.articleConfirmDate).format("YYYY-MM-DD")
|
||||||
|
: "",
|
||||||
|
순위: item.ranking || 9999,
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
|
// 워크시트 생성
|
||||||
|
const worksheet = XLSX.utils.json_to_sheet(data);
|
||||||
|
|
||||||
|
// 바로가기 컬럼에 하이퍼링크 추가 (B열, 2번째 컬럼)
|
||||||
|
articles.forEach((item, index) => {
|
||||||
|
const cellAddress = `B${index + 2}`; // 헤더가 1행이므로 데이터는 2행부터
|
||||||
|
const url = `https://fin.land.naver.com/articles/${item.articleNumber}`;
|
||||||
|
worksheet[cellAddress] = {
|
||||||
|
t: "s", // string type
|
||||||
|
v: "열기", // 표시되는 텍스트
|
||||||
|
l: { Target: url }, // hyperlink
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
|
// 컬럼 너비 설정
|
||||||
|
worksheet["!cols"] = [
|
||||||
|
{ wch: 12 }, // 매물번호
|
||||||
|
{ wch: 10 }, // 바로가기
|
||||||
|
{ wch: 10 }, // 소유자구분
|
||||||
|
{ wch: 12 }, // 매물형태
|
||||||
|
{ wch: 10 }, // 매매구분
|
||||||
|
{ wch: 30 }, // 주소
|
||||||
|
{ wch: 40 }, // 상세주소
|
||||||
|
{ wch: 8 }, // 층수
|
||||||
|
{ wch: 14 }, // 가격
|
||||||
|
{ wch: 30 }, // 매물특징
|
||||||
|
{ wch: 14 }, // 광고사
|
||||||
|
{ wch: 10 }, // 확인일자
|
||||||
|
{ wch: 6 }, // 순위
|
||||||
|
];
|
||||||
|
|
||||||
|
// 워크북 생성
|
||||||
|
const workbook = XLSX.utils.book_new();
|
||||||
|
XLSX.utils.book_append_sheet(workbook, worksheet, "매물목록");
|
||||||
|
|
||||||
|
// 파일 저장
|
||||||
|
const filePath = `./xlsx/${dayjs().format("YYYY-MM-DD_HH-mm")}_순위_${
|
||||||
|
telegramUser.site
|
||||||
|
}_${telegramUser.realtorId}.xlsx`;
|
||||||
|
|
||||||
|
XLSX.writeFile(workbook, filePath);
|
||||||
|
|
||||||
|
return filePath;
|
||||||
|
}
|
||||||
|
|
||||||
|
async function updateRanking() {
|
||||||
|
const checkDate = dayjs().toDate();
|
||||||
|
for (let realtorId of realtorIds) {
|
||||||
|
const articles = await prisma.realEstateArticle.findMany({
|
||||||
|
where: {
|
||||||
|
isActive: true,
|
||||||
|
realtorId: realtorId,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
const rankingService = new RankingService(
|
||||||
|
new NaverRealEstate({
|
||||||
|
realtorId: realtorId,
|
||||||
|
})
|
||||||
|
);
|
||||||
|
await rankingService.updateRanking(articles, checkDate);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
main();
|
||||||
573
bun.lock
Normal file
573
bun.lock
Normal file
@@ -0,0 +1,573 @@
|
|||||||
|
{
|
||||||
|
"lockfileVersion": 1,
|
||||||
|
"workspaces": {
|
||||||
|
"": {
|
||||||
|
"name": "sung2",
|
||||||
|
"dependencies": {
|
||||||
|
"@prisma/client": "^6.17.1",
|
||||||
|
"@types/cheerio": "^1.0.0",
|
||||||
|
"axios": "^1.12.2",
|
||||||
|
"axios-retry": "^4.5.0",
|
||||||
|
"cheerio": "^1.1.2",
|
||||||
|
"dayjs": "^1.11.18",
|
||||||
|
"geolib": "^3.3.4",
|
||||||
|
"node-schedule": "^2.1.1",
|
||||||
|
"node-telegram-bot-api": "^0.66.0",
|
||||||
|
"prisma": "^6.17.1",
|
||||||
|
"xlsx": "^0.18.5",
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@types/axios": "^0.14.4",
|
||||||
|
"@types/bun": "latest",
|
||||||
|
"@types/node-schedule": "^2.1.8",
|
||||||
|
"@types/node-telegram-bot-api": "^0.64.11",
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"typescript": "^5",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"packages": {
|
||||||
|
"@cypress/request": ["@cypress/request@3.0.9", "", { "dependencies": { "aws-sign2": "~0.7.0", "aws4": "^1.8.0", "caseless": "~0.12.0", "combined-stream": "~1.0.6", "extend": "~3.0.2", "forever-agent": "~0.6.1", "form-data": "~4.0.4", "http-signature": "~1.4.0", "is-typedarray": "~1.0.0", "isstream": "~0.1.2", "json-stringify-safe": "~5.0.1", "mime-types": "~2.1.19", "performance-now": "^2.1.0", "qs": "6.14.0", "safe-buffer": "^5.1.2", "tough-cookie": "^5.0.0", "tunnel-agent": "^0.6.0", "uuid": "^8.3.2" } }, "sha512-I3l7FdGRXluAS44/0NguwWlO83J18p0vlr2FYHrJkWdNYhgVoiYo61IXPqaOsL+vNxU1ZqMACzItGK3/KKDsdw=="],
|
||||||
|
|
||||||
|
"@cypress/request-promise": ["@cypress/request-promise@5.0.0", "", { "dependencies": { "bluebird": "^3.5.0", "request-promise-core": "1.1.3", "stealthy-require": "^1.1.1", "tough-cookie": "^4.1.3" }, "peerDependencies": { "@cypress/request": "^3.0.0" } }, "sha512-eKdYVpa9cBEw2kTBlHeu1PP16Blwtum6QHg/u9s/MoHkZfuo1pRGka1VlUHXF5kdew82BvOJVVGk0x8X0nbp+w=="],
|
||||||
|
|
||||||
|
"@prisma/client": ["@prisma/client@6.17.1", "", { "peerDependencies": { "prisma": "*", "typescript": ">=5.1.0" }, "optionalPeers": ["prisma", "typescript"] }, "sha512-zL58jbLzYamjnNnmNA51IOZdbk5ci03KviXCuB0Tydc9btH2kDWsi1pQm2VecviRTM7jGia0OPPkgpGnT3nKvw=="],
|
||||||
|
|
||||||
|
"@prisma/config": ["@prisma/config@6.17.1", "", { "dependencies": { "c12": "3.1.0", "deepmerge-ts": "7.1.5", "effect": "3.16.12", "empathic": "2.0.0" } }, "sha512-fs8wY6DsvOCzuiyWVckrVs1LOcbY4LZNz8ki4uUIQ28jCCzojTGqdLhN2Jl5lDnC1yI8/gNIKpsWDM8pLhOdwA=="],
|
||||||
|
|
||||||
|
"@prisma/debug": ["@prisma/debug@6.17.1", "", {}, "sha512-Vf7Tt5Wh9XcndpbmeotuqOMLWPTjEKCsgojxXP2oxE1/xYe7PtnP76hsouG9vis6fctX+TxgmwxTuYi/+xc7dQ=="],
|
||||||
|
|
||||||
|
"@prisma/engines": ["@prisma/engines@6.17.1", "", { "dependencies": { "@prisma/debug": "6.17.1", "@prisma/engines-version": "6.17.1-1.272a37d34178c2894197e17273bf937f25acdeac", "@prisma/fetch-engine": "6.17.1", "@prisma/get-platform": "6.17.1" } }, "sha512-D95Ik3GYZkqZ8lSR4EyFOJ/tR33FcYRP8kK61o+WMsyD10UfJwd7+YielflHfKwiGodcqKqoraWw8ElAgMDbPw=="],
|
||||||
|
|
||||||
|
"@prisma/engines-version": ["@prisma/engines-version@6.17.1-1.272a37d34178c2894197e17273bf937f25acdeac", "", {}, "sha512-17140E3huOuD9lMdJ9+SF/juOf3WR3sTJMVyyenzqUPbuH+89nPhSWcrY+Mf7tmSs6HvaO+7S+HkELinn6bhdg=="],
|
||||||
|
|
||||||
|
"@prisma/fetch-engine": ["@prisma/fetch-engine@6.17.1", "", { "dependencies": { "@prisma/debug": "6.17.1", "@prisma/engines-version": "6.17.1-1.272a37d34178c2894197e17273bf937f25acdeac", "@prisma/get-platform": "6.17.1" } }, "sha512-AYZiHOs184qkDMiTeshyJCtyL4yERkjfTkJiSJdYuSfc24m94lTNL5+GFinZ6vVz+ktX4NJzHKn1zIFzGTWrWg=="],
|
||||||
|
|
||||||
|
"@prisma/get-platform": ["@prisma/get-platform@6.17.1", "", { "dependencies": { "@prisma/debug": "6.17.1" } }, "sha512-AKEn6fsfz0r482S5KRDFlIGEaq9wLNcgalD1adL+fPcFFblIKs1sD81kY/utrHdqKuVC6E1XSRpegDK3ZLL4Qg=="],
|
||||||
|
|
||||||
|
"@standard-schema/spec": ["@standard-schema/spec@1.0.0", "", {}, "sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA=="],
|
||||||
|
|
||||||
|
"@types/axios": ["@types/axios@0.14.4", "", { "dependencies": { "axios": "*" } }, "sha512-9JgOaunvQdsQ/qW2OPmE5+hCeUB52lQSolecrFrthct55QekhmXEwT203s20RL+UHtCQc15y3VXpby9E7Kkh/g=="],
|
||||||
|
|
||||||
|
"@types/bun": ["@types/bun@1.3.0", "", { "dependencies": { "bun-types": "1.3.0" } }, "sha512-+lAGCYjXjip2qY375xX/scJeVRmZ5cY0wyHYyCYxNcdEXrQ4AOe3gACgd4iQ8ksOslJtW4VNxBJ8llUwc3a6AA=="],
|
||||||
|
|
||||||
|
"@types/caseless": ["@types/caseless@0.12.5", "", {}, "sha512-hWtVTC2q7hc7xZ/RLbxapMvDMgUnDvKvMOpKal4DrMyfGBUfB1oKaZlIRr6mJL+If3bAP6sV/QneGzF6tJjZDg=="],
|
||||||
|
|
||||||
|
"@types/cheerio": ["@types/cheerio@1.0.0", "", { "dependencies": { "cheerio": "*" } }, "sha512-zAaImHWoh5RY2CLgU2mvg3bl2k3F65B0N5yphuII3ythFLPmJhL7sj1RDu6gSxcgqHlETbr/lhA2OBY+WF1fXQ=="],
|
||||||
|
|
||||||
|
"@types/node": ["@types/node@24.8.1", "", { "dependencies": { "undici-types": "~7.14.0" } }, "sha512-alv65KGRadQVfVcG69MuB4IzdYVpRwMG/mq8KWOaoOdyY617P5ivaDiMCGOFDWD2sAn5Q0mR3mRtUOgm99hL9Q=="],
|
||||||
|
|
||||||
|
"@types/node-schedule": ["@types/node-schedule@2.1.8", "", { "dependencies": { "@types/node": "*" } }, "sha512-k00g6Yj/oUg/CDC+MeLHUzu0+OFxWbIqrFfDiLi6OPKxTujvpv29mHGM8GtKr7B+9Vv92FcK/8mRqi1DK5f3hA=="],
|
||||||
|
|
||||||
|
"@types/node-telegram-bot-api": ["@types/node-telegram-bot-api@0.64.11", "", { "dependencies": { "@types/node": "*", "@types/request": "*" } }, "sha512-htUhp3/Zt6cB8crxVUNKWIOLPFdEF+P8StznbWGJXDgENfBtporBQZ8HJQG1/dx41uBRkJLaXH+xeRGNh6vCjg=="],
|
||||||
|
|
||||||
|
"@types/react": ["@types/react@19.2.2", "", { "dependencies": { "csstype": "^3.0.2" } }, "sha512-6mDvHUFSjyT2B2yeNx2nUgMxh9LtOWvkhIU3uePn2I2oyNymUAX1NIsdgviM4CH+JSrp2D2hsMvJOkxY+0wNRA=="],
|
||||||
|
|
||||||
|
"@types/request": ["@types/request@2.48.13", "", { "dependencies": { "@types/caseless": "*", "@types/node": "*", "@types/tough-cookie": "*", "form-data": "^2.5.5" } }, "sha512-FGJ6udDNUCjd19pp0Q3iTiDkwhYup7J8hpMW9c4k53NrccQFFWKRho6hvtPPEhnXWKvukfwAlB6DbDz4yhH5Gg=="],
|
||||||
|
|
||||||
|
"@types/tough-cookie": ["@types/tough-cookie@4.0.5", "", {}, "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA=="],
|
||||||
|
|
||||||
|
"adler-32": ["adler-32@1.3.1", "", {}, "sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A=="],
|
||||||
|
|
||||||
|
"ajv": ["ajv@6.12.6", "", { "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" } }, "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g=="],
|
||||||
|
|
||||||
|
"array-buffer-byte-length": ["array-buffer-byte-length@1.0.2", "", { "dependencies": { "call-bound": "^1.0.3", "is-array-buffer": "^3.0.5" } }, "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw=="],
|
||||||
|
|
||||||
|
"array.prototype.findindex": ["array.prototype.findindex@2.2.4", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", "define-properties": "^1.2.1", "es-abstract": "^1.23.6", "es-object-atoms": "^1.0.0", "es-shim-unscopables": "^1.0.2" } }, "sha512-LLm4mhxa9v8j0A/RPnpQAP4svXToJFh+Hp1pNYl5ZD5qpB4zdx/D4YjpVcETkhFbUKWO3iGMVLvrOnnmkAJT6A=="],
|
||||||
|
|
||||||
|
"arraybuffer.prototype.slice": ["arraybuffer.prototype.slice@1.0.4", "", { "dependencies": { "array-buffer-byte-length": "^1.0.1", "call-bind": "^1.0.8", "define-properties": "^1.2.1", "es-abstract": "^1.23.5", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.6", "is-array-buffer": "^3.0.4" } }, "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ=="],
|
||||||
|
|
||||||
|
"asn1": ["asn1@0.2.6", "", { "dependencies": { "safer-buffer": "~2.1.0" } }, "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ=="],
|
||||||
|
|
||||||
|
"assert-plus": ["assert-plus@1.0.0", "", {}, "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw=="],
|
||||||
|
|
||||||
|
"async-function": ["async-function@1.0.0", "", {}, "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA=="],
|
||||||
|
|
||||||
|
"asynckit": ["asynckit@0.4.0", "", {}, "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="],
|
||||||
|
|
||||||
|
"available-typed-arrays": ["available-typed-arrays@1.0.7", "", { "dependencies": { "possible-typed-array-names": "^1.0.0" } }, "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ=="],
|
||||||
|
|
||||||
|
"aws-sign2": ["aws-sign2@0.7.0", "", {}, "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA=="],
|
||||||
|
|
||||||
|
"aws4": ["aws4@1.13.2", "", {}, "sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw=="],
|
||||||
|
|
||||||
|
"axios": ["axios@1.12.2", "", { "dependencies": { "follow-redirects": "^1.15.6", "form-data": "^4.0.4", "proxy-from-env": "^1.1.0" } }, "sha512-vMJzPewAlRyOgxV2dU0Cuz2O8zzzx9VYtbJOaBgXFeLc4IV/Eg50n4LowmehOOR61S8ZMpc2K5Sa7g6A4jfkUw=="],
|
||||||
|
|
||||||
|
"axios-retry": ["axios-retry@4.5.0", "", { "dependencies": { "is-retry-allowed": "^2.2.0" }, "peerDependencies": { "axios": "0.x || 1.x" } }, "sha512-aR99oXhpEDGo0UuAlYcn2iGRds30k366Zfa05XWScR9QaQD4JYiP3/1Qt1u7YlefUOK+cn0CcwoL1oefavQUlQ=="],
|
||||||
|
|
||||||
|
"bcrypt-pbkdf": ["bcrypt-pbkdf@1.0.2", "", { "dependencies": { "tweetnacl": "^0.14.3" } }, "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w=="],
|
||||||
|
|
||||||
|
"bl": ["bl@1.2.3", "", { "dependencies": { "readable-stream": "^2.3.5", "safe-buffer": "^5.1.1" } }, "sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww=="],
|
||||||
|
|
||||||
|
"bluebird": ["bluebird@3.7.2", "", {}, "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg=="],
|
||||||
|
|
||||||
|
"boolbase": ["boolbase@1.0.0", "", {}, "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww=="],
|
||||||
|
|
||||||
|
"bun-types": ["bun-types@1.3.0", "", { "dependencies": { "@types/node": "*" }, "peerDependencies": { "@types/react": "^19" } }, "sha512-u8X0thhx+yJ0KmkxuEo9HAtdfgCBaM/aI9K90VQcQioAmkVp3SG3FkwWGibUFz3WdXAdcsqOcbU40lK7tbHdkQ=="],
|
||||||
|
|
||||||
|
"c12": ["c12@3.1.0", "", { "dependencies": { "chokidar": "^4.0.3", "confbox": "^0.2.2", "defu": "^6.1.4", "dotenv": "^16.6.1", "exsolve": "^1.0.7", "giget": "^2.0.0", "jiti": "^2.4.2", "ohash": "^2.0.11", "pathe": "^2.0.3", "perfect-debounce": "^1.0.0", "pkg-types": "^2.2.0", "rc9": "^2.1.2" }, "peerDependencies": { "magicast": "^0.3.5" }, "optionalPeers": ["magicast"] }, "sha512-uWoS8OU1MEIsOv8p/5a82c3H31LsWVR5qiyXVfBNOzfffjUWtPnhAb4BYI2uG2HfGmZmFjCtui5XNWaps+iFuw=="],
|
||||||
|
|
||||||
|
"call-bind": ["call-bind@1.0.8", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.0", "es-define-property": "^1.0.0", "get-intrinsic": "^1.2.4", "set-function-length": "^1.2.2" } }, "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww=="],
|
||||||
|
|
||||||
|
"call-bind-apply-helpers": ["call-bind-apply-helpers@1.0.2", "", { "dependencies": { "es-errors": "^1.3.0", "function-bind": "^1.1.2" } }, "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ=="],
|
||||||
|
|
||||||
|
"call-bound": ["call-bound@1.0.4", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.2", "get-intrinsic": "^1.3.0" } }, "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg=="],
|
||||||
|
|
||||||
|
"caseless": ["caseless@0.12.0", "", {}, "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw=="],
|
||||||
|
|
||||||
|
"cfb": ["cfb@1.2.2", "", { "dependencies": { "adler-32": "~1.3.0", "crc-32": "~1.2.0" } }, "sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA=="],
|
||||||
|
|
||||||
|
"cheerio": ["cheerio@1.1.2", "", { "dependencies": { "cheerio-select": "^2.1.0", "dom-serializer": "^2.0.0", "domhandler": "^5.0.3", "domutils": "^3.2.2", "encoding-sniffer": "^0.2.1", "htmlparser2": "^10.0.0", "parse5": "^7.3.0", "parse5-htmlparser2-tree-adapter": "^7.1.0", "parse5-parser-stream": "^7.1.2", "undici": "^7.12.0", "whatwg-mimetype": "^4.0.0" } }, "sha512-IkxPpb5rS/d1IiLbHMgfPuS0FgiWTtFIm/Nj+2woXDLTZ7fOT2eqzgYbdMlLweqlHbsZjxEChoVK+7iph7jyQg=="],
|
||||||
|
|
||||||
|
"cheerio-select": ["cheerio-select@2.1.0", "", { "dependencies": { "boolbase": "^1.0.0", "css-select": "^5.1.0", "css-what": "^6.1.0", "domelementtype": "^2.3.0", "domhandler": "^5.0.3", "domutils": "^3.0.1" } }, "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g=="],
|
||||||
|
|
||||||
|
"chokidar": ["chokidar@4.0.3", "", { "dependencies": { "readdirp": "^4.0.1" } }, "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA=="],
|
||||||
|
|
||||||
|
"citty": ["citty@0.1.6", "", { "dependencies": { "consola": "^3.2.3" } }, "sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ=="],
|
||||||
|
|
||||||
|
"codepage": ["codepage@1.15.0", "", {}, "sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA=="],
|
||||||
|
|
||||||
|
"combined-stream": ["combined-stream@1.0.8", "", { "dependencies": { "delayed-stream": "~1.0.0" } }, "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg=="],
|
||||||
|
|
||||||
|
"confbox": ["confbox@0.2.2", "", {}, "sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ=="],
|
||||||
|
|
||||||
|
"consola": ["consola@3.4.2", "", {}, "sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA=="],
|
||||||
|
|
||||||
|
"core-util-is": ["core-util-is@1.0.3", "", {}, "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ=="],
|
||||||
|
|
||||||
|
"crc-32": ["crc-32@1.2.2", "", { "bin": { "crc32": "bin/crc32.njs" } }, "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ=="],
|
||||||
|
|
||||||
|
"cron-parser": ["cron-parser@4.9.0", "", { "dependencies": { "luxon": "^3.2.1" } }, "sha512-p0SaNjrHOnQeR8/VnfGbmg9te2kfyYSQ7Sc/j/6DtPL3JQvKxmjO9TSjNFpujqV3vEYYBvNNvXSxzyksBWAx1Q=="],
|
||||||
|
|
||||||
|
"css-select": ["css-select@5.2.2", "", { "dependencies": { "boolbase": "^1.0.0", "css-what": "^6.1.0", "domhandler": "^5.0.2", "domutils": "^3.0.1", "nth-check": "^2.0.1" } }, "sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw=="],
|
||||||
|
|
||||||
|
"css-what": ["css-what@6.2.2", "", {}, "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA=="],
|
||||||
|
|
||||||
|
"csstype": ["csstype@3.1.3", "", {}, "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="],
|
||||||
|
|
||||||
|
"dashdash": ["dashdash@1.14.1", "", { "dependencies": { "assert-plus": "^1.0.0" } }, "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g=="],
|
||||||
|
|
||||||
|
"data-view-buffer": ["data-view-buffer@1.0.2", "", { "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", "is-data-view": "^1.0.2" } }, "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ=="],
|
||||||
|
|
||||||
|
"data-view-byte-length": ["data-view-byte-length@1.0.2", "", { "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", "is-data-view": "^1.0.2" } }, "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ=="],
|
||||||
|
|
||||||
|
"data-view-byte-offset": ["data-view-byte-offset@1.0.1", "", { "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", "is-data-view": "^1.0.1" } }, "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ=="],
|
||||||
|
|
||||||
|
"dayjs": ["dayjs@1.11.18", "", {}, "sha512-zFBQ7WFRvVRhKcWoUh+ZA1g2HVgUbsZm9sbddh8EC5iv93sui8DVVz1Npvz+r6meo9VKfa8NyLWBsQK1VvIKPA=="],
|
||||||
|
|
||||||
|
"debug": ["debug@3.2.7", "", { "dependencies": { "ms": "^2.1.1" } }, "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ=="],
|
||||||
|
|
||||||
|
"deepmerge-ts": ["deepmerge-ts@7.1.5", "", {}, "sha512-HOJkrhaYsweh+W+e74Yn7YStZOilkoPb6fycpwNLKzSPtruFs48nYis0zy5yJz1+ktUhHxoRDJ27RQAWLIJVJw=="],
|
||||||
|
|
||||||
|
"define-data-property": ["define-data-property@1.1.4", "", { "dependencies": { "es-define-property": "^1.0.0", "es-errors": "^1.3.0", "gopd": "^1.0.1" } }, "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A=="],
|
||||||
|
|
||||||
|
"define-properties": ["define-properties@1.2.1", "", { "dependencies": { "define-data-property": "^1.0.1", "has-property-descriptors": "^1.0.0", "object-keys": "^1.1.1" } }, "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg=="],
|
||||||
|
|
||||||
|
"defu": ["defu@6.1.4", "", {}, "sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg=="],
|
||||||
|
|
||||||
|
"delayed-stream": ["delayed-stream@1.0.0", "", {}, "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ=="],
|
||||||
|
|
||||||
|
"destr": ["destr@2.0.5", "", {}, "sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA=="],
|
||||||
|
|
||||||
|
"dom-serializer": ["dom-serializer@2.0.0", "", { "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.2", "entities": "^4.2.0" } }, "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg=="],
|
||||||
|
|
||||||
|
"domelementtype": ["domelementtype@2.3.0", "", {}, "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw=="],
|
||||||
|
|
||||||
|
"domhandler": ["domhandler@5.0.3", "", { "dependencies": { "domelementtype": "^2.3.0" } }, "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w=="],
|
||||||
|
|
||||||
|
"domutils": ["domutils@3.2.2", "", { "dependencies": { "dom-serializer": "^2.0.0", "domelementtype": "^2.3.0", "domhandler": "^5.0.3" } }, "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw=="],
|
||||||
|
|
||||||
|
"dotenv": ["dotenv@16.6.1", "", {}, "sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow=="],
|
||||||
|
|
||||||
|
"dunder-proto": ["dunder-proto@1.0.1", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.1", "es-errors": "^1.3.0", "gopd": "^1.2.0" } }, "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A=="],
|
||||||
|
|
||||||
|
"ecc-jsbn": ["ecc-jsbn@0.1.2", "", { "dependencies": { "jsbn": "~0.1.0", "safer-buffer": "^2.1.0" } }, "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw=="],
|
||||||
|
|
||||||
|
"effect": ["effect@3.16.12", "", { "dependencies": { "@standard-schema/spec": "^1.0.0", "fast-check": "^3.23.1" } }, "sha512-N39iBk0K71F9nb442TLbTkjl24FLUzuvx2i1I2RsEAQsdAdUTuUoW0vlfUXgkMTUOnYqKnWcFfqw4hK4Pw27hg=="],
|
||||||
|
|
||||||
|
"empathic": ["empathic@2.0.0", "", {}, "sha512-i6UzDscO/XfAcNYD75CfICkmfLedpyPDdozrLMmQc5ORaQcdMoc21OnlEylMIqI7U8eniKrPMxxtj8k0vhmJhA=="],
|
||||||
|
|
||||||
|
"encoding-sniffer": ["encoding-sniffer@0.2.1", "", { "dependencies": { "iconv-lite": "^0.6.3", "whatwg-encoding": "^3.1.1" } }, "sha512-5gvq20T6vfpekVtqrYQsSCFZ1wEg5+wW0/QaZMWkFr6BqD3NfKs0rLCx4rrVlSWJeZb5NBJgVLswK/w2MWU+Gw=="],
|
||||||
|
|
||||||
|
"end-of-stream": ["end-of-stream@1.4.5", "", { "dependencies": { "once": "^1.4.0" } }, "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg=="],
|
||||||
|
|
||||||
|
"entities": ["entities@4.5.0", "", {}, "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw=="],
|
||||||
|
|
||||||
|
"es-abstract": ["es-abstract@1.24.0", "", { "dependencies": { "array-buffer-byte-length": "^1.0.2", "arraybuffer.prototype.slice": "^1.0.4", "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.8", "call-bound": "^1.0.4", "data-view-buffer": "^1.0.2", "data-view-byte-length": "^1.0.2", "data-view-byte-offset": "^1.0.1", "es-define-property": "^1.0.1", "es-errors": "^1.3.0", "es-object-atoms": "^1.1.1", "es-set-tostringtag": "^2.1.0", "es-to-primitive": "^1.3.0", "function.prototype.name": "^1.1.8", "get-intrinsic": "^1.3.0", "get-proto": "^1.0.1", "get-symbol-description": "^1.1.0", "globalthis": "^1.0.4", "gopd": "^1.2.0", "has-property-descriptors": "^1.0.2", "has-proto": "^1.2.0", "has-symbols": "^1.1.0", "hasown": "^2.0.2", "internal-slot": "^1.1.0", "is-array-buffer": "^3.0.5", "is-callable": "^1.2.7", "is-data-view": "^1.0.2", "is-negative-zero": "^2.0.3", "is-regex": "^1.2.1", "is-set": "^2.0.3", "is-shared-array-buffer": "^1.0.4", "is-string": "^1.1.1", "is-typed-array": "^1.1.15", "is-weakref": "^1.1.1", "math-intrinsics": "^1.1.0", "object-inspect": "^1.13.4", "object-keys": "^1.1.1", "object.assign": "^4.1.7", "own-keys": "^1.0.1", "regexp.prototype.flags": "^1.5.4", "safe-array-concat": "^1.1.3", "safe-push-apply": "^1.0.0", "safe-regex-test": "^1.1.0", "set-proto": "^1.0.0", "stop-iteration-iterator": "^1.1.0", "string.prototype.trim": "^1.2.10", "string.prototype.trimend": "^1.0.9", "string.prototype.trimstart": "^1.0.8", "typed-array-buffer": "^1.0.3", "typed-array-byte-length": "^1.0.3", "typed-array-byte-offset": "^1.0.4", "typed-array-length": "^1.0.7", "unbox-primitive": "^1.1.0", "which-typed-array": "^1.1.19" } }, "sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg=="],
|
||||||
|
|
||||||
|
"es-define-property": ["es-define-property@1.0.1", "", {}, "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g=="],
|
||||||
|
|
||||||
|
"es-errors": ["es-errors@1.3.0", "", {}, "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw=="],
|
||||||
|
|
||||||
|
"es-object-atoms": ["es-object-atoms@1.1.1", "", { "dependencies": { "es-errors": "^1.3.0" } }, "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA=="],
|
||||||
|
|
||||||
|
"es-set-tostringtag": ["es-set-tostringtag@2.1.0", "", { "dependencies": { "es-errors": "^1.3.0", "get-intrinsic": "^1.2.6", "has-tostringtag": "^1.0.2", "hasown": "^2.0.2" } }, "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA=="],
|
||||||
|
|
||||||
|
"es-shim-unscopables": ["es-shim-unscopables@1.1.0", "", { "dependencies": { "hasown": "^2.0.2" } }, "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw=="],
|
||||||
|
|
||||||
|
"es-to-primitive": ["es-to-primitive@1.3.0", "", { "dependencies": { "is-callable": "^1.2.7", "is-date-object": "^1.0.5", "is-symbol": "^1.0.4" } }, "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g=="],
|
||||||
|
|
||||||
|
"eventemitter3": ["eventemitter3@3.1.2", "", {}, "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q=="],
|
||||||
|
|
||||||
|
"exsolve": ["exsolve@1.0.7", "", {}, "sha512-VO5fQUzZtI6C+vx4w/4BWJpg3s/5l+6pRQEHzFRM8WFi4XffSP1Z+4qi7GbjWbvRQEbdIco5mIMq+zX4rPuLrw=="],
|
||||||
|
|
||||||
|
"extend": ["extend@3.0.2", "", {}, "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="],
|
||||||
|
|
||||||
|
"extsprintf": ["extsprintf@1.3.0", "", {}, "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g=="],
|
||||||
|
|
||||||
|
"fast-check": ["fast-check@3.23.2", "", { "dependencies": { "pure-rand": "^6.1.0" } }, "sha512-h5+1OzzfCC3Ef7VbtKdcv7zsstUQwUDlYpUTvjeUsJAssPgLn7QzbboPtL5ro04Mq0rPOsMzl7q5hIbRs2wD1A=="],
|
||||||
|
|
||||||
|
"fast-deep-equal": ["fast-deep-equal@3.1.3", "", {}, "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="],
|
||||||
|
|
||||||
|
"fast-json-stable-stringify": ["fast-json-stable-stringify@2.1.0", "", {}, "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="],
|
||||||
|
|
||||||
|
"file-type": ["file-type@3.9.0", "", {}, "sha512-RLoqTXE8/vPmMuTI88DAzhMYC99I8BWv7zYP4A1puo5HIjEJ5EX48ighy4ZyKMG9EDXxBgW6e++cn7d1xuFghA=="],
|
||||||
|
|
||||||
|
"follow-redirects": ["follow-redirects@1.15.11", "", {}, "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ=="],
|
||||||
|
|
||||||
|
"for-each": ["for-each@0.3.5", "", { "dependencies": { "is-callable": "^1.2.7" } }, "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg=="],
|
||||||
|
|
||||||
|
"forever-agent": ["forever-agent@0.6.1", "", {}, "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw=="],
|
||||||
|
|
||||||
|
"form-data": ["form-data@4.0.4", "", { "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", "es-set-tostringtag": "^2.1.0", "hasown": "^2.0.2", "mime-types": "^2.1.12" } }, "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow=="],
|
||||||
|
|
||||||
|
"frac": ["frac@1.1.2", "", {}, "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA=="],
|
||||||
|
|
||||||
|
"function-bind": ["function-bind@1.1.2", "", {}, "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA=="],
|
||||||
|
|
||||||
|
"function.prototype.name": ["function.prototype.name@1.1.8", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", "define-properties": "^1.2.1", "functions-have-names": "^1.2.3", "hasown": "^2.0.2", "is-callable": "^1.2.7" } }, "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q=="],
|
||||||
|
|
||||||
|
"functions-have-names": ["functions-have-names@1.2.3", "", {}, "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ=="],
|
||||||
|
|
||||||
|
"generator-function": ["generator-function@2.0.1", "", {}, "sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g=="],
|
||||||
|
|
||||||
|
"geolib": ["geolib@3.3.4", "", {}, "sha512-EicrlLLL3S42gE9/wde+11uiaYAaeSVDwCUIv2uMIoRBfNJCn8EsSI+6nS3r4TCKDO6+RQNM9ayLq2at+oZQWQ=="],
|
||||||
|
|
||||||
|
"get-intrinsic": ["get-intrinsic@1.3.0", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.2", "es-define-property": "^1.0.1", "es-errors": "^1.3.0", "es-object-atoms": "^1.1.1", "function-bind": "^1.1.2", "get-proto": "^1.0.1", "gopd": "^1.2.0", "has-symbols": "^1.1.0", "hasown": "^2.0.2", "math-intrinsics": "^1.1.0" } }, "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ=="],
|
||||||
|
|
||||||
|
"get-proto": ["get-proto@1.0.1", "", { "dependencies": { "dunder-proto": "^1.0.1", "es-object-atoms": "^1.0.0" } }, "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g=="],
|
||||||
|
|
||||||
|
"get-symbol-description": ["get-symbol-description@1.1.0", "", { "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.6" } }, "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg=="],
|
||||||
|
|
||||||
|
"getpass": ["getpass@0.1.7", "", { "dependencies": { "assert-plus": "^1.0.0" } }, "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng=="],
|
||||||
|
|
||||||
|
"giget": ["giget@2.0.0", "", { "dependencies": { "citty": "^0.1.6", "consola": "^3.4.0", "defu": "^6.1.4", "node-fetch-native": "^1.6.6", "nypm": "^0.6.0", "pathe": "^2.0.3" }, "bin": { "giget": "dist/cli.mjs" } }, "sha512-L5bGsVkxJbJgdnwyuheIunkGatUF/zssUoxxjACCseZYAVbaqdh9Tsmmlkl8vYan09H7sbvKt4pS8GqKLBrEzA=="],
|
||||||
|
|
||||||
|
"globalthis": ["globalthis@1.0.4", "", { "dependencies": { "define-properties": "^1.2.1", "gopd": "^1.0.1" } }, "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ=="],
|
||||||
|
|
||||||
|
"gopd": ["gopd@1.2.0", "", {}, "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg=="],
|
||||||
|
|
||||||
|
"har-schema": ["har-schema@2.0.0", "", {}, "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q=="],
|
||||||
|
|
||||||
|
"har-validator": ["har-validator@5.1.5", "", { "dependencies": { "ajv": "^6.12.3", "har-schema": "^2.0.0" } }, "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w=="],
|
||||||
|
|
||||||
|
"has-bigints": ["has-bigints@1.1.0", "", {}, "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg=="],
|
||||||
|
|
||||||
|
"has-property-descriptors": ["has-property-descriptors@1.0.2", "", { "dependencies": { "es-define-property": "^1.0.0" } }, "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg=="],
|
||||||
|
|
||||||
|
"has-proto": ["has-proto@1.2.0", "", { "dependencies": { "dunder-proto": "^1.0.0" } }, "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ=="],
|
||||||
|
|
||||||
|
"has-symbols": ["has-symbols@1.1.0", "", {}, "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ=="],
|
||||||
|
|
||||||
|
"has-tostringtag": ["has-tostringtag@1.0.2", "", { "dependencies": { "has-symbols": "^1.0.3" } }, "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw=="],
|
||||||
|
|
||||||
|
"hasown": ["hasown@2.0.2", "", { "dependencies": { "function-bind": "^1.1.2" } }, "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ=="],
|
||||||
|
|
||||||
|
"htmlparser2": ["htmlparser2@10.0.0", "", { "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.3", "domutils": "^3.2.1", "entities": "^6.0.0" } }, "sha512-TwAZM+zE5Tq3lrEHvOlvwgj1XLWQCtaaibSN11Q+gGBAS7Y1uZSWwXXRe4iF6OXnaq1riyQAPFOBtYc77Mxq0g=="],
|
||||||
|
|
||||||
|
"http-signature": ["http-signature@1.4.0", "", { "dependencies": { "assert-plus": "^1.0.0", "jsprim": "^2.0.2", "sshpk": "^1.18.0" } }, "sha512-G5akfn7eKbpDN+8nPS/cb57YeA1jLTVxjpCj7tmm3QKPdyDy7T+qSC40e9ptydSWvkwjSXw1VbkpyEm39ukeAg=="],
|
||||||
|
|
||||||
|
"iconv-lite": ["iconv-lite@0.6.3", "", { "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" } }, "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw=="],
|
||||||
|
|
||||||
|
"inherits": ["inherits@2.0.4", "", {}, "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="],
|
||||||
|
|
||||||
|
"internal-slot": ["internal-slot@1.1.0", "", { "dependencies": { "es-errors": "^1.3.0", "hasown": "^2.0.2", "side-channel": "^1.1.0" } }, "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw=="],
|
||||||
|
|
||||||
|
"is-array-buffer": ["is-array-buffer@3.0.5", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", "get-intrinsic": "^1.2.6" } }, "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A=="],
|
||||||
|
|
||||||
|
"is-async-function": ["is-async-function@2.1.1", "", { "dependencies": { "async-function": "^1.0.0", "call-bound": "^1.0.3", "get-proto": "^1.0.1", "has-tostringtag": "^1.0.2", "safe-regex-test": "^1.1.0" } }, "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ=="],
|
||||||
|
|
||||||
|
"is-bigint": ["is-bigint@1.1.0", "", { "dependencies": { "has-bigints": "^1.0.2" } }, "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ=="],
|
||||||
|
|
||||||
|
"is-boolean-object": ["is-boolean-object@1.2.2", "", { "dependencies": { "call-bound": "^1.0.3", "has-tostringtag": "^1.0.2" } }, "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A=="],
|
||||||
|
|
||||||
|
"is-callable": ["is-callable@1.2.7", "", {}, "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA=="],
|
||||||
|
|
||||||
|
"is-data-view": ["is-data-view@1.0.2", "", { "dependencies": { "call-bound": "^1.0.2", "get-intrinsic": "^1.2.6", "is-typed-array": "^1.1.13" } }, "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw=="],
|
||||||
|
|
||||||
|
"is-date-object": ["is-date-object@1.1.0", "", { "dependencies": { "call-bound": "^1.0.2", "has-tostringtag": "^1.0.2" } }, "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg=="],
|
||||||
|
|
||||||
|
"is-finalizationregistry": ["is-finalizationregistry@1.1.1", "", { "dependencies": { "call-bound": "^1.0.3" } }, "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg=="],
|
||||||
|
|
||||||
|
"is-generator-function": ["is-generator-function@1.1.2", "", { "dependencies": { "call-bound": "^1.0.4", "generator-function": "^2.0.0", "get-proto": "^1.0.1", "has-tostringtag": "^1.0.2", "safe-regex-test": "^1.1.0" } }, "sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA=="],
|
||||||
|
|
||||||
|
"is-map": ["is-map@2.0.3", "", {}, "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw=="],
|
||||||
|
|
||||||
|
"is-negative-zero": ["is-negative-zero@2.0.3", "", {}, "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw=="],
|
||||||
|
|
||||||
|
"is-number-object": ["is-number-object@1.1.1", "", { "dependencies": { "call-bound": "^1.0.3", "has-tostringtag": "^1.0.2" } }, "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw=="],
|
||||||
|
|
||||||
|
"is-regex": ["is-regex@1.2.1", "", { "dependencies": { "call-bound": "^1.0.2", "gopd": "^1.2.0", "has-tostringtag": "^1.0.2", "hasown": "^2.0.2" } }, "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g=="],
|
||||||
|
|
||||||
|
"is-retry-allowed": ["is-retry-allowed@2.2.0", "", {}, "sha512-XVm7LOeLpTW4jV19QSH38vkswxoLud8sQ57YwJVTPWdiaI9I8keEhGFpBlslyVsgdQy4Opg8QOLb8YRgsyZiQg=="],
|
||||||
|
|
||||||
|
"is-set": ["is-set@2.0.3", "", {}, "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg=="],
|
||||||
|
|
||||||
|
"is-shared-array-buffer": ["is-shared-array-buffer@1.0.4", "", { "dependencies": { "call-bound": "^1.0.3" } }, "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A=="],
|
||||||
|
|
||||||
|
"is-string": ["is-string@1.1.1", "", { "dependencies": { "call-bound": "^1.0.3", "has-tostringtag": "^1.0.2" } }, "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA=="],
|
||||||
|
|
||||||
|
"is-symbol": ["is-symbol@1.1.1", "", { "dependencies": { "call-bound": "^1.0.2", "has-symbols": "^1.1.0", "safe-regex-test": "^1.1.0" } }, "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w=="],
|
||||||
|
|
||||||
|
"is-typed-array": ["is-typed-array@1.1.15", "", { "dependencies": { "which-typed-array": "^1.1.16" } }, "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ=="],
|
||||||
|
|
||||||
|
"is-typedarray": ["is-typedarray@1.0.0", "", {}, "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA=="],
|
||||||
|
|
||||||
|
"is-weakmap": ["is-weakmap@2.0.2", "", {}, "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w=="],
|
||||||
|
|
||||||
|
"is-weakref": ["is-weakref@1.1.1", "", { "dependencies": { "call-bound": "^1.0.3" } }, "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew=="],
|
||||||
|
|
||||||
|
"is-weakset": ["is-weakset@2.0.4", "", { "dependencies": { "call-bound": "^1.0.3", "get-intrinsic": "^1.2.6" } }, "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ=="],
|
||||||
|
|
||||||
|
"isarray": ["isarray@1.0.0", "", {}, "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="],
|
||||||
|
|
||||||
|
"isstream": ["isstream@0.1.2", "", {}, "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g=="],
|
||||||
|
|
||||||
|
"jiti": ["jiti@2.6.1", "", { "bin": { "jiti": "lib/jiti-cli.mjs" } }, "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ=="],
|
||||||
|
|
||||||
|
"jsbn": ["jsbn@0.1.1", "", {}, "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg=="],
|
||||||
|
|
||||||
|
"json-schema": ["json-schema@0.4.0", "", {}, "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA=="],
|
||||||
|
|
||||||
|
"json-schema-traverse": ["json-schema-traverse@0.4.1", "", {}, "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="],
|
||||||
|
|
||||||
|
"json-stringify-safe": ["json-stringify-safe@5.0.1", "", {}, "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA=="],
|
||||||
|
|
||||||
|
"jsprim": ["jsprim@2.0.2", "", { "dependencies": { "assert-plus": "1.0.0", "extsprintf": "1.3.0", "json-schema": "0.4.0", "verror": "1.10.0" } }, "sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ=="],
|
||||||
|
|
||||||
|
"lodash": ["lodash@4.17.21", "", {}, "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="],
|
||||||
|
|
||||||
|
"long-timeout": ["long-timeout@0.1.1", "", {}, "sha512-BFRuQUqc7x2NWxfJBCyUrN8iYUYznzL9JROmRz1gZ6KlOIgmoD+njPVbb+VNn2nGMKggMsK79iUNErillsrx7w=="],
|
||||||
|
|
||||||
|
"luxon": ["luxon@3.7.2", "", {}, "sha512-vtEhXh/gNjI9Yg1u4jX/0YVPMvxzHuGgCm6tC5kZyb08yjGWGnqAjGJvcXbqQR2P3MyMEFnRbpcdFS6PBcLqew=="],
|
||||||
|
|
||||||
|
"math-intrinsics": ["math-intrinsics@1.1.0", "", {}, "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g=="],
|
||||||
|
|
||||||
|
"mime": ["mime@1.6.0", "", { "bin": { "mime": "cli.js" } }, "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="],
|
||||||
|
|
||||||
|
"mime-db": ["mime-db@1.52.0", "", {}, "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="],
|
||||||
|
|
||||||
|
"mime-types": ["mime-types@2.1.35", "", { "dependencies": { "mime-db": "1.52.0" } }, "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw=="],
|
||||||
|
|
||||||
|
"ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="],
|
||||||
|
|
||||||
|
"node-fetch-native": ["node-fetch-native@1.6.7", "", {}, "sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q=="],
|
||||||
|
|
||||||
|
"node-schedule": ["node-schedule@2.1.1", "", { "dependencies": { "cron-parser": "^4.2.0", "long-timeout": "0.1.1", "sorted-array-functions": "^1.3.0" } }, "sha512-OXdegQq03OmXEjt2hZP33W2YPs/E5BcFQks46+G2gAxs4gHOIVD1u7EqlYLYSKsaIpyKCK9Gbk0ta1/gjRSMRQ=="],
|
||||||
|
|
||||||
|
"node-telegram-bot-api": ["node-telegram-bot-api@0.66.0", "", { "dependencies": { "@cypress/request": "^3.0.1", "@cypress/request-promise": "^5.0.0", "array.prototype.findindex": "^2.0.2", "bl": "^1.2.3", "debug": "^3.2.7", "eventemitter3": "^3.0.0", "file-type": "^3.9.0", "mime": "^1.6.0", "pump": "^2.0.0" } }, "sha512-s4Hrg5q+VPl4/tJVG++pImxF6eb8tNJNj4KnDqAOKL6zGU34lo9RXmyAN158njwGN+v8hdNf8s9fWIYW9hPb5A=="],
|
||||||
|
|
||||||
|
"nth-check": ["nth-check@2.1.1", "", { "dependencies": { "boolbase": "^1.0.0" } }, "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w=="],
|
||||||
|
|
||||||
|
"nypm": ["nypm@0.6.2", "", { "dependencies": { "citty": "^0.1.6", "consola": "^3.4.2", "pathe": "^2.0.3", "pkg-types": "^2.3.0", "tinyexec": "^1.0.1" }, "bin": { "nypm": "dist/cli.mjs" } }, "sha512-7eM+hpOtrKrBDCh7Ypu2lJ9Z7PNZBdi/8AT3AX8xoCj43BBVHD0hPSTEvMtkMpfs8FCqBGhxB+uToIQimA111g=="],
|
||||||
|
|
||||||
|
"oauth-sign": ["oauth-sign@0.9.0", "", {}, "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ=="],
|
||||||
|
|
||||||
|
"object-inspect": ["object-inspect@1.13.4", "", {}, "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew=="],
|
||||||
|
|
||||||
|
"object-keys": ["object-keys@1.1.1", "", {}, "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA=="],
|
||||||
|
|
||||||
|
"object.assign": ["object.assign@4.1.7", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", "define-properties": "^1.2.1", "es-object-atoms": "^1.0.0", "has-symbols": "^1.1.0", "object-keys": "^1.1.1" } }, "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw=="],
|
||||||
|
|
||||||
|
"ohash": ["ohash@2.0.11", "", {}, "sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ=="],
|
||||||
|
|
||||||
|
"once": ["once@1.4.0", "", { "dependencies": { "wrappy": "1" } }, "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w=="],
|
||||||
|
|
||||||
|
"own-keys": ["own-keys@1.0.1", "", { "dependencies": { "get-intrinsic": "^1.2.6", "object-keys": "^1.1.1", "safe-push-apply": "^1.0.0" } }, "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg=="],
|
||||||
|
|
||||||
|
"parse5": ["parse5@7.3.0", "", { "dependencies": { "entities": "^6.0.0" } }, "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw=="],
|
||||||
|
|
||||||
|
"parse5-htmlparser2-tree-adapter": ["parse5-htmlparser2-tree-adapter@7.1.0", "", { "dependencies": { "domhandler": "^5.0.3", "parse5": "^7.0.0" } }, "sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g=="],
|
||||||
|
|
||||||
|
"parse5-parser-stream": ["parse5-parser-stream@7.1.2", "", { "dependencies": { "parse5": "^7.0.0" } }, "sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow=="],
|
||||||
|
|
||||||
|
"pathe": ["pathe@2.0.3", "", {}, "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w=="],
|
||||||
|
|
||||||
|
"perfect-debounce": ["perfect-debounce@1.0.0", "", {}, "sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA=="],
|
||||||
|
|
||||||
|
"performance-now": ["performance-now@2.1.0", "", {}, "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow=="],
|
||||||
|
|
||||||
|
"pkg-types": ["pkg-types@2.3.0", "", { "dependencies": { "confbox": "^0.2.2", "exsolve": "^1.0.7", "pathe": "^2.0.3" } }, "sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig=="],
|
||||||
|
|
||||||
|
"possible-typed-array-names": ["possible-typed-array-names@1.1.0", "", {}, "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg=="],
|
||||||
|
|
||||||
|
"prisma": ["prisma@6.17.1", "", { "dependencies": { "@prisma/config": "6.17.1", "@prisma/engines": "6.17.1" }, "peerDependencies": { "typescript": ">=5.1.0" }, "optionalPeers": ["typescript"], "bin": { "prisma": "build/index.js" } }, "sha512-ac6h0sM1Tg3zu8NInY+qhP/S9KhENVaw9n1BrGKQVFu05JT5yT5Qqqmb8tMRIE3ZXvVj4xcRA5yfrsy4X7Yy5g=="],
|
||||||
|
|
||||||
|
"process-nextick-args": ["process-nextick-args@2.0.1", "", {}, "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="],
|
||||||
|
|
||||||
|
"proxy-from-env": ["proxy-from-env@1.1.0", "", {}, "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="],
|
||||||
|
|
||||||
|
"psl": ["psl@1.15.0", "", { "dependencies": { "punycode": "^2.3.1" } }, "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w=="],
|
||||||
|
|
||||||
|
"pump": ["pump@2.0.1", "", { "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" } }, "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA=="],
|
||||||
|
|
||||||
|
"punycode": ["punycode@2.3.1", "", {}, "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg=="],
|
||||||
|
|
||||||
|
"pure-rand": ["pure-rand@6.1.0", "", {}, "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA=="],
|
||||||
|
|
||||||
|
"qs": ["qs@6.14.0", "", { "dependencies": { "side-channel": "^1.1.0" } }, "sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w=="],
|
||||||
|
|
||||||
|
"querystringify": ["querystringify@2.2.0", "", {}, "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ=="],
|
||||||
|
|
||||||
|
"rc9": ["rc9@2.1.2", "", { "dependencies": { "defu": "^6.1.4", "destr": "^2.0.3" } }, "sha512-btXCnMmRIBINM2LDZoEmOogIZU7Qe7zn4BpomSKZ/ykbLObuBdvG+mFq11DL6fjH1DRwHhrlgtYWG96bJiC7Cg=="],
|
||||||
|
|
||||||
|
"readable-stream": ["readable-stream@2.3.8", "", { "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", "isarray": "~1.0.0", "process-nextick-args": "~2.0.0", "safe-buffer": "~5.1.1", "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" } }, "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA=="],
|
||||||
|
|
||||||
|
"readdirp": ["readdirp@4.1.2", "", {}, "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg=="],
|
||||||
|
|
||||||
|
"reflect.getprototypeof": ["reflect.getprototypeof@1.0.10", "", { "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", "es-abstract": "^1.23.9", "es-errors": "^1.3.0", "es-object-atoms": "^1.0.0", "get-intrinsic": "^1.2.7", "get-proto": "^1.0.1", "which-builtin-type": "^1.2.1" } }, "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw=="],
|
||||||
|
|
||||||
|
"regexp.prototype.flags": ["regexp.prototype.flags@1.5.4", "", { "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", "es-errors": "^1.3.0", "get-proto": "^1.0.1", "gopd": "^1.2.0", "set-function-name": "^2.0.2" } }, "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA=="],
|
||||||
|
|
||||||
|
"request": ["request@2.88.2", "", { "dependencies": { "aws-sign2": "~0.7.0", "aws4": "^1.8.0", "caseless": "~0.12.0", "combined-stream": "~1.0.6", "extend": "~3.0.2", "forever-agent": "~0.6.1", "form-data": "~2.3.2", "har-validator": "~5.1.3", "http-signature": "~1.2.0", "is-typedarray": "~1.0.0", "isstream": "~0.1.2", "json-stringify-safe": "~5.0.1", "mime-types": "~2.1.19", "oauth-sign": "~0.9.0", "performance-now": "^2.1.0", "qs": "~6.5.2", "safe-buffer": "^5.1.2", "tough-cookie": "~2.5.0", "tunnel-agent": "^0.6.0", "uuid": "^3.3.2" } }, "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw=="],
|
||||||
|
|
||||||
|
"request-promise-core": ["request-promise-core@1.1.3", "", { "dependencies": { "lodash": "^4.17.15" }, "peerDependencies": { "request": "^2.34" } }, "sha512-QIs2+ArIGQVp5ZYbWD5ZLCY29D5CfWizP8eWnm8FoGD1TX61veauETVQbrV60662V0oFBkrDOuaBI8XgtuyYAQ=="],
|
||||||
|
|
||||||
|
"requires-port": ["requires-port@1.0.0", "", {}, "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ=="],
|
||||||
|
|
||||||
|
"safe-array-concat": ["safe-array-concat@1.1.3", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.2", "get-intrinsic": "^1.2.6", "has-symbols": "^1.1.0", "isarray": "^2.0.5" } }, "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q=="],
|
||||||
|
|
||||||
|
"safe-buffer": ["safe-buffer@5.2.1", "", {}, "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="],
|
||||||
|
|
||||||
|
"safe-push-apply": ["safe-push-apply@1.0.0", "", { "dependencies": { "es-errors": "^1.3.0", "isarray": "^2.0.5" } }, "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA=="],
|
||||||
|
|
||||||
|
"safe-regex-test": ["safe-regex-test@1.1.0", "", { "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", "is-regex": "^1.2.1" } }, "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw=="],
|
||||||
|
|
||||||
|
"safer-buffer": ["safer-buffer@2.1.2", "", {}, "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="],
|
||||||
|
|
||||||
|
"set-function-length": ["set-function-length@1.2.2", "", { "dependencies": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", "function-bind": "^1.1.2", "get-intrinsic": "^1.2.4", "gopd": "^1.0.1", "has-property-descriptors": "^1.0.2" } }, "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg=="],
|
||||||
|
|
||||||
|
"set-function-name": ["set-function-name@2.0.2", "", { "dependencies": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", "functions-have-names": "^1.2.3", "has-property-descriptors": "^1.0.2" } }, "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ=="],
|
||||||
|
|
||||||
|
"set-proto": ["set-proto@1.0.0", "", { "dependencies": { "dunder-proto": "^1.0.1", "es-errors": "^1.3.0", "es-object-atoms": "^1.0.0" } }, "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw=="],
|
||||||
|
|
||||||
|
"side-channel": ["side-channel@1.1.0", "", { "dependencies": { "es-errors": "^1.3.0", "object-inspect": "^1.13.3", "side-channel-list": "^1.0.0", "side-channel-map": "^1.0.1", "side-channel-weakmap": "^1.0.2" } }, "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw=="],
|
||||||
|
|
||||||
|
"side-channel-list": ["side-channel-list@1.0.0", "", { "dependencies": { "es-errors": "^1.3.0", "object-inspect": "^1.13.3" } }, "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA=="],
|
||||||
|
|
||||||
|
"side-channel-map": ["side-channel-map@1.0.1", "", { "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.5", "object-inspect": "^1.13.3" } }, "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA=="],
|
||||||
|
|
||||||
|
"side-channel-weakmap": ["side-channel-weakmap@1.0.2", "", { "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.5", "object-inspect": "^1.13.3", "side-channel-map": "^1.0.1" } }, "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A=="],
|
||||||
|
|
||||||
|
"sorted-array-functions": ["sorted-array-functions@1.3.0", "", {}, "sha512-2sqgzeFlid6N4Z2fUQ1cvFmTOLRi/sEDzSQ0OKYchqgoPmQBVyM3959qYx3fpS6Esef80KjmpgPeEr028dP3OA=="],
|
||||||
|
|
||||||
|
"ssf": ["ssf@0.11.2", "", { "dependencies": { "frac": "~1.1.2" } }, "sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g=="],
|
||||||
|
|
||||||
|
"sshpk": ["sshpk@1.18.0", "", { "dependencies": { "asn1": "~0.2.3", "assert-plus": "^1.0.0", "bcrypt-pbkdf": "^1.0.0", "dashdash": "^1.12.0", "ecc-jsbn": "~0.1.1", "getpass": "^0.1.1", "jsbn": "~0.1.0", "safer-buffer": "^2.0.2", "tweetnacl": "~0.14.0" }, "bin": { "sshpk-conv": "bin/sshpk-conv", "sshpk-sign": "bin/sshpk-sign", "sshpk-verify": "bin/sshpk-verify" } }, "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ=="],
|
||||||
|
|
||||||
|
"stealthy-require": ["stealthy-require@1.1.1", "", {}, "sha512-ZnWpYnYugiOVEY5GkcuJK1io5V8QmNYChG62gSit9pQVGErXtrKuPC55ITaVSukmMta5qpMU7vqLt2Lnni4f/g=="],
|
||||||
|
|
||||||
|
"stop-iteration-iterator": ["stop-iteration-iterator@1.1.0", "", { "dependencies": { "es-errors": "^1.3.0", "internal-slot": "^1.1.0" } }, "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ=="],
|
||||||
|
|
||||||
|
"string.prototype.trim": ["string.prototype.trim@1.2.10", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.2", "define-data-property": "^1.1.4", "define-properties": "^1.2.1", "es-abstract": "^1.23.5", "es-object-atoms": "^1.0.0", "has-property-descriptors": "^1.0.2" } }, "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA=="],
|
||||||
|
|
||||||
|
"string.prototype.trimend": ["string.prototype.trimend@1.0.9", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.2", "define-properties": "^1.2.1", "es-object-atoms": "^1.0.0" } }, "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ=="],
|
||||||
|
|
||||||
|
"string.prototype.trimstart": ["string.prototype.trimstart@1.0.8", "", { "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-object-atoms": "^1.0.0" } }, "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg=="],
|
||||||
|
|
||||||
|
"string_decoder": ["string_decoder@1.1.1", "", { "dependencies": { "safe-buffer": "~5.1.0" } }, "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg=="],
|
||||||
|
|
||||||
|
"tinyexec": ["tinyexec@1.0.1", "", {}, "sha512-5uC6DDlmeqiOwCPmK9jMSdOuZTh8bU39Ys6yidB+UTt5hfZUPGAypSgFRiEp+jbi9qH40BLDvy85jIU88wKSqw=="],
|
||||||
|
|
||||||
|
"tldts": ["tldts@6.1.86", "", { "dependencies": { "tldts-core": "^6.1.86" }, "bin": { "tldts": "bin/cli.js" } }, "sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ=="],
|
||||||
|
|
||||||
|
"tldts-core": ["tldts-core@6.1.86", "", {}, "sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA=="],
|
||||||
|
|
||||||
|
"tough-cookie": ["tough-cookie@5.1.2", "", { "dependencies": { "tldts": "^6.1.32" } }, "sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A=="],
|
||||||
|
|
||||||
|
"tunnel-agent": ["tunnel-agent@0.6.0", "", { "dependencies": { "safe-buffer": "^5.0.1" } }, "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w=="],
|
||||||
|
|
||||||
|
"tweetnacl": ["tweetnacl@0.14.5", "", {}, "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA=="],
|
||||||
|
|
||||||
|
"typed-array-buffer": ["typed-array-buffer@1.0.3", "", { "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", "is-typed-array": "^1.1.14" } }, "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw=="],
|
||||||
|
|
||||||
|
"typed-array-byte-length": ["typed-array-byte-length@1.0.3", "", { "dependencies": { "call-bind": "^1.0.8", "for-each": "^0.3.3", "gopd": "^1.2.0", "has-proto": "^1.2.0", "is-typed-array": "^1.1.14" } }, "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg=="],
|
||||||
|
|
||||||
|
"typed-array-byte-offset": ["typed-array-byte-offset@1.0.4", "", { "dependencies": { "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.8", "for-each": "^0.3.3", "gopd": "^1.2.0", "has-proto": "^1.2.0", "is-typed-array": "^1.1.15", "reflect.getprototypeof": "^1.0.9" } }, "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ=="],
|
||||||
|
|
||||||
|
"typed-array-length": ["typed-array-length@1.0.7", "", { "dependencies": { "call-bind": "^1.0.7", "for-each": "^0.3.3", "gopd": "^1.0.1", "is-typed-array": "^1.1.13", "possible-typed-array-names": "^1.0.0", "reflect.getprototypeof": "^1.0.6" } }, "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg=="],
|
||||||
|
|
||||||
|
"typescript": ["typescript@5.9.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw=="],
|
||||||
|
|
||||||
|
"unbox-primitive": ["unbox-primitive@1.1.0", "", { "dependencies": { "call-bound": "^1.0.3", "has-bigints": "^1.0.2", "has-symbols": "^1.1.0", "which-boxed-primitive": "^1.1.1" } }, "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw=="],
|
||||||
|
|
||||||
|
"undici": ["undici@7.16.0", "", {}, "sha512-QEg3HPMll0o3t2ourKwOeUAZ159Kn9mx5pnzHRQO8+Wixmh88YdZRiIwat0iNzNNXn0yoEtXJqFpyW7eM8BV7g=="],
|
||||||
|
|
||||||
|
"undici-types": ["undici-types@7.14.0", "", {}, "sha512-QQiYxHuyZ9gQUIrmPo3IA+hUl4KYk8uSA7cHrcKd/l3p1OTpZcM0Tbp9x7FAtXdAYhlasd60ncPpgu6ihG6TOA=="],
|
||||||
|
|
||||||
|
"universalify": ["universalify@0.2.0", "", {}, "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg=="],
|
||||||
|
|
||||||
|
"uri-js": ["uri-js@4.4.1", "", { "dependencies": { "punycode": "^2.1.0" } }, "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg=="],
|
||||||
|
|
||||||
|
"url-parse": ["url-parse@1.5.10", "", { "dependencies": { "querystringify": "^2.1.1", "requires-port": "^1.0.0" } }, "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ=="],
|
||||||
|
|
||||||
|
"util-deprecate": ["util-deprecate@1.0.2", "", {}, "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="],
|
||||||
|
|
||||||
|
"uuid": ["uuid@8.3.2", "", { "bin": { "uuid": "dist/bin/uuid" } }, "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg=="],
|
||||||
|
|
||||||
|
"verror": ["verror@1.10.0", "", { "dependencies": { "assert-plus": "^1.0.0", "core-util-is": "1.0.2", "extsprintf": "^1.2.0" } }, "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw=="],
|
||||||
|
|
||||||
|
"whatwg-encoding": ["whatwg-encoding@3.1.1", "", { "dependencies": { "iconv-lite": "0.6.3" } }, "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ=="],
|
||||||
|
|
||||||
|
"whatwg-mimetype": ["whatwg-mimetype@4.0.0", "", {}, "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg=="],
|
||||||
|
|
||||||
|
"which-boxed-primitive": ["which-boxed-primitive@1.1.1", "", { "dependencies": { "is-bigint": "^1.1.0", "is-boolean-object": "^1.2.1", "is-number-object": "^1.1.1", "is-string": "^1.1.1", "is-symbol": "^1.1.1" } }, "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA=="],
|
||||||
|
|
||||||
|
"which-builtin-type": ["which-builtin-type@1.2.1", "", { "dependencies": { "call-bound": "^1.0.2", "function.prototype.name": "^1.1.6", "has-tostringtag": "^1.0.2", "is-async-function": "^2.0.0", "is-date-object": "^1.1.0", "is-finalizationregistry": "^1.1.0", "is-generator-function": "^1.0.10", "is-regex": "^1.2.1", "is-weakref": "^1.0.2", "isarray": "^2.0.5", "which-boxed-primitive": "^1.1.0", "which-collection": "^1.0.2", "which-typed-array": "^1.1.16" } }, "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q=="],
|
||||||
|
|
||||||
|
"which-collection": ["which-collection@1.0.2", "", { "dependencies": { "is-map": "^2.0.3", "is-set": "^2.0.3", "is-weakmap": "^2.0.2", "is-weakset": "^2.0.3" } }, "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw=="],
|
||||||
|
|
||||||
|
"which-typed-array": ["which-typed-array@1.1.19", "", { "dependencies": { "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.8", "call-bound": "^1.0.4", "for-each": "^0.3.5", "get-proto": "^1.0.1", "gopd": "^1.2.0", "has-tostringtag": "^1.0.2" } }, "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw=="],
|
||||||
|
|
||||||
|
"wmf": ["wmf@1.0.2", "", {}, "sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw=="],
|
||||||
|
|
||||||
|
"word": ["word@0.3.0", "", {}, "sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA=="],
|
||||||
|
|
||||||
|
"wrappy": ["wrappy@1.0.2", "", {}, "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="],
|
||||||
|
|
||||||
|
"xlsx": ["xlsx@0.18.5", "", { "dependencies": { "adler-32": "~1.3.0", "cfb": "~1.2.1", "codepage": "~1.15.0", "crc-32": "~1.2.1", "ssf": "~0.11.2", "wmf": "~1.0.1", "word": "~0.3.0" }, "bin": { "xlsx": "bin/xlsx.njs" } }, "sha512-dmg3LCjBPHZnQp5/F/+nnTa+miPJxUXB6vtk42YjBBKayDNagxGEeIdWApkYPOf3Z3pm3k62Knjzp7lMeTEtFQ=="],
|
||||||
|
|
||||||
|
"@cypress/request-promise/tough-cookie": ["tough-cookie@4.1.4", "", { "dependencies": { "psl": "^1.1.33", "punycode": "^2.1.1", "universalify": "^0.2.0", "url-parse": "^1.5.3" } }, "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag=="],
|
||||||
|
|
||||||
|
"@types/request/form-data": ["form-data@2.5.5", "", { "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", "es-set-tostringtag": "^2.1.0", "hasown": "^2.0.2", "mime-types": "^2.1.35", "safe-buffer": "^5.2.1" } }, "sha512-jqdObeR2rxZZbPSGL+3VckHMYtu+f9//KXBsVny6JSX/pa38Fy+bGjuG8eW/H6USNQWhLi8Num++cU2yOCNz4A=="],
|
||||||
|
|
||||||
|
"htmlparser2/entities": ["entities@6.0.1", "", {}, "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g=="],
|
||||||
|
|
||||||
|
"parse5/entities": ["entities@6.0.1", "", {}, "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g=="],
|
||||||
|
|
||||||
|
"readable-stream/safe-buffer": ["safe-buffer@5.1.2", "", {}, "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="],
|
||||||
|
|
||||||
|
"request/form-data": ["form-data@2.3.3", "", { "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.6", "mime-types": "^2.1.12" } }, "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ=="],
|
||||||
|
|
||||||
|
"request/http-signature": ["http-signature@1.2.0", "", { "dependencies": { "assert-plus": "^1.0.0", "jsprim": "^1.2.2", "sshpk": "^1.7.0" } }, "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ=="],
|
||||||
|
|
||||||
|
"request/qs": ["qs@6.5.3", "", {}, "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA=="],
|
||||||
|
|
||||||
|
"request/tough-cookie": ["tough-cookie@2.5.0", "", { "dependencies": { "psl": "^1.1.28", "punycode": "^2.1.1" } }, "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g=="],
|
||||||
|
|
||||||
|
"request/uuid": ["uuid@3.4.0", "", { "bin": { "uuid": "./bin/uuid" } }, "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A=="],
|
||||||
|
|
||||||
|
"safe-array-concat/isarray": ["isarray@2.0.5", "", {}, "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw=="],
|
||||||
|
|
||||||
|
"safe-push-apply/isarray": ["isarray@2.0.5", "", {}, "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw=="],
|
||||||
|
|
||||||
|
"string_decoder/safe-buffer": ["safe-buffer@5.1.2", "", {}, "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="],
|
||||||
|
|
||||||
|
"verror/core-util-is": ["core-util-is@1.0.2", "", {}, "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ=="],
|
||||||
|
|
||||||
|
"which-builtin-type/isarray": ["isarray@2.0.5", "", {}, "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw=="],
|
||||||
|
|
||||||
|
"request/http-signature/jsprim": ["jsprim@1.4.2", "", { "dependencies": { "assert-plus": "1.0.0", "extsprintf": "1.3.0", "json-schema": "0.4.0", "verror": "1.10.0" } }, "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw=="],
|
||||||
|
}
|
||||||
|
}
|
||||||
18
config.ts
Normal file
18
config.ts
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
export const realtorIds = ["namyeong00"];
|
||||||
|
export const tradeTypes = ["A1", "B1", "B2", "B3"];
|
||||||
|
export const realestateTypes = [
|
||||||
|
"A01",
|
||||||
|
"A02",
|
||||||
|
"A06",
|
||||||
|
"C01",
|
||||||
|
"C02",
|
||||||
|
"C03",
|
||||||
|
"C04",
|
||||||
|
"D01",
|
||||||
|
"D02",
|
||||||
|
"D03",
|
||||||
|
"D04",
|
||||||
|
"D05",
|
||||||
|
"E01",
|
||||||
|
"E03",
|
||||||
|
];
|
||||||
1333
data/articleDetail.html
Normal file
1333
data/articleDetail.html
Normal file
File diff suppressed because one or more lines are too long
1129
data/articleList.json
Normal file
1129
data/articleList.json
Normal file
File diff suppressed because it is too large
Load Diff
13
data/brokerInfo.json
Normal file
13
data/brokerInfo.json
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
{
|
||||||
|
"isSuccess": true,
|
||||||
|
"result": {
|
||||||
|
"brokerageName": "주식회사 조각부동산중개법인",
|
||||||
|
"brokerName": "조영국",
|
||||||
|
"address": "서울특별시 동작구 신대방동 719 동작상떼빌아파트 105동 2층 202호",
|
||||||
|
"businessRegistrationNumber": "11590-2023-00113",
|
||||||
|
"ownerConfirmationSaleCount": 0,
|
||||||
|
"phone": {
|
||||||
|
"mobile": "010-5958-2479"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
884
data/detailAddress.json
Normal file
884
data/detailAddress.json
Normal file
@@ -0,0 +1,884 @@
|
|||||||
|
{
|
||||||
|
"tradTpCd": "",
|
||||||
|
"atclRletTpCd": "",
|
||||||
|
"list": [
|
||||||
|
{
|
||||||
|
"atclNo": "2556654384",
|
||||||
|
"repImgUrl": "",
|
||||||
|
"repImgTpCd": "",
|
||||||
|
"repImgThumb": "f130_98",
|
||||||
|
"atclNm": "빌라",
|
||||||
|
"tradTpCd": "B1",
|
||||||
|
"tradTpNm": "전세",
|
||||||
|
"prcInfo": "17000",
|
||||||
|
"atclRletTpNm": "빌라/연립",
|
||||||
|
"spc1": "26",
|
||||||
|
"spc2": "20",
|
||||||
|
"flrInfo": "2/4",
|
||||||
|
"atclFetrDesc": "LH SH 중기청 버팀목대출 허그보증보험 숙대번화가바로안",
|
||||||
|
"atclCfmYmd": "25.10.21.",
|
||||||
|
"vrfcTpCd": "NDOC1",
|
||||||
|
"tradCmplYn": "N",
|
||||||
|
"tradCmplYmd": "",
|
||||||
|
"leaseYn": "Y",
|
||||||
|
"rletTpCd": "C03",
|
||||||
|
"bildNm": "",
|
||||||
|
"leasePrc": "1억 7,000",
|
||||||
|
"tagBitCd": "000100100010000000000000001000000010000010100000000000000000100011001110100000010000000000000000000010001000000000110000001001100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||||
|
"tagList": ["15년이내", "융자금없는", "화장실한개", "소형평수"],
|
||||||
|
"cpid": "NEONET",
|
||||||
|
"cpNm": "부동산뱅크",
|
||||||
|
"rltrNm": "친한부동산공인중개사사무소",
|
||||||
|
"cpLinkVO": {
|
||||||
|
"cpId": "NEONET",
|
||||||
|
"cpNm": "부동산뱅크",
|
||||||
|
"mobileArticleLinkTypeCode": "NONE",
|
||||||
|
"mobileBmsInspectPassYn": "Y",
|
||||||
|
"pcArticleLinkUseAtArticleTitle": false,
|
||||||
|
"pcArticleLinkUseAtCpName": false,
|
||||||
|
"mobileArticleLinkUseAtArticleTitle": false,
|
||||||
|
"mobileArticleLinkUseAtCpName": false
|
||||||
|
},
|
||||||
|
"directTradYn": "N",
|
||||||
|
"direction": "남향",
|
||||||
|
"dtlAddrYn": "N",
|
||||||
|
"dtlAddr": "42-3 202호",
|
||||||
|
"tradeCheckedByOwner": false,
|
||||||
|
"isVrExposed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"atclNo": "2556431979",
|
||||||
|
"repImgUrl": "/20251020_169/17609460720058TJuC_JPEG/1760939505782073.jpg",
|
||||||
|
"repImgTpCd": "10",
|
||||||
|
"repImgThumb": "f130_98",
|
||||||
|
"atclNm": "빌라",
|
||||||
|
"tradTpCd": "B1",
|
||||||
|
"tradTpNm": "전세",
|
||||||
|
"prcInfo": "28000",
|
||||||
|
"atclRletTpNm": "빌라/연립",
|
||||||
|
"spc1": "32",
|
||||||
|
"spc2": "27",
|
||||||
|
"flrInfo": "4/5",
|
||||||
|
"atclFetrDesc": "1119 입주고정 전세대출 보증보험 채광굿",
|
||||||
|
"atclCfmYmd": "25.10.20.",
|
||||||
|
"vrfcTpCd": "NDOC1",
|
||||||
|
"tradCmplYn": "N",
|
||||||
|
"tradCmplYmd": "",
|
||||||
|
"leaseYn": "Y",
|
||||||
|
"rletTpCd": "C03",
|
||||||
|
"bildNm": "",
|
||||||
|
"leasePrc": "2억 8,000",
|
||||||
|
"tagBitCd": "000100010010000000000000000001000001000001100000000000000000101011001010000000010000000000000000000010101111010000110000011001100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||||
|
"tagList": ["10년이내", "융자금없는", "화장실한개", "소형평수"],
|
||||||
|
"cpid": "NEONET",
|
||||||
|
"cpNm": "부동산뱅크",
|
||||||
|
"rltrNm": "친한부동산공인중개사사무소",
|
||||||
|
"cpLinkVO": {
|
||||||
|
"cpId": "NEONET",
|
||||||
|
"cpNm": "부동산뱅크",
|
||||||
|
"mobileArticleLinkTypeCode": "NONE",
|
||||||
|
"mobileBmsInspectPassYn": "Y",
|
||||||
|
"pcArticleLinkUseAtArticleTitle": false,
|
||||||
|
"pcArticleLinkUseAtCpName": false,
|
||||||
|
"mobileArticleLinkUseAtArticleTitle": false,
|
||||||
|
"mobileArticleLinkUseAtCpName": false
|
||||||
|
},
|
||||||
|
"directTradYn": "N",
|
||||||
|
"direction": "남동향",
|
||||||
|
"dtlAddrYn": "N",
|
||||||
|
"dtlAddr": "118-135 403",
|
||||||
|
"tradeCheckedByOwner": false,
|
||||||
|
"isVrExposed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"atclNo": "2556417965",
|
||||||
|
"repImgUrl": "/20251020_193/1760942680596JA3vs_JPEG/1759386349952964.jpg",
|
||||||
|
"repImgTpCd": "10",
|
||||||
|
"repImgThumb": "f130_98",
|
||||||
|
"atclNm": "빌라",
|
||||||
|
"tradTpCd": "B2",
|
||||||
|
"tradTpNm": "월세",
|
||||||
|
"prcInfo": "34000/15",
|
||||||
|
"atclRletTpNm": "빌라/연립",
|
||||||
|
"spc1": "-",
|
||||||
|
"spc2": "29",
|
||||||
|
"flrInfo": "고/4",
|
||||||
|
"atclFetrDesc": "신축3년차 다세대빌라 전세대출 보증보험 복층",
|
||||||
|
"atclCfmYmd": "25.10.20.",
|
||||||
|
"vrfcTpCd": "NDOC1",
|
||||||
|
"tradCmplYn": "N",
|
||||||
|
"tradCmplYmd": "",
|
||||||
|
"rletTpCd": "C03",
|
||||||
|
"bildNm": "",
|
||||||
|
"leasePrc": "3억 4,000",
|
||||||
|
"rentPrc": "15",
|
||||||
|
"tagBitCd": "000000010010000000000000001000000001000010100000000000000000101011001010000000010000000000000000000010101111010000110000111001100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||||
|
"tagList": ["4년이내", "융자금없는", "화장실한개", "방두개"],
|
||||||
|
"cpid": "NEONET",
|
||||||
|
"cpNm": "부동산뱅크",
|
||||||
|
"rltrNm": "친한부동산공인중개사사무소",
|
||||||
|
"cpLinkVO": {
|
||||||
|
"cpId": "NEONET",
|
||||||
|
"cpNm": "부동산뱅크",
|
||||||
|
"mobileArticleLinkTypeCode": "NONE",
|
||||||
|
"mobileBmsInspectPassYn": "Y",
|
||||||
|
"pcArticleLinkUseAtArticleTitle": false,
|
||||||
|
"pcArticleLinkUseAtCpName": false,
|
||||||
|
"mobileArticleLinkUseAtArticleTitle": false,
|
||||||
|
"mobileArticleLinkUseAtCpName": false
|
||||||
|
},
|
||||||
|
"directTradYn": "N",
|
||||||
|
"direction": "남향",
|
||||||
|
"dtlAddrYn": "N",
|
||||||
|
"dtlAddr": "82-9 b동 401",
|
||||||
|
"tradeCheckedByOwner": false,
|
||||||
|
"isVrExposed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"atclNo": "2556418121",
|
||||||
|
"repImgUrl": "/20251020_245/176094268077393KpR_JPEG/1760089948428362.jpg",
|
||||||
|
"repImgTpCd": "10",
|
||||||
|
"repImgThumb": "f130_98",
|
||||||
|
"atclNm": "빌라",
|
||||||
|
"tradTpCd": "B1",
|
||||||
|
"tradTpNm": "전세",
|
||||||
|
"prcInfo": "18400",
|
||||||
|
"atclRletTpNm": "빌라/연립",
|
||||||
|
"spc1": "31",
|
||||||
|
"spc2": "18",
|
||||||
|
"flrInfo": "고/5",
|
||||||
|
"atclFetrDesc": "탁트인뷰 고층 작은분리형원룸 개인테라스 26년1월이후입주협의가능",
|
||||||
|
"atclCfmYmd": "25.10.20.",
|
||||||
|
"vrfcTpCd": "NDOC1",
|
||||||
|
"tradCmplYn": "N",
|
||||||
|
"tradCmplYmd": "",
|
||||||
|
"leaseYn": "Y",
|
||||||
|
"rletTpCd": "C03",
|
||||||
|
"bildNm": "",
|
||||||
|
"leasePrc": "1억 8,400",
|
||||||
|
"tagBitCd": "000100100010001000010000001000000001000001100000000000000000101011001010000000010000000000000000000010101111010000110000011001100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||||
|
"tagList": ["10년이내", "융자금없는", "테라스", "세대분리"],
|
||||||
|
"cpid": "NEONET",
|
||||||
|
"cpNm": "부동산뱅크",
|
||||||
|
"rltrNm": "친한부동산공인중개사사무소",
|
||||||
|
"cpLinkVO": {
|
||||||
|
"cpId": "NEONET",
|
||||||
|
"cpNm": "부동산뱅크",
|
||||||
|
"mobileArticleLinkTypeCode": "NONE",
|
||||||
|
"mobileBmsInspectPassYn": "Y",
|
||||||
|
"pcArticleLinkUseAtArticleTitle": false,
|
||||||
|
"pcArticleLinkUseAtCpName": false,
|
||||||
|
"mobileArticleLinkUseAtArticleTitle": false,
|
||||||
|
"mobileArticleLinkUseAtCpName": false
|
||||||
|
},
|
||||||
|
"directTradYn": "N",
|
||||||
|
"direction": "남향",
|
||||||
|
"dtlAddrYn": "N",
|
||||||
|
"dtlAddr": "2-7 501",
|
||||||
|
"tradeCheckedByOwner": false,
|
||||||
|
"isVrExposed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"atclNo": "2556416916",
|
||||||
|
"repImgUrl": "/20251020_113/1760942585716oUCv5_JPEG/1758851305523234.jpg",
|
||||||
|
"repImgTpCd": "10",
|
||||||
|
"repImgThumb": "f130_98",
|
||||||
|
"atclNm": "빌라",
|
||||||
|
"tradTpCd": "A1",
|
||||||
|
"tradTpNm": "매매",
|
||||||
|
"prcInfo": "52000",
|
||||||
|
"atclRletTpNm": "빌라/연립",
|
||||||
|
"spc1": "25",
|
||||||
|
"spc2": "19",
|
||||||
|
"flrInfo": "고/5",
|
||||||
|
"atclFetrDesc": "급매 청파3가 역세권활성화추진구역내 용산소액투자",
|
||||||
|
"atclCfmYmd": "25.10.20.",
|
||||||
|
"vrfcTpCd": "NDOC1",
|
||||||
|
"tradCmplYn": "N",
|
||||||
|
"tradCmplYmd": "",
|
||||||
|
"rletTpCd": "C03",
|
||||||
|
"bildNm": "",
|
||||||
|
"leasePrc": "5억 2,000",
|
||||||
|
"tagBitCd": "000100100010000000000000000001000001000001000000000000000000101011001010000000010000000000000000100010101111010000000001111001100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||||
|
"tagList": ["2년이내", "급매", "화장실한개", "소형평수"],
|
||||||
|
"cpid": "NEONET",
|
||||||
|
"cpNm": "부동산뱅크",
|
||||||
|
"rltrNm": "친한부동산공인중개사사무소",
|
||||||
|
"cpLinkVO": {
|
||||||
|
"cpId": "NEONET",
|
||||||
|
"cpNm": "부동산뱅크",
|
||||||
|
"mobileArticleLinkTypeCode": "NONE",
|
||||||
|
"mobileBmsInspectPassYn": "Y",
|
||||||
|
"pcArticleLinkUseAtArticleTitle": false,
|
||||||
|
"pcArticleLinkUseAtCpName": false,
|
||||||
|
"mobileArticleLinkUseAtArticleTitle": false,
|
||||||
|
"mobileArticleLinkUseAtCpName": false
|
||||||
|
},
|
||||||
|
"directTradYn": "N",
|
||||||
|
"direction": "남동향",
|
||||||
|
"dtlAddrYn": "N",
|
||||||
|
"dtlAddr": "118-137 401호",
|
||||||
|
"tradeCheckedByOwner": false,
|
||||||
|
"isVrExposed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"atclNo": "2556416490",
|
||||||
|
"repImgUrl": "/20251020_98/1760941703663vJcS3_JPEG/1758851038331113.jpg",
|
||||||
|
"repImgTpCd": "10",
|
||||||
|
"repImgThumb": "f130_98",
|
||||||
|
"atclNm": "빌라",
|
||||||
|
"tradTpCd": "A1",
|
||||||
|
"tradTpNm": "매매",
|
||||||
|
"prcInfo": "71000",
|
||||||
|
"atclRletTpNm": "빌라/연립",
|
||||||
|
"spc1": "42",
|
||||||
|
"spc2": "29",
|
||||||
|
"flrInfo": "중/5",
|
||||||
|
"atclFetrDesc": "청파3구역 신속통합재개발 토지거래허가구역내",
|
||||||
|
"atclCfmYmd": "25.10.20.",
|
||||||
|
"vrfcTpCd": "NDOC1",
|
||||||
|
"tradCmplYn": "N",
|
||||||
|
"tradCmplYmd": "",
|
||||||
|
"rletTpCd": "C03",
|
||||||
|
"bildNm": "",
|
||||||
|
"leasePrc": "7억 1,000",
|
||||||
|
"tagBitCd": "000100010010000000000000001000000010000001000000000000000000101011001010000000010000000000000000000010101111010000000000011001100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||||
|
"tagList": ["10년이내", "화장실한개", "소형평수", "방두개"],
|
||||||
|
"cpid": "NEONET",
|
||||||
|
"cpNm": "부동산뱅크",
|
||||||
|
"rltrNm": "친한부동산공인중개사사무소",
|
||||||
|
"cpLinkVO": {
|
||||||
|
"cpId": "NEONET",
|
||||||
|
"cpNm": "부동산뱅크",
|
||||||
|
"mobileArticleLinkTypeCode": "NONE",
|
||||||
|
"mobileBmsInspectPassYn": "Y",
|
||||||
|
"pcArticleLinkUseAtArticleTitle": false,
|
||||||
|
"pcArticleLinkUseAtCpName": false,
|
||||||
|
"mobileArticleLinkUseAtArticleTitle": false,
|
||||||
|
"mobileArticleLinkUseAtCpName": false
|
||||||
|
},
|
||||||
|
"directTradYn": "N",
|
||||||
|
"direction": "남향",
|
||||||
|
"dtlAddrYn": "N",
|
||||||
|
"dtlAddr": "97-27 201",
|
||||||
|
"tradeCheckedByOwner": false,
|
||||||
|
"isVrExposed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"atclNo": "2556415816",
|
||||||
|
"repImgUrl": "/20251020_211/1760941647527M8RVk_JPEG/1747724279461683.jpg",
|
||||||
|
"repImgTpCd": "10",
|
||||||
|
"repImgThumb": "f130_98",
|
||||||
|
"atclNm": "빌라",
|
||||||
|
"tradTpCd": "B1",
|
||||||
|
"tradTpNm": "전세",
|
||||||
|
"prcInfo": "19500",
|
||||||
|
"atclRletTpNm": "빌라/연립",
|
||||||
|
"spc1": "19",
|
||||||
|
"spc2": "14",
|
||||||
|
"flrInfo": "고/5",
|
||||||
|
"atclFetrDesc": "넓은분리형원룸 위반건축 전입가능 전세권설정 대출불가 보증보험불가",
|
||||||
|
"atclCfmYmd": "25.10.20.",
|
||||||
|
"vrfcTpCd": "NDOC1",
|
||||||
|
"tradCmplYn": "N",
|
||||||
|
"tradCmplYmd": "",
|
||||||
|
"leaseYn": "Y",
|
||||||
|
"rletTpCd": "C03",
|
||||||
|
"bildNm": "",
|
||||||
|
"leasePrc": "1억 9,500",
|
||||||
|
"tagBitCd": "000100100010001000000000010000000001000001100000000000000000101011001010010000010000000000000000000010101111010000110000011001100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||||
|
"tagList": ["10년이내", "융자금없는", "세대분리", "소형평수"],
|
||||||
|
"cpid": "NEONET",
|
||||||
|
"cpNm": "부동산뱅크",
|
||||||
|
"rltrNm": "친한부동산공인중개사사무소",
|
||||||
|
"cpLinkVO": {
|
||||||
|
"cpId": "NEONET",
|
||||||
|
"cpNm": "부동산뱅크",
|
||||||
|
"mobileArticleLinkTypeCode": "NONE",
|
||||||
|
"mobileBmsInspectPassYn": "Y",
|
||||||
|
"pcArticleLinkUseAtArticleTitle": false,
|
||||||
|
"pcArticleLinkUseAtCpName": false,
|
||||||
|
"mobileArticleLinkUseAtArticleTitle": false,
|
||||||
|
"mobileArticleLinkUseAtCpName": false
|
||||||
|
},
|
||||||
|
"directTradYn": "N",
|
||||||
|
"direction": "서향",
|
||||||
|
"dtlAddrYn": "N",
|
||||||
|
"dtlAddr": "132-42 403",
|
||||||
|
"tradeCheckedByOwner": false,
|
||||||
|
"isVrExposed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"atclNo": "2556416071",
|
||||||
|
"repImgUrl": "/20251020_88/17609416525342nR65_JPEG/1712889378911383.jpg",
|
||||||
|
"repImgTpCd": "10",
|
||||||
|
"repImgThumb": "f130_98",
|
||||||
|
"atclNm": "빌라",
|
||||||
|
"tradTpCd": "B1",
|
||||||
|
"tradTpNm": "전세",
|
||||||
|
"prcInfo": "28000",
|
||||||
|
"atclRletTpNm": "빌라/연립",
|
||||||
|
"spc1": "23",
|
||||||
|
"spc2": "16",
|
||||||
|
"flrInfo": "고/6",
|
||||||
|
"atclFetrDesc": "고층 전세대출 대로변 분리형원룸 탁트인뷰",
|
||||||
|
"atclCfmYmd": "25.10.20.",
|
||||||
|
"vrfcTpCd": "NDOC1",
|
||||||
|
"tradCmplYn": "N",
|
||||||
|
"tradCmplYmd": "",
|
||||||
|
"leaseYn": "Y",
|
||||||
|
"rletTpCd": "C03",
|
||||||
|
"bildNm": "",
|
||||||
|
"leasePrc": "2억 8,000",
|
||||||
|
"tagBitCd": "000100100010001000000000010000000001000000000000000000000000101011001010000000010000000000000000000010101111010010110000111001100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||||
|
"tagList": ["4년이내", "역세권", "세대분리", "화장실한개"],
|
||||||
|
"cpid": "NEONET",
|
||||||
|
"cpNm": "부동산뱅크",
|
||||||
|
"rltrNm": "친한부동산공인중개사사무소",
|
||||||
|
"cpLinkVO": {
|
||||||
|
"cpId": "NEONET",
|
||||||
|
"cpNm": "부동산뱅크",
|
||||||
|
"mobileArticleLinkTypeCode": "NONE",
|
||||||
|
"mobileBmsInspectPassYn": "Y",
|
||||||
|
"pcArticleLinkUseAtArticleTitle": false,
|
||||||
|
"pcArticleLinkUseAtCpName": false,
|
||||||
|
"mobileArticleLinkUseAtArticleTitle": false,
|
||||||
|
"mobileArticleLinkUseAtCpName": false
|
||||||
|
},
|
||||||
|
"directTradYn": "N",
|
||||||
|
"direction": "서향",
|
||||||
|
"dtlAddrYn": "N",
|
||||||
|
"dtlAddr": "98-10 604호",
|
||||||
|
"tradeCheckedByOwner": false,
|
||||||
|
"isVrExposed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"atclNo": "2556417626",
|
||||||
|
"repImgUrl": "/20251020_113/1760940967985FLPp3_JPEG/1757657647723357.jpg",
|
||||||
|
"repImgTpCd": "10",
|
||||||
|
"repImgThumb": "f130_98",
|
||||||
|
"atclNm": "빌라",
|
||||||
|
"tradTpCd": "B1",
|
||||||
|
"tradTpNm": "전세",
|
||||||
|
"prcInfo": "29210",
|
||||||
|
"atclRletTpNm": "빌라/연립",
|
||||||
|
"spc1": "37",
|
||||||
|
"spc2": "29",
|
||||||
|
"flrInfo": "3/5",
|
||||||
|
"atclFetrDesc": "허그버팀목대출 보증보험 숙대번화가 안",
|
||||||
|
"atclCfmYmd": "25.10.20.",
|
||||||
|
"vrfcTpCd": "NDOC1",
|
||||||
|
"tradCmplYn": "N",
|
||||||
|
"tradCmplYmd": "",
|
||||||
|
"leaseYn": "Y",
|
||||||
|
"rletTpCd": "C03",
|
||||||
|
"bildNm": "",
|
||||||
|
"leasePrc": "2억 9,210",
|
||||||
|
"tagBitCd": "000100010010000000000000100000000010000001100000000000000000100011001010000000010000000000000000000010101111010000110000011001100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||||
|
"tagList": ["10년이내", "융자금없는", "화장실한개", "소형평수"],
|
||||||
|
"cpid": "NEONET",
|
||||||
|
"cpNm": "부동산뱅크",
|
||||||
|
"rltrNm": "친한부동산공인중개사사무소",
|
||||||
|
"cpLinkVO": {
|
||||||
|
"cpId": "NEONET",
|
||||||
|
"cpNm": "부동산뱅크",
|
||||||
|
"mobileArticleLinkTypeCode": "NONE",
|
||||||
|
"mobileBmsInspectPassYn": "Y",
|
||||||
|
"pcArticleLinkUseAtArticleTitle": false,
|
||||||
|
"pcArticleLinkUseAtCpName": false,
|
||||||
|
"mobileArticleLinkUseAtArticleTitle": false,
|
||||||
|
"mobileArticleLinkUseAtCpName": false
|
||||||
|
},
|
||||||
|
"directTradYn": "N",
|
||||||
|
"direction": "동향",
|
||||||
|
"dtlAddrYn": "N",
|
||||||
|
"dtlAddr": "60-17 305",
|
||||||
|
"tradeCheckedByOwner": false,
|
||||||
|
"isVrExposed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"atclNo": "2556416228",
|
||||||
|
"repImgUrl": "/20251020_161/1760940938692Smba8_JPEG/1759300766067183.jpg",
|
||||||
|
"repImgTpCd": "10",
|
||||||
|
"repImgThumb": "f130_98",
|
||||||
|
"atclNm": "빌라",
|
||||||
|
"tradTpCd": "A1",
|
||||||
|
"tradTpNm": "매매",
|
||||||
|
"prcInfo": "60000",
|
||||||
|
"atclRletTpNm": "빌라/연립",
|
||||||
|
"spc1": "22",
|
||||||
|
"spc2": "18",
|
||||||
|
"flrInfo": "고/5",
|
||||||
|
"atclFetrDesc": "급매 역세권시프트 구역선정 용산소액투자",
|
||||||
|
"atclCfmYmd": "25.10.20.",
|
||||||
|
"vrfcTpCd": "NDOC1",
|
||||||
|
"tradCmplYn": "N",
|
||||||
|
"tradCmplYmd": "",
|
||||||
|
"rletTpCd": "C03",
|
||||||
|
"bildNm": "",
|
||||||
|
"leasePrc": "6억",
|
||||||
|
"tagBitCd": "000100100010000000000000100000000001000001000000000000000000101011001010000000010000000000000000100010101111010000000000011001100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||||
|
"tagList": ["10년이내", "급매", "화장실한개", "소형평수"],
|
||||||
|
"cpid": "NEONET",
|
||||||
|
"cpNm": "부동산뱅크",
|
||||||
|
"rltrNm": "친한부동산공인중개사사무소",
|
||||||
|
"cpLinkVO": {
|
||||||
|
"cpId": "NEONET",
|
||||||
|
"cpNm": "부동산뱅크",
|
||||||
|
"mobileArticleLinkTypeCode": "NONE",
|
||||||
|
"mobileBmsInspectPassYn": "Y",
|
||||||
|
"pcArticleLinkUseAtArticleTitle": false,
|
||||||
|
"pcArticleLinkUseAtCpName": false,
|
||||||
|
"mobileArticleLinkUseAtArticleTitle": false,
|
||||||
|
"mobileArticleLinkUseAtCpName": false
|
||||||
|
},
|
||||||
|
"directTradYn": "N",
|
||||||
|
"direction": "동향",
|
||||||
|
"dtlAddrYn": "N",
|
||||||
|
"dtlAddr": "1-13 503",
|
||||||
|
"tradeCheckedByOwner": false,
|
||||||
|
"isVrExposed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"atclNo": "2556417165",
|
||||||
|
"repImgUrl": "/20251020_238/1760939061690HDS2y_JPEG/1754987842078452.jpg",
|
||||||
|
"repImgTpCd": "10",
|
||||||
|
"repImgThumb": "f130_98",
|
||||||
|
"atclNm": "빌라",
|
||||||
|
"tradTpCd": "B1",
|
||||||
|
"tradTpNm": "전세",
|
||||||
|
"prcInfo": "15000",
|
||||||
|
"atclRletTpNm": "빌라/연립",
|
||||||
|
"spc1": "19",
|
||||||
|
"spc2": "14",
|
||||||
|
"flrInfo": "고/6",
|
||||||
|
"atclFetrDesc": "신축3년 작은원룸 고층 탁트인뷰",
|
||||||
|
"atclCfmYmd": "25.10.20.",
|
||||||
|
"vrfcTpCd": "NDOC1",
|
||||||
|
"tradCmplYn": "N",
|
||||||
|
"tradCmplYmd": "",
|
||||||
|
"leaseYn": "Y",
|
||||||
|
"rletTpCd": "C03",
|
||||||
|
"bildNm": "",
|
||||||
|
"leasePrc": "1억 5,000",
|
||||||
|
"tagBitCd": "000100100010000000010000000001000001000000100000000000000000101011001010000100000000000000000000000010101111010000100000111001100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||||
|
"tagList": ["4년이내", "융자금없는", "테라스", "화장실한개"],
|
||||||
|
"cpid": "NEONET",
|
||||||
|
"cpNm": "부동산뱅크",
|
||||||
|
"rltrNm": "친한부동산공인중개사사무소",
|
||||||
|
"cpLinkVO": {
|
||||||
|
"cpId": "NEONET",
|
||||||
|
"cpNm": "부동산뱅크",
|
||||||
|
"mobileArticleLinkTypeCode": "NONE",
|
||||||
|
"mobileBmsInspectPassYn": "Y",
|
||||||
|
"pcArticleLinkUseAtArticleTitle": false,
|
||||||
|
"pcArticleLinkUseAtCpName": false,
|
||||||
|
"mobileArticleLinkUseAtArticleTitle": false,
|
||||||
|
"mobileArticleLinkUseAtCpName": false
|
||||||
|
},
|
||||||
|
"directTradYn": "N",
|
||||||
|
"direction": "남동향",
|
||||||
|
"dtlAddrYn": "N",
|
||||||
|
"dtlAddr": "132-38 503",
|
||||||
|
"tradeCheckedByOwner": false,
|
||||||
|
"isVrExposed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"atclNo": "2556417818",
|
||||||
|
"repImgUrl": "/20251020_264/17609418541139W3Xf_JPEG/1756273411537204.jpg",
|
||||||
|
"repImgTpCd": "10",
|
||||||
|
"repImgThumb": "f130_98",
|
||||||
|
"atclNm": "빌라",
|
||||||
|
"tradTpCd": "B1",
|
||||||
|
"tradTpNm": "전세",
|
||||||
|
"prcInfo": "30000",
|
||||||
|
"atclRletTpNm": "빌라/연립",
|
||||||
|
"spc1": "37",
|
||||||
|
"spc2": "29",
|
||||||
|
"flrInfo": "5/5",
|
||||||
|
"atclFetrDesc": "신축4년 고층 남산타워뷰 허그전세대출 보증보험 투룸 지하철도보",
|
||||||
|
"atclCfmYmd": "25.10.20.",
|
||||||
|
"vrfcTpCd": "NDOC1",
|
||||||
|
"tradCmplYn": "N",
|
||||||
|
"tradCmplYmd": "",
|
||||||
|
"leaseYn": "Y",
|
||||||
|
"rletTpCd": "C03",
|
||||||
|
"bildNm": "",
|
||||||
|
"leasePrc": "3억",
|
||||||
|
"tagBitCd": "000100010010000000000000010000000001100001100000000000000000100011001010000000010000000000000000000010101111010000110000011001100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||||
|
"tagList": ["10년이내", "융자금없는", "화장실한개", "소형평수"],
|
||||||
|
"cpid": "NEONET",
|
||||||
|
"cpNm": "부동산뱅크",
|
||||||
|
"rltrNm": "친한부동산공인중개사사무소",
|
||||||
|
"cpLinkVO": {
|
||||||
|
"cpId": "NEONET",
|
||||||
|
"cpNm": "부동산뱅크",
|
||||||
|
"mobileArticleLinkTypeCode": "NONE",
|
||||||
|
"mobileBmsInspectPassYn": "Y",
|
||||||
|
"pcArticleLinkUseAtArticleTitle": false,
|
||||||
|
"pcArticleLinkUseAtCpName": false,
|
||||||
|
"mobileArticleLinkUseAtArticleTitle": false,
|
||||||
|
"mobileArticleLinkUseAtCpName": false
|
||||||
|
},
|
||||||
|
"directTradYn": "N",
|
||||||
|
"direction": "서향",
|
||||||
|
"dtlAddrYn": "N",
|
||||||
|
"dtlAddr": "60-17 501",
|
||||||
|
"tradeCheckedByOwner": false,
|
||||||
|
"isVrExposed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"atclNo": "2556415619",
|
||||||
|
"repImgUrl": "/20251020_13/1760938216928SwoHU_JPEG/1752651577508526.jpg",
|
||||||
|
"repImgTpCd": "10",
|
||||||
|
"repImgThumb": "f130_98",
|
||||||
|
"atclNm": "빌라",
|
||||||
|
"tradTpCd": "A1",
|
||||||
|
"tradTpNm": "매매",
|
||||||
|
"prcInfo": "69000",
|
||||||
|
"atclRletTpNm": "빌라/연립",
|
||||||
|
"spc1": "37",
|
||||||
|
"spc2": "29",
|
||||||
|
"flrInfo": "중/5",
|
||||||
|
"atclFetrDesc": "청파동3가 역세권활성화 구역내 실투4억 신축1년 투룸",
|
||||||
|
"atclCfmYmd": "25.10.20.",
|
||||||
|
"vrfcTpCd": "NDOC1",
|
||||||
|
"tradCmplYn": "N",
|
||||||
|
"tradCmplYmd": "",
|
||||||
|
"rletTpCd": "C03",
|
||||||
|
"bildNm": "",
|
||||||
|
"leasePrc": "6억 9,000",
|
||||||
|
"tagBitCd": "000100010010000000000000010000000010000001000000000000000000101011001010000000010000000000000000000010101111010000000001111001100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||||
|
"tagList": ["2년이내", "화장실한개", "소형평수", "방두개"],
|
||||||
|
"cpid": "NEONET",
|
||||||
|
"cpNm": "부동산뱅크",
|
||||||
|
"rltrNm": "친한부동산공인중개사사무소",
|
||||||
|
"cpLinkVO": {
|
||||||
|
"cpId": "NEONET",
|
||||||
|
"cpNm": "부동산뱅크",
|
||||||
|
"mobileArticleLinkTypeCode": "NONE",
|
||||||
|
"mobileBmsInspectPassYn": "Y",
|
||||||
|
"pcArticleLinkUseAtArticleTitle": false,
|
||||||
|
"pcArticleLinkUseAtCpName": false,
|
||||||
|
"mobileArticleLinkUseAtArticleTitle": false,
|
||||||
|
"mobileArticleLinkUseAtCpName": false
|
||||||
|
},
|
||||||
|
"directTradYn": "N",
|
||||||
|
"direction": "서향",
|
||||||
|
"dtlAddrYn": "N",
|
||||||
|
"dtlAddr": "118-226 301호",
|
||||||
|
"tradeCheckedByOwner": false,
|
||||||
|
"isVrExposed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"atclNo": "2556124349",
|
||||||
|
"repImgUrl": "/20251018_122/1760766785700cugQY_JPEG/KakaoTalk_20240720_152259281_03.jpg",
|
||||||
|
"repImgTpCd": "10",
|
||||||
|
"repImgThumb": "f130_98",
|
||||||
|
"atclNm": "빌라",
|
||||||
|
"tradTpCd": "A1",
|
||||||
|
"tradTpNm": "매매",
|
||||||
|
"prcInfo": "52000",
|
||||||
|
"atclRletTpNm": "빌라/연립",
|
||||||
|
"spc1": "25",
|
||||||
|
"spc2": "19",
|
||||||
|
"flrInfo": "고/5",
|
||||||
|
"atclFetrDesc": "청파동3가 역세권활성화구역내 실투자 3.4억",
|
||||||
|
"atclCfmYmd": "25.10.18.",
|
||||||
|
"vrfcTpCd": "NDOC1",
|
||||||
|
"tradCmplYn": "N",
|
||||||
|
"tradCmplYmd": "",
|
||||||
|
"rletTpCd": "C03",
|
||||||
|
"bildNm": "",
|
||||||
|
"leasePrc": "5억 2,000",
|
||||||
|
"tagBitCd": "000100100010000000000000000001000001000001000000000000000000101011001010000000010000000000000000000000001001010000000001111001100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||||
|
"tagList": ["2년이내", "화장실한개", "소형평수", "방한개"],
|
||||||
|
"cpid": "bizmk",
|
||||||
|
"cpNm": "매경부동산",
|
||||||
|
"rltrNm": "친한부동산공인중개사사무소",
|
||||||
|
"cpLinkVO": {
|
||||||
|
"cpId": "bizmk",
|
||||||
|
"cpNm": "매경부동산",
|
||||||
|
"mobileArticleLinkTypeCode": "NONE",
|
||||||
|
"mobileBmsInspectPassYn": "Y",
|
||||||
|
"pcArticleLinkUseAtArticleTitle": false,
|
||||||
|
"pcArticleLinkUseAtCpName": false,
|
||||||
|
"mobileArticleLinkUseAtArticleTitle": false,
|
||||||
|
"mobileArticleLinkUseAtCpName": false
|
||||||
|
},
|
||||||
|
"directTradYn": "N",
|
||||||
|
"direction": "남동향",
|
||||||
|
"dtlAddrYn": "N",
|
||||||
|
"dtlAddr": "118-137 401호",
|
||||||
|
"tradeCheckedByOwner": false,
|
||||||
|
"isVrExposed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"atclNo": "2556124217",
|
||||||
|
"repImgUrl": "/20251018_32/1760766487040p9WQw_JPEG/KakaoTalk_20250703_140518971_02.jpg",
|
||||||
|
"repImgTpCd": "10",
|
||||||
|
"repImgThumb": "f130_98",
|
||||||
|
"atclNm": "빌라",
|
||||||
|
"tradTpCd": "A1",
|
||||||
|
"tradTpNm": "매매",
|
||||||
|
"prcInfo": "71000",
|
||||||
|
"atclRletTpNm": "빌라/연립",
|
||||||
|
"spc1": "42",
|
||||||
|
"spc2": "29",
|
||||||
|
"flrInfo": "중/5",
|
||||||
|
"atclFetrDesc": "청파3구역 실투자 4.6억 신속통합재개발중 토허제",
|
||||||
|
"atclCfmYmd": "25.10.18.",
|
||||||
|
"vrfcTpCd": "NDOC1",
|
||||||
|
"tradCmplYn": "N",
|
||||||
|
"tradCmplYmd": "",
|
||||||
|
"rletTpCd": "C03",
|
||||||
|
"bildNm": "",
|
||||||
|
"leasePrc": "7억 1,000",
|
||||||
|
"tagBitCd": "000100010010000000000000001000000010000001000000000000000000101011001010000000010000000000000000000000001001010000000000011001100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||||
|
"tagList": ["10년이내", "화장실한개", "소형평수", "방두개"],
|
||||||
|
"cpid": "bizmk",
|
||||||
|
"cpNm": "매경부동산",
|
||||||
|
"rltrNm": "친한부동산공인중개사사무소",
|
||||||
|
"cpLinkVO": {
|
||||||
|
"cpId": "bizmk",
|
||||||
|
"cpNm": "매경부동산",
|
||||||
|
"mobileArticleLinkTypeCode": "NONE",
|
||||||
|
"mobileBmsInspectPassYn": "Y",
|
||||||
|
"pcArticleLinkUseAtArticleTitle": false,
|
||||||
|
"pcArticleLinkUseAtCpName": false,
|
||||||
|
"mobileArticleLinkUseAtArticleTitle": false,
|
||||||
|
"mobileArticleLinkUseAtCpName": false
|
||||||
|
},
|
||||||
|
"directTradYn": "N",
|
||||||
|
"direction": "남향",
|
||||||
|
"dtlAddrYn": "N",
|
||||||
|
"dtlAddr": "97-27 201호",
|
||||||
|
"tradeCheckedByOwner": false,
|
||||||
|
"isVrExposed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"atclNo": "2556125090",
|
||||||
|
"repImgUrl": "/20251018_212/1760766367477Hl0fs_JPEG/KakaoTalk_20250912_152541078_01.jpg",
|
||||||
|
"repImgTpCd": "10",
|
||||||
|
"repImgThumb": "f130_98",
|
||||||
|
"atclNm": "빌라",
|
||||||
|
"tradTpCd": "B1",
|
||||||
|
"tradTpNm": "전세",
|
||||||
|
"prcInfo": "27000",
|
||||||
|
"atclRletTpNm": "빌라/연립",
|
||||||
|
"spc1": "44",
|
||||||
|
"spc2": "28",
|
||||||
|
"flrInfo": "중/5",
|
||||||
|
"atclFetrDesc": "주차편리 버팀목허그0 보증보험0 빠른입주가능",
|
||||||
|
"atclCfmYmd": "25.10.18.",
|
||||||
|
"vrfcTpCd": "OWNER",
|
||||||
|
"tradCmplYn": "N",
|
||||||
|
"tradCmplYmd": "",
|
||||||
|
"leaseYn": "Y",
|
||||||
|
"rletTpCd": "C03",
|
||||||
|
"bildNm": "",
|
||||||
|
"leasePrc": "2억 7,000",
|
||||||
|
"tagBitCd": "000100010010000000000000001000000010000001000000000000000000100011001010000000010000000000000000000000001001010010110000111001100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||||
|
"tagList": ["4년이내", "역세권", "화장실한개", "소형평수"],
|
||||||
|
"cpid": "bizmk",
|
||||||
|
"cpNm": "매경부동산",
|
||||||
|
"rltrNm": "친한부동산공인중개사사무소",
|
||||||
|
"cpLinkVO": {
|
||||||
|
"cpId": "bizmk",
|
||||||
|
"cpNm": "매경부동산",
|
||||||
|
"mobileArticleLinkTypeCode": "NONE",
|
||||||
|
"mobileBmsInspectPassYn": "Y",
|
||||||
|
"pcArticleLinkUseAtArticleTitle": false,
|
||||||
|
"pcArticleLinkUseAtCpName": false,
|
||||||
|
"mobileArticleLinkUseAtArticleTitle": false,
|
||||||
|
"mobileArticleLinkUseAtCpName": false
|
||||||
|
},
|
||||||
|
"directTradYn": "N",
|
||||||
|
"direction": "남향",
|
||||||
|
"dtlAddrYn": "N",
|
||||||
|
"dtlAddr": "17-56 102동 205",
|
||||||
|
"tradeCheckedByOwner": false,
|
||||||
|
"isVrExposed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"atclNo": "2556124287",
|
||||||
|
"repImgUrl": "/20251018_93/1760766311380Dotcc_JPEG/KakaoTalk_20250708_162425171_04.jpg",
|
||||||
|
"repImgTpCd": "10",
|
||||||
|
"repImgThumb": "f130_98",
|
||||||
|
"atclNm": "빌라",
|
||||||
|
"tradTpCd": "A1",
|
||||||
|
"tradTpNm": "매매",
|
||||||
|
"prcInfo": "69000",
|
||||||
|
"atclRletTpNm": "빌라/연립",
|
||||||
|
"spc1": "37",
|
||||||
|
"spc2": "29",
|
||||||
|
"flrInfo": "중/5",
|
||||||
|
"atclFetrDesc": "실투자4억 청파동3가 역세권활성화구역내 투룸",
|
||||||
|
"atclCfmYmd": "25.10.18.",
|
||||||
|
"vrfcTpCd": "NDOC1",
|
||||||
|
"tradCmplYn": "N",
|
||||||
|
"tradCmplYmd": "",
|
||||||
|
"rletTpCd": "C03",
|
||||||
|
"bildNm": "",
|
||||||
|
"leasePrc": "6억 9,000",
|
||||||
|
"tagBitCd": "000100010010000000000000010000000010000001000000000000000000101011001010000000010000000000000000000000001001010000000001111001100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||||
|
"tagList": ["2년이내", "화장실한개", "소형평수", "방두개"],
|
||||||
|
"cpid": "bizmk",
|
||||||
|
"cpNm": "매경부동산",
|
||||||
|
"rltrNm": "친한부동산공인중개사사무소",
|
||||||
|
"cpLinkVO": {
|
||||||
|
"cpId": "bizmk",
|
||||||
|
"cpNm": "매경부동산",
|
||||||
|
"mobileArticleLinkTypeCode": "NONE",
|
||||||
|
"mobileBmsInspectPassYn": "Y",
|
||||||
|
"pcArticleLinkUseAtArticleTitle": false,
|
||||||
|
"pcArticleLinkUseAtCpName": false,
|
||||||
|
"mobileArticleLinkUseAtArticleTitle": false,
|
||||||
|
"mobileArticleLinkUseAtCpName": false
|
||||||
|
},
|
||||||
|
"directTradYn": "N",
|
||||||
|
"direction": "서향",
|
||||||
|
"dtlAddrYn": "N",
|
||||||
|
"dtlAddr": "118-226 3층 301",
|
||||||
|
"tradeCheckedByOwner": false,
|
||||||
|
"isVrExposed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"atclNo": "2556124859",
|
||||||
|
"repImgUrl": "/20251018_41/1760766250520rUC3p_JPEG/KakaoTalk_20250419_082537334_02.jpg",
|
||||||
|
"repImgTpCd": "10",
|
||||||
|
"repImgThumb": "f130_98",
|
||||||
|
"atclNm": "빌라",
|
||||||
|
"tradTpCd": "B2",
|
||||||
|
"tradTpNm": "월세",
|
||||||
|
"prcInfo": "5000/75",
|
||||||
|
"atclRletTpNm": "빌라/연립",
|
||||||
|
"spc1": "20",
|
||||||
|
"spc2": "15",
|
||||||
|
"flrInfo": "고/5",
|
||||||
|
"atclFetrDesc": "실7P 분리형원룸 월세 보증금대출불가",
|
||||||
|
"atclCfmYmd": "25.10.18.",
|
||||||
|
"vrfcTpCd": "OWNER",
|
||||||
|
"tradCmplYn": "N",
|
||||||
|
"tradCmplYmd": "",
|
||||||
|
"rletTpCd": "C03",
|
||||||
|
"bildNm": "",
|
||||||
|
"leasePrc": "5,000",
|
||||||
|
"rentPrc": "75",
|
||||||
|
"tagBitCd": "000100100010001000000000000010000001000001000000000000000000101011001010000000010000000000000000000000001001010000110000011001100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||||
|
"tagList": ["10년이내", "세대분리", "화장실한개", "소형평수"],
|
||||||
|
"cpid": "bizmk",
|
||||||
|
"cpNm": "매경부동산",
|
||||||
|
"rltrNm": "친한부동산공인중개사사무소",
|
||||||
|
"cpLinkVO": {
|
||||||
|
"cpId": "bizmk",
|
||||||
|
"cpNm": "매경부동산",
|
||||||
|
"mobileArticleLinkTypeCode": "NONE",
|
||||||
|
"mobileBmsInspectPassYn": "Y",
|
||||||
|
"pcArticleLinkUseAtArticleTitle": false,
|
||||||
|
"pcArticleLinkUseAtCpName": false,
|
||||||
|
"mobileArticleLinkUseAtArticleTitle": false,
|
||||||
|
"mobileArticleLinkUseAtCpName": false
|
||||||
|
},
|
||||||
|
"directTradYn": "N",
|
||||||
|
"direction": "북동향",
|
||||||
|
"dtlAddrYn": "N",
|
||||||
|
"dtlAddr": "132-42 402호",
|
||||||
|
"tradeCheckedByOwner": false,
|
||||||
|
"isVrExposed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"atclNo": "2556124045",
|
||||||
|
"repImgUrl": "/20251018_276/1760766130316f7fJV_JPEG/KakaoTalk_20250929_135355549.jpg",
|
||||||
|
"repImgTpCd": "10",
|
||||||
|
"repImgThumb": "f130_98",
|
||||||
|
"atclNm": "빌라",
|
||||||
|
"tradTpCd": "B2",
|
||||||
|
"tradTpNm": "월세",
|
||||||
|
"prcInfo": "34000/15",
|
||||||
|
"atclRletTpNm": "빌라/연립",
|
||||||
|
"spc1": "52",
|
||||||
|
"spc2": "29",
|
||||||
|
"flrInfo": "고/4",
|
||||||
|
"atclFetrDesc": "실11P 투룸 복층추가 8P 풀옵션 건조기0 전세대출0",
|
||||||
|
"atclCfmYmd": "25.10.18.",
|
||||||
|
"vrfcTpCd": "NDOC1",
|
||||||
|
"tradCmplYn": "N",
|
||||||
|
"tradCmplYmd": "",
|
||||||
|
"rletTpCd": "C03",
|
||||||
|
"bildNm": "",
|
||||||
|
"leasePrc": "3억 4,000",
|
||||||
|
"rentPrc": "15",
|
||||||
|
"tagBitCd": "000100010010000000000000001000000001000010000000000000000000101011001010000100010000000000000000000000001001010000110000111001100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||||
|
"tagList": ["4년이내", "화장실한개", "소형평수", "방두개"],
|
||||||
|
"cpid": "bizmk",
|
||||||
|
"cpNm": "매경부동산",
|
||||||
|
"rltrNm": "친한부동산공인중개사사무소",
|
||||||
|
"cpLinkVO": {
|
||||||
|
"cpId": "bizmk",
|
||||||
|
"cpNm": "매경부동산",
|
||||||
|
"mobileArticleLinkTypeCode": "NONE",
|
||||||
|
"mobileBmsInspectPassYn": "Y",
|
||||||
|
"pcArticleLinkUseAtArticleTitle": false,
|
||||||
|
"pcArticleLinkUseAtCpName": false,
|
||||||
|
"mobileArticleLinkUseAtArticleTitle": false,
|
||||||
|
"mobileArticleLinkUseAtCpName": false
|
||||||
|
},
|
||||||
|
"directTradYn": "N",
|
||||||
|
"direction": "남향",
|
||||||
|
"dtlAddrYn": "N",
|
||||||
|
"dtlAddr": "82-9 B동 B401호",
|
||||||
|
"tradeCheckedByOwner": false,
|
||||||
|
"isVrExposed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"atclNo": "2556122753",
|
||||||
|
"repImgUrl": "/20251018_111/1760766005901fkeAb_JPEG/KakaoTalk_20250912_150704967_01.jpg",
|
||||||
|
"repImgTpCd": "10",
|
||||||
|
"repImgThumb": "f130_98",
|
||||||
|
"atclNm": "빌라",
|
||||||
|
"tradTpCd": "B1",
|
||||||
|
"tradTpNm": "전세",
|
||||||
|
"prcInfo": "29210",
|
||||||
|
"atclRletTpNm": "빌라/연립",
|
||||||
|
"spc1": "37",
|
||||||
|
"spc2": "29",
|
||||||
|
"flrInfo": "중/5",
|
||||||
|
"atclFetrDesc": "숙대입구역8분 버팀목허그대출0 보증보험0",
|
||||||
|
"atclCfmYmd": "25.10.18.",
|
||||||
|
"vrfcTpCd": "NDOC1",
|
||||||
|
"tradCmplYn": "N",
|
||||||
|
"tradCmplYmd": "",
|
||||||
|
"leaseYn": "Y",
|
||||||
|
"rletTpCd": "C03",
|
||||||
|
"bildNm": "",
|
||||||
|
"leasePrc": "2억 9,210",
|
||||||
|
"tagBitCd": "000100010010000000000000100000000010000001000000000000000000100011001010000000010000000000000000000000001001010000110000011001100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||||
|
"tagList": ["10년이내", "화장실한개", "소형평수", "방두개"],
|
||||||
|
"cpid": "bizmk",
|
||||||
|
"cpNm": "매경부동산",
|
||||||
|
"rltrNm": "친한부동산공인중개사사무소",
|
||||||
|
"cpLinkVO": {
|
||||||
|
"cpId": "bizmk",
|
||||||
|
"cpNm": "매경부동산",
|
||||||
|
"mobileArticleLinkTypeCode": "NONE",
|
||||||
|
"mobileBmsInspectPassYn": "Y",
|
||||||
|
"pcArticleLinkUseAtArticleTitle": false,
|
||||||
|
"pcArticleLinkUseAtCpName": false,
|
||||||
|
"mobileArticleLinkUseAtArticleTitle": false,
|
||||||
|
"mobileArticleLinkUseAtCpName": false
|
||||||
|
},
|
||||||
|
"directTradYn": "N",
|
||||||
|
"direction": "동향",
|
||||||
|
"dtlAddrYn": "N",
|
||||||
|
"dtlAddr": "60-17 305호",
|
||||||
|
"tradeCheckedByOwner": false,
|
||||||
|
"isVrExposed": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"totalCnt": 92,
|
||||||
|
"moreCnt": 72,
|
||||||
|
"currentCnt": 20,
|
||||||
|
"page": 1,
|
||||||
|
"pageSize": 20
|
||||||
|
}
|
||||||
1
data/detailHtml.html
Normal file
1
data/detailHtml.html
Normal file
File diff suppressed because one or more lines are too long
490
data/mobile-articles.html
Normal file
490
data/mobile-articles.html
Normal file
File diff suppressed because one or more lines are too long
367
data/mobile-articles.json
Normal file
367
data/mobile-articles.json
Normal file
@@ -0,0 +1,367 @@
|
|||||||
|
{
|
||||||
|
"props": {
|
||||||
|
"pageProps": {
|
||||||
|
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15",
|
||||||
|
"_sentryTraceData": "82c0c10b7cf7cb90099b43ef1b60a4dc-38f38fe85235eb84-1",
|
||||||
|
"_sentryBaggage": "sentry-environment=real,sentry-release=property-web%402025.11.06,sentry-public_key=ec5063b7741b4a9282a85c1e2f27ab09,sentry-trace_id=82c0c10b7cf7cb90099b43ef1b60a4dc,sentry-transaction=GET%20%2Farticles%2F%5BarticleId%5D,sentry-sampled=true,sentry-sample_rand=0.27056555064364485,sentry-sample_rate=1",
|
||||||
|
"articleName": "신림동 일반상가",
|
||||||
|
"dehydratedState": {
|
||||||
|
"mutations": [],
|
||||||
|
"queries": [
|
||||||
|
{
|
||||||
|
"dehydratedAt": 1762867494263,
|
||||||
|
"state": {
|
||||||
|
"data": {
|
||||||
|
"isSuccess": true,
|
||||||
|
"result": {
|
||||||
|
"key": {
|
||||||
|
"pnu": "1162010200106080013"
|
||||||
|
},
|
||||||
|
"type": {
|
||||||
|
"realEstateType": "D02",
|
||||||
|
"tradeType": "B2"
|
||||||
|
},
|
||||||
|
"address": {
|
||||||
|
"legalDivisionNumber": "1162010200"
|
||||||
|
},
|
||||||
|
"isRealEstateAssociationArticle": false,
|
||||||
|
"isArticleImageExist": false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"dataUpdateCount": 1,
|
||||||
|
"dataUpdatedAt": 1762867494239,
|
||||||
|
"error": null,
|
||||||
|
"errorUpdateCount": 0,
|
||||||
|
"errorUpdatedAt": 0,
|
||||||
|
"fetchFailureCount": 0,
|
||||||
|
"fetchFailureReason": null,
|
||||||
|
"fetchMeta": null,
|
||||||
|
"isInvalidated": false,
|
||||||
|
"status": "success",
|
||||||
|
"fetchStatus": "idle"
|
||||||
|
},
|
||||||
|
"queryKey": [
|
||||||
|
"GET /article/key",
|
||||||
|
{
|
||||||
|
"params": {
|
||||||
|
"articleNumber": "2556402553"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"queryHash": "[\"GET /article/key\",{\"params\":{\"articleNumber\":\"2556402553\"}}]"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"dehydratedAt": 1762867494263,
|
||||||
|
"state": {
|
||||||
|
"data": {
|
||||||
|
"isSuccess": true,
|
||||||
|
"result": []
|
||||||
|
},
|
||||||
|
"dataUpdateCount": 1,
|
||||||
|
"dataUpdatedAt": 1762867494251,
|
||||||
|
"error": null,
|
||||||
|
"errorUpdateCount": 0,
|
||||||
|
"errorUpdatedAt": 0,
|
||||||
|
"fetchFailureCount": 0,
|
||||||
|
"fetchFailureReason": null,
|
||||||
|
"fetchMeta": null,
|
||||||
|
"isInvalidated": false,
|
||||||
|
"status": "success",
|
||||||
|
"fetchStatus": "idle"
|
||||||
|
},
|
||||||
|
"queryKey": [
|
||||||
|
"GET /article/galleryImages",
|
||||||
|
{
|
||||||
|
"params": {
|
||||||
|
"articleNumber": "2556402553"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"queryHash": "[\"GET /article/galleryImages\",{\"params\":{\"articleNumber\":\"2556402553\"}}]"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"dehydratedAt": 1762867494263,
|
||||||
|
"state": {
|
||||||
|
"data": {
|
||||||
|
"isSuccess": true,
|
||||||
|
"result": {
|
||||||
|
"priceInfo": {
|
||||||
|
"tradeType": "B2",
|
||||||
|
"warrantyAmount": 10000000,
|
||||||
|
"rentAmount": 700000,
|
||||||
|
"loan": 0
|
||||||
|
},
|
||||||
|
"detailInfo": {
|
||||||
|
"facilityInfo": {
|
||||||
|
"life": [],
|
||||||
|
"security": [],
|
||||||
|
"etc": [],
|
||||||
|
"aircon": [],
|
||||||
|
"buildingConjunctionDateType": "CDY01",
|
||||||
|
"buildingConjunctionDate": "19890609",
|
||||||
|
"approvalElapsedYear": 37,
|
||||||
|
"totalParkingCount": 0,
|
||||||
|
"isParkingPossible": false
|
||||||
|
},
|
||||||
|
"articleDetailInfo": {
|
||||||
|
"articleNumber": "2556402553",
|
||||||
|
"articleName": "일반상가",
|
||||||
|
"articleFeatureDescription": "신림동 시설사용 가능한 무권리 1층 상가",
|
||||||
|
"articleDescription": "〓(주)조각부동산중개법인〓\n🏳️🌈자회사 조각행정사사무소를 통해서 각종 인허가와 권리금계약서 작성 원스톱서비스 제공합니다.\n\n▣빠른 문의 번호 : 15957\n\n더 많은 매물이 궁금하시다면!\n네이버에 조각부동산중개법인 검색 \nwww.jogak-realty.co.kr\n\n〓매물정보〓\n▣보증금 1,000 / 월세 70 (부가세 별도) \n▣시설 사용 가능함 무권리\n▣평수 : 약 8평\n▣층수 : 1층\n▣화장실: 외부공용\n\n〓매물 특징〓\n▣다수의 주거단지가 위치해 고정고객 확보 가능함\n▣내부 시설 집기 관리가 깔끔하며 무권리 그대로 양도받아 영업가능함\n▣동종업종인 경우 창업비용 절감 가능하며, 타업종이어도 분위기 살리기 좋음\n\n소속공인중개사 조 경 숙\n☎010–5958–2479☎\n카카오톡 문의 친구추가 : your2479\n\n대표공인중개사 조 영 국\n☎02-844–2860☎\n\n▲▲ 조각부동산중개법인이 드리는 약속 ▲▲\n前 프롭테크 중개법인 대표 출신\n前 F&B 대표 출신\n現 패션브랜드 CFO\n신뢰할 수 있는 정확한 정보와 시세 제공!\n상가에 관련된 전문지식과 다년에 걸친 노하우!\n대표님들의 든든한 사업파트너!\n\n※본 매물은 임차인이 실사용 가능한 범위 기준으로 화장실 수를 기재하였습니다 (화장실: 1개)\n※조각부동산중개법인 전 직원 공인중개사 자격증 소유자및 상업용 부동산 전문 인력!\n※상가·사무실 전문으로 시중에 나와있는 전체 매물 확보및 회사 비공개 매물 존재!\n※여러 곳 발품 파실 필요없이 조건에 맞는 모든 매물 일체 투어 제공!!\n※공인중개사법 제18조의2(중개대상물의 표시ㆍ광고)에 의거하여 광고 매물은 거래 가능 실매물임을 확인하고 등록하였으나 문의시점에 매물 정보의 변동이 있거나 거래가 완료되었을 수 있음을 고지드립니다.\n※매출 등 손익 자료는 점포의 상황과 운영 방식에 따라 차이가 있을 수 있음을 알려 드립니다.\n※상기 매물에 대한 모든 내용은 경영주와의 인터뷰를 바탕으로 기재되었음을 알려 드립니다.",
|
||||||
|
"isAddressExposed": true,
|
||||||
|
"isDirectTrade": false,
|
||||||
|
"isSafeLessorOfHug": false,
|
||||||
|
"buildingType": "D0203",
|
||||||
|
"cpId": "gongsilclub",
|
||||||
|
"exposureStartDate": "2025-10-20",
|
||||||
|
"buildingUse": "제1종 근린생활시설"
|
||||||
|
},
|
||||||
|
"movingInInfo": {
|
||||||
|
"movingInNegotiation": true,
|
||||||
|
"movingInType": "MV001"
|
||||||
|
},
|
||||||
|
"verificationInfo": {
|
||||||
|
"verificationType": "NDOC1",
|
||||||
|
"isAssociationArticle": false,
|
||||||
|
"exposureStartDate": "2025-10-20",
|
||||||
|
"articleConfirmDate": "2025-10-20"
|
||||||
|
},
|
||||||
|
"spaceInfo": {
|
||||||
|
"floorInfo": {
|
||||||
|
"targetFloor": "1",
|
||||||
|
"totalFloor": "2",
|
||||||
|
"groundTotalFloor": "0",
|
||||||
|
"undergroundTotalFloor": "0",
|
||||||
|
"floorType": "00",
|
||||||
|
"residenceType": "1"
|
||||||
|
},
|
||||||
|
"direction": "EE",
|
||||||
|
"directionStandard": "주된 출입구 기준",
|
||||||
|
"bathRoomCount": 1
|
||||||
|
},
|
||||||
|
"sizeInfo": {
|
||||||
|
"supplySpace": 26.5,
|
||||||
|
"exclusiveSpace": 26.5,
|
||||||
|
"exclusiveSpaceName": "26",
|
||||||
|
"pyeongArea": 8.01
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"dataUpdateCount": 1,
|
||||||
|
"dataUpdatedAt": 1762867494263,
|
||||||
|
"error": null,
|
||||||
|
"errorUpdateCount": 0,
|
||||||
|
"errorUpdatedAt": 0,
|
||||||
|
"fetchFailureCount": 0,
|
||||||
|
"fetchFailureReason": null,
|
||||||
|
"fetchMeta": null,
|
||||||
|
"isInvalidated": false,
|
||||||
|
"status": "success",
|
||||||
|
"fetchStatus": "idle"
|
||||||
|
},
|
||||||
|
"queryKey": [
|
||||||
|
"GET /article/basicInfo",
|
||||||
|
{
|
||||||
|
"params": {
|
||||||
|
"articleNumber": "2556402553",
|
||||||
|
"realEstateType": "D02",
|
||||||
|
"tradeType": "B2"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"queryHash": "[\"GET /article/basicInfo\",{\"params\":{\"articleNumber\":\"2556402553\",\"realEstateType\":\"D02\",\"tradeType\":\"B2\"}}]"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"dehydratedAt": 1762867494263,
|
||||||
|
"state": {
|
||||||
|
"data": {
|
||||||
|
"isSuccess": false,
|
||||||
|
"result": {}
|
||||||
|
},
|
||||||
|
"dataUpdateCount": 1,
|
||||||
|
"dataUpdatedAt": 1762867494252,
|
||||||
|
"error": null,
|
||||||
|
"errorUpdateCount": 0,
|
||||||
|
"errorUpdatedAt": 0,
|
||||||
|
"fetchFailureCount": 0,
|
||||||
|
"fetchFailureReason": null,
|
||||||
|
"fetchMeta": null,
|
||||||
|
"isInvalidated": false,
|
||||||
|
"status": "success",
|
||||||
|
"fetchStatus": "idle"
|
||||||
|
},
|
||||||
|
"queryKey": [
|
||||||
|
"GET /article/maintenanceFee",
|
||||||
|
{
|
||||||
|
"params": {
|
||||||
|
"articleNumber": "2556402553"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"queryHash": "[\"GET /article/maintenanceFee\",{\"params\":{\"articleNumber\":\"2556402553\"}}]"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"dehydratedAt": 1762867494263,
|
||||||
|
"state": {
|
||||||
|
"data": {
|
||||||
|
"isSuccess": true,
|
||||||
|
"detailCode": "success",
|
||||||
|
"message": "",
|
||||||
|
"result": {}
|
||||||
|
},
|
||||||
|
"dataUpdateCount": 1,
|
||||||
|
"dataUpdatedAt": 1762867494256,
|
||||||
|
"error": null,
|
||||||
|
"errorUpdateCount": 0,
|
||||||
|
"errorUpdatedAt": 0,
|
||||||
|
"fetchFailureCount": 0,
|
||||||
|
"fetchFailureReason": null,
|
||||||
|
"fetchMeta": null,
|
||||||
|
"isInvalidated": false,
|
||||||
|
"status": "success",
|
||||||
|
"fetchStatus": "idle"
|
||||||
|
},
|
||||||
|
"queryKey": [
|
||||||
|
"GET /article/oldMaintenanceFee",
|
||||||
|
{
|
||||||
|
"params": {
|
||||||
|
"articleNumber": "2556402553"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"queryHash": "[\"GET /article/oldMaintenanceFee\",{\"params\":{\"articleNumber\":\"2556402553\"}}]"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"dehydratedAt": 1762867494263,
|
||||||
|
"state": {
|
||||||
|
"data": {
|
||||||
|
"isSuccess": true,
|
||||||
|
"result": {
|
||||||
|
"railList": [],
|
||||||
|
"jiguList": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"dataUpdateCount": 1,
|
||||||
|
"dataUpdatedAt": 1762867494255,
|
||||||
|
"error": null,
|
||||||
|
"errorUpdateCount": 0,
|
||||||
|
"errorUpdatedAt": 0,
|
||||||
|
"fetchFailureCount": 0,
|
||||||
|
"fetchFailureReason": null,
|
||||||
|
"fetchMeta": null,
|
||||||
|
"isInvalidated": false,
|
||||||
|
"status": "success",
|
||||||
|
"fetchStatus": "idle"
|
||||||
|
},
|
||||||
|
"queryKey": [
|
||||||
|
"GET /development",
|
||||||
|
{
|
||||||
|
"params": {
|
||||||
|
"type": "article",
|
||||||
|
"itemId": 2556402553
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"queryHash": "[\"GET /development\",{\"params\":{\"itemId\":2556402553,\"type\":\"article\"}}]"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"dehydratedAt": 1762867494263,
|
||||||
|
"state": {
|
||||||
|
"data": {
|
||||||
|
"isSuccess": true,
|
||||||
|
"result": {
|
||||||
|
"brokerageName": "주식회사 조각부동산중개법인",
|
||||||
|
"brokerName": "조영국",
|
||||||
|
"address": "서울특별시 동작구 신대방동 719 동작상떼빌아파트 105동 2층 202호",
|
||||||
|
"businessRegistrationNumber": "11590-2023-00113",
|
||||||
|
"ownerConfirmationSaleCount": 0,
|
||||||
|
"phone": {
|
||||||
|
"mobile": "010-5958-2479"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"dataUpdateCount": 1,
|
||||||
|
"dataUpdatedAt": 1762867494260,
|
||||||
|
"error": null,
|
||||||
|
"errorUpdateCount": 0,
|
||||||
|
"errorUpdatedAt": 0,
|
||||||
|
"fetchFailureCount": 0,
|
||||||
|
"fetchFailureReason": null,
|
||||||
|
"fetchMeta": null,
|
||||||
|
"isInvalidated": false,
|
||||||
|
"status": "success",
|
||||||
|
"fetchStatus": "idle"
|
||||||
|
},
|
||||||
|
"queryKey": [
|
||||||
|
"GET /article/agent",
|
||||||
|
{
|
||||||
|
"params": {
|
||||||
|
"articleNumber": "2556402553"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"queryHash": "[\"GET /article/agent\",{\"params\":{\"articleNumber\":\"2556402553\"}}]"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"dehydratedAt": 1762867494263,
|
||||||
|
"state": {
|
||||||
|
"data": {
|
||||||
|
"isSuccess": true,
|
||||||
|
"result": {
|
||||||
|
"1162010200": {
|
||||||
|
"legalDivisionNumber": "1162010200",
|
||||||
|
"legalDivisionName": "신림동",
|
||||||
|
"legalDivisionLevelType": "EUP",
|
||||||
|
"regionName": "서울시 관악구 신림동",
|
||||||
|
"cityFullName": "서울특별시",
|
||||||
|
"cityName": "서울시",
|
||||||
|
"divisionName": "관악구",
|
||||||
|
"sectorName": "신림동",
|
||||||
|
"fullAddress": "서울시 관악구 신림동",
|
||||||
|
"coordinates": {
|
||||||
|
"xCoordinate": 126.9346,
|
||||||
|
"yCoordinate": 37.4632
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"dataUpdateCount": 1,
|
||||||
|
"dataUpdatedAt": 1762867494252,
|
||||||
|
"error": null,
|
||||||
|
"errorUpdateCount": 0,
|
||||||
|
"errorUpdatedAt": 0,
|
||||||
|
"fetchFailureCount": 0,
|
||||||
|
"fetchFailureReason": null,
|
||||||
|
"fetchMeta": null,
|
||||||
|
"isInvalidated": false,
|
||||||
|
"status": "success",
|
||||||
|
"fetchStatus": "idle"
|
||||||
|
},
|
||||||
|
"queryKey": [
|
||||||
|
"GET /legalDivision/infoList",
|
||||||
|
{
|
||||||
|
"params": {
|
||||||
|
"legalDivisionNumbers": ["1162010200"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"queryHash": "[\"GET /legalDivision/infoList\",{\"params\":{\"legalDivisionNumbers\":[\"1162010200\"]}}]"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"__N_SSP": true
|
||||||
|
},
|
||||||
|
"page": "/articles/[articleId]",
|
||||||
|
"query": {
|
||||||
|
"articleId": "2556402553"
|
||||||
|
},
|
||||||
|
"buildId": "QbGLr3Dj4H0kW-cqgvDxA",
|
||||||
|
"assetPrefix": "https://property.pstatic.net/property-web",
|
||||||
|
"isFallback": false,
|
||||||
|
"isExperimentalCompile": false,
|
||||||
|
"gssp": true,
|
||||||
|
"appGip": true,
|
||||||
|
"scriptLoader": []
|
||||||
|
}
|
||||||
123
fetch-articles-pc.ts
Normal file
123
fetch-articles-pc.ts
Normal file
@@ -0,0 +1,123 @@
|
|||||||
|
import axios from "axios";
|
||||||
|
import { realtorIds } from "./config";
|
||||||
|
import axiosRetry from "axios-retry";
|
||||||
|
|
||||||
|
axiosRetry(axios, {
|
||||||
|
retries: 4, // 4번 재시도
|
||||||
|
retryDelay: (retryCount: number) => {
|
||||||
|
console.log(`재시도 ${retryCount}번째 시도 중...`);
|
||||||
|
return retryCount * 2000; // 2초, 4초, 6초, 8초 대기
|
||||||
|
},
|
||||||
|
retryCondition: (error: any) => {
|
||||||
|
// 네트워크 에러 또는 5xx 에러일 때 재시도
|
||||||
|
return true;
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
const main = async () => {
|
||||||
|
const startTime = Date.now(); // 시작 시간 기록
|
||||||
|
const realtorId = "namyeong00";
|
||||||
|
|
||||||
|
const headers = {
|
||||||
|
accept: "*/*",
|
||||||
|
"accept-language": "ko;q=0.7",
|
||||||
|
authorization:
|
||||||
|
"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IlJFQUxFU1RBVEUiLCJpYXQiOjE3NjExMzM1NDUsImV4cCI6MTc2MTE0NDM0NX0.MJv-3xWZeWHCahmq0w5hxlZNmr7qwu1bOEaV2rvuthY",
|
||||||
|
"cache-control": "no-cache",
|
||||||
|
pragma: "no-cache",
|
||||||
|
priority: "u=1, i",
|
||||||
|
referer:
|
||||||
|
"https://new.land.naver.com/houses?ms=37.6560144,126.7916037,15&a=DDDGG:JWJT:SGJT:VL&e=RETAIL&articleNo=2556801691&realtorId=s9055515",
|
||||||
|
"sec-ch-ua": '"Brave";v="141", "Not?A_Brand";v="8", "Chromium";v="141"',
|
||||||
|
"sec-ch-ua-mobile": "?0",
|
||||||
|
"sec-ch-ua-platform": '"Windows"',
|
||||||
|
"sec-fetch-dest": "empty",
|
||||||
|
"sec-fetch-mode": "cors",
|
||||||
|
"sec-fetch-site": "same-origin",
|
||||||
|
"sec-gpc": "1",
|
||||||
|
"user-agent":
|
||||||
|
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36",
|
||||||
|
Cookie:
|
||||||
|
"PROP_TEST_ID=7e02e4c10eb2f2c2358bca876c0d7ad0b41ee920553cf666f9f8ffea510fe421; PROP_TEST_KEY=1758430291866.2e161026d60e6da4b6ffc456ba20732ac32391c0294df00f3c0b051eb574277e",
|
||||||
|
};
|
||||||
|
|
||||||
|
// 1. 첫 번째 요청으로 총 개수 가져오기
|
||||||
|
console.log("총 매물 개수 확인 중...");
|
||||||
|
const firstResponse = await axios.get(
|
||||||
|
`https://new.land.naver.com/api/articles?realEstateType=&tradeType=&order=rank&page=1&zoom=0&realtorId=${realtorId}`,
|
||||||
|
{
|
||||||
|
proxy: {
|
||||||
|
host: "gw.dataimpulse.com",
|
||||||
|
port: 823,
|
||||||
|
auth: {
|
||||||
|
username: "0bdeb90b7713c370cdeb__cr.kr",
|
||||||
|
password: "a5ae50d6913bd778",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
headers,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
const mapExposedCount = firstResponse.data.mapExposedCount;
|
||||||
|
console.log(`총 매물 개수: ${mapExposedCount}`);
|
||||||
|
|
||||||
|
// 2. 총 페이지 수 계산 (한 페이지당 20개)
|
||||||
|
const totalPage = Math.ceil(mapExposedCount / 20);
|
||||||
|
console.log(`총 페이지 수: ${totalPage}`);
|
||||||
|
|
||||||
|
// 3. 모든 페이지 번호 배열 생성
|
||||||
|
const pages = Array.from({ length: totalPage }, (_, i) => i + 1);
|
||||||
|
|
||||||
|
// 4. 10개씩 동시 요청
|
||||||
|
const allArticles: any[] = [];
|
||||||
|
const concurrency = 1; // 동시 요청 수
|
||||||
|
|
||||||
|
// 설명
|
||||||
|
for (let i = 0; i < pages.length; i += concurrency) {
|
||||||
|
const chunk = pages.slice(i, i + concurrency);
|
||||||
|
console.log(
|
||||||
|
`페이지 ${chunk[0]} ~ ${chunk[chunk.length - 1]} 요청 중... (${
|
||||||
|
i + 1
|
||||||
|
}-${Math.min(i + concurrency, pages.length)}/${pages.length})`
|
||||||
|
);
|
||||||
|
|
||||||
|
const promises = chunk.map((page) =>
|
||||||
|
axios.get(
|
||||||
|
`https://new.land.naver.com/api/articles?realEstateType=&tradeType=&order=rank&page=${page}&zoom=0&realtorId=${realtorId}`,
|
||||||
|
{
|
||||||
|
proxy: {
|
||||||
|
host: "gw.dataimpulse.com",
|
||||||
|
port: 823,
|
||||||
|
auth: {
|
||||||
|
username: "0bdeb90b7713c370cdeb__cr.kr",
|
||||||
|
password: "a5ae50d6913bd778",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
headers,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
const responses = await Promise.all(promises);
|
||||||
|
|
||||||
|
responses.forEach((response, index) => {
|
||||||
|
const articles = response.data.articleList || [];
|
||||||
|
console.log(`페이지 ${chunk[index]}: ${articles.length}개 매물`);
|
||||||
|
allArticles.push(...articles);
|
||||||
|
});
|
||||||
|
|
||||||
|
// 다음 배치 전에 잠시 대기 (API 부하 방지)
|
||||||
|
if (i + concurrency < pages.length) {
|
||||||
|
await new Promise((resolve) => setTimeout(resolve, 1000));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const endTime = Date.now(); // 종료 시간 기록
|
||||||
|
const elapsedTime = ((endTime - startTime) / 1000).toFixed(2); // 초 단위로 변환
|
||||||
|
|
||||||
|
console.log(`\n총 ${allArticles.length}개 매물 수집 완료`);
|
||||||
|
console.log(`소요 시간: ${elapsedTime}초`);
|
||||||
|
console.log(allArticles[0]); // 첫 번째 매물 샘플 출력
|
||||||
|
};
|
||||||
|
|
||||||
|
main();
|
||||||
52
fetch-articles.ts
Normal file
52
fetch-articles.ts
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
import { NaverRealEstate } from "./src/services/naver.service";
|
||||||
|
import { realtorIds } from "./config";
|
||||||
|
|
||||||
|
// 사용 예제
|
||||||
|
async function main() {
|
||||||
|
for (const realtorId of realtorIds) {
|
||||||
|
const naver = new NaverRealEstate({
|
||||||
|
realtorId: realtorId,
|
||||||
|
});
|
||||||
|
try {
|
||||||
|
// 2. DB에서 Seed 불러오기 시도
|
||||||
|
console.log("Seed 불러오는 중...");
|
||||||
|
let seed = await naver.fetchSeed();
|
||||||
|
|
||||||
|
console.log("Seed:", seed);
|
||||||
|
|
||||||
|
// await naver.resetActiveStatus();
|
||||||
|
|
||||||
|
// 3. 등록된 매물(Article) 목록 가져오기 (자동으로 DB에 저장됨)
|
||||||
|
console.log("\n매물 목록 가져오는 중...");
|
||||||
|
// const articles = await naver.getArticlesAndSave();
|
||||||
|
// console.log(`\n총 ${articles.length}개의 매물 발견`);
|
||||||
|
|
||||||
|
// 삭제된 매물 삭제
|
||||||
|
// await naver.deleteUnactiveArticles();
|
||||||
|
|
||||||
|
// 삭제되지 않은 매물 가져옴
|
||||||
|
let activeArticles = await naver.getActiveArticles(realtorId);
|
||||||
|
activeArticles = activeArticles.filter(
|
||||||
|
(article) => article.brokerName === null
|
||||||
|
);
|
||||||
|
|
||||||
|
console.log(`\n총 ${activeArticles.length}개의 매물 발견`);
|
||||||
|
|
||||||
|
let cookie = await naver.getApiCookie();
|
||||||
|
|
||||||
|
for (let i = 0; i < activeArticles.length; i += 30) {
|
||||||
|
const batch = activeArticles.slice(i, i + 30);
|
||||||
|
await Promise.all(
|
||||||
|
batch.map(async (article) => {
|
||||||
|
await naver.updateBrokerInfo(article.articleNumber, cookie);
|
||||||
|
})
|
||||||
|
);
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
console.error("오류 발생:", error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 실행
|
||||||
|
main();
|
||||||
88
fetch-detail-disabled.ts
Normal file
88
fetch-detail-disabled.ts
Normal file
@@ -0,0 +1,88 @@
|
|||||||
|
import { NaverRealEstate } from "./src/services/naver.service";
|
||||||
|
import prisma from "./src/lib/prisma";
|
||||||
|
|
||||||
|
async function main() {
|
||||||
|
const realtorId = "a7062525";
|
||||||
|
|
||||||
|
const naver = new NaverRealEstate({
|
||||||
|
realtorId: realtorId,
|
||||||
|
});
|
||||||
|
|
||||||
|
try {
|
||||||
|
console.log("활성 매물 목록 가져오는 중...");
|
||||||
|
|
||||||
|
// DB에서 isActive가 true이고 realtorId가 일치하는 매물 가져오기
|
||||||
|
const activeArticles = await prisma.realEstateArticle.findMany({
|
||||||
|
where: {
|
||||||
|
isActive: true,
|
||||||
|
realtorId: realtorId,
|
||||||
|
},
|
||||||
|
select: {
|
||||||
|
articleNumber: true,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
console.log(`총 ${activeArticles.length}개의 활성 매물 발견`);
|
||||||
|
|
||||||
|
if (activeArticles.length === 0) {
|
||||||
|
console.log("처리할 매물이 없습니다.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 각 매물의 상세 정보 가져오기
|
||||||
|
let successCount = 0;
|
||||||
|
let failCount = 0;
|
||||||
|
|
||||||
|
for (let i = 0; i < activeArticles.length; i++) {
|
||||||
|
const article = activeArticles[i];
|
||||||
|
if (!article) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
console.log(
|
||||||
|
`\n[${i + 1}/${activeArticles.length}] ${
|
||||||
|
article.articleNumber
|
||||||
|
} 처리 중...`
|
||||||
|
);
|
||||||
|
|
||||||
|
try {
|
||||||
|
// 상세 정보 HTML 가져오기 (프록시 사용)
|
||||||
|
const detailHtml = await naver.getArticleDetailWithProxy(
|
||||||
|
article.articleNumber
|
||||||
|
);
|
||||||
|
|
||||||
|
// HTML에서 JSON 데이터 추출
|
||||||
|
const detailData = naver.parseArticleDetailFromHtml(detailHtml);
|
||||||
|
|
||||||
|
if (detailData) {
|
||||||
|
// DB에 상세 정보 저장
|
||||||
|
await naver.saveArticleDetailToDB(article.articleNumber, detailData);
|
||||||
|
successCount++;
|
||||||
|
console.log(`✅ 저장 완료`);
|
||||||
|
} else {
|
||||||
|
failCount++;
|
||||||
|
console.log(`❌ 데이터 파싱 실패`);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 요청 간격 (1~2초 랜덤)
|
||||||
|
const waitTime = 1000 + Math.floor(Math.random() * 1000);
|
||||||
|
console.log(`${waitTime}ms 대기...`);
|
||||||
|
await new Promise((resolve) => setTimeout(resolve, waitTime));
|
||||||
|
} catch (error) {
|
||||||
|
failCount++;
|
||||||
|
console.error(`❌ 오류 발생:`, error);
|
||||||
|
|
||||||
|
// 오류 발생 시 더 긴 대기
|
||||||
|
await new Promise((resolve) => setTimeout(resolve, 3000));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log("\n=== 처리 완료 ===");
|
||||||
|
console.log(`성공: ${successCount}개`);
|
||||||
|
console.log(`실패: ${failCount}개`);
|
||||||
|
} catch (error) {
|
||||||
|
console.error("오류 발생:", error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 실행
|
||||||
|
main();
|
||||||
26
fetch-detailAddress.ts
Normal file
26
fetch-detailAddress.ts
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
import { NaverRealEstate } from "./src/services/naver.service";
|
||||||
|
import prisma from "./src/lib/prisma";
|
||||||
|
|
||||||
|
async function main() {
|
||||||
|
const realtorIds = ["namyeong00"];
|
||||||
|
|
||||||
|
console.log("detailAddress 없는 매물 목록 가져오는 중...");
|
||||||
|
|
||||||
|
for (const realtorId of realtorIds) {
|
||||||
|
const naver = new NaverRealEstate({
|
||||||
|
realtorId: realtorId,
|
||||||
|
});
|
||||||
|
try {
|
||||||
|
// 상세 정보 HTML 가져오기 (프록시 사용)
|
||||||
|
await naver.updateArticleDetaiAddressWithProxy();
|
||||||
|
} catch (error) {
|
||||||
|
console.error(`❌ 오류 발생:`, error);
|
||||||
|
|
||||||
|
// 오류 발생 시 더 긴 대기
|
||||||
|
await new Promise((resolve) => setTimeout(resolve, 3000));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 실행
|
||||||
|
main();
|
||||||
49006
naver/naver.js
Normal file
49006
naver/naver.js
Normal file
File diff suppressed because it is too large
Load Diff
28
package.json
Normal file
28
package.json
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
{
|
||||||
|
"name": "sung2",
|
||||||
|
"module": "index.ts",
|
||||||
|
"type": "module",
|
||||||
|
"private": true,
|
||||||
|
"devDependencies": {
|
||||||
|
"@types/axios": "^0.14.4",
|
||||||
|
"@types/bun": "latest",
|
||||||
|
"@types/node-schedule": "^2.1.8",
|
||||||
|
"@types/node-telegram-bot-api": "^0.64.11"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"typescript": "^5"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"@prisma/client": "^6.17.1",
|
||||||
|
"@types/cheerio": "^1.0.0",
|
||||||
|
"axios": "^1.12.2",
|
||||||
|
"axios-retry": "^4.5.0",
|
||||||
|
"cheerio": "^1.1.2",
|
||||||
|
"dayjs": "^1.11.18",
|
||||||
|
"geolib": "^3.3.4",
|
||||||
|
"node-schedule": "^2.1.1",
|
||||||
|
"node-telegram-bot-api": "^0.66.0",
|
||||||
|
"prisma": "^6.17.1",
|
||||||
|
"xlsx": "^0.18.5"
|
||||||
|
}
|
||||||
|
}
|
||||||
BIN
prisma/dev.db
Normal file
BIN
prisma/dev.db
Normal file
Binary file not shown.
34
prisma/migrations/20251019205212_init/migration.sql
Normal file
34
prisma/migrations/20251019205212_init/migration.sql
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
-- CreateTable
|
||||||
|
CREATE TABLE "Property" (
|
||||||
|
"id" TEXT NOT NULL PRIMARY KEY,
|
||||||
|
"naverPropertyId" TEXT NOT NULL,
|
||||||
|
"title" TEXT NOT NULL,
|
||||||
|
"address" TEXT NOT NULL,
|
||||||
|
"detailAddress" TEXT,
|
||||||
|
"price" INTEGER NOT NULL,
|
||||||
|
"ranking" INTEGER,
|
||||||
|
"userId" TEXT NOT NULL,
|
||||||
|
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
"updatedAt" DATETIME NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
-- CreateTable
|
||||||
|
CREATE TABLE "Seed" (
|
||||||
|
"id" TEXT NOT NULL PRIMARY KEY,
|
||||||
|
"userId" TEXT NOT NULL,
|
||||||
|
"seed" TEXT NOT NULL,
|
||||||
|
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
"updatedAt" DATETIME NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
-- CreateIndex
|
||||||
|
CREATE UNIQUE INDEX "Property_naverPropertyId_key" ON "Property"("naverPropertyId");
|
||||||
|
|
||||||
|
-- CreateIndex
|
||||||
|
CREATE INDEX "Property_userId_idx" ON "Property"("userId");
|
||||||
|
|
||||||
|
-- CreateIndex
|
||||||
|
CREATE INDEX "Property_naverPropertyId_idx" ON "Property"("naverPropertyId");
|
||||||
|
|
||||||
|
-- CreateIndex
|
||||||
|
CREATE UNIQUE INDEX "Seed_userId_key" ON "Seed"("userId");
|
||||||
3
prisma/migrations/migration_lock.toml
Normal file
3
prisma/migrations/migration_lock.toml
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
# Please do not edit this file manually
|
||||||
|
# It should be added in your version-control system (e.g., Git)
|
||||||
|
provider = "sqlite"
|
||||||
139
prisma/schema.prisma
Normal file
139
prisma/schema.prisma
Normal file
@@ -0,0 +1,139 @@
|
|||||||
|
// This is your Prisma schema file,
|
||||||
|
// learn more about it in the docs: https://pris.ly/d/prisma-schema
|
||||||
|
|
||||||
|
generator client {
|
||||||
|
provider = "prisma-client-js"
|
||||||
|
output = "../src/generated/prisma"
|
||||||
|
}
|
||||||
|
|
||||||
|
datasource db {
|
||||||
|
provider = "sqlite"
|
||||||
|
url = env("DATABASE_URL")
|
||||||
|
}
|
||||||
|
|
||||||
|
model RealEstateArticle {
|
||||||
|
id Int @id @default(autoincrement())
|
||||||
|
articleNumber String @unique
|
||||||
|
articleName String?
|
||||||
|
buildingType String?
|
||||||
|
tradeType String?
|
||||||
|
realEstateType String?
|
||||||
|
tradTpNm String?
|
||||||
|
prcInfo String?
|
||||||
|
leasePrc String?
|
||||||
|
tagList String?
|
||||||
|
atclFetrDesc String?
|
||||||
|
atclCfmYmd String?
|
||||||
|
pnu String?
|
||||||
|
|
||||||
|
// 위치 정보 (address)
|
||||||
|
city String?
|
||||||
|
division String?
|
||||||
|
sector String?
|
||||||
|
jibun String?
|
||||||
|
fullAddress String?
|
||||||
|
detailAddress String?
|
||||||
|
isAddressExposed Boolean?
|
||||||
|
xCoordinate Float?
|
||||||
|
yCoordinate Float?
|
||||||
|
legalDivisionNumber String?
|
||||||
|
|
||||||
|
// 가격 정보 (priceInfo)
|
||||||
|
dealPrice String? // 매매가
|
||||||
|
warrantyAmount String? // 전세 보증금
|
||||||
|
rentAmount String? // 월세
|
||||||
|
loan String? // 대출
|
||||||
|
loanCode String?
|
||||||
|
loanTypeCode String?
|
||||||
|
|
||||||
|
// 관리비 정보 (maintenanceFee)
|
||||||
|
managementFeeAmount Int?
|
||||||
|
managementFeeTypeCode String?
|
||||||
|
managementFeeCriteriaType String?
|
||||||
|
|
||||||
|
// 건물 정보 (buildingInfo, facilityInfo)
|
||||||
|
buildingUse String?
|
||||||
|
buildingConjunctionDate String?
|
||||||
|
buildingConjunctionDateType String?
|
||||||
|
approvalElapsedYear Int?
|
||||||
|
totalParkingCount String?
|
||||||
|
isParkingPossible Boolean?
|
||||||
|
isIllegalBuilding Boolean?
|
||||||
|
|
||||||
|
// 공간 정보 (spaceInfo)
|
||||||
|
supplySpace Float? // 공급면적
|
||||||
|
exclusiveSpace Float? // 전용면적
|
||||||
|
landSpace Float? // 대지지분
|
||||||
|
targetFloor String? // 해당층
|
||||||
|
totalFloor String? // 총층
|
||||||
|
groundTotalFloor String?
|
||||||
|
undergroundTotalFloor String?
|
||||||
|
floorType String?
|
||||||
|
floorInfo String?
|
||||||
|
residenceType String?
|
||||||
|
roomCount Int?
|
||||||
|
bathRoomCount Int?
|
||||||
|
direction String?
|
||||||
|
directionStandard String?
|
||||||
|
duplex Boolean?
|
||||||
|
|
||||||
|
// 입주 정보 (movingInInfo)
|
||||||
|
movingInNegotiation Boolean?
|
||||||
|
movingInDate String?
|
||||||
|
movingInType String?
|
||||||
|
|
||||||
|
// 중개사 정보 (agent)
|
||||||
|
brokerName String?
|
||||||
|
brokerageName String?
|
||||||
|
brokerId String?
|
||||||
|
brokerAddress String?
|
||||||
|
brokerPhone String?
|
||||||
|
businessRegistrationNumber String?
|
||||||
|
ownerConfirmationSaleCount Int?
|
||||||
|
cpId String?
|
||||||
|
cpNm String?
|
||||||
|
|
||||||
|
// 매물 상세 설명
|
||||||
|
articleDescription String?
|
||||||
|
articleFeature String?
|
||||||
|
isDirectTrade Boolean?
|
||||||
|
isSafeLessorOfHug Boolean?
|
||||||
|
|
||||||
|
// 미디어 정보
|
||||||
|
imageUrl String?
|
||||||
|
imageCount Int?
|
||||||
|
isVrExposed Boolean?
|
||||||
|
|
||||||
|
// 검증/노출 정보 (verificationInfo)
|
||||||
|
verificationType String?
|
||||||
|
isAssociationArticle Boolean?
|
||||||
|
exposureStartDate String?
|
||||||
|
articleConfirmDate String?
|
||||||
|
|
||||||
|
// 편의시설 (facilityInfo - JSON 배열로 저장)
|
||||||
|
facilityLife String? // JSON array
|
||||||
|
facilitySecurity String? // JSON array
|
||||||
|
facilityEtc String? // JSON array
|
||||||
|
facilityAircon String? // JSON array
|
||||||
|
|
||||||
|
// 원본 JSON 전체 (보존용)
|
||||||
|
jsonData Json
|
||||||
|
|
||||||
|
isActive Boolean @default(true)
|
||||||
|
realtorId String?
|
||||||
|
|
||||||
|
// 생성/수정 시간
|
||||||
|
createdAt DateTime @default(now())
|
||||||
|
updatedAt DateTime @updatedAt
|
||||||
|
|
||||||
|
// 랭킹 관련
|
||||||
|
ranking Int?
|
||||||
|
cortarNo String?
|
||||||
|
lgeo String?
|
||||||
|
rankCheckDate String?
|
||||||
|
|
||||||
|
@@index([articleNumber])
|
||||||
|
@@index([tradeType])
|
||||||
|
@@index([realEstateType])
|
||||||
|
@@index([city, division])
|
||||||
|
}
|
||||||
18
src/lib/prisma.ts
Normal file
18
src/lib/prisma.ts
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
import { PrismaClient } from "../generated/prisma";
|
||||||
|
|
||||||
|
// Prisma Client 싱글톤 인스턴스
|
||||||
|
const globalForPrisma = globalThis as unknown as {
|
||||||
|
prisma: PrismaClient | undefined;
|
||||||
|
};
|
||||||
|
|
||||||
|
export const prisma =
|
||||||
|
globalForPrisma.prisma ??
|
||||||
|
new PrismaClient({
|
||||||
|
log: ["error", "warn"],
|
||||||
|
});
|
||||||
|
|
||||||
|
if (process.env.NODE_ENV !== "production") {
|
||||||
|
globalForPrisma.prisma = prisma;
|
||||||
|
}
|
||||||
|
|
||||||
|
export default prisma;
|
||||||
1114
src/services/naver.service.ts
Normal file
1114
src/services/naver.service.ts
Normal file
File diff suppressed because it is too large
Load Diff
56
src/services/ranking.service.ts
Normal file
56
src/services/ranking.service.ts
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
import type { RealEstateArticle } from "../generated/prisma";
|
||||||
|
import type { NaverRealEstate } from "./naver.service";
|
||||||
|
import prisma from "../lib/prisma";
|
||||||
|
|
||||||
|
export class RankingService {
|
||||||
|
private naver: NaverRealEstate;
|
||||||
|
constructor(naver: NaverRealEstate) {
|
||||||
|
this.naver = naver;
|
||||||
|
}
|
||||||
|
async updateRanking(articles: RealEstateArticle[], checkDate: Date) {
|
||||||
|
try {
|
||||||
|
for (let article of articles) {
|
||||||
|
// cortarNo, lgeo 확인
|
||||||
|
if (!article.cortarNo || !article.lgeo) {
|
||||||
|
const { cortarNo, lgeo } = await this.updateCortarNoAndLgeo(article);
|
||||||
|
article.cortarNo = cortarNo;
|
||||||
|
article.lgeo = lgeo;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 랭킹 조회 및 업데이트
|
||||||
|
const ranking = await this.naver.getRanking(article);
|
||||||
|
await prisma.realEstateArticle.update({
|
||||||
|
where: { id: article.id },
|
||||||
|
data: {
|
||||||
|
ranking,
|
||||||
|
rankCheckDate: checkDate.toISOString(),
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
console.log(
|
||||||
|
`✅ ${article.articleNumber} - 랭킹 업데이트 완료: ${ranking}위`
|
||||||
|
);
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
console.error(`❌ updateRanking 오류:`, error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
async updateCortarNoAndLgeo(article: RealEstateArticle): Promise<{
|
||||||
|
cortarNo: string | null;
|
||||||
|
lgeo: string | null;
|
||||||
|
}> {
|
||||||
|
try {
|
||||||
|
const { cortarNo, lgeo } = await this.naver.getCortarNoAndLgeo(article);
|
||||||
|
|
||||||
|
await prisma.realEstateArticle.update({
|
||||||
|
where: { id: article.id },
|
||||||
|
data: { cortarNo: cortarNo ?? null, lgeo: lgeo ?? null },
|
||||||
|
});
|
||||||
|
return { cortarNo: cortarNo ?? null, lgeo: lgeo ?? null };
|
||||||
|
} catch (error) {
|
||||||
|
console.error(`❌ 오류 발생:`, error);
|
||||||
|
return { cortarNo: null, lgeo: null };
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
223
src/services/telegram.service.ts
Normal file
223
src/services/telegram.service.ts
Normal file
@@ -0,0 +1,223 @@
|
|||||||
|
import TelegramBot from "node-telegram-bot-api";
|
||||||
|
|
||||||
|
export interface TelegramUser {
|
||||||
|
site: string;
|
||||||
|
chatId: number;
|
||||||
|
name: string;
|
||||||
|
phone: string;
|
||||||
|
realtorId: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export const telegramUsers: TelegramUser[] = [
|
||||||
|
{
|
||||||
|
site: "선방",
|
||||||
|
chatId: 6824763190,
|
||||||
|
name: "이성원",
|
||||||
|
phone: "010-8098-0254",
|
||||||
|
realtorId: "namyeong00",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
site: "ALL",
|
||||||
|
chatId: 6843597951,
|
||||||
|
name: "강승원",
|
||||||
|
phone: "010-5947-0000",
|
||||||
|
realtorId: "namyeong00",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
site: "부동산써브",
|
||||||
|
chatId: 6876605367,
|
||||||
|
name: "지주완",
|
||||||
|
phone: "010-2716-0987",
|
||||||
|
realtorId: "namyeong00",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
site: "부동산뱅크",
|
||||||
|
chatId: 6876605367,
|
||||||
|
name: "지주완",
|
||||||
|
phone: "010-2716-0987",
|
||||||
|
realtorId: "namyeong00",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
site: "부동산써브",
|
||||||
|
chatId: 5313195485,
|
||||||
|
name: "지주완",
|
||||||
|
phone: "010-6377-2069",
|
||||||
|
realtorId: "namyeong00",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
site: "부동산써브",
|
||||||
|
chatId: 6864925398,
|
||||||
|
name: "박희영",
|
||||||
|
phone: "010-5387-4521",
|
||||||
|
realtorId: "namyeong00",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
site: "부동산포스",
|
||||||
|
chatId: 8155003662,
|
||||||
|
name: "국성혜",
|
||||||
|
phone: "010-8305-1291",
|
||||||
|
realtorId: "namyeong00",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
site: "부동산포스",
|
||||||
|
chatId: 8329969238,
|
||||||
|
name: "이경희",
|
||||||
|
phone: "010-6346-0996",
|
||||||
|
realtorId: "namyeong00",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
site: "산업부동산",
|
||||||
|
chatId: 8358690326,
|
||||||
|
name: "정명진",
|
||||||
|
phone: "010-4199-9650",
|
||||||
|
realtorId: "namyeong00",
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
export const testUsers: TelegramUser[] = [
|
||||||
|
{
|
||||||
|
site: "ALL",
|
||||||
|
chatId: 141033632,
|
||||||
|
name: "김제연",
|
||||||
|
phone: "010-8873-8711",
|
||||||
|
realtorId: "namyeong00",
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
export class TelegramService {
|
||||||
|
private bot: TelegramBot;
|
||||||
|
private token: string;
|
||||||
|
|
||||||
|
constructor(token: string, enablePolling: boolean = false) {
|
||||||
|
this.token = token;
|
||||||
|
this.bot = new TelegramBot(token, { polling: enablePolling });
|
||||||
|
|
||||||
|
if (enablePolling) {
|
||||||
|
this.setupListeners();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 봇 리스너 설정
|
||||||
|
*/
|
||||||
|
private setupListeners() {
|
||||||
|
// 모든 메시지 처리
|
||||||
|
this.bot.on("message", (msg) => {
|
||||||
|
const chatId = msg.chat.id;
|
||||||
|
console.log(`Message received from chatId: ${chatId}`);
|
||||||
|
this.sendMessage(chatId, "Received your message");
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 메시지 전송
|
||||||
|
*/
|
||||||
|
async sendMessage(chatId: number, message: string): Promise<void> {
|
||||||
|
try {
|
||||||
|
await this.bot.sendMessage(chatId, message);
|
||||||
|
console.log(`✅ 메시지 전송 성공 - chatId: ${chatId}`);
|
||||||
|
} catch (error) {
|
||||||
|
console.error(`❌ 메시지 전송 실패 - chatId: ${chatId}`, error);
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 문서 전송
|
||||||
|
*/
|
||||||
|
async sendDocument(
|
||||||
|
chatId: number,
|
||||||
|
fileName: string,
|
||||||
|
caption?: string
|
||||||
|
): Promise<void> {
|
||||||
|
try {
|
||||||
|
await this.bot.sendDocument(
|
||||||
|
chatId,
|
||||||
|
fileName,
|
||||||
|
{
|
||||||
|
caption: caption || "",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
filename: fileName.split("/").pop(),
|
||||||
|
contentType:
|
||||||
|
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
|
||||||
|
}
|
||||||
|
);
|
||||||
|
console.log(`✅ 문서 전송 성공 - chatId: ${chatId}, file: ${fileName}`);
|
||||||
|
} catch (error) {
|
||||||
|
console.error(
|
||||||
|
`❌ 문서 전송 실패 - chatId: ${chatId}, file: ${fileName}`,
|
||||||
|
error
|
||||||
|
);
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 사진 전송
|
||||||
|
*/
|
||||||
|
async sendPhoto(
|
||||||
|
chatId: number,
|
||||||
|
photo: string | Buffer,
|
||||||
|
caption?: string
|
||||||
|
): Promise<void> {
|
||||||
|
try {
|
||||||
|
await this.bot.sendPhoto(chatId, photo, {
|
||||||
|
caption: caption || "",
|
||||||
|
});
|
||||||
|
console.log(`✅ 사진 전송 성공 - chatId: ${chatId}`);
|
||||||
|
} catch (error) {
|
||||||
|
console.error(`❌ 사진 전송 실패 - chatId: ${chatId}`, error);
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 여러 사용자에게 메시지 전송
|
||||||
|
*/
|
||||||
|
async broadcastMessage(
|
||||||
|
users: TelegramUser[],
|
||||||
|
message: string
|
||||||
|
): Promise<void> {
|
||||||
|
const promises = users.map((user) =>
|
||||||
|
this.sendMessage(user.chatId, message).catch((error) => {
|
||||||
|
console.error(
|
||||||
|
`❌ ${user.name}(${user.chatId})에게 메시지 전송 실패:`,
|
||||||
|
error
|
||||||
|
);
|
||||||
|
})
|
||||||
|
);
|
||||||
|
|
||||||
|
await Promise.all(promises);
|
||||||
|
console.log(`✅ ${users.length}명에게 메시지 브로드캐스트 완료`);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* realtorId로 사용자 필터링
|
||||||
|
*/
|
||||||
|
getUsersByRealtorId(
|
||||||
|
users: TelegramUser[],
|
||||||
|
realtorId: string
|
||||||
|
): TelegramUser[] {
|
||||||
|
return users.filter((user) => user.realtorId === realtorId);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* site로 사용자 필터링
|
||||||
|
*/
|
||||||
|
getUsersBySite(users: TelegramUser[], site: string): TelegramUser[] {
|
||||||
|
return users.filter((user) => user.site === site || user.site === "ALL");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 봇 중지
|
||||||
|
*/
|
||||||
|
stopPolling(): void {
|
||||||
|
this.bot.stopPolling();
|
||||||
|
console.log("✅ 텔레그램 봇 폴링 중지");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 기본 토큰으로 싱글톤 인스턴스 생성
|
||||||
|
const DEFAULT_TOKEN = "233460568:AAHWgRQo5IgcWR0uXdsiMEzNnsmIqjOgk24";
|
||||||
|
export const telegramService = new TelegramService(DEFAULT_TOKEN, false);
|
||||||
80
src/types/naver.types.ts
Normal file
80
src/types/naver.types.ts
Normal file
@@ -0,0 +1,80 @@
|
|||||||
|
export interface ArticleItem {
|
||||||
|
articleNumber: string;
|
||||||
|
articleName: string;
|
||||||
|
buildingType: string;
|
||||||
|
tradeType: string;
|
||||||
|
realEstateType: string;
|
||||||
|
spaceInfo: {
|
||||||
|
supplySpace: number;
|
||||||
|
exclusiveSpace: number;
|
||||||
|
landSpace: number;
|
||||||
|
exclusiveSpaceName: string;
|
||||||
|
};
|
||||||
|
buildingInfo: {
|
||||||
|
buildingConjunctionDateType: string;
|
||||||
|
buildingConjunctionDate: string;
|
||||||
|
approvalElapsedYear: number;
|
||||||
|
};
|
||||||
|
verificationInfo: {
|
||||||
|
verificationType: string;
|
||||||
|
isAssociationArticle: boolean;
|
||||||
|
exposureStartDate: string;
|
||||||
|
articleConfirmDate: string;
|
||||||
|
};
|
||||||
|
articleDetail: {
|
||||||
|
direction: string;
|
||||||
|
directionStandard: string;
|
||||||
|
articleFeatureDescription: string;
|
||||||
|
directTrade: boolean;
|
||||||
|
floorInfo: string;
|
||||||
|
floorDetailInfo: {
|
||||||
|
targetFloor: string;
|
||||||
|
totalFloor: string;
|
||||||
|
groundTotalFloor: string;
|
||||||
|
undergroundTotalFloor: string;
|
||||||
|
floorType: string;
|
||||||
|
};
|
||||||
|
isSafeLessorOfHug: boolean;
|
||||||
|
};
|
||||||
|
articleMedia: {
|
||||||
|
imageUrl: string;
|
||||||
|
imageType: string;
|
||||||
|
imageCount: number;
|
||||||
|
isVrExposed: boolean;
|
||||||
|
};
|
||||||
|
address: {
|
||||||
|
city: string;
|
||||||
|
division: string;
|
||||||
|
sector: string;
|
||||||
|
coordinates: {
|
||||||
|
xCoordinate: number;
|
||||||
|
yCoordinate: number;
|
||||||
|
};
|
||||||
|
subwayInfo: any;
|
||||||
|
};
|
||||||
|
priceInfo: {
|
||||||
|
dealPrice: number;
|
||||||
|
warrantyPrice: number;
|
||||||
|
rentPrice: number;
|
||||||
|
managementFeeAmount: number;
|
||||||
|
priceChangeStatus: number;
|
||||||
|
};
|
||||||
|
[key: string]: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ArticleResponse {
|
||||||
|
seed: string;
|
||||||
|
lastInfo: (string | number)[];
|
||||||
|
hasNextPage: boolean;
|
||||||
|
list: Array<{
|
||||||
|
representativeArticleInfo: ArticleItem;
|
||||||
|
}>;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface NaverRealEstateConfig {
|
||||||
|
realtorId: string;
|
||||||
|
seed?: string;
|
||||||
|
baseUrl?: string;
|
||||||
|
tradeTypes?: string[];
|
||||||
|
realestateTypes?: string[];
|
||||||
|
}
|
||||||
59
starter.ts
Normal file
59
starter.ts
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
import schedule from "node-schedule";
|
||||||
|
import { exec } from "node:child_process";
|
||||||
|
|
||||||
|
console.log("start ...");
|
||||||
|
|
||||||
|
function runTsFile(filePath: string): Promise<void> {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
console.log(`Starting: ${filePath}`);
|
||||||
|
exec(`bun run ${filePath}`, (error, stdout, stderr) => {
|
||||||
|
if (error) {
|
||||||
|
console.error(`Execution error: ${error.message}`);
|
||||||
|
reject(error);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (stderr) {
|
||||||
|
console.error(`Error: ${stderr}`);
|
||||||
|
}
|
||||||
|
console.log(`Output: ${stdout}`);
|
||||||
|
console.log(`Completed: ${filePath}`);
|
||||||
|
resolve();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// 10시에 실행 - fetch-articles.ts 실행 후 app.ts 실행
|
||||||
|
schedule.scheduleJob("0 0 10 * * *", async () => {
|
||||||
|
console.log("Running parserLandList.ts at 10:00 AM");
|
||||||
|
try {
|
||||||
|
await runTsFile("./fetch-articles.ts");
|
||||||
|
// fetch-articles.ts 완료 후 app.ts 실행
|
||||||
|
await runTsFile("./fetch-detailAddress.ts");
|
||||||
|
} catch (error) {
|
||||||
|
console.error("Error in scheduled job:", error);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// 11시에 실행
|
||||||
|
schedule.scheduleJob("0 11 * * *", () => {
|
||||||
|
console.log("Running app.ts at 11 AM");
|
||||||
|
runTsFile("./app.ts");
|
||||||
|
});
|
||||||
|
|
||||||
|
// 15시에 실행 - fetch-articles.ts 실행 후 app.ts 실행
|
||||||
|
schedule.scheduleJob("0 0 15 * * *", async () => {
|
||||||
|
console.log("Running parserLandList.ts at 3:00 PM");
|
||||||
|
try {
|
||||||
|
await runTsFile("./fetch-articles.ts");
|
||||||
|
// fetch-articles.ts 완료 후 app.ts 실행
|
||||||
|
await runTsFile("./fetch-detailAddress.ts");
|
||||||
|
} catch (error) {
|
||||||
|
console.error("Error in scheduled job:", error);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// 16시에 실행
|
||||||
|
schedule.scheduleJob("0 16 * * *", () => {
|
||||||
|
console.log("Running app.ts at 4 PM");
|
||||||
|
runTsFile("./app.ts");
|
||||||
|
});
|
||||||
29
tsconfig.json
Normal file
29
tsconfig.json
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
{
|
||||||
|
"compilerOptions": {
|
||||||
|
// Environment setup & latest features
|
||||||
|
"lib": ["ESNext"],
|
||||||
|
"target": "ESNext",
|
||||||
|
"module": "Preserve",
|
||||||
|
"moduleDetection": "force",
|
||||||
|
"jsx": "react-jsx",
|
||||||
|
"allowJs": true,
|
||||||
|
|
||||||
|
// Bundler mode
|
||||||
|
"moduleResolution": "bundler",
|
||||||
|
"allowImportingTsExtensions": true,
|
||||||
|
"verbatimModuleSyntax": true,
|
||||||
|
"noEmit": true,
|
||||||
|
|
||||||
|
// Best practices
|
||||||
|
"strict": true,
|
||||||
|
"skipLibCheck": true,
|
||||||
|
"noFallthroughCasesInSwitch": true,
|
||||||
|
"noUncheckedIndexedAccess": true,
|
||||||
|
"noImplicitOverride": true,
|
||||||
|
|
||||||
|
// Some stricter flags (disabled by default)
|
||||||
|
"noUnusedLocals": false,
|
||||||
|
"noUnusedParameters": false,
|
||||||
|
"noPropertyAccessFromIndexSignature": false
|
||||||
|
}
|
||||||
|
}
|
||||||
BIN
xlsx/2025-10-23_15-10_순위_ALL_namyeong00.xlsx
Normal file
BIN
xlsx/2025-10-23_15-10_순위_ALL_namyeong00.xlsx
Normal file
Binary file not shown.
BIN
xlsx/2025-10-23_15-10_순위_부동산뱅크_namyeong00.xlsx
Normal file
BIN
xlsx/2025-10-23_15-10_순위_부동산뱅크_namyeong00.xlsx
Normal file
Binary file not shown.
BIN
xlsx/2025-10-23_15-10_순위_부동산써브_namyeong00.xlsx
Normal file
BIN
xlsx/2025-10-23_15-10_순위_부동산써브_namyeong00.xlsx
Normal file
Binary file not shown.
BIN
xlsx/2025-10-23_15-10_순위_선방_namyeong00.xlsx
Normal file
BIN
xlsx/2025-10-23_15-10_순위_선방_namyeong00.xlsx
Normal file
Binary file not shown.
BIN
xlsx/2025-11-03_12-48_순위_ALL_namyeong00.xlsx
Normal file
BIN
xlsx/2025-11-03_12-48_순위_ALL_namyeong00.xlsx
Normal file
Binary file not shown.
BIN
xlsx/2025-11-03_12-48_순위_부동산뱅크_namyeong00.xlsx
Normal file
BIN
xlsx/2025-11-03_12-48_순위_부동산뱅크_namyeong00.xlsx
Normal file
Binary file not shown.
BIN
xlsx/2025-11-03_12-48_순위_부동산써브_namyeong00.xlsx
Normal file
BIN
xlsx/2025-11-03_12-48_순위_부동산써브_namyeong00.xlsx
Normal file
Binary file not shown.
BIN
xlsx/2025-11-03_12-48_순위_부동산포스_namyeong00.xlsx
Normal file
BIN
xlsx/2025-11-03_12-48_순위_부동산포스_namyeong00.xlsx
Normal file
Binary file not shown.
BIN
xlsx/2025-11-03_12-48_순위_선방_namyeong00.xlsx
Normal file
BIN
xlsx/2025-11-03_12-48_순위_선방_namyeong00.xlsx
Normal file
Binary file not shown.
BIN
xlsx/2025-11-03_14-35_순위_부동산포스_namyeong00.xlsx
Normal file
BIN
xlsx/2025-11-03_14-35_순위_부동산포스_namyeong00.xlsx
Normal file
Binary file not shown.
BIN
xlsx/2025-11-03_14-36_순위_부동산포스_namyeong00.xlsx
Normal file
BIN
xlsx/2025-11-03_14-36_순위_부동산포스_namyeong00.xlsx
Normal file
Binary file not shown.
BIN
xlsx/2025-11-03_14-36_순위_산업부동산_namyeong00.xlsx
Normal file
BIN
xlsx/2025-11-03_14-36_순위_산업부동산_namyeong00.xlsx
Normal file
Binary file not shown.
BIN
xlsx/2025-11-04_11-26_순위_ALL_namyeong00.xlsx
Normal file
BIN
xlsx/2025-11-04_11-26_순위_ALL_namyeong00.xlsx
Normal file
Binary file not shown.
BIN
xlsx/2025-11-04_11-26_순위_부동산뱅크_namyeong00.xlsx
Normal file
BIN
xlsx/2025-11-04_11-26_순위_부동산뱅크_namyeong00.xlsx
Normal file
Binary file not shown.
BIN
xlsx/2025-11-04_11-26_순위_부동산써브_namyeong00.xlsx
Normal file
BIN
xlsx/2025-11-04_11-26_순위_부동산써브_namyeong00.xlsx
Normal file
Binary file not shown.
BIN
xlsx/2025-11-04_11-26_순위_부동산포스_namyeong00.xlsx
Normal file
BIN
xlsx/2025-11-04_11-26_순위_부동산포스_namyeong00.xlsx
Normal file
Binary file not shown.
BIN
xlsx/2025-11-04_11-26_순위_산업부동산_namyeong00.xlsx
Normal file
BIN
xlsx/2025-11-04_11-26_순위_산업부동산_namyeong00.xlsx
Normal file
Binary file not shown.
BIN
xlsx/2025-11-04_11-26_순위_선방_namyeong00.xlsx
Normal file
BIN
xlsx/2025-11-04_11-26_순위_선방_namyeong00.xlsx
Normal file
Binary file not shown.
BIN
xlsx/2025-11-06_13-10_순위_ALL_namyeong00.xlsx
Normal file
BIN
xlsx/2025-11-06_13-10_순위_ALL_namyeong00.xlsx
Normal file
Binary file not shown.
BIN
xlsx/2025-11-06_13-10_순위_부동산뱅크_namyeong00.xlsx
Normal file
BIN
xlsx/2025-11-06_13-10_순위_부동산뱅크_namyeong00.xlsx
Normal file
Binary file not shown.
BIN
xlsx/2025-11-06_13-10_순위_부동산써브_namyeong00.xlsx
Normal file
BIN
xlsx/2025-11-06_13-10_순위_부동산써브_namyeong00.xlsx
Normal file
Binary file not shown.
BIN
xlsx/2025-11-06_13-10_순위_부동산포스_namyeong00.xlsx
Normal file
BIN
xlsx/2025-11-06_13-10_순위_부동산포스_namyeong00.xlsx
Normal file
Binary file not shown.
BIN
xlsx/2025-11-06_13-10_순위_산업부동산_namyeong00.xlsx
Normal file
BIN
xlsx/2025-11-06_13-10_순위_산업부동산_namyeong00.xlsx
Normal file
Binary file not shown.
BIN
xlsx/2025-11-06_13-10_순위_선방_namyeong00.xlsx
Normal file
BIN
xlsx/2025-11-06_13-10_순위_선방_namyeong00.xlsx
Normal file
Binary file not shown.
BIN
xlsx/2025-11-06_14-46_순위_ALL_namyeong00.xlsx
Normal file
BIN
xlsx/2025-11-06_14-46_순위_ALL_namyeong00.xlsx
Normal file
Binary file not shown.
BIN
xlsx/2025-11-06_14-46_순위_부동산써브_namyeong00.xlsx
Normal file
BIN
xlsx/2025-11-06_14-46_순위_부동산써브_namyeong00.xlsx
Normal file
Binary file not shown.
BIN
xlsx/2025-11-06_14-46_순위_선방_namyeong00.xlsx
Normal file
BIN
xlsx/2025-11-06_14-46_순위_선방_namyeong00.xlsx
Normal file
Binary file not shown.
Reference in New Issue
Block a user