gpt-tokenizer 1.0.3 → 1.0.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 (59) hide show
  1. package/cjs/data/bpeRanks.d.ts +50003 -0
  2. package/cjs/data/bpeRanks.js +7 -0
  3. package/cjs/data/bpeRanks.js.map +1 -0
  4. package/cjs/data/encoder.d.ts +50260 -0
  5. package/cjs/data/encoder.js +7 -0
  6. package/cjs/data/encoder.js.map +1 -0
  7. package/cjs/{getBpe.js → getData.js} +6 -2
  8. package/cjs/getData.js.map +1 -0
  9. package/cjs/main.d.ts +28 -1
  10. package/cjs/main.js +208 -14
  11. package/cjs/main.js.map +1 -1
  12. package/cjs/main.test.js +86 -0
  13. package/cjs/main.test.js.map +1 -0
  14. package/cjs/utils.d.ts +22 -6
  15. package/cjs/utils.js +29 -1
  16. package/cjs/utils.js.map +1 -1
  17. package/esm/data/bpeRanks.d.ts +50003 -0
  18. package/esm/data/bpeRanks.js +5 -0
  19. package/esm/data/bpeRanks.js.map +1 -0
  20. package/esm/data/encoder.d.ts +50260 -0
  21. package/esm/data/encoder.js +5 -0
  22. package/esm/data/encoder.js.map +1 -0
  23. package/esm/getData.js +16 -0
  24. package/esm/getData.js.map +1 -0
  25. package/esm/main.d.ts +28 -1
  26. package/esm/main.js +196 -1
  27. package/esm/main.js.map +1 -1
  28. package/esm/{encoder.test.js → main.test.js} +2 -2
  29. package/esm/main.test.js.map +1 -0
  30. package/esm/package.json +1 -0
  31. package/esm/utils.d.ts +22 -6
  32. package/esm/utils.js +29 -1
  33. package/esm/utils.js.map +1 -1
  34. package/package.json +8 -4
  35. package/src/data/bpeRanks.js +4 -0
  36. package/src/data/encoder.js +4 -0
  37. package/src/getData.ts +34 -0
  38. package/src/{encoder.test.ts → main.test.ts} +1 -1
  39. package/src/main.ts +266 -1
  40. package/src/utils.js +61 -0
  41. package/cjs/encoder.d.ts +0 -17
  42. package/cjs/encoder.js +0 -202
  43. package/cjs/encoder.js.map +0 -1
  44. package/cjs/encoder.test.js +0 -86
  45. package/cjs/encoder.test.js.map +0 -1
  46. package/cjs/getBpe.js.map +0 -1
  47. package/esm/encoder.d.ts +0 -17
  48. package/esm/encoder.js +0 -188
  49. package/esm/encoder.js.map +0 -1
  50. package/esm/encoder.test.js.map +0 -1
  51. package/esm/getBpe.js +0 -12
  52. package/esm/getBpe.js.map +0 -1
  53. package/src/encoder.ts +0 -252
  54. package/src/getBpe.ts +0 -23
  55. package/src/utils.ts +0 -36
  56. /package/cjs/{encoder.test.d.ts → getData.d.ts} +0 -0
  57. /package/cjs/{getBpe.d.ts → main.test.d.ts} +0 -0
  58. /package/esm/{encoder.test.d.ts → getData.d.ts} +0 -0
  59. /package/esm/{getBpe.d.ts → main.test.d.ts} +0 -0
