gpt-tokenizer 2.0.0 → 2.1.1

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 (328) hide show
  1. package/README.md +54 -8
  2. package/cjs/GptEncoding.d.ts +33 -6
  3. package/cjs/GptEncoding.js +79 -34
  4. package/cjs/GptEncoding.js.map +1 -1
  5. package/cjs/GptEncoding.test.js +54 -0
  6. package/cjs/GptEncoding.test.js.map +1 -1
  7. package/cjs/encoding/cl100k_base.d.ts +2 -2
  8. package/cjs/encoding/cl100k_base.js +4 -2
  9. package/cjs/encoding/cl100k_base.js.map +1 -1
  10. package/cjs/encoding/p50k_base.d.ts +1 -1
  11. package/cjs/encoding/p50k_edit.d.ts +1 -1
  12. package/cjs/encoding/r50k_base.d.ts +1 -1
  13. package/cjs/main.d.ts +1 -0
  14. package/cjs/main.js +7 -0
  15. package/cjs/main.js.map +1 -1
  16. package/cjs/mapping.d.ts +37 -0
  17. package/cjs/mapping.js +34 -2
  18. package/cjs/mapping.js.map +1 -1
  19. package/cjs/model/ada.d.ts +1 -0
  20. package/cjs/model/ada.js +7 -0
  21. package/cjs/model/ada.js.map +1 -1
  22. package/cjs/model/babbage.d.ts +1 -0
  23. package/cjs/model/babbage.js +7 -0
  24. package/cjs/model/babbage.js.map +1 -1
  25. package/cjs/model/code-cushman-001.d.ts +1 -0
  26. package/cjs/model/code-cushman-001.js +7 -0
  27. package/cjs/model/code-cushman-001.js.map +1 -1
  28. package/cjs/model/code-cushman-002.d.ts +1 -0
  29. package/cjs/model/code-cushman-002.js +7 -0
  30. package/cjs/model/code-cushman-002.js.map +1 -1
  31. package/cjs/model/code-davinci-001.d.ts +1 -0
  32. package/cjs/model/code-davinci-001.js +7 -0
  33. package/cjs/model/code-davinci-001.js.map +1 -1
  34. package/cjs/model/code-davinci-002.d.ts +1 -0
  35. package/cjs/model/code-davinci-002.js +7 -0
  36. package/cjs/model/code-davinci-002.js.map +1 -1
  37. package/cjs/model/code-davinci-edit-001.d.ts +1 -0
  38. package/cjs/model/code-davinci-edit-001.js +7 -0
  39. package/cjs/model/code-davinci-edit-001.js.map +1 -1
  40. package/cjs/model/code-search-ada-code-001.d.ts +1 -0
  41. package/cjs/model/code-search-ada-code-001.js +7 -0
  42. package/cjs/model/code-search-ada-code-001.js.map +1 -1
  43. package/cjs/model/code-search-babbage-code-001.d.ts +1 -0
  44. package/cjs/model/code-search-babbage-code-001.js +7 -0
  45. package/cjs/model/code-search-babbage-code-001.js.map +1 -1
  46. package/cjs/model/curie.d.ts +1 -0
  47. package/cjs/model/curie.js +7 -0
  48. package/cjs/model/curie.js.map +1 -1
  49. package/cjs/model/cushman-codex.d.ts +1 -0
  50. package/cjs/model/cushman-codex.js +7 -0
  51. package/cjs/model/cushman-codex.js.map +1 -1
  52. package/cjs/model/davinci-codex.d.ts +1 -0
  53. package/cjs/model/davinci-codex.js +7 -0
  54. package/cjs/model/davinci-codex.js.map +1 -1
  55. package/cjs/model/davinci.d.ts +1 -0
  56. package/cjs/model/davinci.js +7 -0
  57. package/cjs/model/davinci.js.map +1 -1
  58. package/cjs/model/gpt-3.5-turbo-0301.d.ts +6 -0
  59. package/cjs/model/gpt-3.5-turbo-0301.js +38 -0
  60. package/cjs/model/gpt-3.5-turbo-0301.js.map +1 -0
  61. package/cjs/model/gpt-3.5-turbo.d.ts +6 -1
  62. package/cjs/model/gpt-3.5-turbo.js +21 -1
  63. package/cjs/model/gpt-3.5-turbo.js.map +1 -1
  64. package/cjs/model/gpt-4-0314.d.ts +6 -0
  65. package/cjs/model/gpt-4-0314.js +38 -0
  66. package/cjs/model/gpt-4-0314.js.map +1 -0
  67. package/cjs/model/gpt-4-32k-0314.d.ts +6 -0
  68. package/cjs/model/gpt-4-32k-0314.js +38 -0
  69. package/cjs/model/gpt-4-32k-0314.js.map +1 -0
  70. package/cjs/model/gpt-4-32k.d.ts +6 -0
  71. package/cjs/model/gpt-4-32k.js +38 -0
  72. package/cjs/model/gpt-4-32k.js.map +1 -0
  73. package/cjs/model/gpt-4.d.ts +6 -1
  74. package/cjs/model/gpt-4.js +21 -1
  75. package/cjs/model/gpt-4.js.map +1 -1
  76. package/cjs/model/text-ada-001.d.ts +1 -0
  77. package/cjs/model/text-ada-001.js +7 -0
  78. package/cjs/model/text-ada-001.js.map +1 -1
  79. package/cjs/model/text-babbage-001.d.ts +1 -0
  80. package/cjs/model/text-babbage-001.js +7 -0
  81. package/cjs/model/text-babbage-001.js.map +1 -1
  82. package/cjs/model/text-curie-001.d.ts +1 -0
  83. package/cjs/model/text-curie-001.js +7 -0
  84. package/cjs/model/text-curie-001.js.map +1 -1
  85. package/cjs/model/text-davinci-001.d.ts +1 -0
  86. package/cjs/model/text-davinci-001.js +7 -0
  87. package/cjs/model/text-davinci-001.js.map +1 -1
  88. package/cjs/model/text-davinci-002.d.ts +1 -0
  89. package/cjs/model/text-davinci-002.js +7 -0
  90. package/cjs/model/text-davinci-002.js.map +1 -1
  91. package/cjs/model/text-davinci-003.d.ts +1 -0
  92. package/cjs/model/text-davinci-003.js +7 -0
  93. package/cjs/model/text-davinci-003.js.map +1 -1
  94. package/cjs/model/text-davinci-edit-001.d.ts +1 -0
  95. package/cjs/model/text-davinci-edit-001.js +7 -0
  96. package/cjs/model/text-davinci-edit-001.js.map +1 -1
  97. package/cjs/model/text-embedding-ada-002.d.ts +1 -0
  98. package/cjs/model/text-embedding-ada-002.js +7 -0
  99. package/cjs/model/text-embedding-ada-002.js.map +1 -1
  100. package/cjs/model/text-search-ada-doc-001.d.ts +1 -0
  101. package/cjs/model/text-search-ada-doc-001.js +7 -0
  102. package/cjs/model/text-search-ada-doc-001.js.map +1 -1
  103. package/cjs/model/text-search-babbage-doc-001.d.ts +1 -0
  104. package/cjs/model/text-search-babbage-doc-001.js +7 -0
  105. package/cjs/model/text-search-babbage-doc-001.js.map +1 -1
  106. package/cjs/model/text-search-curie-doc-001.d.ts +1 -0
  107. package/cjs/model/text-search-curie-doc-001.js +7 -0
  108. package/cjs/model/text-search-curie-doc-001.js.map +1 -1
  109. package/cjs/model/text-search-davinci-doc-001.d.ts +1 -0
  110. package/cjs/model/text-search-davinci-doc-001.js +7 -0
  111. package/cjs/model/text-search-davinci-doc-001.js.map +1 -1
  112. package/cjs/model/text-similarity-ada-001.d.ts +1 -0
  113. package/cjs/model/text-similarity-ada-001.js +7 -0
  114. package/cjs/model/text-similarity-ada-001.js.map +1 -1
  115. package/cjs/model/text-similarity-babbage-001.d.ts +1 -0
  116. package/cjs/model/text-similarity-babbage-001.js +7 -0
  117. package/cjs/model/text-similarity-babbage-001.js.map +1 -1
  118. package/cjs/model/text-similarity-curie-001.d.ts +1 -0
  119. package/cjs/model/text-similarity-curie-001.js +7 -0
  120. package/cjs/model/text-similarity-curie-001.js.map +1 -1
  121. package/cjs/model/text-similarity-davinci-001.d.ts +1 -0
  122. package/cjs/model/text-similarity-davinci-001.js +7 -0
  123. package/cjs/model/text-similarity-davinci-001.js.map +1 -1
  124. package/cjs/modelParams.d.ts +5 -4
  125. package/cjs/modelParams.js +7 -4
  126. package/cjs/modelParams.js.map +1 -1
  127. package/cjs/specialTokens.d.ts +3 -0
  128. package/cjs/specialTokens.js +4 -1
  129. package/cjs/specialTokens.js.map +1 -1
  130. package/cjs/util.d.ts +2 -0
  131. package/cjs/util.js +19 -0
  132. package/cjs/util.js.map +1 -0
  133. package/dist/cl100k_base.js +1 -1
  134. package/dist/cl100k_base.js.map +1 -1
  135. package/dist/p50k_base.js +1 -1
  136. package/dist/p50k_base.js.map +1 -1
  137. package/dist/p50k_edit.js +1 -1
  138. package/dist/p50k_edit.js.map +1 -1
  139. package/dist/r50k_base.js +1 -1
  140. package/dist/r50k_base.js.map +1 -1
  141. package/esm/GptEncoding.d.ts +33 -6
  142. package/esm/GptEncoding.js +81 -36
  143. package/esm/GptEncoding.js.map +1 -1
  144. package/esm/GptEncoding.test.js +55 -1
  145. package/esm/GptEncoding.test.js.map +1 -1
  146. package/esm/codegen/generateByModel.js +19 -0
  147. package/esm/codegen/generateByModel.js.map +1 -0
  148. package/esm/{generateJsModels.js → codegen/generateJsEncodings.js} +4 -4
  149. package/esm/codegen/generateJsEncodings.js.map +1 -0
  150. package/esm/encoding/cl100k_base.d.ts +2 -2
  151. package/esm/encoding/cl100k_base.js +2 -2
  152. package/esm/encoding/cl100k_base.js.map +1 -1
  153. package/esm/encoding/p50k_base.d.ts +1 -1
  154. package/esm/encoding/p50k_edit.d.ts +1 -1
  155. package/esm/encoding/r50k_base.d.ts +1 -1
  156. package/esm/main.d.ts +1 -0
  157. package/esm/main.js +2 -0
  158. package/esm/main.js.map +1 -1
  159. package/esm/mapping.d.ts +37 -0
  160. package/esm/mapping.js +32 -0
  161. package/esm/mapping.js.map +1 -1
  162. package/esm/model/ada.d.ts +1 -0
  163. package/esm/model/ada.js +2 -0
  164. package/esm/model/ada.js.map +1 -1
  165. package/esm/model/babbage.d.ts +1 -0
  166. package/esm/model/babbage.js +2 -0
  167. package/esm/model/babbage.js.map +1 -1
  168. package/esm/model/code-cushman-001.d.ts +1 -0
  169. package/esm/model/code-cushman-001.js +2 -0
  170. package/esm/model/code-cushman-001.js.map +1 -1
  171. package/esm/model/code-cushman-002.d.ts +1 -0
  172. package/esm/model/code-cushman-002.js +2 -0
  173. package/esm/model/code-cushman-002.js.map +1 -1
  174. package/esm/model/code-davinci-001.d.ts +1 -0
  175. package/esm/model/code-davinci-001.js +2 -0
  176. package/esm/model/code-davinci-001.js.map +1 -1
  177. package/esm/model/code-davinci-002.d.ts +1 -0
  178. package/esm/model/code-davinci-002.js +2 -0
  179. package/esm/model/code-davinci-002.js.map +1 -1
  180. package/esm/model/code-davinci-edit-001.d.ts +1 -0
  181. package/esm/model/code-davinci-edit-001.js +2 -0
  182. package/esm/model/code-davinci-edit-001.js.map +1 -1
  183. package/esm/model/code-search-ada-code-001.d.ts +1 -0
  184. package/esm/model/code-search-ada-code-001.js +2 -0
  185. package/esm/model/code-search-ada-code-001.js.map +1 -1
  186. package/esm/model/code-search-babbage-code-001.d.ts +1 -0
  187. package/esm/model/code-search-babbage-code-001.js +2 -0
  188. package/esm/model/code-search-babbage-code-001.js.map +1 -1
  189. package/esm/model/curie.d.ts +1 -0
  190. package/esm/model/curie.js +2 -0
  191. package/esm/model/curie.js.map +1 -1
  192. package/esm/model/cushman-codex.d.ts +1 -0
  193. package/esm/model/cushman-codex.js +2 -0
  194. package/esm/model/cushman-codex.js.map +1 -1
  195. package/esm/model/davinci-codex.d.ts +1 -0
  196. package/esm/model/davinci-codex.js +2 -0
  197. package/esm/model/davinci-codex.js.map +1 -1
  198. package/esm/model/davinci.d.ts +1 -0
  199. package/esm/model/davinci.js +2 -0
  200. package/esm/model/davinci.js.map +1 -1
  201. package/esm/model/gpt-3.5-turbo-0301.d.ts +6 -0
  202. package/esm/model/gpt-3.5-turbo-0301.js +11 -0
  203. package/esm/model/gpt-3.5-turbo-0301.js.map +1 -0
  204. package/esm/model/gpt-3.5-turbo.d.ts +6 -1
  205. package/esm/model/gpt-3.5-turbo.js +10 -1
  206. package/esm/model/gpt-3.5-turbo.js.map +1 -1
  207. package/esm/model/gpt-4-0314.d.ts +6 -0
  208. package/esm/model/gpt-4-0314.js +11 -0
  209. package/esm/model/gpt-4-0314.js.map +1 -0
  210. package/esm/model/gpt-4-32k-0314.d.ts +6 -0
  211. package/esm/model/gpt-4-32k-0314.js +11 -0
  212. package/esm/model/gpt-4-32k-0314.js.map +1 -0
  213. package/esm/model/gpt-4-32k.d.ts +6 -0
  214. package/esm/model/gpt-4-32k.js +11 -0
  215. package/esm/model/gpt-4-32k.js.map +1 -0
  216. package/esm/model/gpt-4.d.ts +6 -1
  217. package/esm/model/gpt-4.js +10 -1
  218. package/esm/model/gpt-4.js.map +1 -1
  219. package/esm/model/text-ada-001.d.ts +1 -0
  220. package/esm/model/text-ada-001.js +2 -0
  221. package/esm/model/text-ada-001.js.map +1 -1
  222. package/esm/model/text-babbage-001.d.ts +1 -0
  223. package/esm/model/text-babbage-001.js +2 -0
  224. package/esm/model/text-babbage-001.js.map +1 -1
  225. package/esm/model/text-curie-001.d.ts +1 -0
  226. package/esm/model/text-curie-001.js +2 -0
  227. package/esm/model/text-curie-001.js.map +1 -1
  228. package/esm/model/text-davinci-001.d.ts +1 -0
  229. package/esm/model/text-davinci-001.js +2 -0
  230. package/esm/model/text-davinci-001.js.map +1 -1
  231. package/esm/model/text-davinci-002.d.ts +1 -0
  232. package/esm/model/text-davinci-002.js +2 -0
  233. package/esm/model/text-davinci-002.js.map +1 -1
  234. package/esm/model/text-davinci-003.d.ts +1 -0
  235. package/esm/model/text-davinci-003.js +2 -0
  236. package/esm/model/text-davinci-003.js.map +1 -1
  237. package/esm/model/text-davinci-edit-001.d.ts +1 -0
  238. package/esm/model/text-davinci-edit-001.js +2 -0
  239. package/esm/model/text-davinci-edit-001.js.map +1 -1
  240. package/esm/model/text-embedding-ada-002.d.ts +1 -0
  241. package/esm/model/text-embedding-ada-002.js +2 -0
  242. package/esm/model/text-embedding-ada-002.js.map +1 -1
  243. package/esm/model/text-search-ada-doc-001.d.ts +1 -0
  244. package/esm/model/text-search-ada-doc-001.js +2 -0
  245. package/esm/model/text-search-ada-doc-001.js.map +1 -1
  246. package/esm/model/text-search-babbage-doc-001.d.ts +1 -0
  247. package/esm/model/text-search-babbage-doc-001.js +2 -0
  248. package/esm/model/text-search-babbage-doc-001.js.map +1 -1
  249. package/esm/model/text-search-curie-doc-001.d.ts +1 -0
  250. package/esm/model/text-search-curie-doc-001.js +2 -0
  251. package/esm/model/text-search-curie-doc-001.js.map +1 -1
  252. package/esm/model/text-search-davinci-doc-001.d.ts +1 -0
  253. package/esm/model/text-search-davinci-doc-001.js +2 -0
  254. package/esm/model/text-search-davinci-doc-001.js.map +1 -1
  255. package/esm/model/text-similarity-ada-001.d.ts +1 -0
  256. package/esm/model/text-similarity-ada-001.js +2 -0
  257. package/esm/model/text-similarity-ada-001.js.map +1 -1
  258. package/esm/model/text-similarity-babbage-001.d.ts +1 -0
  259. package/esm/model/text-similarity-babbage-001.js +2 -0
  260. package/esm/model/text-similarity-babbage-001.js.map +1 -1
  261. package/esm/model/text-similarity-curie-001.d.ts +1 -0
  262. package/esm/model/text-similarity-curie-001.js +2 -0
  263. package/esm/model/text-similarity-curie-001.js.map +1 -1
  264. package/esm/model/text-similarity-davinci-001.d.ts +1 -0
  265. package/esm/model/text-similarity-davinci-001.js +2 -0
  266. package/esm/model/text-similarity-davinci-001.js.map +1 -1
  267. package/esm/modelParams.d.ts +5 -4
  268. package/esm/modelParams.js +6 -3
  269. package/esm/modelParams.js.map +1 -1
  270. package/esm/specialTokens.d.ts +3 -0
  271. package/esm/specialTokens.js +3 -0
  272. package/esm/specialTokens.js.map +1 -1
  273. package/esm/util.d.ts +2 -0
  274. package/esm/util.js +14 -0
  275. package/esm/util.js.map +1 -0
  276. package/package.json +8 -6
  277. package/src/GptEncoding.test.ts +78 -1
  278. package/src/GptEncoding.ts +125 -44
  279. package/src/__snapshots__/GptEncoding.test.ts.snap +811 -0
  280. package/src/codegen/generateByModel.ts +35 -0
  281. package/src/{generateJsModels.ts → codegen/generateJsEncodings.ts} +3 -3
  282. package/src/encoding/cl100k_base.ts +4 -0
  283. package/src/main.ts +2 -0
  284. package/src/mapping.ts +42 -0
  285. package/src/model/ada.ts +2 -0
  286. package/src/model/babbage.ts +2 -0
  287. package/src/model/code-cushman-001.ts +2 -0
  288. package/src/model/code-cushman-002.ts +2 -0
  289. package/src/model/code-davinci-001.ts +2 -0
  290. package/src/model/code-davinci-002.ts +2 -0
  291. package/src/model/code-davinci-edit-001.ts +2 -0
  292. package/src/model/code-search-ada-code-001.ts +2 -0
  293. package/src/model/code-search-babbage-code-001.ts +2 -0
  294. package/src/model/curie.ts +2 -0
  295. package/src/model/cushman-codex.ts +2 -0
  296. package/src/model/davinci-codex.ts +2 -0
  297. package/src/model/davinci.ts +2 -0
  298. package/src/model/gpt-3.5-turbo-0301.ts +32 -0
  299. package/src/model/gpt-3.5-turbo.ts +32 -1
  300. package/src/model/gpt-4-0314.ts +32 -0
  301. package/src/model/gpt-4-32k-0314.ts +32 -0
  302. package/src/model/gpt-4-32k.ts +32 -0
  303. package/src/model/gpt-4.ts +32 -1
  304. package/src/model/text-ada-001.ts +2 -0
  305. package/src/model/text-babbage-001.ts +2 -0
  306. package/src/model/text-curie-001.ts +2 -0
  307. package/src/model/text-davinci-001.ts +2 -0
  308. package/src/model/text-davinci-002.ts +2 -0
  309. package/src/model/text-davinci-003.ts +2 -0
  310. package/src/model/text-davinci-edit-001.ts +2 -0
  311. package/src/model/text-embedding-ada-002.ts +2 -0
  312. package/src/model/text-search-ada-doc-001.ts +2 -0
  313. package/src/model/text-search-babbage-doc-001.ts +2 -0
  314. package/src/model/text-search-curie-doc-001.ts +2 -0
  315. package/src/model/text-search-davinci-doc-001.ts +2 -0
  316. package/src/model/text-similarity-ada-001.ts +2 -0
  317. package/src/model/text-similarity-babbage-001.ts +2 -0
  318. package/src/model/text-similarity-curie-001.ts +2 -0
  319. package/src/model/text-similarity-davinci-001.ts +2 -0
  320. package/src/modelParams.ts +17 -10
  321. package/src/specialTokens.ts +3 -0
  322. package/src/util.ts +15 -0
  323. package/esm/generateByModel.js +0 -13
  324. package/esm/generateByModel.js.map +0 -1
  325. package/esm/generateJsModels.js.map +0 -1
  326. package/src/generateByModel.ts +0 -20
  327. /package/esm/{generateByModel.d.ts → codegen/generateByModel.d.ts} +0 -0
  328. /package/esm/{generateJsModels.d.ts → codegen/generateJsEncodings.d.ts} +0 -0
