@wecom/wecom-openclaw-cli 1.0.15 → 1.0.16

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 (210) hide show
  1. package/dist/_virtual/_commonjsHelpers.js +8 -0
  2. package/dist/_virtual/_commonjsHelpers.js.map +1 -0
  3. package/dist/_virtual/alignment-pattern.js +6 -0
  4. package/dist/_virtual/alignment-pattern.js.map +1 -0
  5. package/dist/_virtual/bitmapper.js +6 -0
  6. package/dist/_virtual/bitmapper.js.map +1 -0
  7. package/dist/_virtual/browser.js +6 -0
  8. package/dist/_virtual/browser.js.map +1 -0
  9. package/dist/_virtual/canvas.js +6 -0
  10. package/dist/_virtual/canvas.js.map +1 -0
  11. package/dist/_virtual/chunkstream.js +6 -0
  12. package/dist/_virtual/chunkstream.js.map +1 -0
  13. package/dist/_virtual/crc.js +6 -0
  14. package/dist/_virtual/crc.js.map +1 -0
  15. package/dist/_virtual/dijkstra.js +6 -0
  16. package/dist/_virtual/dijkstra.js.map +1 -0
  17. package/dist/_virtual/error-correction-code.js +6 -0
  18. package/dist/_virtual/error-correction-code.js.map +1 -0
  19. package/dist/_virtual/error-correction-level.js +6 -0
  20. package/dist/_virtual/error-correction-level.js.map +1 -0
  21. package/dist/_virtual/filter-parse-async.js +6 -0
  22. package/dist/_virtual/filter-parse-async.js.map +1 -0
  23. package/dist/_virtual/filter-parse-sync.js +6 -0
  24. package/dist/_virtual/filter-parse-sync.js.map +1 -0
  25. package/dist/_virtual/filter-parse.js +6 -0
  26. package/dist/_virtual/filter-parse.js.map +1 -0
  27. package/dist/_virtual/finder-pattern.js +6 -0
  28. package/dist/_virtual/finder-pattern.js.map +1 -0
  29. package/dist/_virtual/format-info.js +6 -0
  30. package/dist/_virtual/format-info.js.map +1 -0
  31. package/dist/_virtual/galois-field.js +6 -0
  32. package/dist/_virtual/galois-field.js.map +1 -0
  33. package/dist/_virtual/index.js +10 -0
  34. package/dist/_virtual/index.js.map +1 -0
  35. package/dist/_virtual/interlace.js +6 -0
  36. package/dist/_virtual/interlace.js.map +1 -0
  37. package/dist/_virtual/mask-pattern.js +6 -0
  38. package/dist/_virtual/mask-pattern.js.map +1 -0
  39. package/dist/_virtual/mode.js +6 -0
  40. package/dist/_virtual/mode.js.map +1 -0
  41. package/dist/_virtual/packer-async.js +6 -0
  42. package/dist/_virtual/packer-async.js.map +1 -0
  43. package/dist/_virtual/packer.js +6 -0
  44. package/dist/_virtual/packer.js.map +1 -0
  45. package/dist/_virtual/parser-async.js +6 -0
  46. package/dist/_virtual/parser-async.js.map +1 -0
  47. package/dist/_virtual/parser.js +6 -0
  48. package/dist/_virtual/parser.js.map +1 -0
  49. package/dist/_virtual/png-sync.js +6 -0
  50. package/dist/_virtual/png-sync.js.map +1 -0
  51. package/dist/_virtual/png.js +6 -0
  52. package/dist/_virtual/png.js.map +1 -0
  53. package/dist/_virtual/png2.js +6 -0
  54. package/dist/_virtual/png2.js.map +1 -0
  55. package/dist/_virtual/polynomial.js +6 -0
  56. package/dist/_virtual/polynomial.js.map +1 -0
  57. package/dist/_virtual/qrcode.js +6 -0
  58. package/dist/_virtual/qrcode.js.map +1 -0
  59. package/dist/_virtual/regex.js +6 -0
  60. package/dist/_virtual/regex.js.map +1 -0
  61. package/dist/_virtual/segments.js +6 -0
  62. package/dist/_virtual/segments.js.map +1 -0
  63. package/dist/_virtual/server.js +6 -0
  64. package/dist/_virtual/server.js.map +1 -0
  65. package/dist/_virtual/svg-tag.js +6 -0
  66. package/dist/_virtual/svg-tag.js.map +1 -0
  67. package/dist/_virtual/svg.js +6 -0
  68. package/dist/_virtual/svg.js.map +1 -0
  69. package/dist/_virtual/sync-inflate.js +6 -0
  70. package/dist/_virtual/sync-inflate.js.map +1 -0
  71. package/dist/_virtual/sync-reader.js +6 -0
  72. package/dist/_virtual/sync-reader.js.map +1 -0
  73. package/dist/_virtual/terminal-small.js +6 -0
  74. package/dist/_virtual/terminal-small.js.map +1 -0
  75. package/dist/_virtual/terminal.js +6 -0
  76. package/dist/_virtual/terminal.js.map +1 -0
  77. package/dist/_virtual/terminal2.js +6 -0
  78. package/dist/_virtual/terminal2.js.map +1 -0
  79. package/dist/_virtual/utf8.js +6 -0
  80. package/dist/_virtual/utf8.js.map +1 -0
  81. package/dist/_virtual/utils.js +6 -0
  82. package/dist/_virtual/utils.js.map +1 -0
  83. package/dist/_virtual/utils2.js +6 -0
  84. package/dist/_virtual/utils2.js.map +1 -0
  85. package/dist/_virtual/version-check.js +6 -0
  86. package/dist/_virtual/version-check.js.map +1 -0
  87. package/dist/_virtual/version.js +6 -0
  88. package/dist/_virtual/version.js.map +1 -0
  89. package/dist/node_modules/dijkstrajs/dijkstra.js +179 -0
  90. package/dist/node_modules/dijkstrajs/dijkstra.js.map +1 -0
  91. package/dist/node_modules/pngjs/lib/bitmapper.js +281 -0
  92. package/dist/node_modules/pngjs/lib/bitmapper.js.map +1 -0
  93. package/dist/node_modules/pngjs/lib/bitpacker.js +172 -0
  94. package/dist/node_modules/pngjs/lib/bitpacker.js.map +1 -0
  95. package/dist/node_modules/pngjs/lib/chunkstream.js +204 -0
  96. package/dist/node_modules/pngjs/lib/chunkstream.js.map +1 -0
  97. package/dist/node_modules/pngjs/lib/constants.js +44 -0
  98. package/dist/node_modules/pngjs/lib/constants.js.map +1 -0
  99. package/dist/node_modules/pngjs/lib/crc.js +53 -0
  100. package/dist/node_modules/pngjs/lib/crc.js.map +1 -0
  101. package/dist/node_modules/pngjs/lib/filter-pack.js +185 -0
  102. package/dist/node_modules/pngjs/lib/filter-pack.js.map +1 -0
  103. package/dist/node_modules/pngjs/lib/filter-parse-async.js +40 -0
  104. package/dist/node_modules/pngjs/lib/filter-parse-async.js.map +1 -0
  105. package/dist/node_modules/pngjs/lib/filter-parse-sync.js +36 -0
  106. package/dist/node_modules/pngjs/lib/filter-parse-sync.js.map +1 -0
  107. package/dist/node_modules/pngjs/lib/filter-parse.js +192 -0
  108. package/dist/node_modules/pngjs/lib/filter-parse.js.map +1 -0
  109. package/dist/node_modules/pngjs/lib/format-normaliser.js +105 -0
  110. package/dist/node_modules/pngjs/lib/format-normaliser.js.map +1 -0
  111. package/dist/node_modules/pngjs/lib/interlace.js +108 -0
  112. package/dist/node_modules/pngjs/lib/interlace.js.map +1 -0
  113. package/dist/node_modules/pngjs/lib/packer-async.js +67 -0
  114. package/dist/node_modules/pngjs/lib/packer-async.js.map +1 -0
  115. package/dist/node_modules/pngjs/lib/packer-sync.js +72 -0
  116. package/dist/node_modules/pngjs/lib/packer-sync.js.map +1 -0
  117. package/dist/node_modules/pngjs/lib/packer.js +147 -0
  118. package/dist/node_modules/pngjs/lib/packer.js.map +1 -0
  119. package/dist/node_modules/pngjs/lib/paeth-predictor.js +28 -0
  120. package/dist/node_modules/pngjs/lib/paeth-predictor.js.map +1 -0
  121. package/dist/node_modules/pngjs/lib/parser-async.js +185 -0
  122. package/dist/node_modules/pngjs/lib/parser-async.js.map +1 -0
  123. package/dist/node_modules/pngjs/lib/parser-sync.js +128 -0
  124. package/dist/node_modules/pngjs/lib/parser-sync.js.map +1 -0
  125. package/dist/node_modules/pngjs/lib/parser.js +305 -0
  126. package/dist/node_modules/pngjs/lib/parser.js.map +1 -0
  127. package/dist/node_modules/pngjs/lib/png-sync.js +27 -0
  128. package/dist/node_modules/pngjs/lib/png-sync.js.map +1 -0
  129. package/dist/node_modules/pngjs/lib/png.js +212 -0
  130. package/dist/node_modules/pngjs/lib/png.js.map +1 -0
  131. package/dist/node_modules/pngjs/lib/sync-inflate.js +184 -0
  132. package/dist/node_modules/pngjs/lib/sync-inflate.js.map +1 -0
  133. package/dist/node_modules/pngjs/lib/sync-reader.js +58 -0
  134. package/dist/node_modules/pngjs/lib/sync-reader.js.map +1 -0
  135. package/dist/node_modules/qrcode/lib/browser.js +93 -0
  136. package/dist/node_modules/qrcode/lib/browser.js.map +1 -0
  137. package/dist/node_modules/qrcode/lib/can-promise.js +20 -0
  138. package/dist/node_modules/qrcode/lib/can-promise.js.map +1 -0
  139. package/dist/node_modules/qrcode/lib/core/alignment-pattern.js +100 -0
  140. package/dist/node_modules/qrcode/lib/core/alignment-pattern.js.map +1 -0
  141. package/dist/node_modules/qrcode/lib/core/alphanumeric-data.js +74 -0
  142. package/dist/node_modules/qrcode/lib/core/alphanumeric-data.js.map +1 -0
  143. package/dist/node_modules/qrcode/lib/core/bit-buffer.js +50 -0
  144. package/dist/node_modules/qrcode/lib/core/bit-buffer.js.map +1 -0
  145. package/dist/node_modules/qrcode/lib/core/bit-matrix.js +79 -0
  146. package/dist/node_modules/qrcode/lib/core/bit-matrix.js.map +1 -0
  147. package/dist/node_modules/qrcode/lib/core/byte-data.js +45 -0
  148. package/dist/node_modules/qrcode/lib/core/byte-data.js.map +1 -0
  149. package/dist/node_modules/qrcode/lib/core/error-correction-code.js +150 -0
  150. package/dist/node_modules/qrcode/lib/core/error-correction-code.js.map +1 -0
  151. package/dist/node_modules/qrcode/lib/core/error-correction-level.js +66 -0
  152. package/dist/node_modules/qrcode/lib/core/error-correction-level.js.map +1 -0
  153. package/dist/node_modules/qrcode/lib/core/finder-pattern.js +37 -0
  154. package/dist/node_modules/qrcode/lib/core/finder-pattern.js.map +1 -0
  155. package/dist/node_modules/qrcode/lib/core/format-info.js +44 -0
  156. package/dist/node_modules/qrcode/lib/core/format-info.js.map +1 -0
  157. package/dist/node_modules/qrcode/lib/core/galois-field.js +83 -0
  158. package/dist/node_modules/qrcode/lib/core/galois-field.js.map +1 -0
  159. package/dist/node_modules/qrcode/lib/core/kanji-data.js +70 -0
  160. package/dist/node_modules/qrcode/lib/core/kanji-data.js.map +1 -0
  161. package/dist/node_modules/qrcode/lib/core/mask-pattern.js +251 -0
  162. package/dist/node_modules/qrcode/lib/core/mask-pattern.js.map +1 -0
  163. package/dist/node_modules/qrcode/lib/core/mode.js +185 -0
  164. package/dist/node_modules/qrcode/lib/core/mode.js.map +1 -0
  165. package/dist/node_modules/qrcode/lib/core/numeric-data.js +58 -0
  166. package/dist/node_modules/qrcode/lib/core/numeric-data.js.map +1 -0
  167. package/dist/node_modules/qrcode/lib/core/polynomial.js +79 -0
  168. package/dist/node_modules/qrcode/lib/core/polynomial.js.map +1 -0
  169. package/dist/node_modules/qrcode/lib/core/qrcode.js +522 -0
  170. package/dist/node_modules/qrcode/lib/core/qrcode.js.map +1 -0
  171. package/dist/node_modules/qrcode/lib/core/reed-solomon-encoder.js +71 -0
  172. package/dist/node_modules/qrcode/lib/core/reed-solomon-encoder.js.map +1 -0
  173. package/dist/node_modules/qrcode/lib/core/regex.js +45 -0
  174. package/dist/node_modules/qrcode/lib/core/regex.js.map +1 -0
  175. package/dist/node_modules/qrcode/lib/core/segments.js +354 -0
  176. package/dist/node_modules/qrcode/lib/core/segments.js.map +1 -0
  177. package/dist/node_modules/qrcode/lib/core/utils.js +77 -0
  178. package/dist/node_modules/qrcode/lib/core/utils.js.map +1 -0
  179. package/dist/node_modules/qrcode/lib/core/version-check.js +24 -0
  180. package/dist/node_modules/qrcode/lib/core/version-check.js.map +1 -0
  181. package/dist/node_modules/qrcode/lib/core/version.js +184 -0
  182. package/dist/node_modules/qrcode/lib/core/version.js.map +1 -0
  183. package/dist/node_modules/qrcode/lib/index.js +27 -0
  184. package/dist/node_modules/qrcode/lib/index.js.map +1 -0
  185. package/dist/node_modules/qrcode/lib/renderer/canvas.js +80 -0
  186. package/dist/node_modules/qrcode/lib/renderer/canvas.js.map +1 -0
  187. package/dist/node_modules/qrcode/lib/renderer/png.js +97 -0
  188. package/dist/node_modules/qrcode/lib/renderer/png.js.map +1 -0
  189. package/dist/node_modules/qrcode/lib/renderer/svg-tag.js +96 -0
  190. package/dist/node_modules/qrcode/lib/renderer/svg-tag.js.map +1 -0
  191. package/dist/node_modules/qrcode/lib/renderer/svg.js +37 -0
  192. package/dist/node_modules/qrcode/lib/renderer/svg.js.map +1 -0
  193. package/dist/node_modules/qrcode/lib/renderer/terminal/terminal-small.js +99 -0
  194. package/dist/node_modules/qrcode/lib/renderer/terminal/terminal-small.js.map +1 -0
  195. package/dist/node_modules/qrcode/lib/renderer/terminal/terminal.js +63 -0
  196. package/dist/node_modules/qrcode/lib/renderer/terminal/terminal.js.map +1 -0
  197. package/dist/node_modules/qrcode/lib/renderer/terminal.js +25 -0
  198. package/dist/node_modules/qrcode/lib/renderer/terminal.js.map +1 -0
  199. package/dist/node_modules/qrcode/lib/renderer/utf8.js +89 -0
  200. package/dist/node_modules/qrcode/lib/renderer/utf8.js.map +1 -0
  201. package/dist/node_modules/qrcode/lib/renderer/utils.js +115 -0
  202. package/dist/node_modules/qrcode/lib/renderer/utils.js.map +1 -0
  203. package/dist/node_modules/qrcode/lib/server.js +159 -0
  204. package/dist/node_modules/qrcode/lib/server.js.map +1 -0
  205. package/dist/package.json.js +3 -2
  206. package/dist/package.json.js.map +1 -1
  207. package/dist/utils/qrcode.d.ts.map +1 -1
  208. package/dist/utils/qrcode.js +5 -9
  209. package/dist/utils/qrcode.js.map +1 -1
  210. package/package.json +3 -2
