@memberjunction/global 6.2.0-edge.4 → 6.2.0-edge.6

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 (75) hide show
  1. package/dist/ClassFactory.d.ts +16 -3
  2. package/dist/ClassFactory.d.ts.map +1 -1
  3. package/dist/ClassFactory.js +112 -48
  4. package/dist/ClassFactory.js.map +1 -1
  5. package/dist/DeepDiff.d.ts +2 -0
  6. package/dist/DeepDiff.d.ts.map +1 -1
  7. package/dist/DeepDiff.js +40 -38
  8. package/dist/DeepDiff.js.map +1 -1
  9. package/dist/KeyedSerialTaskQueue.d.ts +18 -1
  10. package/dist/KeyedSerialTaskQueue.d.ts.map +1 -1
  11. package/dist/KeyedSerialTaskQueue.js +24 -3
  12. package/dist/KeyedSerialTaskQueue.js.map +1 -1
  13. package/dist/ObjectCache.d.ts +1 -0
  14. package/dist/ObjectCache.d.ts.map +1 -1
  15. package/dist/ObjectCache.js +14 -22
  16. package/dist/ObjectCache.js.map +1 -1
  17. package/dist/SQLExpressionValidator.d.ts +70 -41
  18. package/dist/SQLExpressionValidator.d.ts.map +1 -1
  19. package/dist/SQLExpressionValidator.js +183 -134
  20. package/dist/SQLExpressionValidator.js.map +1 -1
  21. package/dist/SQLScreeningScanner.d.ts +117 -0
  22. package/dist/SQLScreeningScanner.d.ts.map +1 -0
  23. package/dist/SQLScreeningScanner.js +475 -0
  24. package/dist/SQLScreeningScanner.js.map +1 -0
  25. package/dist/__tests__/FieldSecurityEgressCompliance.test.d.ts +2 -0
  26. package/dist/__tests__/FieldSecurityEgressCompliance.test.d.ts.map +1 -0
  27. package/dist/__tests__/FieldSecurityEgressCompliance.test.js +228 -0
  28. package/dist/__tests__/FieldSecurityEgressCompliance.test.js.map +1 -0
  29. package/dist/__tests__/KeyedSerialTaskQueue.test.js +92 -0
  30. package/dist/__tests__/KeyedSerialTaskQueue.test.js.map +1 -1
  31. package/dist/__tests__/ProofOfPossession.test.d.ts +2 -0
  32. package/dist/__tests__/ProofOfPossession.test.d.ts.map +1 -0
  33. package/dist/__tests__/ProofOfPossession.test.js +123 -0
  34. package/dist/__tests__/ProofOfPossession.test.js.map +1 -0
  35. package/dist/__tests__/SQLExpressionValidator.dialect.test.d.ts +2 -0
  36. package/dist/__tests__/SQLExpressionValidator.dialect.test.d.ts.map +1 -0
  37. package/dist/__tests__/SQLExpressionValidator.dialect.test.js +183 -0
  38. package/dist/__tests__/SQLExpressionValidator.dialect.test.js.map +1 -0
  39. package/dist/__tests__/SQLExpressionValidator.security.test.js +176 -2
  40. package/dist/__tests__/SQLExpressionValidator.security.test.js.map +1 -1
  41. package/dist/__tests__/SQLScreeningScanner.test.d.ts +2 -0
  42. package/dist/__tests__/SQLScreeningScanner.test.d.ts.map +1 -0
  43. package/dist/__tests__/SQLScreeningScanner.test.js +172 -0
  44. package/dist/__tests__/SQLScreeningScanner.test.js.map +1 -0
  45. package/dist/__tests__/SQLScreeningScanner.tokens.test.d.ts +2 -0
  46. package/dist/__tests__/SQLScreeningScanner.tokens.test.d.ts.map +1 -0
  47. package/dist/__tests__/SQLScreeningScanner.tokens.test.js +82 -0
  48. package/dist/__tests__/SQLScreeningScanner.tokens.test.js.map +1 -0
  49. package/dist/__tests__/UUIDCompliance.test.js +4 -4
  50. package/dist/__tests__/UUIDCompliance.test.js.map +1 -1
  51. package/dist/__tests__/UserScopedCacheKey.test.d.ts +2 -0
  52. package/dist/__tests__/UserScopedCacheKey.test.d.ts.map +1 -0
  53. package/dist/__tests__/UserScopedCacheKey.test.js +25 -0
  54. package/dist/__tests__/UserScopedCacheKey.test.js.map +1 -0
  55. package/dist/__tests__/util.valuesEqual.test.d.ts +2 -0
  56. package/dist/__tests__/util.valuesEqual.test.d.ts.map +1 -0
  57. package/dist/__tests__/util.valuesEqual.test.js +37 -0
  58. package/dist/__tests__/util.valuesEqual.test.js.map +1 -0
  59. package/dist/index.d.ts +3 -0
  60. package/dist/index.d.ts.map +1 -1
  61. package/dist/index.js +3 -0
  62. package/dist/index.js.map +1 -1
  63. package/dist/util/ProofOfPossession.d.ts +68 -0
  64. package/dist/util/ProofOfPossession.d.ts.map +1 -0
  65. package/dist/util/ProofOfPossession.js +163 -0
  66. package/dist/util/ProofOfPossession.js.map +1 -0
  67. package/dist/util/UserScopedCacheKey.d.ts +42 -0
  68. package/dist/util/UserScopedCacheKey.d.ts.map +1 -0
  69. package/dist/util/UserScopedCacheKey.js +49 -0
  70. package/dist/util/UserScopedCacheKey.js.map +1 -0
  71. package/dist/util.d.ts +25 -0
  72. package/dist/util.d.ts.map +1 -1
  73. package/dist/util.js +38 -0
  74. package/dist/util.js.map +1 -1
  75. package/package.json +1 -1
