npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

bun-cultureland.js

v1.0.8

Published

컬쳐랜드 모바일웹을 자동화해주는 비공식 라이브러리입니다.

Downloads

3

Readme

cultureland.js

컬쳐랜드 모바일웹을 자동화해주는 비공식 라이브러리입니다. 로그인, 잔액조회, 충전, 선물 등 자주 사용되는 대부분의 기능을 지원합니다. 기능 추가 요청은 이슈 / 풀 리퀘스트 / 디스코드 서버를 이용해주세요.

필독

교육용 및 학습용으로만 사용해 주세요 이 프로젝트 혹은 리포지토리를 사용함으로써 발생하는 모든 피해나 손실은 모두 본인의 책임입니다.

디스코드

아래 서버에서 도움을 요청해 보세요! Discord xB2Jae97z7

사용

터미널에서 아래 명령어를 입력하여 라이브러리를 설치해주세요:

npm install cultureland.js@dev

클라이언트 생성

const Cultureland = require("cultureland.js"); // CommonJS style
import Cultureland from "cultureland.js"; // ES style

const client = new Cultureland();

로그인 (아이디 & 비밀번호)

아이디와 비밀번호를 사용하여 컬쳐랜드에 로그인합니다.

<Cultureland>.login(credentials: { id: string; password: string; }): Promise<CulturelandLogin>

파라미터:

  • credentials
    • id (string): 컬쳐랜드 ID
    • password (string): 컬쳐랜드 비밀번호

반환값:

  • CulturelandLogin
    • userId (string): 컬쳐랜드 ID
    • keepLoginInfo (string): 로그인 유지 쿠키
await client.login({ id: "id", password: "pw" })
    .then(creds => console.log(`로그인 성공 | 아이디: ${creds.userId} | 로그인 유지 쿠키: ${creds.keepLoginInfo}`))
    .catch(console.error);

로그인 (로그인 유지 쿠키)

로그인 유지 쿠키를 사용하여 컬쳐랜드에 로그인합니다.

<Cultureland>.login(keepLoginInfo: string): Promise<CulturelandLogin>

파라미터:

  • keepLoginInfo (string): 로그인 유지 쿠키

반환값:

  • CulturelandLogin
    • userId (string): 컬쳐랜드 ID
    • keepLoginInfo (string): 로그인 유지 쿠키
await client.login("KeepLoginConfig")
    .then(creds => console.log(`로그인 성공 | 아이디: ${creds.userId} | 로그인 유지 쿠키: ${creds.keepLoginInfo}`))
    .catch(console.error);

잔액 조회

컬쳐랜드 계정의 컬쳐캐쉬 잔액을 가져옵니다.

<Cultureland>.getBalance(): Promise<CulturelandBalance>

반환값:

  • CulturelandBalance
    • balance (number): 사용 가능 금액
    • safeBalance (number): 보관중인 금액 (안심금고)
    • totalBalance (number): 총 잔액 (사용 가능 금액 + 보관중인 금액)
await client.getBalance()
    .then(balance => console.log(`잔액: ${balance.balance.toLocaleString()}원 | 안심금고: ${balance.safeBalance.toLocaleString()}원`))
    .catch(console.error);

충전

컬쳐랜드상품권(모바일문화상품권) 및 문화상품권(18자리)을 컬쳐캐쉬로 충전합니다. 지류/온라인문화상품권(18자리)은 2022.12.31 이전 발행 건만 충전 가능합니다. 상품권이 한개일 경우 핀 핀번호가 틀리면 InvalidPinError를 throw합니다. 상품권이 여러개일 경우 핀번호가 틀려도 에러를 throw하지 않습니다.

<Cultureland>.charge(pins: Pin | Pins[]): Promise<CulturelandCharge | CulturelandCharge[]>

파라미터:

  • pins (Pin | Pins[]): 상품권(들)의 핀번호

반환값:

  • CulturelandCharge | CulturelandCharge[]
    • message (string): 성공 여부 메시지 - 충전 완료 상품권지갑 보관 잔액이 0원인 상품권 상품권 번호 불일치
    • amount (number): 충전 금액
const { Pin } = require("cultureland.js"); // CommonJS style
import { Pin } from "cultureland.js"; // ES style

// 한 개의 핀번호 충전
await client.charge(new Pin("3110-0123-4567-8901"))
    .then(charge => console.log(`${charge.message} | ${charge.amount.toLocaleString()}원`))
    .catch(console.error);

// 여러개의 핀번호 충전
await client.charge([
    new Pin("3110-0123-4567-8901"),
    new Pin("3110-0123-4567-8901")
]).then(console.log);

선물

컬쳐캐쉬를 사용해 컬쳐랜드상품권(모바일문화상품권)을 휴대폰 번호로 선물합니다.

<Cultureland>.gift(amount: number, phoneNumber?: string): Promise<CulturelandGift>

파라미터:

  • amount (number): 구매 금액 (최소 1천원부터 최대 5만원까지 100원 단위로 입력 가능)
  • phoneNumber? (string): 수신자 휴대폰 번호

반환값:

  • CulturelandGift
    • pin (Pin): 선물 바코드 번호
    • url (string): 선물 바코드 URL
    • controlCode (string): 선물 발행번호
// 5000원권 1장을 나에게 선물
await client.gift(5000)
    .then(gift => console.log(`핀번호: ${gift.pin.toString()} | URL: ${gift.url}`))
    .catch(console.error);

// 5000원권 1장을 010-1234-5678에게 선물
await client.gift(5000, "01012345678")
    .then(gift => console.log(`핀번호: ${gift.pin.toString()} | URL: ${gift.url}`))
    .catch(console.error);

구글플레이 기프트코드

컬쳐캐쉬를 사용해 Google Play 기프트 코드를 본인 번호로 구매합니다. 안심금고가 활성화되어 있어야 합니다. 구매 금액의 3% 수수료가 발생됩니다. (전환 비율 1.03:1)

<Cultureland>.giftGooglePlay(amount: number, quantity: number = 1): Promise<CulturelandGooglePlay[]>

파라미터:

  • amount (number): 구매 금액 (5천원, 1만원, 1만5천원, 3만원, 5만원, 10만원, 15만원, 20만원)
  • quantity (number): 구매 수량 (최대 10개)

반환값:

  • CulturelandGooglePlay[]
    • pin (string): 기프트 코드 번호
    • url (string): 자동 입력 URL
    • certNumber (string): 발행번호 (인증번호)
// 10000원권 1장을 구매하여 나에게 전송, 컬쳐캐쉬 10300원 차감
await client.giftGooglePlay(10000);