From c619636e55a59c1e02c997fb06abe68007180119 Mon Sep 17 00:00:00 2001 From: Florian Wendelborn <1133858+FlorianWendelborn@users.noreply.github.com> Date: Sat, 30 Nov 2024 04:24:30 +0100 Subject: [PATCH] version(items@0.0.1): Add Bits Item Metadata --- bun.lockb | Bin 108856 -> 110088 bytes internals/scripts/source/publish.mts | 6 +- packages/items/README.md | 5 + packages/items/package.json | 46 ++ packages/items/source/data.ts | 637 +++++++++++++++++++++++++++ packages/items/source/index.ts | 10 + packages/items/source/types.ts | 61 +++ packages/items/tsconfig.json | 14 + packages/items/turbo.json | 5 + 9 files changed, 783 insertions(+), 1 deletion(-) create mode 100644 packages/items/README.md create mode 100644 packages/items/package.json create mode 100644 packages/items/source/data.ts create mode 100644 packages/items/source/index.ts create mode 100644 packages/items/source/types.ts create mode 100644 packages/items/tsconfig.json create mode 100644 packages/items/turbo.json diff --git a/bun.lockb b/bun.lockb index 262451208f7af038bb0dde0e3bac29d034bc68e7..87ceff9e2c14e5d6acc479111eed6d6939c594a1 100755 GIT binary patch delta 15659 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�J{M+HJS=NF*yJ` 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 Z>M>aAi|lR^OE)lIE8Ujvp;sxz{{f9Wk}3cI delta 14941 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 D-4vzu diff --git a/internals/scripts/source/publish.mts b/internals/scripts/source/publish.mts index 63d15b6..171f41a 100644 --- a/internals/scripts/source/publish.mts +++ b/internals/scripts/source/publish.mts @@ -1,7 +1,11 @@ import { $, semver } from 'bun' import { z } from 'zod' -const packagesToConsider = ['packages/actions', 'packages/schemas'] +const packagesToConsider = [ + 'packages/actions', + 'packages/items', + 'packages/schemas', +] const packageJsonSchema = z.object({ name: z.string(), version: z.string() }) diff --git a/packages/items/README.md b/packages/items/README.md new file mode 100644 index 0000000..2ff7e83 --- /dev/null +++ b/packages/items/README.md @@ -0,0 +1,5 @@ +# @skyblock-finance/items + +This package contains item metadata, primarily data that is not available on the Hypixel API yet + +(if any Hypixel employee is reading this, please add more metadata on the items API, thank you) diff --git a/packages/items/package.json b/packages/items/package.json new file mode 100644 index 0000000..edb556c --- /dev/null +++ b/packages/items/package.json @@ -0,0 +1,46 @@ +{ + "bugs": { + "url": "https://github.com/skyblock-finance/skyblock-finance-opensource/issues" + }, + "dependencies": { + "zod": "^3.23.8" + }, + "devDependencies": { + "@types/bun": "latest" + }, + "files": [ + "data", + "dist", + "source" + ], + "keywords": [ + "hypixel-skyblock", + "hypixel", + "skyblock-finance" + ], + "license": "MIT", + "main": "dist/index.js", + "name": "@skyblock-finance/items", + "peerDependencies": { + "typescript": "^5.5" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/skyblock-finance/skyblock-finance-opensource" + }, + "scripts": { + "build": "rm -rf dist && tsc --build", + "check:arethetypeswrong": "bun run attw --pack .", + "check:eslint": "bun run eslint --max-warnings=0 .", + "check:prettier": "bun --bun run --cwd ../.. prettier --check packages/items", + "check:publint": "bun --bun run publint", + "fix:eslint": "bun run check:eslint --fix", + "fix:prettier": "bun --bun run check:prettier --write", + "publish-package": "npm publish --access public --provenance", + "test": "bun test" + }, + "sideEffects": false, + "type": "commonjs", + "types": "dist/index.d.ts", + "version": "0.0.1" +} diff --git a/packages/items/source/data.ts b/packages/items/source/data.ts new file mode 100644 index 0000000..0785614 --- /dev/null +++ b/packages/items/source/data.ts @@ -0,0 +1,637 @@ +import { ItemMetadata, ItemMetadataTradesOn } from './types' + +const BZ = { ah: false, bz: true } satisfies ItemMetadataTradesOn +const AH = { ah: true, bz: true } satisfies ItemMetadataTradesOn + +export const allItems = new Map([ + [ + 'GOD_POTION_2', + { + tradesOn: AH, + type: 'basic', + ids: { skyblock: 'GOD_POTION_2' }, + links: {}, + }, + ], + [ + 'KISMET_FEATHER', + { + tradesOn: BZ, + type: 'basic', + ids: { skyblock: 'KISMET_FEATHER' }, + links: {}, + }, + ], + [ + 'KAT_FLOWER', + { + tradesOn: AH, + type: 'basic', + ids: { skyblock: 'KAT_FLOWER' }, + links: {}, + }, + ], + [ + 'KAT_BOUQUET', + { + tradesOn: AH, + type: 'basic', + ids: { skyblock: 'KAT_BOUQUET' }, + links: {}, + }, + ], + [ + 'HEAT_CORE', + { + tradesOn: AH, + type: 'basic', + ids: { skyblock: 'HEAT_CORE' }, + links: {}, + }, + ], + [ + 'MAGMA_BUCKET', + { + tradesOn: BZ, + type: 'basic', + ids: { skyblock: 'MAGMA_BUCKET' }, + links: {}, + }, + ], + [ + 'PLASMA_BUCKET', + { + tradesOn: BZ, + type: 'basic', + ids: { skyblock: 'PLASMA_BUCKET' }, + links: {}, + }, + ], + [ + 'MITHRIL_INFUSION', + { + tradesOn: BZ, + type: 'basic', + ids: { skyblock: 'MITHRIL_INFUSION' }, + links: {}, + }, + ], + [ + 'HYPER_CATALYST_UPGRADE', + { + tradesOn: AH, + type: 'basic', + ids: { skyblock: 'HYPER_CATALYST_UPGRADE' }, + links: {}, + }, + ], + [ + 'HYPER_CATALYST', + { + tradesOn: BZ, + type: 'basic', + ids: { skyblock: 'HYPER_CATALYST' }, + links: {}, + }, + ], + [ + 'ULTIMATE_CARROT_CANDY_UPGRADE', + { + tradesOn: AH, + type: 'basic', + ids: { skyblock: 'ULTIMATE_CARROT_CANDY_UPGRADE' }, + links: {}, + }, + ], + [ + 'ULTIMATE_CARROT_CANDY', + { + tradesOn: BZ, + type: 'basic', + ids: { skyblock: 'ULTIMATE_CARROT_CANDY' }, + links: {}, + }, + ], + [ + 'COLOSSAL_EXP_BOTTLE_UPGRADE', + { + tradesOn: AH, + type: 'basic', + ids: { skyblock: 'COLOSSAL_EXP_BOTTLE_UPGRADE' }, + links: {}, + }, + ], + [ + 'COLOSSAL_EXP_BOTTLE', + { + tradesOn: BZ, + type: 'basic', + ids: { skyblock: 'COLOSSAL_EXP_BOTTLE' }, + links: {}, + }, + ], + [ + 'JUMBO_BACKPACK_UPGRADE', + { + tradesOn: AH, + type: 'basic', + ids: { skyblock: 'JUMBO_BACKPACK_UPGRADE' }, + links: {}, + }, + ], + [ + 'JUMBO_BACKPACK', + { + tradesOn: AH, + type: 'basic', + ids: { skyblock: 'JUMBO_BACKPACK' }, + links: {}, + }, + ], + [ + 'MINION_STORAGE_EXPANDER', + { + tradesOn: AH, + type: 'basic', + ids: { skyblock: 'MINION_STORAGE_EXPANDER' }, + links: {}, + }, + ], + [ + 'XLARGE_ENCHANTED_CHEST', + { + tradesOn: AH, + type: 'basic', + ids: { skyblock: 'XLARGE_ENCHANTED_CHEST' }, + links: {}, + }, + ], + [ + 'XXLARGE_ENCHANTED_CHEST', + { + tradesOn: AH, + type: 'basic', + ids: { skyblock: 'XXLARGE_ENCHANTED_CHEST' }, + links: {}, + }, + ], + [ + 'MATRIARCH_PARFUM', + { + tradesOn: AH, + type: 'basic', + ids: { skyblock: 'MATRIARCH_PARFUM' }, + links: {}, + }, + ], + [ + 'HOLOGRAM', + { + tradesOn: AH, + type: 'basic', + ids: { skyblock: 'HOLOGRAM' }, + links: {}, + }, + ], + [ + 'DITTO_BLOB', + { + tradesOn: AH, + type: 'basic', + ids: { skyblock: 'DITTO_BLOB' }, + links: {}, + }, + ], + [ + 'BUILDERS_WAND', + { + tradesOn: AH, + type: 'basic', + ids: { skyblock: 'BUILDERS_WAND' }, + links: {}, + }, + ], + [ + 'BLOCK_ZAPPER', + { + tradesOn: AH, + type: 'basic', + ids: { skyblock: 'BLOCK_ZAPPER' }, + links: {}, + }, + ], + [ + 'BITS_TALISMAN', + { + tradesOn: AH, + type: 'basic', + ids: { skyblock: 'BITS_TALISMAN' }, + links: {}, + }, + ], + [ + 'POCKET_SACK_IN_A_SACK', + { + tradesOn: AH, + type: 'basic', + ids: { skyblock: 'POCKET_SACK_IN_A_SACK' }, + links: {}, + }, + ], + [ + 'LARGE_DUNGEON_SACK', + { + tradesOn: BZ, + type: 'basic', + ids: { skyblock: 'LARGE_DUNGEON_SACK' }, + links: {}, + }, + ], + [ + 'RUNE_SACK', + { + tradesOn: BZ, + type: 'basic', + ids: { skyblock: 'RUNE_SACK' }, + links: {}, + }, + ], + [ + 'FLOWER_SACK', + { + tradesOn: BZ, + type: 'basic', + ids: { skyblock: 'FLOWER_SACK' }, + links: {}, + }, + ], + [ + 'DWARVEN_MINES_SACK', + { + tradesOn: BZ, + type: 'basic', + ids: { skyblock: 'DWARVEN_MINES_SACK' }, + links: {}, + }, + ], + [ + 'CRYSTAL_HOLLOWS_SACK', + { + tradesOn: BZ, + type: 'basic', + ids: { skyblock: 'CRYSTAL_HOLLOWS_SACK' }, + links: {}, + }, + ], + [ + 'PORTALIZER', + { + tradesOn: AH, + type: 'basic', + ids: { skyblock: 'PORTALIZER' }, + links: {}, + }, + ], + [ + 'TRIO_CONTACTS_ADDON', + { + tradesOn: AH, + type: 'basic', + ids: { skyblock: 'TRIO_CONTACTS_ADDON' }, + links: {}, + }, + ], + [ + 'AUTOPET_RULES_2', + { + tradesOn: AH, + type: 'basic', + ids: { skyblock: 'AUTOPET_RULES_2' }, + links: {}, + }, + ], + [ + 'DYE_PURE_WHITE', + { + tradesOn: AH, + type: 'basic', + ids: { skyblock: 'DYE_PURE_WHITE' }, + links: {}, + }, + ], + [ + 'DYE_PURE_BLACK', + { + tradesOn: AH, + type: 'basic', + ids: { skyblock: 'DYE_PURE_BLACK' }, + links: {}, + }, + ], + [ + 'INFERNO_FUEL_BLOCK', + { + tradesOn: BZ, + type: 'basic', + ids: { skyblock: 'INFERNO_FUEL_BLOCK' }, + links: {}, + }, + ], + [ + 'ENCHANTMENT_EXPERTISE_1', + { + tradesOn: BZ, + type: 'basic', + ids: { skyblock: 'ENCHANTMENT_EXPERTISE_1' }, + links: {}, + }, + ], + [ + 'ENCHANTMENT_COMPACT_1', + { + tradesOn: BZ, + type: 'basic', + ids: { skyblock: 'ENCHANTMENT_COMPACT_1' }, + links: {}, + }, + ], + [ + 'ENCHANTMENT_CULTIVATING_1', + { + tradesOn: BZ, + type: 'basic', + ids: { skyblock: 'ENCHANTMENT_CULTIVATING_1' }, + links: {}, + }, + ], + [ + 'ENCHANTMENT_CHAMPION_1', + { + tradesOn: BZ, + type: 'basic', + ids: { skyblock: 'ENCHANTMENT_CHAMPION_1' }, + links: {}, + }, + ], + [ + 'ENCHANTMENT_HECATOMB_1', + { + tradesOn: BZ, + type: 'basic', + ids: { skyblock: 'ENCHANTMENT_HECATOMB_1' }, + links: {}, + }, + ], + [ + 'ENCHANTMENT_TOXOPHILITE_1', + { + tradesOn: BZ, + type: 'basic', + ids: { skyblock: 'ENCHANTMENT_TOXOPHILITE_1' }, + links: {}, + }, + ], + [ + 'TALISMAN_ENRICHMENT_ATTACK_SPEED', + { + tradesOn: AH, + type: 'basic', + ids: { skyblock: 'TALISMAN_ENRICHMENT_ATTACK_SPEED' }, + links: {}, + }, + ], + [ + 'TALISMAN_ENRICHMENT_CRITICAL_CHANCE', + { + tradesOn: AH, + type: 'basic', + ids: { skyblock: 'TALISMAN_ENRICHMENT_CRITICAL_CHANCE' }, + links: {}, + }, + ], + [ + 'TALISMAN_ENRICHMENT_CRITICAL_DAMAGE', + { + tradesOn: AH, + type: 'basic', + ids: { skyblock: 'TALISMAN_ENRICHMENT_CRITICAL_DAMAGE' }, + links: {}, + }, + ], + [ + 'TALISMAN_ENRICHMENT_DEFENSE', + { + tradesOn: AH, + type: 'basic', + ids: { skyblock: 'TALISMAN_ENRICHMENT_DEFENSE' }, + links: {}, + }, + ], + [ + 'TALISMAN_ENRICHMENT_FEROCITY', + { + tradesOn: AH, + type: 'basic', + ids: { skyblock: 'TALISMAN_ENRICHMENT_FEROCITY' }, + links: {}, + }, + ], + [ + 'TALISMAN_ENRICHMENT_HEALTH', + { + tradesOn: AH, + type: 'basic', + ids: { skyblock: 'TALISMAN_ENRICHMENT_HEALTH' }, + links: {}, + }, + ], + [ + 'TALISMAN_ENRICHMENT_INTELLIGENCE', + { + tradesOn: AH, + type: 'basic', + ids: { skyblock: 'TALISMAN_ENRICHMENT_INTELLIGENCE' }, + links: {}, + }, + ], + [ + 'TALISMAN_ENRICHMENT_MAGIC_FIND', + { + tradesOn: AH, + type: 'basic', + ids: { skyblock: 'TALISMAN_ENRICHMENT_MAGIC_FIND' }, + links: {}, + }, + ], + [ + 'TALISMAN_ENRICHMENT_SEA_CREATURE_CHANCE', + { + tradesOn: AH, + type: 'basic', + ids: { skyblock: 'TALISMAN_ENRICHMENT_SEA_CREATURE_CHANCE' }, + links: {}, + }, + ], + [ + 'TALISMAN_ENRICHMENT_STRENGTH', + { + tradesOn: AH, + type: 'basic', + ids: { skyblock: 'TALISMAN_ENRICHMENT_STRENGTH' }, + links: {}, + }, + ], + [ + 'TALISMAN_ENRICHMENT_WALK_SPEED', + { + tradesOn: AH, + type: 'basic', + ids: { skyblock: 'TALISMAN_ENRICHMENT_WALK_SPEED' }, + links: {}, + }, + ], + [ + 'TALISMAN_ENRICHMENT_SWAPPER', + { + tradesOn: AH, + type: 'basic', + ids: { skyblock: 'TALISMAN_ENRICHMENT_SWAPPER' }, + links: {}, + }, + ], + [ + 'SF:ABICASE_SUMSUNG_1', + { + tradesOn: AH, + type: 'missing', + ids: { skyblock: 'ABIPHONE', cofl: 'ABICASE_SUMSUNG_1' }, + links: {}, + metadata: { + description: '', + id: 'ABICASE_SUMSUNG_1', + name: 'Sumsung© G3 Abicase', + textureUrl: null, + }, + }, + ], + [ + 'SF:ABICASE_SUMSUNG_2', + { + tradesOn: AH, + type: 'missing', + ids: { skyblock: 'ABIPHONE', cofl: 'ABICASE_SUMSUNG_2' }, + links: {}, + metadata: { + description: '', + id: 'SF:ABICASE_SUMSUNG_2', + name: 'Sumsung© GG Abicase', + textureUrl: null, + }, + }, + ], + [ + 'SF:ABICASE_SUMSUNG_2', + { + tradesOn: AH, + type: 'missing', + ids: { skyblock: 'ABIPHONE', cofl: 'ABICASE_SUMSUNG_2' }, + links: {}, + metadata: { + description: '', + id: 'SF:ABICASE_SUMSUNG_2', + name: 'Sumsung© GG Abicase', + textureUrl: null, + }, + }, + ], + [ + 'SF:ABICASE_REZAR', + { + tradesOn: AH, + type: 'missing', + ids: { skyblock: 'ABIPHONE', cofl: 'ABICASE_REZAR' }, + links: {}, + metadata: { + description: '', + id: 'SF:ABICASE_REZAR', + name: 'Rezar® Abicase', + textureUrl: null, + }, + }, + ], + [ + 'SF:ABICASE_BLUE_RED', + { + tradesOn: AH, + type: 'missing', + ids: { skyblock: 'ABIPHONE', cofl: 'ABICASE_BLUE_RED' }, + links: {}, + metadata: { + description: '', + id: 'SF:ABICASE_BLUE_RED', + name: 'Blue™ But Red Abicase', + textureUrl: null, + }, + }, + ], + [ + 'SF:ABICASE_BLUE_BLUE', + { + tradesOn: AH, + type: 'missing', + ids: { skyblock: 'ABIPHONE', cofl: 'ABICASE_BLUE_BLUE' }, + links: {}, + metadata: { + description: '', + id: 'SF:ABICASE_BLUE_BLUE', + name: 'Actually Blue™ Abicase', + textureUrl: null, + }, + }, + ], + [ + 'SF:ABICASE_BLUE_GREEN', + { + tradesOn: AH, + type: 'missing', + ids: { skyblock: 'ABIPHONE', cofl: 'ABICASE_BLUE_GREEN' }, + links: {}, + metadata: { + description: '', + id: 'SF:ABICASE_BLUE_GREEN', + name: 'Blue™ But Green Abicase', + textureUrl: null, + }, + }, + ], + [ + 'SF:ABICASE_BLUE_YELLOW', + { + tradesOn: AH, + type: 'missing', + ids: { skyblock: 'ABIPHONE', cofl: 'ABICASE_BLUE_YELLOW' }, + links: {}, + metadata: { + description: '', + id: 'SF:ABICASE_BLUE_YELLOW', + name: 'Blue™ But Yellow Abicase', + textureUrl: null, + }, + }, + ], + [ + 'SF:ABICASE_BLUE_AQUA', + { + tradesOn: AH, + type: 'missing', + ids: { skyblock: 'ABIPHONE', cofl: 'ABICASE_BLUE_AQUA' }, + links: {}, + metadata: { + description: '', + id: 'SF:ABICASE_BLUE_AQUA', + name: 'Lighter Blue™ Abicase', + textureUrl: null, + }, + }, + ], +]) diff --git a/packages/items/source/index.ts b/packages/items/source/index.ts new file mode 100644 index 0000000..73188d4 --- /dev/null +++ b/packages/items/source/index.ts @@ -0,0 +1,10 @@ +export * from './data' +export { + ItemMetadata, + ItemMetadataIds, + ItemMetadataLinks, + ItemMetadataMissing, + ItemMetadataIncorrect, + ItemMetadataTradesOn, + ItemMetadataBasic, +} from './types' diff --git a/packages/items/source/types.ts b/packages/items/source/types.ts new file mode 100644 index 0000000..52efb9f --- /dev/null +++ b/packages/items/source/types.ts @@ -0,0 +1,61 @@ +export type ItemMetadataIds = { + skyblock: string | null + cofl?: string +} + +export type ItemMetadataLinks = { + fandomWiki?: string + hypixelWiki?: string +} + +export type ItemMetadataTradesOn = { + ah: boolean | null + bz: boolean | null +} + +export type ItemMetadataBasic = { + type: 'basic' + + // base + ids: ItemMetadataIds + links: ItemMetadataLinks + tradesOn: ItemMetadataTradesOn +} + +export type ItemMetadataMissing = { + type: 'missing' + + // base + ids: ItemMetadataIds + links: ItemMetadataLinks + tradesOn: ItemMetadataTradesOn + + // custom + metadata: { + description: string | null + id: string + name: string + textureUrl: string | null + } +} + +export type ItemMetadataIncorrect = { + type: 'incorrect' + + // base + ids: ItemMetadataIds + links: ItemMetadataLinks + tradesOn: ItemMetadataTradesOn + + // custom + corrected: { + description?: string + name?: string + textureUrl?: string | null + } +} + +export type ItemMetadata = + | ItemMetadataBasic + | ItemMetadataIncorrect + | ItemMetadataMissing diff --git a/packages/items/tsconfig.json b/packages/items/tsconfig.json new file mode 100644 index 0000000..c8bd326 --- /dev/null +++ b/packages/items/tsconfig.json @@ -0,0 +1,14 @@ +{ + "compilerOptions": { + "esModuleInterop": true, + "module": "commonjs", + "moduleResolution": "Node", + "outDir": "./dist", + "rootDir": "./source", + "tsBuildInfoFile": "./dist/.tsbuildinfo", + "types": ["bun"] + }, + "exclude": ["source/**/*.test.ts"], + "extends": "../../tsconfig.json", + "include": ["source/**/*.ts"] +} diff --git a/packages/items/turbo.json b/packages/items/turbo.json new file mode 100644 index 0000000..e085ed6 --- /dev/null +++ b/packages/items/turbo.json @@ -0,0 +1,5 @@ +{ + "$schema": "https://turbo.build/schema.v1.json", + "extends": ["//"], + "pipeline": {} +}