@gent-js/gent 0.1.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 (336) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +136 -0
  3. package/dist/generated/packageEnv.d.ts +5 -0
  4. package/dist/generated/packageEnv.js +7 -0
  5. package/dist/generated/packageEnv.js.map +1 -0
  6. package/dist/src/buildDocumentFromJsonTemplate.d.ts +3 -0
  7. package/dist/src/buildDocumentFromJsonTemplate.js +27 -0
  8. package/dist/src/buildDocumentFromJsonTemplate.js.map +1 -0
  9. package/dist/src/buildDocumentFromTextTemplate.d.ts +3 -0
  10. package/dist/src/buildDocumentFromTextTemplate.js +27 -0
  11. package/dist/src/buildDocumentFromTextTemplate.js.map +1 -0
  12. package/dist/src/cli.d.ts +2 -0
  13. package/dist/src/cli.js +103 -0
  14. package/dist/src/cli.js.map +1 -0
  15. package/dist/src/cliConsts.d.ts +3 -0
  16. package/dist/src/cliConsts.js +3 -0
  17. package/dist/src/cliConsts.js.map +1 -0
  18. package/dist/src/cliTypes.d.ts +7 -0
  19. package/dist/src/cliTypes.js +2 -0
  20. package/dist/src/cliTypes.js.map +1 -0
  21. package/dist/src/command/commandManager/commandManager.d.ts +7 -0
  22. package/dist/src/command/commandManager/commandManager.js +83 -0
  23. package/dist/src/command/commandManager/commandManager.js.map +1 -0
  24. package/dist/src/command/commandParser/commandParser.d.ts +11 -0
  25. package/dist/src/command/commandParser/commandParser.js +90 -0
  26. package/dist/src/command/commandParser/commandParser.js.map +1 -0
  27. package/dist/src/command/commandParser/parseCommand.d.ts +2 -0
  28. package/dist/src/command/commandParser/parseCommand.js +19 -0
  29. package/dist/src/command/commandParser/parseCommand.js.map +1 -0
  30. package/dist/src/command/commandParser/types.d.ts +33 -0
  31. package/dist/src/command/commandParser/types.js +2 -0
  32. package/dist/src/command/commandParser/types.js.map +1 -0
  33. package/dist/src/command/commandParser/visitor.d.ts +2 -0
  34. package/dist/src/command/commandParser/visitor.js +160 -0
  35. package/dist/src/command/commandParser/visitor.js.map +1 -0
  36. package/dist/src/command/commands/date/anytime.d.ts +2 -0
  37. package/dist/src/command/commands/date/anytime.js +8 -0
  38. package/dist/src/command/commands/date/anytime.js.map +1 -0
  39. package/dist/src/command/commands/date/timestamp.d.ts +2 -0
  40. package/dist/src/command/commands/date/timestamp.js +71 -0
  41. package/dist/src/command/commands/date/timestamp.js.map +1 -0
  42. package/dist/src/command/commands/finance/creditCardCVV.d.ts +2 -0
  43. package/dist/src/command/commands/finance/creditCardCVV.js +8 -0
  44. package/dist/src/command/commands/finance/creditCardCVV.js.map +1 -0
  45. package/dist/src/command/commands/finance/creditCardIssuer.d.ts +2 -0
  46. package/dist/src/command/commands/finance/creditCardIssuer.js +8 -0
  47. package/dist/src/command/commands/finance/creditCardIssuer.js.map +1 -0
  48. package/dist/src/command/commands/finance/creditCardNumber.d.ts +6 -0
  49. package/dist/src/command/commands/finance/creditCardNumber.js +12 -0
  50. package/dist/src/command/commands/finance/creditCardNumber.js.map +1 -0
  51. package/dist/src/command/commands/hacker/hacker.noun.d.ts +2 -0
  52. package/dist/src/command/commands/hacker/hacker.noun.js +8 -0
  53. package/dist/src/command/commands/hacker/hacker.noun.js.map +1 -0
  54. package/dist/src/command/commands/index.d.ts +1 -0
  55. package/dist/src/command/commands/index.js +95 -0
  56. package/dist/src/command/commands/index.js.map +1 -0
  57. package/dist/src/command/commands/internet/domainName.d.ts +2 -0
  58. package/dist/src/command/commands/internet/domainName.js +8 -0
  59. package/dist/src/command/commands/internet/domainName.js.map +1 -0
  60. package/dist/src/command/commands/internet/email.d.ts +2 -0
  61. package/dist/src/command/commands/internet/email.js +8 -0
  62. package/dist/src/command/commands/internet/email.js.map +1 -0
  63. package/dist/src/command/commands/internet/httpMethod.d.ts +2 -0
  64. package/dist/src/command/commands/internet/httpMethod.js +8 -0
  65. package/dist/src/command/commands/internet/httpMethod.js.map +1 -0
  66. package/dist/src/command/commands/internet/httpStatusCode.d.ts +2 -0
  67. package/dist/src/command/commands/internet/httpStatusCode.js +8 -0
  68. package/dist/src/command/commands/internet/httpStatusCode.js.map +1 -0
  69. package/dist/src/command/commands/internet/ip.d.ts +2 -0
  70. package/dist/src/command/commands/internet/ip.js +8 -0
  71. package/dist/src/command/commands/internet/ip.js.map +1 -0
  72. package/dist/src/command/commands/internet/ipv4.d.ts +2 -0
  73. package/dist/src/command/commands/internet/ipv4.js +8 -0
  74. package/dist/src/command/commands/internet/ipv4.js.map +1 -0
  75. package/dist/src/command/commands/internet/ipv6.d.ts +2 -0
  76. package/dist/src/command/commands/internet/ipv6.js +8 -0
  77. package/dist/src/command/commands/internet/ipv6.js.map +1 -0
  78. package/dist/src/command/commands/internet/mac.d.ts +2 -0
  79. package/dist/src/command/commands/internet/mac.js +8 -0
  80. package/dist/src/command/commands/internet/mac.js.map +1 -0
  81. package/dist/src/command/commands/internet/password.d.ts +6 -0
  82. package/dist/src/command/commands/internet/password.js +12 -0
  83. package/dist/src/command/commands/internet/password.js.map +1 -0
  84. package/dist/src/command/commands/internet/pri.d.ts +2 -0
  85. package/dist/src/command/commands/internet/pri.js +13 -0
  86. package/dist/src/command/commands/internet/pri.js.map +1 -0
  87. package/dist/src/command/commands/internet/url.d.ts +2 -0
  88. package/dist/src/command/commands/internet/url.js +8 -0
  89. package/dist/src/command/commands/internet/url.js.map +1 -0
  90. package/dist/src/command/commands/internet/userAgent.d.ts +2 -0
  91. package/dist/src/command/commands/internet/userAgent.js +8 -0
  92. package/dist/src/command/commands/internet/userAgent.js.map +1 -0
  93. package/dist/src/command/commands/internet/username.d.ts +2 -0
  94. package/dist/src/command/commands/internet/username.js +8 -0
  95. package/dist/src/command/commands/internet/username.js.map +1 -0
  96. package/dist/src/command/commands/location/country.d.ts +2 -0
  97. package/dist/src/command/commands/location/country.js +8 -0
  98. package/dist/src/command/commands/location/country.js.map +1 -0
  99. package/dist/src/command/commands/location/countryCode.d.ts +7 -0
  100. package/dist/src/command/commands/location/countryCode.js +13 -0
  101. package/dist/src/command/commands/location/countryCode.js.map +1 -0
  102. package/dist/src/command/commands/location/timeZone.d.ts +2 -0
  103. package/dist/src/command/commands/location/timeZone.js +8 -0
  104. package/dist/src/command/commands/location/timeZone.js.map +1 -0
  105. package/dist/src/command/commands/lorem/lorem.sentences.d.ts +7 -0
  106. package/dist/src/command/commands/lorem/lorem.sentences.js +14 -0
  107. package/dist/src/command/commands/lorem/lorem.sentences.js.map +1 -0
  108. package/dist/src/command/commands/number/int.d.ts +7 -0
  109. package/dist/src/command/commands/number/int.js +13 -0
  110. package/dist/src/command/commands/number/int.js.map +1 -0
  111. package/dist/src/command/commands/number/pid.d.ts +2 -0
  112. package/dist/src/command/commands/number/pid.js +14 -0
  113. package/dist/src/command/commands/number/pid.js.map +1 -0
  114. package/dist/src/command/commands/others/length.d.ts +7 -0
  115. package/dist/src/command/commands/others/length.js +13 -0
  116. package/dist/src/command/commands/others/length.js.map +1 -0
  117. package/dist/src/command/commands/phone/imei.d.ts +2 -0
  118. package/dist/src/command/commands/phone/imei.js +8 -0
  119. package/dist/src/command/commands/phone/imei.js.map +1 -0
  120. package/dist/src/command/commands/phone/phone.number.d.ts +6 -0
  121. package/dist/src/command/commands/phone/phone.number.js +12 -0
  122. package/dist/src/command/commands/phone/phone.number.js.map +1 -0
  123. package/dist/src/command/commands/string/alpha.d.ts +7 -0
  124. package/dist/src/command/commands/string/alpha.js +13 -0
  125. package/dist/src/command/commands/string/alpha.js.map +1 -0
  126. package/dist/src/command/commands/string/alphanumeric.d.ts +7 -0
  127. package/dist/src/command/commands/string/alphanumeric.js +13 -0
  128. package/dist/src/command/commands/string/alphanumeric.js.map +1 -0
  129. package/dist/src/command/commands/string/binary.d.ts +7 -0
  130. package/dist/src/command/commands/string/binary.js +13 -0
  131. package/dist/src/command/commands/string/binary.js.map +1 -0
  132. package/dist/src/command/commands/string/hexadecimal.d.ts +7 -0
  133. package/dist/src/command/commands/string/hexadecimal.js +13 -0
  134. package/dist/src/command/commands/string/hexadecimal.js.map +1 -0
  135. package/dist/src/command/commands/string/numeric.d.ts +6 -0
  136. package/dist/src/command/commands/string/numeric.js +12 -0
  137. package/dist/src/command/commands/string/numeric.js.map +1 -0
  138. package/dist/src/command/commands/string/octal.d.ts +7 -0
  139. package/dist/src/command/commands/string/octal.js +13 -0
  140. package/dist/src/command/commands/string/octal.js.map +1 -0
  141. package/dist/src/command/commands/string/ulid.d.ts +2 -0
  142. package/dist/src/command/commands/string/ulid.js +8 -0
  143. package/dist/src/command/commands/string/ulid.js.map +1 -0
  144. package/dist/src/command/commands/string/uuid.d.ts +2 -0
  145. package/dist/src/command/commands/string/uuid.js +8 -0
  146. package/dist/src/command/commands/string/uuid.js.map +1 -0
  147. package/dist/src/command/commands/system/directoryPath.d.ts +2 -0
  148. package/dist/src/command/commands/system/directoryPath.js +8 -0
  149. package/dist/src/command/commands/system/directoryPath.js.map +1 -0
  150. package/dist/src/command/commands/system/filePath.d.ts +2 -0
  151. package/dist/src/command/commands/system/filePath.js +8 -0
  152. package/dist/src/command/commands/system/filePath.js.map +1 -0
  153. package/dist/src/command/commands/system/mimeType.d.ts +2 -0
  154. package/dist/src/command/commands/system/mimeType.js +8 -0
  155. package/dist/src/command/commands/system/mimeType.js.map +1 -0
  156. package/dist/src/command/commands/system/networkInterface.d.ts +2 -0
  157. package/dist/src/command/commands/system/networkInterface.js +8 -0
  158. package/dist/src/command/commands/system/networkInterface.js.map +1 -0
  159. package/dist/src/command/commands/system/semver.d.ts +2 -0
  160. package/dist/src/command/commands/system/semver.js +8 -0
  161. package/dist/src/command/commands/system/semver.js.map +1 -0
  162. package/dist/src/command/consts.d.ts +3 -0
  163. package/dist/src/command/consts.js +4 -0
  164. package/dist/src/command/consts.js.map +1 -0
  165. package/dist/src/command/index.d.ts +4 -0
  166. package/dist/src/command/index.js +3 -0
  167. package/dist/src/command/index.js.map +1 -0
  168. package/dist/src/command/type.d.ts +22 -0
  169. package/dist/src/command/type.js +2 -0
  170. package/dist/src/command/type.js.map +1 -0
  171. package/dist/src/command/utils.d.ts +2 -0
  172. package/dist/src/command/utils.js +9 -0
  173. package/dist/src/command/utils.js.map +1 -0
  174. package/dist/src/commandDocument/buildCommandDocumentFragments.d.ts +4 -0
  175. package/dist/src/commandDocument/buildCommandDocumentFragments.js +12 -0
  176. package/dist/src/commandDocument/buildCommandDocumentFragments.js.map +1 -0
  177. package/dist/src/commandDocument/createCommandDocumentFragment.d.ts +3 -0
  178. package/dist/src/commandDocument/createCommandDocumentFragment.js +14 -0
  179. package/dist/src/commandDocument/createCommandDocumentFragment.js.map +1 -0
  180. package/dist/src/commandDocument/index.d.ts +1 -0
  181. package/dist/src/commandDocument/index.js +2 -0
  182. package/dist/src/commandDocument/index.js.map +1 -0
  183. package/dist/src/commandTemplate/index.d.ts +2 -0
  184. package/dist/src/commandTemplate/index.js +3 -0
  185. package/dist/src/commandTemplate/index.js.map +1 -0
  186. package/dist/src/commandTemplate/parseAndEmbedCommandExpression.d.ts +3 -0
  187. package/dist/src/commandTemplate/parseAndEmbedCommandExpression.js +12 -0
  188. package/dist/src/commandTemplate/parseAndEmbedCommandExpression.js.map +1 -0
  189. package/dist/src/commandTemplate/types.d.ts +3 -0
  190. package/dist/src/commandTemplate/types.js +2 -0
  191. package/dist/src/commandTemplate/types.js.map +1 -0
  192. package/dist/src/common/weightedItemFeeder.d.ts +15 -0
  193. package/dist/src/common/weightedItemFeeder.js +67 -0
  194. package/dist/src/common/weightedItemFeeder.js.map +1 -0
  195. package/dist/src/consts.d.ts +14 -0
  196. package/dist/src/consts.js +17 -0
  197. package/dist/src/consts.js.map +1 -0
  198. package/dist/src/createDocumentFeeder.d.ts +5 -0
  199. package/dist/src/createDocumentFeeder.js +64 -0
  200. package/dist/src/createDocumentFeeder.js.map +1 -0
  201. package/dist/src/createGeneratingDocumentStream.d.ts +4 -0
  202. package/dist/src/createGeneratingDocumentStream.js +33 -0
  203. package/dist/src/createGeneratingDocumentStream.js.map +1 -0
  204. package/dist/src/createGeneratingLogStream.d.ts +4 -0
  205. package/dist/src/createGeneratingLogStream.js +21 -0
  206. package/dist/src/createGeneratingLogStream.js.map +1 -0
  207. package/dist/src/debugFileWriter.d.ts +5 -0
  208. package/dist/src/debugFileWriter.js +33 -0
  209. package/dist/src/debugFileWriter.js.map +1 -0
  210. package/dist/src/document/createDocumentContextIterator.d.ts +2 -0
  211. package/dist/src/document/createDocumentContextIterator.js +15 -0
  212. package/dist/src/document/createDocumentContextIterator.js.map +1 -0
  213. package/dist/src/document/generatingDocument.d.ts +7 -0
  214. package/dist/src/document/generatingDocument.js +13 -0
  215. package/dist/src/document/generatingDocument.js.map +1 -0
  216. package/dist/src/document/index.d.ts +4 -0
  217. package/dist/src/document/index.js +4 -0
  218. package/dist/src/document/index.js.map +1 -0
  219. package/dist/src/document/types.d.ts +20 -0
  220. package/dist/src/document/types.js +2 -0
  221. package/dist/src/document/types.js.map +1 -0
  222. package/dist/src/document/utils.d.ts +2 -0
  223. package/dist/src/document/utils.js +9 -0
  224. package/dist/src/document/utils.js.map +1 -0
  225. package/dist/src/index.d.ts +1 -0
  226. package/dist/src/index.js +2 -0
  227. package/dist/src/index.js.map +1 -0
  228. package/dist/src/json/abstractJsonable.d.ts +12 -0
  229. package/dist/src/json/abstractJsonable.js +33 -0
  230. package/dist/src/json/abstractJsonable.js.map +1 -0
  231. package/dist/src/json/createJsonable.d.ts +3 -0
  232. package/dist/src/json/createJsonable.js +31 -0
  233. package/dist/src/json/createJsonable.js.map +1 -0
  234. package/dist/src/json/createJsonableTransformer.d.ts +4 -0
  235. package/dist/src/json/createJsonableTransformer.js +251 -0
  236. package/dist/src/json/createJsonableTransformer.js.map +1 -0
  237. package/dist/src/json/index.d.ts +6 -0
  238. package/dist/src/json/index.js +4 -0
  239. package/dist/src/json/index.js.map +1 -0
  240. package/dist/src/json/jsonConsts.d.ts +1 -0
  241. package/dist/src/json/jsonConsts.js +9 -0
  242. package/dist/src/json/jsonConsts.js.map +1 -0
  243. package/dist/src/json/jsonTypes.d.ts +8 -0
  244. package/dist/src/json/jsonTypes.js +2 -0
  245. package/dist/src/json/jsonTypes.js.map +1 -0
  246. package/dist/src/json/jsonableClasses/arrayJsonable.d.ts +11 -0
  247. package/dist/src/json/jsonableClasses/arrayJsonable.js +40 -0
  248. package/dist/src/json/jsonableClasses/arrayJsonable.js.map +1 -0
  249. package/dist/src/json/jsonableClasses/booleanJsonable.d.ts +8 -0
  250. package/dist/src/json/jsonableClasses/booleanJsonable.js +15 -0
  251. package/dist/src/json/jsonableClasses/booleanJsonable.js.map +1 -0
  252. package/dist/src/json/jsonableClasses/nullJsonable.d.ts +8 -0
  253. package/dist/src/json/jsonableClasses/nullJsonable.js +11 -0
  254. package/dist/src/json/jsonableClasses/nullJsonable.js.map +1 -0
  255. package/dist/src/json/jsonableClasses/numberJsonable.d.ts +9 -0
  256. package/dist/src/json/jsonableClasses/numberJsonable.js +18 -0
  257. package/dist/src/json/jsonableClasses/numberJsonable.js.map +1 -0
  258. package/dist/src/json/jsonableClasses/objectJsonable.d.ts +10 -0
  259. package/dist/src/json/jsonableClasses/objectJsonable.js +14 -0
  260. package/dist/src/json/jsonableClasses/objectJsonable.js.map +1 -0
  261. package/dist/src/json/jsonableClasses/stringJsonable.d.ts +9 -0
  262. package/dist/src/json/jsonableClasses/stringJsonable.js +15 -0
  263. package/dist/src/json/jsonableClasses/stringJsonable.js.map +1 -0
  264. package/dist/src/json/jsonableParametersConsts.d.ts +7 -0
  265. package/dist/src/json/jsonableParametersConsts.js +8 -0
  266. package/dist/src/json/jsonableParametersConsts.js.map +1 -0
  267. package/dist/src/json/jsonableParametersTypes.d.ts +32 -0
  268. package/dist/src/json/jsonableParametersTypes.js +2 -0
  269. package/dist/src/json/jsonableParametersTypes.js.map +1 -0
  270. package/dist/src/json/jsonableTypes.d.ts +11 -0
  271. package/dist/src/json/jsonableTypes.js +2 -0
  272. package/dist/src/json/jsonableTypes.js.map +1 -0
  273. package/dist/src/json/parseJsonable.d.ts +2 -0
  274. package/dist/src/json/parseJsonable.js +19 -0
  275. package/dist/src/json/parseJsonable.js.map +1 -0
  276. package/dist/src/json/stringifyJsonable.d.ts +6 -0
  277. package/dist/src/json/stringifyJsonable.js +43 -0
  278. package/dist/src/json/stringifyJsonable.js.map +1 -0
  279. package/dist/src/json/utils.d.ts +2 -0
  280. package/dist/src/json/utils.js +9 -0
  281. package/dist/src/json/utils.js.map +1 -0
  282. package/dist/src/output/createFileOutput.d.ts +2 -0
  283. package/dist/src/output/createFileOutput.js +28 -0
  284. package/dist/src/output/createFileOutput.js.map +1 -0
  285. package/dist/src/output/createTcpOutput.d.ts +3 -0
  286. package/dist/src/output/createTcpOutput.js +15 -0
  287. package/dist/src/output/createTcpOutput.js.map +1 -0
  288. package/dist/src/output/createUdpOutput.d.ts +3 -0
  289. package/dist/src/output/createUdpOutput.js +5 -0
  290. package/dist/src/output/createUdpOutput.js.map +1 -0
  291. package/dist/src/output/initializeOutput.d.ts +3 -0
  292. package/dist/src/output/initializeOutput.js +38 -0
  293. package/dist/src/output/initializeOutput.js.map +1 -0
  294. package/dist/src/output/tcpDocumentStream.d.ts +16 -0
  295. package/dist/src/output/tcpDocumentStream.js +107 -0
  296. package/dist/src/output/tcpDocumentStream.js.map +1 -0
  297. package/dist/src/output/throttlingDocumentStream.d.ts +21 -0
  298. package/dist/src/output/throttlingDocumentStream.js +69 -0
  299. package/dist/src/output/throttlingDocumentStream.js.map +1 -0
  300. package/dist/src/output/udpDocumentStream.d.ts +13 -0
  301. package/dist/src/output/udpDocumentStream.js +47 -0
  302. package/dist/src/output/udpDocumentStream.js.map +1 -0
  303. package/dist/src/output/updStream.d.ts +17 -0
  304. package/dist/src/output/updStream.js +78 -0
  305. package/dist/src/output/updStream.js.map +1 -0
  306. package/dist/src/run.d.ts +4 -0
  307. package/dist/src/run.js +55 -0
  308. package/dist/src/run.js.map +1 -0
  309. package/dist/src/template/consts.d.ts +2 -0
  310. package/dist/src/template/consts.js +3 -0
  311. package/dist/src/template/consts.js.map +1 -0
  312. package/dist/src/template/index.d.ts +4 -0
  313. package/dist/src/template/index.js +4 -0
  314. package/dist/src/template/index.js.map +1 -0
  315. package/dist/src/template/templateParser/parseTemplate.d.ts +2 -0
  316. package/dist/src/template/templateParser/parseTemplate.js +11 -0
  317. package/dist/src/template/templateParser/parseTemplate.js.map +1 -0
  318. package/dist/src/template/templateParser/templateParser.d.ts +11 -0
  319. package/dist/src/template/templateParser/templateParser.js +87 -0
  320. package/dist/src/template/templateParser/templateParser.js.map +1 -0
  321. package/dist/src/template/templateParser/visitor.d.ts +4 -0
  322. package/dist/src/template/templateParser/visitor.js +60 -0
  323. package/dist/src/template/templateParser/visitor.js.map +1 -0
  324. package/dist/src/template/types.d.ts +5 -0
  325. package/dist/src/template/types.js +2 -0
  326. package/dist/src/template/types.js.map +1 -0
  327. package/dist/src/template/utils.d.ts +2 -0
  328. package/dist/src/template/utils.js +4 -0
  329. package/dist/src/template/utils.js.map +1 -0
  330. package/dist/src/types.d.ts +68 -0
  331. package/dist/src/types.js +3 -0
  332. package/dist/src/types.js.map +1 -0
  333. package/dist/src/utils.d.ts +18 -0
  334. package/dist/src/utils.js +321 -0
  335. package/dist/src/utils.js.map +1 -0
  336. package/package.json +47 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2024 tomo-waka
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,136 @@
1
+ # GenT
2
+
3
+ ## Introduction
4
+
5
+ GenT is a template-based dummy text data generator. The generated data is used as test data for software that process such data. You can define data format with a simple text file (referred to as a "template") and obtain the output as text file. It means that both input and output are non-programing interfaces. These features are particularly useful as test data in end-to-end testing situations, rather than in Unit testing.
6
+
7
+ ## Features
8
+
9
+ * "template" and "template commands"
10
+ * define generating text data format with a "template" which is a simple text file.
11
+ * embed "template commands" within a "template" with special syntax.
12
+ * "template commands" generate dynamic value, thus generating data will be non-static.
13
+ * there are various "template commands" and also easily add new command.
14
+ * "meta file"
15
+ * meta file allows to manage multiple templates and their probabilities.
16
+ * "json mode"
17
+ * json mode can control json structure.
18
+ * output
19
+ * flexible output interface.
20
+
21
+ ## Quick Start
22
+
23
+ install with npm globally.
24
+
25
+ ```shell
26
+ npm install -g gent
27
+ ```
28
+
29
+ > [!NOTE]
30
+ > This quick start explains the steps how to use GenT as shell cli application. If you are looking for how to use as a dependency or how to develop, see other sections.
31
+
32
+ Then, create a template. Save the following content as a text file in any directory, for instance `{dir path}/template.log`.
33
+
34
+ ```text
35
+ <34>{{timestamp}} mymachine su: 'su root failed for lonvick on /dev/pts/8
36
+ ```
37
+
38
+ Above content of template is a syslog format log but its timestamp part has been replaced with template command syntax `{{timestamp}}`.
39
+
40
+ Then, execute following command with previously created template path.
41
+
42
+ ```shell
43
+ gent --template {dir path}/template.log --count 3
44
+ ```
45
+ output file `out.log` will be created in current working directory.
46
+ And content of output will be like following.
47
+
48
+ ```text
49
+ <34>2024-11-20T17:55:12.963+09:00 mymachine su: 'su root failed for lonvick on /dev/pts/8
50
+ <34>2024-11-21T03:02:42.440+09:00 mymachine su: 'su root failed for lonvick on /dev/pts/8
51
+ <34>2024-11-21T08:45:03.377+09:00 mymachine su: 'su root failed for lonvick on /dev/pts/8
52
+ ```
53
+ Each text line is almost same as template content but template command part has been replaced with generated text by the template command.
54
+
55
+ This is basic mechanics of GenT.
56
+
57
+ Fully customized template example is following
58
+
59
+ ```text
60
+ <{{pri}}>{{timestamp --format "MMM dd hh:mm:ss"}} {{ipv4}} {{hacker.noun --variations 3}}[{{pid}}]: {{lorem.sentences}}
61
+ ```
62
+
63
+ ## Template
64
+
65
+ Template file defines generating text data format.
66
+
67
+ Template is basically just a text file. You can embed template command with special syntax.
68
+ So GenT process template command and replace command expression with command result.
69
+
70
+ ## Template Commands
71
+
72
+ basic template command syntax is following.
73
+
74
+ ```text
75
+ {{command_name}}
76
+ ```
77
+
78
+ Some commands accept command option, command and option syntax is like shell command syntax.
79
+ ```text
80
+ {{command_name --optA --optBWithValue value}}
81
+ ```
82
+
83
+ supporting template commands and their options are below.
84
+
85
+ [Command List](./docs/templateCommands)
86
+
87
+ ## Meta template sample
88
+
89
+ ```json
90
+ {
91
+ "from": "2000-01-01T00:00:00+09:00",
92
+ "to": "2020-12-31T23:59:59+09:00",
93
+ "count": 100,
94
+ "out": "out.log",
95
+ "templates": [
96
+ {
97
+ "path": "template.log"
98
+ }
99
+ ]
100
+ }
101
+ ```
102
+
103
+ ## Json mode
104
+
105
+ ### special commands
106
+
107
+ * array length
108
+
109
+ ```json
110
+ "{{length --min 2 --max 5}}"
111
+ ```
112
+
113
+ * array item weight
114
+
115
+ ```json
116
+ {
117
+ "{{weight}}": 1
118
+ }
119
+ ```
120
+
121
+ * value probability
122
+
123
+ ```json
124
+ {
125
+ "{{probability}}": 50
126
+ }
127
+ ```
128
+
129
+ * dynamic value
130
+
131
+ ```json
132
+ {
133
+ "{{type}}": "number",
134
+ "{{content}}": "{{int}}"
135
+ }
136
+ ```
@@ -0,0 +1,5 @@
1
+ export declare const packageEnv: {
2
+ readonly name: "@gent-js/gent";
3
+ readonly version: "0.1.4";
4
+ readonly description: "template base dummy text data generator.";
5
+ };
@@ -0,0 +1,7 @@
1
+ // generated codes about package environmental information.
2
+ export const packageEnv = {
3
+ name: "@gent-js/gent",
4
+ version: "0.1.4",
5
+ description: "template base dummy text data generator."
6
+ };
7
+ //# sourceMappingURL=packageEnv.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"packageEnv.js","sourceRoot":"","sources":["../../generated/packageEnv.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,IAAI,EAAE,eAAe;IACrB,OAAO,EAAE,OAAO;IAChB,WAAW,EAAE,0CAA0C;CAC/C,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { CommandManager } from "./command/index.js";
2
+ import type { DocumentContent, DocumentOptions } from "./document/index.js";
3
+ export declare function buildDocumentFromJsonTemplate(templateString: string, commandManager: CommandManager, documentOptions: DocumentOptions): DocumentContent;
@@ -0,0 +1,27 @@
1
+ import { createJsonableTransformer, parseJsonable, stringifyJsonable, } from "./json/index.js";
2
+ export function buildDocumentFromJsonTemplate(templateString, commandManager, documentOptions) {
3
+ const jsonableTransformer = createJsonableTransformer(commandManager, documentOptions);
4
+ const jsonableValue = parseJsonable(templateString, jsonableTransformer);
5
+ if (jsonableValue === undefined) {
6
+ return [];
7
+ }
8
+ return [new JsonDocumentFragmentImpl(jsonableValue)];
9
+ }
10
+ class JsonDocumentFragmentImpl {
11
+ jsonableValue;
12
+ constructor(jsonableValue) {
13
+ this.jsonableValue = jsonableValue;
14
+ }
15
+ toString(context) {
16
+ let json;
17
+ try {
18
+ json = stringifyJsonable(this.jsonableValue, "", context);
19
+ }
20
+ catch (error) {
21
+ console.error(error);
22
+ json = undefined;
23
+ }
24
+ return json ?? "";
25
+ }
26
+ }
27
+ //# sourceMappingURL=buildDocumentFromJsonTemplate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildDocumentFromJsonTemplate.js","sourceRoot":"","sources":["../../src/buildDocumentFromJsonTemplate.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,yBAAyB,EAEzB,aAAa,EACb,iBAAiB,GAClB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,UAAU,6BAA6B,CAC3C,cAAsB,EACtB,cAA8B,EAC9B,eAAgC;IAEhC,MAAM,mBAAmB,GAAG,yBAAyB,CACnD,cAAc,EACd,eAAe,CAChB,CAAC;IACF,MAAM,aAAa,GAAG,aAAa,CAAC,cAAc,EAAE,mBAAmB,CAAC,CAAC;IACzE,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;QAChC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO,CAAC,IAAI,wBAAwB,CAAC,aAAa,CAAC,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,wBAAwB;IACC;IAA7B,YAA6B,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;IAAG,CAAC;IAEtD,QAAQ,CAAC,OAAwB;QACtC,IAAI,IAAwB,CAAC;QAC7B,IAAI,CAAC;YACH,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;QAC5D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACrB,IAAI,GAAG,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,IAAI,IAAI,EAAE,CAAC;IACpB,CAAC;CACF"}
@@ -0,0 +1,3 @@
1
+ import type { CommandManager } from "./command/index.js";
2
+ import type { DocumentContent, DocumentOptions } from "./document/index.js";
3
+ export declare function buildDocumentFromTextTemplate(templateString: string, commandManager: CommandManager, documentOptions: DocumentOptions): DocumentContent;
@@ -0,0 +1,27 @@
1
+ import * as nodePath from "node:path";
2
+ import { buildCommandDocumentFragments } from "./commandDocument/index.js";
3
+ import { parseAndEmbedCommandExpression } from "./commandTemplate/index.js";
4
+ import { debugFileWriter } from "./debugFileWriter.js";
5
+ import { parseTemplate } from "./template/index.js";
6
+ import { isStringOnlyTemplateFragments } from "./template/utils.js";
7
+ export function buildDocumentFromTextTemplate(templateString, commandManager, documentOptions) {
8
+ const templateFragments = parseTemplate(templateString);
9
+ const fileName = nodePath.basename(documentOptions.path);
10
+ if (fileName !== undefined) {
11
+ debugFileWriter.writeFile(`${fileName}.parsed-template.json`, JSON.stringify(templateFragments, undefined, 2));
12
+ }
13
+ const isStringOnly = isStringOnlyTemplateFragments(templateFragments);
14
+ // output original string
15
+ if (isStringOnly) {
16
+ if (fileName !== undefined) {
17
+ debugFileWriter.writeFile(`${fileName}.parsed-expression.json`, templateString);
18
+ }
19
+ return templateString;
20
+ }
21
+ const parsedTemplateFragments = parseAndEmbedCommandExpression(templateFragments);
22
+ if (fileName !== undefined) {
23
+ debugFileWriter.writeFile(`${fileName}.parsed-expression.json`, JSON.stringify(parsedTemplateFragments, undefined, 2));
24
+ }
25
+ return buildCommandDocumentFragments(parsedTemplateFragments, commandManager, documentOptions);
26
+ }
27
+ //# sourceMappingURL=buildDocumentFromTextTemplate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildDocumentFromTextTemplate.js","sourceRoot":"","sources":["../../src/buildDocumentFromTextTemplate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,6BAA6B,EAAE,MAAM,4BAA4B,CAAC;AAC3E,OAAO,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,6BAA6B,EAAE,MAAM,qBAAqB,CAAC;AAEpE,MAAM,UAAU,6BAA6B,CAC3C,cAAsB,EACtB,cAA8B,EAC9B,eAAgC;IAEhC,MAAM,iBAAiB,GAAG,aAAa,CAAC,cAAc,CAAC,CAAC;IAExD,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IACzD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,eAAe,CAAC,SAAS,CACvB,GAAG,QAAQ,uBAAuB,EAClC,IAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE,SAAS,EAAE,CAAC,CAAC,CAChD,CAAC;IACJ,CAAC;IAED,MAAM,YAAY,GAAG,6BAA6B,CAAC,iBAAiB,CAAC,CAAC;IAEtE,yBAAyB;IACzB,IAAI,YAAY,EAAE,CAAC;QACjB,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,eAAe,CAAC,SAAS,CACvB,GAAG,QAAQ,yBAAyB,EACpC,cAAc,CACf,CAAC;QACJ,CAAC;QAED,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,MAAM,uBAAuB,GAC3B,8BAA8B,CAAC,iBAAiB,CAAC,CAAC;IAEpD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,eAAe,CAAC,SAAS,CACvB,GAAG,QAAQ,yBAAyB,EACpC,IAAI,CAAC,SAAS,CAAC,uBAAuB,EAAE,SAAS,EAAE,CAAC,CAAC,CACtD,CAAC;IACJ,CAAC;IAED,OAAO,6BAA6B,CAClC,uBAAuB,EACvB,cAAc,EACd,eAAe,CAChB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export {};
@@ -0,0 +1,103 @@
1
+ #!/usr/bin/env node
2
+ import { Command, Option } from "commander";
3
+ import { packageEnv } from "../generated/packageEnv.js";
4
+ import { FAILED, SUCCEEDED } from "./cliConsts.js";
5
+ import { DEFAULT_TEMPLATE_WEIGHT } from "./consts.js";
6
+ import { run } from "./run.js";
7
+ import { determineTemplateModeByFile, isNonNullObject, normalizeProgramOptions, parseAndResolveFilePath, parseString, tryReadFile, } from "./utils.js";
8
+ const templateOption = new Option("-t --template <template-file>", "path to template file");
9
+ const metaOption = new Option("-m --meta <meta-file>", "path to meta file");
10
+ const countOption = new Option("-c --count <number>", "number of logs to generate.").default(1);
11
+ const fromOption = new Option("-s --start <date-expression>", "from date");
12
+ const toOption = new Option("-e --end <date-expression>", "end date");
13
+ const outOption = new Option("-o --out <path>", "path to output files.").default("./out.log");
14
+ const debugOption = new Option("-d --debug", "debug flat")
15
+ .default(false)
16
+ .hideHelp(true);
17
+ async function main() {
18
+ const program = new Command();
19
+ program
20
+ .name(packageEnv.name)
21
+ .version(packageEnv.version)
22
+ .description(packageEnv.description)
23
+ .showHelpAfterError()
24
+ .addOption(templateOption)
25
+ .addOption(metaOption)
26
+ .addOption(fromOption)
27
+ .addOption(toOption)
28
+ .addOption(countOption)
29
+ .addOption(outOption)
30
+ .addOption(debugOption)
31
+ .action(async (...args) => {
32
+ const [options] = args;
33
+ if (!isNonNullObject(options)) {
34
+ program.error("Invalid option values.", { exitCode: FAILED });
35
+ return;
36
+ }
37
+ const cwd = process.cwd();
38
+ const meta = parseString(options["meta"]);
39
+ const template = parseString(options["template"]);
40
+ let rawProgramOptions;
41
+ if (meta !== undefined) {
42
+ const resolvedFilePath = parseAndResolveFilePath(meta, cwd);
43
+ if (resolvedFilePath === undefined) {
44
+ program.error(`failed to resolve meta file path.(${meta})`);
45
+ return;
46
+ }
47
+ let fileContent;
48
+ try {
49
+ fileContent = await tryReadFile(resolvedFilePath);
50
+ }
51
+ catch (error) {
52
+ console.log(error);
53
+ }
54
+ if (fileContent === undefined) {
55
+ program.error("failed to read meta file.");
56
+ return;
57
+ }
58
+ try {
59
+ rawProgramOptions = JSON.parse(fileContent);
60
+ }
61
+ catch (error) {
62
+ console.log(error);
63
+ rawProgramOptions = undefined;
64
+ }
65
+ if (rawProgramOptions === undefined) {
66
+ program.error("failed to parse meta file.");
67
+ return;
68
+ }
69
+ }
70
+ else if (template !== undefined) {
71
+ const mode = determineTemplateModeByFile(template);
72
+ const templateOptions = {
73
+ mode: mode,
74
+ path: template,
75
+ weight: DEFAULT_TEMPLATE_WEIGHT,
76
+ };
77
+ rawProgramOptions = {
78
+ debug: options["debug"],
79
+ from: options["start"],
80
+ to: options["end"],
81
+ count: options["count"],
82
+ out: options["out"],
83
+ templates: [templateOptions],
84
+ };
85
+ }
86
+ else {
87
+ program.error("You must specify either template or meta option at least.", { exitCode: FAILED });
88
+ return;
89
+ }
90
+ const programOptions = normalizeProgramOptions(rawProgramOptions, cwd);
91
+ if (programOptions === undefined) {
92
+ program.error("invalid options.", { exitCode: FAILED });
93
+ return;
94
+ }
95
+ const resultCode = await run(programOptions);
96
+ if (resultCode !== SUCCEEDED) {
97
+ program.error("Command has failed", { exitCode: resultCode });
98
+ }
99
+ });
100
+ await program.parseAsync(process.argv);
101
+ }
102
+ await main();
103
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Failed, Succeeded } from "./cliTypes.js";
2
+ export declare const SUCCEEDED: Succeeded;
3
+ export declare const FAILED: Failed;
@@ -0,0 +1,3 @@
1
+ export const SUCCEEDED = 0;
2
+ export const FAILED = 1;
3
+ //# sourceMappingURL=cliConsts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cliConsts.js","sourceRoot":"","sources":["../../src/cliConsts.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,SAAS,GAAc,CAAC,CAAC;AACtC,MAAM,CAAC,MAAM,MAAM,GAAW,CAAC,CAAC"}
@@ -0,0 +1,7 @@
1
+ export type Succeeded = 0;
2
+ export type Failed = 1;
3
+ export type ResultCode = Succeeded | Failed;
4
+ /**
5
+ * unknown version of OptionValues defined in Commander
6
+ */
7
+ export type OptionValues = Record<string, unknown>;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=cliTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cliTypes.js","sourceRoot":"","sources":["../../src/cliTypes.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ import type { ContextualStringOut, DocumentOptions } from "../../document/index.js";
2
+ import type { Command, CommandOptions } from "../type.js";
3
+ export interface CommandManager {
4
+ setCommand(command: Command): this;
5
+ getCommandContextualStringOut(commandName: string, commandOptions: Readonly<CommandOptions> | undefined, documentOptions: DocumentOptions): ContextualStringOut;
6
+ }
7
+ export declare const commandManager: CommandManager;
@@ -0,0 +1,83 @@
1
+ import { faker } from "@faker-js/faker";
2
+ import { parseNonNaNInteger, parseString } from "../../utils.js";
3
+ import { GlobalOption_Escape, GlobalOption_Variations } from "../consts.js";
4
+ import { isEscapeStyle } from "../utils.js";
5
+ class CommandManagerImpl {
6
+ commandMap = new Map();
7
+ setCommand(command) {
8
+ this.commandMap.set(command.name, command);
9
+ return this;
10
+ }
11
+ getCommand(commandName) {
12
+ const command = this.commandMap.get(commandName);
13
+ if (command !== undefined) {
14
+ return command;
15
+ }
16
+ return createUnsupportedCommand(commandName);
17
+ }
18
+ getCommandContextualStringOut(commandName, commandOptions, documentOptions) {
19
+ const staticOrNormalCommand = this.getCommand(commandName);
20
+ let contextualStringOut;
21
+ if ("build" in staticOrNormalCommand) {
22
+ contextualStringOut = staticOrNormalCommand.build(commandOptions, documentOptions);
23
+ }
24
+ else {
25
+ contextualStringOut = staticOrNormalCommand.run;
26
+ }
27
+ // process global options
28
+ const variations = parseNonNaNInteger(commandOptions?.[GlobalOption_Variations]);
29
+ if (variations !== undefined) {
30
+ contextualStringOut = createVariationStringOut(contextualStringOut, variations);
31
+ }
32
+ const escape = parseString(commandOptions?.[GlobalOption_Escape]);
33
+ if (isEscapeStyle(escape)) {
34
+ contextualStringOut = createEscapeStringOut(contextualStringOut, escape);
35
+ }
36
+ return contextualStringOut;
37
+ }
38
+ }
39
+ export const commandManager = new CommandManagerImpl();
40
+ function createUnsupportedCommand(commandName) {
41
+ return {
42
+ name: commandName,
43
+ run: () => {
44
+ return "{{UNSUPPORTED_COMMAND}}";
45
+ },
46
+ };
47
+ }
48
+ function createVariationStringOut(baseContextualStringOut, variations) {
49
+ const valueArray = [];
50
+ const maxIndex = variations - 1;
51
+ return (context) => {
52
+ const index = faker.number.int({
53
+ min: 0,
54
+ max: maxIndex,
55
+ });
56
+ let value = valueArray[index];
57
+ if (value === undefined) {
58
+ value = baseContextualStringOut(context);
59
+ if (valueArray.length < variations) {
60
+ if (!valueArray.includes(value)) {
61
+ valueArray.push(value);
62
+ }
63
+ }
64
+ }
65
+ return value;
66
+ };
67
+ }
68
+ function createEscapeStringOut(baseContextualStringOut, style) {
69
+ if (style === "json") {
70
+ return (context) => JSON.stringify(baseContextualStringOut(context));
71
+ }
72
+ else if (style === "doubleQuote") {
73
+ return (context) => {
74
+ const output = baseContextualStringOut(context);
75
+ return `"${output.replaceAll('"', '""')}"`;
76
+ };
77
+ }
78
+ else {
79
+ console.log(`unsupported escape style: ${style}`);
80
+ return baseContextualStringOut;
81
+ }
82
+ }
83
+ //# sourceMappingURL=commandManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commandManager.js","sourceRoot":"","sources":["../../../../src/command/commandManager/commandManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { CstParser } from "chevrotain";
2
+ export declare function lex(input: string): import("chevrotain").ILexingResult;
3
+ export declare class CommandParser extends CstParser {
4
+ constructor();
5
+ commandExpression: import("chevrotain").ParserMethod<[], import("chevrotain").CstNode>;
6
+ commandName: import("chevrotain").ParserMethod<[], import("chevrotain").CstNode>;
7
+ commandOption: import("chevrotain").ParserMethod<[], import("chevrotain").CstNode>;
8
+ commandOptionKey: import("chevrotain").ParserMethod<[], import("chevrotain").CstNode>;
9
+ commandOptionValue: import("chevrotain").ParserMethod<[], import("chevrotain").CstNode>;
10
+ }
11
+ export declare const commandParser: CommandParser;
@@ -0,0 +1,90 @@
1
+ import { createToken, CstParser, Lexer } from "chevrotain";
2
+ // region token
3
+ const Literal = createToken({
4
+ name: "Literal",
5
+ pattern: /[^-"\s]+/,
6
+ line_breaks: false,
7
+ });
8
+ const NumberLiteral = createToken({
9
+ name: "NumberLiteral",
10
+ pattern: /[0-9]+/,
11
+ longer_alt: [Literal],
12
+ line_breaks: false,
13
+ });
14
+ const Identifier = createToken({
15
+ name: "Identifier",
16
+ pattern: /[a-zA-Z][a-zA-Z0-9.]*/,
17
+ longer_alt: [Literal],
18
+ line_breaks: false,
19
+ });
20
+ const QuotedLiteral = createToken({
21
+ name: "QuotedLiteral",
22
+ pattern: /"(?:[^\\"]|\\[nrt\\])*"/,
23
+ line_breaks: false,
24
+ });
25
+ const CommandOptionKey = createToken({
26
+ name: "CommandOptionKey",
27
+ pattern: /(-[a-zA-Z])|(--[a-zA-Z]+)/,
28
+ line_breaks: false,
29
+ });
30
+ const WhiteSpace = createToken({
31
+ name: "WhiteSpace",
32
+ pattern: /[ \t\n\r]+/,
33
+ group: Lexer.SKIPPED,
34
+ });
35
+ const allTokens = [
36
+ WhiteSpace,
37
+ Identifier,
38
+ NumberLiteral,
39
+ Literal,
40
+ QuotedLiteral,
41
+ CommandOptionKey,
42
+ ];
43
+ // endregion
44
+ // region lexer
45
+ const lexer = new Lexer(allTokens);
46
+ export function lex(input) {
47
+ const lexingResult = lexer.tokenize(input);
48
+ if (lexingResult.errors.length > 0) {
49
+ throw Error(`lexing errors detected
50
+ ${lexingResult.errors[0]?.message}`);
51
+ }
52
+ return lexingResult;
53
+ }
54
+ // endregion
55
+ // region parser
56
+ export class CommandParser extends CstParser {
57
+ constructor() {
58
+ super(allTokens);
59
+ this.performSelfAnalysis();
60
+ }
61
+ commandExpression = this.RULE("commandExpression", () => {
62
+ this.SUBRULE(this.commandName);
63
+ this.MANY(() => {
64
+ this.SUBRULE(this.commandOption);
65
+ });
66
+ });
67
+ commandName = this.RULE("commandName", () => {
68
+ this.CONSUME(Identifier);
69
+ });
70
+ commandOption = this.RULE("commandOption", () => {
71
+ this.SUBRULE(this.commandOptionKey);
72
+ this.OPTION(() => {
73
+ this.SUBRULE(this.commandOptionValue);
74
+ });
75
+ });
76
+ commandOptionKey = this.RULE("commandOptionKey", () => {
77
+ this.CONSUME(CommandOptionKey);
78
+ });
79
+ commandOptionValue = this.RULE("commandOptionValue", () => {
80
+ this.OR([
81
+ { ALT: () => this.CONSUME(Identifier) },
82
+ { ALT: () => this.CONSUME(NumberLiteral) },
83
+ { ALT: () => this.CONSUME(Literal) },
84
+ { ALT: () => this.CONSUME(QuotedLiteral) },
85
+ ]);
86
+ });
87
+ }
88
+ export const commandParser = new CommandParser();
89
+ // endregion
90
+ //# sourceMappingURL=commandParser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commandParser.js","sourceRoot":"","sources":["../../../../src/command/commandParser/commandParser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { StructuredCommandExpression } from "../type.js";
2
+ export declare function parseCommand(input: string): StructuredCommandExpression;
@@ -0,0 +1,19 @@
1
+ import { toAstVisitor } from "./visitor.js";
2
+ export function parseCommand(input) {
3
+ const commandExpressionFragment = toAstVisitor(input);
4
+ let structuredCommandExpression;
5
+ if (commandExpressionFragment !== undefined) {
6
+ structuredCommandExpression = {
7
+ expression: input,
8
+ ...commandExpressionFragment,
9
+ };
10
+ }
11
+ else {
12
+ structuredCommandExpression = {
13
+ expression: input,
14
+ name: "invalid",
15
+ };
16
+ }
17
+ return structuredCommandExpression;
18
+ }
19
+ //# sourceMappingURL=parseCommand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parseCommand.js","sourceRoot":"","sources":["../../../../src/command/commandParser/parseCommand.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,MAAM,yBAAyB,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACtD,IAAI,2BAAwD,CAAC;IAC7D,IAAI,yBAAyB,KAAK,SAAS,EAAE,CAAC;QAC5C,2BAA2B,GAAG;YAC5B,UAAU,EAAE,KAAK;YACjB,GAAG,yBAAyB;SAC7B,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,2BAA2B,GAAG;YAC5B,UAAU,EAAE,KAAK;YACjB,IAAI,EAAE,SAAS;SAChB,CAAC;IACJ,CAAC;IACD,OAAO,2BAA2B,CAAC;AACrC,CAAC"}