@@ -0,0 +1,172 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import { ScanSQLForScreening } from '../SQLScreeningScanner.js';
3
+ /** The text of each span the scan found, with its kind. */
4
+ function spansOf(sql, dialect) {
5
+ return ScanSQLForScreening(sql, dialect).Spans.map(s => [s.Kind, sql.slice(s.Start, s.End)]);
6
+ }
7
+ describe('ScanSQLForScreening', () => {
8
+ describe('string literals (both dialects)', () => {
9
+ it.each(['sqlserver', 'postgresql'])('reads doubled quotes as escaped quotes (%s)', dialect => {
10
+ expect(spansOf("Name = 'O''Brien' AND 1 = 1", dialect)).toEqual([['string', "'O''Brien'"]]);
11
+ });
12
+ it.each(['sqlserver', 'postgresql'])('treats a backslash as an ordinary character (%s)', dialect => {
13
+ const scan = ScanSQLForScreening("x = 'a\\' ; SELECT 1", dialect);
14
+ expect(scan.Classified).toBe(true);
15
+ expect(scan.Code).toBe('x = ; SELECT 1');
16
+ });
17
+ it.each(['sqlserver', 'postgresql'])('includes the N prefix in the literal (%s)', dialect => {
18
+ expect(spansOf("Name = N'x'", dialect)).toEqual([['string', "N'x'"]]);
19
+ });
20
+ });
21
+ describe('quoted identifiers', () => {
22
+ it('reads a SQL Server bracket identifier, with ]] as an escaped bracket, so a quote inside opens no literal', () => {
23
+ const sql = "[a']]b'] = 1 ; SELECT 1";
24
+ expect(spansOf(sql, 'sqlserver')).toEqual([['identifier', "[a']]b']"]]);
25
+ expect(ScanSQLForScreening(sql, 'sqlserver').Code).toBe(' = 1 ; SELECT 1');
26
+ });
27
+ it('treats a bracket as code on PostgreSQL, where a quote inside it opens a literal', () => {
28
+ expect(spansOf("x[1] = 'a'", 'postgresql')).toEqual([['string', "'a'"]]);
29
+ expect(spansOf("[a'] = 1 ; SELECT 1 ; SELECT [b']", 'postgresql')).toEqual([
30
+ ['string', "'] = 1 ; SELECT 1 ; SELECT [b'"],
31
+ ]);
32
+ });
33
+ it.each(['sqlserver', 'postgresql'])('reads a double-quoted identifier with "" escapes (%s)', dialect => {
34
+ expect(spansOf('"a""b\'c" = 1', dialect)).toEqual([['identifier', '"a""b\'c"']]);
35
+ });
36
+ it('writes quoted identifiers as bare names in CodeWithIdentifiers', () => {
37
+ const scan = ScanSQLForScreening('SELECT * FROM [sys].[sql_logins] WHERE [a]]b] = 1', 'sqlserver');
38
+ expect(scan.Code).toBe('SELECT * FROM . WHERE = 1');
39
+ expect(scan.CodeWithIdentifiers).toBe('SELECT * FROM sys . sql_logins WHERE a]b = 1');
40
+ });
41
+ });
42
+ describe('PostgreSQL strings', () => {
43
+ it('reads a backslash-escaped quote inside an E string', () => {
44
+ const sql = "Name = E'\\'' ; SELECT 1";
45
+ expect(spansOf(sql, 'postgresql')).toEqual([['string', "E'\\''"]]);
46
+ expect(ScanSQLForScreening(sql, 'postgresql').Code).toBe('Name = ; SELECT 1');
47
+ });
48
+ it('reads E as an ordinary word on SQL Server', () => {
49
+ expect(spansOf("Name = E'\\'' ; SELECT 1 ; '", 'sqlserver')).toEqual([['string', "'\\'' ; SELECT 1 ; '"]]);
50
+ });
51
+ it('opens an E string only at the start of a token', () => {
52
+ // `x1e` and `name` are identifiers, so the quote after them opens a plain literal.
53
+ expect(spansOf("x1e'\\'", 'postgresql')).toEqual([['string', "'\\'"]]);
54
+ expect(spansOf("name'\\' ; SELECT 1", 'postgresql')).toEqual([['string', "'\\'"]]);
55
+ // Operator characters do not extend a word, so `@@E'…'` is an operator and an E string.
56
+ expect(spansOf("'a' @@E'\\'' ; SELECT 1", 'postgresql')).toEqual([
57
+ ['string', "'a'"],
58
+ ['string', "E'\\''"],
59
+ ]);
60
+ // An exponent needs digits, so in `1e'…'` the `e` opens an E string.
61
+ expect(spansOf("1e'\\''", 'postgresql')).toEqual([['string', "e'\\''"]]);
62
+ });
63
+ it('reads dollar-quoted strings, with or without a tag', () => {
64
+ expect(spansOf("x = $$it's$$ AND y = $fn$a$$b$fn$", 'postgresql')).toEqual([
65
+ ['string', "$$it's$$"],
66
+ ['string', '$fn$a$$b$fn$'],
67
+ ]);
68
+ });
69
+ it('does not open a dollar quote inside a word or at a positional parameter', () => {
70
+ expect(spansOf('a$$b$$ = $1', 'postgresql')).toEqual([]);
71
+ });
72
+ it('treats $ as code on SQL Server', () => {
73
+ expect(spansOf("x = $$'$$ ; SELECT 1 ; '", 'sqlserver')).toEqual([['string', "'$$ ; SELECT 1 ; '"]]);
74
+ });
75
+ });
76
+ describe('comments', () => {
77
+ it.each(['sqlserver', 'postgresql'])('reads a quote inside a comment as comment text (%s)', dialect => {
78
+ const scan = ScanSQLForScreening("SELECT 1 -- it's\n; SELECT 2 /* it's */", dialect);
79
+ expect(scan.Classified).toBe(true);
80
+ expect(scan.CommentCount).toBe(2);
81
+ expect(scan.Code).toBe('SELECT 1 \n; SELECT 2 ');
82
+ });
83
+ it('reads nested block comments', () => {
84
+ expect(spansOf('/* a /* b */ c */ SELECT 1', 'sqlserver')).toEqual([['comment', '/* a /* b */ c */']]);
85
+ });
86
+ it('ends a line comment at \\r\\n and at the end of the input', () => {
87
+ const scan = ScanSQLForScreening('SELECT 1 -- a\r\nFROM T -- b', 'sqlserver');
88
+ expect(scan.Classified).toBe(true);
89
+ expect(scan.Code).toBe('SELECT 1 \r\nFROM T ');
90
+ });
91
+ });
92
+ describe('leading word', () => {
93
+ it.each(['sqlserver', 'postgresql'])('skips whitespace and comments (%s)', dialect => {
94
+ expect(ScanSQLForScreening(' -- c\n /* b */ select 1', dialect).LeadingWord).toBe('select');
95
+ expect(ScanSQLForScreening('WithdrawFunds 1', dialect).LeadingWord).toBe('WithdrawFunds');
96
+ });
97
+ it.each([
98
+ ['a bracket identifier', '[sp_who] SELECT 1', 'sqlserver'],
99
+ ['a double-quoted identifier', '"sp_who" SELECT 1', 'postgresql'],
100
+ ['a literal', "N'x' SELECT 1", 'sqlserver'],
101
+ ['a number', '1 SELECT 1', 'postgresql'],
102
+ ['a symbol', '(SELECT 1)', 'sqlserver'],
103
+ ['a Unicode space', ' SELECT 1', 'sqlserver'],
104
+ ['a word followed by a non-ASCII character', 'SELECT€1', 'sqlserver'],
105
+ ['nothing but a comment', '-- only a comment', 'postgresql'],
106
+ ])('is null when %s comes first', (_label, sql, dialect) => {
107
+ expect(ScanSQLForScreening(sql, dialect).LeadingWord).toBeNull();
108
+ });
109
+ });
110
+ describe('SQL Server words', () => {
111
+ it('reads letters of any script as part of a word', () => {
112
+ const scan = ScanSQLForScreening('Café = 1', 'sqlserver');
113
+ expect(scan.LeadingWord).toBe('Café');
114
+ expect(scan.Code).toBe('Café = 1');
115
+ });
116
+ it('reads a currency symbol as code, so the keyword after a money literal is a separate token', () => {
117
+ expect(ScanSQLForScreening('ID = ¥1SELECT 1', 'sqlserver').Code).toBe('ID = ¥1 SELECT 1');
118
+ });
119
+ it('reads non-ASCII characters as part of a word on PostgreSQL', () => {
120
+ expect(ScanSQLForScreening('ID = ¥1SELECT 1', 'postgresql').Code).toBe('ID = ¥1SELECT 1');
121
+ });
122
+ });
123
+ describe('token boundaries', () => {
124
+ it('separates a word written against a literal', () => {
125
+ expect(ScanSQLForScreening("Name = N'x'UNION SELECT 1", 'sqlserver').Code).toBe('Name = UNION SELECT 1');
126
+ });
127
+ it.each(['sqlserver', 'postgresql'])('separates a word written against a number (%s)', dialect => {
128
+ expect(ScanSQLForScreening('ID = 1UNION SELECT 1', dialect).Code).toBe('ID = 1 UNION SELECT 1');
129
+ expect(ScanSQLForScreening('ID = 0x1FUNION', dialect).Code).toBe('ID = 0x1F UNION');
130
+ expect(ScanSQLForScreening('ID = 1e5', dialect).Code).toBe('ID = 1e5');
131
+ });
132
+ });
133
+ describe('text that cannot be classified', () => {
134
+ it.each([
135
+ ['an unterminated literal', "Name = 'abc", 'sqlserver'],
136
+ ['an unterminated N literal', "Name = N'abc", 'postgresql'],
137
+ ['an unterminated bracket identifier', 'Name = [abc', 'sqlserver'],
138
+ ['an unterminated double-quoted identifier', 'Name = "abc', 'postgresql'],
139
+ ['an unterminated block comment', 'Name = 1 /* a /* b */', 'sqlserver'],
140
+ ['an unterminated E string', "Name = E'abc\\'", 'postgresql'],
141
+ ['an unterminated dollar-quoted string', 'Name = $$abc', 'postgresql'],
142
+ ['a NUL character', 'Name = 1\0', 'sqlserver'],
143
+ ['a lone carriage return in a line comment', "SELECT 1 --a\r'; SELECT 2 --'", 'postgresql'],
144
+ ['a Unicode line separator in a line comment', 'SELECT 1 --a
; SELECT 2', 'sqlserver'],
145
+ ['an E string followed by a continuation segment', "x = E'a'\n'\\'' ; SELECT 1 ; --'", 'postgresql'],
146
+ ['a number followed by E and a word on SQL Server', 'ID = 1EXEC sp_who', 'sqlserver'],
147
+ ['a money literal followed by E and a word on SQL Server', 'ID = £1EXEC sp_who', 'sqlserver'],
148
+ ])('rejects %s', (_label, sql, dialect) => {
149
+ const scan = ScanSQLForScreening(sql, dialect);
150
+ expect(scan.Classified).toBe(false);
151
+ expect(scan.Error).toBeTruthy();
152
+ });
153
+ it('leaves the unread text as written', () => {
154
+ const scan = ScanSQLForScreening("x = 1 ; 'abc", 'sqlserver');
155
+ expect(scan.Code).toBe("x = 1 ; 'abc");
156
+ });
157
+ it('rejects a dialect it does not know instead of guessing', () => {
158
+ const fromConfig = 'mysql';
159
+ const scan = ScanSQLForScreening('x = 1', fromConfig);
160
+ expect(scan.Classified).toBe(false);
161
+ expect(scan.Code).toBe('x = 1');
162
+ });
163
+ });
164
+ it('is linear-time on long input', () => {
165
+ const sql = `Name = '${'a'.repeat(200000)}`;
166
+ const start = Date.now();
167
+ ScanSQLForScreening(sql, 'sqlserver');
168
+ ScanSQLForScreening(sql, 'postgresql');
169
+ expect(Date.now() - start).toBeLessThan(1000);
170
+ });
171
+ });
172
+ //# sourceMappingURL=SQLScreeningScanner.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SQLScreeningScanner.test.js","sourceRoot":"","sources":["../../src/__tests__/SQLScreeningScanner.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=SQLScreeningScanner.tokens.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SQLScreeningScanner.tokens.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/SQLScreeningScanner.tokens.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,82 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import { ScanSQLForScreening } from '../SQLScreeningScanner.js';
3
+ /** Each token's kind and text. */
4
+ function tokensOf(sql, dialect) {
5
+ return ScanSQLForScreening(sql, dialect).Tokens.map(t => [t.Kind, t.Text]);
6
+ }
7
+ describe('ScanSQLForScreening tokens', () => {
8
+ it.each(['sqlserver', 'postgresql'])('splits words, numbers, strings and symbols (%s)', dialect => {
9
+ expect(tokensOf("e.Salary > 10 AND Name = N'x'", dialect)).toEqual([
10
+ ['word', 'e'], ['symbol', '.'], ['word', 'Salary'], ['symbol', '>'], ['number', '10'],
11
+ ['word', 'AND'], ['word', 'Name'], ['symbol', '='], ['string', "N'x'"],
12
+ ]);
13
+ });
14
+ it('reads a bracket identifier as its bare name, with doubled brackets undone', () => {
15
+ expect(tokensOf('[Base Salary] = [a]]b]', 'sqlserver')).toEqual([
16
+ ['identifier', 'Base Salary'], ['symbol', '='], ['identifier', 'a]b'],
17
+ ]);
18
+ });
19
+ it.each(['sqlserver', 'postgresql'])('reads a double-quoted identifier as its bare name (%s)', dialect => {
20
+ expect(tokensOf('"Sal""ary" IS NULL', dialect)).toEqual([
21
+ ['identifier', 'Sal"ary'], ['word', 'IS'], ['word', 'NULL'],
22
+ ]);
23
+ });
24
+ it.each(['sqlserver', 'postgresql'])('reports no token for comments or whitespace (%s)', dialect => {
25
+ expect(tokensOf("a /* Salary */ = -- Salary\n 'Salary'", dialect)).toEqual([
26
+ ['word', 'a'], ['symbol', '='], ['string', "'Salary'"],
27
+ ]);
28
+ });
29
+ it('splits a number from a word written against it, as the database does', () => {
30
+ expect(tokensOf('1Salary', 'sqlserver')).toEqual([['number', '1'], ['word', 'Salary']]);
31
+ });
32
+ it('keeps the offsets of each token', () => {
33
+ const scan = ScanSQLForScreening('x = [y]', 'sqlserver');
34
+ expect(scan.Tokens.map(t => [t.Start, t.End])).toEqual([[0, 1], [2, 3], [4, 7]]);
35
+ });
36
+ });
37
+ describe('ScanSQLForScreening PostgreSQL Unicode-escape identifiers (U&"…")', () => {
38
+ it('reads U&"…" as one identifier and decodes its four- and six-digit escapes', () => {
39
+ expect(tokensOf('U&"\\0053alary" > 1', 'postgresql')).toEqual([['identifier', 'Salary'], ['symbol', '>'], ['number', '1']]);
40
+ expect(tokensOf('U&"S\\+000061lary"', 'postgresql')).toEqual([['identifier', 'Salary']]);
41
+ });
42
+ it('reads the prefix in either case', () => {
43
+ expect(tokensOf('u&"S\\0061lary" > 1', 'postgresql')).toEqual([['identifier', 'Salary'], ['symbol', '>'], ['number', '1']]);
44
+ });
45
+ it('honors a UESCAPE clause, after whitespace or a comment, and consumes it', () => {
46
+ expect(tokensOf("U&\"S!0061lary\" UESCAPE '!' > 1", 'postgresql')).toEqual([['identifier', 'Salary'], ['symbol', '>'], ['number', '1']]);
47
+ expect(tokensOf("U&\"S!0061lary\" /* c */ uescape\n'!'", 'postgresql')).toEqual([['identifier', 'Salary']]);
48
+ });
49
+ it('undoes a doubled escape character and a doubled quote', () => {
50
+ expect(tokensOf('U&"a\\\\b""c"', 'postgresql')).toEqual([['identifier', 'a\\b"c']]);
51
+ });
52
+ it('decodes a surrogate pair written as two escapes', () => {
53
+ expect(tokensOf('U&"\\D83D\\DE00"', 'postgresql')).toEqual([['identifier', '\u{1F600}']]);
54
+ });
55
+ it.each([
56
+ ['a bad escape', 'U&"\\00zz"'],
57
+ ['a short escape', 'U&"\\005"'],
58
+ ['a lone surrogate', 'U&"\\D800x"'],
59
+ ['a NUL escape', 'U&"\\0000"'],
60
+ ['a code point past U+10FFFF', 'U&"\\+110000"'],
61
+ ['a UESCAPE of two characters', "U&\"x\" UESCAPE 'ab'"],
62
+ ['a UESCAPE of a hex digit', "U&\"x\" UESCAPE 'a'"],
63
+ ['a UESCAPE of a quote', "U&\"x\" UESCAPE ''''"],
64
+ ['a UESCAPE with no string', 'U&"x" UESCAPE 1'],
65
+ ['an unclosed identifier', 'U&"Salary'],
66
+ ])('fails closed on %s', (_label, sql) => {
67
+ expect(ScanSQLForScreening(sql, 'postgresql').Classified).toBe(false);
68
+ });
69
+ it('writes the decoded name into CodeWithIdentifiers and spans the whole construct', () => {
70
+ const sql = "U&\"S!0061lary\" UESCAPE '!' = 1";
71
+ const scan = ScanSQLForScreening(sql, 'postgresql');
72
+ expect(scan.Spans).toEqual([{ Kind: 'identifier', Start: 0, End: sql.indexOf(' =') }]);
73
+ expect(scan.CodeWithIdentifiers).toBe(' Salary = 1');
74
+ });
75
+ it('leaves SQL Server reading U&"x" as a word, a symbol and an identifier', () => {
76
+ expect(tokensOf('U&"x"', 'sqlserver')).toEqual([['word', 'U'], ['symbol', '&'], ['identifier', 'x']]);
77
+ });
78
+ it("reads E'…' as a string, never an identifier", () => {
79
+ expect(tokensOf("E'Salary' = x", 'postgresql')).toEqual([['string', "E'Salary'"], ['symbol', '='], ['word', 'x']]);
80
+ });
81
+ });
82
+ //# sourceMappingURL=SQLScreeningScanner.tokens.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SQLScreeningScanner.tokens.test.js","sourceRoot":"","sources":["../../src/__tests__/SQLScreeningScanner.tokens.test.ts"],"names":[],"mappings":"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"}
@@ -259,7 +259,7 @@ const NESTED_SCAN_BASELINE = {
259
259
  'AI/Agents/src/realtime/realtime-client-session-service.ts': 2,
260
260
  'AI/BaseAIEngine/src/AIAgentPermissionHelper.ts': 1,
261
261
  'AI/BaseAIEngine/src/AISkillPermissionHelper.ts': 1,
262
- 'AI/BaseAIEngine/src/BaseAIEngine.ts': 10,
262
+ 'AI/BaseAIEngine/src/BaseAIEngine.ts': 6,
263
263
  'AI/CorePlus/src/conversation-routing-decision.ts': 1,
264
264
  'AI/CorePlus/src/task-graph/flow-graph-compiler.ts': 1,
265
265
  'AI/Knowledge/TagEngine/src/TagEngine.ts': 1,
@@ -344,7 +344,7 @@ const NESTED_SCAN_BASELINE = {
344
344
  'GenericDatabaseProvider/src/GenericDatabaseProvider.ts': 2,
345
345
  'GenericDatabaseProvider/src/queryCompositionEngine.ts': 1,
346
346
  'MJCore/src/generic/baseEngine.ts': 1,
347
- 'MJCore/src/generic/entityInfo.ts': 6,
347
+ 'MJCore/src/generic/entityInfo.ts': 2,
348
348
  'MJCore/src/generic/providerBase.ts': 3,
349
349
  'MJCore/src/generic/securityInfo.ts': 1,
350
350
  'MJCoreEntities/src/custom/MJQueryEntityExtended.ts': 3,
@@ -361,7 +361,7 @@ const NESTED_SCAN_BASELINE = {
361
361
  'MJCoreEntitiesServer/src/custom/MJApplicationEntityServer.server.ts': 1,
362
362
  'MJCoreEntitiesServer/src/custom/MJEntityFieldPermissionEntityServer.server.ts': 1,
363
363
  'MJCoreEntitiesServer/src/custom/MJUserRoleEntityServer.server.ts': 2,
364
- 'MJCoreEntitiesServer/src/custom/query-extraction/sync.ts': 7,
364
+ 'MJCoreEntitiesServer/src/custom/query-extraction/sync.ts': 5,
365
365
  'MJCoreEntitiesServer/src/custom/rubrics/evaluationSubmit.ts': 2,
366
366
  'MJCoreEntitiesServer/src/custom/rubrics/versionPublish.ts': 1,
367
367
  'MJServer/src/resolvers/IntegrationDiscoveryResolver.ts': 1,
@@ -371,7 +371,7 @@ const NESTED_SCAN_BASELINE = {
371
371
  'Rubrics/Engine/src/rubricCli.ts': 2,
372
372
  'Scheduling/engine/src/drivers/ActionScheduledJobDriver.ts': 1,
373
373
  'SearchEngine/src/generic/SearchEngine.ts': 4,
374
- 'SearchEngine/src/generic/StorageSearchProvider.ts': 4,
374
+ 'SearchEngine/src/generic/StorageSearchProvider.ts': 1,
375
375
  'SearchEngine/src/generic/VectorSearchProvider.ts': 2,
376
376
  'SearchEngine/src/permissions/SearchScopePermissionResolver.ts': 1,
377
377
  'TaskGraph/src/TaskGraphDispatcher.ts': 2,
@@ -1 +1 @@
1
- {"version":3,"file":"UUIDCompliance.test.js","sourceRoot":"","sources":["../../src/__tests__/UUIDCompliance.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"UUIDCompliance.test.js","sourceRoot":"","sources":["../../src/__tests__/UUIDCompliance.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=UserScopedCacheKey.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserScopedCacheKey.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/UserScopedCacheKey.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,25 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import { UserCacheKeySegment, UserScopedCacheKey } from '../util/UserScopedCacheKey.js';
3
+ describe('UserCacheKeySegment', () => {
4
+ it('normalizes the user ID so the same user always maps to one segment', () => {
5
+ expect(UserCacheKeySegment(' A1B2-C3D4 ')).toBe('u:a1b2-c3d4');
6
+ expect(UserCacheKeySegment('a1b2-c3d4')).toBe('u:a1b2-c3d4');
7
+ });
8
+ it('returns null when there is no user, so the caller does not cache', () => {
9
+ expect(UserCacheKeySegment(undefined)).toBeNull();
10
+ expect(UserCacheKeySegment(null)).toBeNull();
11
+ expect(UserCacheKeySegment(' ')).toBeNull();
12
+ });
13
+ });
14
+ describe('UserScopedCacheKey', () => {
15
+ it('gives two users different keys for the same entry', () => {
16
+ const a = UserScopedCacheKey('user-a', 'agent-1', 'Customers');
17
+ const b = UserScopedCacheKey('user-b', 'agent-1', 'Customers');
18
+ expect(a).toBe('agent-1:Customers:u:user-a');
19
+ expect(a).not.toBe(b);
20
+ });
21
+ it('returns null when there is no user', () => {
22
+ expect(UserScopedCacheKey(undefined, 'agent-1', 'Customers')).toBeNull();
23
+ });
24
+ });
25
+ //# sourceMappingURL=UserScopedCacheKey.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserScopedCacheKey.test.js","sourceRoot":"","sources":["../../src/__tests__/UserScopedCacheKey.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAErF,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACnC,EAAE,CAAC,oEAAoE,EAAE,GAAG,EAAE;QAC5E,MAAM,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC/D,MAAM,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kEAAkE,EAAE,GAAG,EAAE;QAC1E,MAAM,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QAClD,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC7C,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC/C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,MAAM,CAAC,GAAG,kBAAkB,CAAC,QAAQ,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;QAC/D,MAAM,CAAC,GAAG,kBAAkB,CAAC,QAAQ,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;QAC/D,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QAC7C,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC5C,MAAM,CAAC,kBAAkB,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC3E,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=util.valuesEqual.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.valuesEqual.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/util.valuesEqual.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,37 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import { ValuesEqual } from '../util.js';
3
+ describe('ValuesEqual', () => {
4
+ const ISO = '2026-08-01T12:34:56.789Z';
5
+ const EPOCH = new Date(ISO).getTime();
6
+ it('returns true for strictly equal primitives and references', () => {
7
+ expect(ValuesEqual(42, 42)).toBe(true);
8
+ expect(ValuesEqual('abc', 'abc')).toBe(true);
9
+ expect(ValuesEqual(true, true)).toBe(true);
10
+ expect(ValuesEqual(null, null)).toBe(true);
11
+ expect(ValuesEqual(undefined, undefined)).toBe(true);
12
+ const ref = { a: 1 };
13
+ expect(ValuesEqual(ref, ref)).toBe(true);
14
+ });
15
+ it('returns false for differing primitives or null vs undefined', () => {
16
+ expect(ValuesEqual(42, 43)).toBe(false);
17
+ expect(ValuesEqual('abc', 'def')).toBe(false);
18
+ expect(ValuesEqual(null, undefined)).toBe(false);
19
+ expect(ValuesEqual(0, false)).toBe(false);
20
+ });
21
+ it('compares two Date instances by epoch milliseconds', () => {
22
+ expect(ValuesEqual(new Date(ISO), new Date(ISO))).toBe(true);
23
+ expect(ValuesEqual(new Date(ISO), new Date(EPOCH + 1))).toBe(false);
24
+ });
25
+ it('compares a Date instance against an ISO string or numeric timestamp', () => {
26
+ expect(ValuesEqual(new Date(ISO), ISO)).toBe(true);
27
+ expect(ValuesEqual(ISO, new Date(ISO))).toBe(true);
28
+ expect(ValuesEqual(new Date(ISO), EPOCH)).toBe(true);
29
+ expect(ValuesEqual(EPOCH, new Date(ISO))).toBe(true);
30
+ expect(ValuesEqual(new Date(ISO), '2026-08-01T12:34:56.000Z')).toBe(false);
31
+ expect(ValuesEqual(new Date(ISO), 'not-a-date')).toBe(false);
32
+ });
33
+ it('returns false when comparing Invalid Date instances', () => {
34
+ expect(ValuesEqual(new Date('invalid'), new Date('invalid'))).toBe(false);
35
+ });
36
+ });
37
+ //# sourceMappingURL=util.valuesEqual.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.valuesEqual.test.js","sourceRoot":"","sources":["../../src/__tests__/util.valuesEqual.test.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -12,13 +12,16 @@ export * from './util/PatternUtils.js';
12
12
  export * from './util/ResourcePatternUtils.js';
13
13
  export * from './util/UUIDUtils.js';
14
14
  export * from './util/UUIDCollections.js';
15
+ export * from './util/UserScopedCacheKey.js';
15
16
  export * from './util/CronUtils.js';
16
17
  export * from './util/SerializationUtils.js';
17
18
  export * from './util/BinaryEncoding.js';
19
+ export * from './util/ProofOfPossession.js';
18
20
  export * from './ValidationTypes.js';
19
21
  export * from './JSONValidator.js';
20
22
  export * from './SafeExpressionEvaluator.js';
21
23
  export * from './fieldRules/index.js';
24
+ export * from './SQLScreeningScanner.js';
22
25
  export * from './SQLExpressionValidator.js';
23
26
  export * from './warningManager.js';
24
27
  export * from './EncryptionUtils.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAChE,cAAc,aAAa,CAAA;AAC3B,cAAc,QAAQ,CAAA;AACtB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,oBAAoB,CAAA;AAClC,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,2BAA2B,CAAA;AACzC,cAAc,cAAc,CAAA;AAC5B,cAAc,0BAA0B,CAAA;AACxC,cAAc,kBAAkB,CAAA;AAChC,cAAc,mBAAmB,CAAA;AACjC,cAAc,uBAAuB,CAAA;AACrC,cAAc,wBAAwB,CAAA;AACtC,cAAc,wBAAwB,CAAA;AACtC,cAAc,wBAAwB,CAAA;AAMtC,cAAc,UAAU,CAAA;AACxB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,oBAAoB,CAAA;AAClC,cAAc,+BAA+B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAChE,cAAc,aAAa,CAAA;AAC3B,cAAc,QAAQ,CAAA;AACtB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,oBAAoB,CAAA;AAClC,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,2BAA2B,CAAA;AACzC,cAAc,cAAc,CAAA;AAC5B,cAAc,uBAAuB,CAAA;AACrC,cAAc,0BAA0B,CAAA;AACxC,cAAc,kBAAkB,CAAA;AAChC,cAAc,mBAAmB,CAAA;AACjC,cAAc,uBAAuB,CAAA;AACrC,cAAc,wBAAwB,CAAA;AACtC,cAAc,wBAAwB,CAAA;AACtC,cAAc,wBAAwB,CAAA;AAMtC,cAAc,UAAU,CAAA;AACxB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,oBAAoB,CAAA;AAClC,cAAc,+BAA+B,CAAA"}
package/dist/index.js CHANGED
@@ -13,13 +13,16 @@ export * from './util/PatternUtils.js';
13
13
  export * from './util/ResourcePatternUtils.js';
14
14
  export * from './util/UUIDUtils.js';
15
15
  export * from './util/UUIDCollections.js';
16
+ export * from './util/UserScopedCacheKey.js';
16
17
  export * from './util/CronUtils.js';
17
18
  export * from './util/SerializationUtils.js';
18
19
  export * from './util/BinaryEncoding.js';
20
+ export * from './util/ProofOfPossession.js';
19
21
  export * from './ValidationTypes.js';
20
22
  export * from './JSONValidator.js';
21
23
  export * from './SafeExpressionEvaluator.js';
22
24
  export * from './fieldRules/index.js';
25
+ export * from './SQLScreeningScanner.js';
23
26
  export * from './SQLExpressionValidator.js';
24
27
  export * from './warningManager.js';
25
28
  export * from './EncryptionUtils.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAChE,cAAc,aAAa,CAAA;AAC3B,cAAc,QAAQ,CAAA;AACtB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,oBAAoB,CAAA;AAClC,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,2BAA2B,CAAA;AACzC,cAAc,cAAc,CAAA;AAC5B,cAAc,0BAA0B,CAAA;AACxC,cAAc,kBAAkB,CAAA;AAChC,cAAc,mBAAmB,CAAA;AACjC,cAAc,uBAAuB,CAAA;AACrC,cAAc,wBAAwB,CAAA;AACtC,cAAc,wBAAwB,CAAA;AACtC,cAAc,wBAAwB,CAAA;AAEtC,2DAA2D;AAC3D,oCAAoC;AAEpC,0BAA0B;AAC1B,cAAc,UAAU,CAAA;AACxB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,oBAAoB,CAAA;AAClC,cAAc,+BAA+B,CAAA;AAE7C,6DAA6D;AAC7D,oCAAoC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAChE,cAAc,aAAa,CAAA;AAC3B,cAAc,QAAQ,CAAA;AACtB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,oBAAoB,CAAA;AAClC,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,2BAA2B,CAAA;AACzC,cAAc,cAAc,CAAA;AAC5B,cAAc,uBAAuB,CAAA;AACrC,cAAc,0BAA0B,CAAA;AACxC,cAAc,kBAAkB,CAAA;AAChC,cAAc,mBAAmB,CAAA;AACjC,cAAc,uBAAuB,CAAA;AACrC,cAAc,wBAAwB,CAAA;AACtC,cAAc,wBAAwB,CAAA;AACtC,cAAc,wBAAwB,CAAA;AAEtC,2DAA2D;AAC3D,oCAAoC;AAEpC,0BAA0B;AAC1B,cAAc,UAAU,CAAA;AACxB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,oBAAoB,CAAA;AAClC,cAAc,+BAA+B,CAAA;AAE7C,6DAA6D;AAC7D,oCAAoC"}
@@ -0,0 +1,68 @@
1
+ /** The public half of a proof key, as a JWK with only the members RFC 7638 hashes. */
2
+ export interface ProofPublicJwk {
3
+ kty: 'EC';
4
+ crv: 'P-256';
5
+ x: string;
6
+ y: string;
7
+ }
8
+ /** A proof key: the non-extractable private key that signs, and its public JWK that the server records. */
9
+ export interface ProofOfPossessionKey {
10
+ PrivateKey: CryptoKey;
11
+ PublicJwk: ProofPublicJwk;
12
+ }
13
+ /** What one proof is made for. */
14
+ export interface ProofOfPossessionRequest {
15
+ /** HTTP method of the protected request (`htm`). */
16
+ Method: string;
17
+ /** Full URL of the protected request (`htu`). */
18
+ Url: string;
19
+ /** The bearer token sent with the request; the proof carries its hash (`ath`), so it works for that token only. */
20
+ AccessToken: string;
21
+ /** Signing time (`iat`), epoch seconds. Defaults to now. */
22
+ NowSeconds?: number;
23
+ }
24
+ /** What the verifier expects of a proof. */
25
+ export interface ProofOfPossessionExpectation {
26
+ Method: string;
27
+ /**
28
+ * The path the proof must name, matched as a suffix of the proof URL's path. This binds a proof to one
29
+ * endpoint, so a proof made for another route of the same API cannot be reused here. The origin and any
30
+ * base path are not compared: one API can be reached under several public origins and base paths (a
31
+ * proxy, `MJAPI_BASE_PATH`), and the caller cannot reliably list them. Leaving them open grants nothing,
32
+ * because only the holder of the bound key can sign a proof, and `ath` ties the proof to one token.
33
+ */
34
+ PathSuffix: string;
35
+ /** The bearer token presented with the proof. */
36
+ AccessToken: string;
37
+ NowSeconds: number;
38
+ /** How far `iat` may be from `NowSeconds`, either way. */
39
+ MaxSkewSeconds: number;
40
+ }
41
+ /** Why a proof was refused. */
42
+ export type ProofOfPossessionRefusal = 'malformed' | 'bad_signature' | 'request_mismatch' | 'token_mismatch' | 'stale';
43
+ /** Outcome of {@link VerifyProofOfPossessionJwt}; `Thumbprint` identifies the key that signed. */
44
+ export type ProofOfPossessionVerification = {
45
+ Valid: true;
46
+ Thumbprint: string;
47
+ } | {
48
+ Valid: false;
49
+ Reason: ProofOfPossessionRefusal;
50
+ };
51
+ /** Creates a proof key. The private key is non-extractable, so no script can read it out, only use it. */
52
+ export declare function CreateProofOfPossessionKey(): Promise<ProofOfPossessionKey>;
53
+ /** The RFC 7638 SHA-256 thumbprint of a proof key, base64url-encoded (the value of a token's `cnf.jkt`). */
54
+ export declare function ComputeJwkThumbprint(jwk: ProofPublicJwk): Promise<string>;
55
+ /** Signs a proof that the holder of `key` is making `request`. */
56
+ export declare function CreateProofOfPossessionJwt(key: ProofOfPossessionKey, request: ProofOfPossessionRequest): Promise<string>;
57
+ /**
58
+ * Checks a proof against what the request expects. Never throws: anything unparseable is `malformed`.
59
+ * Does not keep a replay cache of `jti`; a proof is bound to one token (`ath`) and to `MaxSkewSeconds`, so a
60
+ * replay needs both the proof and that token within the window.
61
+ */
62
+ export declare function VerifyProofOfPossessionJwt(proof: string, expected: ProofOfPossessionExpectation): Promise<ProofOfPossessionVerification>;
63
+ /**
64
+ * Narrows a value (e.g. a JWK a client sent) to a public P-256 JWK, keeping only the members RFC 7638 hashes;
65
+ * null for anything else, including a JWK that carries a private key.
66
+ */
67
+ export declare function ToProofPublicJwk(value: unknown): ProofPublicJwk | null;
68
+ //# sourceMappingURL=ProofOfPossession.d.ts.map