validation-br 1.5.2 → 2.0.0-next-2

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 (182) hide show
  1. package/.prettierrc +9 -0
  2. package/dist/jest.config.d.ts +8 -0
  3. package/dist/jest.config.d.ts.map +1 -0
  4. package/dist/jest.config.js +154 -0
  5. package/dist/jest.config.js.map +1 -0
  6. package/dist/test/_helpers/crc.spec.d.ts +2 -0
  7. package/dist/test/_helpers/crc.spec.d.ts.map +1 -0
  8. package/dist/test/_helpers/crc.spec.js +11 -0
  9. package/dist/test/_helpers/crc.spec.js.map +1 -0
  10. package/dist/test/carplate.spec.d.ts +2 -0
  11. package/dist/test/carplate.spec.d.ts.map +1 -0
  12. package/dist/test/carplate.spec.js +81 -0
  13. package/dist/test/carplate.spec.js.map +1 -0
  14. package/dist/test/cep.spec.d.ts +2 -0
  15. package/dist/test/cep.spec.d.ts.map +1 -0
  16. package/dist/test/cep.spec.js +95 -0
  17. package/dist/test/cep.spec.js.map +1 -0
  18. package/dist/test/cnh.spec.d.ts +2 -0
  19. package/dist/test/cnh.spec.d.ts.map +1 -0
  20. package/dist/test/cnh.spec.js +55 -0
  21. package/dist/test/cnh.spec.js.map +1 -0
  22. package/dist/test/cnpj.spec.d.ts +2 -0
  23. package/dist/test/cnpj.spec.d.ts.map +1 -0
  24. package/dist/test/cnpj.spec.js +105 -0
  25. package/dist/test/cnpj.spec.js.map +1 -0
  26. package/dist/test/cpf.spec.d.ts +2 -0
  27. package/dist/test/cpf.spec.d.ts.map +1 -0
  28. package/dist/test/cpf.spec.js +66 -0
  29. package/dist/test/cpf.spec.js.map +1 -0
  30. package/dist/test/index.test.d.ts +2 -0
  31. package/dist/test/index.test.d.ts.map +1 -0
  32. package/dist/test/index.test.js +77 -0
  33. package/dist/test/index.test.js.map +1 -0
  34. package/dist/test/judicial-process.spec.d.ts +2 -0
  35. package/dist/test/judicial-process.spec.d.ts.map +1 -0
  36. package/dist/test/judicial-process.spec.js +101 -0
  37. package/dist/test/judicial-process.spec.js.map +1 -0
  38. package/dist/test/nup17.spec.d.ts +2 -0
  39. package/dist/test/nup17.spec.d.ts.map +1 -0
  40. package/dist/test/nup17.spec.js +70 -0
  41. package/dist/test/nup17.spec.js.map +1 -0
  42. package/dist/test/phone.spec.d.ts +2 -0
  43. package/dist/test/phone.spec.d.ts.map +1 -0
  44. package/dist/test/phone.spec.js +79 -0
  45. package/dist/test/phone.spec.js.map +1 -0
  46. package/dist/test/pis-pasep.spec.d.ts +2 -0
  47. package/dist/test/pis-pasep.spec.d.ts.map +1 -0
  48. package/dist/test/pis-pasep.spec.js +65 -0
  49. package/dist/test/pis-pasep.spec.js.map +1 -0
  50. package/dist/test/pix-copy-paste.spec.d.ts +2 -0
  51. package/dist/test/pix-copy-paste.spec.d.ts.map +1 -0
  52. package/dist/test/pix-copy-paste.spec.js +31 -0
  53. package/dist/test/pix-copy-paste.spec.js.map +1 -0
  54. package/dist/test/pix-key.spec.d.ts +2 -0
  55. package/dist/test/pix-key.spec.d.ts.map +1 -0
  56. package/dist/test/pix-key.spec.js +36 -0
  57. package/dist/test/pix-key.spec.js.map +1 -0
  58. package/dist/test/postal-track-code.test.d.ts +2 -0
  59. package/dist/test/postal-track-code.test.d.ts.map +1 -0
  60. package/dist/test/postal-track-code.test.js +75 -0
  61. package/dist/test/postal-track-code.test.js.map +1 -0
  62. package/dist/test/renavam.spec.d.ts +2 -0
  63. package/dist/test/renavam.spec.d.ts.map +1 -0
  64. package/dist/test/renavam.spec.js +63 -0
  65. package/dist/test/renavam.spec.js.map +1 -0
  66. package/dist/test/tituloEleitor.spec.d.ts +2 -0
  67. package/dist/test/tituloEleitor.spec.d.ts.map +1 -0
  68. package/dist/test/tituloEleitor.spec.js +68 -0
  69. package/dist/test/tituloEleitor.spec.js.map +1 -0
  70. package/dist/test/utils-checkRepeatedSequence.test.d.ts +2 -0
  71. package/dist/test/utils-checkRepeatedSequence.test.d.ts.map +1 -0
  72. package/dist/test/utils-checkRepeatedSequence.test.js +18 -0
  73. package/dist/test/utils-checkRepeatedSequence.test.js.map +1 -0
  74. package/dist/test/utils-clearValue.test.d.ts +2 -0
  75. package/dist/test/utils-clearValue.test.d.ts.map +1 -0
  76. package/dist/test/utils-clearValue.test.js +74 -0
  77. package/dist/test/utils-clearValue.test.js.map +1 -0
  78. package/dist/test/utils-insertAtPosition.test.d.ts +2 -0
  79. package/dist/test/utils-insertAtPosition.test.d.ts.map +1 -0
  80. package/dist/test/utils-insertAtPosition.test.js +16 -0
  81. package/dist/test/utils-insertAtPosition.test.js.map +1 -0
  82. package/dist/test/utils-removeFromPosition.test.d.ts +2 -0
  83. package/dist/test/utils-removeFromPosition.test.d.ts.map +1 -0
  84. package/dist/test/utils-removeFromPosition.test.js +16 -0
  85. package/dist/test/utils-removeFromPosition.test.js.map +1 -0
  86. package/dist/test/utils-sumElementsByMultipliers.test.d.ts +2 -0
  87. package/dist/test/utils-sumElementsByMultipliers.test.d.ts.map +1 -0
  88. package/dist/test/utils-sumElementsByMultipliers.test.js +23 -0
  89. package/dist/test/utils-sumElementsByMultipliers.test.js.map +1 -0
  90. package/dist/test/utils-sumToDV.test.d.ts +2 -0
  91. package/dist/test/utils-sumToDV.test.d.ts.map +1 -0
  92. package/dist/test/utils-sumToDV.test.js +17 -0
  93. package/dist/test/utils-sumToDV.test.js.map +1 -0
  94. package/dist/tsconfig.tsbuildinfo +1 -0
  95. package/eslint.config.mjs +11 -0
  96. package/jest.config.ts +210 -0
  97. package/package.json +3 -3
  98. package/readme.md +3 -2
  99. package/test/_helpers/crc.spec.ts +13 -0
  100. package/test/carplate.spec.ts +85 -0
  101. package/test/cep.spec.ts +127 -0
  102. package/test/cnh.spec.ts +67 -0
  103. package/test/cnpj.spec.ts +127 -0
  104. package/test/cpf.spec.ts +76 -0
  105. package/test/index.test.ts +112 -0
  106. package/test/judicial-process.spec.ts +131 -0
  107. package/test/nup17.spec.ts +79 -0
  108. package/test/phone.spec.ts +87 -0
  109. package/test/pis-pasep.spec.ts +73 -0
  110. package/test/pix-copy-paste.spec.ts +37 -0
  111. package/test/pix-key.spec.ts +41 -0
  112. package/test/postal-track-code.test.ts +83 -0
  113. package/test/renavam.spec.ts +71 -0
  114. package/test/tituloEleitor.spec.ts +72 -0
  115. package/test/utils-checkRepeatedSequence.test.ts +17 -0
  116. package/test/utils-clearValue.test.ts +85 -0
  117. package/test/utils-insertAtPosition.test.ts +15 -0
  118. package/test/utils-removeFromPosition.test.ts +15 -0
  119. package/test/utils-sumElementsByMultipliers.test.ts +24 -0
  120. package/test/utils-sumToDV.test.ts +16 -0
  121. package/todo.md +32 -0
  122. package/tsconfig.json +103 -23
  123. package/.github/workflows/test.yml +0 -39
  124. package/.prettierrc.js +0 -7
  125. package/dist/cnh.d.ts +0 -91
  126. package/dist/cnh.js +0 -139
  127. package/dist/cnh.js.map +0 -1
  128. package/dist/cnh.test.d.ts +0 -1
  129. package/dist/cnpj.d.ts +0 -114
  130. package/dist/cnpj.js +0 -180
  131. package/dist/cnpj.js.map +0 -1
  132. package/dist/cnpj.test.d.ts +0 -1
  133. package/dist/cpf.d.ts +0 -99
  134. package/dist/cpf.js +0 -147
  135. package/dist/cpf.js.map +0 -1
  136. package/dist/cpf.test.d.ts +0 -1
  137. package/dist/data/ValidationBRError.d.ts +0 -6
  138. package/dist/data/ValidationBRError.js +0 -10
  139. package/dist/data/ValidationBRError.js.map +0 -1
  140. package/dist/index.d.ts +0 -21
  141. package/dist/index.js +0 -42
  142. package/dist/index.js.map +0 -1
  143. package/dist/index.test.d.ts +0 -1
  144. package/dist/judicialProcess.d.ts +0 -126
  145. package/dist/judicialProcess.js +0 -190
  146. package/dist/judicialProcess.js.map +0 -1
  147. package/dist/judicialProcess.test.d.ts +0 -1
  148. package/dist/nup17.d.ts +0 -102
  149. package/dist/nup17.js +0 -155
  150. package/dist/nup17.js.map +0 -1
  151. package/dist/nup17.test.d.ts +0 -1
  152. package/dist/pisPasep.d.ts +0 -81
  153. package/dist/pisPasep.js +0 -126
  154. package/dist/pisPasep.js.map +0 -1
  155. package/dist/pisPasep.test.d.ts +0 -1
  156. package/dist/postalCode.d.ts +0 -83
  157. package/dist/postalCode.js +0 -136
  158. package/dist/postalCode.js.map +0 -1
  159. package/dist/postalCode.test.d.ts +0 -1
  160. package/dist/renavam.d.ts +0 -75
  161. package/dist/renavam.js +0 -122
  162. package/dist/renavam.js.map +0 -1
  163. package/dist/renavam.test.d.ts +0 -1
  164. package/dist/tituloEleitor.d.ts +0 -93
  165. package/dist/tituloEleitor.js +0 -143
  166. package/dist/tituloEleitor.js.map +0 -1
  167. package/dist/tituloEleitor.test.d.ts +0 -1
  168. package/dist/utils-applyMask.test.d.ts +0 -1
  169. package/dist/utils-checkRepeatedSequence.test.d.ts +0 -1
  170. package/dist/utils-clearValue.test.d.ts +0 -1
  171. package/dist/utils-fakeNumber.test.d.ts +0 -1
  172. package/dist/utils-insertAtPosition.test.d.ts +0 -1
  173. package/dist/utils-invalidListGenerator.test.d.ts +0 -1
  174. package/dist/utils-randomLetter.test.d.ts +0 -1
  175. package/dist/utils-removeFromPosition.test.d.ts +0 -1
  176. package/dist/utils-sumElementsByMultipliers.test.d.ts +0 -1
  177. package/dist/utils-sumToDV.test.d.ts +0 -1
  178. package/dist/utils.d.ts +0 -131
  179. package/dist/utils.js +0 -190
  180. package/dist/utils.js.map +0 -1
  181. package/eslint.config.js +0 -82
  182. package/jest.config.js +0 -11