package/esm/getData.js ADDED
@@ -0,0 +1,16 @@
1
+ import fs from 'fs';
2
+ import path from 'path';
3
+ import { dictZip, range } from './utils';
4
+ const bpeFile = fs.readFileSync(path.join(__dirname, '../data/vocab.bpe'), 'utf8');
5
+ const lines = bpeFile.split('\n');
6
+ const bpeMerges = lines.slice(1, -1).map((x) => x
7
+ .split(/(\s+)/)
8
+ .filter((e) => e.trim().length > 0)
9
+ .join(','));
10
+ const bpeRanks = dictZip(bpeMerges, range(0, bpeMerges.length));
11
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
12
+ const encoder = require('../data/encoder.json');
13
+ fs.mkdirSync(path.join(__dirname, 'data'), { recursive: true });
14
+ fs.writeFileSync(path.join(__dirname, 'data/bpeRanks.js'), `/* eslint-disable */\n// @ts-nocheck\n// prettier-ignore\nexport default ${JSON.stringify(bpeRanks)}`);
15
+ fs.writeFileSync(path.join(__dirname, 'data/encoder.js'), `/* eslint-disable */\n// @ts-nocheck\n// prettier-ignore\nexport default ${JSON.stringify(encoder)}`);
16
+ //# sourceMappingURL=getData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getData.js","sourceRoot":"","sources":["../src/getData.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAA;AACnB,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAExC,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAC7B,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,mBAAmB,CAAC,EACzC,MAAM,CACP,CAAA;AACD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;AAEjC,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAC7C,CAAC;KACE,KAAK,CAAC,OAAO,CAAC;KACd,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;KAClC,IAAI,CAAC,GAAG,CAAC,CACb,CAAA;AAED,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAA;AAC/D,mEAAmE;AACnE,MAAM,OAAO,GAAW,OAAO,CAAC,sBAAsB,CAAC,CAAA;AAEvD,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;AAC/D,EAAE,CAAC,aAAa,CACd,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,kBAAkB,CAAC,EACxC,4EAA4E,IAAI,CAAC,SAAS,CACxF,QAAQ,CACT,EAAE,CACJ,CAAA;AACD,EAAE,CAAC,aAAa,CACd,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC,EACvC,4EAA4E,IAAI,CAAC,SAAS,CACxF,OAAO,CACR,EAAE,CACJ,CAAA"}
package/esm/main.d.ts CHANGED
@@ -1 +1,28 @@
1
- export * from './encoder';
1
+ export declare function bpe(token: string, cache?: Map<string, string>): string;
2
+ export declare function encodeGenerator(text: string, cache?: Map<string, string>): Generator<number[], void, undefined>;
3
+ /**
4
+ * @returns {false | number} false if token limit is exceeded, otherwise the number of tokens
5
+ */
6
+ export declare function isWithinTokenLimit(text: string, tokenLimit: number, cache?: Map<string, string>): false | number;
7
+ export declare function encode(text: string, cache?: Map<string, string>): number[];
8
+ export declare function decodeToken(token: number): string;
9
+ export declare function endsWithIncompleteUtfPairSurrogate(string: string): boolean;
10
+ export declare function decodeGenerator(tokens: Iterable<number>): Generator<string, void, undefined>;
11
+ /**
12
+ * Decode tokens asynchronously and yield the decoded strings, one by one.
13
+ * Will not yield for tokens that include a high surrogate, but wait for the next token.
14
+ * @param {AsyncIterable<number>} tokens
15
+ * @returns {AsyncGenerator<string, void, undefined>}
16
+ */
17
+ export declare function decodeAsyncGenerator(tokens: AsyncIterable<number>): AsyncGenerator<string, void, undefined>;
18
+ export declare function decode(tokens: number[]): string;
19
+ declare const gptEncoder: {
20
+ encode: typeof encode;
21
+ decode: typeof decode;
22
+ encodeGenerator: typeof encodeGenerator;
23
+ decodeGenerator: typeof decodeGenerator;
24
+ decodeAsyncGenerator: typeof decodeAsyncGenerator;
25
+ isWithinTokenLimit: typeof isWithinTokenLimit;
26
+ bpe: typeof bpe;
27
+ };
28
+ export default gptEncoder;
package/esm/main.js CHANGED
@@ -1,2 +1,197 @@
1
- export * from './encoder';
1
+ /* eslint-disable import/extensions */
2
+ /* eslint-disable unicorn/prefer-spread */
3
+ /* eslint-disable unicorn/prefer-code-point */
4
+ import bpeRanksData from './data/bpeRanks.js';
5
+ import encoderData from './data/encoder.js';
6
+ import { dictZip, getCharCode, getCharFromCode, getPairs, range, splitToken, } from './utils.js';
7
+ const encoder = encoderData;
8
+ const bpeRanks = bpeRanksData;
9
+ const decoder = dictZip(Object.values(encoder), Object.keys(encoder));
10
+ const textEncoder = new TextEncoder();
11
+ const textDecoder = new TextDecoder();
12
+ // eslint-disable-next-line no-magic-numbers
13
+ const UPPER_BYTE_VALUE = 2 ** 8;
14
+ function createByteToUnicodeMap() {
15
+ const asciiRange = range(getCharCode('!'), getCharCode('~') + 1);
16
+ const latin1Range1 = range(getCharCode('¡'), getCharCode('¬') + 1);
17
+ const latin1Range2 = range(getCharCode('®'), getCharCode('ÿ') + 1);
18
+ const initialCodePoints = [...asciiRange, ...latin1Range1, ...latin1Range2];
19
+ const mappedCodePoints = [...initialCodePoints];
20
+ let newCodePointOffset = 0;
21
+ for (let byteValue = 0; byteValue < UPPER_BYTE_VALUE; byteValue++) {
22
+ if (!initialCodePoints.includes(byteValue)) {
23
+ initialCodePoints.push(byteValue);
24
+ mappedCodePoints.push(UPPER_BYTE_VALUE + newCodePointOffset);
25
+ newCodePointOffset += 1;
26
+ }
27
+ }
28
+ const unicodeChars = mappedCodePoints.map(getCharFromCode);
29
+ return new Map(initialCodePoints.map((x, i) => [x, unicodeChars[i]]));
30
+ }
31
+ const pat = /'s|'t|'re|'ve|'m|'ll|'d| ?\p{L}+| ?\p{N}+| ?[^\s\p{L}\p{N}]+|\s+(?!\S)|\s+/gu;
32
+ const byteEncoder = createByteToUnicodeMap();
33
+ const byteDecoder = new Map([...byteEncoder].map(([k, v]) => [v, k]));
34
+ export function bpe(token, cache = new Map()) {
35
+ if (cache.has(token)) {
36
+ return cache.get(token);
37
+ }
38
+ let word = splitToken(token);
39
+ let pairs = getPairs(word);
40
+ if (pairs.length === 0) {
41
+ return token;
42
+ }
43
+ // eslint-disable-next-line no-constant-condition
44
+ while (true) {
45
+ const minPairs = new Map();
46
+ pairs.forEach((pair) => {
47
+ const rank = bpeRanks[pair.join(',')];
48
+ minPairs.set(
49
+ // eslint-disable-next-line no-magic-numbers
50
+ typeof rank === 'undefined' || Number.isNaN(rank) ? 10e10 : rank, pair);
51
+ });
52
+ const keys = [...minPairs.keys()];
53
+ const bigram = minPairs.get(Math.min(...keys));
54
+ if (!bigram || !(bigram.join(',') in bpeRanks)) {
55
+ break;
56
+ }
57
+ const [first, second] = bigram;
58
+ let newWord = [];
59
+ let i = 0;
60
+ while (i < word.length) {
61
+ const j = word.indexOf(first, i);
62
+ if (j === -1) {
63
+ newWord = newWord.concat(word.slice(i));
64
+ break;
65
+ }
66
+ newWord = newWord.concat(word.slice(i, j));
67
+ i = j;
68
+ if (word[i] === first && i < word.length - 1 && word[i + 1] === second) {
69
+ newWord.push(first + second);
70
+ i += 2;
71
+ }
72
+ else {
73
+ newWord.push(word[i]);
74
+ i += 1;
75
+ }
76
+ }
77
+ word = newWord;
78
+ if (word.length === 1) {
79
+ break;
80
+ }
81
+ else {
82
+ pairs = getPairs(word);
83
+ }
84
+ }
85
+ const result = word.join(' ');
86
+ cache.set(token, result);
87
+ return result;
88
+ }
89
+ export function* encodeGenerator(text, cache = new Map()) {
90
+ for (let [token] of text.matchAll(pat)) {
91
+ token = [...textEncoder.encode(token)]
92
+ .map((x) => byteEncoder.get(x) ?? '')
93
+ .join('');
94
+ const newTokens = bpe(token, cache)
95
+ .split(' ')
96
+ .map((x) => encoder[x]);
97
+ yield newTokens;
98
+ }
99
+ }
100
+ /**
101
+ * @returns {false | number} false if token limit is exceeded, otherwise the number of tokens
102
+ */
103
+ export function isWithinTokenLimit(text, tokenLimit, cache = new Map()) {
104
+ const tokenGenerator = encodeGenerator(text, cache);
105
+ let count = 0;
106
+ for (const tokens of tokenGenerator) {
107
+ count += tokens.length;
108
+ if (count > tokenLimit) {
109
+ return false;
110
+ }
111
+ }
112
+ return count;
113
+ }
114
+ export function encode(text, cache = new Map()) {
115
+ return [...encodeGenerator(text, cache)].flat(1);
116
+ }
117
+ export function decodeToken(token) {
118
+ const decodedToken = decoder[token];
119
+ if (typeof decodedToken === 'undefined') {
120
+ return '';
121
+ }
122
+ const decodedBytes = splitToken(decodedToken).map((x) => byteDecoder.get(x));
123
+ return textDecoder.decode(new Uint8Array(decodedBytes), {
124
+ stream: true,
125
+ });
126
+ }
127
+ const HIGH_SURROGATE_START = 55296;
128
+ const HIGH_SURROGATE_END = 56319;
129
+ export function endsWithIncompleteUtfPairSurrogate(string) {
130
+ if (string.length === 0)
131
+ return false;
132
+ // Check if the last character is a high surrogate
133
+ const lastCharCode = string.charCodeAt(string.length - 1);
134
+ return (lastCharCode >= HIGH_SURROGATE_START && lastCharCode <= HIGH_SURROGATE_END);
135
+ }
136
+ export function* decodeGenerator(tokens) {
137
+ let buffer = '';
138
+ for (const token of tokens) {
139
+ buffer += decodeToken(token);
140
+ if (buffer.length === 0 || endsWithIncompleteUtfPairSurrogate(buffer)) {
141
+ // Keep the high surrogate in the buffer and continue with the next token
142
+ // eslint-disable-next-line no-continue
143
+ continue;
144
+ }
145
+ else {
146
+ yield buffer;
147
+ // reset buffer
148
+ buffer = '';
149
+ }
150
+ }
151
+ // Yield any remaining characters in the buffer
152
+ if (buffer.length > 0) {
153
+ yield buffer;
154
+ }
155
+ }
156
+ /**
157
+ * Decode tokens asynchronously and yield the decoded strings, one by one.
158
+ * Will not yield for tokens that include a high surrogate, but wait for the next token.
159
+ * @param {AsyncIterable<number>} tokens
160
+ * @returns {AsyncGenerator<string, void, undefined>}
161
+ */
162
+ export async function* decodeAsyncGenerator(tokens) {
163
+ let buffer = '';
164
+ for await (const token of tokens) {
165
+ buffer += decodeToken(token);
166
+ if (buffer.length === 0 || endsWithIncompleteUtfPairSurrogate(buffer)) {
167
+ // Keep the high surrogate in the buffer and continue with the next token
168
+ // eslint-disable-next-line no-continue
169
+ continue;
170
+ }
171
+ else {
172
+ yield buffer;
173
+ // reset buffer
174
+ buffer = '';
175
+ }
176
+ }
177
+ // Yield any remaining characters in the buffer
178
+ if (buffer.length > 0) {
179
+ yield buffer;
180
+ }
181
+ }
182
+ export function decode(tokens) {
183
+ return [...decodeGenerator(tokens)].join('');
184
+ }
185
+ const gptEncoder = {
186
+ encode,
187
+ decode,
188
+ encodeGenerator,
189
+ decodeGenerator,
190
+ decodeAsyncGenerator,
191
+ isWithinTokenLimit,
192
+ bpe,
193
+ };
194
+ // used by the UMD export
195
+ // eslint-disable-next-line import/no-default-export
196
+ export default gptEncoder;
2
197
  //# sourceMappingURL=main.js.map