@@ -0,0 +1,35 @@
1
+ import * as fs from 'fs/promises'
2
+ import * as path from 'path'
3
+ import { fileURLToPath } from 'url'
4
+ import { chatModelParams, modelToEncodingMap } from '../mapping.js'
5
+
6
+ // eslint-disable-next-line no-underscore-dangle
7
+ const __dirname = path.dirname(fileURLToPath(import.meta.url))
8
+
9
+ const chatModels = Object.keys(chatModelParams)
10
+
11
+ const template = await fs.readFile(
12
+ path.join(__dirname, '../encoding/cl100k_base.ts'),
13
+ 'utf8',
14
+ )
15
+
16
+ await Promise.all(
17
+ Object.entries(modelToEncodingMap).map(async ([modelName, encoding]) => {
18
+ await fs.mkdir(path.join(__dirname, '../model'), { recursive: true })
19
+ const isChatModel = chatModels.includes(modelName)
20
+
21
+ const content = isChatModel
22
+ ? template.replace(
23
+ `getEncodingApi('cl100k_base'`,
24
+ `getEncodingApiForModel('${modelName}'`,
25
+ )
26
+ : `// eslint-disable-next-line no-restricted-exports, import/no-default-export\nexport { default } from '../encoding/${encoding}.js'\nexport * from '../encoding/${encoding}.js'\n`
27
+ await fs.writeFile(
28
+ path.join(__dirname, `../model/${modelName}.ts`),
29
+ content,
30
+ )
31
+
32
+ // eslint-disable-next-line no-console
33
+ console.log(`encoding/${modelName}.ts`)
34
+ }),
35
+ )
@@ -28,7 +28,7 @@ const processFilesInDirectory = async (
28
28
  const __dirname = path.dirname(fileURLToPath(import.meta.url))
29
29
 
30
30
  await processFilesInDirectory(
31
- path.join(__dirname, '../data'),
31
+ path.join(__dirname, '../../data'),
32
32
  async (filePath) => {
33
33
  if (!filePath.endsWith('.tiktoken')) return
34
34
 
@@ -40,9 +40,9 @@ await processFilesInDirectory(
40
40
  return [token, Number.parseInt(rank!, 10)]
41
41
  })
42
42
 
43
- await fs.mkdir(path.join(__dirname, 'models'), { recursive: true })
43
+ await fs.mkdir(path.join(__dirname, '../encodings'), { recursive: true })
44
44
  await fs.writeFile(
45
- path.join(__dirname, `models/${modelName}.js`),
45
+ path.join(__dirname, `../encodings/${modelName}.js`),
46
46
  `/* eslint-disable */\n// @ts-nocheck\n// prettier-ignore\n/** @type {[string, number][]} */\nconst encoder = ${JSON.stringify(
47
47
  encoder,
48
48
  )};\nexport default encoder;`,
@@ -15,12 +15,16 @@ const {
15
15
  encode,
16
16
  encodeGenerator,
17
17
  isWithinTokenLimit,
18
+ encodeChat,
19
+ encodeChatGenerator,
18
20
  } = api
19
21
  export {
20
22
  decode,
21
23
  decodeAsyncGenerator,
22
24
  decodeGenerator,
23
25
  encode,
26
+ encodeChat,
27
+ encodeChatGenerator,
24
28
  encodeGenerator,
25
29
  isWithinTokenLimit,
26
30
  }
package/src/main.ts CHANGED
@@ -1 +1,3 @@
1
+ // eslint-disable-next-line no-restricted-exports, import/no-default-export
2
+ export { default } from './encoding/cl100k_base.js'
1
3
  export * from './encoding/cl100k_base.js'
package/src/mapping.ts CHANGED
@@ -1,4 +1,7 @@
1
1
  /* eslint-disable camelcase */
2
+
3
+ import { ImSep } from './specialTokens.js'
4
+
2
5
  export const cl100k_base = 'cl100k_base'
3
6
  export const p50k_base = 'p50k_base'
4
7
  export const p50k_edit = 'p50k_edit'
@@ -14,7 +17,11 @@ export const encodingNames = [
14
17
  export const modelToEncodingMap = {
15
18
  // chat
16
19
  'gpt-4': cl100k_base,
20
+ 'gpt-4-32k': cl100k_base,
21
+ 'gpt-4-0314': cl100k_base,
22
+ 'gpt-4-32k-0314': cl100k_base,
17
23
  'gpt-3.5-turbo': cl100k_base,
24
+ 'gpt-3.5-turbo-0301': cl100k_base,
18
25
  // text
19
26
  'text-davinci-003': p50k_base,
20
27
  'text-davinci-002': p50k_base,
@@ -51,5 +58,40 @@ export const modelToEncodingMap = {
51
58
  'code-search-ada-code-001': r50k_base,
52
59
  } as const
53
60
 
61
+ export interface ChatParameters {
62
+ messageSeparator: string
63
+ roleSeparator: string
64
+ }
65
+
66
+ const internalChatModelParams = {
67
+ 'gpt-3.5-turbo': {
68
+ messageSeparator: '\n',
69
+ roleSeparator: '\n',
70
+ },
71
+ 'gpt-3.5-turbo-0301': {
72
+ messageSeparator: '\n',
73
+ roleSeparator: '\n',
74
+ },
75
+ 'gpt-4': {
76
+ messageSeparator: '',
77
+ roleSeparator: ImSep,
78
+ },
79
+ 'gpt-4-0314': {
80
+ messageSeparator: '',
81
+ roleSeparator: ImSep,
82
+ },
83
+ 'gpt-4-32k': {
84
+ messageSeparator: '',
85
+ roleSeparator: ImSep,
86
+ },
87
+ 'gpt-4-32k-0314': {
88
+ messageSeparator: '',
89
+ roleSeparator: ImSep,
90
+ },
91
+ }
92
+
93
+ export const chatModelParams: Partial<Record<ModelName, ChatParameters>> =
94
+ internalChatModelParams
54
95
  export type ModelName = keyof typeof modelToEncodingMap
96
+ export type ChatModelName = keyof typeof internalChatModelParams
55
97
  export type EncodingName = (typeof modelToEncodingMap)[ModelName]
package/src/model/ada.ts CHANGED
@@ -1 +1,3 @@
1
+ // eslint-disable-next-line no-restricted-exports, import/no-default-export
2
+ export { default } from '../encoding/r50k_base.js'
1
3
  export * from '../encoding/r50k_base.js'
@@ -1 +1,3 @@
1
+ // eslint-disable-next-line no-restricted-exports, import/no-default-export
2
+ export { default } from '../encoding/r50k_base.js'
1
3
  export * from '../encoding/r50k_base.js'
@@ -1 +1,3 @@
1
+ // eslint-disable-next-line no-restricted-exports, import/no-default-export
2
+ export { default } from '../encoding/p50k_base.js'
1
3
  export * from '../encoding/p50k_base.js'
@@ -1 +1,3 @@
1
+ // eslint-disable-next-line no-restricted-exports, import/no-default-export
2
+ export { default } from '../encoding/p50k_base.js'
1
3
  export * from '../encoding/p50k_base.js'
@@ -1 +1,3 @@
1
+ // eslint-disable-next-line no-restricted-exports, import/no-default-export
2
+ export { default } from '../encoding/p50k_base.js'
1
3
  export * from '../encoding/p50k_base.js'
@@ -1 +1,3 @@
1
+ // eslint-disable-next-line no-restricted-exports, import/no-default-export
2
+ export { default } from '../encoding/p50k_base.js'
1
3
  export * from '../encoding/p50k_base.js'
@@ -1 +1,3 @@
1
+ // eslint-disable-next-line no-restricted-exports, import/no-default-export
2
+ export { default } from '../encoding/p50k_edit.js'
1
3
  export * from '../encoding/p50k_edit.js'
@@ -1 +1,3 @@
1
+ // eslint-disable-next-line no-restricted-exports, import/no-default-export
2
+ export { default } from '../encoding/r50k_base.js'
1
3
  export * from '../encoding/r50k_base.js'
@@ -1 +1,3 @@
1
+ // eslint-disable-next-line no-restricted-exports, import/no-default-export
2
+ export { default } from '../encoding/r50k_base.js'
1
3
  export * from '../encoding/r50k_base.js'
@@ -1 +1,3 @@
1
+ // eslint-disable-next-line no-restricted-exports, import/no-default-export
2
+ export { default } from '../encoding/r50k_base.js'
1
3
  export * from '../encoding/r50k_base.js'
@@ -1 +1,3 @@
1
+ // eslint-disable-next-line no-restricted-exports, import/no-default-export
2
+ export { default } from '../encoding/p50k_base.js'
1
3
  export * from '../encoding/p50k_base.js'
@@ -1 +1,3 @@
1
+ // eslint-disable-next-line no-restricted-exports, import/no-default-export
2
+ export { default } from '../encoding/p50k_base.js'
1
3
  export * from '../encoding/p50k_base.js'
@@ -1 +1,3 @@
1
+ // eslint-disable-next-line no-restricted-exports, import/no-default-export
2
+ export { default } from '../encoding/r50k_base.js'
1
3
  export * from '../encoding/r50k_base.js'
@@ -0,0 +1,32 @@
1
+ /* eslint-disable import/extensions */
2
+ import { convertTokenBytePairEncodingFromTuples } from '../convertTokenBytePairEncodingFromTuples.js'
3
+ import encoder from '../encodings/cl100k_base.js'
4
+ import { GptEncoding } from '../GptEncoding.js'
5
+
6
+ export * from '../specialTokens.js'
7
+
8
+ const api = GptEncoding.getEncodingApiForModel('gpt-3.5-turbo-0301', () =>
9
+ convertTokenBytePairEncodingFromTuples(encoder),
10
+ )
11
+ const {
12
+ decode,
13
+ decodeAsyncGenerator,
14
+ decodeGenerator,
15
+ encode,
16
+ encodeGenerator,
17
+ isWithinTokenLimit,
18
+ encodeChat,
19
+ encodeChatGenerator,
20
+ } = api
21
+ export {
22
+ decode,
23
+ decodeAsyncGenerator,
24
+ decodeGenerator,
25
+ encode,
26
+ encodeChat,
27
+ encodeChatGenerator,
28
+ encodeGenerator,
29
+ isWithinTokenLimit,
30
+ }
31
+ // eslint-disable-next-line import/no-default-export
32
+ export default api
@@ -1 +1,32 @@
1
- export * from '../encoding/cl100k_base.js'
1
+ /* eslint-disable import/extensions */
2
+ import { convertTokenBytePairEncodingFromTuples } from '../convertTokenBytePairEncodingFromTuples.js'
3
+ import encoder from '../encodings/cl100k_base.js'
4
+ import { GptEncoding } from '../GptEncoding.js'
5
+
6
+ export * from '../specialTokens.js'
7
+
8
+ const api = GptEncoding.getEncodingApiForModel('gpt-3.5-turbo', () =>
9
+ convertTokenBytePairEncodingFromTuples(encoder),
10
+ )
11
+ const {
12
+ decode,
13
+ decodeAsyncGenerator,
14
+ decodeGenerator,
15
+ encode,
16
+ encodeGenerator,
17
+ isWithinTokenLimit,
18
+ encodeChat,
19
+ encodeChatGenerator,
20
+ } = api
21
+ export {
22
+ decode,
23
+ decodeAsyncGenerator,
24
+ decodeGenerator,
25
+ encode,
26
+ encodeChat,
27
+ encodeChatGenerator,
28
+ encodeGenerator,
29
+ isWithinTokenLimit,
30
+ }
31
+ // eslint-disable-next-line import/no-default-export
32
+ export default api
@@ -0,0 +1,32 @@
1
+ /* eslint-disable import/extensions */
2
+ import { convertTokenBytePairEncodingFromTuples } from '../convertTokenBytePairEncodingFromTuples.js'
3
+ import encoder from '../encodings/cl100k_base.js'
4
+ import { GptEncoding } from '../GptEncoding.js'
5
+
6
+ export * from '../specialTokens.js'
7
+
8
+ const api = GptEncoding.getEncodingApiForModel('gpt-4-0314', () =>
9
+ convertTokenBytePairEncodingFromTuples(encoder),
10
+ )
11
+ const {
12
+ decode,
13
+ decodeAsyncGenerator,
14
+ decodeGenerator,
15
+ encode,
16
+ encodeGenerator,
17
+ isWithinTokenLimit,
18
+ encodeChat,
19
+ encodeChatGenerator,
20
+ } = api
21
+ export {
22
+ decode,
23
+ decodeAsyncGenerator,
24
+ decodeGenerator,
25
+ encode,
26
+ encodeChat,
27
+ encodeChatGenerator,
28
+ encodeGenerator,
29
+ isWithinTokenLimit,
30
+ }
31
+ // eslint-disable-next-line import/no-default-export
32
+ export default api
@@ -0,0 +1,32 @@
1
+ /* eslint-disable import/extensions */
2
+ import { convertTokenBytePairEncodingFromTuples } from '../convertTokenBytePairEncodingFromTuples.js'
3
+ import encoder from '../encodings/cl100k_base.js'
4
+ import { GptEncoding } from '../GptEncoding.js'
5
+
6
+ export * from '../specialTokens.js'
7
+
8
+ const api = GptEncoding.getEncodingApiForModel('gpt-4-32k-0314', () =>
9
+ convertTokenBytePairEncodingFromTuples(encoder),
10
+ )
11
+ const {
12
+ decode,
13
+ decodeAsyncGenerator,
14
+ decodeGenerator,
15
+ encode,
16
+ encodeGenerator,
17
+ isWithinTokenLimit,
18
+ encodeChat,
19
+ encodeChatGenerator,
20
+ } = api
21
+ export {
22
+ decode,
23
+ decodeAsyncGenerator,
24
+ decodeGenerator,
25
+ encode,
26
+ encodeChat,
27
+ encodeChatGenerator,
28
+ encodeGenerator,
29
+ isWithinTokenLimit,
30
+ }
31
+ // eslint-disable-next-line import/no-default-export
32
+ export default api
@@ -0,0 +1,32 @@
1
+ /* eslint-disable import/extensions */
2
+ import { convertTokenBytePairEncodingFromTuples } from '../convertTokenBytePairEncodingFromTuples.js'
3
+ import encoder from '../encodings/cl100k_base.js'
4
+ import { GptEncoding } from '../GptEncoding.js'
5
+
6
+ export * from '../specialTokens.js'
7
+
8
+ const api = GptEncoding.getEncodingApiForModel('gpt-4-32k', () =>
9
+ convertTokenBytePairEncodingFromTuples(encoder),
10
+ )
11
+ const {
12
+ decode,
13
+ decodeAsyncGenerator,
14
+ decodeGenerator,
15
+ encode,
16
+ encodeGenerator,
17
+ isWithinTokenLimit,
18
+ encodeChat,
19
+ encodeChatGenerator,
20
+ } = api
21
+ export {
22
+ decode,
23
+ decodeAsyncGenerator,
24
+ decodeGenerator,
25
+ encode,
26
+ encodeChat,
27
+ encodeChatGenerator,
28
+ encodeGenerator,
29
+ isWithinTokenLimit,
30
+ }
31
+ // eslint-disable-next-line import/no-default-export
32
+ export default api
@@ -1 +1,32 @@
1
- export * from '../encoding/cl100k_base.js'
1
+ /* eslint-disable import/extensions */
2
+ import { convertTokenBytePairEncodingFromTuples } from '../convertTokenBytePairEncodingFromTuples.js'
3
+ import encoder from '../encodings/cl100k_base.js'
4
+ import { GptEncoding } from '../GptEncoding.js'
5
+
6
+ export * from '../specialTokens.js'
7
+
8
+ const api = GptEncoding.getEncodingApiForModel('gpt-4', () =>
9
+ convertTokenBytePairEncodingFromTuples(encoder),
10
+ )
11
+ const {
12
+ decode,
13
+ decodeAsyncGenerator,
14
+ decodeGenerator,
15
+ encode,
16
+ encodeGenerator,
17
+ isWithinTokenLimit,
18
+ encodeChat,
19
+ encodeChatGenerator,
20
+ } = api
21
+ export {
22
+ decode,
23
+ decodeAsyncGenerator,
24
+ decodeGenerator,
25
+ encode,
26
+ encodeChat,
27
+ encodeChatGenerator,
28
+ encodeGenerator,
29
+ isWithinTokenLimit,
30
+ }
31
+ // eslint-disable-next-line import/no-default-export
32
+ export default api
@@ -1 +1,3 @@
1
+ // eslint-disable-next-line no-restricted-exports, import/no-default-export
2
+ export { default } from '../encoding/r50k_base.js'
1
3
  export * from '../encoding/r50k_base.js'
@@ -1 +1,3 @@
1
+ // eslint-disable-next-line no-restricted-exports, import/no-default-export
2
+ export { default } from '../encoding/r50k_base.js'
1
3
  export * from '../encoding/r50k_base.js'
@@ -1 +1,3 @@
1
+ // eslint-disable-next-line no-restricted-exports, import/no-default-export
2
+ export { default } from '../encoding/r50k_base.js'
1
3
  export * from '../encoding/r50k_base.js'
@@ -1 +1,3 @@
1
+ // eslint-disable-next-line no-restricted-exports, import/no-default-export
2
+ export { default } from '../encoding/r50k_base.js'
1
3
  export * from '../encoding/r50k_base.js'
@@ -1 +1,3 @@
1
+ // eslint-disable-next-line no-restricted-exports, import/no-default-export
2
+ export { default } from '../encoding/p50k_base.js'
1
3
  export * from '../encoding/p50k_base.js'
@@ -1 +1,3 @@
1
+ // eslint-disable-next-line no-restricted-exports, import/no-default-export
2
+ export { default } from '../encoding/p50k_base.js'
1
3
  export * from '../encoding/p50k_base.js'
@@ -1 +1,3 @@
1
+ // eslint-disable-next-line no-restricted-exports, import/no-default-export
2
+ export { default } from '../encoding/p50k_edit.js'
1
3
  export * from '../encoding/p50k_edit.js'
@@ -1 +1,3 @@
1
+ // eslint-disable-next-line no-restricted-exports, import/no-default-export
2
+ export { default } from '../encoding/cl100k_base.js'
1
3
  export * from '../encoding/cl100k_base.js'
@@ -1 +1,3 @@
1
+ // eslint-disable-next-line no-restricted-exports, import/no-default-export
2
+ export { default } from '../encoding/r50k_base.js'
1
3
  export * from '../encoding/r50k_base.js'
@@ -1 +1,3 @@
1
+ // eslint-disable-next-line no-restricted-exports, import/no-default-export
2
+ export { default } from '../encoding/r50k_base.js'
1
3
  export * from '../encoding/r50k_base.js'
@@ -1 +1,3 @@
1
+ // eslint-disable-next-line no-restricted-exports, import/no-default-export
2
+ export { default } from '../encoding/r50k_base.js'
1
3
  export * from '../encoding/r50k_base.js'
@@ -1 +1,3 @@
1
+ // eslint-disable-next-line no-restricted-exports, import/no-default-export
2
+ export { default } from '../encoding/r50k_base.js'
1
3
  export * from '../encoding/r50k_base.js'
@@ -1 +1,3 @@
1
+ // eslint-disable-next-line no-restricted-exports, import/no-default-export
2
+ export { default } from '../encoding/r50k_base.js'
1
3
  export * from '../encoding/r50k_base.js'
@@ -1 +1,3 @@
1
+ // eslint-disable-next-line no-restricted-exports, import/no-default-export
2
+ export { default } from '../encoding/r50k_base.js'
1
3
  export * from '../encoding/r50k_base.js'
@@ -1 +1,3 @@
1
+ // eslint-disable-next-line no-restricted-exports, import/no-default-export
2
+ export { default } from '../encoding/r50k_base.js'
1
3
  export * from '../encoding/r50k_base.js'
@@ -1 +1,3 @@
1
+ // eslint-disable-next-line no-restricted-exports, import/no-default-export
2
+ export { default } from '../encoding/r50k_base.js'
1
3
  export * from '../encoding/r50k_base.js'
@@ -1,15 +1,18 @@
1
1
  /* eslint-disable no-magic-numbers */
2
2
  import { EncoderMap } from './EncoderMap.js'
3
- import type { EncodingName } from './mapping.js'
3
+ import type { EncodingName, ModelName } from './mapping.js'
4
4
  import {
5
5
  EndOfPrompt,
6
6
  EndOfText,
7
7
  FimMiddle,
8
8
  FimPrefix,
9
9
  FimSuffix,
10
+ ImEnd,
11
+ ImSep,
12
+ ImStart,
10
13
  } from './specialTokens.js'
11
14
 
12
- export interface ModelParams {
15
+ export interface EncodingParams {
13
16
  /**
14
17
  * The expected total number of tokens in the vocabulary, including both regular and special tokens.
15
18
  * This parameter is used to ensure that the combined number of regular and special tokens matches the expected total.
@@ -24,12 +27,13 @@ export interface ModelParams {
24
27
  tokenSplitRegex: RegExp
25
28
  mergeableBytePairRanks: EncoderMap
26
29
  specialTokenMapping: Map<string, number>
30
+ modelName?: ModelName
27
31
  }
28
32
 
29
33
  const tokenSplitRegex =
30
34
  /'s|'t|'re|'ve|'m|'ll|'d| ?\p{L}+| ?\p{N}+| ?[^\s\p{L}\p{N}]+|\s+(?!\S)|\s+/gu
31
35
 
32
- function R50KBase(mergeableBytePairRanks: EncoderMap): ModelParams {
36
+ function R50KBase(mergeableBytePairRanks: EncoderMap): EncodingParams {
33
37
  return {
34
38
  expectedVocabularySize: 50_257,
35
39
  tokenSplitRegex,
@@ -38,7 +42,7 @@ function R50KBase(mergeableBytePairRanks: EncoderMap): ModelParams {
38
42
  }
39
43
  }
40
44
 
41
- function P50KBase(mergeableBytePairRanks: EncoderMap): ModelParams {
45
+ function P50KBase(mergeableBytePairRanks: EncoderMap): EncodingParams {
42
46
  return {
43
47
  expectedVocabularySize: 50_281,
44
48
  tokenSplitRegex,
@@ -47,7 +51,7 @@ function P50KBase(mergeableBytePairRanks: EncoderMap): ModelParams {
47
51
  }
48
52
  }
49
53
 
50
- function P50KEdit(mergeableBytePairRanks: EncoderMap): ModelParams {
54
+ function P50KEdit(mergeableBytePairRanks: EncoderMap): EncodingParams {
51
55
  const specialTokenMapping = new Map<string, number>([
52
56
  [EndOfText, 50_256],
53
57
  [FimPrefix, 50_281],
@@ -62,12 +66,15 @@ function P50KEdit(mergeableBytePairRanks: EncoderMap): ModelParams {
62
66
  }
63
67
  }
64
68
 
65
- function Cl100KBase(mergeableBytePairRanks: EncoderMap): ModelParams {
69
+ function Cl100KBase(mergeableBytePairRanks: EncoderMap): EncodingParams {
66
70
  const specialTokenMapping = new Map<string, number>([
67
71
  [EndOfText, 100_257],
68
72
  [FimPrefix, 100_258],
69
73
  [FimMiddle, 100_259],
70
74
  [FimSuffix, 100_260],
75
+ [ImStart, 100_264],
76
+ [ImEnd, 100_265],
77
+ [ImSep, 100_266],
71
78
  [EndOfPrompt, 100_276],
72
79
  ])
73
80
 
@@ -84,10 +91,10 @@ export type GetMergeableRanksAsyncFn = (
84
91
  encodingName: EncodingName,
85
92
  ) => Promise<EncoderMap>
86
93
 
87
- export function getModelParams(
94
+ export function getEncodingParams(
88
95
  encodingName: EncodingName,
89
96
  getMergeableRanks: GetMergeableRanksFn,
90
- ): ModelParams {
97
+ ): EncodingParams {
91
98
  const mergeableBytePairRanks = getMergeableRanks(encodingName)
92
99
  switch (encodingName.toLowerCase()) {
93
100
  case 'r50k_base':
@@ -110,7 +117,7 @@ export function getModelParams(
110
117
  export async function getModelParamsAsync(
111
118
  encodingName: EncodingName,
112
119
  getMergeableRanks: GetMergeableRanksAsyncFn,
113
- ): Promise<ModelParams> {
120
+ ): Promise<EncodingParams> {
114
121
  const mergeableBytePairRanks = await getMergeableRanks(encodingName)
115
- return getModelParams(encodingName, () => mergeableBytePairRanks)
122
+ return getEncodingParams(encodingName, () => mergeableBytePairRanks)
116
123
  }
@@ -2,4 +2,7 @@ export const EndOfText = '<|endoftext|>'
2
2
  export const FimPrefix = '<|fim_prefix|>'
3
3
  export const FimMiddle = '<|fim_middle|>'
4
4
  export const FimSuffix = '<|fim_suffix|>'
5
+ export const ImStart = '<|im_start|>' // 100264
6
+ export const ImEnd = '<|im_end|>' // 100265
7
+ export const ImSep = '<|im_sep|>' // 100266
5
8
  export const EndOfPrompt = '<|endofprompt|>'
package/src/util.ts ADDED
@@ -0,0 +1,15 @@
1
+ import { escapeRegExp } from './escapeRegExp.js'
2
+
3
+ export function getMaxValueFromMap(map: Map<unknown, number>): number {
4
+ let max = 0
5
+ map.forEach((val) => {
6
+ max = Math.max(max, val)
7
+ })
8
+ return max
9
+ }
10
+
11
+ export function getSpecialTokenRegex(tokens: Set<string>): RegExp {
12
+ const escapedTokens = [...tokens].map(escapeRegExp)
13
+ const inner = escapedTokens.join('|')
14
+ return new RegExp(`(${inner})`)
15
+ }
@@ -1,13 +0,0 @@
1
- import * as fs from 'fs/promises';
2
- import * as path from 'path';
3
- import { fileURLToPath } from 'url';
4
- import { modelToEncodingMap } from './mapping.js';
5
- // eslint-disable-next-line no-underscore-dangle
6
- const __dirname = path.dirname(fileURLToPath(import.meta.url));
7
- await Promise.all(Object.entries(modelToEncodingMap).map(async ([modelName, encoding]) => {
8
- await fs.mkdir(path.join(__dirname, 'model'), { recursive: true });
9
- await fs.writeFile(path.join(__dirname, `model/${modelName}.ts`), `export * from '../encoding/${encoding}.js'\n`);
10
- // eslint-disable-next-line no-console
11
- console.log(`encoding/${modelName}.js`);
12
- }));
13
- //# sourceMappingURL=generateByModel.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generateByModel.js","sourceRoot":"","sources":["../src/generateByModel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,aAAa,CAAA;AACjC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAA;AACnC,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAEjD,gDAAgD;AAChD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;AAE9D,MAAM,OAAO,CAAC,GAAG,CACf,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,EAAE;IACrE,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAClE,MAAM,EAAE,CAAC,SAAS,CAChB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,SAAS,KAAK,CAAC,EAC7C,8BAA8B,QAAQ,QAAQ,CAC/C,CAAA;IAED,sCAAsC;IACtC,OAAO,CAAC,GAAG,CAAC,YAAY,SAAS,KAAK,CAAC,CAAA;AACzC,CAAC,CAAC,CACH,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"generateJsModels.js","sourceRoot":"","sources":["../src/generateJsModels.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,aAAa,CAAA;AACjC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAA;AAInC,MAAM,uBAAuB,GAAG,KAAK,EACnC,aAAqB,EACrB,EAAoB,EACL,EAAE;IACjB,IAAI;QACF,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAA;QAEtE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;YACxB,uCAAuC;YACvC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;gBAAE,SAAQ;YAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;YACpD,4CAA4C;YAC5C,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAA;SACnB;KACF;IAAC,OAAO,KAAK,EAAE;QACd,sCAAsC;QACtC,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAA;KAC3C;AACH,CAAC,CAAA;AAED,gDAAgD;AAChD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;AAE9D,MAAM,uBAAuB,CAC3B,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,EAC/B,KAAK,EAAE,QAAQ,EAAE,EAAE;IACjB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC;QAAE,OAAM;IAE3C,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAA;IACtD,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;IACnD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IACjC,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QAC3C,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAClC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAK,EAAE,EAAE,CAAC,CAAC,CAAA;IAC5C,CAAC,CAAC,CAAA;IAEF,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IACnE,MAAM,EAAE,CAAC,SAAS,CAChB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,SAAS,KAAK,CAAC,EAC9C,gHAAgH,IAAI,CAAC,SAAS,CAC5H,OAAO,CACR,4BAA4B,CAC9B,CAAA;IAED,sCAAsC;IACtC,OAAO,CAAC,GAAG,CAAC,SAAS,SAAS,KAAK,CAAC,CAAA;AACtC,CAAC,CACF,CAAA"}