@schedule1-tools/mixer 0.2.2 → 0.2.4

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.
Files changed (50) hide show
  1. package/README.md +112 -46
  2. package/dist/bitmaps.d.ts +9 -0
  3. package/dist/bitmaps.d.ts.map +1 -0
  4. package/dist/bitmaps.js +45 -0
  5. package/dist/bitmaps.js.map +1 -0
  6. package/dist/core/effectSet.d.ts +1 -27
  7. package/dist/core/effectSet.d.ts.map +1 -0
  8. package/dist/core/effectSet.js +1 -27
  9. package/dist/core/effectSet.js.map +1 -0
  10. package/dist/core/mixer.d.ts +1 -11
  11. package/dist/core/mixer.d.ts.map +1 -0
  12. package/dist/core/mixer.js +6 -71
  13. package/dist/core/mixer.js.map +1 -0
  14. package/dist/core/reverse.d.ts +3 -0
  15. package/dist/core/reverse.d.ts.map +1 -0
  16. package/dist/core/reverse.js +89 -0
  17. package/dist/core/reverse.js.map +1 -0
  18. package/dist/data/effects.d.ts +3 -0
  19. package/dist/data/effects.d.ts.map +1 -0
  20. package/dist/data/effects.js +159 -148
  21. package/dist/data/effects.js.map +1 -0
  22. package/dist/data/products.d.ts +1 -0
  23. package/dist/data/products.d.ts.map +1 -0
  24. package/dist/data/products.js +3 -0
  25. package/dist/data/products.js.map +1 -0
  26. package/dist/data/rules.d.ts +1 -0
  27. package/dist/data/rules.d.ts.map +1 -0
  28. package/dist/data/rules.js +2 -2
  29. package/dist/data/rules.js.map +1 -0
  30. package/dist/data/substances.d.ts +1 -0
  31. package/dist/data/substances.d.ts.map +1 -0
  32. package/dist/data/substances.js +2 -1
  33. package/dist/data/substances.js.map +1 -0
  34. package/dist/index.d.ts +2 -1
  35. package/dist/index.d.ts.map +1 -0
  36. package/dist/index.js +6 -6
  37. package/dist/index.js.map +1 -0
  38. package/dist/maskRules.d.ts +8 -0
  39. package/dist/maskRules.d.ts.map +1 -0
  40. package/dist/maskRules.js +18 -0
  41. package/dist/maskRules.js.map +1 -0
  42. package/dist/types.d.ts +3 -1
  43. package/dist/types.d.ts.map +1 -0
  44. package/dist/types.js +1 -0
  45. package/dist/types.js.map +1 -0
  46. package/dist/utils/encoding.d.ts +2 -11
  47. package/dist/utils/encoding.d.ts.map +1 -0
  48. package/dist/utils/encoding.js +39 -21
  49. package/dist/utils/encoding.js.map +1 -0
  50. package/package.json +4 -1
package/dist/index.d.ts CHANGED
@@ -1,7 +1,8 @@
1
+ export { encodeMixState, decodeMixState, migrateMixHash } from './utils/encoding';
1
2
  export { mixSubstances, mixFromHash } from './core/mixer';
2
- export { encodeMixState, decodeMixState } from './utils/encoding';
3
3
  export { effects } from './data/effects';
4
4
  export { products, productAbbreviations } from './data/products';
5
5
  export { substances } from './data/substances';
6
6
  export { effectRulesBySubstance } from './data/rules';
7
7
  export type { EffectCode, Substance, Product, RankCode, EffectData, SubstanceData, ProductData, EffectRule, MixResult, MixState, } from './types';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClF,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE1D,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAEtD,YAAY,EACV,UAAU,EACV,SAAS,EACT,OAAO,EACP,QAAQ,EACR,UAAU,EACV,aAAa,EACb,WAAW,EACX,UAAU,EACV,SAAS,EACT,QAAQ,GACT,MAAM,SAAS,CAAC"}
package/dist/index.js CHANGED
@@ -1,14 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.effectRulesBySubstance = exports.substances = exports.productAbbreviations = exports.products = exports.effects = exports.decodeMixState = exports.encodeMixState = exports.mixFromHash = exports.mixSubstances = void 0;
4
- // Main exports
5
- var mixer_1 = require("./core/mixer");
6
- Object.defineProperty(exports, "mixSubstances", { enumerable: true, get: function () { return mixer_1.mixSubstances; } });
7
- Object.defineProperty(exports, "mixFromHash", { enumerable: true, get: function () { return mixer_1.mixFromHash; } });
3
+ exports.effectRulesBySubstance = exports.substances = exports.productAbbreviations = exports.products = exports.effects = exports.mixFromHash = exports.mixSubstances = exports.migrateMixHash = exports.decodeMixState = exports.encodeMixState = void 0;
8
4
  var encoding_1 = require("./utils/encoding");
