@ianlucas/cs2-lib 7.9.0 → 7.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/inventory.mjs +1 -1
- package/dist/items.mjs +1 -1
- package/dist/translations/brazilian.mjs +2 -2
- package/dist/translations/bulgarian.mjs +2 -2
- package/dist/translations/czech.mjs +1 -1
- package/dist/translations/danish.mjs +1 -1
- package/dist/translations/dutch.mjs +1 -1
- package/dist/translations/english.mjs +1 -1
- package/dist/translations/finnish.mjs +2 -2
- package/dist/translations/french.mjs +2 -2
- package/dist/translations/german.mjs +23 -23
- package/dist/translations/greek.mjs +1 -1
- package/dist/translations/hungarian.mjs +1 -1
- package/dist/translations/indonesian.mjs +24 -24
- package/dist/translations/italian.mjs +1 -1
- package/dist/translations/japanese.mjs +1 -1
- package/dist/translations/koreana.mjs +2 -2
- package/dist/translations/latam.mjs +2 -2
- package/dist/translations/norwegian.mjs +1 -1
- package/dist/translations/polish.mjs +2 -2
- package/dist/translations/portuguese.mjs +1 -1
- package/dist/translations/romanian.mjs +1 -1
- package/dist/translations/russian.mjs +2 -2
- package/dist/translations/schinese.mjs +2 -2
- package/dist/translations/spanish.mjs +2 -2
- package/dist/translations/swedish.mjs +2 -2
- package/dist/translations/tchinese.mjs +2 -2
- package/dist/translations/thai.mjs +4 -4
- package/dist/translations/turkish.mjs +1 -1
- package/dist/translations/ukrainian.mjs +2 -2
- package/dist/translations/vietnamese.mjs +1 -1
- package/dist/veto.mjs +1 -1
- package/package.json +11 -11
package/dist/inventory.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{CS2ItemType as e}from"./economy-types.mjs";import{CS2Team as t}from"./teams.mjs";import{CS2_MAX_KEYCHAINS as n,CS2_MAX_KEYCHAIN_SEED as r,CS2_MAX_PATCHES as i,CS2_MAX_STATTRAK as a,CS2_MAX_STICKERS as o,CS2_MAX_STICKER_ROTATION as s,CS2_MAX_STICKER_WEAR as c,CS2_MAX_WEAR as l,CS2_MIN_KEYCHAIN_SEED as u,CS2_MIN_STICKER_WEAR as d,CS2_MIN_WEAR as f,CS2_STICKER_WEAR_FACTOR as p}from"./economy-constants.mjs";import{assert as m,ensure as h,float as g}from"./utils.mjs";import{CS2Economy as _,CS2EconomyItem as v}from"./economy.mjs";import{resolveInventoryData as y}from"./inventory-upgrader.mjs";const b=1,x=1707696138408,S=[e.Agent,e.Collectible,e.Gloves,e.Graffiti,e.Melee,e.MusicKit,e.Weapon];function C(){return Math.ceil((Date.now()-x)/1e3)}function w(e){let t=0;for(;;){if(!e.has(t))return t;t++}}var T=class e{economy;items;options;static parse(e,t){return y(e??void 0,t)}constructor({economy:e,data:t,maxItems:n,storageUnitMaxItems:r}={}){this.economy=e??_,this.items=t===void 0?new Map:this.toInventoryItems(t.items),this.options={maxItems:n??256,storageUnitMaxItems:r??32}}validateAddable(e){e.isGloves()&&m(e.free||!e.base)}validateStickers(e,t){if(e===void 0)return;let n=Object.entries(e);m(n.length<=o),m(t===void 0||t.hasStickers());for(let[e,{id:t,wear:r,rotation:i,x:a,y:l}]of n){let n=parseInt(e,10);m(n>=0&&n<=o-1),this.economy.getById(t).expectSticker(),r!==void 0&&(m(Number.isFinite(r)),m(String(r).length<=String(p).length),m(r>=d&&r<=c)),i!==void 0&&(m(Number.isFinite(i)),m(Number.isInteger(i)),m(String(i).length<=String(s).length)),a!==void 0&&m(Number.isFinite(a)),l!==void 0&&m(Number.isFinite(l))}}validateKeychains(e,t){if(e===void 0)return;let i=Object.entries(e);m(i.length<=n),m(t===void 0||t.hasKeychains());for(let[e,{id:t,seed:a,x:o,y:s}]of i){let i=parseInt(e,10);m(i>=0&&i<=n-1),this.economy.getById(t).expectKeychain(),a!==void 0&&(m(Number.isFinite(a)),m(Number.isInteger(a)),m(a>=u&&a<=r)),o!==void 0&&m(Number.isFinite(o)),s!==void 0&&m(Number.isFinite(s))}}validatePatches(e,t){if(e!==void 0){m(t===void 0||t.isAgent());for(let[t,n]of Object.entries(e)){let e=parseInt(t,10);m(e>=0&&e<=i-1),m(n===void 0||this.economy.getById(n).isPatch())}}}removeInvalidItemReferences(e){if(e.patches!==void 0)for(let[t,n]of Object.entries(e.patches))this.economy.items.has(n)||delete e.patches[t];if(e.stickers!==void 0)for(let[t,n]of Object.entries(e.stickers))this.economy.items.has(n.id)||delete e.stickers[t]}validateBaseInventoryItem({id:e,keychains:t,nameTag:n,patches:r,seed:i,statTrak:a,stickers:o,wear:s}){let c=this.economy.getById(e);this.economy.validateWear(s,c),this.economy.validateSeed(i,c),this.economy.validateNametag(n,c),this.economy.validateStatTrak(a,c),this.validateAddable(c),this.validatePatches(r,c),this.validateStickers(o,c),this.validateKeychains(t,c)}toInventoryItems(e){return new Map(Object.entries(e).filter(([,{id:e}])=>this.economy.items.has(e)).map(([e,t])=>{this.removeInvalidItemReferences(t);let n=parseInt(e,10);return[n,new E(this,n,t,this.economy.getById(t.id))]}))}toBaseInventoryItems(e){return Object.fromEntries(Array.from(e).map(([e,t])=>[e,t.asBase()]))}stringify(){return JSON.stringify(this.getData())}isFull(){return this.items.size>=this.options.maxItems}add(e){m(!this.isFull());let t=w(this.items),n=this.economy.getById(e.id);return m(!n.isStub()),this.items.set(t,new E(this,t,Object.assign(e,{equipped:void 0,equippedCT:void 0,equippedT:void 0,updatedAt:C()}),n)),this}addInventoryItem(e){m(!this.isFull());let t=w(this.items);return e.equipped=void 0,e.equippedCT=void 0,e.equippedT=void 0,e.uid=t,e.updatedAt=C(),this.items.set(t,e),this}addWithNametag(e,t,n){return this.get(e).expectNameTag(),this.economy.requireNametag(n),this.items.delete(e),this.add({id:t,nameTag:n}),this}addWithSticker(e,t,n){let r=this.get(e).expectSticker();return this.items.delete(e),this.add({id:t,stickers:{[n]:{id:r.id}}}),this}edit(e,t){let n=this.get(e);return m(t.id===void 0||t.id===n.id),n.edit(t,{updatedAt:C()}),this}equip(e,n){let r=this.get(e);m(r.equipped===void 0),m(n!==t.CT||r.equippedCT===void 0),m(n!==t.T||r.equippedT===void 0),m(S.includes(r.type)),m(n===void 0||r.teams?.includes(n)),m(n!==void 0||r.teams===void 0);for(let[i,a]of this.items)e===i?(a.equipped=n===void 0?!0:void 0,a.equippedCT=n===t.CT?!0:a.equippedCT,a.equippedT=n===t.T?!0:a.equippedT):a.type===r.type&&(!r.isWeapon()||a.model===r.model)&&(a.equipped=n===void 0?void 0:a.equipped,a.equippedCT=n===t.CT?void 0:a.equippedCT,a.equippedT=n===t.T?void 0:a.equippedT);return this}unequip(e,n){let r=this.get(e);return r.equipped=n===void 0?void 0:r.equipped,r.equippedCT=n===t.CT?void 0:r.equippedCT,r.equippedT=n===t.T?void 0:r.equippedT,this}unlockContainer(e,t,n){let r=this.get(t);this.economy.validateUnlockedItem(r,e);let i=n===void 0?void 0:this.get(n);return this.economy.validateContainerAndKey(r,i),this.items.delete(t),n!==void 0&&this.items.delete(n),this.add({...e.attributes,id:e.id,updatedAt:C()}),this}renameItem(e,t,n){n=this.economy.trimNametag(n),this.get(e).expectNameTag();let r=this.get(t);return this.economy.validateNametag(n,r),r.nameTag=n,r.updatedAt=C(),this.items.delete(e),this}renameStorageUnit(e,t){let n=this.economy.trimNametag(t),r=this.get(e);return r.expectStorageUnit(),this.economy.requireNametag(n),r.nameTag=n,r.updatedAt=C(),this}isStorageUnitFull(e){return this.get(e).storage?.size===this.options.storageUnitMaxItems}getStorageUnitSize(e){return this.get(e).storage?.size??0}isStorageUnitFilled(e){return this.getStorageUnitSize(e)>0}canDepositToStorageUnit(e,t=1){return this.get(e).nameTag!==void 0&&this.getStorageUnitSize(e)+t<=this.options.storageUnitMaxItems}canRetrieveFromStorageUnit(e,t=1){return this.getStorageUnitSize(e)-t>=0&&this.size()+t<=this.options.maxItems}getStorageUnitItems(e){return Array.from(this.get(e).storage?.values()??[])}depositToStorageUnit(e,t){let n=this.get(e);n.expectStorageUnit(),m(t.length>0),m(this.canDepositToStorageUnit(e,t.length));for(let e of t)m(!this.get(e).isStorageUnit());let r=n.storage??new Map;for(let e of t){let t=w(r);r.set(t,Object.assign(this.get(e),{equipped:void 0,equippedCT:void 0,equippedT:void 0,uid:t})),this.items.delete(e)}return n.storage=r,n.updatedAt=C(),this}retrieveFromStorageUnit(e,t){let n=this.get(e);n.expectStorageUnit();let r=n.storage;m(r!==void 0),m(t.length>0),m(this.canRetrieveFromStorageUnit(e,t.length));for(let e of t)m(r.has(e));for(let e of t){let t=h(r.get(e));this.addInventoryItem(t),r.delete(e)}return n.storage=r.size>0?r:void 0,n.updatedAt=C(),this}applyItemSticker(e,t,n){m(n>=0&&n<=o-1);let r=this.get(e),i=this.get(t);return m(r.hasStickers()),i.expectSticker(),r.stickers??=new Map,m(r.stickers.get(n)===void 0),r.stickers.set(n,{id:i.id}),r.updatedAt=C(),this.items.delete(t),this}scrapeItemSticker(e,t){let n=this.get(e);m(n.stickers!==void 0);let r=h(n.stickers.get(t)),i=r.wear??0,a=g(i+p);return a>l?(n.stickers.delete(t),n.stickers.size===0&&(n.stickers=void 0),this):(r.wear=a,n.updatedAt=C(),this)}applyItemPatch(e,t,n){m(n>=0&&n<=i-1);let r=this.get(e).expectAgent(),a=this.get(t).expectPatch();return r.patches??=new Map,m(r.patches.get(n)===void 0),r.patches.set(n,a.id),r.updatedAt=C(),this.items.delete(t),this}removeItemPatch(e,t){let n=this.get(e);return m(n.patches!==void 0),m(n.patches.get(t)!==void 0),n.patches.delete(t),n.patches.size===0&&(n.patches=void 0),n.updatedAt=C(),this}incrementItemStatTrak(e){let t=this.get(e);return m(t.statTrak!==void 0),t.statTrak<a&&(t.statTrak++,t.updatedAt=C()),this}swapItemsStatTrak(e,t,n){m(t!==n),this.get(e).expectStatTrakSwapTool();let r=this.get(t),i=this.get(n);m(r.statTrak!==void 0&&i.statTrak!==void 0),m(r.type===i.type),m(r.isMusicKit()||r.def===i.def);let a=r.statTrak;return r.statTrak=i.statTrak,r.updatedAt=C(),i.statTrak=a,i.updatedAt=C(),this.items.delete(e),this}remove(e){return this.items.delete(e),this}removeAll(){return this.items.clear(),this}get(e){return h(this.items.get(e))}getAll(){return Array.from(this.items.values())}getAllAsBase(){return Object.values(this.toBaseInventoryItems(this.items))}setAll(e){return this.items=e,this}getData(){return{items:this.toBaseInventoryItems(this.items),version:1}}size(){return this.items.size}move(t={}){return new e({...this.options,economy:this.economy,...t}).setAll(this.items)}},E=class e extends v{containerId;equipped;equippedCT;equippedT;keychains;nameTag;patches;seed;statTrak;stickers;storage;updatedAt;wear;assign({keychains:t,patches:n,stickers:r,storage:i}){n!==void 0&&(this.patches=new Map(Object.entries(n).filter(([,e])=>this.economy.items.has(e)).map(([e,t])=>[parseInt(e,10),t]))),r!==void 0&&(this.stickers=new Map(Object.entries(r).filter(([,{id:e}])=>this.economy.items.has(e)).map(([e,t])=>[parseInt(e,10),t]))),t!==void 0&&(this.keychains=new Map(Object.entries(t).filter(([,{id:e}])=>this.economy.items.has(e)).map(([e,t])=>[parseInt(e,10),t]))),i!==void 0&&(m(this.isStorageUnit()),this.storage=new Map(Object.entries(i).filter(([,{id:e}])=>this.economy.items.has(e)).map(([t,n])=>{this.inventory.removeInvalidItemReferences(n);let r=this.economy.getById(n.id);m(n.storage===void 0);let i=parseInt(t,10);return[i,new e(this.inventory,i,n,r)]})))}constructor(e,t,n,{economy:r,item:i,language:a}){super(r,i,a),this.inventory=e,this.uid=t,e.validateBaseInventoryItem(n),Object.assign(this,n),this.assign(n)}edit(...e){for(let t of e)Object.assign(this,t),this.assign(t)}allStickers(){let e=[];for(let t=0;t<o;t++){let n=this.stickers?.get(t);e.push([t,n])}return e}someStickers(){return this.allStickers().filter(e=>e[1]!==void 0)}getStickersCount(){return this.stickers?.size??0}allKeychains(){let e=[];for(let t=0;t<n;t++){let n=this.keychains?.get(t);e.push([t,n])}return e}someKeychains(){return this.allKeychains().filter(e=>e[1]!==void 0)}getKeychainsCount(){return this.keychains?.size??0}allPatches(){let e=[];for(let t=0;t<i;t++){let n=this.patches?.get(t);e.push([t,n])}return e}somePatches(){return this.allPatches().filter(e=>e[1]!==void 0)}getPatchesCount(){return this.patches?.size??0}getWear(){return this.wear??this.wearMin??f}getStickerWear(e){return this.stickers?.get(e)?.wear??d}getKeychainSeed(e){return this.keychains?.get(e)?.seed??u}getImage(e){return super.getImage(e??this.getWear())}asBase(){return{containerId:this.containerId,equipped:this.equipped,equippedCT:this.equippedCT,equippedT:this.equippedT,id:this.id,keychains:this.keychains===void 0?void 0:Object.fromEntries(this.keychains),nameTag:this.nameTag,patches:this.patches===void 0?void 0:Object.fromEntries(this.patches),seed:this.seed,statTrak:this.statTrak,stickers:this.stickers===void 0?void 0:Object.fromEntries(this.stickers),storage:this.storage===void 0?void 0:Object.fromEntries(Array.from(this.storage).map(([e,t])=>[e,t.asBase()])),updatedAt:this.updatedAt,wear:this.wear}}};export{T as CS2Inventory,E as CS2InventoryItem,S as CS2_INVENTORY_EQUIPPABLE_ITEMS,x as CS2_INVENTORY_TIMESTAMP,b as CS2_INVENTORY_VERSION,w as getNextUid,C as getTimestamp};
|
|
1
|
+
import{CS2ItemType as e}from"./economy-types.mjs";import{CS2Team as t}from"./teams.mjs";import{CS2_MAX_KEYCHAINS as n,CS2_MAX_KEYCHAIN_SEED as r,CS2_MAX_PATCHES as i,CS2_MAX_STATTRAK as a,CS2_MAX_STICKERS as o,CS2_MAX_STICKER_ROTATION as s,CS2_MAX_STICKER_WEAR as c,CS2_MAX_WEAR as l,CS2_MIN_KEYCHAIN_SEED as u,CS2_MIN_STICKER_WEAR as d,CS2_MIN_WEAR as f,CS2_STICKER_WEAR_FACTOR as p}from"./economy-constants.mjs";import{assert as m,ensure as h,float as g}from"./utils.mjs";import{CS2Economy as _,CS2EconomyItem as v}from"./economy.mjs";import{resolveInventoryData as y}from"./inventory-upgrader.mjs";const b=1,x=1707696138408,S=[e.Agent,e.Collectible,e.Gloves,e.Graffiti,e.Melee,e.MusicKit,e.Weapon];function C(){return Math.ceil((Date.now()-x)/1e3)}function w(e){let t=0;for(;;){if(!e.has(t))return t;t++}}var T=class e{economy;items;options;static parse(e,t){return y(e??void 0,t)}constructor({economy:e,data:t,maxItems:n,storageUnitMaxItems:r}={}){this.economy=e??_,this.items=t===void 0?new Map:this.toInventoryItems(t.items),this.options={maxItems:n??256,storageUnitMaxItems:r??32}}validateAddable(e){e.isGloves()&&m(e.free||!e.base)}validateStickers(e,t){if(e===void 0)return;let n=Object.entries(e);m(n.length<=o),m(t===void 0||t.hasStickers());for(let[e,{id:t,wear:r,rotation:i,x:a,y:l}]of n){let n=parseInt(e,10);m(n>=0&&n<=o-1),this.economy.getById(t).expectSticker(),r!==void 0&&(m(Number.isFinite(r)),m(String(r).length<=String(p).length),m(r>=d&&r<=c)),i!==void 0&&(m(Number.isFinite(i)),m(Number.isInteger(i)),m(String(i).length<=String(s).length)),a!==void 0&&m(Number.isFinite(a)),l!==void 0&&m(Number.isFinite(l))}}validateKeychains(e,t){if(e===void 0)return;let i=Object.entries(e);m(i.length<=n),m(t===void 0||t.hasKeychains());for(let[e,{id:t,seed:a,x:o,y:s}]of i){let i=parseInt(e,10);m(i>=0&&i<=n-1),this.economy.getById(t).expectKeychain(),a!==void 0&&(m(Number.isFinite(a)),m(Number.isInteger(a)),m(a>=u&&a<=r)),o!==void 0&&m(Number.isFinite(o)),s!==void 0&&m(Number.isFinite(s))}}validatePatches(e,t){if(e!==void 0){m(t===void 0||t.isAgent());for(let[t,n]of Object.entries(e)){let e=parseInt(t,10);m(e>=0&&e<=i-1),m(n===void 0||this.economy.getById(n).isPatch())}}}removeInvalidItemReferences(e){if(e.patches!==void 0)for(let[t,n]of Object.entries(e.patches))this.economy.items.has(n)||delete e.patches[t];if(e.stickers!==void 0)for(let[t,n]of Object.entries(e.stickers))this.economy.items.has(n.id)||delete e.stickers[t]}validateBaseInventoryItem({id:e,keychains:t,nameTag:n,patches:r,seed:i,statTrak:a,stickers:o,wear:s}){let c=this.economy.getById(e);this.economy.validateWear(s,c),this.economy.validateSeed(i,c),this.economy.validateNametag(n,c),this.economy.validateStatTrak(a,c),this.validateAddable(c),this.validatePatches(r,c),this.validateStickers(o,c),this.validateKeychains(t,c)}toInventoryItems(e){return new Map(Object.entries(e).filter(([,{id:e}])=>this.economy.items.has(e)).map(([e,t])=>{this.removeInvalidItemReferences(t);let n=parseInt(e,10);return[n,new E(this,n,t,this.economy.getById(t.id))]}))}toBaseInventoryItems(e){return Object.fromEntries(Array.from(e).map(([e,t])=>[e,t.asBase()]))}stringify(){return JSON.stringify(this.getData())}isFull(){return this.items.size>=this.options.maxItems}add(e){m(!this.isFull());let t=w(this.items),n=this.economy.getById(e.id);return m(!n.isStub()),this.items.set(t,new E(this,t,Object.assign(e,{equipped:void 0,equippedCT:void 0,equippedT:void 0,updatedAt:C()}),n)),this}addInventoryItem(e){m(!this.isFull());let t=w(this.items);return e.equipped=void 0,e.equippedCT=void 0,e.equippedT=void 0,e.uid=t,e.updatedAt=C(),this.items.set(t,e),this}addWithNametag(e,t,n){return this.get(e).expectNameTag(),this.economy.requireNametag(n),this.items.delete(e),this.add({id:t,nameTag:n}),this}addWithSticker(e,t,n){let r=this.get(e).expectSticker();return this.items.delete(e),this.add({id:t,stickers:{[n]:{id:r.id}}}),this}edit(e,t){let n=this.get(e);return m(t.id===void 0||t.id===n.id),n.edit(t,{updatedAt:C()}),this}equip(e,n){let r=this.get(e);m(r.equipped===void 0),m(n!==t.CT||r.equippedCT===void 0),m(n!==t.T||r.equippedT===void 0),m(S.includes(r.type)),m(n===void 0||r.teams?.includes(n)),m(n!==void 0||r.teams===void 0);for(let[i,a]of this.items)e===i?(a.equipped=n===void 0?!0:void 0,a.equippedCT=n===t.CT?!0:a.equippedCT,a.equippedT=n===t.T?!0:a.equippedT):a.type===r.type&&(!r.isWeapon()||a.model===r.model)&&(a.equipped=n===void 0?void 0:a.equipped,a.equippedCT=n===t.CT?void 0:a.equippedCT,a.equippedT=n===t.T?void 0:a.equippedT);return this}unequip(e,n){let r=this.get(e);return r.equipped=n===void 0?void 0:r.equipped,r.equippedCT=n===t.CT?void 0:r.equippedCT,r.equippedT=n===t.T?void 0:r.equippedT,this}unlockContainer(e,t,n){let r=this.get(t);this.economy.validateUnlockedItem(r,e);let i=n===void 0?void 0:this.get(n);return this.economy.validateContainerAndKey(r,i),this.items.delete(t),n!==void 0&&this.items.delete(n),this.add({...e.attributes,id:e.id,updatedAt:C()}),this}renameItem(e,t,n){n=this.economy.trimNametag(n),this.get(e).expectNameTag();let r=this.get(t);return this.economy.validateNametag(n,r),r.nameTag=n,r.updatedAt=C(),this.items.delete(e),this}renameStorageUnit(e,t){let n=this.economy.trimNametag(t),r=this.get(e);return r.expectStorageUnit(),this.economy.requireNametag(n),r.nameTag=n,r.updatedAt=C(),this}isStorageUnitFull(e){return this.get(e).storage?.size===this.options.storageUnitMaxItems}getStorageUnitSize(e){return this.get(e).storage?.size??0}isStorageUnitFilled(e){return this.getStorageUnitSize(e)>0}canDepositToStorageUnit(e,t=1){return this.get(e).nameTag!==void 0&&this.getStorageUnitSize(e)+t<=this.options.storageUnitMaxItems}canRetrieveFromStorageUnit(e,t=1){return this.getStorageUnitSize(e)-t>=0&&this.size()+t<=this.options.maxItems}getStorageUnitItems(e){return Array.from(this.get(e).storage?.values()??[])}depositToStorageUnit(e,t){let n=this.get(e);n.expectStorageUnit(),m(t.length>0),m(this.canDepositToStorageUnit(e,t.length));for(let e of t)m(!this.get(e).isStorageUnit());let r=n.storage??new Map;for(let e of t){let t=w(r);r.set(t,Object.assign(this.get(e),{equipped:void 0,equippedCT:void 0,equippedT:void 0,uid:t})),this.items.delete(e)}return n.storage=r,n.updatedAt=C(),this}retrieveFromStorageUnit(e,t){let n=this.get(e);n.expectStorageUnit();let r=n.storage;m(r!==void 0),m(t.length>0),m(this.canRetrieveFromStorageUnit(e,t.length));for(let e of t)m(r.has(e));for(let e of t){let t=h(r.get(e));this.addInventoryItem(t),r.delete(e)}return n.storage=r.size>0?r:void 0,n.updatedAt=C(),this}applyItemSticker(e,t,n){m(n>=0&&n<=o-1);let r=this.get(e),i=this.get(t);return m(r.hasStickers()),i.expectSticker(),r.stickers??=new Map,m(r.stickers.get(n)===void 0),r.stickers.set(n,{id:i.id}),r.updatedAt=C(),this.items.delete(t),this}scrapeItemSticker(e,t){let n=this.get(e);m(n.stickers!==void 0);let r=h(n.stickers.get(t)),i=g((r.wear??0)+p);return i>l?(n.stickers.delete(t),n.stickers.size===0&&(n.stickers=void 0),this):(r.wear=i,n.updatedAt=C(),this)}applyItemPatch(e,t,n){m(n>=0&&n<=i-1);let r=this.get(e).expectAgent(),a=this.get(t).expectPatch();return r.patches??=new Map,m(r.patches.get(n)===void 0),r.patches.set(n,a.id),r.updatedAt=C(),this.items.delete(t),this}removeItemPatch(e,t){let n=this.get(e);return m(n.patches!==void 0),m(n.patches.get(t)!==void 0),n.patches.delete(t),n.patches.size===0&&(n.patches=void 0),n.updatedAt=C(),this}incrementItemStatTrak(e){let t=this.get(e);return m(t.statTrak!==void 0),t.statTrak<a&&(t.statTrak++,t.updatedAt=C()),this}swapItemsStatTrak(e,t,n){m(t!==n),this.get(e).expectStatTrakSwapTool();let r=this.get(t),i=this.get(n);m(r.statTrak!==void 0&&i.statTrak!==void 0),m(r.type===i.type),m(r.isMusicKit()||r.def===i.def);let a=r.statTrak;return r.statTrak=i.statTrak,r.updatedAt=C(),i.statTrak=a,i.updatedAt=C(),this.items.delete(e),this}remove(e){return this.items.delete(e),this}removeAll(){return this.items.clear(),this}get(e){return h(this.items.get(e))}getAll(){return Array.from(this.items.values())}getAllAsBase(){return Object.values(this.toBaseInventoryItems(this.items))}setAll(e){return this.items=e,this}getData(){return{items:this.toBaseInventoryItems(this.items),version:1}}size(){return this.items.size}move(t={}){return new e({...this.options,economy:this.economy,...t}).setAll(this.items)}},E=class e extends v{containerId;equipped;equippedCT;equippedT;keychains;nameTag;patches;seed;statTrak;stickers;storage;updatedAt;wear;assign({keychains:t,patches:n,stickers:r,storage:i}){n!==void 0&&(this.patches=new Map(Object.entries(n).filter(([,e])=>this.economy.items.has(e)).map(([e,t])=>[parseInt(e,10),t]))),r!==void 0&&(this.stickers=new Map(Object.entries(r).filter(([,{id:e}])=>this.economy.items.has(e)).map(([e,t])=>[parseInt(e,10),t]))),t!==void 0&&(this.keychains=new Map(Object.entries(t).filter(([,{id:e}])=>this.economy.items.has(e)).map(([e,t])=>[parseInt(e,10),t]))),i!==void 0&&(m(this.isStorageUnit()),this.storage=new Map(Object.entries(i).filter(([,{id:e}])=>this.economy.items.has(e)).map(([t,n])=>{this.inventory.removeInvalidItemReferences(n);let r=this.economy.getById(n.id);m(n.storage===void 0);let i=parseInt(t,10);return[i,new e(this.inventory,i,n,r)]})))}constructor(e,t,n,{economy:r,item:i,language:a}){super(r,i,a),this.inventory=e,this.uid=t,e.validateBaseInventoryItem(n),Object.assign(this,n),this.assign(n)}edit(...e){for(let t of e)Object.assign(this,t),this.assign(t)}allStickers(){let e=[];for(let t=0;t<o;t++){let n=this.stickers?.get(t);e.push([t,n])}return e}someStickers(){return this.allStickers().filter(e=>e[1]!==void 0)}getStickersCount(){return this.stickers?.size??0}allKeychains(){let e=[];for(let t=0;t<n;t++){let n=this.keychains?.get(t);e.push([t,n])}return e}someKeychains(){return this.allKeychains().filter(e=>e[1]!==void 0)}getKeychainsCount(){return this.keychains?.size??0}allPatches(){let e=[];for(let t=0;t<i;t++){let n=this.patches?.get(t);e.push([t,n])}return e}somePatches(){return this.allPatches().filter(e=>e[1]!==void 0)}getPatchesCount(){return this.patches?.size??0}getWear(){return this.wear??this.wearMin??f}getStickerWear(e){return this.stickers?.get(e)?.wear??d}getKeychainSeed(e){return this.keychains?.get(e)?.seed??u}getImage(e){return super.getImage(e??this.getWear())}asBase(){return{containerId:this.containerId,equipped:this.equipped,equippedCT:this.equippedCT,equippedT:this.equippedT,id:this.id,keychains:this.keychains===void 0?void 0:Object.fromEntries(this.keychains),nameTag:this.nameTag,patches:this.patches===void 0?void 0:Object.fromEntries(this.patches),seed:this.seed,statTrak:this.statTrak,stickers:this.stickers===void 0?void 0:Object.fromEntries(this.stickers),storage:this.storage===void 0?void 0:Object.fromEntries(Array.from(this.storage).map(([e,t])=>[e,t.asBase()])),updatedAt:this.updatedAt,wear:this.wear}}};export{T as CS2Inventory,E as CS2InventoryItem,S as CS2_INVENTORY_EQUIPPABLE_ITEMS,x as CS2_INVENTORY_TIMESTAMP,b as CS2_INVENTORY_VERSION,w as getNextUid,C as getTimestamp};
|