@xrkseek/harness-cli 0.1.2 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (292) hide show
  1. package/README.md +41 -22
  2. package/dist/commands/plugin.d.ts.map +1 -1
  3. package/dist/commands/plugin.js +23 -16
  4. package/dist/commands/plugin.js.map +1 -1
  5. package/dist/commands/serve.d.ts.map +1 -1
  6. package/dist/commands/serve.js +34 -3
  7. package/dist/commands/serve.js.map +1 -1
  8. package/dist/log.d.ts +6 -1
  9. package/dist/log.d.ts.map +1 -1
  10. package/dist/log.js +20 -6
  11. package/dist/log.js.map +1 -1
  12. package/dist/parse-args.js +8 -8
  13. package/dist/plugin/index.d.ts +3 -0
  14. package/dist/plugin/index.d.ts.map +1 -1
  15. package/dist/plugin/index.js +15 -5
  16. package/dist/plugin/index.js.map +1 -1
  17. package/dist/plugin/install-client.d.ts +2 -0
  18. package/dist/plugin/install-client.d.ts.map +1 -1
  19. package/dist/plugin/install-client.js +24 -9
  20. package/dist/plugin/install-client.js.map +1 -1
  21. package/dist/plugin/remap-inject.d.ts.map +1 -1
  22. package/dist/plugin/remap-inject.js +1 -0
  23. package/dist/plugin/remap-inject.js.map +1 -1
  24. package/dist/plugin/staging-reconcile.d.ts +8 -0
  25. package/dist/plugin/staging-reconcile.d.ts.map +1 -0
  26. package/dist/plugin/staging-reconcile.js +67 -0
  27. package/dist/plugin/staging-reconcile.js.map +1 -0
  28. package/dist/product-paths.d.ts.map +1 -1
  29. package/dist/product-paths.js +8 -0
  30. package/dist/product-paths.js.map +1 -1
  31. package/node_modules/@xrkseek/preset-server/dist/tsconfig.tsbuildinfo +1 -1
  32. package/node_modules/@xrkseek/server-face/dist/handlers/cost-meter.d.ts +15 -22
  33. package/node_modules/@xrkseek/server-face/dist/handlers/cost-meter.d.ts.map +1 -1
  34. package/node_modules/@xrkseek/server-face/dist/handlers/cost-meter.js +19 -16
  35. package/node_modules/@xrkseek/server-face/dist/handlers/cost-meter.js.map +1 -1
  36. package/node_modules/@xrkseek/server-face/dist/index.d.ts +2 -1
  37. package/node_modules/@xrkseek/server-face/dist/index.d.ts.map +1 -1
  38. package/node_modules/@xrkseek/server-face/dist/index.js +2 -1
  39. package/node_modules/@xrkseek/server-face/dist/index.js.map +1 -1
  40. package/node_modules/@xrkseek/server-host/dist/index.d.ts.map +1 -1
  41. package/node_modules/@xrkseek/server-host/dist/index.js +12 -4
  42. package/node_modules/@xrkseek/server-host/dist/index.js.map +1 -1
  43. package/node_modules/@xrkseek/server-host/dist/sidebar-face-bridge.d.ts +10 -0
  44. package/node_modules/@xrkseek/server-host/dist/sidebar-face-bridge.d.ts.map +1 -0
  45. package/node_modules/@xrkseek/server-host/dist/sidebar-face-bridge.js +131 -0
  46. package/node_modules/@xrkseek/server-host/dist/sidebar-face-bridge.js.map +1 -0
  47. package/node_modules/@xrkseek/server-host/dist/wallet-bridge.d.ts.map +1 -1
  48. package/node_modules/@xrkseek/server-host/dist/wallet-bridge.js +29 -1
  49. package/node_modules/@xrkseek/server-host/dist/wallet-bridge.js.map +1 -1
  50. package/node_modules/@xrkseek/server-http/dist/dsh-compat/adapter-providers.d.ts.map +1 -1
  51. package/node_modules/@xrkseek/server-http/dist/dsh-compat/adapter-providers.js +3 -1
  52. package/node_modules/@xrkseek/server-http/dist/dsh-compat/adapter-providers.js.map +1 -1
  53. package/node_modules/@xrkseek/server-http/dist/dsh-compat/adapter-types.d.ts +4 -1
  54. package/node_modules/@xrkseek/server-http/dist/dsh-compat/adapter-types.d.ts.map +1 -1
  55. package/node_modules/@xrkseek/server-http/dist/dsh-compat/auto-review-http.js +1 -1
  56. package/node_modules/@xrkseek/server-http/dist/dsh-compat/auto-review-http.js.map +1 -1
  57. package/node_modules/@xrkseek/server-http/dist/dsh-compat/chat-import-discovery.d.ts +41 -0
  58. package/node_modules/@xrkseek/server-http/dist/dsh-compat/chat-import-discovery.d.ts.map +1 -0
  59. package/node_modules/@xrkseek/server-http/dist/dsh-compat/chat-import-discovery.js +422 -0
  60. package/node_modules/@xrkseek/server-http/dist/dsh-compat/chat-import-discovery.js.map +1 -0
  61. package/node_modules/@xrkseek/server-http/dist/dsh-compat/chat-import-registry.d.ts +21 -0
  62. package/node_modules/@xrkseek/server-http/dist/dsh-compat/chat-import-registry.d.ts.map +1 -0
  63. package/node_modules/@xrkseek/server-http/dist/dsh-compat/chat-import-registry.js +34 -0
  64. package/node_modules/@xrkseek/server-http/dist/dsh-compat/chat-import-registry.js.map +1 -0
  65. package/node_modules/@xrkseek/server-http/dist/dsh-compat/chat-import.d.ts +1 -1
  66. package/node_modules/@xrkseek/server-http/dist/dsh-compat/chat-import.d.ts.map +1 -1
  67. package/node_modules/@xrkseek/server-http/dist/dsh-compat/chat-import.js +277 -23
  68. package/node_modules/@xrkseek/server-http/dist/dsh-compat/chat-import.js.map +1 -1
  69. package/node_modules/@xrkseek/server-http/dist/dsh-compat/community-root-http.d.ts +1 -1
  70. package/node_modules/@xrkseek/server-http/dist/dsh-compat/community-root-http.js +1 -1
  71. package/node_modules/@xrkseek/server-http/dist/dsh-compat/community-root-http.js.map +1 -1
  72. package/node_modules/@xrkseek/server-http/dist/dsh-compat/cordis-registry.d.ts +1 -1
  73. package/node_modules/@xrkseek/server-http/dist/dsh-compat/cordis-registry.d.ts.map +1 -1
  74. package/node_modules/@xrkseek/server-http/dist/dsh-compat/cordis-registry.js +2 -2
  75. package/node_modules/@xrkseek/server-http/dist/dsh-compat/cordis-registry.js.map +1 -1
  76. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-community-infer.js +1 -1
  77. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-community-infer.js.map +1 -1
  78. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-compat-matrix.d.ts +4 -4
  79. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-compat-matrix.d.ts.map +1 -1
  80. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-compat-matrix.js +26 -26
  81. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-compat-matrix.js.map +1 -1
  82. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-envelope.js +1 -1
  83. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-envelope.js.map +1 -1
  84. package/node_modules/@xrkseek/server-http/dist/dsh-compat/generic-dsh-http.d.ts +2 -2
  85. package/node_modules/@xrkseek/server-http/dist/dsh-compat/generic-dsh-http.js +1 -1
  86. package/node_modules/@xrkseek/server-http/dist/dsh-compat/generic-dsh-http.js.map +1 -1
  87. package/node_modules/@xrkseek/server-http/dist/dsh-compat/generic-plugin-http.js +3 -3
  88. package/node_modules/@xrkseek/server-http/dist/dsh-compat/generic-plugin-http.js.map +1 -1
  89. package/node_modules/@xrkseek/server-http/dist/dsh-compat/genui.js +1 -1
  90. package/node_modules/@xrkseek/server-http/dist/dsh-compat/genui.js.map +1 -1
  91. package/node_modules/@xrkseek/server-http/dist/dsh-compat/honest-http-catchall.js +3 -3
  92. package/node_modules/@xrkseek/server-http/dist/dsh-compat/honest-http-catchall.js.map +1 -1
  93. package/node_modules/@xrkseek/server-http/dist/dsh-compat/im-messaging-bridge.d.ts +2 -0
  94. package/node_modules/@xrkseek/server-http/dist/dsh-compat/im-messaging-bridge.d.ts.map +1 -1
  95. package/node_modules/@xrkseek/server-http/dist/dsh-compat/im-messaging-bridge.js +53 -1
  96. package/node_modules/@xrkseek/server-http/dist/dsh-compat/im-messaging-bridge.js.map +1 -1
  97. package/node_modules/@xrkseek/server-http/dist/dsh-compat/index.d.ts +21 -18
  98. package/node_modules/@xrkseek/server-http/dist/dsh-compat/index.d.ts.map +1 -1
  99. package/node_modules/@xrkseek/server-http/dist/dsh-compat/index.js +28 -15
  100. package/node_modules/@xrkseek/server-http/dist/dsh-compat/index.js.map +1 -1
  101. package/node_modules/@xrkseek/server-http/dist/dsh-compat/market.js +1 -1
  102. package/node_modules/@xrkseek/server-http/dist/dsh-compat/market.js.map +1 -1
  103. package/node_modules/@xrkseek/server-http/dist/dsh-compat/memento.d.ts +1 -0
  104. package/node_modules/@xrkseek/server-http/dist/dsh-compat/memento.d.ts.map +1 -1
  105. package/node_modules/@xrkseek/server-http/dist/dsh-compat/memento.js +77 -24
  106. package/node_modules/@xrkseek/server-http/dist/dsh-compat/memento.js.map +1 -1
  107. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mnemon.d.ts +24 -0
  108. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mnemon.d.ts.map +1 -1
  109. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mnemon.js +39 -10
  110. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mnemon.js.map +1 -1
  111. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access-auth.d.ts +71 -0
  112. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access-auth.d.ts.map +1 -0
  113. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access-auth.js +349 -0
  114. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access-auth.js.map +1 -0
  115. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access-cpolar-component.d.ts +53 -0
  116. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access-cpolar-component.d.ts.map +1 -0
  117. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access-cpolar-component.js +233 -0
  118. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access-cpolar-component.js.map +1 -0
  119. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access-funnel-sidecar.d.ts +4 -0
  120. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access-funnel-sidecar.d.ts.map +1 -0
  121. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access-funnel-sidecar.js +86 -0
  122. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access-funnel-sidecar.js.map +1 -0
  123. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access-gate.d.ts +15 -0
  124. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access-gate.d.ts.map +1 -0
  125. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access-gate.js +41 -0
  126. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access-gate.js.map +1 -0
  127. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access-local-gateway.d.ts +22 -0
  128. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access-local-gateway.d.ts.map +1 -0
  129. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access-local-gateway.js +183 -0
  130. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access-local-gateway.js.map +1 -0
  131. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access-remote-controllers.d.ts +68 -0
  132. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access-remote-controllers.d.ts.map +1 -0
  133. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access-remote-controllers.js +511 -0
  134. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access-remote-controllers.js.map +1 -0
  135. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access-remote-runtime.d.ts +34 -0
  136. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access-remote-runtime.d.ts.map +1 -0
  137. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access-remote-runtime.js +179 -0
  138. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access-remote-runtime.js.map +1 -0
  139. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access-remote.d.ts +19 -0
  140. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access-remote.d.ts.map +1 -0
  141. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access-remote.js +102 -0
  142. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access-remote.js.map +1 -0
  143. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access.d.ts +31 -4
  144. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access.d.ts.map +1 -1
  145. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access.js +698 -33
  146. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access.js.map +1 -1
  147. package/node_modules/@xrkseek/server-http/dist/dsh-compat/modlens.js +1 -1
  148. package/node_modules/@xrkseek/server-http/dist/dsh-compat/modlens.js.map +1 -1
  149. package/node_modules/@xrkseek/server-http/dist/dsh-compat/modsearch.d.ts.map +1 -1
  150. package/node_modules/@xrkseek/server-http/dist/dsh-compat/modsearch.js +4 -1
  151. package/node_modules/@xrkseek/server-http/dist/dsh-compat/modsearch.js.map +1 -1
  152. package/node_modules/@xrkseek/server-http/dist/dsh-compat/noema.js +1 -1
  153. package/node_modules/@xrkseek/server-http/dist/dsh-compat/noema.js.map +1 -1
  154. package/node_modules/@xrkseek/server-http/dist/dsh-compat/pocket-qrcode.d.ts +3 -0
  155. package/node_modules/@xrkseek/server-http/dist/dsh-compat/pocket-qrcode.d.ts.map +1 -0
  156. package/node_modules/@xrkseek/server-http/dist/dsh-compat/pocket-qrcode.js +18 -0
  157. package/node_modules/@xrkseek/server-http/dist/dsh-compat/pocket-qrcode.js.map +1 -0
  158. package/node_modules/@xrkseek/server-http/dist/dsh-compat/pocket.d.ts +6 -3
  159. package/node_modules/@xrkseek/server-http/dist/dsh-compat/pocket.d.ts.map +1 -1
  160. package/node_modules/@xrkseek/server-http/dist/dsh-compat/pocket.js +204 -54
  161. package/node_modules/@xrkseek/server-http/dist/dsh-compat/pocket.js.map +1 -1
  162. package/node_modules/@xrkseek/server-http/dist/dsh-compat/releases.js +1 -1
  163. package/node_modules/@xrkseek/server-http/dist/dsh-compat/releases.js.map +1 -1
  164. package/node_modules/@xrkseek/server-http/dist/dsh-compat/sidebar-adapter.d.ts +3 -0
  165. package/node_modules/@xrkseek/server-http/dist/dsh-compat/sidebar-adapter.d.ts.map +1 -1
  166. package/node_modules/@xrkseek/server-http/dist/dsh-compat/sidebar-adapter.js +185 -21
  167. package/node_modules/@xrkseek/server-http/dist/dsh-compat/sidebar-adapter.js.map +1 -1
  168. package/node_modules/@xrkseek/server-http/dist/dsh-compat/sidebar-browser.d.ts +3 -0
  169. package/node_modules/@xrkseek/server-http/dist/dsh-compat/sidebar-browser.d.ts.map +1 -0
  170. package/node_modules/@xrkseek/server-http/dist/dsh-compat/sidebar-browser.js +82 -0
  171. package/node_modules/@xrkseek/server-http/dist/dsh-compat/sidebar-browser.js.map +1 -0
  172. package/node_modules/@xrkseek/server-http/dist/dsh-compat/sidebar-face-bridge.d.ts +43 -0
  173. package/node_modules/@xrkseek/server-http/dist/dsh-compat/sidebar-face-bridge.d.ts.map +1 -0
  174. package/node_modules/@xrkseek/server-http/dist/dsh-compat/sidebar-face-bridge.js +2 -0
  175. package/node_modules/@xrkseek/server-http/dist/dsh-compat/sidebar-face-bridge.js.map +1 -0
  176. package/node_modules/@xrkseek/server-http/dist/dsh-compat/sidebar-git.d.ts +47 -13
  177. package/node_modules/@xrkseek/server-http/dist/dsh-compat/sidebar-git.d.ts.map +1 -1
  178. package/node_modules/@xrkseek/server-http/dist/dsh-compat/sidebar-git.js +146 -27
  179. package/node_modules/@xrkseek/server-http/dist/dsh-compat/sidebar-git.js.map +1 -1
  180. package/node_modules/@xrkseek/server-http/dist/dsh-compat/skin-market.js +1 -1
  181. package/node_modules/@xrkseek/server-http/dist/dsh-compat/skin-market.js.map +1 -1
  182. package/node_modules/@xrkseek/server-http/dist/dsh-compat/tokenledger.d.ts.map +1 -1
  183. package/node_modules/@xrkseek/server-http/dist/dsh-compat/tokenledger.js +22 -4
  184. package/node_modules/@xrkseek/server-http/dist/dsh-compat/tokenledger.js.map +1 -1
  185. package/node_modules/@xrkseek/server-http/dist/dsh-compat/tongflow.d.ts.map +1 -1
  186. package/node_modules/@xrkseek/server-http/dist/dsh-compat/tongflow.js +21 -2
  187. package/node_modules/@xrkseek/server-http/dist/dsh-compat/tongflow.js.map +1 -1
  188. package/node_modules/@xrkseek/server-http/dist/dsh-compat/turn-rewind-workspace.js +1 -1
  189. package/node_modules/@xrkseek/server-http/dist/dsh-compat/turn-rewind-workspace.js.map +1 -1
  190. package/node_modules/@xrkseek/server-http/dist/dsh-compat/turn-rewind.d.ts +2 -0
  191. package/node_modules/@xrkseek/server-http/dist/dsh-compat/turn-rewind.d.ts.map +1 -1
  192. package/node_modules/@xrkseek/server-http/dist/dsh-compat/turn-rewind.js +42 -3
  193. package/node_modules/@xrkseek/server-http/dist/dsh-compat/turn-rewind.js.map +1 -1
  194. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/contracts/wallet-port.d.ts +25 -7
  195. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/contracts/wallet-port.d.ts.map +1 -1
  196. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/contracts/wallet-port.js +2 -2
  197. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/doc-store.d.ts +2 -2
  198. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/doc-store.js +2 -2
  199. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/http-json.d.ts +12 -0
  200. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/http-json.d.ts.map +1 -0
  201. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/http-json.js +40 -0
  202. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/http-json.js.map +1 -0
  203. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/http-kit.d.ts +1 -1
  204. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/http-kit.js +1 -1
  205. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/http-kit.js.map +1 -1
  206. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/index.d.ts +7 -12
  207. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/index.d.ts.map +1 -1
  208. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/index.js +5 -8
  209. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/index.js.map +1 -1
  210. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/json-store.d.ts +5 -0
  211. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/json-store.d.ts.map +1 -0
  212. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/json-store.js +31 -0
  213. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/json-store.js.map +1 -0
  214. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/mobile-gate-kit.d.ts +37 -0
  215. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/mobile-gate-kit.d.ts.map +1 -0
  216. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/mobile-gate-kit.js +96 -0
  217. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/mobile-gate-kit.js.map +1 -0
  218. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/public-handler.d.ts +6 -0
  219. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/public-handler.d.ts.map +1 -0
  220. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/public-handler.js +2 -0
  221. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/public-handler.js.map +1 -0
  222. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/wallet-service.d.ts.map +1 -1
  223. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/wallet-service.js +66 -4
  224. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/wallet-service.js.map +1 -1
  225. package/node_modules/@xrkseek/server-http/dist/dsh-compat/undo.js +2 -2
  226. package/node_modules/@xrkseek/server-http/dist/dsh-compat/undo.js.map +1 -1
  227. package/node_modules/@xrkseek/server-http/dist/dsh-compat/usage-stats.js +1 -1
  228. package/node_modules/@xrkseek/server-http/dist/dsh-compat/usage-stats.js.map +1 -1
  229. package/node_modules/@xrkseek/server-http/dist/dsh-compat/vision.js +1 -1
  230. package/node_modules/@xrkseek/server-http/dist/dsh-compat/vision.js.map +1 -1
  231. package/node_modules/@xrkseek/server-http/dist/dsh-compat/wallet.d.ts +2 -2
  232. package/node_modules/@xrkseek/server-http/dist/dsh-compat/wallet.d.ts.map +1 -1
  233. package/node_modules/@xrkseek/server-http/dist/dsh-compat/wallet.js +2 -2
  234. package/node_modules/@xrkseek/server-http/dist/dsh-compat/wallet.js.map +1 -1
  235. package/node_modules/@xrkseek/server-http/dist/dsh-compat/wallpaper.js +2 -2
  236. package/node_modules/@xrkseek/server-http/dist/dsh-compat/wallpaper.js.map +1 -1
  237. package/node_modules/@xrkseek/server-http/dist/dsh-compat/wire/settings-provider.d.ts +1 -1
  238. package/node_modules/@xrkseek/server-http/dist/dsh-compat/wire/stub-handlers.js +1 -1
  239. package/node_modules/@xrkseek/server-http/dist/dsh-compat/wire/stub-handlers.js.map +1 -1
  240. package/node_modules/@xrkseek/server-http/dist/dsh-compat/xrk-json-store.js +3 -3
  241. package/node_modules/@xrkseek/server-http/dist/dsh-compat/xrk-json-store.js.map +1 -1
  242. package/node_modules/@xrkseek/server-http/dist/index.d.ts +1 -1
  243. package/node_modules/@xrkseek/server-http/dist/index.d.ts.map +1 -1
  244. package/node_modules/@xrkseek/server-http/dist/index.js +1 -1
  245. package/node_modules/@xrkseek/server-http/dist/index.js.map +1 -1
  246. package/node_modules/@xrkseek/server-http/package.json +7 -1
  247. package/node_modules/qrcode-generator/README.md +101 -0
  248. package/node_modules/qrcode-generator/package.json +30 -0
  249. package/node_modules/qrcode-generator/qrcode.d.ts +57 -0
  250. package/node_modules/qrcode-generator/qrcode.js +2297 -0
  251. package/node_modules/qrcode-generator/qrcode_SJIS.js +30 -0
  252. package/node_modules/qrcode-generator/qrcode_UTF8.js +26 -0
  253. package/node_modules/qrcode-generator/sample.html +49 -0
  254. package/node_modules/qrcode-generator/sample.js +49 -0
  255. package/node_modules/qrcode-generator/test/qrcode.js +118 -0
  256. package/package.json +4 -2
  257. package/product-web/assets/index-BNGm-t1O.js +112 -0
  258. package/product-web/assets/index-BNGm-t1O.js.map +1 -0
  259. package/product-web/boot.json +1 -1
  260. package/product-web/index.html +1 -1
  261. package/product-web/plugins/@xrkseek/client-locale/client.js +3 -3
  262. package/product-web/plugins/@xrkseek/client-modules/client.js +7 -6
  263. package/product-web/plugins/@xrkseek/client-runtime/client.js +7 -0
  264. package/product-web/plugins/@xrkseek/client-ui-agent-preset/client.js +31 -31
  265. package/product-web/plugins/@xrkseek/client-ui-attachment/client.js +12 -12
  266. package/product-web/plugins/@xrkseek/client-ui-commands/client.js +8 -8
  267. package/product-web/plugins/@xrkseek/client-ui-conversation/client.js +186 -190
  268. package/product-web/plugins/@xrkseek/client-ui-deliverables/client.js +6 -6
  269. package/product-web/plugins/@xrkseek/client-ui-directory-picker-browse/client.js +27 -27
  270. package/product-web/plugins/@xrkseek/client-ui-goal/client.js +8 -8
  271. package/product-web/plugins/@xrkseek/client-ui-input-trigger/client.js +6 -6
  272. package/product-web/plugins/@xrkseek/client-ui-jobs/client.js +8 -8
  273. package/product-web/plugins/@xrkseek/client-ui-layout/client.js +4 -4
  274. package/product-web/plugins/@xrkseek/client-ui-message-feedback/client.js +3 -3
  275. package/product-web/plugins/@xrkseek/client-ui-model-selection/client.js +17 -17
  276. package/product-web/plugins/@xrkseek/client-ui-permission-presets/client.js +4 -4
  277. package/product-web/plugins/@xrkseek/client-ui-plan/client.js +3 -3
  278. package/product-web/plugins/@xrkseek/client-ui-settings-general/client.js +28 -20
  279. package/product-web/plugins/@xrkseek/client-ui-settings-models/client.js +53 -53
  280. package/product-web/plugins/@xrkseek/client-ui-settings-plugin-inventory/client.js +11 -11
  281. package/product-web/plugins/@xrkseek/client-ui-settings-plugins/client.js +37 -37
  282. package/product-web/plugins/@xrkseek/client-ui-sidebar/client.js +13 -13
  283. package/product-web/plugins/@xrkseek/client-ui-skill/client.js +12 -12
  284. package/product-web/plugins/@xrkseek/client-ui-subagent/client.js +21 -21
  285. package/product-web/plugins/@xrkseek/client-ui-theme/client.js +3 -3
  286. package/product-web/plugins/@xrkseek/client-ui-tool/client.js +40 -40
  287. package/product-web/plugins/@xrkseek/client-ui-trajectory/client.js +141 -141
  288. package/product-web/plugins/@xrkseek/client-ui-user-questions/client.js +29 -29
  289. package/product-web/plugins/@xrkseek/client-ui-workflow-run/client.js +18 -18
  290. package/product-web/plugins/@xrkseek/client-ui-workspace/client.js +54 -54
  291. package/product-web/assets/index-CHKZdZNt.js +0 -112
  292. package/product-web/assets/index-CHKZdZNt.js.map +0 -1
