@marktrue/dsh-mobile-remote 3.2.1-alpha.1 → 3.2.1-alpha.2-app

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 (349) hide show
  1. package/DSH-Remote-v3.2.1.apk +4 -0
  2. package/README.md +6 -253
  3. package/manifest.json +21 -0
  4. package/package.json +10 -65
  5. package/CHANGELOG.md +0 -796
  6. package/CONTRIBUTING.md +0 -59
  7. package/FAQ.md +0 -111
  8. package/cordis.patch.yml +0 -14
  9. package/docs/00-/345/274/200/345/217/221/346/200/273/347/272/262.md +0 -122
  10. package/docs/01-PRD.md +0 -148
  11. package/docs/02-architecture.md +0 -249
  12. package/docs/03-api.md +0 -816
  13. package/docs/04-security.md +0 -96
  14. package/docs/05-test-cases.md +0 -326
  15. package/docs/06-install-run.md +0 -308
  16. package/docs/07-user-manual.md +0 -65
  17. package/docs/08-/346/211/251/345/261/225/345/274/200/345/217/221/346/214/207/345/215/227.md +0 -86
  18. package/docs/09-compatibility.md +0 -195
  19. package/docs/10-release.md +0 -927
  20. package/docs/screenshots/01-home.png +0 -0
  21. package/docs/screenshots/02-notifications.png +0 -0
  22. package/docs/screenshots/03-sessions.png +0 -0
  23. package/docs/screenshots/04-chat.png +0 -0
  24. package/docs/screenshots/05-settings.png +0 -0
  25. package/docs/screenshots/06-new-session.png +0 -0
  26. package/docs/screenshots/pgy-appstore.jpg +0 -0
  27. package/docs/screenshots/pgy-mobile-app.jpg +0 -0
  28. package/docs/screenshots/pgy-pc-client.jpg +0 -0
  29. package/lib/account-usage.js +0 -145
  30. package/lib/app-alignment.js +0 -112
  31. package/lib/app-carrier-store.js +0 -1972
  32. package/lib/app-carrier.js +0 -602
  33. package/lib/client.js +0 -706
  34. package/lib/desktop-form.js +0 -738
  35. package/lib/endpoint-registry.js +0 -162
  36. package/lib/git-read-bundled-provider.js +0 -255
  37. package/lib/git-read-service.js +0 -322
  38. package/lib/index.js +0 -9292
  39. package/lib/plugin-content-digest.js +0 -80
  40. package/lib/plugin-self-update.js +0 -758
  41. package/lib/plugin-update-controller.js +0 -95
  42. package/lib/plugin-update-transaction.js +0 -322
  43. package/lib/plugin-update.js +0 -309
  44. package/lib/runtime-dependency-snapshot.js +0 -345
  45. package/lib/session-title-cache.js +0 -123
  46. package/lib/session-title-refresh.js +0 -261
  47. package/lib/update-fetch.js +0 -24
  48. package/lib/update-lock-arbiter.js +0 -158
  49. package/lib/update-supervisor.js +0 -312
  50. package/node_modules/ansi-regex/index.d.ts +0 -37
  51. package/node_modules/ansi-regex/index.js +0 -10
  52. package/node_modules/ansi-regex/license +0 -9
  53. package/node_modules/ansi-regex/package.json +0 -55
  54. package/node_modules/ansi-regex/readme.md +0 -78
  55. package/node_modules/ansi-styles/index.d.ts +0 -345
  56. package/node_modules/ansi-styles/index.js +0 -163
  57. package/node_modules/ansi-styles/license +0 -9
  58. package/node_modules/ansi-styles/package.json +0 -56
  59. package/node_modules/ansi-styles/readme.md +0 -152
  60. package/node_modules/camelcase/index.d.ts +0 -63
  61. package/node_modules/camelcase/index.js +0 -76
  62. package/node_modules/camelcase/license +0 -9
  63. package/node_modules/camelcase/package.json +0 -43
  64. package/node_modules/camelcase/readme.md +0 -99
  65. package/node_modules/cliui/CHANGELOG.md +0 -76
  66. package/node_modules/cliui/LICENSE.txt +0 -14
  67. package/node_modules/cliui/README.md +0 -115
  68. package/node_modules/cliui/index.js +0 -354
  69. package/node_modules/cliui/package.json +0 -65
  70. package/node_modules/color-convert/CHANGELOG.md +0 -54
  71. package/node_modules/color-convert/LICENSE +0 -21
  72. package/node_modules/color-convert/README.md +0 -68
  73. package/node_modules/color-convert/conversions.js +0 -839
  74. package/node_modules/color-convert/index.js +0 -81
  75. package/node_modules/color-convert/package.json +0 -48
  76. package/node_modules/color-convert/route.js +0 -97
  77. package/node_modules/color-name/LICENSE +0 -8
  78. package/node_modules/color-name/README.md +0 -11
  79. package/node_modules/color-name/index.js +0 -152
  80. package/node_modules/color-name/package.json +0 -28
  81. package/node_modules/decamelize/index.js +0 -13
  82. package/node_modules/decamelize/license +0 -21
  83. package/node_modules/decamelize/package.json +0 -38
  84. package/node_modules/decamelize/readme.md +0 -48
  85. package/node_modules/dijkstrajs/.travis.yml +0 -4
  86. package/node_modules/dijkstrajs/CONTRIBUTING.md +0 -8
  87. package/node_modules/dijkstrajs/LICENSE.md +0 -19
  88. package/node_modules/dijkstrajs/README.md +0 -18
  89. package/node_modules/dijkstrajs/dijkstra.js +0 -165
  90. package/node_modules/dijkstrajs/package.json +0 -60
  91. package/node_modules/dijkstrajs/test/dijkstra.test.js +0 -96
  92. package/node_modules/emoji-regex/LICENSE-MIT.txt +0 -20
  93. package/node_modules/emoji-regex/README.md +0 -73
  94. package/node_modules/emoji-regex/es2015/index.js +0 -6
  95. package/node_modules/emoji-regex/es2015/text.js +0 -6
  96. package/node_modules/emoji-regex/index.d.ts +0 -23
  97. package/node_modules/emoji-regex/index.js +0 -6
  98. package/node_modules/emoji-regex/package.json +0 -50
  99. package/node_modules/emoji-regex/text.js +0 -6
  100. package/node_modules/find-up/index.d.ts +0 -137
  101. package/node_modules/find-up/index.js +0 -89
  102. package/node_modules/find-up/license +0 -9
  103. package/node_modules/find-up/package.json +0 -53
  104. package/node_modules/find-up/readme.md +0 -156
  105. package/node_modules/get-caller-file/LICENSE.md +0 -6
  106. package/node_modules/get-caller-file/README.md +0 -41
  107. package/node_modules/get-caller-file/index.d.ts +0 -2
  108. package/node_modules/get-caller-file/index.js +0 -22
  109. package/node_modules/get-caller-file/index.js.map +0 -1
  110. package/node_modules/get-caller-file/package.json +0 -42
  111. package/node_modules/is-fullwidth-code-point/index.d.ts +0 -17
  112. package/node_modules/is-fullwidth-code-point/index.js +0 -50
  113. package/node_modules/is-fullwidth-code-point/license +0 -9
  114. package/node_modules/is-fullwidth-code-point/package.json +0 -42
  115. package/node_modules/is-fullwidth-code-point/readme.md +0 -39
  116. package/node_modules/locate-path/index.d.ts +0 -83
  117. package/node_modules/locate-path/index.js +0 -65
  118. package/node_modules/locate-path/license +0 -9
  119. package/node_modules/locate-path/package.json +0 -45
  120. package/node_modules/locate-path/readme.md +0 -122
  121. package/node_modules/p-limit/index.d.ts +0 -38
  122. package/node_modules/p-limit/index.js +0 -57
  123. package/node_modules/p-limit/license +0 -9
  124. package/node_modules/p-limit/package.json +0 -52
  125. package/node_modules/p-limit/readme.md +0 -101
  126. package/node_modules/p-locate/index.d.ts +0 -64
  127. package/node_modules/p-locate/index.js +0 -52
  128. package/node_modules/p-locate/license +0 -9
  129. package/node_modules/p-locate/package.json +0 -53
  130. package/node_modules/p-locate/readme.md +0 -90
  131. package/node_modules/p-try/index.d.ts +0 -39
  132. package/node_modules/p-try/index.js +0 -9
  133. package/node_modules/p-try/license +0 -9
  134. package/node_modules/p-try/package.json +0 -42
  135. package/node_modules/p-try/readme.md +0 -58
  136. package/node_modules/path-exists/index.d.ts +0 -28
  137. package/node_modules/path-exists/index.js +0 -23
  138. package/node_modules/path-exists/license +0 -9
  139. package/node_modules/path-exists/package.json +0 -39
  140. package/node_modules/path-exists/readme.md +0 -52
  141. package/node_modules/pngjs/.eslintignore +0 -2
  142. package/node_modules/pngjs/.eslintrc.json +0 -19
  143. package/node_modules/pngjs/.prettierignore +0 -3
  144. package/node_modules/pngjs/LICENSE +0 -20
  145. package/node_modules/pngjs/README.md +0 -429
  146. package/node_modules/pngjs/browser.js +0 -16096
  147. package/node_modules/pngjs/coverage/lcov-report/base.css +0 -354
  148. package/node_modules/pngjs/coverage/lcov-report/bitmapper.js.html +0 -881
  149. package/node_modules/pngjs/coverage/lcov-report/bitpacker.js.html +0 -554
  150. package/node_modules/pngjs/coverage/lcov-report/block-navigation.js +0 -77
  151. package/node_modules/pngjs/coverage/lcov-report/chunkstream.js.html +0 -647
  152. package/node_modules/pngjs/coverage/lcov-report/constants.js.html +0 -176
  153. package/node_modules/pngjs/coverage/lcov-report/crc.js.html +0 -200
  154. package/node_modules/pngjs/coverage/lcov-report/favicon.png +0 -0
  155. package/node_modules/pngjs/coverage/lcov-report/filter-pack.js.html +0 -593
  156. package/node_modules/pngjs/coverage/lcov-report/filter-parse-async.js.html +0 -152
  157. package/node_modules/pngjs/coverage/lcov-report/filter-parse-sync.js.html +0 -143
  158. package/node_modules/pngjs/coverage/lcov-report/filter-parse.js.html +0 -611
  159. package/node_modules/pngjs/coverage/lcov-report/format-normaliser.js.html +0 -359
  160. package/node_modules/pngjs/coverage/lcov-report/index.html +0 -426
  161. package/node_modules/pngjs/coverage/lcov-report/interlace.js.html +0 -365
  162. package/node_modules/pngjs/coverage/lcov-report/packer-async.js.html +0 -230
  163. package/node_modules/pngjs/coverage/lcov-report/packer-sync.js.html +0 -248
  164. package/node_modules/pngjs/coverage/lcov-report/packer.js.html +0 -467
  165. package/node_modules/pngjs/coverage/lcov-report/paeth-predictor.js.html +0 -128
  166. package/node_modules/pngjs/coverage/lcov-report/parser-async.js.html +0 -575
  167. package/node_modules/pngjs/coverage/lcov-report/parser-sync.js.html +0 -404
  168. package/node_modules/pngjs/coverage/lcov-report/parser.js.html +0 -950
  169. package/node_modules/pngjs/coverage/lcov-report/png-sync.js.html +0 -116
  170. package/node_modules/pngjs/coverage/lcov-report/png.js.html +0 -662
  171. package/node_modules/pngjs/coverage/lcov-report/prettify.css +0 -101
  172. package/node_modules/pngjs/coverage/lcov-report/prettify.js +0 -1007
  173. package/node_modules/pngjs/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  174. package/node_modules/pngjs/coverage/lcov-report/sorter.js +0 -169
  175. package/node_modules/pngjs/coverage/lcov-report/sync-inflate.js.html +0 -584
  176. package/node_modules/pngjs/coverage/lcov-report/sync-reader.js.html +0 -215
  177. package/node_modules/pngjs/coverage/lcov.info +0 -2177
  178. package/node_modules/pngjs/lib/bitmapper.js +0 -267
  179. package/node_modules/pngjs/lib/bitpacker.js +0 -158
  180. package/node_modules/pngjs/lib/chunkstream.js +0 -189
  181. package/node_modules/pngjs/lib/constants.js +0 -32
  182. package/node_modules/pngjs/lib/crc.js +0 -40
  183. package/node_modules/pngjs/lib/filter-pack.js +0 -171
  184. package/node_modules/pngjs/lib/filter-parse-async.js +0 -24
  185. package/node_modules/pngjs/lib/filter-parse-sync.js +0 -21
  186. package/node_modules/pngjs/lib/filter-parse.js +0 -177
  187. package/node_modules/pngjs/lib/format-normaliser.js +0 -93
  188. package/node_modules/pngjs/lib/interlace.js +0 -95
  189. package/node_modules/pngjs/lib/packer-async.js +0 -50
  190. package/node_modules/pngjs/lib/packer-sync.js +0 -56
  191. package/node_modules/pngjs/lib/packer.js +0 -129
  192. package/node_modules/pngjs/lib/paeth-predictor.js +0 -16
  193. package/node_modules/pngjs/lib/parser-async.js +0 -165
  194. package/node_modules/pngjs/lib/parser-sync.js +0 -108
  195. package/node_modules/pngjs/lib/parser.js +0 -290
  196. package/node_modules/pngjs/lib/png-sync.js +0 -12
  197. package/node_modules/pngjs/lib/png.js +0 -194
  198. package/node_modules/pngjs/lib/sync-inflate.js +0 -168
  199. package/node_modules/pngjs/lib/sync-reader.js +0 -45
  200. package/node_modules/pngjs/package.json +0 -73
  201. package/node_modules/qrcode/README.md +0 -770
  202. package/node_modules/qrcode/bin/qrcode +0 -159
  203. package/node_modules/qrcode/helper/to-sjis-browser.js +0 -2
  204. package/node_modules/qrcode/helper/to-sjis.js +0 -105
  205. package/node_modules/qrcode/lib/browser.js +0 -76
  206. package/node_modules/qrcode/lib/can-promise.js +0 -7
  207. package/node_modules/qrcode/lib/core/alignment-pattern.js +0 -83
  208. package/node_modules/qrcode/lib/core/alphanumeric-data.js +0 -59
  209. package/node_modules/qrcode/lib/core/bit-buffer.js +0 -37
  210. package/node_modules/qrcode/lib/core/bit-matrix.js +0 -65
  211. package/node_modules/qrcode/lib/core/byte-data.js +0 -30
  212. package/node_modules/qrcode/lib/core/error-correction-code.js +0 -135
  213. package/node_modules/qrcode/lib/core/error-correction-level.js +0 -50
  214. package/node_modules/qrcode/lib/core/finder-pattern.js +0 -22
  215. package/node_modules/qrcode/lib/core/format-info.js +0 -29
  216. package/node_modules/qrcode/lib/core/galois-field.js +0 -69
  217. package/node_modules/qrcode/lib/core/kanji-data.js +0 -54
  218. package/node_modules/qrcode/lib/core/mask-pattern.js +0 -234
  219. package/node_modules/qrcode/lib/core/mode.js +0 -167
  220. package/node_modules/qrcode/lib/core/numeric-data.js +0 -43
  221. package/node_modules/qrcode/lib/core/polynomial.js +0 -62
  222. package/node_modules/qrcode/lib/core/qrcode.js +0 -495
  223. package/node_modules/qrcode/lib/core/reed-solomon-encoder.js +0 -56
  224. package/node_modules/qrcode/lib/core/regex.js +0 -31
  225. package/node_modules/qrcode/lib/core/segments.js +0 -330
  226. package/node_modules/qrcode/lib/core/utils.js +0 -63
  227. package/node_modules/qrcode/lib/core/version-check.js +0 -9
  228. package/node_modules/qrcode/lib/core/version.js +0 -163
  229. package/node_modules/qrcode/lib/index.js +0 -12
  230. package/node_modules/qrcode/lib/renderer/canvas.js +0 -63
  231. package/node_modules/qrcode/lib/renderer/png.js +0 -78
  232. package/node_modules/qrcode/lib/renderer/svg-tag.js +0 -81
  233. package/node_modules/qrcode/lib/renderer/svg.js +0 -19
  234. package/node_modules/qrcode/lib/renderer/terminal/terminal-small.js +0 -85
  235. package/node_modules/qrcode/lib/renderer/terminal/terminal.js +0 -49
  236. package/node_modules/qrcode/lib/renderer/terminal.js +0 -9
  237. package/node_modules/qrcode/lib/renderer/utf8.js +0 -71
  238. package/node_modules/qrcode/lib/renderer/utils.js +0 -99
  239. package/node_modules/qrcode/lib/server.js +0 -138
  240. package/node_modules/qrcode/license +0 -10
  241. package/node_modules/qrcode/package.json +0 -77
  242. package/node_modules/require-directory/.jshintrc +0 -67
  243. package/node_modules/require-directory/.npmignore +0 -1
  244. package/node_modules/require-directory/.travis.yml +0 -3
  245. package/node_modules/require-directory/LICENSE +0 -22
  246. package/node_modules/require-directory/README.markdown +0 -184
  247. package/node_modules/require-directory/index.js +0 -86
  248. package/node_modules/require-directory/package.json +0 -40
  249. package/node_modules/require-main-filename/CHANGELOG.md +0 -26
  250. package/node_modules/require-main-filename/LICENSE.txt +0 -14
  251. package/node_modules/require-main-filename/README.md +0 -26
  252. package/node_modules/require-main-filename/index.js +0 -18
  253. package/node_modules/require-main-filename/package.json +0 -35
  254. package/node_modules/set-blocking/CHANGELOG.md +0 -26
  255. package/node_modules/set-blocking/LICENSE.txt +0 -14
  256. package/node_modules/set-blocking/README.md +0 -31
  257. package/node_modules/set-blocking/index.js +0 -7
  258. package/node_modules/set-blocking/package.json +0 -42
  259. package/node_modules/string-width/index.d.ts +0 -29
  260. package/node_modules/string-width/index.js +0 -47
  261. package/node_modules/string-width/license +0 -9
  262. package/node_modules/string-width/package.json +0 -56
  263. package/node_modules/string-width/readme.md +0 -50
  264. package/node_modules/strip-ansi/index.d.ts +0 -17
  265. package/node_modules/strip-ansi/index.js +0 -4
  266. package/node_modules/strip-ansi/license +0 -9
  267. package/node_modules/strip-ansi/package.json +0 -54
  268. package/node_modules/strip-ansi/readme.md +0 -46
  269. package/node_modules/which-module/LICENSE +0 -13
  270. package/node_modules/which-module/README.md +0 -58
  271. package/node_modules/which-module/index.js +0 -9
  272. package/node_modules/which-module/package.json +0 -41
  273. package/node_modules/wrap-ansi/index.js +0 -186
  274. package/node_modules/wrap-ansi/license +0 -9
  275. package/node_modules/wrap-ansi/package.json +0 -61
  276. package/node_modules/wrap-ansi/readme.md +0 -97
  277. package/node_modules/y18n/CHANGELOG.md +0 -35
  278. package/node_modules/y18n/LICENSE +0 -13
  279. package/node_modules/y18n/README.md +0 -109
  280. package/node_modules/y18n/index.js +0 -188
  281. package/node_modules/y18n/package.json +0 -39
  282. package/node_modules/yargs/CHANGELOG.md +0 -420
  283. package/node_modules/yargs/LICENSE +0 -21
  284. package/node_modules/yargs/README.md +0 -140
  285. package/node_modules/yargs/build/lib/apply-extends.d.ts +0 -2
  286. package/node_modules/yargs/build/lib/apply-extends.js +0 -65
  287. package/node_modules/yargs/build/lib/argsert.d.ts +0 -2
  288. package/node_modules/yargs/build/lib/argsert.js +0 -65
  289. package/node_modules/yargs/build/lib/command.d.ts +0 -64
  290. package/node_modules/yargs/build/lib/command.js +0 -416
  291. package/node_modules/yargs/build/lib/common-types.d.ts +0 -36
  292. package/node_modules/yargs/build/lib/common-types.js +0 -25
  293. package/node_modules/yargs/build/lib/completion-templates.d.ts +0 -2
  294. package/node_modules/yargs/build/lib/completion-templates.js +0 -50
  295. package/node_modules/yargs/build/lib/completion.d.ts +0 -21
  296. package/node_modules/yargs/build/lib/completion.js +0 -135
  297. package/node_modules/yargs/build/lib/is-promise.d.ts +0 -1
  298. package/node_modules/yargs/build/lib/is-promise.js +0 -9
  299. package/node_modules/yargs/build/lib/levenshtein.d.ts +0 -1
  300. package/node_modules/yargs/build/lib/levenshtein.js +0 -58
  301. package/node_modules/yargs/build/lib/middleware.d.ts +0 -10
  302. package/node_modules/yargs/build/lib/middleware.js +0 -57
  303. package/node_modules/yargs/build/lib/obj-filter.d.ts +0 -1
  304. package/node_modules/yargs/build/lib/obj-filter.js +0 -14
  305. package/node_modules/yargs/build/lib/parse-command.d.ts +0 -11
  306. package/node_modules/yargs/build/lib/parse-command.js +0 -36
  307. package/node_modules/yargs/build/lib/process-argv.d.ts +0 -2
  308. package/node_modules/yargs/build/lib/process-argv.js +0 -31
  309. package/node_modules/yargs/build/lib/usage.d.ts +0 -49
  310. package/node_modules/yargs/build/lib/usage.js +0 -540
  311. package/node_modules/yargs/build/lib/validation.d.ts +0 -34
  312. package/node_modules/yargs/build/lib/validation.js +0 -330
  313. package/node_modules/yargs/build/lib/yargs.d.ts +0 -274
  314. package/node_modules/yargs/build/lib/yargs.js +0 -1190
  315. package/node_modules/yargs/build/lib/yerror.d.ts +0 -4
  316. package/node_modules/yargs/build/lib/yerror.js +0 -11
  317. package/node_modules/yargs/index.js +0 -40
  318. package/node_modules/yargs/locales/be.json +0 -46
  319. package/node_modules/yargs/locales/de.json +0 -46
  320. package/node_modules/yargs/locales/en.json +0 -51
  321. package/node_modules/yargs/locales/es.json +0 -46
  322. package/node_modules/yargs/locales/fi.json +0 -49
  323. package/node_modules/yargs/locales/fr.json +0 -53
  324. package/node_modules/yargs/locales/hi.json +0 -49
  325. package/node_modules/yargs/locales/hu.json +0 -46
  326. package/node_modules/yargs/locales/id.json +0 -50
  327. package/node_modules/yargs/locales/it.json +0 -46
  328. package/node_modules/yargs/locales/ja.json +0 -51
  329. package/node_modules/yargs/locales/ko.json +0 -49
  330. package/node_modules/yargs/locales/nb.json +0 -44
  331. package/node_modules/yargs/locales/nl.json +0 -49
  332. package/node_modules/yargs/locales/nn.json +0 -44
  333. package/node_modules/yargs/locales/pirate.json +0 -13
  334. package/node_modules/yargs/locales/pl.json +0 -49
  335. package/node_modules/yargs/locales/pt.json +0 -45
  336. package/node_modules/yargs/locales/pt_BR.json +0 -48
  337. package/node_modules/yargs/locales/ru.json +0 -46
  338. package/node_modules/yargs/locales/th.json +0 -46
  339. package/node_modules/yargs/locales/tr.json +0 -48
  340. package/node_modules/yargs/locales/zh_CN.json +0 -48
  341. package/node_modules/yargs/locales/zh_TW.json +0 -47
  342. package/node_modules/yargs/package.json +0 -92
  343. package/node_modules/yargs/yargs.js +0 -14
  344. package/node_modules/yargs-parser/CHANGELOG.md +0 -601
  345. package/node_modules/yargs-parser/LICENSE.txt +0 -14
  346. package/node_modules/yargs-parser/README.md +0 -449
  347. package/node_modules/yargs-parser/index.js +0 -1032
  348. package/node_modules/yargs-parser/lib/tokenize-arg-string.js +0 -40
  349. package/node_modules/yargs-parser/package.json +0 -46
