@package-broker/ui 0.19.8 → 2.0.0-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +661 -0
- package/dist/.tsbuildinfo +1 -0
- package/dist/api-types.d.ts +9987 -0
- package/dist/api-types.d.ts.map +1 -0
- package/dist/api-types.js +6 -0
- package/dist/api-types.js.map +1 -0
- package/dist/api.d.ts +88 -0
- package/dist/api.d.ts.map +1 -0
- package/dist/api.js +185 -0
- package/dist/api.js.map +1 -0
- package/dist/app.d.ts +76 -0
- package/dist/app.d.ts.map +1 -0
- package/dist/app.js +239 -0
- package/dist/app.js.map +1 -0
- package/dist/assets/app.b2abf3c46f6e.js +15 -0
- package/dist/assets/app.e8cea8b32d3a.css +2 -0
- package/dist/assets/index.html +13 -0
- package/dist/assets/manifest.json +26 -0
- package/dist/assets/setup.98343039898f.js +1 -0
- package/dist/assets/setup.html +14 -0
- package/dist/auth.d.ts +170 -0
- package/dist/auth.d.ts.map +1 -0
- package/dist/auth.js +551 -0
- package/dist/auth.js.map +1 -0
- package/dist/components/ui/alert.d.ts +10 -0
- package/dist/components/ui/alert.d.ts.map +1 -0
- package/dist/components/ui/alert.js +22 -0
- package/dist/components/ui/alert.js.map +1 -0
- package/dist/components/ui/badge.d.ts +8 -0
- package/dist/components/ui/badge.d.ts.map +1 -0
- package/dist/components/ui/badge.js +18 -0
- package/dist/components/ui/badge.js.map +1 -0
- package/dist/components/ui/button.d.ts +13 -0
- package/dist/components/ui/button.d.ts.map +1 -0
- package/dist/components/ui/button.js +27 -0
- package/dist/components/ui/button.js.map +1 -0
- package/dist/components/ui/card.d.ts +10 -0
- package/dist/components/ui/card.d.ts.map +1 -0
- package/dist/components/ui/card.js +21 -0
- package/dist/components/ui/card.js.map +1 -0
- package/dist/components/ui/confirm-action.d.ts +12 -0
- package/dist/components/ui/confirm-action.d.ts.map +1 -0
- package/dist/components/ui/confirm-action.js +19 -0
- package/dist/components/ui/confirm-action.js.map +1 -0
- package/dist/components/ui/dialog.d.ts +17 -0
- package/dist/components/ui/dialog.d.ts.map +1 -0
- package/dist/components/ui/dialog.js +180 -0
- package/dist/components/ui/dialog.js.map +1 -0
- package/dist/components/ui/dropdown-menu.d.ts +8 -0
- package/dist/components/ui/dropdown-menu.d.ts.map +1 -0
- package/dist/components/ui/dropdown-menu.js +71 -0
- package/dist/components/ui/dropdown-menu.js.map +1 -0
- package/dist/components/ui/id-text.d.ts +11 -0
- package/dist/components/ui/id-text.d.ts.map +1 -0
- package/dist/components/ui/id-text.js +23 -0
- package/dist/components/ui/id-text.js.map +1 -0
- package/dist/components/ui/input.d.ts +5 -0
- package/dist/components/ui/input.d.ts.map +1 -0
- package/dist/components/ui/input.js +6 -0
- package/dist/components/ui/input.js.map +1 -0
- package/dist/components/ui/label.d.ts +4 -0
- package/dist/components/ui/label.d.ts.map +1 -0
- package/dist/components/ui/label.js +7 -0
- package/dist/components/ui/label.js.map +1 -0
- package/dist/components/ui/list-state.d.ts +7 -0
- package/dist/components/ui/list-state.d.ts.map +1 -0
- package/dist/components/ui/list-state.js +5 -0
- package/dist/components/ui/list-state.js.map +1 -0
- package/dist/components/ui/overlay-host.d.ts +6 -0
- package/dist/components/ui/overlay-host.d.ts.map +1 -0
- package/dist/components/ui/overlay-host.js +36 -0
- package/dist/components/ui/overlay-host.js.map +1 -0
- package/dist/components/ui/row-actions.d.ts +17 -0
- package/dist/components/ui/row-actions.d.ts.map +1 -0
- package/dist/components/ui/row-actions.js +21 -0
- package/dist/components/ui/row-actions.js.map +1 -0
- package/dist/components/ui/select.d.ts +3 -0
- package/dist/components/ui/select.d.ts.map +1 -0
- package/dist/components/ui/select.js +6 -0
- package/dist/components/ui/select.js.map +1 -0
- package/dist/components/ui/status-badge.d.ts +28 -0
- package/dist/components/ui/status-badge.d.ts.map +1 -0
- package/dist/components/ui/status-badge.js +50 -0
- package/dist/components/ui/status-badge.js.map +1 -0
- package/dist/components/ui/table.d.ts +27 -0
- package/dist/components/ui/table.d.ts.map +1 -0
- package/dist/components/ui/table.js +81 -0
- package/dist/components/ui/table.js.map +1 -0
- package/dist/components/ui/tabs.d.ts +7 -0
- package/dist/components/ui/tabs.d.ts.map +1 -0
- package/dist/components/ui/tabs.js +14 -0
- package/dist/components/ui/tabs.js.map +1 -0
- package/dist/components/ui/textarea.d.ts +3 -0
- package/dist/components/ui/textarea.d.ts.map +1 -0
- package/dist/components/ui/textarea.js +14 -0
- package/dist/components/ui/textarea.js.map +1 -0
- package/dist/components/ui/time.d.ts +5 -0
- package/dist/components/ui/time.d.ts.map +1 -0
- package/dist/components/ui/time.js +14 -0
- package/dist/components/ui/time.js.map +1 -0
- package/dist/components/ui/toolbar.d.ts +20 -0
- package/dist/components/ui/toolbar.d.ts.map +1 -0
- package/dist/components/ui/toolbar.js +42 -0
- package/dist/components/ui/toolbar.js.map +1 -0
- package/dist/components/vulnerability-status.d.ts +8 -0
- package/dist/components/vulnerability-status.d.ts.map +1 -0
- package/dist/components/vulnerability-status.js +49 -0
- package/dist/components/vulnerability-status.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/use-merged-refs.d.ts +3 -0
- package/dist/lib/use-merged-refs.d.ts.map +1 -0
- package/dist/lib/use-merged-refs.js +22 -0
- package/dist/lib/use-merged-refs.js.map +1 -0
- package/dist/lib/utils.d.ts +4 -0
- package/dist/lib/utils.d.ts.map +1 -0
- package/dist/lib/utils.js +11 -0
- package/dist/lib/utils.js.map +1 -0
- package/dist/main.d.ts +2 -0
- package/dist/main.d.ts.map +1 -0
- package/dist/main.js +9 -0
- package/dist/main.js.map +1 -0
- package/dist/manifest.d.ts +8 -0
- package/dist/manifest.d.ts.map +1 -0
- package/dist/manifest.js +21 -0
- package/dist/manifest.js.map +1 -0
- package/dist/page-hash.d.ts +23 -0
- package/dist/page-hash.d.ts.map +1 -0
- package/dist/page-hash.js +45 -0
- package/dist/page-hash.js.map +1 -0
- package/dist/pages/access.d.ts +69 -0
- package/dist/pages/access.d.ts.map +1 -0
- package/dist/pages/access.js +391 -0
- package/dist/pages/access.js.map +1 -0
- package/dist/pages/audit.d.ts +63 -0
- package/dist/pages/audit.d.ts.map +1 -0
- package/dist/pages/audit.js +182 -0
- package/dist/pages/audit.js.map +1 -0
- package/dist/pages/import.d.ts +41 -0
- package/dist/pages/import.d.ts.map +1 -0
- package/dist/pages/import.js +274 -0
- package/dist/pages/import.js.map +1 -0
- package/dist/pages/management.d.ts +47 -0
- package/dist/pages/management.d.ts.map +1 -0
- package/dist/pages/management.js +141 -0
- package/dist/pages/management.js.map +1 -0
- package/dist/pages/packages.d.ts +74 -0
- package/dist/pages/packages.d.ts.map +1 -0
- package/dist/pages/packages.js +505 -0
- package/dist/pages/packages.js.map +1 -0
- package/dist/pages/projects.d.ts +58 -0
- package/dist/pages/projects.d.ts.map +1 -0
- package/dist/pages/projects.js +357 -0
- package/dist/pages/projects.js.map +1 -0
- package/dist/pages/sources/add-package-dialog.d.ts +10 -0
- package/dist/pages/sources/add-package-dialog.d.ts.map +1 -0
- package/dist/pages/sources/add-package-dialog.js +19 -0
- package/dist/pages/sources/add-package-dialog.js.map +1 -0
- package/dist/pages/sources/proxy-message.d.ts +2 -0
- package/dist/pages/sources/proxy-message.d.ts.map +1 -0
- package/dist/pages/sources/proxy-message.js +2 -0
- package/dist/pages/sources/proxy-message.js.map +1 -0
- package/dist/pages/sources/source-form.d.ts +29 -0
- package/dist/pages/sources/source-form.d.ts.map +1 -0
- package/dist/pages/sources/source-form.js +463 -0
- package/dist/pages/sources/source-form.js.map +1 -0
- package/dist/pages/sources/sync-poll.d.ts +20 -0
- package/dist/pages/sources/sync-poll.d.ts.map +1 -0
- package/dist/pages/sources/sync-poll.js +71 -0
- package/dist/pages/sources/sync-poll.js.map +1 -0
- package/dist/pages/sources.d.ts +325 -0
- package/dist/pages/sources.d.ts.map +1 -0
- package/dist/pages/sources.js +1137 -0
- package/dist/pages/sources.js.map +1 -0
- package/dist/pages/tokens/client-config.d.ts +5 -0
- package/dist/pages/tokens/client-config.d.ts.map +1 -0
- package/dist/pages/tokens/client-config.js +9 -0
- package/dist/pages/tokens/client-config.js.map +1 -0
- package/dist/pages/tokens.d.ts +127 -0
- package/dist/pages/tokens.d.ts.map +1 -0
- package/dist/pages/tokens.js +744 -0
- package/dist/pages/tokens.js.map +1 -0
- package/dist/pending.d.ts +33 -0
- package/dist/pending.d.ts.map +1 -0
- package/dist/pending.js +156 -0
- package/dist/pending.js.map +1 -0
- package/dist/qr.d.ts +14 -0
- package/dist/qr.d.ts.map +1 -0
- package/dist/qr.js +322 -0
- package/dist/qr.js.map +1 -0
- package/dist/setup.d.ts +49 -0
- package/dist/setup.d.ts.map +1 -0
- package/dist/setup.js +390 -0
- package/dist/setup.js.map +1 -0
- package/dist/test-fixtures/api-types.d.ts +228 -0
- package/dist/test-fixtures/api-types.d.ts.map +1 -0
- package/dist/test-fixtures/api-types.js +6 -0
- package/dist/test-fixtures/api-types.js.map +1 -0
- package/package.json +37 -40
- package/public/index.html +11 -0
- package/README.md +0 -11
- package/dist/assets/main-3NLwl1eV.js +0 -111
- package/dist/assets/main-CsTEYyDl.css +0 -1
- package/dist/config.js +0 -3
- 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"}
|
package/dist/pending.js
ADDED
|
@@ -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
|
package/dist/qr.d.ts.map
ADDED
|
@@ -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
|