@@ -0,0 +1,2297 @@
1
+ //---------------------------------------------------------------------
2
+ //
3
+ // QR Code Generator for JavaScript
4
+ //
5
+ // Copyright (c) 2009 Kazuhiko Arase
6
+ //
7
+ // URL: http://www.d-project.com/
8
+ //
9
+ // Licensed under the MIT license:
10
+ // http://www.opensource.org/licenses/mit-license.php
11
+ //
12
+ // The word 'QR Code' is registered trademark of
13
+ // DENSO WAVE INCORPORATED
14
+ // http://www.denso-wave.com/qrcode/faqpatent-e.html
15
+ //
16
+ //---------------------------------------------------------------------
17
+
18
+ var qrcode = function() {
19
+
20
+ //---------------------------------------------------------------------
21
+ // qrcode
22
+ //---------------------------------------------------------------------
23
+
24
+ /**
25
+ * qrcode
26
+ * @param typeNumber 1 to 40
27
+ * @param errorCorrectionLevel 'L','M','Q','H'
28
+ */
29
+ var qrcode = function(typeNumber, errorCorrectionLevel) {
30
+
31
+ var PAD0 = 0xEC;
32
+ var PAD1 = 0x11;
33
+
34
+ var _typeNumber = typeNumber;
35
+ var _errorCorrectionLevel = QRErrorCorrectionLevel[errorCorrectionLevel];
36
+ var _modules = null;
37
+ var _moduleCount = 0;
38
+ var _dataCache = null;
39
+ var _dataList = [];
40
+
41
+ var _this = {};
42
+
43
+ var makeImpl = function(test, maskPattern) {
44
+
45
+ _moduleCount = _typeNumber * 4 + 17;
46
+ _modules = function(moduleCount) {
47
+ var modules = new Array(moduleCount);
48
+ for (var row = 0; row < moduleCount; row += 1) {
49
+ modules[row] = new Array(moduleCount);
50
+ for (var col = 0; col < moduleCount; col += 1) {
51
+ modules[row][col] = null;
52
+ }
53
+ }
54
+ return modules;
55
+ }(_moduleCount);
56
+
57
+ setupPositionProbePattern(0, 0);
58
+ setupPositionProbePattern(_moduleCount - 7, 0);
59
+ setupPositionProbePattern(0, _moduleCount - 7);
60
+ setupPositionAdjustPattern();
61
+ setupTimingPattern();
62
+ setupTypeInfo(test, maskPattern);
63
+
64
+ if (_typeNumber >= 7) {
65
+ setupTypeNumber(test);
66
+ }
67
+
68
+ if (_dataCache == null) {
69
+ _dataCache = createData(_typeNumber, _errorCorrectionLevel, _dataList);
70
+ }
71
+
72
+ mapData(_dataCache, maskPattern);
73
+ };
74
+
75
+ var setupPositionProbePattern = function(row, col) {
76
+
77
+ for (var r = -1; r <= 7; r += 1) {
78
+
79
+ if (row + r <= -1 || _moduleCount <= row + r) continue;
80
+
81
+ for (var c = -1; c <= 7; c += 1) {
82
+
83
+ if (col + c <= -1 || _moduleCount <= col + c) continue;
84
+
85
+ if ( (0 <= r && r <= 6 && (c == 0 || c == 6) )
86
+ || (0 <= c && c <= 6 && (r == 0 || r == 6) )
87
+ || (2 <= r && r <= 4 && 2 <= c && c <= 4) ) {
88
+ _modules[row + r][col + c] = true;
89
+ } else {
90
+ _modules[row + r][col + c] = false;
91
+ }
92
+ }
93
+ }
94
+ };
95
+
96
+ var getBestMaskPattern = function() {
97
+
98
+ var minLostPoint = 0;
99
+ var pattern = 0;
100
+
101
+ for (var i = 0; i < 8; i += 1) {
102
+
103
+ makeImpl(true, i);
104
+
105
+ var lostPoint = QRUtil.getLostPoint(_this);
106
+
107
+ if (i == 0 || minLostPoint > lostPoint) {
108
+ minLostPoint = lostPoint;
109
+ pattern = i;
110
+ }
111
+ }
112
+
113
+ return pattern;
114
+ };
115
+
116
+ var setupTimingPattern = function() {
117
+
118
+ for (var r = 8; r < _moduleCount - 8; r += 1) {
119
+ if (_modules[r][6] != null) {
120
+ continue;
121
+ }
122
+ _modules[r][6] = (r % 2 == 0);
123
+ }
124
+
125
+ for (var c = 8; c < _moduleCount - 8; c += 1) {
126
+ if (_modules[6][c] != null) {
127
+ continue;
128
+ }
129
+ _modules[6][c] = (c % 2 == 0);
130
+ }
131
+ };
132
+
133
+ var setupPositionAdjustPattern = function() {
134
+
135
+ var pos = QRUtil.getPatternPosition(_typeNumber);
136
+
137
+ for (var i = 0; i < pos.length; i += 1) {
138
+
139
+ for (var j = 0; j < pos.length; j += 1) {
140
+
141
+ var row = pos[i];
142
+ var col = pos[j];
143
+
144
+ if (_modules[row][col] != null) {
145
+ continue;
146
+ }
147
+
148
+ for (var r = -2; r <= 2; r += 1) {
149
+
150
+ for (var c = -2; c <= 2; c += 1) {
151
+
152
+ if (r == -2 || r == 2 || c == -2 || c == 2
153
+ || (r == 0 && c == 0) ) {
154
+ _modules[row + r][col + c] = true;
155
+ } else {
156
+ _modules[row + r][col + c] = false;
157
+ }
158
+ }
159
+ }
160
+ }
161
+ }
162
+ };
163
+
164
+ var setupTypeNumber = function(test) {
165
+
166
+ var bits = QRUtil.getBCHTypeNumber(_typeNumber);
167
+
168
+ for (var i = 0; i < 18; i += 1) {
169
+ var mod = (!test && ( (bits >> i) & 1) == 1);
170
+ _modules[Math.floor(i / 3)][i % 3 + _moduleCount - 8 - 3] = mod;
171
+ }
172
+
173
+ for (var i = 0; i < 18; i += 1) {
174
+ var mod = (!test && ( (bits >> i) & 1) == 1);
175
+ _modules[i % 3 + _moduleCount - 8 - 3][Math.floor(i / 3)] = mod;
176
+ }
177
+ };
178
+
179
+ var setupTypeInfo = function(test, maskPattern) {
180
+
181
+ var data = (_errorCorrectionLevel << 3) | maskPattern;
182
+ var bits = QRUtil.getBCHTypeInfo(data);
183
+
184
+ // vertical
185
+ for (var i = 0; i < 15; i += 1) {
186
+
187
+ var mod = (!test && ( (bits >> i) & 1) == 1);
188
+
189
+ if (i < 6) {
190
+ _modules[i][8] = mod;
191
+ } else if (i < 8) {
192
+ _modules[i + 1][8] = mod;
193
+ } else {
194
+ _modules[_moduleCount - 15 + i][8] = mod;
195
+ }
196
+ }
197
+
198
+ // horizontal
199
+ for (var i = 0; i < 15; i += 1) {
200
+
201
+ var mod = (!test && ( (bits >> i) & 1) == 1);
202
+
203
+ if (i < 8) {
204
+ _modules[8][_moduleCount - i - 1] = mod;
205
+ } else if (i < 9) {
206
+ _modules[8][15 - i - 1 + 1] = mod;
207
+ } else {
208
+ _modules[8][15 - i - 1] = mod;
209
+ }
210
+ }
211
+
212
+ // fixed module
213
+ _modules[_moduleCount - 8][8] = (!test);
214
+ };
215
+
216
+ var mapData = function(data, maskPattern) {
217
+
218
+ var inc = -1;
219
+ var row = _moduleCount - 1;
220
+ var bitIndex = 7;
221
+ var byteIndex = 0;
222
+ var maskFunc = QRUtil.getMaskFunction(maskPattern);
223
+
224
+ for (var col = _moduleCount - 1; col > 0; col -= 2) {
225
+
226
+ if (col == 6) col -= 1;
227
+
228
+ while (true) {
229
+
230
+ for (var c = 0; c < 2; c += 1) {
231
+
232
+ if (_modules[row][col - c] == null) {
233
+
234
+ var dark = false;
235
+
236
+ if (byteIndex < data.length) {
237
+ dark = ( ( (data[byteIndex] >>> bitIndex) & 1) == 1);
238
+ }
239
+
240
+ var mask = maskFunc(row, col - c);
241
+
242
+ if (mask) {
243
+ dark = !dark;
244
+ }
245
+
246
+ _modules[row][col - c] = dark;
247
+ bitIndex -= 1;
248
+
249
+ if (bitIndex == -1) {
250
+ byteIndex += 1;
251
+ bitIndex = 7;
252
+ }
253
+ }
254
+ }
255
+
256
+ row += inc;
257
+
258
+ if (row < 0 || _moduleCount <= row) {
259
+ row -= inc;
260
+ inc = -inc;
261
+ break;
262
+ }
263
+ }
264
+ }
265
+ };
266
+
267
+ var createBytes = function(buffer, rsBlocks) {
268
+
269
+ var offset = 0;
270
+
271
+ var maxDcCount = 0;
272
+ var maxEcCount = 0;
273
+
274
+ var dcdata = new Array(rsBlocks.length);
275
+ var ecdata = new Array(rsBlocks.length);
276
+
277
+ for (var r = 0; r < rsBlocks.length; r += 1) {
278
+
279
+ var dcCount = rsBlocks[r].dataCount;
280
+ var ecCount = rsBlocks[r].totalCount - dcCount;
281
+
282
+ maxDcCount = Math.max(maxDcCount, dcCount);
283
+ maxEcCount = Math.max(maxEcCount, ecCount);
284
+
285
+ dcdata[r] = new Array(dcCount);
286
+
287
+ for (var i = 0; i < dcdata[r].length; i += 1) {
288
+ dcdata[r][i] = 0xff & buffer.getBuffer()[i + offset];
289
+ }
290
+ offset += dcCount;
291
+
292
+ var rsPoly = QRUtil.getErrorCorrectPolynomial(ecCount);
293
+ var rawPoly = qrPolynomial(dcdata[r], rsPoly.getLength() - 1);
294
+
295
+ var modPoly = rawPoly.mod(rsPoly);
296
+ ecdata[r] = new Array(rsPoly.getLength() - 1);
297
+ for (var i = 0; i < ecdata[r].length; i += 1) {
298
+ var modIndex = i + modPoly.getLength() - ecdata[r].length;
299
+ ecdata[r][i] = (modIndex >= 0)? modPoly.getAt(modIndex) : 0;
300
+ }
301
+ }
302
+
303
+ var totalCodeCount = 0;
304
+ for (var i = 0; i < rsBlocks.length; i += 1) {
305
+ totalCodeCount += rsBlocks[i].totalCount;
306
+ }
307
+
308
+ var data = new Array(totalCodeCount);
309
+ var index = 0;
310
+
311
+ for (var i = 0; i < maxDcCount; i += 1) {
312
+ for (var r = 0; r < rsBlocks.length; r += 1) {
313
+ if (i < dcdata[r].length) {
314
+ data[index] = dcdata[r][i];
315
+ index += 1;
316
+ }
317
+ }
318
+ }
319
+
320
+ for (var i = 0; i < maxEcCount; i += 1) {
321
+ for (var r = 0; r < rsBlocks.length; r += 1) {
322
+ if (i < ecdata[r].length) {
323
+ data[index] = ecdata[r][i];
324
+ index += 1;
325
+ }
326
+ }
327
+ }
328
+
329
+ return data;
330
+ };
331
+
332
+ var createData = function(typeNumber, errorCorrectionLevel, dataList) {
333
+
334
+ var rsBlocks = QRRSBlock.getRSBlocks(typeNumber, errorCorrectionLevel);
335
+
336
+ var buffer = qrBitBuffer();
337
+
338
+ for (var i = 0; i < dataList.length; i += 1) {
339
+ var data = dataList[i];
340
+ buffer.put(data.getMode(), 4);
341
+ buffer.put(data.getLength(), QRUtil.getLengthInBits(data.getMode(), typeNumber) );
342
+ data.write(buffer);
343
+ }
344
+
345
+ // calc num max data.
346
+ var totalDataCount = 0;
347
+ for (var i = 0; i < rsBlocks.length; i += 1) {
348
+ totalDataCount += rsBlocks[i].dataCount;
349
+ }
350
+
351
+ if (buffer.getLengthInBits() > totalDataCount * 8) {
352
+ throw 'code length overflow. ('
353
+ + buffer.getLengthInBits()
354
+ + '>'
355
+ + totalDataCount * 8
356
+ + ')';
357
+ }
358
+
359
+ // end code
360
+ if (buffer.getLengthInBits() + 4 <= totalDataCount * 8) {
361
+ buffer.put(0, 4);
362
+ }
363
+
364
+ // padding
365
+ while (buffer.getLengthInBits() % 8 != 0) {
366
+ buffer.putBit(false);
367
+ }
368
+
369
+ // padding
370
+ while (true) {
371
+
372
+ if (buffer.getLengthInBits() >= totalDataCount * 8) {
373
+ break;
374
+ }
375
+ buffer.put(PAD0, 8);
376
+
377
+ if (buffer.getLengthInBits() >= totalDataCount * 8) {
378
+ break;
379
+ }
380
+ buffer.put(PAD1, 8);
381
+ }
382
+
383
+ return createBytes(buffer, rsBlocks);
384
+ };
385
+
386
+ _this.addData = function(data, mode) {
387
+
388
+ mode = mode || 'Byte';
389
+
390
+ var newData = null;
391
+
392
+ switch(mode) {
393
+ case 'Numeric' :
394
+ newData = qrNumber(data);
395
+ break;
396
+ case 'Alphanumeric' :
397
+ newData = qrAlphaNum(data);
398
+ break;
399
+ case 'Byte' :
400
+ newData = qr8BitByte(data);
401
+ break;
402
+ case 'Kanji' :
403
+ newData = qrKanji(data);
404
+ break;
405
+ default :
406
+ throw 'mode:' + mode;
407
+ }
408
+
409
+ _dataList.push(newData);
410
+ _dataCache = null;
411
+ };
412
+
413
+ _this.isDark = function(row, col) {
414
+ if (row < 0 || _moduleCount <= row || col < 0 || _moduleCount <= col) {
415
+ throw row + ',' + col;
416
+ }
417
+ return _modules[row][col];
418
+ };
419
+
420
+ _this.getModuleCount = function() {
421
+ return _moduleCount;
422
+ };
423
+
424
+ _this.make = function() {
425
+ if (_typeNumber < 1) {
426
+ var typeNumber = 1;
427
+
428
+ for (; typeNumber < 40; typeNumber++) {
429
+ var rsBlocks = QRRSBlock.getRSBlocks(typeNumber, _errorCorrectionLevel);
430
+ var buffer = qrBitBuffer();
431
+
432
+ for (var i = 0; i < _dataList.length; i++) {
433
+ var data = _dataList[i];
434
+ buffer.put(data.getMode(), 4);
435
+ buffer.put(data.getLength(), QRUtil.getLengthInBits(data.getMode(), typeNumber) );
436
+ data.write(buffer);
437
+ }
438
+
439
+ var totalDataCount = 0;
440
+ for (var i = 0; i < rsBlocks.length; i++) {
441
+ totalDataCount += rsBlocks[i].dataCount;
442
+ }
443
+
444
+ if (buffer.getLengthInBits() <= totalDataCount * 8) {
445
+ break;
446
+ }
447
+ }
448
+
449
+ _typeNumber = typeNumber;
450
+ }
451
+
452
+ makeImpl(false, getBestMaskPattern() );
453
+ };
454
+
455
+ _this.createTableTag = function(cellSize, margin) {
456
+
457
+ cellSize = cellSize || 2;
458
+ margin = (typeof margin == 'undefined')? cellSize * 4 : margin;
459
+
460
+ var qrHtml = '';
461
+
462
+ qrHtml += '<table style="';
463
+ qrHtml += ' border-width: 0px; border-style: none;';
464
+ qrHtml += ' border-collapse: collapse;';
465
+ qrHtml += ' padding: 0px; margin: ' + margin + 'px;';
466
+ qrHtml += '">';
467
+ qrHtml += '<tbody>';
468
+
469
+ for (var r = 0; r < _this.getModuleCount(); r += 1) {
470
+
471
+ qrHtml += '<tr>';
472
+
473
+ for (var c = 0; c < _this.getModuleCount(); c += 1) {
474
+ qrHtml += '<td style="';
475
+ qrHtml += ' border-width: 0px; border-style: none;';
476
+ qrHtml += ' border-collapse: collapse;';
477
+ qrHtml += ' padding: 0px; margin: 0px;';
478
+ qrHtml += ' width: ' + cellSize + 'px;';
479
+ qrHtml += ' height: ' + cellSize + 'px;';
480
+ qrHtml += ' background-color: ';
481
+ qrHtml += _this.isDark(r, c)? '#000000' : '#ffffff';
482
+ qrHtml += ';';
483
+ qrHtml += '"/>';
484
+ }
485
+
486
+ qrHtml += '</tr>';
487
+ }
488
+
489
+ qrHtml += '</tbody>';
490
+ qrHtml += '</table>';
491
+
492
+ return qrHtml;
493
+ };
494
+
495
+ _this.createSvgTag = function(cellSize, margin, alt, title) {
496
+
497
+ var opts = {};
498
+ if (typeof arguments[0] == 'object') {
499
+ // Called by options.
500
+ opts = arguments[0];
501
+ // overwrite cellSize and margin.
502
+ cellSize = opts.cellSize;
503
+ margin = opts.margin;
504
+ alt = opts.alt;
505
+ title = opts.title;
506
+ }
507
+
508
+ cellSize = cellSize || 2;
509
+ margin = (typeof margin == 'undefined')? cellSize * 4 : margin;
510
+
511
+ // Compose alt property surrogate
512
+ alt = (typeof alt === 'string') ? {text: alt} : alt || {};
513
+ alt.text = alt.text || null;
514
+ alt.id = (alt.text) ? alt.id || 'qrcode-description' : null;
515
+
516
+ // Compose title property surrogate
517
+ title = (typeof title === 'string') ? {text: title} : title || {};
518
+ title.text = title.text || null;
519
+ title.id = (title.text) ? title.id || 'qrcode-title' : null;
520
+
521
+ var size = _this.getModuleCount() * cellSize + margin * 2;
522
+ var c, mc, r, mr, qrSvg='', rect;
523
+
524
+ rect = 'l' + cellSize + ',0 0,' + cellSize +
525
+ ' -' + cellSize + ',0 0,-' + cellSize + 'z ';
526
+
527
+ qrSvg += '<svg version="1.1" xmlns="http://www.w3.org/2000/svg"';
528
+ qrSvg += !opts.scalable ? ' width="' + size + 'px" height="' + size + 'px"' : '';
529
+ qrSvg += ' viewBox="0 0 ' + size + ' ' + size + '" ';
530
+ qrSvg += ' preserveAspectRatio="xMinYMin meet"';
531
+ qrSvg += (title.text || alt.text) ? ' role="img" aria-labelledby="' +
532
+ escapeXml([title.id, alt.id].join(' ').trim() ) + '"' : '';
533
+ qrSvg += '>';
534
+ qrSvg += (title.text) ? '<title id="' + escapeXml(title.id) + '">' +
535
+ escapeXml(title.text) + '</title>' : '';
536
+ qrSvg += (alt.text) ? '<description id="' + escapeXml(alt.id) + '">' +
537
+ escapeXml(alt.text) + '</description>' : '';
538
+ qrSvg += '<rect width="100%" height="100%" fill="white" cx="0" cy="0"/>';
539
+ qrSvg += '<path d="';
540
+
541
+ for (r = 0; r < _this.getModuleCount(); r += 1) {
542
+ mr = r * cellSize + margin;
543
+ for (c = 0; c < _this.getModuleCount(); c += 1) {
544
+ if (_this.isDark(r, c) ) {
545
+ mc = c*cellSize+margin;
546
+ qrSvg += 'M' + mc + ',' + mr + rect;
547
+ }
548
+ }
549
+ }
550
+
551
+ qrSvg += '" stroke="transparent" fill="black"/>';
552
+ qrSvg += '</svg>';
553
+
554
+ return qrSvg;
555
+ };
556
+
557
+ _this.createDataURL = function(cellSize, margin) {
558
+
559
+ cellSize = cellSize || 2;
560
+ margin = (typeof margin == 'undefined')? cellSize * 4 : margin;
561
+
562
+ var size = _this.getModuleCount() * cellSize + margin * 2;
563
+ var min = margin;
564
+ var max = size - margin;
565
+
566
+ return createDataURL(size, size, function(x, y) {
567
+ if (min <= x && x < max && min <= y && y < max) {
568
+ var c = Math.floor( (x - min) / cellSize);
569
+ var r = Math.floor( (y - min) / cellSize);
570
+ return _this.isDark(r, c)? 0 : 1;
571
+ } else {
572
+ return 1;
573
+ }
574
+ } );
575
+ };
576
+
577
+ _this.createImgTag = function(cellSize, margin, alt) {
578
+
579
+ cellSize = cellSize || 2;
580
+ margin = (typeof margin == 'undefined')? cellSize * 4 : margin;
581
+
582
+ var size = _this.getModuleCount() * cellSize + margin * 2;
583
+
584
+ var img = '';
585
+ img += '<img';
586
+ img += '\u0020src="';
587
+ img += _this.createDataURL(cellSize, margin);
588
+ img += '"';
589
+ img += '\u0020width="';
590
+ img += size;
591
+ img += '"';
592
+ img += '\u0020height="';
593
+ img += size;
594
+ img += '"';
595
+ if (alt) {
596
+ img += '\u0020alt="';
597
+ img += escapeXml(alt);
598
+ img += '"';
599
+ }
600
+ img += '/>';
601
+
602
+ return img;
603
+ };
604
+
605
+ var escapeXml = function(s) {
606
+ var escaped = '';
607
+ for (var i = 0; i < s.length; i += 1) {
608
+ var c = s.charAt(i);
609
+ switch(c) {
610
+ case '<': escaped += '&lt;'; break;
611
+ case '>': escaped += '&gt;'; break;
612
+ case '&': escaped += '&amp;'; break;
613
+ case '"': escaped += '&quot;'; break;
614
+ default : escaped += c; break;
615
+ }
616
+ }
617
+ return escaped;
618
+ };
619
+
620
+ var _createHalfASCII = function(margin) {
621
+ var cellSize = 1;
622
+ margin = (typeof margin == 'undefined')? cellSize * 2 : margin;
623
+
624
+ var size = _this.getModuleCount() * cellSize + margin * 2;
625
+ var min = margin;
626
+ var max = size - margin;
627
+
628
+ var y, x, r1, r2, p;
629
+
630
+ var blocks = {
631
+ '██': '█',
632
+ '█ ': '▀',
633
+ ' █': '▄',
634
+ ' ': ' '
635
+ };
636
+
637
+ var blocksLastLineNoMargin = {
638
+ '██': '▀',
639
+ '█ ': '▀',
640
+ ' █': ' ',
641
+ ' ': ' '
642
+ };
643
+
644
+ var ascii = '';
645
+ for (y = 0; y < size; y += 2) {
646
+ r1 = Math.floor((y - min) / cellSize);
647
+ r2 = Math.floor((y + 1 - min) / cellSize);
648
+ for (x = 0; x < size; x += 1) {
649
+ p = '█';
650
+
651
+ if (min <= x && x < max && min <= y && y < max && _this.isDark(r1, Math.floor((x - min) / cellSize))) {
652
+ p = ' ';
653
+ }
654
+
655
+ if (min <= x && x < max && min <= y+1 && y+1 < max && _this.isDark(r2, Math.floor((x - min) / cellSize))) {
656
+ p += ' ';
657
+ }
658
+ else {
659
+ p += '█';
660
+ }
661
+
662
+ // Output 2 characters per pixel, to create full square. 1 character per pixels gives only half width of square.
663
+ ascii += (margin < 1 && y+1 >= max) ? blocksLastLineNoMargin[p] : blocks[p];
664
+ }
665
+
666
+ ascii += '\n';
667
+ }
668
+
669
+ if (size % 2 && margin > 0) {
670
+ return ascii.substring(0, ascii.length - size - 1) + Array(size+1).join('▀');
671
+ }
672
+
673
+ return ascii.substring(0, ascii.length-1);
674
+ };
675
+
676
+ _this.createASCII = function(cellSize, margin) {
677
+ cellSize = cellSize || 1;
678
+
679
+ if (cellSize < 2) {
680
+ return _createHalfASCII(margin);
681
+ }
682
+
683
+ cellSize -= 1;
684
+ margin = (typeof margin == 'undefined')? cellSize * 2 : margin;
685
+
686
+ var size = _this.getModuleCount() * cellSize + margin * 2;
687
+ var min = margin;
688
+ var max = size - margin;
689
+
690
+ var y, x, r, p;
691
+
692
+ var white = Array(cellSize+1).join('██');
693
+ var black = Array(cellSize+1).join(' ');
694
+
695
+ var ascii = '';
696
+ var line = '';
697
+ for (y = 0; y < size; y += 1) {
698
+ r = Math.floor( (y - min) / cellSize);
699
+ line = '';
700
+ for (x = 0; x < size; x += 1) {
701
+ p = 1;
702
+
703
+ if (min <= x && x < max && min <= y && y < max && _this.isDark(r, Math.floor((x - min) / cellSize))) {
704
+ p = 0;
705
+ }
706
+
707
+ // Output 2 characters per pixel, to create full square. 1 character per pixels gives only half width of square.
708
+ line += p ? white : black;
709
+ }
710
+
711
+ for (r = 0; r < cellSize; r += 1) {
712
+ ascii += line + '\n';
713
+ }
714
+ }
715
+
716
+ return ascii.substring(0, ascii.length-1);
717
+ };
718
+
719
+ _this.renderTo2dContext = function(context, cellSize) {
720
+ cellSize = cellSize || 2;
721
+ var length = _this.getModuleCount();
722
+ for (var row = 0; row < length; row++) {
723
+ for (var col = 0; col < length; col++) {
724
+ context.fillStyle = _this.isDark(row, col) ? 'black' : 'white';
725
+ context.fillRect(row * cellSize, col * cellSize, cellSize, cellSize);
726
+ }
727
+ }
728
+ }
729
+
730
+ return _this;
731
+ };
732
+
733
+ //---------------------------------------------------------------------
734
+ // qrcode.stringToBytes
735
+ //---------------------------------------------------------------------
736
+
737
+ qrcode.stringToBytesFuncs = {
738
+ 'default' : function(s) {
739
+ var bytes = [];
740
+ for (var i = 0; i < s.length; i += 1) {
741
+ var c = s.charCodeAt(i);
742
+ bytes.push(c & 0xff);
743
+ }
744
+ return bytes;
745
+ }
746
+ };
747
+
748
+ qrcode.stringToBytes = qrcode.stringToBytesFuncs['default'];
749
+
750
+ //---------------------------------------------------------------------
751
+ // qrcode.createStringToBytes
752
+ //---------------------------------------------------------------------
753
+
754
+ /**
755
+ * @param unicodeData base64 string of byte array.
756
+ * [16bit Unicode],[16bit Bytes], ...
757
+ * @param numChars
758
+ */
759
+ qrcode.createStringToBytes = function(unicodeData, numChars) {
760
+
761
+ // create conversion map.
762
+
763
+ var unicodeMap = function() {
764
+
765
+ var bin = base64DecodeInputStream(unicodeData);
766
+ var read = function() {
767
+ var b = bin.read();
768
+ if (b == -1) throw 'eof';
769
+ return b;
770
+ };
771
+
772
+ var count = 0;
773
+ var unicodeMap = {};
774
+ while (true) {
775
+ var b0 = bin.read();
776
+ if (b0 == -1) break;
777
+ var b1 = read();
778
+ var b2 = read();
779
+ var b3 = read();
780
+ var k = String.fromCharCode( (b0 << 8) | b1);
781
+ var v = (b2 << 8) | b3;
782
+ unicodeMap[k] = v;
783
+ count += 1;
784
+ }
785
+ if (count != numChars) {
786
+ throw count + ' != ' + numChars;
787
+ }
788
+
789
+ return unicodeMap;
790
+ }();
791
+
792
+ var unknownChar = '?'.charCodeAt(0);
793
+
794
+ return function(s) {
795
+ var bytes = [];
796
+ for (var i = 0; i < s.length; i += 1) {
797
+ var c = s.charCodeAt(i);
798
+ if (c < 128) {
799
+ bytes.push(c);
800
+ } else {
801
+ var b = unicodeMap[s.charAt(i)];
802
+ if (typeof b == 'number') {
803
+ if ( (b & 0xff) == b) {
804
+ // 1byte
805
+ bytes.push(b);
806
+ } else {
807
+ // 2bytes
808
+ bytes.push(b >>> 8);
809
+ bytes.push(b & 0xff);
810
+ }
811
+ } else {
812
+ bytes.push(unknownChar);
813
+ }
814
+ }
815
+ }
816
+ return bytes;
817
+ };
818
+ };
819
+
820
+ //---------------------------------------------------------------------
821
+ // QRMode
822
+ //---------------------------------------------------------------------
823
+
824
+ var QRMode = {
825
+ MODE_NUMBER : 1 << 0,
826
+ MODE_ALPHA_NUM : 1 << 1,
827
+ MODE_8BIT_BYTE : 1 << 2,
828
+ MODE_KANJI : 1 << 3
829
+ };
830
+
831
+ //---------------------------------------------------------------------
832
+ // QRErrorCorrectionLevel
833
+ //---------------------------------------------------------------------
834
+
835
+ var QRErrorCorrectionLevel = {
836
+ L : 1,
837
+ M : 0,
838
+ Q : 3,
839
+ H : 2
840
+ };
841
+
842
+ //---------------------------------------------------------------------
843
+ // QRMaskPattern
844
+ //---------------------------------------------------------------------
845
+
846
+ var QRMaskPattern = {
847
+ PATTERN000 : 0,
848
+ PATTERN001 : 1,
849
+ PATTERN010 : 2,
850
+ PATTERN011 : 3,
851
+ PATTERN100 : 4,
852
+ PATTERN101 : 5,
853
+ PATTERN110 : 6,
854
+ PATTERN111 : 7
855
+ };
856
+
857
+ //---------------------------------------------------------------------
858
+ // QRUtil
859
+ //---------------------------------------------------------------------
860
+
861
+ var QRUtil = function() {
862
+
863
+ var PATTERN_POSITION_TABLE = [
864
+ [],
865
+ [6, 18],
866
+ [6, 22],
867
+ [6, 26],
868
+ [6, 30],
869
+ [6, 34],
870
+ [6, 22, 38],
871
+ [6, 24, 42],
872
+ [6, 26, 46],
873
+ [6, 28, 50],
874
+ [6, 30, 54],
875
+ [6, 32, 58],
876
+ [6, 34, 62],
877
+ [6, 26, 46, 66],
878
+ [6, 26, 48, 70],
879
+ [6, 26, 50, 74],
880
+ [6, 30, 54, 78],
881
+ [6, 30, 56, 82],
882
+ [6, 30, 58, 86],
883
+ [6, 34, 62, 90],
884
+ [6, 28, 50, 72, 94],
885
+ [6, 26, 50, 74, 98],
886
+ [6, 30, 54, 78, 102],
887
+ [6, 28, 54, 80, 106],
888
+ [6, 32, 58, 84, 110],
889
+ [6, 30, 58, 86, 114],
890
+ [6, 34, 62, 90, 118],
891
+ [6, 26, 50, 74, 98, 122],
892
+ [6, 30, 54, 78, 102, 126],
893
+ [6, 26, 52, 78, 104, 130],
894
+ [6, 30, 56, 82, 108, 134],
895
+ [6, 34, 60, 86, 112, 138],
896
+ [6, 30, 58, 86, 114, 142],
897
+ [6, 34, 62, 90, 118, 146],
898
+ [6, 30, 54, 78, 102, 126, 150],
899
+ [6, 24, 50, 76, 102, 128, 154],
900
+ [6, 28, 54, 80, 106, 132, 158],
901
+ [6, 32, 58, 84, 110, 136, 162],
902
+ [6, 26, 54, 82, 110, 138, 166],
903
+ [6, 30, 58, 86, 114, 142, 170]
904
+ ];
905
+ var G15 = (1 << 10) | (1 << 8) | (1 << 5) | (1 << 4) | (1 << 2) | (1 << 1) | (1 << 0);
906
+ var G18 = (1 << 12) | (1 << 11) | (1 << 10) | (1 << 9) | (1 << 8) | (1 << 5) | (1 << 2) | (1 << 0);
907
+ var G15_MASK = (1 << 14) | (1 << 12) | (1 << 10) | (1 << 4) | (1 << 1);
908
+
909
+ var _this = {};
910
+
911
+ var getBCHDigit = function(data) {
912
+ var digit = 0;
913
+ while (data != 0) {
914
+ digit += 1;
915
+ data >>>= 1;
916
+ }
917
+ return digit;
918
+ };
919
+
920
+ _this.getBCHTypeInfo = function(data) {
921
+ var d = data << 10;
922
+ while (getBCHDigit(d) - getBCHDigit(G15) >= 0) {
923
+ d ^= (G15 << (getBCHDigit(d) - getBCHDigit(G15) ) );
924
+ }
925
+ return ( (data << 10) | d) ^ G15_MASK;
926
+ };
927
+
928
+ _this.getBCHTypeNumber = function(data) {
929
+ var d = data << 12;
930
+ while (getBCHDigit(d) - getBCHDigit(G18) >= 0) {
931
+ d ^= (G18 << (getBCHDigit(d) - getBCHDigit(G18) ) );
932
+ }
933
+ return (data << 12) | d;
934
+ };
935
+
936
+ _this.getPatternPosition = function(typeNumber) {
937
+ return PATTERN_POSITION_TABLE[typeNumber - 1];
938
+ };
939
+
940
+ _this.getMaskFunction = function(maskPattern) {
941
+
942
+ switch (maskPattern) {
943
+
944
+ case QRMaskPattern.PATTERN000 :
945
+ return function(i, j) { return (i + j) % 2 == 0; };
946
+ case QRMaskPattern.PATTERN001 :
947
+ return function(i, j) { return i % 2 == 0; };
948
+ case QRMaskPattern.PATTERN010 :
949
+ return function(i, j) { return j % 3 == 0; };
950
+ case QRMaskPattern.PATTERN011 :
951
+ return function(i, j) { return (i + j) % 3 == 0; };
952
+ case QRMaskPattern.PATTERN100 :
953
+ return function(i, j) { return (Math.floor(i / 2) + Math.floor(j / 3) ) % 2 == 0; };
954
+ case QRMaskPattern.PATTERN101 :
955
+ return function(i, j) { return (i * j) % 2 + (i * j) % 3 == 0; };
956
+ case QRMaskPattern.PATTERN110 :
957
+ return function(i, j) { return ( (i * j) % 2 + (i * j) % 3) % 2 == 0; };
958
+ case QRMaskPattern.PATTERN111 :
959
+ return function(i, j) { return ( (i * j) % 3 + (i + j) % 2) % 2 == 0; };
960
+
961
+ default :
962
+ throw 'bad maskPattern:' + maskPattern;
963
+ }
964
+ };
965
+
966
+ _this.getErrorCorrectPolynomial = function(errorCorrectLength) {
967
+ var a = qrPolynomial([1], 0);
968
+ for (var i = 0; i < errorCorrectLength; i += 1) {
969
+ a = a.multiply(qrPolynomial([1, QRMath.gexp(i)], 0) );
970
+ }
971
+ return a;
972
+ };
973
+
974
+ _this.getLengthInBits = function(mode, type) {
975
+
976
+ if (1 <= type && type < 10) {
977
+
978
+ // 1 - 9
979
+
980
+ switch(mode) {
981
+ case QRMode.MODE_NUMBER : return 10;
982
+ case QRMode.MODE_ALPHA_NUM : return 9;
983
+ case QRMode.MODE_8BIT_BYTE : return 8;
984
+ case QRMode.MODE_KANJI : return 8;
985
+ default :
986
+ throw 'mode:' + mode;
987
+ }
988
+
989
+ } else if (type < 27) {
990
+
991
+ // 10 - 26
992
+
993
+ switch(mode) {
994
+ case QRMode.MODE_NUMBER : return 12;
995
+ case QRMode.MODE_ALPHA_NUM : return 11;
996
+ case QRMode.MODE_8BIT_BYTE : return 16;
997
+ case QRMode.MODE_KANJI : return 10;
998
+ default :
999
+ throw 'mode:' + mode;
1000
+ }
1001
+
1002
+ } else if (type < 41) {
1003
+
1004
+ // 27 - 40
1005
+
1006
+ switch(mode) {
1007
+ case QRMode.MODE_NUMBER : return 14;
1008
+ case QRMode.MODE_ALPHA_NUM : return 13;
1009
+ case QRMode.MODE_8BIT_BYTE : return 16;
1010
+ case QRMode.MODE_KANJI : return 12;
1011
+ default :
1012
+ throw 'mode:' + mode;
1013
+ }
1014
+
1015
+ } else {
1016
+ throw 'type:' + type;
1017
+ }
1018
+ };
1019
+
1020
+ _this.getLostPoint = function(qrcode) {
1021
+
1022
+ var moduleCount = qrcode.getModuleCount();
1023
+
1024
+ var lostPoint = 0;
1025
+
1026
+ // LEVEL1
1027
+
1028
+ for (var row = 0; row < moduleCount; row += 1) {
1029
+ for (var col = 0; col < moduleCount; col += 1) {
1030
+
1031
+ var sameCount = 0;
1032
+ var dark = qrcode.isDark(row, col);
1033
+
1034
+ for (var r = -1; r <= 1; r += 1) {
1035
+
1036
+ if (row + r < 0 || moduleCount <= row + r) {
1037
+ continue;
1038
+ }
1039
+
1040
+ for (var c = -1; c <= 1; c += 1) {
1041
+
1042
+ if (col + c < 0 || moduleCount <= col + c) {
1043
+ continue;
1044
+ }
1045
+
1046
+ if (r == 0 && c == 0) {
1047
+ continue;
1048
+ }
1049
+
1050
+ if (dark == qrcode.isDark(row + r, col + c) ) {
1051
+ sameCount += 1;
1052
+ }
1053
+ }
1054
+ }
1055
+
1056
+ if (sameCount > 5) {
1057
+ lostPoint += (3 + sameCount - 5);
1058
+ }
1059
+ }
1060
+ };
1061
+
1062
+ // LEVEL2
1063
+
1064
+ for (var row = 0; row < moduleCount - 1; row += 1) {
1065
+ for (var col = 0; col < moduleCount - 1; col += 1) {
1066
+ var count = 0;
1067
+ if (qrcode.isDark(row, col) ) count += 1;
1068
+ if (qrcode.isDark(row + 1, col) ) count += 1;
1069
+ if (qrcode.isDark(row, col + 1) ) count += 1;
1070
+ if (qrcode.isDark(row + 1, col + 1) ) count += 1;
1071
+ if (count == 0 || count == 4) {
1072
+ lostPoint += 3;
1073
+ }
1074
+ }
1075
+ }
1076
+
1077
+ // LEVEL3
1078
+
1079
+ for (var row = 0; row < moduleCount; row += 1) {
1080
+ for (var col = 0; col < moduleCount - 6; col += 1) {
1081
+ if (qrcode.isDark(row, col)
1082
+ && !qrcode.isDark(row, col + 1)
1083
+ && qrcode.isDark(row, col + 2)
1084
+ && qrcode.isDark(row, col + 3)
1085
+ && qrcode.isDark(row, col + 4)
1086
+ && !qrcode.isDark(row, col + 5)
1087
+ && qrcode.isDark(row, col + 6) ) {
1088
+ lostPoint += 40;
1089
+ }
1090
+ }
1091
+ }
1092
+
1093
+ for (var col = 0; col < moduleCount; col += 1) {
1094
+ for (var row = 0; row < moduleCount - 6; row += 1) {
1095
+ if (qrcode.isDark(row, col)
1096
+ && !qrcode.isDark(row + 1, col)
1097
+ && qrcode.isDark(row + 2, col)
1098
+ && qrcode.isDark(row + 3, col)
1099
+ && qrcode.isDark(row + 4, col)
1100
+ && !qrcode.isDark(row + 5, col)
1101
+ && qrcode.isDark(row + 6, col) ) {
1102
+ lostPoint += 40;
1103
+ }
1104
+ }
1105
+ }
1106
+
1107
+ // LEVEL4
1108
+
1109
+ var darkCount = 0;
1110
+
1111
+ for (var col = 0; col < moduleCount; col += 1) {
1112
+ for (var row = 0; row < moduleCount; row += 1) {
1113
+ if (qrcode.isDark(row, col) ) {
1114
+ darkCount += 1;
1115
+ }
1116
+ }
1117
+ }
1118
+
1119
+ var ratio = Math.abs(100 * darkCount / moduleCount / moduleCount - 50) / 5;
1120
+ lostPoint += ratio * 10;
1121
+
1122
+ return lostPoint;
1123
+ };
1124
+
1125
+ return _this;
1126
+ }();
1127
+
1128
+ //---------------------------------------------------------------------
1129
+ // QRMath
1130
+ //---------------------------------------------------------------------
1131
+
1132
+ var QRMath = function() {
1133
+
1134
+ var EXP_TABLE = new Array(256);
1135
+ var LOG_TABLE = new Array(256);
1136
+
1137
+ // initialize tables
1138
+ for (var i = 0; i < 8; i += 1) {
1139
+ EXP_TABLE[i] = 1 << i;
1140
+ }
1141
+ for (var i = 8; i < 256; i += 1) {
1142
+ EXP_TABLE[i] = EXP_TABLE[i - 4]
1143
+ ^ EXP_TABLE[i - 5]
1144
+ ^ EXP_TABLE[i - 6]
1145
+ ^ EXP_TABLE[i - 8];
1146
+ }
1147
+ for (var i = 0; i < 255; i += 1) {
1148
+ LOG_TABLE[EXP_TABLE[i] ] = i;
1149
+ }
1150
+
1151
+ var _this = {};
1152
+
1153
+ _this.glog = function(n) {
1154
+
1155
+ if (n < 1) {
1156
+ throw 'glog(' + n + ')';
1157
+ }
1158
+
1159
+ return LOG_TABLE[n];
1160
+ };
1161
+
1162
+ _this.gexp = function(n) {
1163
+
1164
+ while (n < 0) {
1165
+ n += 255;
1166
+ }
1167
+
1168
+ while (n >= 256) {
1169
+ n -= 255;
1170
+ }
1171
+
1172
+ return EXP_TABLE[n];
1173
+ };
1174
+
1175
+ return _this;
1176
+ }();
1177
+
1178
+ //---------------------------------------------------------------------
1179
+ // qrPolynomial
1180
+ //---------------------------------------------------------------------
1181
+
1182
+ function qrPolynomial(num, shift) {
1183
+
1184
+ if (typeof num.length == 'undefined') {
1185
+ throw num.length + '/' + shift;
1186
+ }
1187
+
1188
+ var _num = function() {
1189
+ var offset = 0;
1190
+ while (offset < num.length && num[offset] == 0) {
1191
+ offset += 1;
1192
+ }
1193
+ var _num = new Array(num.length - offset + shift);
1194
+ for (var i = 0; i < num.length - offset; i += 1) {
1195
+ _num[i] = num[i + offset];
1196
+ }
1197
+ return _num;
1198
+ }();
1199
+
1200
+ var _this = {};
1201
+
1202
+ _this.getAt = function(index) {
1203
+ return _num[index];
1204
+ };
1205
+
1206
+ _this.getLength = function() {
1207
+ return _num.length;
1208
+ };
1209
+
1210
+ _this.multiply = function(e) {
1211
+
1212
+ var num = new Array(_this.getLength() + e.getLength() - 1);
1213
+
1214
+ for (var i = 0; i < _this.getLength(); i += 1) {
1215
+ for (var j = 0; j < e.getLength(); j += 1) {
1216
+ num[i + j] ^= QRMath.gexp(QRMath.glog(_this.getAt(i) ) + QRMath.glog(e.getAt(j) ) );
1217
+ }
1218
+ }
1219
+
1220
+ return qrPolynomial(num, 0);
1221
+ };
1222
+
1223
+ _this.mod = function(e) {
1224
+
1225
+ if (_this.getLength() - e.getLength() < 0) {
1226
+ return _this;
1227
+ }
1228
+
1229
+ var ratio = QRMath.glog(_this.getAt(0) ) - QRMath.glog(e.getAt(0) );
1230
+
1231
+ var num = new Array(_this.getLength() );
1232
+ for (var i = 0; i < _this.getLength(); i += 1) {
1233
+ num[i] = _this.getAt(i);
1234
+ }
1235
+
1236
+ for (var i = 0; i < e.getLength(); i += 1) {
1237
+ num[i] ^= QRMath.gexp(QRMath.glog(e.getAt(i) ) + ratio);
1238
+ }
1239
+
1240
+ // recursive call
1241
+ return qrPolynomial(num, 0).mod(e);
1242
+ };
1243
+
1244
+ return _this;
1245
+ };
1246
+
1247
+ //---------------------------------------------------------------------
1248
+ // QRRSBlock
1249
+ //---------------------------------------------------------------------
1250
+
1251
+ var QRRSBlock = function() {
1252
+
1253
+ var RS_BLOCK_TABLE = [
1254
+
1255
+ // L
1256
+ // M
1257
+ // Q
1258
+ // H
1259
+
1260
+ // 1
1261
+ [1, 26, 19],
1262
+ [1, 26, 16],
1263
+ [1, 26, 13],
1264
+ [1, 26, 9],
1265
+
1266
+ // 2
1267
+ [1, 44, 34],
1268
+ [1, 44, 28],
1269
+ [1, 44, 22],
1270
+ [1, 44, 16],
1271
+
1272
+ // 3
1273
+ [1, 70, 55],
1274
+ [1, 70, 44],
1275
+ [2, 35, 17],
1276
+ [2, 35, 13],
1277
+
1278
+ // 4
1279
+ [1, 100, 80],
1280
+ [2, 50, 32],
1281
+ [2, 50, 24],
1282
+ [4, 25, 9],
1283
+
1284
+ // 5
1285
+ [1, 134, 108],
1286
+ [2, 67, 43],
1287
+ [2, 33, 15, 2, 34, 16],
1288
+ [2, 33, 11, 2, 34, 12],
1289
+
1290
+ // 6
1291
+ [2, 86, 68],
1292
+ [4, 43, 27],
1293
+ [4, 43, 19],
1294
+ [4, 43, 15],
1295
+
1296
+ // 7
1297
+ [2, 98, 78],
1298
+ [4, 49, 31],
1299
+ [2, 32, 14, 4, 33, 15],
1300
+ [4, 39, 13, 1, 40, 14],
1301
+
1302
+ // 8
1303
+ [2, 121, 97],
1304
+ [2, 60, 38, 2, 61, 39],
1305
+ [4, 40, 18, 2, 41, 19],
1306
+ [4, 40, 14, 2, 41, 15],
1307
+
1308
+ // 9
1309
+ [2, 146, 116],
1310
+ [3, 58, 36, 2, 59, 37],
1311
+ [4, 36, 16, 4, 37, 17],
1312
+ [4, 36, 12, 4, 37, 13],
1313
+
1314
+ // 10
1315
+ [2, 86, 68, 2, 87, 69],
1316
+ [4, 69, 43, 1, 70, 44],
1317
+ [6, 43, 19, 2, 44, 20],
1318
+ [6, 43, 15, 2, 44, 16],
1319
+
1320
+ // 11
1321
+ [4, 101, 81],
1322
+ [1, 80, 50, 4, 81, 51],
1323
+ [4, 50, 22, 4, 51, 23],
1324
+ [3, 36, 12, 8, 37, 13],
1325
+
1326
+ // 12
1327
+ [2, 116, 92, 2, 117, 93],
1328
+ [6, 58, 36, 2, 59, 37],
1329
+ [4, 46, 20, 6, 47, 21],
1330
+ [7, 42, 14, 4, 43, 15],
1331
+
1332
+ // 13
1333
+ [4, 133, 107],
1334
+ [8, 59, 37, 1, 60, 38],
1335
+ [8, 44, 20, 4, 45, 21],
1336
+ [12, 33, 11, 4, 34, 12],
1337
+
1338
+ // 14
1339
+ [3, 145, 115, 1, 146, 116],
1340
+ [4, 64, 40, 5, 65, 41],
1341
+ [11, 36, 16, 5, 37, 17],
1342
+ [11, 36, 12, 5, 37, 13],
1343
+
1344
+ // 15
1345
+ [5, 109, 87, 1, 110, 88],
1346
+ [5, 65, 41, 5, 66, 42],
1347
+ [5, 54, 24, 7, 55, 25],
1348
+ [11, 36, 12, 7, 37, 13],
1349
+
1350
+ // 16
1351
+ [5, 122, 98, 1, 123, 99],
1352
+ [7, 73, 45, 3, 74, 46],
1353
+ [15, 43, 19, 2, 44, 20],
1354
+ [3, 45, 15, 13, 46, 16],
1355
+
1356
+ // 17
1357
+ [1, 135, 107, 5, 136, 108],
1358
+ [10, 74, 46, 1, 75, 47],
1359
+ [1, 50, 22, 15, 51, 23],
1360
+ [2, 42, 14, 17, 43, 15],
1361
+
1362
+ // 18
1363
+ [5, 150, 120, 1, 151, 121],
1364
+ [9, 69, 43, 4, 70, 44],
1365
+ [17, 50, 22, 1, 51, 23],
1366
+ [2, 42, 14, 19, 43, 15],
1367
+
1368
+ // 19
1369
+ [3, 141, 113, 4, 142, 114],
1370
+ [3, 70, 44, 11, 71, 45],
1371
+ [17, 47, 21, 4, 48, 22],
1372
+ [9, 39, 13, 16, 40, 14],
1373
+
1374
+ // 20
1375
+ [3, 135, 107, 5, 136, 108],
1376
+ [3, 67, 41, 13, 68, 42],
1377
+ [15, 54, 24, 5, 55, 25],
1378
+ [15, 43, 15, 10, 44, 16],
1379
+
1380
+ // 21
1381
+ [4, 144, 116, 4, 145, 117],
1382
+ [17, 68, 42],
1383
+ [17, 50, 22, 6, 51, 23],
1384
+ [19, 46, 16, 6, 47, 17],
1385
+
1386
+ // 22
1387
+ [2, 139, 111, 7, 140, 112],
1388
+ [17, 74, 46],
1389
+ [7, 54, 24, 16, 55, 25],
1390
+ [34, 37, 13],
1391
+
1392
+ // 23
1393
+ [4, 151, 121, 5, 152, 122],
1394
+ [4, 75, 47, 14, 76, 48],
1395
+ [11, 54, 24, 14, 55, 25],
1396
+ [16, 45, 15, 14, 46, 16],
1397
+
1398
+ // 24
1399
+ [6, 147, 117, 4, 148, 118],
1400
+ [6, 73, 45, 14, 74, 46],
1401
+ [11, 54, 24, 16, 55, 25],
1402
+ [30, 46, 16, 2, 47, 17],
1403
+
1404
+ // 25
1405
+ [8, 132, 106, 4, 133, 107],
1406
+ [8, 75, 47, 13, 76, 48],
1407
+ [7, 54, 24, 22, 55, 25],
1408
+ [22, 45, 15, 13, 46, 16],
1409
+
1410
+ // 26
1411
+ [10, 142, 114, 2, 143, 115],
1412
+ [19, 74, 46, 4, 75, 47],
1413
+ [28, 50, 22, 6, 51, 23],
1414
+ [33, 46, 16, 4, 47, 17],
1415
+
1416
+ // 27
1417
+ [8, 152, 122, 4, 153, 123],
1418
+ [22, 73, 45, 3, 74, 46],
1419
+ [8, 53, 23, 26, 54, 24],
1420
+ [12, 45, 15, 28, 46, 16],
1421
+
1422
+ // 28
1423
+ [3, 147, 117, 10, 148, 118],
1424
+ [3, 73, 45, 23, 74, 46],
1425
+ [4, 54, 24, 31, 55, 25],
1426
+ [11, 45, 15, 31, 46, 16],
1427
+
1428
+ // 29
1429
+ [7, 146, 116, 7, 147, 117],
1430
+ [21, 73, 45, 7, 74, 46],
1431
+ [1, 53, 23, 37, 54, 24],
1432
+ [19, 45, 15, 26, 46, 16],
1433
+
1434
+ // 30
1435
+ [5, 145, 115, 10, 146, 116],
1436
+ [19, 75, 47, 10, 76, 48],
1437
+ [15, 54, 24, 25, 55, 25],
1438
+ [23, 45, 15, 25, 46, 16],
1439
+
1440
+ // 31
1441
+ [13, 145, 115, 3, 146, 116],
1442
+ [2, 74, 46, 29, 75, 47],
1443
+ [42, 54, 24, 1, 55, 25],
1444
+ [23, 45, 15, 28, 46, 16],
1445
+
1446
+ // 32
1447
+ [17, 145, 115],
1448
+ [10, 74, 46, 23, 75, 47],
1449
+ [10, 54, 24, 35, 55, 25],
1450
+ [19, 45, 15, 35, 46, 16],
1451
+
1452
+ // 33
1453
+ [17, 145, 115, 1, 146, 116],
1454
+ [14, 74, 46, 21, 75, 47],
1455
+ [29, 54, 24, 19, 55, 25],
1456
+ [11, 45, 15, 46, 46, 16],
1457
+
1458
+ // 34
1459
+ [13, 145, 115, 6, 146, 116],
1460
+ [14, 74, 46, 23, 75, 47],
1461
+ [44, 54, 24, 7, 55, 25],
1462
+ [59, 46, 16, 1, 47, 17],
1463
+
1464
+ // 35
1465
+ [12, 151, 121, 7, 152, 122],
1466
+ [12, 75, 47, 26, 76, 48],
1467
+ [39, 54, 24, 14, 55, 25],
1468
+ [22, 45, 15, 41, 46, 16],
1469
+
1470
+ // 36
1471
+ [6, 151, 121, 14, 152, 122],
1472
+ [6, 75, 47, 34, 76, 48],
1473
+ [46, 54, 24, 10, 55, 25],
1474
+ [2, 45, 15, 64, 46, 16],
1475
+
1476
+ // 37
1477
+ [17, 152, 122, 4, 153, 123],
1478
+ [29, 74, 46, 14, 75, 47],
1479
+ [49, 54, 24, 10, 55, 25],
1480
+ [24, 45, 15, 46, 46, 16],
1481
+
1482
+ // 38
1483
+ [4, 152, 122, 18, 153, 123],
1484
+ [13, 74, 46, 32, 75, 47],
1485
+ [48, 54, 24, 14, 55, 25],
1486
+ [42, 45, 15, 32, 46, 16],
1487
+
1488
+ // 39
1489
+ [20, 147, 117, 4, 148, 118],
1490
+ [40, 75, 47, 7, 76, 48],
1491
+ [43, 54, 24, 22, 55, 25],
1492
+ [10, 45, 15, 67, 46, 16],
1493
+
1494
+ // 40
1495
+ [19, 148, 118, 6, 149, 119],
1496
+ [18, 75, 47, 31, 76, 48],
1497
+ [34, 54, 24, 34, 55, 25],
1498
+ [20, 45, 15, 61, 46, 16]
1499
+ ];
1500
+
1501
+ var qrRSBlock = function(totalCount, dataCount) {
1502
+ var _this = {};
1503
+ _this.totalCount = totalCount;
1504
+ _this.dataCount = dataCount;
1505
+ return _this;
1506
+ };
1507
+
1508
+ var _this = {};
1509
+
1510
+ var getRsBlockTable = function(typeNumber, errorCorrectionLevel) {
1511
+
1512
+ switch(errorCorrectionLevel) {
1513
+ case QRErrorCorrectionLevel.L :
1514
+ return RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 0];
1515
+ case QRErrorCorrectionLevel.M :
1516
+ return RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 1];
1517
+ case QRErrorCorrectionLevel.Q :
1518
+ return RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 2];
1519
+ case QRErrorCorrectionLevel.H :
1520
+ return RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 3];
1521
+ default :
1522
+ return undefined;
1523
+ }
1524
+ };
1525
+
1526
+ _this.getRSBlocks = function(typeNumber, errorCorrectionLevel) {
1527
+
1528
+ var rsBlock = getRsBlockTable(typeNumber, errorCorrectionLevel);
1529
+
1530
+ if (typeof rsBlock == 'undefined') {
1531
+ throw 'bad rs block @ typeNumber:' + typeNumber +
1532
+ '/errorCorrectionLevel:' + errorCorrectionLevel;
1533
+ }
1534
+
1535
+ var length = rsBlock.length / 3;
1536
+
1537
+ var list = [];
1538
+
1539
+ for (var i = 0; i < length; i += 1) {
1540
+
1541
+ var count = rsBlock[i * 3 + 0];
1542
+ var totalCount = rsBlock[i * 3 + 1];
1543
+ var dataCount = rsBlock[i * 3 + 2];
1544
+
1545
+ for (var j = 0; j < count; j += 1) {
1546
+ list.push(qrRSBlock(totalCount, dataCount) );
1547
+ }
1548
+ }
1549
+
1550
+ return list;
1551
+ };
1552
+
1553
+ return _this;
1554
+ }();
1555
+
1556
+ //---------------------------------------------------------------------
1557
+ // qrBitBuffer
1558
+ //---------------------------------------------------------------------
1559
+
1560
+ var qrBitBuffer = function() {
1561
+
1562
+ var _buffer = [];
1563
+ var _length = 0;
1564
+
1565
+ var _this = {};
1566
+
1567
+ _this.getBuffer = function() {
1568
+ return _buffer;
1569
+ };
1570
+
1571
+ _this.getAt = function(index) {
1572
+ var bufIndex = Math.floor(index / 8);
1573
+ return ( (_buffer[bufIndex] >>> (7 - index % 8) ) & 1) == 1;
1574
+ };
1575
+
1576
+ _this.put = function(num, length) {
1577
+ for (var i = 0; i < length; i += 1) {
1578
+ _this.putBit( ( (num >>> (length - i - 1) ) & 1) == 1);
1579
+ }
1580
+ };
1581
+
1582
+ _this.getLengthInBits = function() {
1583
+ return _length;
1584
+ };
1585
+
1586
+ _this.putBit = function(bit) {
1587
+
1588
+ var bufIndex = Math.floor(_length / 8);
1589
+ if (_buffer.length <= bufIndex) {
1590
+ _buffer.push(0);
1591
+ }
1592
+
1593
+ if (bit) {
1594
+ _buffer[bufIndex] |= (0x80 >>> (_length % 8) );
1595
+ }
1596
+
1597
+ _length += 1;
1598
+ };
1599
+
1600
+ return _this;
1601
+ };
1602
+
1603
+ //---------------------------------------------------------------------
1604
+ // qrNumber
1605
+ //---------------------------------------------------------------------
1606
+
1607
+ var qrNumber = function(data) {
1608
+
1609
+ var _mode = QRMode.MODE_NUMBER;
1610
+ var _data = data;
1611
+
1612
+ var _this = {};
1613
+
1614
+ _this.getMode = function() {
1615
+ return _mode;
1616
+ };
1617
+
1618
+ _this.getLength = function(buffer) {
1619
+ return _data.length;
1620
+ };
1621
+
1622
+ _this.write = function(buffer) {
1623
+
1624
+ var data = _data;
1625
+
1626
+ var i = 0;
1627
+
1628
+ while (i + 2 < data.length) {
1629
+ buffer.put(strToNum(data.substring(i, i + 3) ), 10);
1630
+ i += 3;
1631
+ }
1632
+
1633
+ if (i < data.length) {
1634
+ if (data.length - i == 1) {
1635
+ buffer.put(strToNum(data.substring(i, i + 1) ), 4);
1636
+ } else if (data.length - i == 2) {
1637
+ buffer.put(strToNum(data.substring(i, i + 2) ), 7);
1638
+ }
1639
+ }
1640
+ };
1641
+
1642
+ var strToNum = function(s) {
1643
+ var num = 0;
1644
+ for (var i = 0; i < s.length; i += 1) {
1645
+ num = num * 10 + chatToNum(s.charAt(i) );
1646
+ }
1647
+ return num;
1648
+ };
1649
+
1650
+ var chatToNum = function(c) {
1651
+ if ('0' <= c && c <= '9') {
1652
+ return c.charCodeAt(0) - '0'.charCodeAt(0);
1653
+ }
1654
+ throw 'illegal char :' + c;
1655
+ };
1656
+
1657
+ return _this;
1658
+ };
1659
+
1660
+ //---------------------------------------------------------------------
1661
+ // qrAlphaNum
1662
+ //---------------------------------------------------------------------
1663
+
1664
+ var qrAlphaNum = function(data) {
1665
+
1666
+ var _mode = QRMode.MODE_ALPHA_NUM;
1667
+ var _data = data;
1668
+
1669
+ var _this = {};
1670
+
1671
+ _this.getMode = function() {
1672
+ return _mode;
1673
+ };
1674
+
1675
+ _this.getLength = function(buffer) {
1676
+ return _data.length;
1677
+ };
1678
+
1679
+ _this.write = function(buffer) {
1680
+
1681
+ var s = _data;
1682
+
1683
+ var i = 0;
1684
+
1685
+ while (i + 1 < s.length) {
1686
+ buffer.put(
1687
+ getCode(s.charAt(i) ) * 45 +
1688
+ getCode(s.charAt(i + 1) ), 11);
1689
+ i += 2;
1690
+ }
1691
+
1692
+ if (i < s.length) {
1693
+ buffer.put(getCode(s.charAt(i) ), 6);
1694
+ }
1695
+ };
1696
+
1697
+ var getCode = function(c) {
1698
+
1699
+ if ('0' <= c && c <= '9') {
1700
+ return c.charCodeAt(0) - '0'.charCodeAt(0);
1701
+ } else if ('A' <= c && c <= 'Z') {
1702
+ return c.charCodeAt(0) - 'A'.charCodeAt(0) + 10;
1703
+ } else {
1704
+ switch (c) {
1705
+ case ' ' : return 36;
1706
+ case '$' : return 37;
1707
+ case '%' : return 38;
1708
+ case '*' : return 39;
1709
+ case '+' : return 40;
1710
+ case '-' : return 41;
1711
+ case '.' : return 42;
1712
+ case '/' : return 43;
1713
+ case ':' : return 44;
1714
+ default :
1715
+ throw 'illegal char :' + c;
1716
+ }
1717
+ }
1718
+ };
1719
+
1720
+ return _this;
1721
+ };
1722
+
1723
+ //---------------------------------------------------------------------
1724
+ // qr8BitByte
1725
+ //---------------------------------------------------------------------
1726
+
1727
+ var qr8BitByte = function(data) {
1728
+
1729
+ var _mode = QRMode.MODE_8BIT_BYTE;
1730
+ var _data = data;
1731
+ var _bytes = qrcode.stringToBytes(data);
1732
+
1733
+ var _this = {};
1734
+
1735
+ _this.getMode = function() {
1736
+ return _mode;
1737
+ };
1738
+
1739
+ _this.getLength = function(buffer) {
1740
+ return _bytes.length;
1741
+ };
1742
+
1743
+ _this.write = function(buffer) {
1744
+ for (var i = 0; i < _bytes.length; i += 1) {
1745
+ buffer.put(_bytes[i], 8);
1746
+ }
1747
+ };
1748
+
1749
+ return _this;
1750
+ };
1751
+
1752
+ //---------------------------------------------------------------------
1753
+ // qrKanji
1754
+ //---------------------------------------------------------------------
1755
+
1756
+ var qrKanji = function(data) {
1757
+
1758
+ var _mode = QRMode.MODE_KANJI;
1759
+ var _data = data;
1760
+
1761
+ var stringToBytes = qrcode.stringToBytesFuncs['SJIS'];
1762
+ if (!stringToBytes) {
1763
+ throw 'sjis not supported.';
1764
+ }
1765
+ !function(c, code) {
1766
+ // self test for sjis support.
1767
+ var test = stringToBytes(c);
1768
+ if (test.length != 2 || ( (test[0] << 8) | test[1]) != code) {
1769
+ throw 'sjis not supported.';
1770
+ }
1771
+ }('\u53cb', 0x9746);
1772
+
1773
+ var _bytes = stringToBytes(data);
1774
+
1775
+ var _this = {};
1776
+
1777
+ _this.getMode = function() {
1778
+ return _mode;
1779
+ };
1780
+
1781
+ _this.getLength = function(buffer) {
1782
+ return ~~(_bytes.length / 2);
1783
+ };
1784
+
1785
+ _this.write = function(buffer) {
1786
+
1787
+ var data = _bytes;
1788
+
1789
+ var i = 0;
1790
+
1791
+ while (i + 1 < data.length) {
1792
+
1793
+ var c = ( (0xff & data[i]) << 8) | (0xff & data[i + 1]);
1794
+
1795
+ if (0x8140 <= c && c <= 0x9FFC) {
1796
+ c -= 0x8140;
1797
+ } else if (0xE040 <= c && c <= 0xEBBF) {
1798
+ c -= 0xC140;
1799
+ } else {
1800
+ throw 'illegal char at ' + (i + 1) + '/' + c;
1801
+ }
1802
+
1803
+ c = ( (c >>> 8) & 0xff) * 0xC0 + (c & 0xff);
1804
+
1805
+ buffer.put(c, 13);
1806
+
1807
+ i += 2;
1808
+ }
1809
+
1810
+ if (i < data.length) {
1811
+ throw 'illegal char at ' + (i + 1);
1812
+ }
1813
+ };
1814
+
1815
+ return _this;
1816
+ };
1817
+
1818
+ //=====================================================================
1819
+ // GIF Support etc.
1820
+ //
1821
+
1822
+ //---------------------------------------------------------------------
1823
+ // byteArrayOutputStream
1824
+ //---------------------------------------------------------------------
1825
+
1826
+ var byteArrayOutputStream = function() {
1827
+
1828
+ var _bytes = [];
1829
+
1830
+ var _this = {};
1831
+
1832
+ _this.writeByte = function(b) {
1833
+ _bytes.push(b & 0xff);
1834
+ };
1835
+
1836
+ _this.writeShort = function(i) {
1837
+ _this.writeByte(i);
1838
+ _this.writeByte(i >>> 8);
1839
+ };
1840
+
1841
+ _this.writeBytes = function(b, off, len) {
1842
+ off = off || 0;
1843
+ len = len || b.length;
1844
+ for (var i = 0; i < len; i += 1) {
1845
+ _this.writeByte(b[i + off]);
1846
+ }
1847
+ };
1848
+
1849
+ _this.writeString = function(s) {
1850
+ for (var i = 0; i < s.length; i += 1) {
1851
+ _this.writeByte(s.charCodeAt(i) );
1852
+ }
1853
+ };
1854
+
1855
+ _this.toByteArray = function() {
1856
+ return _bytes;
1857
+ };
1858
+
1859
+ _this.toString = function() {
1860
+ var s = '';
1861
+ s += '[';
1862
+ for (var i = 0; i < _bytes.length; i += 1) {
1863
+ if (i > 0) {
1864
+ s += ',';
1865
+ }
1866
+ s += _bytes[i];
1867
+ }
1868
+ s += ']';
1869
+ return s;
1870
+ };
1871
+
1872
+ return _this;
1873
+ };
1874
+
1875
+ //---------------------------------------------------------------------
1876
+ // base64EncodeOutputStream
1877
+ //---------------------------------------------------------------------
1878
+
1879
+ var base64EncodeOutputStream = function() {
1880
+
1881
+ var _buffer = 0;
1882
+ var _buflen = 0;
1883
+ var _length = 0;
1884
+ var _base64 = '';
1885
+
1886
+ var _this = {};
1887
+
1888
+ var writeEncoded = function(b) {
1889
+ _base64 += String.fromCharCode(encode(b & 0x3f) );
1890
+ };
1891
+
1892
+ var encode = function(n) {
1893
+ if (n < 0) {
1894
+ // error.
1895
+ } else if (n < 26) {
1896
+ return 0x41 + n;
1897
+ } else if (n < 52) {
1898
+ return 0x61 + (n - 26);
1899
+ } else if (n < 62) {
1900
+ return 0x30 + (n - 52);
1901
+ } else if (n == 62) {
1902
+ return 0x2b;
1903
+ } else if (n == 63) {
1904
+ return 0x2f;
1905
+ }
1906
+ throw 'n:' + n;
1907
+ };
1908
+
1909
+ _this.writeByte = function(n) {
1910
+
1911
+ _buffer = (_buffer << 8) | (n & 0xff);
1912
+ _buflen += 8;
1913
+ _length += 1;
1914
+
1915
+ while (_buflen >= 6) {
1916
+ writeEncoded(_buffer >>> (_buflen - 6) );
1917
+ _buflen -= 6;
1918
+ }
1919
+ };
1920
+
1921
+ _this.flush = function() {
1922
+
1923
+ if (_buflen > 0) {
1924
+ writeEncoded(_buffer << (6 - _buflen) );
1925
+ _buffer = 0;
1926
+ _buflen = 0;
1927
+ }
1928
+
1929
+ if (_length % 3 != 0) {
1930
+ // padding
1931
+ var padlen = 3 - _length % 3;
1932
+ for (var i = 0; i < padlen; i += 1) {
1933
+ _base64 += '=';
1934
+ }
1935
+ }
1936
+ };
1937
+
1938
+ _this.toString = function() {
1939
+ return _base64;
1940
+ };
1941
+
1942
+ return _this;
1943
+ };
1944
+
1945
+ //---------------------------------------------------------------------
1946
+ // base64DecodeInputStream
1947
+ //---------------------------------------------------------------------
1948
+
1949
+ var base64DecodeInputStream = function(str) {
1950
+
1951
+ var _str = str;
1952
+ var _pos = 0;
1953
+ var _buffer = 0;
1954
+ var _buflen = 0;
1955
+
1956
+ var _this = {};
1957
+
1958
+ _this.read = function() {
1959
+
1960
+ while (_buflen < 8) {
1961
+
1962
+ if (_pos >= _str.length) {
1963
+ if (_buflen == 0) {
1964
+ return -1;
1965
+ }
1966
+ throw 'unexpected end of file./' + _buflen;
1967
+ }
1968
+
1969
+ var c = _str.charAt(_pos);
1970
+ _pos += 1;
1971
+
1972
+ if (c == '=') {
1973
+ _buflen = 0;
1974
+ return -1;
1975
+ } else if (c.match(/^\s$/) ) {
1976
+ // ignore if whitespace.
1977
+ continue;
1978
+ }
1979
+
1980
+ _buffer = (_buffer << 6) | decode(c.charCodeAt(0) );
1981
+ _buflen += 6;
1982
+ }
1983
+
1984
+ var n = (_buffer >>> (_buflen - 8) ) & 0xff;
1985
+ _buflen -= 8;
1986
+ return n;
1987
+ };
1988
+
1989
+ var decode = function(c) {
1990
+ if (0x41 <= c && c <= 0x5a) {
1991
+ return c - 0x41;
1992
+ } else if (0x61 <= c && c <= 0x7a) {
1993
+ return c - 0x61 + 26;
1994
+ } else if (0x30 <= c && c <= 0x39) {
1995
+ return c - 0x30 + 52;
1996
+ } else if (c == 0x2b) {
1997
+ return 62;
1998
+ } else if (c == 0x2f) {
1999
+ return 63;
2000
+ } else {
2001
+ throw 'c:' + c;
2002
+ }
2003
+ };
2004
+
2005
+ return _this;
2006
+ };
2007
+
2008
+ //---------------------------------------------------------------------
2009
+ // gifImage (B/W)
2010
+ //---------------------------------------------------------------------
2011
+
2012
+ var gifImage = function(width, height) {
2013
+
2014
+ var _width = width;
2015
+ var _height = height;
2016
+ var _data = new Array(width * height);
2017
+
2018
+ var _this = {};
2019
+
2020
+ _this.setPixel = function(x, y, pixel) {
2021
+ _data[y * _width + x] = pixel;
2022
+ };
2023
+
2024
+ _this.write = function(out) {
2025
+
2026
+ //---------------------------------
2027
+ // GIF Signature
2028
+
2029
+ out.writeString('GIF87a');
2030
+
2031
+ //---------------------------------
2032
+ // Screen Descriptor
2033
+
2034
+ out.writeShort(_width);
2035
+ out.writeShort(_height);
2036
+
2037
+ out.writeByte(0x80); // 2bit
2038
+ out.writeByte(0);
2039
+ out.writeByte(0);
2040
+
2041
+ //---------------------------------
2042
+ // Global Color Map
2043
+
2044
+ // black
2045
+ out.writeByte(0x00);
2046
+ out.writeByte(0x00);
2047
+ out.writeByte(0x00);
2048
+
2049
+ // white
2050
+ out.writeByte(0xff);
2051
+ out.writeByte(0xff);
2052
+ out.writeByte(0xff);
2053
+
2054
+ //---------------------------------
2055
+ // Image Descriptor
2056
+
2057
+ out.writeString(',');
2058
+ out.writeShort(0);
2059
+ out.writeShort(0);
2060
+ out.writeShort(_width);
2061
+ out.writeShort(_height);
2062
+ out.writeByte(0);
2063
+
2064
+ //---------------------------------
2065
+ // Local Color Map
2066
+
2067
+ //---------------------------------
2068
+ // Raster Data
2069
+
2070
+ var lzwMinCodeSize = 2;
2071
+ var raster = getLZWRaster(lzwMinCodeSize);
2072
+
2073
+ out.writeByte(lzwMinCodeSize);
2074
+
2075
+ var offset = 0;
2076
+
2077
+ while (raster.length - offset > 255) {
2078
+ out.writeByte(255);
2079
+ out.writeBytes(raster, offset, 255);
2080
+ offset += 255;
2081
+ }
2082
+
2083
+ out.writeByte(raster.length - offset);
2084
+ out.writeBytes(raster, offset, raster.length - offset);
2085
+ out.writeByte(0x00);
2086
+
2087
+ //---------------------------------
2088
+ // GIF Terminator
2089
+ out.writeString(';');
2090
+ };
2091
+
2092
+ var bitOutputStream = function(out) {
2093
+
2094
+ var _out = out;
2095
+ var _bitLength = 0;
2096
+ var _bitBuffer = 0;
2097
+
2098
+ var _this = {};
2099
+
2100
+ _this.write = function(data, length) {
2101
+
2102
+ if ( (data >>> length) != 0) {
2103
+ throw 'length over';
2104
+ }
2105
+
2106
+ while (_bitLength + length >= 8) {
2107
+ _out.writeByte(0xff & ( (data << _bitLength) | _bitBuffer) );
2108
+ length -= (8 - _bitLength);
2109
+ data >>>= (8 - _bitLength);
2110
+ _bitBuffer = 0;
2111
+ _bitLength = 0;
2112
+ }
2113
+
2114
+ _bitBuffer = (data << _bitLength) | _bitBuffer;
2115
+ _bitLength = _bitLength + length;
2116
+ };
2117
+
2118
+ _this.flush = function() {
2119
+ if (_bitLength > 0) {
2120
+ _out.writeByte(_bitBuffer);
2121
+ }
2122
+ };
2123
+
2124
+ return _this;
2125
+ };
2126
+
2127
+ var getLZWRaster = function(lzwMinCodeSize) {
2128
+
2129
+ var clearCode = 1 << lzwMinCodeSize;
2130
+ var endCode = (1 << lzwMinCodeSize) + 1;
2131
+ var bitLength = lzwMinCodeSize + 1;
2132
+
2133
+ // Setup LZWTable
2134
+ var table = lzwTable();
2135
+
2136
+ for (var i = 0; i < clearCode; i += 1) {
2137
+ table.add(String.fromCharCode(i) );
2138
+ }
2139
+ table.add(String.fromCharCode(clearCode) );
2140
+ table.add(String.fromCharCode(endCode) );
2141
+
2142
+ var byteOut = byteArrayOutputStream();
2143
+ var bitOut = bitOutputStream(byteOut);
2144
+
2145
+ // clear code
2146
+ bitOut.write(clearCode, bitLength);
2147
+
2148
+ var dataIndex = 0;
2149
+
2150
+ var s = String.fromCharCode(_data[dataIndex]);
2151
+ dataIndex += 1;
2152
+
2153
+ while (dataIndex < _data.length) {
2154
+
2155
+ var c = String.fromCharCode(_data[dataIndex]);
2156
+ dataIndex += 1;
2157
+
2158
+ if (table.contains(s + c) ) {
2159
+
2160
+ s = s + c;
2161
+
2162
+ } else {
2163
+
2164
+ bitOut.write(table.indexOf(s), bitLength);
2165
+
2166
+ if (table.size() < 0xfff) {
2167
+
2168
+ if (table.size() == (1 << bitLength) ) {
2169
+ bitLength += 1;
2170
+ }
2171
+
2172
+ table.add(s + c);
2173
+ }
2174
+
2175
+ s = c;
2176
+ }
2177
+ }
2178
+
2179
+ bitOut.write(table.indexOf(s), bitLength);
2180
+
2181
+ // end code
2182
+ bitOut.write(endCode, bitLength);
2183
+
2184
+ bitOut.flush();
2185
+
2186
+ return byteOut.toByteArray();
2187
+ };
2188
+
2189
+ var lzwTable = function() {
2190
+
2191
+ var _map = {};
2192
+ var _size = 0;
2193
+
2194
+ var _this = {};
2195
+
2196
+ _this.add = function(key) {
2197
+ if (_this.contains(key) ) {
2198
+ throw 'dup key:' + key;
2199
+ }
2200
+ _map[key] = _size;
2201
+ _size += 1;
2202
+ };
2203
+
2204
+ _this.size = function() {
2205
+ return _size;
2206
+ };
2207
+
2208
+ _this.indexOf = function(key) {
2209
+ return _map[key];
2210
+ };
2211
+
2212
+ _this.contains = function(key) {
2213
+ return typeof _map[key] != 'undefined';
2214
+ };
2215
+
2216
+ return _this;
2217
+ };
2218
+
2219
+ return _this;
2220
+ };
2221
+
2222
+ var createDataURL = function(width, height, getPixel) {
2223
+ var gif = gifImage(width, height);
2224
+ for (var y = 0; y < height; y += 1) {
2225
+ for (var x = 0; x < width; x += 1) {
2226
+ gif.setPixel(x, y, getPixel(x, y) );
2227
+ }
2228
+ }
2229
+
2230
+ var b = byteArrayOutputStream();
2231
+ gif.write(b);
2232
+
2233
+ var base64 = base64EncodeOutputStream();
2234
+ var bytes = b.toByteArray();
2235
+ for (var i = 0; i < bytes.length; i += 1) {
2236
+ base64.writeByte(bytes[i]);
2237
+ }
2238
+ base64.flush();
2239
+
2240
+ return 'data:image/gif;base64,' + base64;
2241
+ };
2242
+
2243
+ //---------------------------------------------------------------------
2244
+ // returns qrcode function.
2245
+
2246
+ return qrcode;
2247
+ }();
2248
+
2249
+ // multibyte support
2250
+ !function() {
2251
+
2252
+ qrcode.stringToBytesFuncs['UTF-8'] = function(s) {
2253
+ // http://stackoverflow.com/questions/18729405/how-to-convert-utf8-string-to-byte-array
2254
+ function toUTF8Array(str) {
2255
+ var utf8 = [];
2256
+ for (var i=0; i < str.length; i++) {
2257
+ var charcode = str.charCodeAt(i);
2258
+ if (charcode < 0x80) utf8.push(charcode);
2259
+ else if (charcode < 0x800) {
2260
+ utf8.push(0xc0 | (charcode >> 6),
2261
+ 0x80 | (charcode & 0x3f));
2262
+ }
2263
+ else if (charcode < 0xd800 || charcode >= 0xe000) {
2264
+ utf8.push(0xe0 | (charcode >> 12),
2265
+ 0x80 | ((charcode>>6) & 0x3f),
2266
+ 0x80 | (charcode & 0x3f));
2267
+ }
2268
+ // surrogate pair
2269
+ else {
2270
+ i++;
2271
+ // UTF-16 encodes 0x10000-0x10FFFF by
2272
+ // subtracting 0x10000 and splitting the
2273
+ // 20 bits of 0x0-0xFFFFF into two halves
2274
+ charcode = 0x10000 + (((charcode & 0x3ff)<<10)
2275
+ | (str.charCodeAt(i) & 0x3ff));
2276
+ utf8.push(0xf0 | (charcode >>18),
2277
+ 0x80 | ((charcode>>12) & 0x3f),
2278
+ 0x80 | ((charcode>>6) & 0x3f),
2279
+ 0x80 | (charcode & 0x3f));
2280
+ }
2281
+ }
2282
+ return utf8;
2283
+ }
2284
+ return toUTF8Array(s);
2285
+ };
2286
+
2287
+ }();
2288
+
2289
+ (function (factory) {
2290
+ if (typeof define === 'function' && define.amd) {
2291
+ define([], factory);
2292
+ } else if (typeof exports === 'object') {
2293
+ module.exports = factory();
2294
+ }
2295
+ }(function () {
2296
+ return qrcode;
2297
+ }));