@package-broker/ui 0.19.7 → 2.0.0-rc.1

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 (207) hide show
  1. package/LICENSE +661 -0
  2. package/dist/.tsbuildinfo +1 -0
  3. package/dist/api-types.d.ts +9987 -0
  4. package/dist/api-types.d.ts.map +1 -0
  5. package/dist/api-types.js +6 -0
  6. package/dist/api-types.js.map +1 -0
  7. package/dist/api.d.ts +88 -0
  8. package/dist/api.d.ts.map +1 -0
  9. package/dist/api.js +179 -0
  10. package/dist/api.js.map +1 -0
  11. package/dist/app.d.ts +76 -0
  12. package/dist/app.d.ts.map +1 -0
  13. package/dist/app.js +239 -0
  14. package/dist/app.js.map +1 -0
  15. package/dist/assets/app.0348e5888f99.js +15 -0
  16. package/dist/assets/app.e8cea8b32d3a.css +2 -0
  17. package/dist/assets/index.html +13 -0
  18. package/dist/assets/manifest.json +26 -0
  19. package/dist/assets/setup.98343039898f.js +1 -0
  20. package/dist/assets/setup.html +14 -0
  21. package/dist/auth.d.ts +170 -0
  22. package/dist/auth.d.ts.map +1 -0
  23. package/dist/auth.js +551 -0
  24. package/dist/auth.js.map +1 -0
  25. package/dist/components/ui/alert.d.ts +10 -0
  26. package/dist/components/ui/alert.d.ts.map +1 -0
  27. package/dist/components/ui/alert.js +22 -0
  28. package/dist/components/ui/alert.js.map +1 -0
  29. package/dist/components/ui/badge.d.ts +8 -0
  30. package/dist/components/ui/badge.d.ts.map +1 -0
  31. package/dist/components/ui/badge.js +18 -0
  32. package/dist/components/ui/badge.js.map +1 -0
  33. package/dist/components/ui/button.d.ts +13 -0
  34. package/dist/components/ui/button.d.ts.map +1 -0
  35. package/dist/components/ui/button.js +27 -0
  36. package/dist/components/ui/button.js.map +1 -0
  37. package/dist/components/ui/card.d.ts +10 -0
  38. package/dist/components/ui/card.d.ts.map +1 -0
  39. package/dist/components/ui/card.js +21 -0
  40. package/dist/components/ui/card.js.map +1 -0
  41. package/dist/components/ui/confirm-action.d.ts +12 -0
  42. package/dist/components/ui/confirm-action.d.ts.map +1 -0
  43. package/dist/components/ui/confirm-action.js +19 -0
  44. package/dist/components/ui/confirm-action.js.map +1 -0
  45. package/dist/components/ui/dialog.d.ts +17 -0
  46. package/dist/components/ui/dialog.d.ts.map +1 -0
  47. package/dist/components/ui/dialog.js +180 -0
  48. package/dist/components/ui/dialog.js.map +1 -0
  49. package/dist/components/ui/dropdown-menu.d.ts +8 -0
  50. package/dist/components/ui/dropdown-menu.d.ts.map +1 -0
  51. package/dist/components/ui/dropdown-menu.js +71 -0
  52. package/dist/components/ui/dropdown-menu.js.map +1 -0
  53. package/dist/components/ui/id-text.d.ts +11 -0
  54. package/dist/components/ui/id-text.d.ts.map +1 -0
  55. package/dist/components/ui/id-text.js +23 -0
  56. package/dist/components/ui/id-text.js.map +1 -0
  57. package/dist/components/ui/input.d.ts +5 -0
  58. package/dist/components/ui/input.d.ts.map +1 -0
  59. package/dist/components/ui/input.js +6 -0
  60. package/dist/components/ui/input.js.map +1 -0
  61. package/dist/components/ui/label.d.ts +4 -0
  62. package/dist/components/ui/label.d.ts.map +1 -0
  63. package/dist/components/ui/label.js +7 -0
  64. package/dist/components/ui/label.js.map +1 -0
  65. package/dist/components/ui/list-state.d.ts +7 -0
  66. package/dist/components/ui/list-state.d.ts.map +1 -0
  67. package/dist/components/ui/list-state.js +5 -0
  68. package/dist/components/ui/list-state.js.map +1 -0
  69. package/dist/components/ui/overlay-host.d.ts +6 -0
  70. package/dist/components/ui/overlay-host.d.ts.map +1 -0
  71. package/dist/components/ui/overlay-host.js +36 -0
  72. package/dist/components/ui/overlay-host.js.map +1 -0
  73. package/dist/components/ui/row-actions.d.ts +17 -0
  74. package/dist/components/ui/row-actions.d.ts.map +1 -0
  75. package/dist/components/ui/row-actions.js +21 -0
  76. package/dist/components/ui/row-actions.js.map +1 -0
  77. package/dist/components/ui/select.d.ts +3 -0
  78. package/dist/components/ui/select.d.ts.map +1 -0
  79. package/dist/components/ui/select.js +6 -0
  80. package/dist/components/ui/select.js.map +1 -0
  81. package/dist/components/ui/status-badge.d.ts +28 -0
  82. package/dist/components/ui/status-badge.d.ts.map +1 -0
  83. package/dist/components/ui/status-badge.js +50 -0
  84. package/dist/components/ui/status-badge.js.map +1 -0
  85. package/dist/components/ui/table.d.ts +27 -0
  86. package/dist/components/ui/table.d.ts.map +1 -0
  87. package/dist/components/ui/table.js +81 -0
  88. package/dist/components/ui/table.js.map +1 -0
  89. package/dist/components/ui/tabs.d.ts +7 -0
  90. package/dist/components/ui/tabs.d.ts.map +1 -0
  91. package/dist/components/ui/tabs.js +14 -0
  92. package/dist/components/ui/tabs.js.map +1 -0
  93. package/dist/components/ui/textarea.d.ts +3 -0
  94. package/dist/components/ui/textarea.d.ts.map +1 -0
  95. package/dist/components/ui/textarea.js +14 -0
  96. package/dist/components/ui/textarea.js.map +1 -0
  97. package/dist/components/ui/time.d.ts +5 -0
  98. package/dist/components/ui/time.d.ts.map +1 -0
  99. package/dist/components/ui/time.js +14 -0
  100. package/dist/components/ui/time.js.map +1 -0
  101. package/dist/components/ui/toolbar.d.ts +20 -0
  102. package/dist/components/ui/toolbar.d.ts.map +1 -0
  103. package/dist/components/ui/toolbar.js +42 -0
  104. package/dist/components/ui/toolbar.js.map +1 -0
  105. package/dist/components/vulnerability-status.d.ts +8 -0
  106. package/dist/components/vulnerability-status.d.ts.map +1 -0
  107. package/dist/components/vulnerability-status.js +49 -0
  108. package/dist/components/vulnerability-status.js.map +1 -0
  109. package/dist/index.d.ts +2 -0
  110. package/dist/index.d.ts.map +1 -0
  111. package/dist/index.js +2 -0
  112. package/dist/index.js.map +1 -0
  113. package/dist/lib/use-merged-refs.d.ts +3 -0
  114. package/dist/lib/use-merged-refs.d.ts.map +1 -0
  115. package/dist/lib/use-merged-refs.js +22 -0
  116. package/dist/lib/use-merged-refs.js.map +1 -0
  117. package/dist/lib/utils.d.ts +4 -0
  118. package/dist/lib/utils.d.ts.map +1 -0
  119. package/dist/lib/utils.js +11 -0
  120. package/dist/lib/utils.js.map +1 -0
  121. package/dist/main.d.ts +2 -0
  122. package/dist/main.d.ts.map +1 -0
  123. package/dist/main.js +9 -0
  124. package/dist/main.js.map +1 -0
  125. package/dist/manifest.d.ts +8 -0
  126. package/dist/manifest.d.ts.map +1 -0
  127. package/dist/manifest.js +21 -0
  128. package/dist/manifest.js.map +1 -0
  129. package/dist/page-hash.d.ts +23 -0
  130. package/dist/page-hash.d.ts.map +1 -0
  131. package/dist/page-hash.js +45 -0
  132. package/dist/page-hash.js.map +1 -0
  133. package/dist/pages/access.d.ts +69 -0
  134. package/dist/pages/access.d.ts.map +1 -0
  135. package/dist/pages/access.js +391 -0
  136. package/dist/pages/access.js.map +1 -0
  137. package/dist/pages/audit.d.ts +63 -0
  138. package/dist/pages/audit.d.ts.map +1 -0
  139. package/dist/pages/audit.js +182 -0
  140. package/dist/pages/audit.js.map +1 -0
  141. package/dist/pages/import.d.ts +41 -0
  142. package/dist/pages/import.d.ts.map +1 -0
  143. package/dist/pages/import.js +274 -0
  144. package/dist/pages/import.js.map +1 -0
  145. package/dist/pages/management.d.ts +47 -0
  146. package/dist/pages/management.d.ts.map +1 -0
  147. package/dist/pages/management.js +141 -0
  148. package/dist/pages/management.js.map +1 -0
  149. package/dist/pages/packages.d.ts +74 -0
  150. package/dist/pages/packages.d.ts.map +1 -0
  151. package/dist/pages/packages.js +505 -0
  152. package/dist/pages/packages.js.map +1 -0
  153. package/dist/pages/projects.d.ts +58 -0
  154. package/dist/pages/projects.d.ts.map +1 -0
  155. package/dist/pages/projects.js +357 -0
  156. package/dist/pages/projects.js.map +1 -0
  157. package/dist/pages/sources/add-package-dialog.d.ts +10 -0
  158. package/dist/pages/sources/add-package-dialog.d.ts.map +1 -0
  159. package/dist/pages/sources/add-package-dialog.js +19 -0
  160. package/dist/pages/sources/add-package-dialog.js.map +1 -0
  161. package/dist/pages/sources/proxy-message.d.ts +2 -0
  162. package/dist/pages/sources/proxy-message.d.ts.map +1 -0
  163. package/dist/pages/sources/proxy-message.js +2 -0
  164. package/dist/pages/sources/proxy-message.js.map +1 -0
  165. package/dist/pages/sources/source-form.d.ts +29 -0
  166. package/dist/pages/sources/source-form.d.ts.map +1 -0
  167. package/dist/pages/sources/source-form.js +463 -0
  168. package/dist/pages/sources/source-form.js.map +1 -0
  169. package/dist/pages/sources/sync-poll.d.ts +20 -0
  170. package/dist/pages/sources/sync-poll.d.ts.map +1 -0
  171. package/dist/pages/sources/sync-poll.js +71 -0
  172. package/dist/pages/sources/sync-poll.js.map +1 -0
  173. package/dist/pages/sources.d.ts +325 -0
  174. package/dist/pages/sources.d.ts.map +1 -0
  175. package/dist/pages/sources.js +1132 -0
  176. package/dist/pages/sources.js.map +1 -0
  177. package/dist/pages/tokens/client-config.d.ts +5 -0
  178. package/dist/pages/tokens/client-config.d.ts.map +1 -0
  179. package/dist/pages/tokens/client-config.js +9 -0
  180. package/dist/pages/tokens/client-config.js.map +1 -0
  181. package/dist/pages/tokens.d.ts +127 -0
  182. package/dist/pages/tokens.d.ts.map +1 -0
  183. package/dist/pages/tokens.js +744 -0
  184. package/dist/pages/tokens.js.map +1 -0
  185. package/dist/pending.d.ts +33 -0
  186. package/dist/pending.d.ts.map +1 -0
  187. package/dist/pending.js +156 -0
  188. package/dist/pending.js.map +1 -0
  189. package/dist/qr.d.ts +14 -0
  190. package/dist/qr.d.ts.map +1 -0
  191. package/dist/qr.js +322 -0
  192. package/dist/qr.js.map +1 -0
  193. package/dist/setup.d.ts +49 -0
  194. package/dist/setup.d.ts.map +1 -0
  195. package/dist/setup.js +390 -0
  196. package/dist/setup.js.map +1 -0
  197. package/dist/test-fixtures/api-types.d.ts +228 -0
  198. package/dist/test-fixtures/api-types.d.ts.map +1 -0
  199. package/dist/test-fixtures/api-types.js +6 -0
  200. package/dist/test-fixtures/api-types.js.map +1 -0
  201. package/package.json +37 -40
  202. package/public/index.html +11 -0
  203. package/README.md +0 -11
  204. package/dist/assets/main-3NLwl1eV.js +0 -111
  205. package/dist/assets/main-CsTEYyDl.css +0 -1
  206. package/dist/config.js +0 -3
  207. package/dist/index.html +0 -22
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../src/pages/tokens.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import type { ApiRequestDescription } from './api.js';
2
+ export type PendingStorage = Pick<Storage, 'getItem' | 'setItem' | 'removeItem'>;
3
+ type RequestFields = Pick<ApiRequestDescription, 'method' | 'path' | 'idempotencyKey' | 'body' | 'headers'>;
4
+ export interface PendingDisplay {
5
+ packageName: string;
6
+ version: string;
7
+ scope: string;
8
+ }
9
+ export type PendingInput = RequestFields & {
10
+ display?: PendingDisplay;
11
+ credential: boolean;
12
+ secretFields: readonly string[];
13
+ };
14
+ export type PendingAction = RequestFields & {
15
+ savedAt: number;
16
+ requiresCredential?: true;
17
+ display?: PendingDisplay;
18
+ };
19
+ type SaveResult = {
20
+ ok: true;
21
+ } | {
22
+ ok: false;
23
+ };
24
+ type LoadResult = {
25
+ ok: true;
26
+ action: PendingAction | null;
27
+ } | {
28
+ ok: false;
29
+ };
30
+ export declare function savePending(storage: PendingStorage, action: PendingInput): SaveResult;
31
+ export declare function loadPending(storage: PendingStorage, now: number): LoadResult;
32
+ export {};
33
+ //# sourceMappingURL=pending.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pending.d.ts","sourceRoot":"","sources":["../src/pending.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAkBtD,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,EAAE,SAAS,GAAG,SAAS,GAAG,YAAY,CAAC,CAAC;AAEjF,KAAK,aAAa,GAAG,IAAI,CACvB,qBAAqB,EACrB,QAAQ,GAAG,MAAM,GAAG,gBAAgB,GAAG,MAAM,GAAG,SAAS,CAC1D,CAAC;AAEF,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,YAAY,GAAG,aAAa,GAAG;IACzC,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,aAAa,GAAG;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB,CAAC,EAAE,IAAI,CAAC;IAC1B,OAAO,CAAC,EAAE,cAAc,CAAC;CAC1B,CAAC;AAEF,KAAK,UAAU,GAAG;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAA;CAAE,CAAC;AAC/C,KAAK,UAAU,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,aAAa,GAAG,IAAI,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAA;CAAE,CAAC;AA6G7E,wBAAgB,WAAW,CAAC,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,YAAY,GAAG,UAAU,CA8BrF;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,EAAE,MAAM,GAAG,UAAU,CAwB5E"}
@@ -0,0 +1,156 @@
1
+ const STORAGE_KEY = 'pb.pending-action.v2';
2
+ const LEGACY_STORAGE_KEY = 'pb.pending-action';
3
+ const REAUTH_WINDOW_MS = 10 * 60 * 1000;
4
+ const STORED_KEYS = new Set([
5
+ 'method',
6
+ 'path',
7
+ 'idempotencyKey',
8
+ 'body',
9
+ 'headers',
10
+ 'requiresCredential',
11
+ 'savedAt',
12
+ 'display',
13
+ ]);
14
+ const CONCURRENCY_HEADERS = ['If-Match', 'If-None-Match'];
15
+ const MAX_HEADER_LENGTH = 4096;
16
+ function isRecord(value) {
17
+ return value !== null && typeof value === 'object' && !Array.isArray(value);
18
+ }
19
+ function validHeaderValue(value) {
20
+ return (typeof value === 'string' &&
21
+ value.length <= MAX_HEADER_LENGTH &&
22
+ ![...value].some((character) => {
23
+ const code = character.charCodeAt(0);
24
+ return code < 32 || (code >= 127 && code <= 159);
25
+ }));
26
+ }
27
+ function selectHeaders(value) {
28
+ const headers = {};
29
+ if (value === undefined)
30
+ return headers;
31
+ if (!isRecord(value))
32
+ return false;
33
+ for (const [name, content] of Object.entries(value)) {
34
+ const canonical = CONCURRENCY_HEADERS.find((header) => header.toLowerCase() === name.toLowerCase());
35
+ if (canonical === undefined)
36
+ continue;
37
+ if (Object.hasOwn(headers, canonical) || !validHeaderValue(content))
38
+ return false;
39
+ headers[canonical] = content;
40
+ }
41
+ return headers;
42
+ }
43
+ function validStoredHeaders(value) {
44
+ return (value === undefined ||
45
+ (isRecord(value) &&
46
+ Object.entries(value).every(([name, content]) => CONCURRENCY_HEADERS.some((header) => header === name) && validHeaderValue(content))));
47
+ }
48
+ function validPath(path) {
49
+ return (typeof path === 'string' &&
50
+ path.startsWith('/_pb/') &&
51
+ !path.includes('//') &&
52
+ !/[\\:?#{}\s]/.test(path) &&
53
+ !path.split('/').some((part) => {
54
+ const decoded = part.replace(/%2e/gi, '.');
55
+ return decoded === '.' || decoded === '..';
56
+ }));
57
+ }
58
+ function validRequest(value) {
59
+ return (typeof value.method === 'string' &&
60
+ /^(GET|HEAD|OPTIONS|POST|PUT|PATCH|DELETE)$/.test(value.method) &&
61
+ validPath(value.path) &&
62
+ (value.idempotencyKey === undefined || typeof value.idempotencyKey === 'string'));
63
+ }
64
+ function validDisplay(value) {
65
+ return (isRecord(value) &&
66
+ Object.keys(value).length === 3 &&
67
+ ['packageName', 'version', 'scope'].every((key) => typeof value[key] === 'string' && value[key].length > 0 && value[key].length <= 256));
68
+ }
69
+ function validStored(value) {
70
+ return (isRecord(value) &&
71
+ Object.keys(value).every((key) => STORED_KEYS.has(key)) &&
72
+ validRequest(value) &&
73
+ (value.display === undefined || validDisplay(value.display)) &&
74
+ validStoredHeaders(value.headers) &&
75
+ (value.requiresCredential === undefined ||
76
+ (value.requiresCredential === true && value.body === undefined)) &&
77
+ typeof value.savedAt === 'number' &&
78
+ Number.isFinite(value.savedAt));
79
+ }
80
+ function redact(body, fields) {
81
+ const copy = JSON.parse(JSON.stringify(body));
82
+ for (const field of fields) {
83
+ const parts = field.split('.');
84
+ let parent = copy;
85
+ for (const part of parts.slice(0, -1)) {
86
+ if (parent === null || typeof parent !== 'object' || !Object.hasOwn(parent, part)) {
87
+ parent = undefined;
88
+ break;
89
+ }
90
+ parent = parent[part];
91
+ }
92
+ const last = parts[parts.length - 1];
93
+ if (parent !== null && typeof parent === 'object' && Object.hasOwn(parent, last)) {
94
+ delete parent[last];
95
+ }
96
+ }
97
+ return copy;
98
+ }
99
+ export function savePending(storage, action) {
100
+ try {
101
+ if (!validRequest(action) ||
102
+ (action.display !== undefined && !validDisplay(action.display)) ||
103
+ typeof action.credential !== 'boolean' ||
104
+ !Array.isArray(action.secretFields) ||
105
+ !action.secretFields.every((field) => typeof field === 'string')) {
106
+ return { ok: false };
107
+ }
108
+ const headers = selectHeaders(action.headers);
109
+ if (headers === false)
110
+ return { ok: false };
111
+ const pending = {
112
+ method: action.method,
113
+ path: action.path,
114
+ ...(action.idempotencyKey === undefined ? {} : { idempotencyKey: action.idempotencyKey }),
115
+ ...(Object.keys(headers).length === 0 ? {} : { headers }),
116
+ ...(action.credential ? { requiresCredential: true } : {}),
117
+ ...(!action.credential && action.body !== undefined
118
+ ? { body: redact(action.body, action.secretFields) }
119
+ : {}),
120
+ ...(action.display === undefined ? {} : { display: { ...action.display } }),
121
+ savedAt: Date.now(),
122
+ };
123
+ storage.setItem(STORAGE_KEY, JSON.stringify(pending));
124
+ return { ok: true };
125
+ }
126
+ catch {
127
+ return { ok: false };
128
+ }
129
+ }
130
+ export function loadPending(storage, now) {
131
+ try {
132
+ storage.removeItem(LEGACY_STORAGE_KEY);
133
+ const raw = storage.getItem(STORAGE_KEY);
134
+ storage.removeItem(STORAGE_KEY);
135
+ if (raw === null)
136
+ return { ok: true, action: null };
137
+ let parsed;
138
+ try {
139
+ parsed = JSON.parse(raw);
140
+ }
141
+ catch {
142
+ return { ok: true, action: null };
143
+ }
144
+ if (!validStored(parsed) ||
145
+ !Number.isFinite(now) ||
146
+ now < parsed.savedAt ||
147
+ now - parsed.savedAt > REAUTH_WINDOW_MS) {
148
+ return { ok: true, action: null };
149
+ }
150
+ return { ok: true, action: parsed };
151
+ }
152
+ catch {
153
+ return { ok: false };
154
+ }
155
+ }
156
+ //# sourceMappingURL=pending.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pending.js","sourceRoot":"","sources":["../src/pending.ts"],"names":[],"mappings":"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"}
package/dist/qr.d.ts ADDED
@@ -0,0 +1,14 @@
1
+ export declare const QR_MAX_VERSION = 14;
2
+ export interface QrMatrix {
3
+ readonly version: number;
4
+ readonly size: number;
5
+ readonly mask: number;
6
+ readonly modules: readonly (readonly boolean[])[];
7
+ }
8
+ export declare function qrCapacityBytes(version: number): number;
9
+ export declare const QR_MAX_BYTES: number;
10
+ /** Byte mode, error correction level M, UTF-8. Throws RangeError when the text exceeds QR_MAX_BYTES. */
11
+ export declare function encodeQr(text: string, options?: {
12
+ readonly mask?: number;
13
+ }): QrMatrix;
14
+ //# sourceMappingURL=qr.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"qr.d.ts","sourceRoot":"","sources":["../src/qr.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,KAAK,CAAC;AA0BjC,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,SAAS,OAAO,EAAE,CAAC,EAAE,CAAC;CACnD;AAqBD,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAKvD;AAED,eAAO,MAAM,YAAY,QAAkC,CAAC;AAoQ5D,wGAAwG;AACxG,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE;IAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,QAAQ,CAYzF"}
package/dist/qr.js ADDED
@@ -0,0 +1,322 @@
1
+ export const QR_MAX_VERSION = 14;
2
+ const EC_CODEWORDS_PER_BLOCK = [10, 16, 26, 18, 24, 16, 18, 22, 22, 26, 30, 22, 22, 24];
3
+ const EC_BLOCKS = [1, 1, 1, 2, 2, 4, 4, 4, 5, 5, 5, 8, 9, 9];
4
+ const ALIGNMENT_POSITIONS = [
5
+ [],
6
+ [6, 18],
7
+ [6, 22],
8
+ [6, 26],
9
+ [6, 30],
10
+ [6, 34],
11
+ [6, 22, 38],
12
+ [6, 24, 42],
13
+ [6, 26, 46],
14
+ [6, 28, 50],
15
+ [6, 30, 54],
16
+ [6, 32, 58],
17
+ [6, 34, 62],
18
+ [6, 26, 46, 66],
19
+ ];
20
+ const PAD_BYTES = [0xec, 0x11];
21
+ const FORMAT_MASK = 0x5412;
22
+ const FORMAT_GENERATOR = 0x537;
23
+ const VERSION_GENERATOR = 0x1f25;
24
+ const MASK_COUNT = 8;
25
+ function rawModules(version) {
26
+ let result = (16 * version + 128) * version + 64;
27
+ if (version >= 2) {
28
+ const alignments = Math.floor(version / 7) + 2;
29
+ result -= (25 * alignments - 10) * alignments - 55;
30
+ if (version >= 7)
31
+ result -= 36;
32
+ }
33
+ return result;
34
+ }
35
+ function dataCodewords(version) {
36
+ const index = version - 1;
37
+ return Math.floor(rawModules(version) / 8) - EC_CODEWORDS_PER_BLOCK[index] * EC_BLOCKS[index];
38
+ }
39
+ function countBits(version) {
40
+ return version <= 9 ? 8 : 16;
41
+ }
42
+ export function qrCapacityBytes(version) {
43
+ if (!Number.isInteger(version) || version < 1 || version > QR_MAX_VERSION) {
44
+ throw new RangeError('unsupported QR version');
45
+ }
46
+ return Math.floor((dataCodewords(version) * 8 - 4 - countBits(version)) / 8);
47
+ }
48
+ export const QR_MAX_BYTES = qrCapacityBytes(QR_MAX_VERSION);
49
+ const EXP = new Uint8Array(512);
50
+ const LOG = new Uint8Array(256);
51
+ {
52
+ let value = 1;
53
+ for (let i = 0; i < 255; i += 1) {
54
+ EXP[i] = value;
55
+ LOG[value] = i;
56
+ value <<= 1;
57
+ if (value & 0x100)
58
+ value ^= 0x11d;
59
+ }
60
+ for (let i = 255; i < 512; i += 1)
61
+ EXP[i] = EXP[i - 255];
62
+ }
63
+ function gfMultiply(a, b) {
64
+ return a === 0 || b === 0 ? 0 : EXP[LOG[a] + LOG[b]];
65
+ }
66
+ function reedSolomon(data, degree) {
67
+ let generator = [1];
68
+ for (let i = 0; i < degree; i += 1) {
69
+ const next = new Array(generator.length + 1).fill(0);
70
+ for (let j = 0; j < generator.length; j += 1) {
71
+ next[j] = next[j] ^ gfMultiply(generator[j], 1);
72
+ next[j + 1] = next[j + 1] ^ gfMultiply(generator[j], EXP[i]);
73
+ }
74
+ generator = next;
75
+ }
76
+ const remainder = new Array(degree).fill(0);
77
+ for (const byte of data) {
78
+ const factor = byte ^ remainder.shift();
79
+ remainder.push(0);
80
+ for (let i = 0; i < degree; i += 1) {
81
+ remainder[i] = remainder[i] ^ gfMultiply(generator[i + 1], factor);
82
+ }
83
+ }
84
+ return remainder;
85
+ }
86
+ function codewordsFor(version, bytes) {
87
+ const bits = [];
88
+ const push = (value, length) => {
89
+ for (let i = length - 1; i >= 0; i -= 1)
90
+ bits.push((value >>> i) & 1);
91
+ };
92
+ push(0b0100, 4);
93
+ push(bytes.length, countBits(version));
94
+ for (const byte of bytes)
95
+ push(byte, 8);
96
+ const capacityBits = dataCodewords(version) * 8;
97
+ push(0, Math.min(4, capacityBits - bits.length));
98
+ push(0, (8 - (bits.length % 8)) % 8);
99
+ const data = [];
100
+ for (let i = 0; i < bits.length; i += 8) {
101
+ data.push(parseInt(bits.slice(i, i + 8).join(''), 2));
102
+ }
103
+ for (let pad = 0; data.length < dataCodewords(version); pad += 1) {
104
+ data.push(PAD_BYTES[pad % 2]);
105
+ }
106
+ const index = version - 1;
107
+ const blocks = EC_BLOCKS[index];
108
+ const ecLength = EC_CODEWORDS_PER_BLOCK[index];
109
+ const raw = Math.floor(rawModules(version) / 8);
110
+ const shortBlocks = blocks - (raw % blocks);
111
+ const shortLength = Math.floor(raw / blocks) - ecLength;
112
+ const dataBlocks = [];
113
+ const ecBlocks = [];
114
+ let offset = 0;
115
+ for (let block = 0; block < blocks; block += 1) {
116
+ const length = shortLength + (block < shortBlocks ? 0 : 1);
117
+ const slice = data.slice(offset, offset + length);
118
+ offset += length;
119
+ dataBlocks.push(slice);
120
+ ecBlocks.push(reedSolomon(slice, ecLength));
121
+ }
122
+ const result = [];
123
+ for (let i = 0; i < shortLength + 1; i += 1) {
124
+ for (const block of dataBlocks)
125
+ if (i < block.length)
126
+ result.push(block[i]);
127
+ }
128
+ for (let i = 0; i < ecLength; i += 1) {
129
+ for (const block of ecBlocks)
130
+ result.push(block[i]);
131
+ }
132
+ return result;
133
+ }
134
+ function bchRemainder(value, generator, degree) {
135
+ let remainder = value;
136
+ for (let i = 0; i < degree; i += 1) {
137
+ remainder = (remainder << 1) ^ ((remainder >>> (degree - 1)) * generator);
138
+ }
139
+ return remainder;
140
+ }
141
+ function maskApplies(mask, x, y) {
142
+ switch (mask) {
143
+ case 0:
144
+ return (x + y) % 2 === 0;
145
+ case 1:
146
+ return y % 2 === 0;
147
+ case 2:
148
+ return x % 3 === 0;
149
+ case 3:
150
+ return (x + y) % 3 === 0;
151
+ case 4:
152
+ return (Math.floor(x / 3) + Math.floor(y / 2)) % 2 === 0;
153
+ case 5:
154
+ return ((x * y) % 2) + ((x * y) % 3) === 0;
155
+ case 6:
156
+ return (((x * y) % 2) + ((x * y) % 3)) % 2 === 0;
157
+ default:
158
+ return (((x + y) % 2) + ((x * y) % 3)) % 2 === 0;
159
+ }
160
+ }
161
+ function runPenalty(line) {
162
+ let penalty = 0;
163
+ let run = 1;
164
+ for (let i = 1; i <= line.length; i += 1) {
165
+ if (i < line.length && line[i] === line[i - 1]) {
166
+ run += 1;
167
+ continue;
168
+ }
169
+ if (run >= 5)
170
+ penalty += 3 + (run - 5);
171
+ run = 1;
172
+ }
173
+ const padded = `0000${line.map((dark) => (dark ? '1' : '0')).join('')}0000`;
174
+ for (let i = 0; i + 11 <= padded.length; i += 1) {
175
+ const window = padded.slice(i, i + 11);
176
+ if (window === '10111010000' || window === '00001011101')
177
+ penalty += 40;
178
+ }
179
+ return penalty;
180
+ }
181
+ function penaltyOf(modules) {
182
+ const size = modules.length;
183
+ let penalty = 0;
184
+ let dark = 0;
185
+ for (let y = 0; y < size; y += 1) {
186
+ const row = modules[y];
187
+ penalty += runPenalty(row);
188
+ penalty += runPenalty(modules.map((line) => line[y]));
189
+ for (let x = 0; x < size; x += 1) {
190
+ if (row[x])
191
+ dark += 1;
192
+ if (x + 1 < size &&
193
+ y + 1 < size &&
194
+ row[x] === row[x + 1] &&
195
+ row[x] === modules[y + 1][x] &&
196
+ row[x] === modules[y + 1][x + 1]) {
197
+ penalty += 3;
198
+ }
199
+ }
200
+ }
201
+ const total = size * size;
202
+ penalty += (Math.ceil(Math.abs(dark * 20 - total * 10) / total) - 1) * 10;
203
+ return penalty;
204
+ }
205
+ function buildMatrix(version, codewords, forcedMask) {
206
+ const size = version * 4 + 17;
207
+ const modules = Array.from({ length: size }, () => new Array(size).fill(false));
208
+ const reserved = Array.from({ length: size }, () => new Array(size).fill(false));
209
+ const set = (x, y, dark) => {
210
+ modules[y][x] = dark;
211
+ reserved[y][x] = true;
212
+ };
213
+ for (let i = 0; i < size; i += 1) {
214
+ set(6, i, i % 2 === 0);
215
+ set(i, 6, i % 2 === 0);
216
+ }
217
+ const finder = (cx, cy) => {
218
+ for (let dy = -4; dy <= 4; dy += 1) {
219
+ for (let dx = -4; dx <= 4; dx += 1) {
220
+ const distance = Math.max(Math.abs(dx), Math.abs(dy));
221
+ const x = cx + dx;
222
+ const y = cy + dy;
223
+ if (x >= 0 && x < size && y >= 0 && y < size)
224
+ set(x, y, distance !== 2 && distance !== 4);
225
+ }
226
+ }
227
+ };
228
+ finder(3, 3);
229
+ finder(size - 4, 3);
230
+ finder(3, size - 4);
231
+ const positions = ALIGNMENT_POSITIONS[version - 1];
232
+ const last = positions.length - 1;
233
+ positions.forEach((cy, i) => {
234
+ positions.forEach((cx, j) => {
235
+ if ((i === 0 && j === 0) || (i === 0 && j === last) || (i === last && j === 0))
236
+ return;
237
+ for (let dy = -2; dy <= 2; dy += 1) {
238
+ for (let dx = -2; dx <= 2; dx += 1) {
239
+ set(cx + dx, cy + dy, Math.max(Math.abs(dx), Math.abs(dy)) !== 1);
240
+ }
241
+ }
242
+ });
243
+ });
244
+ const drawFormat = (mask) => {
245
+ const data = mask;
246
+ const bits = ((data << 10) | bchRemainder(data, FORMAT_GENERATOR, 10)) ^ FORMAT_MASK;
247
+ const bit = (i) => ((bits >>> i) & 1) !== 0;
248
+ for (let i = 0; i <= 5; i += 1)
249
+ set(8, i, bit(i));
250
+ set(8, 7, bit(6));
251
+ set(8, 8, bit(7));
252
+ set(7, 8, bit(8));
253
+ for (let i = 9; i < 15; i += 1)
254
+ set(14 - i, 8, bit(i));
255
+ for (let i = 0; i < 8; i += 1)
256
+ set(size - 1 - i, 8, bit(i));
257
+ for (let i = 8; i < 15; i += 1)
258
+ set(8, size - 15 + i, bit(i));
259
+ set(8, size - 8, true);
260
+ };
261
+ drawFormat(0);
262
+ if (version >= 7) {
263
+ const bits = (version << 12) | bchRemainder(version, VERSION_GENERATOR, 12);
264
+ for (let i = 0; i < 18; i += 1) {
265
+ const dark = ((bits >>> i) & 1) !== 0;
266
+ const a = size - 11 + (i % 3);
267
+ const b = Math.floor(i / 3);
268
+ set(a, b, dark);
269
+ set(b, a, dark);
270
+ }
271
+ }
272
+ let index = 0;
273
+ for (let right = size - 1; right >= 1; right -= 2) {
274
+ if (right === 6)
275
+ right = 5;
276
+ for (let vertical = 0; vertical < size; vertical += 1) {
277
+ for (let j = 0; j < 2; j += 1) {
278
+ const x = right - j;
279
+ const upward = ((right + 1) & 2) === 0;
280
+ const y = upward ? size - 1 - vertical : vertical;
281
+ if (!reserved[y][x] && index < codewords.length * 8) {
282
+ modules[y][x] = ((codewords[index >>> 3] >>> (7 - (index & 7))) & 1) !== 0;
283
+ index += 1;
284
+ }
285
+ }
286
+ }
287
+ }
288
+ const masked = (mask) => modules.map((row, y) => row.map((dark, x) => (!reserved[y][x] && maskApplies(mask, x, y) ? !dark : dark)));
289
+ let chosen = forcedMask ?? 0;
290
+ if (forcedMask === undefined) {
291
+ let best = Infinity;
292
+ for (let mask = 0; mask < MASK_COUNT; mask += 1) {
293
+ drawFormat(mask);
294
+ const penalty = penaltyOf(masked(mask));
295
+ if (penalty < best) {
296
+ best = penalty;
297
+ chosen = mask;
298
+ }
299
+ }
300
+ }
301
+ drawFormat(chosen);
302
+ return { version, size, mask: chosen, modules: masked(chosen) };
303
+ }
304
+ /** Byte mode, error correction level M, UTF-8. Throws RangeError when the text exceeds QR_MAX_BYTES. */
305
+ export function encodeQr(text, options = {}) {
306
+ const { mask } = options;
307
+ if (mask !== undefined && (!Number.isInteger(mask) || mask < 0 || mask >= MASK_COUNT)) {
308
+ throw new RangeError('unsupported QR mask');
309
+ }
310
+ if (typeof text !== 'string' || text.length === 0)
311
+ throw new TypeError('QR text is empty');
312
+ if (text.length > QR_MAX_BYTES)
313
+ throw new RangeError('QR text is too long');
314
+ const bytes = new TextEncoder().encode(text);
315
+ if (bytes.length > QR_MAX_BYTES)
316
+ throw new RangeError('QR text is too long');
317
+ let version = 1;
318
+ while (qrCapacityBytes(version) < bytes.length)
319
+ version += 1;
320
+ return buildMatrix(version, codewordsFor(version, bytes), mask);
321
+ }
322
+ //# sourceMappingURL=qr.js.map