package/esm/main.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /* eslint-disable compat/compat */
2
- import { decode, decodeAsyncGenerator, decodeGenerator, encode, isWithinTokenLimit, } from './encoder';
2
+ import { decode, decodeAsyncGenerator, decodeGenerator, encode, isWithinTokenLimit, } from './main';
3
3
  describe('basic functionality', () => {
4
4
  it('empty string', () => {
5
5
  const str = '';
@@ -81,4 +81,4 @@ describe('basic functionality', () => {
81
81
  expect(isWithinTokenLimit(str, 300)).toBe(18);
82
82
  });
83
83
  });
84
- //# sourceMappingURL=encoder.test.js.map
84
+ //# sourceMappingURL=main.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.test.js","sourceRoot":"","sources":["../src/main.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"name": "gpt-tokenizer", "type": "module"}
package/esm/utils.d.ts CHANGED
@@ -1,6 +1,22 @@
1
- export declare function dictZip<T extends PropertyKey, U>(x: T[], y: U[]): Record<T, U>;
2
- export declare function range(x: number, y: number): number[];
3
- export declare const getCharCode: (x: string) => number;
4
- export declare const getCharFromCode: (x: number) => string;
5
- export declare function getPairs(word: string[]): [string, string][];
6
- export declare const splitToken: (token: string) => string[];
1
+ /**
2
+ * @template T
3
+ * @template U
4
+ * @param {T[]} x
5
+ * @param {U[]} y
6
+ * @returns {Record<T, U>}
7
+ */
8
+ export function dictZip<T, U>(x: T[], y: U[]): Record<T, U>;
9
+ /**
10
+ * @param {number} x
11
+ * @param {number} y
12
+ * @returns {number[]}
13
+ */
14
+ export function range(x: number, y: number): number[];
15
+ /**
16
+ * @param {string[]} word
17
+ * @returns {[string, string][]}
18
+ */
19
+ export function getPairs(word: string[]): [string, string][];
20
+ export function getCharCode(x: string): number;
21
+ export function getCharFromCode(x: number): string;
22
+ export function splitToken(token: string): string[];
package/esm/utils.js CHANGED
@@ -1,18 +1,42 @@
1
1
  /* eslint-disable unicorn/prefer-spread */
2
2
  /* eslint-disable unicorn/prefer-code-point */
3
+ /**
4
+ * @template T
5
+ * @template U
6
+ * @param {T[]} x
7
+ * @param {U[]} y
8
+ * @returns {Record<T, U>}
9
+ */
3
10
  export function dictZip(x, y) {
4
- // eslint-disable-next-line @typescript-eslint/consistent-type-assertions
11
+ /** @type {Record<T, U>} */
5
12
  const result = {};
6
13
  x.forEach((k, i) => {
7
14
  result[k] = y[i];
8
15
  });
9
16
  return result;
10
17
  }
18
+ /**
19
+ * @param {number} x
20
+ * @param {number} y
21
+ * @returns {number[]}
22
+ */
11
23
  export function range(x, y) {
12
24
  return Array.from({ length: y - x }, (_, i) => x + i);
13
25
  }
26
+ /**
27
+ * @param {string} x
28
+ * @returns {number}
29
+ */
14
30
  export const getCharCode = (x) => x.charCodeAt(0);
31
+ /**
32
+ * @param {number} x
33
+ * @returns {string}
34
+ */
15
35
  export const getCharFromCode = (x) => String.fromCharCode(x);
36
+ /**
37
+ * @param {string[]} word
38
+ * @returns {[string, string][]}
39
+ */
16
40
  export function getPairs(word) {
17
41
  /** @type {[string, string][]} */
18
42
  const pairs = [];
@@ -24,5 +48,9 @@ export function getPairs(word) {
24
48
  }
25
49
  return pairs;
26
50
  }
51
+ /**
52
+ * @param {string} token
53
+ * @returns {string[]}
54
+ */
27
55
  export const splitToken = (token) => token.split('');
28
56
  //# sourceMappingURL=utils.js.map
package/esm/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,8CAA8C;AAE9C,MAAM,UAAU,OAAO,CACrB,CAAM,EACN,CAAM;IAEN,yEAAyE;IACzE,MAAM,MAAM,GAAG,EAAkB,CAAA;IACjC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACjB,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,CAAA;IACnB,CAAC,CAAC,CAAA;IACF,OAAO,MAAM,CAAA;AACf,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,CAAS,EAAE,CAAS;IACxC,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;AACvD,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;AAEjE,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;AAE5E,MAAM,UAAU,QAAQ,CAAC,IAAc;IACrC,iCAAiC;IACjC,MAAM,KAAK,GAAuB,EAAE,CAAA;IACpC,IAAI,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;IACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACpC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;QACpB,KAAK,CAAC,IAAI,CAAC,CAAC,QAAS,EAAE,IAAK,CAAC,CAAC,CAAA;QAC9B,QAAQ,GAAG,IAAI,CAAA;KAChB;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAa,EAAY,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.js"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,8CAA8C;AAE9C;;;;;;GAMG;AACH,MAAM,UAAU,OAAO,CAAC,CAAC,EAAE,CAAC;IAC1B,2BAA2B;IAC3B,MAAM,MAAM,GAAG,EAAE,CAAA;IACjB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACjB,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IAClB,CAAC,CAAC,CAAA;IACF,OAAO,MAAM,CAAA;AACf,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,KAAK,CAAC,CAAC,EAAE,CAAC;IACxB,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;AACvD,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;AAEjD;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;AAE5D;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAC,IAAI;IAC3B,iCAAiC;IACjC,MAAM,KAAK,GAAG,EAAE,CAAA;IAChB,IAAI,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;IACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACpC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;QACpB,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAA;QAC5B,QAAQ,GAAG,IAAI,CAAA;KAChB;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gpt-tokenizer",
3
- "version": "1.0.3",
3
+ "version": "1.0.4",
4
4
  "description": "BPE Encoder Decoder for GPT-2 / GPT-3",
5
5
  "keywords": [
6
6
  "BPE",
@@ -58,6 +58,10 @@
58
58
  "./esm/*": {
59
59
  "import": "./esm/*.js"
60
60
  },
61
+ "./data/*": {
62
+ "import": "./data/*",
63
+ "require": "./data/*"
64
+ },
61
65
  "./package.json": "./package.json"
62
66
  },
63
67
  "main": "esm/main.js",
@@ -73,7 +77,7 @@
73
77
  "scripts": {
74
78
  "build": "yarn build:cjs && yarn build:esm && yarn build:umd",
75
79
  "build:cjs": "yarn rrun tsc --outDir cjs --module commonjs --target es2022",
76
- "build:esm": "yarn rrun tsc --outDir esm --module esnext --target es2022",
80
+ "build:esm": "yarn rrun tsc --outDir esm --module esnext --target es2022 && echo '{\"name\": \"gpt-tokenizer\", \"type\": \"module\"}' > ./esm/package.json",
77
81
  "build:umd": "beemo webpack --entry='./src/main.ts' --env 'outDir=dist' --env 'moduleTarget=umd' --env 'engineTarget=web' --env 'codeTarget=es2022' --env 'name=GPT3Encoder' --env 'export=default' --env 'filename=gpt3encoder.js'",
78
82
  "clean": "git clean -dfX --exclude=node_modules src && beemo typescript:sync-project-refs",
79
83
  "format": "yarn rrun prettier --write \"./{src,tests,.config}/**/!(*.d).{.js,jsx,ts,tsx,json,md}\"",
@@ -83,7 +87,7 @@
83
87
  "test": "yarn test:format && yarn test:types && yarn test:lint && yarn test:code",
84
88
  "test:code": "rrun jest",
85
89
  "test:format": "yarn rrun prettier --check \"./{src,tests,.config}/**/!(*.d).{.js,jsx,ts,tsx,json,md}\"",
86
- "test:lint": "rrun eslint 'src/**/*.{js,jsx,ts,tsx}'",
90
+ "test:lint": "rrun eslint 'src/*.{js,jsx,ts,tsx}'",
87
91
  "test:types": "yarn rrun tsc --noEmit"
88
92
  },
89
93
  "release": {
@@ -108,7 +112,7 @@
108
112
  },
109
113
  "devDependencies": {
110
114
  "@niieani/scaffold": "^1.6.7",
111
- "tsx": "^3.12.6"
115
+ "tsx": "^3.12.7"
112
116
  },
113
117
  "packageManager": "yarn@3.5.0",
114
118
  "publishConfig": {