9
5
  Object.defineProperty(exports, "encodeMixState", { enumerable: true, get: function () { return encoding_1.encodeMixState; } });
10
6
  Object.defineProperty(exports, "decodeMixState", { enumerable: true, get: function () { return encoding_1.decodeMixState; } });
11
- // Data exports
7
+ Object.defineProperty(exports, "migrateMixHash", { enumerable: true, get: function () { return encoding_1.migrateMixHash; } });
8
+ var mixer_1 = require("./core/mixer");
9
+ Object.defineProperty(exports, "mixSubstances", { enumerable: true, get: function () { return mixer_1.mixSubstances; } });
10
+ Object.defineProperty(exports, "mixFromHash", { enumerable: true, get: function () { return mixer_1.mixFromHash; } });
12
11
  var effects_1 = require("./data/effects");
13
12
  Object.defineProperty(exports, "effects", { enumerable: true, get: function () { return effects_1.effects; } });
14
13
  var products_1 = require("./data/products");
@@ -18,3 +17,4 @@ var substances_1 = require("./data/substances");
18
17
  Object.defineProperty(exports, "substances", { enumerable: true, get: function () { return substances_1.substances; } });
19
18
  var rules_1 = require("./data/rules");
20
19
  Object.defineProperty(exports, "effectRulesBySubstance", { enumerable: true, get: function () { return rules_1.effectRulesBySubstance; } });
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,6CAAkF;AAAzE,0GAAA,cAAc,OAAA;AAAE,0GAAA,cAAc,OAAA;AAAE,0GAAA,cAAc,OAAA;AACvD,sCAA0D;AAAjD,sGAAA,aAAa,OAAA;AAAE,oGAAA,WAAW,OAAA;AAEnC,0CAAyC;AAAhC,kGAAA,OAAO,OAAA;AAChB,4CAAiE;AAAxD,oGAAA,QAAQ,OAAA;AAAE,gHAAA,oBAAoB,OAAA;AACvC,gDAA+C;AAAtC,wGAAA,UAAU,OAAA;AACnB,sCAAsD;AAA7C,+GAAA,sBAAsB,OAAA"}
@@ -0,0 +1,8 @@
1
+ type MaskRule = {
2
+ ifPresentMask: bigint;
3
+ ifNotPresentMask: bigint;
4
+ replaceMask: Array<[bigint, bigint]>;
5
+ };
6
+ export declare const maskRulesBySubstance: Record<string, MaskRule[]>;
7
+ export {};
8
+ //# sourceMappingURL=maskRules.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"maskRules.d.ts","sourceRoot":"","sources":["../src/maskRules.ts"],"names":[],"mappings":"AAMA,KAAK,QAAQ,GAAG;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACtC,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,CAa7B,CAAC"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.maskRulesBySubstance = void 0;
4
+ const bitmaps_1 = require("./bitmaps");
5
+ const rules_1 = require("./data/rules");
6
+ exports.maskRulesBySubstance = Object.fromEntries(Object.entries(rules_1.effectRulesBySubstance).map(([sub, rules]) => [
7
+ sub,
8
+ rules.map((r) => {
9
+ const ip = r.ifPresent.reduce((m, e) => m | bitmaps_1.codeToBit[e], BigInt(0));
10
+ const inot = r.ifNotPresent.reduce((m, e) => m | bitmaps_1.codeToBit[e], BigInt(0));
11
+ const rep = [];
12
+ for (const [oldE, newE] of Object.entries(r.replace)) {
13
+ rep.push([bitmaps_1.codeToBit[oldE], bitmaps_1.codeToBit[newE]]);
14
+ }
15
+ return { ifPresentMask: ip, ifNotPresentMask: inot, replaceMask: rep };
16
+ }),
17
+ ]));
18
+ //# sourceMappingURL=maskRules.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"maskRules.js","sourceRoot":"","sources":["../src/maskRules.ts"],"names":[],"mappings":";;;AAGA,uCAAsC;AACtC,wCAAsD;AAQzC,QAAA,oBAAoB,GAA+B,MAAM,CAAC,WAAW,CAChF,MAAM,CAAC,OAAO,CAAC,8BAAsB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;IAC3D,GAAG;IACH,KAAK,CAAC,GAAG,CAAC,CAAC,CAAa,EAAE,EAAE;QAC1B,MAAM,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,mBAAS,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACrE,MAAM,IAAI,GAAG,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,mBAAS,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1E,MAAM,GAAG,GAA4B,EAAE,CAAC;QACxC,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAA+B,EAAE,CAAC;YACnF,GAAG,CAAC,IAAI,CAAC,CAAC,mBAAS,CAAC,IAAI,CAAC,EAAE,mBAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC/C,CAAC;QACD,OAAO,EAAE,aAAa,EAAE,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC;IACzE,CAAC,CAAC;CACH,CAAC,CAC2B,CAAC"}
package/dist/types.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export type EffectCode = 'Ag' | 'At' | 'Ba' | 'Be' | 'Ca' | 'Cd' | 'Cy' | 'Di' | 'El' | 'En' | 'Eu' | 'Ex' | 'Fc' | 'Fo' | 'Gi' | 'Gl' | 'Je' | 'La' | 'Lf' | 'Mu' | 'Pa' | 'Re' | 'Sc' | 'Se' | 'Sh' | 'Si' | 'Sl' | 'Sm' | 'Sn' | 'Sp' | 'To' | 'Tp' | 'Tt' | 'Zo';
2
- export type Substance = 'Cuke' | 'Flu Medicine' | 'Gasoline' | 'Donut' | 'Energy Drink' | 'Mouth Wash' | 'Motor Oil' | 'Banana' | 'Chili' | 'Iodine' | 'Paracetamol' | 'Viagra' | 'Horse Semen' | 'Mega Bean' | 'Addy' | 'Battery';
2
+ export type Substance = 'Cuke' | 'Flu Medicine' | 'Gasoline' | 'Donut' | 'Energy Drink' | 'Mouth Wash' | 'Motor Oil' | 'Banana' | 'Chili' | 'Iodine' | 'Paracetamol' | 'Viagor' | 'Horse Semen' | 'Mega Bean' | 'Addy' | 'Battery';
3
3
  export type Product = 'OG Kush' | 'Sour Diesel' | 'Green Crack' | 'Grandaddy Purple' | 'Meth' | 'Cocaine';