@@ -1,495 +0,0 @@
1
- const Utils = require('./utils')
2
- const ECLevel = require('./error-correction-level')
3
- const BitBuffer = require('./bit-buffer')
4
- const BitMatrix = require('./bit-matrix')
5
- const AlignmentPattern = require('./alignment-pattern')
6
- const FinderPattern = require('./finder-pattern')
7
- const MaskPattern = require('./mask-pattern')
8
- const ECCode = require('./error-correction-code')
9
- const ReedSolomonEncoder = require('./reed-solomon-encoder')
10
- const Version = require('./version')
11
- const FormatInfo = require('./format-info')
12
- const Mode = require('./mode')
13
- const Segments = require('./segments')
14
-
15
- /**
16
- * QRCode for JavaScript
17
- *
18
- * modified by Ryan Day for nodejs support
19
- * Copyright (c) 2011 Ryan Day
20
- *
21
- * Licensed under the MIT license:
22
- * http://www.opensource.org/licenses/mit-license.php
23
- *
24
- //---------------------------------------------------------------------
25
- // QRCode for JavaScript
26
- //
27
- // Copyright (c) 2009 Kazuhiko Arase
28
- //
29
- // URL: http://www.d-project.com/
30
- //
31
- // Licensed under the MIT license:
32
- // http://www.opensource.org/licenses/mit-license.php
33
- //
34
- // The word "QR Code" is registered trademark of
35
- // DENSO WAVE INCORPORATED
36
- // http://www.denso-wave.com/qrcode/faqpatent-e.html
37
- //
38
- //---------------------------------------------------------------------
39
- */
40
-
41
- /**
42
- * Add finder patterns bits to matrix
43
- *
44
- * @param {BitMatrix} matrix Modules matrix
45
- * @param {Number} version QR Code version
46
- */
47
- function setupFinderPattern (matrix, version) {
48
- const size = matrix.size
49
- const pos = FinderPattern.getPositions(version)
50
-
51
- for (let i = 0; i < pos.length; i++) {
52
- const row = pos[i][0]
53
- const col = pos[i][1]
54
-
55
- for (let r = -1; r <= 7; r++) {
56
- if (row + r <= -1 || size <= row + r) continue
57
-
58
- for (let c = -1; c <= 7; c++) {
59
- if (col + c <= -1 || size <= col + c) continue
60
-
61
- if ((r >= 0 && r <= 6 && (c === 0 || c === 6)) ||
62
- (c >= 0 && c <= 6 && (r === 0 || r === 6)) ||
63
- (r >= 2 && r <= 4 && c >= 2 && c <= 4)) {
64
- matrix.set(row + r, col + c, true, true)
65
- } else {
66
- matrix.set(row + r, col + c, false, true)
67
- }
68
- }
69
- }
70
- }
71
- }
72
-
73
- /**
74
- * Add timing pattern bits to matrix
75
- *
76
- * Note: this function must be called before {@link setupAlignmentPattern}
77
- *
78
- * @param {BitMatrix} matrix Modules matrix
79
- */
80
- function setupTimingPattern (matrix) {
81
- const size = matrix.size
82
-
83
- for (let r = 8; r < size - 8; r++) {
84
- const value = r % 2 === 0
85
- matrix.set(r, 6, value, true)
86
- matrix.set(6, r, value, true)
87
- }
88
- }
89
-
90
- /**
91
- * Add alignment patterns bits to matrix
92
- *
93
- * Note: this function must be called after {@link setupTimingPattern}
94
- *
95
- * @param {BitMatrix} matrix Modules matrix
96
- * @param {Number} version QR Code version
97
- */
98
- function setupAlignmentPattern (matrix, version) {
99
- const pos = AlignmentPattern.getPositions(version)
100
-
101
- for (let i = 0; i < pos.length; i++) {
102
- const row = pos[i][0]
103
- const col = pos[i][1]
104
-
105
- for (let r = -2; r <= 2; r++) {
106
- for (let c = -2; c <= 2; c++) {
107
- if (r === -2 || r === 2 || c === -2 || c === 2 ||
108
- (r === 0 && c === 0)) {
109
- matrix.set(row + r, col + c, true, true)
110
- } else {
111
- matrix.set(row + r, col + c, false, true)
112
- }
113
- }
114
- }
115
- }
116
- }
117
-
118
- /**
119
- * Add version info bits to matrix
120
- *
121
- * @param {BitMatrix} matrix Modules matrix
122
- * @param {Number} version QR Code version
123
- */
124
- function setupVersionInfo (matrix, version) {
125
- const size = matrix.size
126
- const bits = Version.getEncodedBits(version)
127
- let row, col, mod
128
-
129
- for (let i = 0; i < 18; i++) {
130
- row = Math.floor(i / 3)
131
- col = i % 3 + size - 8 - 3
132
- mod = ((bits >> i) & 1) === 1
133
-
134
- matrix.set(row, col, mod, true)
135
- matrix.set(col, row, mod, true)
136
- }
137
- }
138
-
139
- /**
140
- * Add format info bits to matrix
141
- *
142
- * @param {BitMatrix} matrix Modules matrix
143
- * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level
144
- * @param {Number} maskPattern Mask pattern reference value
145
- */
146
- function setupFormatInfo (matrix, errorCorrectionLevel, maskPattern) {
147
- const size = matrix.size
148
- const bits = FormatInfo.getEncodedBits(errorCorrectionLevel, maskPattern)
149
- let i, mod
150
-
151
- for (i = 0; i < 15; i++) {
152
- mod = ((bits >> i) & 1) === 1
153
-
154
- // vertical
155
- if (i < 6) {
156
- matrix.set(i, 8, mod, true)
157
- } else if (i < 8) {
158
- matrix.set(i + 1, 8, mod, true)
159
- } else {
160
- matrix.set(size - 15 + i, 8, mod, true)
161
- }
162
-
163
- // horizontal
164
- if (i < 8) {
165
- matrix.set(8, size - i - 1, mod, true)
166
- } else if (i < 9) {
167
- matrix.set(8, 15 - i - 1 + 1, mod, true)
168
- } else {
169
- matrix.set(8, 15 - i - 1, mod, true)
170
- }
171
- }
172
-
173
- // fixed module
174
- matrix.set(size - 8, 8, 1, true)
175
- }
176
-
177
- /**
178
- * Add encoded data bits to matrix
179
- *
180
- * @param {BitMatrix} matrix Modules matrix
181
- * @param {Uint8Array} data Data codewords
182
- */
183
- function setupData (matrix, data) {
184
- const size = matrix.size
185
- let inc = -1
186
- let row = size - 1
187
- let bitIndex = 7
188
- let byteIndex = 0
189
-
190
- for (let col = size - 1; col > 0; col -= 2) {
191
- if (col === 6) col--
192
-
193
- while (true) {
194
- for (let c = 0; c < 2; c++) {
195
- if (!matrix.isReserved(row, col - c)) {
196
- let dark = false
197
-
198
- if (byteIndex < data.length) {
199
- dark = (((data[byteIndex] >>> bitIndex) & 1) === 1)
200
- }
201
-
202
- matrix.set(row, col - c, dark)
203
- bitIndex--
204
-
205
- if (bitIndex === -1) {
206
- byteIndex++
207
- bitIndex = 7
208
- }
209
- }
210
- }
211
-
212
- row += inc
213
-
214
- if (row < 0 || size <= row) {
215
- row -= inc
216
- inc = -inc
217
- break
218
- }
219
- }
220
- }
221
- }
222
-
223
- /**
224
- * Create encoded codewords from data input
225
- *
226
- * @param {Number} version QR Code version
227
- * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level
228
- * @param {ByteData} data Data input
229
- * @return {Uint8Array} Buffer containing encoded codewords
230
- */
231
- function createData (version, errorCorrectionLevel, segments) {
232
- // Prepare data buffer
233
- const buffer = new BitBuffer()
234
-
235
- segments.forEach(function (data) {
236
- // prefix data with mode indicator (4 bits)
237
- buffer.put(data.mode.bit, 4)
238
-
239
- // Prefix data with character count indicator.
240
- // The character count indicator is a string of bits that represents the
241
- // number of characters that are being encoded.
242
- // The character count indicator must be placed after the mode indicator
243
- // and must be a certain number of bits long, depending on the QR version
244
- // and data mode
245
- // @see {@link Mode.getCharCountIndicator}.
246
- buffer.put(data.getLength(), Mode.getCharCountIndicator(data.mode, version))
247
-
248
- // add binary data sequence to buffer
249
- data.write(buffer)
250
- })
251
-
252
- // Calculate required number of bits
253
- const totalCodewords = Utils.getSymbolTotalCodewords(version)
254
- const ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel)
255
- const dataTotalCodewordsBits = (totalCodewords - ecTotalCodewords) * 8
256
-
257
- // Add a terminator.
258
- // If the bit string is shorter than the total number of required bits,
259
- // a terminator of up to four 0s must be added to the right side of the string.
260
- // If the bit string is more than four bits shorter than the required number of bits,
261
- // add four 0s to the end.
262
- if (buffer.getLengthInBits() + 4 <= dataTotalCodewordsBits) {
263
- buffer.put(0, 4)
264
- }
265
-
266
- // If the bit string is fewer than four bits shorter, add only the number of 0s that
267
- // are needed to reach the required number of bits.
268
-
269
- // After adding the terminator, if the number of bits in the string is not a multiple of 8,
270
- // pad the string on the right with 0s to make the string's length a multiple of 8.
271
- while (buffer.getLengthInBits() % 8 !== 0) {
272
- buffer.putBit(0)
273
- }
274
-
275
- // Add pad bytes if the string is still shorter than the total number of required bits.
276
- // Extend the buffer to fill the data capacity of the symbol corresponding to
277
- // the Version and Error Correction Level by adding the Pad Codewords 11101100 (0xEC)
278
- // and 00010001 (0x11) alternately.
279
- const remainingByte = (dataTotalCodewordsBits - buffer.getLengthInBits()) / 8
280
- for (let i = 0; i < remainingByte; i++) {
281
- buffer.put(i % 2 ? 0x11 : 0xEC, 8)
282
- }
283
-
284
- return createCodewords(buffer, version, errorCorrectionLevel)
285
- }
286
-
287
- /**
288
- * Encode input data with Reed-Solomon and return codewords with
289
- * relative error correction bits
290
- *
291
- * @param {BitBuffer} bitBuffer Data to encode
292
- * @param {Number} version QR Code version
293
- * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level
294
- * @return {Uint8Array} Buffer containing encoded codewords
295
- */
296
- function createCodewords (bitBuffer, version, errorCorrectionLevel) {
297
- // Total codewords for this QR code version (Data + Error correction)
298
- const totalCodewords = Utils.getSymbolTotalCodewords(version)
299
-
300
- // Total number of error correction codewords
301
- const ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel)
302
-
303
- // Total number of data codewords
304
- const dataTotalCodewords = totalCodewords - ecTotalCodewords
305
-
306
- // Total number of blocks
307
- const ecTotalBlocks = ECCode.getBlocksCount(version, errorCorrectionLevel)
308
-
309
- // Calculate how many blocks each group should contain
310
- const blocksInGroup2 = totalCodewords % ecTotalBlocks
311
- const blocksInGroup1 = ecTotalBlocks - blocksInGroup2
312
-
313
- const totalCodewordsInGroup1 = Math.floor(totalCodewords / ecTotalBlocks)
314
-
315
- const dataCodewordsInGroup1 = Math.floor(dataTotalCodewords / ecTotalBlocks)
316
- const dataCodewordsInGroup2 = dataCodewordsInGroup1 + 1
317
-
318
- // Number of EC codewords is the same for both groups
319
- const ecCount = totalCodewordsInGroup1 - dataCodewordsInGroup1
320
-
321
- // Initialize a Reed-Solomon encoder with a generator polynomial of degree ecCount
322
- const rs = new ReedSolomonEncoder(ecCount)
323
-
324
- let offset = 0
325
- const dcData = new Array(ecTotalBlocks)
326
- const ecData = new Array(ecTotalBlocks)
327
- let maxDataSize = 0
328
- const buffer = new Uint8Array(bitBuffer.buffer)
329
-
330
- // Divide the buffer into the required number of blocks
331
- for (let b = 0; b < ecTotalBlocks; b++) {
332
- const dataSize = b < blocksInGroup1 ? dataCodewordsInGroup1 : dataCodewordsInGroup2
333
-
334
- // extract a block of data from buffer
335
- dcData[b] = buffer.slice(offset, offset + dataSize)
336
-
337
- // Calculate EC codewords for this data block
338
- ecData[b] = rs.encode(dcData[b])
339
-
340
- offset += dataSize
341
- maxDataSize = Math.max(maxDataSize, dataSize)
342
- }
343
-
344
- // Create final data
345
- // Interleave the data and error correction codewords from each block
346
- const data = new Uint8Array(totalCodewords)
347
- let index = 0
348
- let i, r
349
-
350
- // Add data codewords
351
- for (i = 0; i < maxDataSize; i++) {
352
- for (r = 0; r < ecTotalBlocks; r++) {
353
- if (i < dcData[r].length) {
354
- data[index++] = dcData[r][i]
355
- }
356
- }
357
- }
358
-
359
- // Apped EC codewords
360
- for (i = 0; i < ecCount; i++) {
361
- for (r = 0; r < ecTotalBlocks; r++) {
362
- data[index++] = ecData[r][i]
363
- }
364
- }
365
-
366
- return data
367
- }
368
-
369
- /**
370
- * Build QR Code symbol
371
- *
372
- * @param {String} data Input string
373
- * @param {Number} version QR Code version
374
- * @param {ErrorCorretionLevel} errorCorrectionLevel Error level
375
- * @param {MaskPattern} maskPattern Mask pattern
376
- * @return {Object} Object containing symbol data
377
- */
378
- function createSymbol (data, version, errorCorrectionLevel, maskPattern) {
379
- let segments
380
-
381
- if (Array.isArray(data)) {
382
- segments = Segments.fromArray(data)
383
- } else if (typeof data === 'string') {
384
- let estimatedVersion = version
385
-
386
- if (!estimatedVersion) {
387
- const rawSegments = Segments.rawSplit(data)
388
-
389
- // Estimate best version that can contain raw splitted segments
390
- estimatedVersion = Version.getBestVersionForData(rawSegments, errorCorrectionLevel)
391
- }
392
-
393
- // Build optimized segments
394
- // If estimated version is undefined, try with the highest version
395
- segments = Segments.fromString(data, estimatedVersion || 40)
396
- } else {
397
- throw new Error('Invalid data')
398
- }
399
-
400
- // Get the min version that can contain data
401
- const bestVersion = Version.getBestVersionForData(segments, errorCorrectionLevel)
402
-
403
- // If no version is found, data cannot be stored
404
- if (!bestVersion) {
405
- throw new Error('The amount of data is too big to be stored in a QR Code')
406
- }
407
-
408
- // If not specified, use min version as default
409
- if (!version) {
410
- version = bestVersion
411
-
412
- // Check if the specified version can contain the data
413
- } else if (version < bestVersion) {
414
- throw new Error('\n' +
415
- 'The chosen QR Code version cannot contain this amount of data.\n' +
416
- 'Minimum version required to store current data is: ' + bestVersion + '.\n'
417
- )
418
- }
419
-
420
- const dataBits = createData(version, errorCorrectionLevel, segments)
421
-
422
- // Allocate matrix buffer
423
- const moduleCount = Utils.getSymbolSize(version)
424
- const modules = new BitMatrix(moduleCount)
425
-
426
- // Add function modules
427
- setupFinderPattern(modules, version)
428
- setupTimingPattern(modules)
429
- setupAlignmentPattern(modules, version)
430
-
431
- // Add temporary dummy bits for format info just to set them as reserved.
432
- // This is needed to prevent these bits from being masked by {@link MaskPattern.applyMask}
433
- // since the masking operation must be performed only on the encoding region.
434
- // These blocks will be replaced with correct values later in code.
435
- setupFormatInfo(modules, errorCorrectionLevel, 0)
436
-
437
- if (version >= 7) {
438
- setupVersionInfo(modules, version)
439
- }
440
-
441
- // Add data codewords
442
- setupData(modules, dataBits)
443
-
444
- if (isNaN(maskPattern)) {
445
- // Find best mask pattern
446
- maskPattern = MaskPattern.getBestMask(modules,
447
- setupFormatInfo.bind(null, modules, errorCorrectionLevel))
448
- }
449
-
450
- // Apply mask pattern
451
- MaskPattern.applyMask(maskPattern, modules)
452
-
453
- // Replace format info bits with correct values
454
- setupFormatInfo(modules, errorCorrectionLevel, maskPattern)
455
-
456
- return {
457
- modules: modules,
458
- version: version,
459
- errorCorrectionLevel: errorCorrectionLevel,
460
- maskPattern: maskPattern,
461
- segments: segments
462
- }
463
- }
464
-
465
- /**
466
- * QR Code
467
- *
468
- * @param {String | Array} data Input data
469
- * @param {Object} options Optional configurations
470
- * @param {Number} options.version QR Code version
471
- * @param {String} options.errorCorrectionLevel Error correction level
472
- * @param {Function} options.toSJISFunc Helper func to convert utf8 to sjis
473
- */
474
- exports.create = function create (data, options) {
475
- if (typeof data === 'undefined' || data === '') {
476
- throw new Error('No input text')
477
- }
478
-
479
- let errorCorrectionLevel = ECLevel.M
480
- let version
481
- let mask
482
-
483
- if (typeof options !== 'undefined') {
484
- // Use higher error correction level as default
485
- errorCorrectionLevel = ECLevel.from(options.errorCorrectionLevel, ECLevel.M)
486
- version = Version.from(options.version)
487
- mask = MaskPattern.from(options.maskPattern)
488
-
489
- if (options.toSJISFunc) {
490
- Utils.setToSJISFunction(options.toSJISFunc)
491
- }
492
- }
493
-
494
- return createSymbol(data, version, errorCorrectionLevel, mask)
495
- }
@@ -1,56 +0,0 @@
1
- const Polynomial = require('./polynomial')
2
-
3
- function ReedSolomonEncoder (degree) {
4
- this.genPoly = undefined
5
- this.degree = degree
6
-
7
- if (this.degree) this.initialize(this.degree)
8
- }
9
-
10
- /**
11
- * Initialize the encoder.
12
- * The input param should correspond to the number of error correction codewords.
13
- *
14
- * @param {Number} degree
15
- */
16
- ReedSolomonEncoder.prototype.initialize = function initialize (degree) {
17
- // create an irreducible generator polynomial
18
- this.degree = degree
19
- this.genPoly = Polynomial.generateECPolynomial(this.degree)
20
- }
21
-
22
- /**
23
- * Encodes a chunk of data
24
- *
25
- * @param {Uint8Array} data Buffer containing input data
26
- * @return {Uint8Array} Buffer containing encoded data
27
- */
28
- ReedSolomonEncoder.prototype.encode = function encode (data) {
29
- if (!this.genPoly) {
30
- throw new Error('Encoder not initialized')
31
- }
32
-
33
- // Calculate EC for this data block
34
- // extends data size to data+genPoly size
35
- const paddedData = new Uint8Array(data.length + this.degree)
36
- paddedData.set(data)
37
-
38
- // The error correction codewords are the remainder after dividing the data codewords
39
- // by a generator polynomial
40
- const remainder = Polynomial.mod(paddedData, this.genPoly)
41
-
42
- // return EC data blocks (last n byte, where n is the degree of genPoly)
43
- // If coefficients number in remainder are less than genPoly degree,
44
- // pad with 0s to the left to reach the needed number of coefficients
45
- const start = this.degree - remainder.length
46
- if (start > 0) {
47
- const buff = new Uint8Array(this.degree)
48
- buff.set(remainder, start)
49
-
50
- return buff
51
- }
52
-
53
- return remainder
54
- }
55
-
56
- module.exports = ReedSolomonEncoder
@@ -1,31 +0,0 @@
1
- const numeric = '[0-9]+'
2
- const alphanumeric = '[A-Z $%*+\\-./:]+'
3
- let kanji = '(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|' +
4
- '[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|' +
5
- '[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|' +
6
- '[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+'
7
- kanji = kanji.replace(/u/g, '\\u')
8
-
9
- const byte = '(?:(?![A-Z0-9 $%*+\\-./:]|' + kanji + ')(?:.|[\r\n]))+'
10
-
11
- exports.KANJI = new RegExp(kanji, 'g')
12
- exports.BYTE_KANJI = new RegExp('[^A-Z0-9 $%*+\\-./:]+', 'g')
13
- exports.BYTE = new RegExp(byte, 'g')
14
- exports.NUMERIC = new RegExp(numeric, 'g')
15
- exports.ALPHANUMERIC = new RegExp(alphanumeric, 'g')
16
-
17
- const TEST_KANJI = new RegExp('^' + kanji + '$')
18
- const TEST_NUMERIC = new RegExp('^' + numeric + '$')
19
- const TEST_ALPHANUMERIC = new RegExp('^[A-Z0-9 $%*+\\-./:]+$')
20
-
21
- exports.testKanji = function testKanji (str) {
22
- return TEST_KANJI.test(str)
23
- }
24
-
25
- exports.testNumeric = function testNumeric (str) {
26
- return TEST_NUMERIC.test(str)
27
- }
28
-
29
- exports.testAlphanumeric = function testAlphanumeric (str) {
30
- return TEST_ALPHANUMERIC.test(str)
31
- }