@@ -0,0 +1 @@
1
+ {"fileNames":["../node_modules/typescript/lib/lib.es5.d.ts","../node_modules/typescript/lib/lib.es2015.d.ts","../node_modules/typescript/lib/lib.es2016.d.ts","../node_modules/typescript/lib/lib.es2017.d.ts","../node_modules/typescript/lib/lib.es2018.d.ts","../node_modules/typescript/lib/lib.es2019.d.ts","../node_modules/typescript/lib/lib.es2020.d.ts","../node_modules/typescript/lib/lib.es2021.d.ts","../node_modules/typescript/lib/lib.es2022.d.ts","../node_modules/typescript/lib/lib.dom.d.ts","../node_modules/typescript/lib/lib.dom.iterable.d.ts","../node_modules/typescript/lib/lib.dom.asynciterable.d.ts","../node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../node_modules/typescript/lib/lib.scripthost.d.ts","../node_modules/typescript/lib/lib.es2015.core.d.ts","../node_modules/typescript/lib/lib.es2015.collection.d.ts","../node_modules/typescript/lib/lib.es2015.generator.d.ts","../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../node_modules/typescript/lib/lib.es2015.promise.d.ts","../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../node_modules/typescript/lib/lib.es2016.intl.d.ts","../node_modules/typescript/lib/lib.es2017.date.d.ts","../node_modules/typescript/lib/lib.es2017.object.d.ts","../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2017.string.d.ts","../node_modules/typescript/lib/lib.es2017.intl.d.ts","../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../node_modules/typescript/lib/lib.es2018.intl.d.ts","../node_modules/typescript/lib/lib.es2018.promise.d.ts","../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../node_modules/typescript/lib/lib.es2019.array.d.ts","../node_modules/typescript/lib/lib.es2019.object.d.ts","../node_modules/typescript/lib/lib.es2019.string.d.ts","../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../node_modules/typescript/lib/lib.es2019.intl.d.ts","../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../node_modules/typescript/lib/lib.es2020.date.d.ts","../node_modules/typescript/lib/lib.es2020.promise.d.ts","../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2020.string.d.ts","../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2020.intl.d.ts","../node_modules/typescript/lib/lib.es2020.number.d.ts","../node_modules/typescript/lib/lib.es2021.promise.d.ts","../node_modules/typescript/lib/lib.es2021.string.d.ts","../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../node_modules/typescript/lib/lib.es2021.intl.d.ts","../node_modules/typescript/lib/lib.es2022.array.d.ts","../node_modules/typescript/lib/lib.es2022.error.d.ts","../node_modules/typescript/lib/lib.es2022.intl.d.ts","../node_modules/typescript/lib/lib.es2022.object.d.ts","../node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2022.string.d.ts","../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../node_modules/typescript/lib/lib.esnext.intl.d.ts","../node_modules/typescript/lib/lib.decorators.d.ts","../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../node_modules/typescript/lib/lib.es2022.full.d.ts","../node_modules/@types/node/assert.d.ts","../node_modules/@types/node/globals.d.ts","../node_modules/@types/node/async_hooks.d.ts","../node_modules/@types/node/buffer.d.ts","../node_modules/@types/node/child_process.d.ts","../node_modules/@types/node/cluster.d.ts","../node_modules/@types/node/console.d.ts","../node_modules/@types/node/constants.d.ts","../node_modules/@types/node/crypto.d.ts","../node_modules/@types/node/dgram.d.ts","../node_modules/@types/node/dns.d.ts","../node_modules/@types/node/domain.d.ts","../node_modules/@types/node/events.d.ts","../node_modules/@types/node/fs.d.ts","../node_modules/@types/node/fs/promises.d.ts","../node_modules/@types/node/http.d.ts","../node_modules/@types/node/http2.d.ts","../node_modules/@types/node/https.d.ts","../node_modules/@types/node/inspector.d.ts","../node_modules/@types/node/module.d.ts","../node_modules/@types/node/net.d.ts","../node_modules/@types/node/os.d.ts","../node_modules/@types/node/path.d.ts","../node_modules/@types/node/perf_hooks.d.ts","../node_modules/@types/node/process.d.ts","../node_modules/@types/node/punycode.d.ts","../node_modules/@types/node/querystring.d.ts","../node_modules/@types/node/readline.d.ts","../node_modules/@types/node/repl.d.ts","../node_modules/@types/node/stream.d.ts","../node_modules/@types/node/string_decoder.d.ts","../node_modules/@types/node/timers.d.ts","../node_modules/@types/node/tls.d.ts","../node_modules/@types/node/trace_events.d.ts","../node_modules/@types/node/tty.d.ts","../node_modules/@types/node/url.d.ts","../node_modules/@types/node/util.d.ts","../node_modules/@types/node/v8.d.ts","../node_modules/@types/node/vm.d.ts","../node_modules/@types/node/wasi.d.ts","../node_modules/@types/node/worker_threads.d.ts","../node_modules/@types/node/zlib.d.ts","../node_modules/@types/node/globals.global.d.ts","../node_modules/@types/node/index.d.ts","../node_modules/@types/yargs-parser/index.d.ts","../node_modules/@types/yargs/index.d.ts","../node_modules/@types/istanbul-lib-coverage/index.d.ts","../node_modules/chalk/index.d.ts","../node_modules/@types/istanbul-lib-report/index.d.ts","../node_modules/@types/istanbul-reports/index.d.ts","../node_modules/@sinclair/typebox/typebox.d.ts","../node_modules/@jest/schemas/build/index.d.ts","../node_modules/@jest/types/build/index.d.ts","../node_modules/@types/stack-utils/index.d.ts","../node_modules/jest-message-util/build/index.d.ts","../node_modules/@jest/console/build/index.d.ts","../node_modules/@types/graceful-fs/index.d.ts","../node_modules/jest-haste-map/build/index.d.ts","../node_modules/jest-resolve/build/index.d.ts","../node_modules/collect-v8-coverage/index.d.ts","../node_modules/@jest/test-result/build/index.d.ts","../node_modules/@jest/reporters/build/index.d.ts","../node_modules/jest-changed-files/build/index.d.ts","../node_modules/emittery/index.d.ts","../node_modules/jest-watcher/build/index.d.ts","../node_modules/jest-runner/build/index.d.ts","../node_modules/@jest/core/build/index.d.ts","../node_modules/jest-cli/build/index.d.ts","../node_modules/jest/build/index.d.ts","../jest.config.ts","../src/_exceptions/ValidationBRError.ts","../src/utils.ts","../src/_helpers/mask.ts","../src/base.ts","../src/_helpers/random.ts","../src/carplate.ts","../src/uf.ts","../src/cep.ts","../src/cnh.ts","../src/cnpj.ts","../src/cpf.ts","../src/judicial-process.ts","../src/nup17.ts","../src/pis-pasep.ts","../src/renavam.ts","../src/phone.ts","../src/pix-key.ts","../src/_helpers/crc.ts","../src/pix-copy-paste.ts","../src/postal-track-code.ts","../src/tituloEleitor.ts","../src/main.ts","../src/uf.spec.ts","../src/_helpers/mask.spec.ts","../src/_helpers/random.spec.ts","../test/carplate.spec.ts","../test/cep.spec.ts","../test/cnh.spec.ts","../test/cnpj.spec.ts","../test/cpf.spec.ts","../test/index.test.ts","../test/judicial-process.spec.ts","../test/nup17.spec.ts","../test/phone.spec.ts","../test/pis-pasep.spec.ts","../test/pix-copy-paste.spec.ts","../test/pix-key.spec.ts","../test/postal-track-code.test.ts","../test/renavam.spec.ts","../test/tituloEleitor.spec.ts","../test/utils-checkRepeatedSequence.test.ts","../test/utils-clearValue.test.ts","../test/utils-insertAtPosition.test.ts","../test/utils-removeFromPosition.test.ts","../test/utils-sumElementsByMultipliers.test.ts","../test/utils-sumToDV.test.ts","../test/_helpers/crc.spec.ts","../node_modules/@babel/types/lib/index.d.ts","../node_modules/@types/babel__generator/index.d.ts","../node_modules/@babel/parser/typings/babel-parser.d.ts","../node_modules/@types/babel__template/index.d.ts","../node_modules/@types/babel__traverse/index.d.ts","../node_modules/@types/babel__core/index.d.ts","../node_modules/jest-diff/build/cleanupSemantic.d.ts","../node_modules/pretty-format/build/types.d.ts","../node_modules/pretty-format/build/index.d.ts","../node_modules/jest-diff/build/types.d.ts","../node_modules/jest-diff/build/diffLines.d.ts","../node_modules/jest-diff/build/printDiffs.d.ts","../node_modules/jest-diff/build/index.d.ts","../node_modules/jest-matcher-utils/build/index.d.ts","../node_modules/@types/jest/index.d.ts"],"fileIdsList":[[133],[182],[71,101,108,117,119],[117,125,126,127,129,130],[108,117,125],[115],[111,117,120,122,123,124],[108,110,111,112,114,116],[182,183,184,185,186],[182,184],[78,108],[111],[113],[190,195],[65],[67],[68,73],[69,77,78,85,94],[69,70,77,85],[71,101],[72,73,78,86],[73,94],[74,75,77,85],[75],[76,77],[77],[77,78,79,94,100],[78,79],[77,80,85,94,100],[77,78,80,81,85,94,97,100],[80,82,94,97,100],[65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107],[77,83],[84,100],[75,77,85,94],[86],[87],[67,88],[89,99],[90],[91],[77,92],[92,93,101,103],[77,94],[95],[96],[85,94,97],[98],[85,99],[80,91,100],[101],[94,102],[103],[104],[77,79,94,100,103,105],[94,106],[109],[83,108],[110],[188,191],[188,191,192,193],[190],[108,117,121],[112,194],[117,118],[122],[117,125,129],[108,117,125,128],[117,131,132],[189],[137],[136],[139],[135,138,139],[135,138,139,141],[135,136,138,139],[140,143,144,145,146,147,148,149,150,151,153,154,155],[135,138,152],[135,138,156],[141],[135],[152],[140,156],[141,142],[143],[144],[145],[156],[146],[147],[150],[148],[153],[151],[154],[149],[155]],"fileInfos":[{"version":"44e584d4f6444f58791784f1d530875970993129442a847597db702a073ca68c","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"9a68c0c07ae2fa71b44384a839b7b8d81662a236d4b9ac30916718f7510b1b2d","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"5514e54f17d6d74ecefedc73c504eadffdeda79c7ea205cf9febead32d45c4bc","impliedFormat":1},{"version":"9e8ca8ed051c2697578c023d9c29d6df689a083561feba5c14aedee895853999","affectsGlobalScope":true,"impliedFormat":1},{"version":"69e65d976bf166ce4a9e6f6c18f94d2424bf116e90837ace179610dbccad9b42","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7a3c8b952931daebdfc7a2897c53c0a1c73624593fa070e46bd537e64dcd20a","affectsGlobalScope":true,"impliedFormat":1},{"version":"80e18897e5884b6723488d4f5652167e7bb5024f946743134ecc4aa4ee731f89","affectsGlobalScope":true,"impliedFormat":1},{"version":"cd034f499c6cdca722b60c04b5b1b78e058487a7085a8e0d6fb50809947ee573","affectsGlobalScope":true,"impliedFormat":1},{"version":"6920e1448680767498a0b77c6a00a8e77d14d62c3da8967b171f1ddffa3c18e4","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"45d8ccb3dfd57355eb29749919142d4321a0aa4df6acdfc54e30433d7176600a","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true,"impliedFormat":1},{"version":"6fc23bb8c3965964be8c597310a2878b53a0306edb71d4b5a4dfe760186bcc01","affectsGlobalScope":true,"impliedFormat":1},{"version":"ea011c76963fb15ef1cdd7ce6a6808b46322c527de2077b6cfdf23ae6f5f9ec7","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"1a94697425a99354df73d9c8291e2ecd4dddd370aed4023c2d6dee6cccb32666","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true,"impliedFormat":1},{"version":"e3f9fc0ec0b96a9e642f11eda09c0be83a61c7b336977f8b9fdb1e9788e925fe","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"479553e3779be7d4f68e9f40cdb82d038e5ef7592010100410723ceced22a0f7","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"d3d7b04b45033f57351c8434f60b6be1ea71a2dfec2d0a0c3c83badbb0e3e693","affectsGlobalScope":true,"impliedFormat":1},{"version":"956d27abdea9652e8368ce029bb1e0b9174e9678a273529f426df4b3d90abd60","affectsGlobalScope":true,"impliedFormat":1},{"version":"4fa6ed14e98aa80b91f61b9805c653ee82af3502dc21c9da5268d3857772ca05","affectsGlobalScope":true,"impliedFormat":1},{"version":"e6633e05da3ff36e6da2ec170d0d03ccf33de50ca4dc6f5aeecb572cedd162fb","affectsGlobalScope":true,"impliedFormat":1},{"version":"15c1c3d7b2e46e0025417ed6d5f03f419e57e6751f87925ca19dc88297053fe6","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"caccc56c72713969e1cfe5c3d44e5bab151544d9d2b373d7dbe5a1e4166652be","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"811c71eee4aa0ac5f7adf713323a5c41b0cf6c4e17367a34fbce379e12bbf0a4","affectsGlobalScope":true,"impliedFormat":1},{"version":"33358442698bb565130f52ba79bfd3d4d484ac85fe33f3cb1759c54d18201393","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"3cbad9a1ba4453443026ed38e4b8be018abb26565fa7c944376463ad9df07c41","impliedFormat":1},{"version":"f5331cb9cc00970e4831e7f0de9688e04986bcde808cac10caa3e7005e203907","impliedFormat":1},{"version":"d20bbe9029b614c171212c50c842fa7ddfc61a6bbc697710ac70e4f7f0c77d15","affectsGlobalScope":true,"impliedFormat":1},{"version":"a9d67f9ae6bb38f732c51d1081af6a0ac6cae5e122472cacc2d54db178013699","impliedFormat":1},{"version":"1296a364908ba9c646372edc18ee0e140d9a388956b0e9510eec906b19fa5b36","impliedFormat":1},{"version":"1c863a53fb796e962c4b3e54bc7b77fd04a518444263d307290ff04f619c275e","impliedFormat":1},{"version":"ff98afc32b01e580077faf85b60232b65c40df0c3ecaa765fabc347a639b4225","impliedFormat":1},{"version":"30133f9ceaa46c9a20092c382fed7b8d09393cf1934392149ea8202991edb3ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"30c05e45ec7e1247ba9b87ad2acfae4fda401737f0e8a59f78beda8a4e22b110","impliedFormat":1},{"version":"2da83cc57a94f7aee832f2a71e1a294d857492761c1f5db717ea42c1a22467bc","impliedFormat":1},{"version":"aa5cc73a5f548f5bc1b4279a730c03294dfa6e98bed228d4ed6322a4183b26ad","impliedFormat":1},{"version":"b3f1ac9fe3d18d6cd04ab1e67a5da8c33ceb47f26b47e67896a5b2f8293c8a32","impliedFormat":1},{"version":"ca88e8b07c8186ef3180bf9b6b4456311ae41bf3fe5652c27a2a3feba04136b0","affectsGlobalScope":true,"impliedFormat":1},{"version":"592d937b7df1b74af7fa81656503fc268fee50f0e882178e851b667def34414b","affectsGlobalScope":true,"impliedFormat":1},{"version":"fdfdf2eab2bded61ee321ec88b8e083fe8d9fedad25a16ae040740869bc64e48","impliedFormat":1},{"version":"e8067fc8b0247f8b5ad781bd22f5dd19f6a39961ba60fa6fc13cfe9e624ca92f","impliedFormat":1},{"version":"842ef57ce3043fba0b0fb7eece785140af9d2381e4bed4f2744d3060352f2fd5","impliedFormat":1},{"version":"9095b6f13d9e48704b919d9b4162c48b04236a4ce664dc07549a435d8f4e612e","impliedFormat":1},{"version":"111b4c048fe89d25bb4d2a0646623ff4c456a313ed5bfb647b2262dda69a4ff8","impliedFormat":1},{"version":"f70f62f5f87ff8900090069554f79d9757f8e385322d0e26268463e27c098204","impliedFormat":1},{"version":"0932ed41e23d22fa5359f74805c687314e4b707b3428e52419d0fbefc0d66661","impliedFormat":1},{"version":"af07f4baaca7e5cf70cb8887e7d4f23d6bb0c0dd6ca1329c3d959ea749b7a14d","impliedFormat":1},{"version":"c80402af7b0420f57372ac99885f1ab058121db72418e43d25f440abda7bbe23","impliedFormat":1},{"version":"71aba6ce66e76ccfd3ba92b8b5c6658bad293f1313f012821c4bff1dd64ca278","impliedFormat":1},{"version":"17d944cab17bc9e32975250e8abe8073702f9493582d847805e446641bd7798f","impliedFormat":1},{"version":"c6bfc70bbdee282436ee11e887cceaa5988ac4eec60d5eb9b3711748c811831a","affectsGlobalScope":true,"impliedFormat":1},{"version":"f9ca5159f56c1fe99cdfc5f942585de20695a2a343db8543383b239c050f6aa4","impliedFormat":1},{"version":"84634ac706042ac8ee3a1e141bcdee03621725ab55455dba878a5503c6c7e037","impliedFormat":1},{"version":"d796c62c3c91c22c331b7465be89d009459eb1eb689304c476275f48676eaf9e","impliedFormat":1},{"version":"51cbf03ad34c3e84d1998bd57d1fd8da333d66dd65904625d22dc01b751d99c7","impliedFormat":1},{"version":"c31bbdc27ef936061eaa9d423c5da7c5b439a4ff6b5f1b18f89b30cf119d5a56","impliedFormat":1},{"version":"2a4ae2a8f834858602089792c9e8bab00075f5c4b1708bd49c298a3e6c95a30c","impliedFormat":1},{"version":"71e29ae391229f876d8628987640c3c51c89a1c2fd980d1a72d69aeee4239f80","impliedFormat":1},{"version":"51c74d73649a4d788ed97b38bd55ebac57d85b35cbf4a0357e3382324e10bbe9","impliedFormat":1},{"version":"c8641524781fa803006a144fd3024d5273ab0c531d8a13bbeaa8c81d8241529f","impliedFormat":1},{"version":"73e218d8914afc428a24b7d1de42a2cb37f0be7ac1f5c32c4a66379572700b52","impliedFormat":1},{"version":"56ff5262d76c01b3637ca82f9749d3ec0d70cf57d87964bf3e9ba4204241849e","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e3a18040e5a95f61556e09c932393b49c3b21ce42abe0f4ed74b97173f320db","impliedFormat":1},{"version":"344922fac39b5732179b606e16781b354c160f0e9bd7f5921a0fdc9fe4ede1fb","impliedFormat":1},{"version":"c1449f51f9496bb23f33ee48ff590b815393ef560a9e80493614869fe50915da","impliedFormat":1},{"version":"87a49241df2b37e59f86619091dec2beb9ad8126d7649f0b0edb8fc99eca2499","impliedFormat":1},{"version":"07efd1f649e91967fada88d53ad64b61c1b2853d212f3eaffc946e7e13d03d67","impliedFormat":1},{"version":"6d79a0938f4b89c1c1fee2c3426754929173c8888fdfaab6b6d645269945f7bf","impliedFormat":1},{"version":"2708349d5a11a5c2e5f3a0765259ebe7ee00cdcc8161cb9990cb4910328442a1","affectsGlobalScope":true,"impliedFormat":1},{"version":"c6c0bd221bb1e94768e94218f8298e47633495529d60cae7d8da9374247a1cf5","impliedFormat":1},{"version":"bae8d023ef6b23df7da26f51cea44321f95817c190342a36882e93b80d07a960","impliedFormat":1},{"version":"26a770cec4bd2e7dbba95c6e536390fffe83c6268b78974a93727903b515c4e7","impliedFormat":1},{"version":"035a5df183489c2e22f3cf59fc1ed2b043d27f357eecc0eb8d8e840059d44245","impliedFormat":1},{"version":"0d14fa22c41fdc7277e6f71473b20ebc07f40f00e38875142335d5b63cdfc9d2","impliedFormat":1},{"version":"a4809f4d92317535e6b22b01019437030077a76fec1d93b9881c9ed4738fcc54","impliedFormat":1},{"version":"5f53fa0bd22096d2a78533f94e02c899143b8f0f9891a46965294ee8b91a9434","impliedFormat":1},{"version":"c085e9aa62d1ae1375794c1fb927a445fa105fed891a7e24edbb1c3300f7384a","impliedFormat":1},{"version":"f315e1e65a1f80992f0509e84e4ae2df15ecd9ef73df975f7c98813b71e4c8da","impliedFormat":1},{"version":"e00243d23c495ca2170c9b9e20b5c92331239100b51efdc2b4401cdad859bbef","impliedFormat":1},{"version":"ab82804a14454734010dcdcd43f564ff7b0389bee4c5692eec76ff5b30d4cf66","impliedFormat":1},{"version":"6fa5d56af71f07dc276aae3f6f30807a9cccf758517fb39742af72e963553d80","impliedFormat":1},{"version":"253b95673c4e01189af13e855c76a7f7c24197f4179954521bf2a50db5cfe643","impliedFormat":1},{"version":"afe73051ff6a03a9565cbd8ebb0e956ee3df5e913ad5c1ded64218aabfa3dcb5","impliedFormat":1},{"version":"31f24e33f22172ba0cc8cdc640779fb14c3480e10b517ad1b4564e83fa262a2b","impliedFormat":1},{"version":"f380ae8164792d9690a74f6b567b9e43d5323b580f074e50f68f983c0d073b5b","impliedFormat":1},{"version":"0fd641a3b3e3ec89058051a284135a3f30b94a325fb809c4e4159ec5495b5cdc","impliedFormat":1},{"version":"7b20065444d0353a2bc63145481e519e02d9113a098a2db079da21cb60590ef0","impliedFormat":1},{"version":"9f162ee475383c13e350c73e24db5adc246fba830b9d0cc11d7048af9bbd0a29","impliedFormat":1},{"version":"ce7c3363c40cd2fcc994517c7954954d1c70de2d972df7e45fa83837593b8687","impliedFormat":1},{"version":"6ab1224e0149cc983d5da72ff3540bc0cad8ee7b23cf2a3da136f77f76d01763","impliedFormat":1},{"version":"e059fb0805a29ea3976d703a6f082c1493ac5583ca8011e8c5b86d0a23667d0d","impliedFormat":1},{"version":"16fbf548a0337a83d30552e990b6832fd24bbc47042a8c491e1dc93029b4222f","impliedFormat":1},{"version":"0c4c7303956a4726568c801dcd81e9fbce32fbf74565f735bbcf46ba66417769","impliedFormat":1},{"version":"f39848c7895fd6373d5e30089e7fb1d10c464e7eeb37ce1ea47d188a707b162c","impliedFormat":1},{"version":"9249c34e7282d17a2749677c3521ea625f73c2b48792af08fa9c5e09abc6a882","impliedFormat":1},{"version":"c5c62931355f1089eddf4f90d2de51bd1e82325cea8804003d796d7551a57756","signature":"8514836d91a067df3bc62afbc4cc61cb7ec680e3869a6708d8156d6965dcee2b"},{"version":"4ec61c956d422af3e69ba85078b47b6bb3af76adce82715e4bc464bc0f21c4ed","signature":"ef35a7162b7c09e3670a05f1ec7e2cf4697ddd04a927663862835362659442fb"},{"version":"2b796beb9ecc7546d111215725b7a6114f37d569c5b09debb9e1844a504f6d09","signature":"5fc20c78f5a3e29ccf217d46fa82e4a1592d66fbe770d3b9a3dbff3a8009721b"},{"version":"7bf63cd74e3b13e0dc044908400dc12d2759a6c8df6c683c3ce189f5f27ee285","signature":"3d7d49de28173eade1322f1c34e2ae8737a8e62058a70485f92cb7173d7bb8ae"},{"version":"7dbebd9fe1443ad5898ffa2e2eafda356798d9cb3edc5cbda7a3605d89756798","signature":"860cecc194ab4f857b24bbf53691c35fb67ff2df8641eb33234fe9d8b09498b4"},{"version":"8fad800885175a676747e8447439038ef00a56b2c2acbfa5af13c133f192e364","signature":"671e7ed54f8a27329bfd6c89bf4ca9055cc8c08d462427c9a2d92d2a34b1a0f7"},{"version":"c786ebdddfef7f846769e922d0a336eb977ef4696cc29efdd16b1a67c3aa89c3","signature":"a07e02957c0d945d73101922d214a64a3da3566c6bc75d8de74f35f1e5a60f38"},{"version":"adef27c7bd206f9bba1475ca8245329356c063e4a53ea26c3b48c67e8e69339e","signature":"bf924a2b1a111a8f862dc3931bf91ca6280bebc6d83d01ddccbfcacd16a3e01c"},{"version":"39947914477cc4ee55b38f5857e3e431ebb55c489bb54e7098f05315ad95d965","signature":"2f913047f50cae5dd3528635234f268daeb11792a2499d3bc9fd09e008f64f8d"},{"version":"599c3524daa1aab809fff8d97a983a785d1600d708e267573a624fbca7408db5","signature":"591e8286cdb6531464b4d66279534ba9c01fbc479a6bd78c5b2d8e85b4d0fc38"},{"version":"80e0a6b84e8710ce45693fb7c62ae99dd3f270a60f3f0317752139add6d248b2","signature":"2ef0da8ee6e8edfc94c588f1c8003c9e9d2321fb58fc8ba62528800bfdb875ce"},{"version":"f38ac05953f2d1cfacd88da98035c150fb136784f86fd80e95915b30d28e40ec","signature":"0fd153a9f06cdf075bff155332ee323435e4d743c1c95d9a4b07997dd1759d8c"},{"version":"363a706073e75fead6cb27636e49ce8f404649a08215bd940133690c5bb997e9","signature":"8406d1ed309fc5f085a8652b454e052c4a449669bd47f6272d68a3cfcf69c2a0"},{"version":"a9295d550c0d83d3e23f969adb2526151649fd780a6a2c2be2605851539df8cd","signature":"cdf4658513e21e4f3a86a066a0e79fa4e3a3f9d6d66f9db97a23f2654eb10d2a"},{"version":"63e89644b5a4a57dedee79d110741a656a1876938f58484e675f24a27ab4f575","signature":"bed6b3d6553e04fb765a1e36d7a4b1901a0baf3f3d828d331755be7ebb28d0d5"},{"version":"be649c5633eb49ab0401278b52a899bc9c588652eda1c8571ebdaffe8f2d2d82","signature":"3f2cec2aa3995d52a7fa32a98caddd7a2341c179c1b59652d5b5863fa7935497"},{"version":"1646a3fbff628ed7d1d8a4d363d147fc53d91d42f1e7d2d4a337c5aacd1a9fa4","signature":"a4f8ed31db826c6c2a557fe1568ca4475ff1aba3c5b7f4adb8fe143c46a790d1"},{"version":"28da2f27f55191bd2f6a2d80a1471af068bc1b7786bbbba1bdc0dd466860f4ea","signature":"12453e91a65d728d8f8b3ae1ce7c15f79d24f4f38dfa69cc9dde91823454700d"},{"version":"2a429fd6540de955deb34cc0b17e94a3212b74bcc017830daa037dc55c02ac27","signature":"7bf9899effef91a4ce2aded11d0a0619474dc4877e48ac4a4ab6e908ec4b6b9b"},{"version":"7e5b2923e3093ab5da8ca0f59099f45b1dafcc6a478f9fc18e251f9f3ed46695","signature":"ad968171e42d7782b3fb6359c0ae891c9d377027fdee5ade89cf2eb08f641b13"},{"version":"07a2ed3a44b9593258385db3126c66e485221b6bc65eeef837dcafb8e542ffe8","signature":"4c8fe4a65351d6d2075f7f8f3b7528dffa0a766eff95bd72950d610b268edf72"},{"version":"57db226e1a0fdff69819efbd412d010d28415366dcd52d2a15315c1f874e7143","signature":"da117083480278cfd70045b628712cbfc76c6e3ca4731d4da68d3beb62fce83b"},{"version":"b001cca8187569f6b5a20832473602f34897e8906c8208fd6ad75ed27b114254","signature":"eeb7f274f60b2298b4a1913a58e60f58deb4ba775ea3561d5ae3649d3160c431"},{"version":"8980972046aa4e94bac1ad803cfce159863d115250566d3097f71db4522b1deb","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"c60114052c4201ec512f33152216f53d7accf1c71738862671005171573177b0","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"370f779f2ac45302c91019e9a05e38cba94934b7a3fa479ea718d79e5cfe0c86","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"d5dbafa53d0b795d1b9249cd5647c5dc7842aa9ba9d1892467fecafd97ab3f57","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"e22e411367593610cf4f6808e1439823311bf75ff8a081bec512a0927070d363","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"90e054b34f7d01d8836db20c94c27b35c5ce031a798dfd67e69df9183f93754f","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"f919c0f2982c83d8fa98768e13c933b9bad181f8819ae2478de1e360b09b6395","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"c0f7a8e1ef529a45d3b3388dd17a4d2a2425129107cc64601fc1e62e4e46eb76","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"e42aaa82c1c85b84ab8d43f94cf5196ed4b1647b6ea50f50c2fb5bcb7281f9dd","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"b6ce6ec0924a00c065b56bf3b0c591d2d56ada5836871bab69026e9a48eda7ab","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"18fe534304dd38ef5329bb7be8dee0409b7f17688254fb6d7f580113310f1e09","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"4964e6303f203842936e27253f81dac78156a7512648f206f1ea5b3e3217d872","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"e0d52167dc16205a4835659ef275c5ab35dcf489c9f75cabc1a8c73b91c107bf","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"8078dc550e847f6d41dff32801f80d9f4d0e9db9c13c026f26853f16d84de986","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"92821dff603e52977687ec782f170c0f706b4f0f3f006f5ab5326bfcc44e97da","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"d7dc723b79af975aa3ac555f6b46fde95fbc90acf45ffc0dd709f3ae58913334","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"203ad5e4bebf79973ead227ee68408e910509326de9a0e4be2e4ffb234e5c0bc","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"56dffe0a683708cd2e82372dc4ab7f0ad1aa5115162bb3d7e06f576db6570492","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"2cc09abbb7c196d918a0df65142290724795ccb94336f9a22f4c1baf57cd20ad","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"1260d030e907ac67668570f1c741dac4092071e70c7d4e19aa044081d9a905f8","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"ff8f53b2844a4b8a609779131c016fb4e016a03ff91246369feb25f4b81c065e","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"237b85b9ca3c78797d63d49b5a247642f22f623280711eebf4ce460030bf5692","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"145686e94fcc4d8c9abf02376d93786a51734685da1efe6ab6ebf6e867f69127","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"356e0806f9b6f19ce0f1cd4681f07141b1349bca5947940e5c128dfb71b1d2b0","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"d1eb07946a503ad392f922dff89922a4ac5ce8f6d963c204ec95be21a0a12a7e","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"e74998d5cefc2f29d583c10b99c1478fb810f1e46fbb06535bfb0bbba3c84aa5","impliedFormat":1},{"version":"2c8e55457aaf4902941dfdba4061935922e8ee6e120539c9801cd7b400fae050","impliedFormat":1},{"version":"43d058146b002d075f5d0033a6870321048297f1658eb0db559ba028383803a6","impliedFormat":1},{"version":"670a76db379b27c8ff42f1ba927828a22862e2ab0b0908e38b671f0e912cc5ed","impliedFormat":1},{"version":"9e0cf651e8e2c5b9bebbabdff2f7c6f8cedd91b1d9afcc0a854cdff053a88f1b","impliedFormat":1},{"version":"069bebfee29864e3955378107e243508b163e77ab10de6a5ee03ae06939f0bb9","impliedFormat":1},{"version":"d8aab31ba8e618cc3eea10b0945de81cb93b7e8150a013a482332263b9305322","impliedFormat":1},{"version":"462bccdf75fcafc1ae8c30400c9425e1a4681db5d605d1a0edb4f990a54d8094","impliedFormat":1},{"version":"5923d8facbac6ecf7c84739a5c701a57af94a6f6648d6229a6c768cf28f0f8cb","impliedFormat":1},{"version":"7adecb2c3238794c378d336a8182d4c3dd2c4fa6fa1785e2797a3db550edea62","impliedFormat":1},{"version":"dc12dc0e5aa06f4e1a7692149b78f89116af823b9e1f1e4eae140cd3e0e674e6","impliedFormat":1},{"version":"1bfc6565b90c8771615cd8cfcf9b36efc0275e5e83ac7d9181307e96eb495161","impliedFormat":1},{"version":"8a8a96898906f065f296665e411f51010b51372fa260d5373bf9f64356703190","impliedFormat":1},{"version":"7f82ef88bdb67d9a850dd1c7cd2d690f33e0f0acd208e3c9eba086f3670d4f73","impliedFormat":1},{"version":"ccfd8774cd9b929f63ff7dcf657977eb0652e3547f1fcac1b3a1dc5db22d4d58","affectsGlobalScope":true,"impliedFormat":1}],"root":[[134,181]],"options":{"declaration":true,"declarationMap":true,"esModuleInterop":true,"module":1,"noImplicitAny":true,"noImplicitReturns":true,"outDir":"./","skipLibCheck":true,"sourceMap":true,"strict":true,"strictNullChecks":true,"target":9},"referencedMap":[[134,1],[184,2],[120,3],[131,4],[126,5],[116,6],[125,7],[117,8],[187,9],[183,2],[185,10],[186,2],[121,11],[113,12],[114,13],[196,14],[65,15],[67,16],[68,17],[69,18],[70,19],[71,20],[72,21],[73,22],[74,23],[75,24],[76,25],[77,26],[78,27],[79,28],[80,29],[81,30],[82,31],[108,32],[83,33],[84,34],[85,35],[86,36],[87,37],[88,38],[89,39],[90,40],[91,41],[92,42],[93,43],[94,44],[95,45],[96,46],[97,47],[98,48],[99,49],[100,50],[101,51],[102,52],[103,53],[104,54],[105,55],[106,56],[110,57],[124,58],[132,59],[192,60],[194,61],[193,60],[191,62],[122,63],[195,64],[119,65],[123,66],[130,67],[129,68],[133,69],[190,70],[158,71],[137,72],[159,73],[138,71],[140,74],[142,75],[143,76],[144,76],[145,76],[146,76],[156,77],[147,76],[150,74],[148,76],[153,78],[151,79],[154,76],[149,76],[155,76],[157,80],[141,74],[136,81],[181,82],[160,83],[161,84],[162,85],[163,86],[164,87],[165,88],[166,89],[167,90],[168,91],[169,92],[170,93],[171,94],[172,95],[173,96],[174,97],[175,72],[176,72],[177,72],[178,72],[179,72],[180,72]],"version":"5.6.2"}
@@ -0,0 +1,11 @@
1
+ import globals from "globals";
2
+ import pluginJs from "@eslint/js";
3
+ import tseslint from "typescript-eslint";
4
+
5
+
6
+ export default [
7
+ {files: ["**/*.{js,mjs,cjs,ts}"]},
8
+ {languageOptions: { globals: globals.browser }},
9
+ pluginJs.configs.recommended,
10
+ ...tseslint.configs.recommended,
11
+ ];
package/jest.config.ts ADDED
@@ -0,0 +1,210 @@
1
+ /**
2
+ * For a detailed explanation regarding each configuration property, visit:
3
+ * https://jestjs.io/docs/configuration
4
+ */
5
+
6
+ import type { Config } from 'jest';
7
+
8
+ const config: Config = {
9
+
10
+
11
+ testEnvironment: 'node',
12
+
13
+ // All imported modules in your tests should be mocked automatically
14
+ // automock: false,
15
+
16
+ // Stop running tests after `n` failures
17
+ // bail: 0,
18
+
19
+ // The directory where Jest should store its cached dependency information
20
+ // cacheDirectory: "/tmp/jest_ru",
21
+
22
+ // Automatically clear mock calls, instances, contexts and results before every test
23
+ clearMocks: true,
24
+
25
+ // Indicates whether the coverage information should be collected while executing the test
26
+ collectCoverage: false,
27
+
28
+ // An array of glob patterns indicating a set of files for which coverage information should be collected
29
+ // collectCoverageFrom: undefined,
30
+
31
+ // The directory where Jest should output its coverage files
32
+ coverageDirectory: './coverage/',
33
+
34
+ // An array of regexp pattern strings used to skip coverage collection
35
+ // coveragePathIgnorePatterns: [
36
+ // "/node_modules/"
37
+ // ],
38
+
39
+ // Indicates which provider should be used to instrument code for coverage
40
+ coverageProvider: "v8",
41
+
42
+ // A list of reporter names that Jest uses when writing coverage reports
43
+ // coverageReporters: [
44
+ // "json",
45
+ // "text",
46
+ // "lcov",
47
+ // "clover"
48
+ // ],
49
+
50
+ // An object that configures minimum threshold enforcement for coverage results
51
+ // coverageThreshold: undefined,
52
+
53
+ // A path to a custom dependency extractor
54
+ // dependencyExtractor: undefined,
55
+
56
+ // Make calling deprecated APIs throw helpful error messages
57
+ // errorOnDeprecated: false,
58
+
59
+ // The default configuration for fake timers
60
+ // fakeTimers: {
61
+ // "enableGlobally": false
62
+ // },
63
+
64
+ // Force coverage collection from ignored files using an array of glob patterns
65
+ // forceCoverageMatch: [],
66
+
67
+ // A path to a module which exports an async function that is triggered once before all test suites
68
+ // globalSetup: undefined,
69
+
70
+ // A path to a module which exports an async function that is triggered once after all test suites
71
+ // globalTeardown: undefined,
72
+
73
+ // A set of global variables that need to be available in all test environments
74
+ // globals: {},
75
+
76
+ // The maximum amount of workers used to run your tests. Can be specified as % or a number. E.g. maxWorkers: 10% will use 10% of your CPU amount + 1 as the maximum worker number. maxWorkers: 2 will use a maximum of 2 workers.
77
+ // maxWorkers: "50%",
78
+
79
+ // An array of directory names to be searched recursively up from the requiring module's location
80
+ // moduleDirectories: [
81
+ // "node_modules"
82
+ // ],
83
+
84
+ // An array of file extensions your modules use
85
+ moduleFileExtensions: ['ts', 'js'],
86
+ // moduleFileExtensions: [
87
+ // "js",
88
+ // "mjs",
89
+ // "cjs",
90
+ // "jsx",
91
+ // "ts",
92
+ // "tsx",
93
+ // "json",
94
+ // "node"
95
+ // ],
96
+
97
+ // A map from regular expressions to module names or to arrays of module names that allow to stub out resources with a single module
98
+ // moduleNameMapper: {},
99
+
100
+ // An array of regexp pattern strings, matched against all module paths before considered 'visible' to the module loader
101
+ // modulePathIgnorePatterns: [],
102
+
103
+ // Activates notifications for test results
104
+ // notify: false,
105
+
106
+ // An enum that specifies notification mode. Requires { notify: true }
107
+ // notifyMode: "failure-change",
108
+
109
+ // A preset that is used as a base for Jest's configuration
110
+ // preset: undefined,
111
+
112
+ // Run tests from one or more projects
113
+ // projects: undefined,
114
+
115
+ // Use this configuration option to add custom reporters to Jest
116
+ // reporters: undefined,
117
+
118
+ // Automatically reset mock state before every test
119
+ // resetMocks: false,
120
+
121
+ // Reset the module registry before running each individual test
122
+ // resetModules: false,
123
+
124
+ // A path to a custom resolver
125
+ // resolver: undefined,
126
+
127
+ // Automatically restore mock state and implementation before every test
128
+ // restoreMocks: false,
129
+
130
+ // The root directory that Jest should scan for tests and modules within
131
+ // rootDir: undefined,
132
+
133
+ // A list of paths to directories that Jest should use to search for files in
134
+ roots: [
135
+ "./test",
136
+ "./src",
137
+ ],
138
+
139
+ // Allows you to use a custom runner instead of Jest's default test runner
140
+ // runner: "jest-runner",
141
+
142
+ // The paths to modules that run some code to configure or set up the testing environment before each test
143
+ // setupFiles: [],
144
+
145
+ // A list of paths to modules that run some code to configure or set up the testing framework before each test
146
+ // setupFilesAfterEnv: [],
147
+
148
+ // The number of seconds after which a test is considered as slow and reported as such in the results.
149
+ // slowTestThreshold: 5,
150
+
151
+ // A list of paths to snapshot serializer modules Jest should use for snapshot testing
152
+ // snapshotSerializers: [],
153
+
154
+ // The test environment that will be used for testing
155
+ // testEnvironment: "jest-environment-node",
156
+
157
+ // Options that will be passed to the testEnvironment
158
+ // testEnvironmentOptions: {},
159
+
160
+ // Adds a location field to test results
161
+ // testLocationInResults: false,
162
+
163
+ // The glob patterns Jest uses to detect test files
164
+ // testMatch: [
165
+ // "**/__tests__/**/*.[jt]s?(x)",
166
+ // "**/?(*.)+(spec|test).[tj]s?(x)"
167
+ // ],
168
+
169
+ // An array of regexp pattern strings that are matched against all test paths, matched tests are skipped
170
+ // testPathIgnorePatterns: [
171
+ // "/node_modules/"
172
+ // ],
173
+
174
+ // The regexp pattern or array of patterns that Jest uses to detect test files
175
+ // testRegex: '(/test/.*\\.(test|spec))\\.(jsx?|tsx?)$',
176
+ testRegex: '(/.*\\.(test|spec))\\.(jsx?|tsx?)$',
177
+ // testRegex: [],
178
+
179
+ // This option allows the use of a custom results processor
180
+ // testResultsProcessor: undefined,
181
+
182
+ // This option allows use of a custom test runner
183
+ // testRunner: "jest-circus/runner",
184
+
185
+ // A map from regular expressions to paths to transformers
186
+ transform: {
187
+ '^.+\\.(ts|tsx)$': ['ts-jest', { /* ts-jest config goes here in Jest */ }],
188
+ },
189
+ // transform: undefined,
190
+
191
+ // An array of regexp pattern strings that are matched against all source file paths, matched files will skip transformation
192
+ // transformIgnorePatterns: [
193
+ // "/node_modules/",
194
+ // "\\.pnp\\.[^\\/]+$"
195
+ // ],
196
+
197
+ // An array of regexp pattern strings that are matched against all modules before the module loader will automatically return a mock for them
198
+ // unmockedModulePathPatterns: undefined,
199
+
200
+ // Indicates whether each individual test should be reported during the run
201
+ // verbose: undefined,
202
+
203
+ // An array of regexp patterns that are matched against all source file paths before re-running tests in watch mode
204
+ // watchPathIgnorePatterns: [],
205
+
206
+ // Whether to use watchman for file crawling
207
+ // watchman: true,
208
+ };
209
+
210
+ export default config;
package/package.json CHANGED
@@ -1,18 +1,18 @@
1
1
  {
2
2
  "name": "validation-br",
3
3
  "description": "Brazilian personal documents validation - cpf, cnpj, titulo, pis/pasep, cnh, renavam, processos judiciais, protocolo federal, código de rastreamento dos correios",
4
- "version": "1.5.2",
4
+ "version": "2.0.0-next-2",
5
5
  "main": "dist/index.js",
6
6
  "types": "./dist/index.d.ts",
7
7
  "author": "Cláudio Medeiros <klawdyo@gmail.com>",
8
8
  "license": "MIT",
9
9
  "scripts": {
10
- "build": "tsc",
11
10
  "test": "jest",
12
11
  "test:watch": "jest --watch",
13
12
  "test:coverage": "jest --collectCoverageFrom=src/**/*.ts --coverage",
14
13
  "format": "prettier --write \"./**/*.{js,ts,json}\"",
15
- "prepublish": "npm run build"
14
+ "build": "rm ./dist -r && npx jest && npx tsc",
15
+ "prepublishOnly": "npm run build"
16
16
  },
17
17
  "lint-staged": {
18
18
  "*.{js,ts}": [
package/readme.md CHANGED
@@ -411,13 +411,14 @@ titulo.dv('5250288816') // -> '94'
411
411
 
412
412
  Todos os testes passando com 100% de cobertura
413
413
 
414
- ![Testes passando com 100% de cobertura](https://github.com/klawdyo/validation-br/assets/100168/bb83df1e-774c-4a92-bf83-7b451682264e)
414
+ ![Testes passando com 100% de cobertura](https://github.com/user-attachments/assets/86c75eda-077f-4386-ba9c-20b588b6bd36)
415
+
415
416
 
416
417
  # Github Actions
417
418
 
418
419
  Github actions executados nas versões 18, 20 e 22 do Node.
419
420
 
420
- ![Github actions executados nas versões 12, 14, 16, 18 e 20 do Node](https://github.com/klawdyo/validation-br/assets/100168/50f5b3c3-f1b0-46ac-a6b1-e31a366b27c7)
421
+ ![Github actions executados nas versões 18, 20 e 22 do Node](https://github.com/user-attachments/assets/34b2b82d-67e3-4c00-b9c6-7160279123d2)
421
422
 
422
423
  # Changelog
423
424
 
@@ -0,0 +1,13 @@
1
+ import { CRC } from '../../src/_helpers/crc';
2
+
3
+ describe('CRC', () => {
4
+ test('Converte string para o formato CRC16', () => {
5
+ // console.log(CRC(12345678))
6
+ expect(new CRC('12345678').calculate()).toBe('A12B');
7
+ expect(
8
+ new CRC(
9
+ '00020101021226390014BR.GOV.BCB.PIX0117klawdyo@gmail.com52040000530398654041.005802BR5924Jose Claudio Medeiros de6006AssuRN61085965000062200516SINASEFE-18/20216304'
10
+ ).calculate()
11
+ ).toBe('EB13');
12
+ });
13
+ });
@@ -0,0 +1,85 @@
1
+ import { CarPlate } from '../src/carplate';
2
+ import { isCarPlate } from '../src/main';
3
+
4
+ describe('CarPlate', () => {
5
+ describe('construtor', () => {
6
+ test.each([
7
+ 'AAA0000',
8
+ 'AAA-0000',
9
+ 'AAA0F00',
10
+ 'AAA-0F00',
11
+ 'AbA0F00',
12
+ 'abc-0h00',
13
+ 'abc-0h00 ',
14
+ ])('A placa %s deve ser válida', (input) => {
15
+ expect(new CarPlate(input)).toBeDefined();
16
+ });
17
+
18
+ test.each([
19
+ 'A2A0000',
20
+ 'AAA-00A0',
21
+ 'AAA0F0',
22
+ 'AAA0F077',
23
+ 'AAA0F-077',
24
+ '',
25
+ null,
26
+ undefined,
27
+ ])('A placa %s deve lançar erro', (input) => {
28
+ expect(() => new CarPlate(input as any)).toThrow();
29
+ });
30
+ });
31
+
32
+ describe('isCarPlate', () => {
33
+ test.each([
34
+ 'AAA0000',
35
+ 'AAA-0000',
36
+ 'AAA0F00',
37
+ 'AAA-0F00',
38
+ 'AbA0F00',
39
+ 'abc-0h00',
40
+ ])('A placa %s deve ser válida', (clarPlate) => {
41
+ expect(isCarPlate(clarPlate)).toBeTruthy();
42
+ });
43
+
44
+ test.each([
45
+ 'A2A0000',
46
+ 'AAA-00A0',
47
+ 'AAA0F0',
48
+ 'AAA0F077',
49
+ '',
50
+ null,
51
+ undefined,
52
+ ])('A placa %s não deve ser válida', (clarPlate) => {
53
+ expect(isCarPlate(clarPlate as any)).toBeFalsy();
54
+ });
55
+ });
56
+
57
+ describe('checlsum', () => {
58
+ test('Car plate não tem DV', () => {
59
+ expect(() => CarPlate.checksum('MYN-7442'));
60
+ });
61
+ });
62
+
63
+ describe('fake', () => {
64
+ test.each([...Array(5)])('Gera fakes sem mascara', () => {
65
+ expect(CarPlate.fake()).toBeDefined();
66
+ });
67
+ });
68
+
69
+ describe('mask', () => {
70
+ test.each([
71
+ 'AAA0000',
72
+ 'AAA0900',
73
+ 'AAA0F00',
74
+ 'AGA0F00',
75
+ 'aba0F00',
76
+ 'abc0h00',
77
+ ])('A placa %s deve ser válida', (clarPlate) => {
78
+ const masked = new CarPlate(clarPlate).mask();
79
+ expect(masked).toBeDefined();
80
+ expect(masked).toBe(masked.toLocaleUpperCase());
81
+ expect(masked.length).toBe(8);
82
+ expect(masked).toMatch(/^[A-Z]{3}-[0-9][A-Z0-9][0-9]{2}$/);
83
+ });
84
+ });
85
+ });
@@ -0,0 +1,127 @@
1
+ import { CEP } from '../src/cep';
2
+ import { UF } from '../src/uf';
3
+
4
+ describe('CEP', () => {
5
+ describe('constructor', () => {
6
+ test.each(['59650000', '59650-000', '59.650-000'])(
7
+ '%s deve estar definido',
8
+ (input) => {
9
+ expect(new CEP(input)).toBeDefined();
10
+ }
11
+ );
12
+
13
+ test.each([
14
+ '5965000A', // letras
15
+ '596000', // caracteres de menos
16
+ '596500000', // caracteres de mais
17
+ '5965-0000', // hífen fora do lugar
18
+ '59.650000', // tem ponto mas não tem traço
19
+ ])('%s deve lançar erro', (input) => {
20
+ expect(() => new CEP(input)).toThrow();
21
+ });
22
+ });
23
+
24
+ describe('constructor com validação por estado', () => {
25
+ test.each(['59650000', '59650-000', '59.650-000'])(
26
+ '%s deve estar definido',
27
+ (input) => {
28
+ expect(new CEP(input, { uf: UF.RN })).toBeDefined();
29
+ }
30
+ );
31
+
32
+ test.each(['59650000', '59650-000', '59.650-000'])(
33
+ '%s deve lançar erro pois não é um CEP do Ceará',
34
+ (input) => {
35
+ expect(() => new CEP(input, { uf: UF.CE })).toThrow();
36
+ }
37
+ );
38
+ });
39
+
40
+ describe('toString', () => {
41
+ test.each(['59650000', '59650-000'])(
42
+ 'CEP %s deve ser exibido sem máscara',
43
+ (value) => {
44
+ expect(new CEP(value).toString()).toBe('59650000');
45
+ expect(new CEP(value).value).toBe('59650000');
46
+ }
47
+ );
48
+ });
49
+
50
+ describe('fake', () => {
51
+ test.each([...Array(5)])('Gera fake válido', () => {
52
+ const cep = CEP.fake();
53
+ expect(cep).toBeDefined();
54
+ expect(cep.value).toHaveLength(8);
55
+ });
56
+ });
57
+
58
+ describe('checksum', () => {
59
+ test('deve lançar erro pois cep não tem dígito verificador', () => {
60
+ expect(() => CEP.checksum('59650000')).toThrow();
61
+ });
62
+ });
63
+
64
+ describe('mask', () => {
65
+ test.each([
66
+ { value: '95471143', expected: '95471-143' },
67
+ { value: '16474534', expected: '16474-534' },
68
+ { value: '44471146', expected: '44471-146' },
69
+ ])('%s deve gerar máscara corretamente', (input) => {
70
+ const cep = new CEP(input.value);
71
+
72
+ expect(cep.mask()).toBe(input.expected);
73
+ expect(cep.mask()).toHaveLength(9);
74
+ expect(cep.mask()).toMatch(/^\d{5}-\d{3}$/);
75
+ });
76
+ });
77
+
78
+ //
79
+ //
80
+ //
81
+ // SPECIFIC
82
+ //
83
+ //
84
+ //
85
+
86
+ describe('getUFByCEP', () => {
87
+ test.each(['59650000', '59650-000', '59.650-000'])(
88
+ 'O CEP de Assú deve retornar RN',
89
+ (item) => {
90
+ const uf = CEP.getUFByCEP(item);
91
+ expect(uf).toBeDefined();
92
+ expect(uf).toBeInstanceOf(UF);
93
+ expect(uf.value).toBe('RN');
94
+ }
95
+ );
96
+
97
+ test.each(['01123456', '01123-456', '01.123-456'])(
98
+ 'Verifica CEPs de São Paulo para testar o "0" inicial',
99
+ (item) => {
100
+ const uf = CEP.getUFByCEP(item);
101
+ expect(uf).toBeDefined();
102
+ expect(uf).toBeInstanceOf(UF);
103
+ expect(uf.value).toBe('SP');
104
+ }
105
+ );
106
+ });
107
+
108
+ describe('getRandomByUF', () => {
109
+ test('Deve gerar um CEP aleatório dentro da faixa do RN', () => {
110
+ const cep = CEP.getRandomByUF(UF.RN);
111
+ expect(cep).toBeDefined();
112
+ expect(cep.value >= '59000000').toBeTruthy();
113
+ expect(cep.value <= '59999999').toBeTruthy();
114
+ });
115
+ });
116
+
117
+ describe('getRangesByUF', () => {
118
+ test.each(['59650000', '59650-000', '59.650-000'])(
119
+ 'Pega as faixas do RN',
120
+ () => {
121
+ const [ranges] = CEP.getRangesByUF(UF.RN);
122
+ expect(ranges).toBeDefined();
123
+ expect(ranges).toMatchObject(['59000000', '59999999']);
124
+ }
125
+ );
126
+ });
127
+ });
@@ -0,0 +1,67 @@
1
+ import { CNH } from '../src/cnh';
2
+ import * as _cnh from '../src/cnh';
3
+
4
+ describe('CNH', () => {
5
+ describe('constructor', () => {
6
+ test.each(['14490435923', '97286888262', '621049358-60', '491872350-50'])(
7
+ 'deve estar definido',
8
+ (input) => {
9
+ expect(new CNH(input)).toBeDefined();
10
+ }
11
+ );
12
+
13
+ test.each([
14
+ '50995131143',
15
+ '58916794534',
16
+ '50995471165',
17
+ '69944271146',
18
+ '46990906839',
19
+ '629729276-37',
20
+ ])('deve lançar erro', (input) => {
21
+ expect(() => new CNH(input)).toThrow();
22
+ });
23
+ });
24
+
25
+ describe('fake', () => {
26
+ test.each([...Array(5)])('Gera fakes', () => {
27
+ const cnh = CNH.fake();
28
+ expect(cnh).toBeDefined();
29
+ expect(cnh.value).toHaveLength(11);
30
+ });
31
+ });
32
+
33
+ describe('checksum', () => {
34
+ test.each([
35
+ { num: '501954711', expected: '65' },
36
+ { num: '583164745', expected: '75' },
37
+ { num: '690444711', expected: '17' },
38
+ ])('O DV gerado deve estar correto', (item) => {
39
+ const calcDv = CNH.checksum(item.num);
40
+
41
+ expect(calcDv).toBe(item.expected);
42
+ expect(typeof calcDv).toBe('string');
43
+ });
44
+
45
+ test.each(['50195471', '5831641745', ''])(
46
+ 'deve lançar erro de dv',
47
+ (item) => {
48
+ expect(() => CNH.checksum(item)).toThrow();
49
+ }
50
+ );
51
+ });
52
+
53
+ describe('mask', () => {
54
+ test.each([
55
+ { value: '14490435923', expected: '144904359-23' },
56
+ { value: '97286888262', expected: '972868882-62' },
57
+ { value: '621049358-60', expected: '621049358-60' },
58
+ { value: '491872350-50', expected: '491872350-50' },
59
+ ])('máscara deve ser gerada corretamente', (input) => {
60
+ const cnh = new CNH(input.value);
61
+
62
+ expect(cnh.mask()).toBe(input.expected);
63
+ expect(cnh.mask()).toHaveLength(12);
64
+ expect(cnh.mask()).toMatch(/^\d{9}-\d{2}$/)
65
+ });
66
+ });
67
+ });