4
4
  export type RankCode = '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | '10' | '11' | '12' | '13';
5
5
  export interface EffectData {
@@ -20,6 +20,7 @@ export interface ProductData {
20
20
  price: number;
21
21
  effects: EffectCode[];
22
22
  abbreviation: string;
23
+ addiction?: number;
23
24
  }
24
25
  export interface EffectRule {
25
26
  ifPresent: EffectCode[];
@@ -38,3 +39,4 @@ export interface MixState {
38
39
  product: Product;
39
40
  substances: Substance[];
40
41
  }
42
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAClB,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,CAAC;AAET,MAAM,MAAM,SAAS,GACjB,MAAM,GACN,cAAc,GACd,UAAU,GACV,OAAO,GACP,cAAc,GACd,YAAY,GACZ,WAAW,GACX,QAAQ,GACR,OAAO,GACP,QAAQ,GACR,aAAa,GACb,QAAQ,GACR,aAAa,GACb,WAAW,GACX,MAAM,GACN,SAAS,CAAC;AAEd,MAAM,MAAM,OAAO,GACf,SAAS,GACT,aAAa,GACb,aAAa,GACb,kBAAkB,GAClB,MAAM,GACN,SAAS,CAAC;AAEd,MAAM,MAAM,QAAQ,GAChB,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,CAAC;AAET,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,UAAU,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,UAAU,EAAE,CAAC;IACxB,YAAY,EAAE,UAAU,EAAE,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;CAClD;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,SAAS,EAAE,CAAC;CACzB"}
package/dist/types.js CHANGED
@@ -1,2 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
@@ -1,14 +1,5 @@
1
1
  import type { MixState } from '../types';
2
- /**
3
- * Encode a mix state into a URL-safe string
4
- * @param state - The mix state to encode
5
- * @returns The URL-safe string
6
- * @throws Error if the product type or any substance code is invalid
7
- */
8
2
  export declare function encodeMixState(state: MixState): string;
9
- /**
10
- * Decode a mix state from a URL-safe string
11
- * @param hash - The URL-safe string to decode
12
- * @returns The decoded MixState or null if invalid
13
- */
14
3
  export declare function decodeMixState(hash: string): MixState | null;
4
+ export declare function migrateMixHash(legacyHash: string): Promise<string | null>;
5
+ //# sourceMappingURL=encoding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encoding.d.ts","sourceRoot":"","sources":["../../src/utils/encoding.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAsB,MAAM,UAAU,CAAC;AAa7D,wBAAgB,cAAc,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAqBtD;AAOD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAyC5D;AAOD,wBAAsB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAmC/E"}
@@ -1,15 +1,14 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.encodeMixState = encodeMixState;
4
7
  exports.decodeMixState = decodeMixState;
8
+ exports.migrateMixHash = migrateMixHash;
9
+ const lz_string_1 = __importDefault(require("lz-string"));
5
10
  const products_1 = require("../data/products");
6
11
  const substances_1 = require("../data/substances");
7
- /**
8
- * Encode a mix state into a URL-safe string
9
- * @param state - The mix state to encode
10
- * @returns The URL-safe string
11
- * @throws Error if the product type or any substance code is invalid
12
- */
13
12
  function encodeMixState(state) {
14
13
  if (!products_1.products[state.product]) {
15
14
  throw new Error(`Invalid product type: ${state.product}`);
@@ -29,11 +28,6 @@ function encodeMixState(state) {
29
28
  const encoded = `${state.product}:${abbreviatedSubstances.join('')}`;
30
29
  return toBase64Url(encoded);
31
30
  }
32
- /**
33
- * Decode a mix state from a URL-safe string
34
- * @param hash - The URL-safe string to decode
35
- * @returns The decoded MixState or null if invalid
36
- */
37
31
  function decodeMixState(hash) {
38
32
  if (!hash || typeof hash !== 'string') {
39
33
  return null;
@@ -68,11 +62,39 @@ function decodeMixState(hash) {
68
62
  return null;
69
63
  }
70
64
  }
71
- /**
72
- * Convert a string to a URL-safe base64 string
73
- * @param str - The string to convert
74
- * @returns The URL-safe base64 string
75
- */
65
+ async function migrateMixHash(legacyHash) {
66
+ try {
67
+ const jsonStr = lz_string_1.default.decompressFromBase64(legacyHash);
68
+ if (!jsonStr)
69
+ return null;
70
+ const mixArr = JSON.parse(jsonStr);
71
+ if (!Array.isArray(mixArr) || !mixArr.length)
72
+ return null;
73
+ const firstMix = mixArr[0];
74
+ const productId = firstMix.weed;
75
+ if (!products_1.products[productId])
76
+ return null;
77
+ const subsByAbbr = Object.entries(substances_1.substances).reduce((map, [id, sub]) => {
78
+ if (sub.abbreviation)
79
+ map[sub.abbreviation] = id;
80
+ return map;
81
+ }, {});
82
+ const substanceIds = [];
83
+ if (Array.isArray(firstMix.substances)) {
84
+ for (const legacySubId of firstMix.substances) {
85
+ const substanceId = substances_1.substances[legacySubId]
86
+ ? legacySubId
87
+ : subsByAbbr[legacySubId];
88
+ if (substanceId)
89
+ substanceIds.push(substanceId);
90
+ }
91
+ }
92
+ return encodeMixState({ product: productId, substances: substanceIds });
93
+ }
94
+ catch {
95
+ return null;
96
+ }
97
+ }
76
98
  function toBase64Url(str) {
77
99
  return Buffer.from(str, 'utf-8')
78
100
  .toString('base64')
@@ -80,11 +102,6 @@ function toBase64Url(str) {
80
102
  .replace(/\//g, '_')
81
103
  .replace(/=/g, '');
82
104
  }
83
- /**
84
- * Convert a URL-safe base64 string back to a regular string
85
- * @param str - The URL-safe base64 string to convert
86
- * @returns The regular string
87
- */
88
105
  function fromBase64Url(str) {
89
106
  if (typeof str !== 'string') {
90
107
  throw new Error('Input must be a string');
@@ -94,3 +111,4 @@ function fromBase64Url(str) {
94
111
  const padded = padding ? base64 + '='.repeat(4 - padding) : base64;
95
112
  return Buffer.from(padded, 'base64').toString('utf-8');
96
113
  }
114
+ //# sourceMappingURL=encoding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encoding.js","sourceRoot":"","sources":["../../src/utils/encoding.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@schedule1-tools/mixer",
3
- "version": "0.2.2",
3
+ "version": "0.2.4",
4
4
  "description": "A package for calculating substance mixes in Schedule 1",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -12,6 +12,9 @@
12
12
  ],
13
13
  "author": "Schedule1 Tools",
14
14
  "license": "MIT",
15
+ "dependencies": {
16
+ "lz-string": "^1.5.0"
17
+ },
15
18
  "devDependencies": {
16
19
  "@ianvs/prettier-plugin-sort-imports": "^4.4.1",
17
20
  "@types/jest": "^29.5.14",