@@ -0,0 +1,251 @@
1
+ 'use strict';
2
+
3
+ var maskPattern = require('../../../../_virtual/mask-pattern.js');
4
+
5
+ /**
6
+ * Data mask pattern reference
7
+ * @type {Object}
8
+ */
9
+
10
+ var hasRequiredMaskPattern;
11
+
12
+ function requireMaskPattern () {
13
+ if (hasRequiredMaskPattern) return maskPattern.__exports;
14
+ hasRequiredMaskPattern = 1;
15
+ (function (exports$1) {
16
+ exports$1.Patterns = {
17
+ PATTERN000: 0,
18
+ PATTERN001: 1,
19
+ PATTERN010: 2,
20
+ PATTERN011: 3,
21
+ PATTERN100: 4,
22
+ PATTERN101: 5,
23
+ PATTERN110: 6,
24
+ PATTERN111: 7
25
+ };
26
+
27
+ /**
28
+ * Weighted penalty scores for the undesirable features
29
+ * @type {Object}
30
+ */
31
+ const PenaltyScores = {
32
+ N1: 3,
33
+ N2: 3,
34
+ N3: 40,
35
+ N4: 10
36
+ };
37
+
38
+ /**
39
+ * Check if mask pattern value is valid
40
+ *
41
+ * @param {Number} mask Mask pattern
42
+ * @return {Boolean} true if valid, false otherwise
43
+ */
44
+ exports$1.isValid = function isValid (mask) {
45
+ return mask != null && mask !== '' && !isNaN(mask) && mask >= 0 && mask <= 7
46
+ };
47
+
48
+ /**
49
+ * Returns mask pattern from a value.
50
+ * If value is not valid, returns undefined
51
+ *
52
+ * @param {Number|String} value Mask pattern value
53
+ * @return {Number} Valid mask pattern or undefined
54
+ */
55
+ exports$1.from = function from (value) {
56
+ return exports$1.isValid(value) ? parseInt(value, 10) : undefined
57
+ };
58
+
59
+ /**
60
+ * Find adjacent modules in row/column with the same color
61
+ * and assign a penalty value.
62
+ *
63
+ * Points: N1 + i
64
+ * i is the amount by which the number of adjacent modules of the same color exceeds 5
65
+ */
66
+ exports$1.getPenaltyN1 = function getPenaltyN1 (data) {
67
+ const size = data.size;
68
+ let points = 0;
69
+ let sameCountCol = 0;
70
+ let sameCountRow = 0;
71
+ let lastCol = null;
72
+ let lastRow = null;
73
+
74
+ for (let row = 0; row < size; row++) {
75
+ sameCountCol = sameCountRow = 0;
76
+ lastCol = lastRow = null;
77
+
78
+ for (let col = 0; col < size; col++) {
79
+ let module = data.get(row, col);
80
+ if (module === lastCol) {
81
+ sameCountCol++;
82
+ } else {
83
+ if (sameCountCol >= 5) points += PenaltyScores.N1 + (sameCountCol - 5);
84
+ lastCol = module;
85
+ sameCountCol = 1;
86
+ }
87
+
88
+ module = data.get(col, row);
89
+ if (module === lastRow) {
90
+ sameCountRow++;
91
+ } else {
92
+ if (sameCountRow >= 5) points += PenaltyScores.N1 + (sameCountRow - 5);
93
+ lastRow = module;
94
+ sameCountRow = 1;
95
+ }
96
+ }
97
+
98
+ if (sameCountCol >= 5) points += PenaltyScores.N1 + (sameCountCol - 5);
99
+ if (sameCountRow >= 5) points += PenaltyScores.N1 + (sameCountRow - 5);
100
+ }
101
+
102
+ return points
103
+ };
104
+
105
+ /**
106
+ * Find 2x2 blocks with the same color and assign a penalty value
107
+ *
108
+ * Points: N2 * (m - 1) * (n - 1)
109
+ */
110
+ exports$1.getPenaltyN2 = function getPenaltyN2 (data) {
111
+ const size = data.size;
112
+ let points = 0;
113
+
114
+ for (let row = 0; row < size - 1; row++) {
115
+ for (let col = 0; col < size - 1; col++) {
116
+ const last = data.get(row, col) +
117
+ data.get(row, col + 1) +
118
+ data.get(row + 1, col) +
119
+ data.get(row + 1, col + 1);
120
+
121
+ if (last === 4 || last === 0) points++;
122
+ }
123
+ }
124
+
125
+ return points * PenaltyScores.N2
126
+ };
127
+
128
+ /**
129
+ * Find 1:1:3:1:1 ratio (dark:light:dark:light:dark) pattern in row/column,
130
+ * preceded or followed by light area 4 modules wide
131
+ *
132
+ * Points: N3 * number of pattern found
133
+ */
134
+ exports$1.getPenaltyN3 = function getPenaltyN3 (data) {
135
+ const size = data.size;
136
+ let points = 0;
137
+ let bitsCol = 0;
138
+ let bitsRow = 0;
139
+
140
+ for (let row = 0; row < size; row++) {
141
+ bitsCol = bitsRow = 0;
142
+ for (let col = 0; col < size; col++) {
143
+ bitsCol = ((bitsCol << 1) & 0x7FF) | data.get(row, col);
144
+ if (col >= 10 && (bitsCol === 0x5D0 || bitsCol === 0x05D)) points++;
145
+
146
+ bitsRow = ((bitsRow << 1) & 0x7FF) | data.get(col, row);
147
+ if (col >= 10 && (bitsRow === 0x5D0 || bitsRow === 0x05D)) points++;
148
+ }
149
+ }
150
+
151
+ return points * PenaltyScores.N3
152
+ };
153
+
154
+ /**
155
+ * Calculate proportion of dark modules in entire symbol
156
+ *
157
+ * Points: N4 * k
158
+ *
159
+ * k is the rating of the deviation of the proportion of dark modules
160
+ * in the symbol from 50% in steps of 5%
161
+ */
162
+ exports$1.getPenaltyN4 = function getPenaltyN4 (data) {
163
+ let darkCount = 0;
164
+ const modulesCount = data.data.length;
165
+
166
+ for (let i = 0; i < modulesCount; i++) darkCount += data.data[i];
167
+
168
+ const k = Math.abs(Math.ceil((darkCount * 100 / modulesCount) / 5) - 10);
169
+
170
+ return k * PenaltyScores.N4
171
+ };
172
+
173
+ /**
174
+ * Return mask value at given position
175
+ *
176
+ * @param {Number} maskPattern Pattern reference value
177
+ * @param {Number} i Row
178
+ * @param {Number} j Column
179
+ * @return {Boolean} Mask value
180
+ */
181
+ function getMaskAt (maskPattern, i, j) {
182
+ switch (maskPattern) {
183
+ case exports$1.Patterns.PATTERN000: return (i + j) % 2 === 0
184
+ case exports$1.Patterns.PATTERN001: return i % 2 === 0
185
+ case exports$1.Patterns.PATTERN010: return j % 3 === 0
186
+ case exports$1.Patterns.PATTERN011: return (i + j) % 3 === 0
187
+ case exports$1.Patterns.PATTERN100: return (Math.floor(i / 2) + Math.floor(j / 3)) % 2 === 0
188
+ case exports$1.Patterns.PATTERN101: return (i * j) % 2 + (i * j) % 3 === 0
189
+ case exports$1.Patterns.PATTERN110: return ((i * j) % 2 + (i * j) % 3) % 2 === 0
190
+ case exports$1.Patterns.PATTERN111: return ((i * j) % 3 + (i + j) % 2) % 2 === 0
191
+
192
+ default: throw new Error('bad maskPattern:' + maskPattern)
193
+ }
194
+ }
195
+
196
+ /**
197
+ * Apply a mask pattern to a BitMatrix
198
+ *
199
+ * @param {Number} pattern Pattern reference number
200
+ * @param {BitMatrix} data BitMatrix data
201
+ */
202
+ exports$1.applyMask = function applyMask (pattern, data) {
203
+ const size = data.size;
204
+
205
+ for (let col = 0; col < size; col++) {
206
+ for (let row = 0; row < size; row++) {
207
+ if (data.isReserved(row, col)) continue
208
+ data.xor(row, col, getMaskAt(pattern, row, col));
209
+ }
210
+ }
211
+ };
212
+
213
+ /**
214
+ * Returns the best mask pattern for data
215
+ *
216
+ * @param {BitMatrix} data
217
+ * @return {Number} Mask pattern reference number
218
+ */
219
+ exports$1.getBestMask = function getBestMask (data, setupFormatFunc) {
220
+ const numPatterns = Object.keys(exports$1.Patterns).length;
221
+ let bestPattern = 0;
222
+ let lowerPenalty = Infinity;
223
+
224
+ for (let p = 0; p < numPatterns; p++) {
225
+ setupFormatFunc(p);
226
+ exports$1.applyMask(p, data);
227
+
228
+ // Calculate penalty
229
+ const penalty =
230
+ exports$1.getPenaltyN1(data) +
231
+ exports$1.getPenaltyN2(data) +
232
+ exports$1.getPenaltyN3(data) +
233
+ exports$1.getPenaltyN4(data);
234
+
235
+ // Undo previously applied mask
236
+ exports$1.applyMask(p, data);
237
+
238
+ if (penalty < lowerPenalty) {
239
+ lowerPenalty = penalty;
240
+ bestPattern = p;
241
+ }
242
+ }
243
+
244
+ return bestPattern
245
+ };
246
+ } (maskPattern.__exports));
247
+ return maskPattern.__exports;
248
+ }
249
+
250
+ exports.__require = requireMaskPattern;
251
+ //# sourceMappingURL=mask-pattern.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mask-pattern.js","sources":["../../../../../node_modules/qrcode/lib/core/mask-pattern.js"],"sourcesContent":["/**\n * Data mask pattern reference\n * @type {Object}\n */\nexports.Patterns = {\n PATTERN000: 0,\n PATTERN001: 1,\n PATTERN010: 2,\n PATTERN011: 3,\n PATTERN100: 4,\n PATTERN101: 5,\n PATTERN110: 6,\n PATTERN111: 7\n}\n\n/**\n * Weighted penalty scores for the undesirable features\n * @type {Object}\n */\nconst PenaltyScores = {\n N1: 3,\n N2: 3,\n N3: 40,\n N4: 10\n}\n\n/**\n * Check if mask pattern value is valid\n *\n * @param {Number} mask Mask pattern\n * @return {Boolean} true if valid, false otherwise\n */\nexports.isValid = function isValid (mask) {\n return mask != null && mask !== '' && !isNaN(mask) && mask >= 0 && mask <= 7\n}\n\n/**\n * Returns mask pattern from a value.\n * If value is not valid, returns undefined\n *\n * @param {Number|String} value Mask pattern value\n * @return {Number} Valid mask pattern or undefined\n */\nexports.from = function from (value) {\n return exports.isValid(value) ? parseInt(value, 10) : undefined\n}\n\n/**\n* Find adjacent modules in row/column with the same color\n* and assign a penalty value.\n*\n* Points: N1 + i\n* i is the amount by which the number of adjacent modules of the same color exceeds 5\n*/\nexports.getPenaltyN1 = function getPenaltyN1 (data) {\n const size = data.size\n let points = 0\n let sameCountCol = 0\n let sameCountRow = 0\n let lastCol = null\n let lastRow = null\n\n for (let row = 0; row < size; row++) {\n sameCountCol = sameCountRow = 0\n lastCol = lastRow = null\n\n for (let col = 0; col < size; col++) {\n let module = data.get(row, col)\n if (module === lastCol) {\n sameCountCol++\n } else {\n if (sameCountCol >= 5) points += PenaltyScores.N1 + (sameCountCol - 5)\n lastCol = module\n sameCountCol = 1\n }\n\n module = data.get(col, row)\n if (module === lastRow) {\n sameCountRow++\n } else {\n if (sameCountRow >= 5) points += PenaltyScores.N1 + (sameCountRow - 5)\n lastRow = module\n sameCountRow = 1\n }\n }\n\n if (sameCountCol >= 5) points += PenaltyScores.N1 + (sameCountCol - 5)\n if (sameCountRow >= 5) points += PenaltyScores.N1 + (sameCountRow - 5)\n }\n\n return points\n}\n\n/**\n * Find 2x2 blocks with the same color and assign a penalty value\n *\n * Points: N2 * (m - 1) * (n - 1)\n */\nexports.getPenaltyN2 = function getPenaltyN2 (data) {\n const size = data.size\n let points = 0\n\n for (let row = 0; row < size - 1; row++) {\n for (let col = 0; col < size - 1; col++) {\n const last = data.get(row, col) +\n data.get(row, col + 1) +\n data.get(row + 1, col) +\n data.get(row + 1, col + 1)\n\n if (last === 4 || last === 0) points++\n }\n }\n\n return points * PenaltyScores.N2\n}\n\n/**\n * Find 1:1:3:1:1 ratio (dark:light:dark:light:dark) pattern in row/column,\n * preceded or followed by light area 4 modules wide\n *\n * Points: N3 * number of pattern found\n */\nexports.getPenaltyN3 = function getPenaltyN3 (data) {\n const size = data.size\n let points = 0\n let bitsCol = 0\n let bitsRow = 0\n\n for (let row = 0; row < size; row++) {\n bitsCol = bitsRow = 0\n for (let col = 0; col < size; col++) {\n bitsCol = ((bitsCol << 1) & 0x7FF) | data.get(row, col)\n if (col >= 10 && (bitsCol === 0x5D0 || bitsCol === 0x05D)) points++\n\n bitsRow = ((bitsRow << 1) & 0x7FF) | data.get(col, row)\n if (col >= 10 && (bitsRow === 0x5D0 || bitsRow === 0x05D)) points++\n }\n }\n\n return points * PenaltyScores.N3\n}\n\n/**\n * Calculate proportion of dark modules in entire symbol\n *\n * Points: N4 * k\n *\n * k is the rating of the deviation of the proportion of dark modules\n * in the symbol from 50% in steps of 5%\n */\nexports.getPenaltyN4 = function getPenaltyN4 (data) {\n let darkCount = 0\n const modulesCount = data.data.length\n\n for (let i = 0; i < modulesCount; i++) darkCount += data.data[i]\n\n const k = Math.abs(Math.ceil((darkCount * 100 / modulesCount) / 5) - 10)\n\n return k * PenaltyScores.N4\n}\n\n/**\n * Return mask value at given position\n *\n * @param {Number} maskPattern Pattern reference value\n * @param {Number} i Row\n * @param {Number} j Column\n * @return {Boolean} Mask value\n */\nfunction getMaskAt (maskPattern, i, j) {\n switch (maskPattern) {\n case exports.Patterns.PATTERN000: return (i + j) % 2 === 0\n case exports.Patterns.PATTERN001: return i % 2 === 0\n case exports.Patterns.PATTERN010: return j % 3 === 0\n case exports.Patterns.PATTERN011: return (i + j) % 3 === 0\n case exports.Patterns.PATTERN100: return (Math.floor(i / 2) + Math.floor(j / 3)) % 2 === 0\n case exports.Patterns.PATTERN101: return (i * j) % 2 + (i * j) % 3 === 0\n case exports.Patterns.PATTERN110: return ((i * j) % 2 + (i * j) % 3) % 2 === 0\n case exports.Patterns.PATTERN111: return ((i * j) % 3 + (i + j) % 2) % 2 === 0\n\n default: throw new Error('bad maskPattern:' + maskPattern)\n }\n}\n\n/**\n * Apply a mask pattern to a BitMatrix\n *\n * @param {Number} pattern Pattern reference number\n * @param {BitMatrix} data BitMatrix data\n */\nexports.applyMask = function applyMask (pattern, data) {\n const size = data.size\n\n for (let col = 0; col < size; col++) {\n for (let row = 0; row < size; row++) {\n if (data.isReserved(row, col)) continue\n data.xor(row, col, getMaskAt(pattern, row, col))\n }\n }\n}\n\n/**\n * Returns the best mask pattern for data\n *\n * @param {BitMatrix} data\n * @return {Number} Mask pattern reference number\n */\nexports.getBestMask = function getBestMask (data, setupFormatFunc) {\n const numPatterns = Object.keys(exports.Patterns).length\n let bestPattern = 0\n let lowerPenalty = Infinity\n\n for (let p = 0; p < numPatterns; p++) {\n setupFormatFunc(p)\n exports.applyMask(p, data)\n\n // Calculate penalty\n const penalty =\n exports.getPenaltyN1(data) +\n exports.getPenaltyN2(data) +\n exports.getPenaltyN3(data) +\n exports.getPenaltyN4(data)\n\n // Undo previously applied mask\n exports.applyMask(p, data)\n\n if (penalty < lowerPenalty) {\n lowerPenalty = penalty\n bestPattern = p\n }\n }\n\n return bestPattern\n}\n"],"names":["exports"],"mappings":";;;;;;;;;;;;;;;EAIAA,SAAA,CAAA,QAAA,GAAmB;IACjB,UAAU,EAAE,CAAC;IACb,UAAU,EAAE,CAAC;IACb,UAAU,EAAE,CAAC;IACb,UAAU,EAAE,CAAC;IACb,UAAU,EAAE,CAAC;IACb,UAAU,EAAE,CAAC;IACb,UAAU,EAAE,CAAC;AACf,IAAE,UAAU,EAAE;AACd;;AAEA;AACA;AACA;AACA;AACA,EAAA,MAAM,aAAa,GAAG;IACpB,EAAE,EAAE,CAAC;IACL,EAAE,EAAE,CAAC;IACL,EAAE,EAAE,EAAE;AACR,IAAE,EAAE,EAAE;AACN;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAAA,SAAA,CAAA,OAAA,GAAkB,SAAS,OAAO,EAAE,IAAI,EAAE;IACxC,OAAO,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI;AAC7E,EAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAAA,SAAA,CAAA,IAAA,GAAe,SAAS,IAAI,EAAE,KAAK,EAAE;AACrC,IAAE,OAAOA,SAAO,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG;AACxD,EAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAAA,SAAA,CAAA,YAAA,GAAuB,SAAS,YAAY,EAAE,IAAI,EAAE;AACpD,IAAE,MAAM,IAAI,GAAG,IAAI,CAAC;IAClB,IAAI,MAAM,GAAG;IACb,IAAI,YAAY,GAAG;IACnB,IAAI,YAAY,GAAG;IACnB,IAAI,OAAO,GAAG;IACd,IAAI,OAAO,GAAG;;AAEhB,IAAE,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,EAAE,GAAG,EAAE,EAAE;MACnC,YAAY,GAAG,YAAY,GAAG;MAC9B,OAAO,GAAG,OAAO,GAAG;;AAExB,MAAI,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,EAAE,GAAG,EAAE,EAAE;QACnC,IAAI,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG;AACpC,QAAM,IAAI,MAAM,KAAK,OAAO,EAAE;AAC9B,UAAQ,YAAY;AACpB,QAAA,CAAO,MAAM;AACb,UAAQ,IAAI,YAAY,IAAI,CAAC,EAAE,MAAM,IAAI,aAAa,CAAC,EAAE,IAAI,YAAY,GAAG,CAAC;AAC7E,UAAQ,OAAO,GAAG;AAClB,UAAQ,YAAY,GAAG;AACvB,QAAA;;QAEM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG;AAChC,QAAM,IAAI,MAAM,KAAK,OAAO,EAAE;AAC9B,UAAQ,YAAY;AACpB,QAAA,CAAO,MAAM;AACb,UAAQ,IAAI,YAAY,IAAI,CAAC,EAAE,MAAM,IAAI,aAAa,CAAC,EAAE,IAAI,YAAY,GAAG,CAAC;AAC7E,UAAQ,OAAO,GAAG;AAClB,UAAQ,YAAY,GAAG;AACvB,QAAA;AACA,MAAA;;AAEA,MAAI,IAAI,YAAY,IAAI,CAAC,EAAE,MAAM,IAAI,aAAa,CAAC,EAAE,IAAI,YAAY,GAAG,CAAC;AACzE,MAAI,IAAI,YAAY,IAAI,CAAC,EAAE,MAAM,IAAI,aAAa,CAAC,EAAE,IAAI,YAAY,GAAG,CAAC;AACzE,IAAA;;AAEA,IAAE,OAAO;AACT,EAAA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAAA,SAAA,CAAA,YAAA,GAAuB,SAAS,YAAY,EAAE,IAAI,EAAE;AACpD,IAAE,MAAM,IAAI,GAAG,IAAI,CAAC;IAClB,IAAI,MAAM,GAAG;;AAEf,IAAE,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,GAAG,CAAC,EAAE,GAAG,EAAE,EAAE;AAC3C,MAAI,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,GAAG,CAAC,EAAE,GAAG,EAAE,EAAE;QACvC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC;UAC7B,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC;UACtB,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,EAAE,GAAG,CAAC;UACtB,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC;;QAE3B,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,EAAE,MAAM;AAC1C,MAAA;AACA,IAAA;;AAEA,IAAE,OAAO,MAAM,GAAG,aAAa,CAAC;AAChC,EAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAAA,SAAA,CAAA,YAAA,GAAuB,SAAS,YAAY,EAAE,IAAI,EAAE;AACpD,IAAE,MAAM,IAAI,GAAG,IAAI,CAAC;IAClB,IAAI,MAAM,GAAG;IACb,IAAI,OAAO,GAAG;IACd,IAAI,OAAO,GAAG;;AAEhB,IAAE,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,EAAE,GAAG,EAAE,EAAE;MACnC,OAAO,GAAG,OAAO,GAAG;AACxB,MAAI,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,EAAE,GAAG,EAAE,EAAE;AACzC,QAAM,OAAO,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG;AAC5D,QAAM,IAAI,GAAG,IAAI,EAAE,KAAK,OAAO,KAAK,KAAK,IAAI,OAAO,KAAK,KAAK,CAAC,EAAE,MAAM;;AAEvE,QAAM,OAAO,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG;AAC5D,QAAM,IAAI,GAAG,IAAI,EAAE,KAAK,OAAO,KAAK,KAAK,IAAI,OAAO,KAAK,KAAK,CAAC,EAAE,MAAM;AACvE,MAAA;AACA,IAAA;;AAEA,IAAE,OAAO,MAAM,GAAG,aAAa,CAAC;AAChC,EAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAAA,SAAA,CAAA,YAAA,GAAuB,SAAS,YAAY,EAAE,IAAI,EAAE;IAClD,IAAI,SAAS,GAAG;AAClB,IAAE,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC;;AAEjC,IAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,EAAE,CAAC,EAAE,EAAE,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;;IAE/D,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,GAAG,GAAG,GAAG,YAAY,IAAI,CAAC,CAAC,GAAG,EAAE;;AAEzE,IAAE,OAAO,CAAC,GAAG,aAAa,CAAC;AAC3B,EAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAA,SAAS,SAAS,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,EAAE;AACvC,IAAE,QAAQ,WAAW;AACrB,MAAI,KAAKA,SAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK;MACzD,KAAKA,SAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,KAAK;MACnD,KAAKA,SAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,KAAK;AACvD,MAAI,KAAKA,SAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK;AAC7D,MAAI,KAAKA,SAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK;MACzF,KAAKA,SAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK;MACvE,KAAKA,SAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK;MAC7E,KAAKA,SAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK;;AAEjF,MAAI,SAAS,MAAM,IAAI,KAAK,CAAC,kBAAkB,GAAG,WAAW;AAC7D;AACA,EAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAAA,SAAA,CAAA,SAAA,GAAoB,SAAS,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE;AACvD,IAAE,MAAM,IAAI,GAAG,IAAI,CAAC;;AAEpB,IAAE,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,EAAE,GAAG,EAAE,EAAE;AACvC,MAAI,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,EAAE,GAAG,EAAE,EAAE;QACnC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;AACrC,QAAM,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC;AACrD,MAAA;AACA,IAAA;AACA,EAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAAA,SAAA,CAAA,WAAA,GAAsB,SAAS,WAAW,EAAE,IAAI,EAAE,eAAe,EAAE;IACjE,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAACA,SAAO,CAAC,QAAQ,CAAC,CAAC;IAClD,IAAI,WAAW,GAAG;IAClB,IAAI,YAAY,GAAG;;AAErB,IAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE;MACpC,eAAe,CAAC,CAAC;AACrB,MAAIA,SAAO,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI;;AAE7B;AACA,MAAI,MAAM,OAAO;AACjB,QAAMA,SAAO,CAAC,YAAY,CAAC,IAAI,CAAC;AAChC,QAAMA,SAAO,CAAC,YAAY,CAAC,IAAI,CAAC;AAChC,QAAMA,SAAO,CAAC,YAAY,CAAC,IAAI,CAAC;AAChC,QAAMA,SAAO,CAAC,YAAY,CAAC,IAAI;;AAE/B;AACA,MAAIA,SAAO,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI;;AAE7B,MAAI,IAAI,OAAO,GAAG,YAAY,EAAE;AAChC,QAAM,YAAY,GAAG;AACrB,QAAM,WAAW,GAAG;AACpB,MAAA;AACA,IAAA;;AAEA,IAAE,OAAO;AACT,EAAA,EAAA;;;;;;;","x_google_ignoreList":[0]}
@@ -0,0 +1,185 @@
1
+ 'use strict';
2
+
3
+ var mode = require('../../../../_virtual/mode.js');
4
+ var versionCheck = require('./version-check.js');
5
+ var regex = require('./regex.js');
6
+
7
+ var hasRequiredMode;
8
+
9
+ function requireMode () {
10
+ if (hasRequiredMode) return mode.__exports;
11
+ hasRequiredMode = 1;
12
+ (function (exports$1) {
13
+ const VersionCheck = versionCheck.__require();
14
+ const Regex = regex.__require();
15
+
16
+ /**
17
+ * Numeric mode encodes data from the decimal digit set (0 - 9)
18
+ * (byte values 30HEX to 39HEX).
19
+ * Normally, 3 data characters are represented by 10 bits.
20
+ *
21
+ * @type {Object}
22
+ */
23
+ exports$1.NUMERIC = {
24
+ id: 'Numeric',
25
+ bit: 1 << 0,
26
+ ccBits: [10, 12, 14]
27
+ };
28
+
29
+ /**
30
+ * Alphanumeric mode encodes data from a set of 45 characters,
31
+ * i.e. 10 numeric digits (0 - 9),
32
+ * 26 alphabetic characters (A - Z),
33
+ * and 9 symbols (SP, $, %, *, +, -, ., /, :).
34
+ * Normally, two input characters are represented by 11 bits.
35
+ *
36
+ * @type {Object}
37
+ */
38
+ exports$1.ALPHANUMERIC = {
39
+ id: 'Alphanumeric',
40
+ bit: 1 << 1,
41
+ ccBits: [9, 11, 13]
42
+ };
43
+
44
+ /**
45
+ * In byte mode, data is encoded at 8 bits per character.
46
+ *
47
+ * @type {Object}
48
+ */
49
+ exports$1.BYTE = {
50
+ id: 'Byte',
51
+ bit: 1 << 2,
52
+ ccBits: [8, 16, 16]
53
+ };
54
+
55
+ /**
56
+ * The Kanji mode efficiently encodes Kanji characters in accordance with
57
+ * the Shift JIS system based on JIS X 0208.
58
+ * The Shift JIS values are shifted from the JIS X 0208 values.
59
+ * JIS X 0208 gives details of the shift coded representation.
60
+ * Each two-byte character value is compacted to a 13-bit binary codeword.
61
+ *
62
+ * @type {Object}
63
+ */
64
+ exports$1.KANJI = {
65
+ id: 'Kanji',
66
+ bit: 1 << 3,
67
+ ccBits: [8, 10, 12]
68
+ };
69
+
70
+ /**
71
+ * Mixed mode will contain a sequences of data in a combination of any of
72
+ * the modes described above
73
+ *
74
+ * @type {Object}
75
+ */
76
+ exports$1.MIXED = {
77
+ bit: -1
78
+ };
79
+
80
+ /**
81
+ * Returns the number of bits needed to store the data length
82
+ * according to QR Code specifications.
83
+ *
84
+ * @param {Mode} mode Data mode
85
+ * @param {Number} version QR Code version
86
+ * @return {Number} Number of bits
87
+ */
88
+ exports$1.getCharCountIndicator = function getCharCountIndicator (mode, version) {
89
+ if (!mode.ccBits) throw new Error('Invalid mode: ' + mode)
90
+
91
+ if (!VersionCheck.isValid(version)) {
92
+ throw new Error('Invalid version: ' + version)
93
+ }
94
+
95
+ if (version >= 1 && version < 10) return mode.ccBits[0]
96
+ else if (version < 27) return mode.ccBits[1]
97
+ return mode.ccBits[2]
98
+ };
99
+
100
+ /**
101
+ * Returns the most efficient mode to store the specified data
102
+ *
103
+ * @param {String} dataStr Input data string
104
+ * @return {Mode} Best mode
105
+ */
106
+ exports$1.getBestModeForData = function getBestModeForData (dataStr) {
107
+ if (Regex.testNumeric(dataStr)) return exports$1.NUMERIC
108
+ else if (Regex.testAlphanumeric(dataStr)) return exports$1.ALPHANUMERIC
109
+ else if (Regex.testKanji(dataStr)) return exports$1.KANJI
110
+ else return exports$1.BYTE
111
+ };
112
+
113
+ /**
114
+ * Return mode name as string
115
+ *
116
+ * @param {Mode} mode Mode object
117
+ * @returns {String} Mode name
118
+ */
119
+ exports$1.toString = function toString (mode) {
120
+ if (mode && mode.id) return mode.id
121
+ throw new Error('Invalid mode')
122
+ };
123
+
124
+ /**
125
+ * Check if input param is a valid mode object
126
+ *
127
+ * @param {Mode} mode Mode object
128
+ * @returns {Boolean} True if valid mode, false otherwise
129
+ */
130
+ exports$1.isValid = function isValid (mode) {
131
+ return mode && mode.bit && mode.ccBits
132
+ };
133
+
134
+ /**
135
+ * Get mode object from its name
136
+ *
137
+ * @param {String} string Mode name
138
+ * @returns {Mode} Mode object
139
+ */
140
+ function fromString (string) {
141
+ if (typeof string !== 'string') {
142
+ throw new Error('Param is not a string')
143
+ }
144
+
145
+ const lcStr = string.toLowerCase();
146
+
147
+ switch (lcStr) {
148
+ case 'numeric':
149
+ return exports$1.NUMERIC
150
+ case 'alphanumeric':
151
+ return exports$1.ALPHANUMERIC
152
+ case 'kanji':
153
+ return exports$1.KANJI
154
+ case 'byte':
155
+ return exports$1.BYTE
156
+ default:
157
+ throw new Error('Unknown mode: ' + string)
158
+ }
159
+ }
160
+
161
+ /**
162
+ * Returns mode from a value.
163
+ * If value is not a valid mode, returns defaultValue
164
+ *
165
+ * @param {Mode|String} value Encoding mode
166
+ * @param {Mode} defaultValue Fallback value
167
+ * @return {Mode} Encoding mode
168
+ */
169
+ exports$1.from = function from (value, defaultValue) {
170
+ if (exports$1.isValid(value)) {
171
+ return value
172
+ }
173
+
174
+ try {
175
+ return fromString(value)
176
+ } catch (e) {
177
+ return defaultValue
178
+ }
179
+ };
180
+ } (mode.__exports));
181
+ return mode.__exports;
182
+ }
183
+
184
+ exports.__require = requireMode;
185
+ //# sourceMappingURL=mode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mode.js","sources":["../../../../../node_modules/qrcode/lib/core/mode.js"],"sourcesContent":["const VersionCheck = require('./version-check')\nconst Regex = require('./regex')\n\n/**\n * Numeric mode encodes data from the decimal digit set (0 - 9)\n * (byte values 30HEX to 39HEX).\n * Normally, 3 data characters are represented by 10 bits.\n *\n * @type {Object}\n */\nexports.NUMERIC = {\n id: 'Numeric',\n bit: 1 << 0,\n ccBits: [10, 12, 14]\n}\n\n/**\n * Alphanumeric mode encodes data from a set of 45 characters,\n * i.e. 10 numeric digits (0 - 9),\n * 26 alphabetic characters (A - Z),\n * and 9 symbols (SP, $, %, *, +, -, ., /, :).\n * Normally, two input characters are represented by 11 bits.\n *\n * @type {Object}\n */\nexports.ALPHANUMERIC = {\n id: 'Alphanumeric',\n bit: 1 << 1,\n ccBits: [9, 11, 13]\n}\n\n/**\n * In byte mode, data is encoded at 8 bits per character.\n *\n * @type {Object}\n */\nexports.BYTE = {\n id: 'Byte',\n bit: 1 << 2,\n ccBits: [8, 16, 16]\n}\n\n/**\n * The Kanji mode efficiently encodes Kanji characters in accordance with\n * the Shift JIS system based on JIS X 0208.\n * The Shift JIS values are shifted from the JIS X 0208 values.\n * JIS X 0208 gives details of the shift coded representation.\n * Each two-byte character value is compacted to a 13-bit binary codeword.\n *\n * @type {Object}\n */\nexports.KANJI = {\n id: 'Kanji',\n bit: 1 << 3,\n ccBits: [8, 10, 12]\n}\n\n/**\n * Mixed mode will contain a sequences of data in a combination of any of\n * the modes described above\n *\n * @type {Object}\n */\nexports.MIXED = {\n bit: -1\n}\n\n/**\n * Returns the number of bits needed to store the data length\n * according to QR Code specifications.\n *\n * @param {Mode} mode Data mode\n * @param {Number} version QR Code version\n * @return {Number} Number of bits\n */\nexports.getCharCountIndicator = function getCharCountIndicator (mode, version) {\n if (!mode.ccBits) throw new Error('Invalid mode: ' + mode)\n\n if (!VersionCheck.isValid(version)) {\n throw new Error('Invalid version: ' + version)\n }\n\n if (version >= 1 && version < 10) return mode.ccBits[0]\n else if (version < 27) return mode.ccBits[1]\n return mode.ccBits[2]\n}\n\n/**\n * Returns the most efficient mode to store the specified data\n *\n * @param {String} dataStr Input data string\n * @return {Mode} Best mode\n */\nexports.getBestModeForData = function getBestModeForData (dataStr) {\n if (Regex.testNumeric(dataStr)) return exports.NUMERIC\n else if (Regex.testAlphanumeric(dataStr)) return exports.ALPHANUMERIC\n else if (Regex.testKanji(dataStr)) return exports.KANJI\n else return exports.BYTE\n}\n\n/**\n * Return mode name as string\n *\n * @param {Mode} mode Mode object\n * @returns {String} Mode name\n */\nexports.toString = function toString (mode) {\n if (mode && mode.id) return mode.id\n throw new Error('Invalid mode')\n}\n\n/**\n * Check if input param is a valid mode object\n *\n * @param {Mode} mode Mode object\n * @returns {Boolean} True if valid mode, false otherwise\n */\nexports.isValid = function isValid (mode) {\n return mode && mode.bit && mode.ccBits\n}\n\n/**\n * Get mode object from its name\n *\n * @param {String} string Mode name\n * @returns {Mode} Mode object\n */\nfunction fromString (string) {\n if (typeof string !== 'string') {\n throw new Error('Param is not a string')\n }\n\n const lcStr = string.toLowerCase()\n\n switch (lcStr) {\n case 'numeric':\n return exports.NUMERIC\n case 'alphanumeric':\n return exports.ALPHANUMERIC\n case 'kanji':\n return exports.KANJI\n case 'byte':\n return exports.BYTE\n default:\n throw new Error('Unknown mode: ' + string)\n }\n}\n\n/**\n * Returns mode from a value.\n * If value is not a valid mode, returns defaultValue\n *\n * @param {Mode|String} value Encoding mode\n * @param {Mode} defaultValue Fallback value\n * @return {Mode} Encoding mode\n */\nexports.from = function from (value, defaultValue) {\n if (exports.isValid(value)) {\n return value\n }\n\n try {\n return fromString(value)\n } catch (e) {\n return defaultValue\n }\n}\n"],"names":["require$$0","require$$1","exports"],"mappings":";;;;;;;;;;;;AAAA,EAAA,MAAM,YAAY,GAAGA,sBAAA;AACrB,EAAA,MAAM,KAAK,GAAGC,eAAA;;AAEd;AACA;AACA;AACA;AACA;AACA;AACA;EACAC,SAAA,CAAA,OAAA,GAAkB;IAChB,EAAE,EAAE,SAAS;AACf,IAAE,GAAG,EAAE,CAAC,IAAI,CAAC;AACb,IAAE,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE;AACrB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACAA,SAAA,CAAA,YAAA,GAAuB;IACrB,EAAE,EAAE,cAAc;AACpB,IAAE,GAAG,EAAE,CAAC,IAAI,CAAC;AACb,IAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE;AACpB;;AAEA;AACA;AACA;AACA;AACA;EACAA,SAAA,CAAA,IAAA,GAAe;IACb,EAAE,EAAE,MAAM;AACZ,IAAE,GAAG,EAAE,CAAC,IAAI,CAAC;AACb,IAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE;AACpB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACAA,SAAA,CAAA,KAAA,GAAgB;IACd,EAAE,EAAE,OAAO;AACb,IAAE,GAAG,EAAE,CAAC,IAAI,CAAC;AACb,IAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE;AACpB;;AAEA;AACA;AACA;AACA;AACA;AACA;EACAA,SAAA,CAAA,KAAA,GAAgB;IACd,GAAG,EAAE;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAAA,SAAA,CAAA,qBAAA,GAAgC,SAAS,qBAAqB,EAAE,IAAI,EAAE,OAAO,EAAE;AAC/E,IAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,GAAG,IAAI;;IAEzD,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;AACtC,MAAI,MAAM,IAAI,KAAK,CAAC,mBAAmB,GAAG,OAAO;AACjD,IAAA;;AAEA,IAAE,IAAI,OAAO,IAAI,CAAC,IAAI,OAAO,GAAG,EAAE,EAAE,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;SACjD,IAAI,OAAO,GAAG,EAAE,EAAE,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;AAC7C,IAAE,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;AACtB,EAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAAA,SAAA,CAAA,kBAAA,GAA6B,SAAS,kBAAkB,EAAE,OAAO,EAAE;IACjE,IAAI,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,OAAOA,SAAO,CAAC;SAC1C,IAAI,KAAK,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,OAAOA,SAAO,CAAC;SACpD,IAAI,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,OAAOA,SAAO,CAAC;SAC7C,OAAOA,SAAO,CAAC;AACtB,EAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAAA,SAAA,CAAA,QAAA,GAAmB,SAAS,QAAQ,EAAE,IAAI,EAAE;IAC1C,IAAI,IAAI,IAAI,IAAI,CAAC,EAAE,EAAE,OAAO,IAAI,CAAC;AACnC,IAAE,MAAM,IAAI,KAAK,CAAC,cAAc;AAChC,EAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAAA,SAAA,CAAA,OAAA,GAAkB,SAAS,OAAO,EAAE,IAAI,EAAE;IACxC,OAAO,IAAI,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC;AAClC,EAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;EACA,SAAS,UAAU,EAAE,MAAM,EAAE;AAC7B,IAAE,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;AAClC,MAAI,MAAM,IAAI,KAAK,CAAC,uBAAuB;AAC3C,IAAA;;AAEA,IAAE,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW;;AAElC,IAAE,QAAQ,KAAK;AACf,MAAI,KAAK,SAAS;QACZ,OAAOA,SAAO,CAAC;AACrB,MAAI,KAAK,cAAc;QACjB,OAAOA,SAAO,CAAC;AACrB,MAAI,KAAK,OAAO;QACV,OAAOA,SAAO,CAAC;AACrB,MAAI,KAAK,MAAM;QACT,OAAOA,SAAO,CAAC;MACjB;AACJ,QAAM,MAAM,IAAI,KAAK,CAAC,gBAAgB,GAAG,MAAM;AAC/C;AACA,EAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAAA,SAAA,CAAA,IAAA,GAAe,SAAS,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE;AACnD,IAAE,IAAIA,SAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAC9B,MAAI,OAAO;AACX,IAAA;;AAEA,IAAE,IAAI;MACF,OAAO,UAAU,CAAC,KAAK;IAC3B,CAAG,CAAC,OAAO,CAAC,EAAE;AACd,MAAI,OAAO;AACX,IAAA;AACA,EAAA,EAAA;;;;;;;","x_google_ignoreList":[0]}
@@ -0,0 +1,58 @@
1
+ 'use strict';
2
+
3
+ var mode = require('./mode.js');
4
+
5
+ var numericData;
6
+ var hasRequiredNumericData;
7
+
8
+ function requireNumericData () {
9
+ if (hasRequiredNumericData) return numericData;
10
+ hasRequiredNumericData = 1;
11
+ const Mode = mode.__require();
12
+
13
+ function NumericData (data) {
14
+ this.mode = Mode.NUMERIC;
15
+ this.data = data.toString();
16
+ }
17
+
18
+ NumericData.getBitsLength = function getBitsLength (length) {
19
+ return 10 * Math.floor(length / 3) + ((length % 3) ? ((length % 3) * 3 + 1) : 0)
20
+ };
21
+
22
+ NumericData.prototype.getLength = function getLength () {
23
+ return this.data.length
24
+ };
25
+
26
+ NumericData.prototype.getBitsLength = function getBitsLength () {
27
+ return NumericData.getBitsLength(this.data.length)
28
+ };
29
+
30
+ NumericData.prototype.write = function write (bitBuffer) {
31
+ let i, group, value;
32
+
33
+ // The input data string is divided into groups of three digits,
34
+ // and each group is converted to its 10-bit binary equivalent.
35
+ for (i = 0; i + 3 <= this.data.length; i += 3) {
36
+ group = this.data.substr(i, 3);
37
+ value = parseInt(group, 10);
38
+
39
+ bitBuffer.put(value, 10);
40
+ }
41
+
42
+ // If the number of input digits is not an exact multiple of three,
43
+ // the final one or two digits are converted to 4 or 7 bits respectively.
44
+ const remainingNum = this.data.length - i;
45
+ if (remainingNum > 0) {
46
+ group = this.data.substr(i);
47
+ value = parseInt(group, 10);
48
+
49
+ bitBuffer.put(value, remainingNum * 3 + 1);
50
+ }
51
+ };
52
+
53
+ numericData = NumericData;
54
+ return numericData;
55
+ }
56
+
57
+ exports.__require = requireNumericData;
58
+ //# sourceMappingURL=numeric-data.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"numeric-data.js","sources":["../../../../../node_modules/qrcode/lib/core/numeric-data.js"],"sourcesContent":["const Mode = require('./mode')\n\nfunction NumericData (data) {\n this.mode = Mode.NUMERIC\n this.data = data.toString()\n}\n\nNumericData.getBitsLength = function getBitsLength (length) {\n return 10 * Math.floor(length / 3) + ((length % 3) ? ((length % 3) * 3 + 1) : 0)\n}\n\nNumericData.prototype.getLength = function getLength () {\n return this.data.length\n}\n\nNumericData.prototype.getBitsLength = function getBitsLength () {\n return NumericData.getBitsLength(this.data.length)\n}\n\nNumericData.prototype.write = function write (bitBuffer) {\n let i, group, value\n\n // The input data string is divided into groups of three digits,\n // and each group is converted to its 10-bit binary equivalent.\n for (i = 0; i + 3 <= this.data.length; i += 3) {\n group = this.data.substr(i, 3)\n value = parseInt(group, 10)\n\n bitBuffer.put(value, 10)\n }\n\n // If the number of input digits is not an exact multiple of three,\n // the final one or two digits are converted to 4 or 7 bits respectively.\n const remainingNum = this.data.length - i\n if (remainingNum > 0) {\n group = this.data.substr(i)\n value = parseInt(group, 10)\n\n bitBuffer.put(value, remainingNum * 3 + 1)\n }\n}\n\nmodule.exports = NumericData\n"],"names":["require$$0"],"mappings":";;;;;;;;;;AAAA,CAAA,MAAM,IAAI,GAAGA,cAAA;;CAEb,SAAS,WAAW,EAAE,IAAI,EAAE;AAC5B,GAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACnB,GAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ;AAC3B,CAAA;;AAEA,CAAA,WAAW,CAAC,aAAa,GAAG,SAAS,aAAa,EAAE,MAAM,EAAE;GAC1D,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;AACjF,CAAA;;AAEA,CAAA,WAAW,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,SAAS,IAAI;AACxD,GAAE,OAAO,IAAI,CAAC,IAAI,CAAC;AACnB,CAAA;;AAEA,CAAA,WAAW,CAAC,SAAS,CAAC,aAAa,GAAG,SAAS,aAAa,IAAI;GAC9D,OAAO,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM;AACnD,CAAA;;CAEA,WAAW,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,KAAK,EAAE,SAAS,EAAE;AACzD,GAAE,IAAI,CAAC,EAAE,KAAK,EAAE;;AAEhB;AACA;AACA,GAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;KAC7C,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;AACjC,KAAI,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE;;AAE9B,KAAI,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE;AAC3B,GAAA;;AAEA;AACA;GACE,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG;AAC1C,GAAE,IAAI,YAAY,GAAG,CAAC,EAAE;KACpB,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC9B,KAAI,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE;;KAE1B,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,YAAY,GAAG,CAAC,GAAG,CAAC;AAC7C,GAAA;AACA,CAAA;;AAEA,CAAA,WAAc,GAAG;;;;;;","x_google_ignoreList":[0]}
@@ -0,0 +1,79 @@
1
+ 'use strict';
2
+
3
+ var polynomial = require('../../../../_virtual/polynomial.js');
4
+ var galoisField = require('./galois-field.js');
5
+
6
+ var hasRequiredPolynomial;
7
+
8
+ function requirePolynomial () {
9
+ if (hasRequiredPolynomial) return polynomial.__exports;
10
+ hasRequiredPolynomial = 1;
11
+ (function (exports$1) {
12
+ const GF = galoisField.__require();
13
+
14
+ /**
15
+ * Multiplies two polynomials inside Galois Field
16
+ *
17
+ * @param {Uint8Array} p1 Polynomial
18
+ * @param {Uint8Array} p2 Polynomial
19
+ * @return {Uint8Array} Product of p1 and p2
20
+ */
21
+ exports$1.mul = function mul (p1, p2) {
22
+ const coeff = new Uint8Array(p1.length + p2.length - 1);
23
+
24
+ for (let i = 0; i < p1.length; i++) {
25
+ for (let j = 0; j < p2.length; j++) {
26
+ coeff[i + j] ^= GF.mul(p1[i], p2[j]);
27
+ }
28
+ }
29
+
30
+ return coeff
31
+ };
32
+
33
+ /**
34
+ * Calculate the remainder of polynomials division
35
+ *
36
+ * @param {Uint8Array} divident Polynomial
37
+ * @param {Uint8Array} divisor Polynomial
38
+ * @return {Uint8Array} Remainder
39
+ */
40
+ exports$1.mod = function mod (divident, divisor) {
41
+ let result = new Uint8Array(divident);
42
+
43
+ while ((result.length - divisor.length) >= 0) {
44
+ const coeff = result[0];
45
+
46
+ for (let i = 0; i < divisor.length; i++) {
47
+ result[i] ^= GF.mul(divisor[i], coeff);
48
+ }
49
+
50
+ // remove all zeros from buffer head
51
+ let offset = 0;
52
+ while (offset < result.length && result[offset] === 0) offset++;
53
+ result = result.slice(offset);
54
+ }
55
+
56
+ return result
57
+ };
58
+
59
+ /**
60
+ * Generate an irreducible generator polynomial of specified degree
61
+ * (used by Reed-Solomon encoder)
62
+ *
63
+ * @param {Number} degree Degree of the generator polynomial
64
+ * @return {Uint8Array} Buffer containing polynomial coefficients
65
+ */
66
+ exports$1.generateECPolynomial = function generateECPolynomial (degree) {
67
+ let poly = new Uint8Array([1]);
68
+ for (let i = 0; i < degree; i++) {
69
+ poly = exports$1.mul(poly, new Uint8Array([1, GF.exp(i)]));
70
+ }
71
+
72
+ return poly
73
+ };
74
+ } (polynomial.__exports));
75
+ return polynomial.__exports;
76
+ }
77
+
78
+ exports.__require = requirePolynomial;
79
+ //# sourceMappingURL=polynomial.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"polynomial.js","sources":["../../../../../node_modules/qrcode/lib/core/polynomial.js"],"sourcesContent":["const GF = require('./galois-field')\n\n/**\n * Multiplies two polynomials inside Galois Field\n *\n * @param {Uint8Array} p1 Polynomial\n * @param {Uint8Array} p2 Polynomial\n * @return {Uint8Array} Product of p1 and p2\n */\nexports.mul = function mul (p1, p2) {\n const coeff = new Uint8Array(p1.length + p2.length - 1)\n\n for (let i = 0; i < p1.length; i++) {\n for (let j = 0; j < p2.length; j++) {\n coeff[i + j] ^= GF.mul(p1[i], p2[j])\n }\n }\n\n return coeff\n}\n\n/**\n * Calculate the remainder of polynomials division\n *\n * @param {Uint8Array} divident Polynomial\n * @param {Uint8Array} divisor Polynomial\n * @return {Uint8Array} Remainder\n */\nexports.mod = function mod (divident, divisor) {\n let result = new Uint8Array(divident)\n\n while ((result.length - divisor.length) >= 0) {\n const coeff = result[0]\n\n for (let i = 0; i < divisor.length; i++) {\n result[i] ^= GF.mul(divisor[i], coeff)\n }\n\n // remove all zeros from buffer head\n let offset = 0\n while (offset < result.length && result[offset] === 0) offset++\n result = result.slice(offset)\n }\n\n return result\n}\n\n/**\n * Generate an irreducible generator polynomial of specified degree\n * (used by Reed-Solomon encoder)\n *\n * @param {Number} degree Degree of the generator polynomial\n * @return {Uint8Array} Buffer containing polynomial coefficients\n */\nexports.generateECPolynomial = function generateECPolynomial (degree) {\n let poly = new Uint8Array([1])\n for (let i = 0; i < degree; i++) {\n poly = exports.mul(poly, new Uint8Array([1, GF.exp(i)]))\n }\n\n return poly\n}\n"],"names":["require$$0","exports"],"mappings":";;;;;;;;;;;AAAA,EAAA,MAAM,EAAE,GAAGA,qBAAA;;AAEX;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAAC,SAAA,CAAA,GAAA,GAAc,SAAS,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE;AACpC,IAAE,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC,MAAM,GAAG,CAAC;;AAExD,IAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACtC,MAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACxC,QAAM,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AACzC,MAAA;AACA,IAAA;;AAEA,IAAE,OAAO;AACT,EAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAAA,SAAA,CAAA,GAAA,GAAc,SAAS,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE;AAC/C,IAAE,IAAI,MAAM,GAAG,IAAI,UAAU,CAAC,QAAQ;;IAEpC,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;AAChD,MAAI,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC;;AAE1B,MAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC7C,QAAM,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK;AAC3C,MAAA;;AAEA;MACI,IAAI,MAAM,GAAG;AACjB,MAAI,OAAO,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM;AACjE,MAAI,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM;AAChC,IAAA;;AAEA,IAAE,OAAO;AACT,EAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAAA,SAAA,CAAA,oBAAA,GAA+B,SAAS,oBAAoB,EAAE,MAAM,EAAE;IACpE,IAAI,IAAI,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;AAC/B,IAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;MAC/B,IAAI,GAAGA,SAAO,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3D,IAAA;;AAEA,IAAE,OAAO;AACT,EAAA,EAAA;;;;;;;","x_google_ignoreList":[0]}