@xivdyetools/test-utils 1.1.3 → 1.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/auth/signature.d.ts +2 -2
- package/dist/auth/signature.d.ts.map +1 -1
- package/dist/auth/signature.js +2 -2
- package/dist/auth/signature.js.map +1 -1
- package/dist/factories/category.js +5 -5
- package/dist/factories/category.js.map +1 -1
- package/dist/factories/dye.js +2 -2
- package/dist/factories/dye.js.map +1 -1
- package/dist/factories/index.d.ts +1 -1
- package/dist/factories/index.d.ts.map +1 -1
- package/dist/factories/index.js +1 -1
- package/dist/factories/index.js.map +1 -1
- package/dist/utils/counters.d.ts +3 -30
- package/dist/utils/counters.d.ts.map +1 -1
- package/dist/utils/counters.js +3 -47
- package/dist/utils/counters.js.map +1 -1
- package/package.json +4 -4
package/dist/auth/signature.d.ts
CHANGED
|
@@ -24,8 +24,8 @@
|
|
|
24
24
|
* };
|
|
25
25
|
* ```
|
|
26
26
|
*/
|
|
27
|
-
/** Default signing secret for tests */
|
|
28
|
-
export declare const TEST_SIGNING_SECRET = "test-signing-secret";
|
|
27
|
+
/** Default signing secret for tests (>= 32 bytes for FINDING-009 HMAC minimum) */
|
|
28
|
+
export declare const TEST_SIGNING_SECRET = "test-signing-secret-at-least-32-bytes!!!";
|
|
29
29
|
/**
|
|
30
30
|
* Creates an HMAC-SHA256 signature for bot authentication
|
|
31
31
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signature.d.ts","sourceRoot":"","sources":["../../src/auth/signature.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAIH,
|
|
1
|
+
{"version":3,"file":"signature.d.ts","sourceRoot":"","sources":["../../src/auth/signature.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAIH,kFAAkF;AAClF,eAAO,MAAM,mBAAmB,6CAA6C,CAAC;AAE9E;;;;;;;;;;GAUG;AACH,wBAAsB,kBAAkB,CACtC,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,EAChB,MAAM,GAAE,MAA4B,GACnC,OAAO,CAAC,MAAM,CAAC,CAejB;AAED;;;;;;;GAOG;AACH,wBAAsB,0BAA0B,CAC9C,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,EAChB,MAAM,GAAE,MAA4B,GACnC,OAAO,CAAC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CAInD;AAED;;;;;;;;;GASG;AACH,wBAAsB,kBAAkB,CACtC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,EAChB,MAAM,GAAE,MAA4B,GACnC,OAAO,CAAC,OAAO,CAAC,CAGlB"}
|
package/dist/auth/signature.js
CHANGED
|
@@ -25,8 +25,8 @@
|
|
|
25
25
|
* ```
|
|
26
26
|
*/
|
|
27
27
|
import { bytesToHex } from '../utils/crypto.js';
|
|
28
|
-
/** Default signing secret for tests */
|
|
29
|
-
export const TEST_SIGNING_SECRET = 'test-signing-secret';
|
|
28
|
+
/** Default signing secret for tests (>= 32 bytes for FINDING-009 HMAC minimum) */
|
|
29
|
+
export const TEST_SIGNING_SECRET = 'test-signing-secret-at-least-32-bytes!!!';
|
|
30
30
|
/**
|
|
31
31
|
* Creates an HMAC-SHA256 signature for bot authentication
|
|
32
32
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signature.js","sourceRoot":"","sources":["../../src/auth/signature.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,
|
|
1
|
+
{"version":3,"file":"signature.js","sourceRoot":"","sources":["../../src/auth/signature.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,kFAAkF;AAClF,MAAM,CAAC,MAAM,mBAAmB,GAAG,0CAA0C,CAAC;AAE9E;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,SAAiB,EACjB,aAAqB,EACrB,QAAgB,EAChB,SAAiB,mBAAmB;IAEpC,MAAM,OAAO,GAAG,GAAG,SAAS,IAAI,aAAa,IAAI,QAAQ,EAAE,CAAC;IAC5D,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;IAElC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CACvC,KAAK,EACL,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EACtB,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,EACjC,KAAK,EACL,CAAC,MAAM,CAAC,CACT,CAAC;IAEF,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IAEjF,OAAO,UAAU,CAAC,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,aAAqB,EACrB,QAAgB,EAChB,SAAiB,mBAAmB;IAEpC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC3D,MAAM,SAAS,GAAG,MAAM,kBAAkB,CAAC,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IACvF,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;AAClC,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,SAAiB,EACjB,SAAiB,EACjB,aAAqB,EACrB,QAAgB,EAChB,SAAiB,mBAAmB;IAEpC,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IACtF,OAAO,SAAS,KAAK,QAAQ,CAAC;AAChC,CAAC"}
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* const row = createMockCategoryRow({ is_curated: 1 });
|
|
10
10
|
* ```
|
|
11
11
|
*/
|
|
12
|
-
import {
|
|
12
|
+
import { randomStringId, randomId } from '../utils/counters.js';
|
|
13
13
|
/**
|
|
14
14
|
* Creates a mock category row (as returned from database)
|
|
15
15
|
*
|
|
@@ -17,8 +17,8 @@ import { nextStringId, nextId } from '../utils/counters.js';
|
|
|
17
17
|
* @returns A CategoryRow object
|
|
18
18
|
*/
|
|
19
19
|
export function createMockCategoryRow(overrides = {}) {
|
|
20
|
-
const id = overrides.id ??
|
|
21
|
-
const displayOrder = overrides.display_order ??
|
|
20
|
+
const id = overrides.id ?? randomStringId('category');
|
|
21
|
+
const displayOrder = overrides.display_order ?? randomId();
|
|
22
22
|
return {
|
|
23
23
|
id,
|
|
24
24
|
name: 'Test Category',
|
|
@@ -36,8 +36,8 @@ export function createMockCategoryRow(overrides = {}) {
|
|
|
36
36
|
* @returns A Category object
|
|
37
37
|
*/
|
|
38
38
|
export function createMockCategory(overrides = {}) {
|
|
39
|
-
const id = overrides.id ??
|
|
40
|
-
const displayOrder = overrides.display_order ??
|
|
39
|
+
const id = overrides.id ?? randomStringId('category');
|
|
40
|
+
const displayOrder = overrides.display_order ?? randomId();
|
|
41
41
|
return {
|
|
42
42
|
id,
|
|
43
43
|
name: 'Test Category',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"category.js","sourceRoot":"","sources":["../../src/factories/category.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"category.js","sourceRoot":"","sources":["../../src/factories/category.ts"],"names":[],"mappings":"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"}
|
package/dist/factories/dye.js
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* const dye = createMockDye({ name: 'Custom Dye', hex: '#FF0000' });
|
|
16
16
|
* ```
|
|
17
17
|
*/
|
|
18
|
-
import {
|
|
18
|
+
import { randomId } from '../utils/counters.js';
|
|
19
19
|
/**
|
|
20
20
|
* Sample mock dyes for testing
|
|
21
21
|
*
|
|
@@ -126,7 +126,7 @@ export const mockDyes = [
|
|
|
126
126
|
* @returns A Dye object
|
|
127
127
|
*/
|
|
128
128
|
export function createMockDye(overrides = {}) {
|
|
129
|
-
const id = overrides.id ??
|
|
129
|
+
const id = overrides.id ?? randomId();
|
|
130
130
|
const itemID = overrides.itemID ?? 5700 + id;
|
|
131
131
|
return {
|
|
132
132
|
itemID,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dye.js","sourceRoot":"","sources":["../../src/factories/dye.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"dye.js","sourceRoot":"","sources":["../../src/factories/dye.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,5 +9,5 @@ export * from './category.js';
|
|
|
9
9
|
export * from './vote.js';
|
|
10
10
|
export * from './user.js';
|
|
11
11
|
export * from './dye.js';
|
|
12
|
-
export { randomId, randomStringId,
|
|
12
|
+
export { randomId, randomStringId, } from '../utils/counters.js';
|
|
13
13
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/factories/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AAIzB,OAAO,EACL,QAAQ,EACR,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/factories/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AAIzB,OAAO,EACL,QAAQ,EACR,cAAc,GACf,MAAM,sBAAsB,CAAC"}
|
package/dist/factories/index.js
CHANGED
|
@@ -11,5 +11,5 @@ export * from './user.js';
|
|
|
11
11
|
export * from './dye.js';
|
|
12
12
|
// Re-export ID utilities for test setup
|
|
13
13
|
// TEST-DESIGN-001: randomId and randomStringId are the recommended functions for parallel-safe tests
|
|
14
|
-
export { randomId, randomStringId,
|
|
14
|
+
export { randomId, randomStringId, } from '../utils/counters.js';
|
|
15
15
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/factories/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AAEzB,wCAAwC;AACxC,qGAAqG;AACrG,OAAO,EACL,QAAQ,EACR,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/factories/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AAEzB,wCAAwC;AACxC,qGAAqG;AACrG,OAAO,EACL,QAAQ,EACR,cAAc,GACf,MAAM,sBAAsB,CAAC"}
|
package/dist/utils/counters.d.ts
CHANGED
|
@@ -2,15 +2,11 @@
|
|
|
2
2
|
* ID generation utilities for test factories
|
|
3
3
|
*
|
|
4
4
|
* TEST-DESIGN-001: Uses random IDs to prevent race conditions in parallel test execution.
|
|
5
|
-
* Sequential counters are kept for backward compatibility but random IDs are now the default.
|
|
6
5
|
*
|
|
7
6
|
* @example
|
|
8
7
|
* ```typescript
|
|
9
|
-
* // Recommended: Random IDs (safe for parallel tests)
|
|
10
8
|
* const id = randomStringId('preset'); // 'preset-a7x9k2m'
|
|
11
|
-
*
|
|
12
|
-
* // Legacy: Sequential IDs (call resetCounters() in beforeEach for isolation)
|
|
13
|
-
* const seqId = nextStringId('preset'); // 'preset-1'
|
|
9
|
+
* const numId = randomId(); // 438291057
|
|
14
10
|
* ```
|
|
15
11
|
*/
|
|
16
12
|
/**
|
|
@@ -27,33 +23,10 @@ export declare function randomId(): number;
|
|
|
27
23
|
*/
|
|
28
24
|
export declare function randomStringId(prefix: string): string;
|
|
29
25
|
/**
|
|
30
|
-
* Get
|
|
31
|
-
*
|
|
32
|
-
* @param name - The counter name (e.g., 'preset', 'category')
|
|
33
|
-
* @returns The next sequential value
|
|
34
|
-
*/
|
|
35
|
-
export declare function nextId(name: string): number;
|
|
36
|
-
/**
|
|
37
|
-
* Get a string ID with prefix (legacy)
|
|
38
|
-
* TEST-DESIGN-001: Now uses random IDs by default for parallel-safe execution
|
|
26
|
+
* Get a string ID with prefix
|
|
27
|
+
* TEST-DESIGN-001: Delegates to randomStringId for parallel-safe execution
|
|
39
28
|
* @param prefix - The ID prefix (e.g., 'preset', 'category')
|
|
40
29
|
* @returns A string ID like 'preset-a7x9k2m'
|
|
41
30
|
*/
|
|
42
31
|
export declare function nextStringId(prefix: string): string;
|
|
43
|
-
/**
|
|
44
|
-
* Reset all counters to zero
|
|
45
|
-
* Call this in beforeEach() for test isolation
|
|
46
|
-
*/
|
|
47
|
-
export declare function resetCounters(): void;
|
|
48
|
-
/**
|
|
49
|
-
* Reset a specific counter
|
|
50
|
-
* @param name - The counter name to reset
|
|
51
|
-
*/
|
|
52
|
-
export declare function resetCounter(name: string): void;
|
|
53
|
-
/**
|
|
54
|
-
* Get the current value of a counter (without incrementing)
|
|
55
|
-
* @param name - The counter name
|
|
56
|
-
* @returns The current counter value, or 0 if not set
|
|
57
|
-
*/
|
|
58
|
-
export declare function getCounterValue(name: string): number;
|
|
59
32
|
//# sourceMappingURL=counters.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"counters.d.ts","sourceRoot":"","sources":["../../src/utils/counters.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"counters.d.ts","sourceRoot":"","sources":["../../src/utils/counters.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAgBH;;;;GAIG;AACH,wBAAgB,QAAQ,IAAI,MAAM,CAEjC;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAErD;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEnD"}
|
package/dist/utils/counters.js
CHANGED
|
@@ -2,19 +2,13 @@
|
|
|
2
2
|
* ID generation utilities for test factories
|
|
3
3
|
*
|
|
4
4
|
* TEST-DESIGN-001: Uses random IDs to prevent race conditions in parallel test execution.
|
|
5
|
-
* Sequential counters are kept for backward compatibility but random IDs are now the default.
|
|
6
5
|
*
|
|
7
6
|
* @example
|
|
8
7
|
* ```typescript
|
|
9
|
-
* // Recommended: Random IDs (safe for parallel tests)
|
|
10
8
|
* const id = randomStringId('preset'); // 'preset-a7x9k2m'
|
|
11
|
-
*
|
|
12
|
-
* // Legacy: Sequential IDs (call resetCounters() in beforeEach for isolation)
|
|
13
|
-
* const seqId = nextStringId('preset'); // 'preset-1'
|
|
9
|
+
* const numId = randomId(); // 438291057
|
|
14
10
|
* ```
|
|
15
11
|
*/
|
|
16
|
-
// Counter storage (legacy, for backward compatibility)
|
|
17
|
-
const counters = {};
|
|
18
12
|
/**
|
|
19
13
|
* Generate a random alphanumeric string
|
|
20
14
|
* @param length - Length of the random string (default: 8)
|
|
@@ -46,50 +40,12 @@ export function randomStringId(prefix) {
|
|
|
46
40
|
return `${prefix}-${randomAlphanumeric(8)}`;
|
|
47
41
|
}
|
|
48
42
|
/**
|
|
49
|
-
* Get
|
|
50
|
-
*
|
|
51
|
-
* @param name - The counter name (e.g., 'preset', 'category')
|
|
52
|
-
* @returns The next sequential value
|
|
53
|
-
*/
|
|
54
|
-
export function nextId(name) {
|
|
55
|
-
if (!(name in counters)) {
|
|
56
|
-
counters[name] = 0;
|
|
57
|
-
}
|
|
58
|
-
counters[name]++;
|
|
59
|
-
return counters[name];
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* Get a string ID with prefix (legacy)
|
|
63
|
-
* TEST-DESIGN-001: Now uses random IDs by default for parallel-safe execution
|
|
43
|
+
* Get a string ID with prefix
|
|
44
|
+
* TEST-DESIGN-001: Delegates to randomStringId for parallel-safe execution
|
|
64
45
|
* @param prefix - The ID prefix (e.g., 'preset', 'category')
|
|
65
46
|
* @returns A string ID like 'preset-a7x9k2m'
|
|
66
47
|
*/
|
|
67
48
|
export function nextStringId(prefix) {
|
|
68
|
-
// TEST-DESIGN-001: Use random IDs by default for parallel test safety
|
|
69
49
|
return randomStringId(prefix);
|
|
70
50
|
}
|
|
71
|
-
/**
|
|
72
|
-
* Reset all counters to zero
|
|
73
|
-
* Call this in beforeEach() for test isolation
|
|
74
|
-
*/
|
|
75
|
-
export function resetCounters() {
|
|
76
|
-
for (const key in counters) {
|
|
77
|
-
delete counters[key];
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
/**
|
|
81
|
-
* Reset a specific counter
|
|
82
|
-
* @param name - The counter name to reset
|
|
83
|
-
*/
|
|
84
|
-
export function resetCounter(name) {
|
|
85
|
-
delete counters[name];
|
|
86
|
-
}
|
|
87
|
-
/**
|
|
88
|
-
* Get the current value of a counter (without incrementing)
|
|
89
|
-
* @param name - The counter name
|
|
90
|
-
* @returns The current counter value, or 0 if not set
|
|
91
|
-
*/
|
|
92
|
-
export function getCounterValue(name) {
|
|
93
|
-
return counters[name] ?? 0;
|
|
94
|
-
}
|
|
95
51
|
//# sourceMappingURL=counters.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"counters.js","sourceRoot":"","sources":["../../src/utils/counters.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"counters.js","sourceRoot":"","sources":["../../src/utils/counters.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH;;;;GAIG;AACH,SAAS,kBAAkB,CAAC,SAAiB,CAAC;IAC5C,MAAM,KAAK,GAAG,sCAAsC,CAAC;IACrD,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IACnE,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,QAAQ;IACtB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC,CAAC,iBAAiB;AAC7E,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,MAAc;IAC3C,OAAO,GAAG,MAAM,IAAI,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC;AAC9C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,MAAc;IACzC,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC;AAChC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xivdyetools/test-utils",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.4",
|
|
4
4
|
"description": "Shared testing utilities for the xivdyetools ecosystem",
|
|
5
5
|
"author": "XIV Dye Tools",
|
|
6
6
|
"license": "MIT",
|
|
@@ -51,11 +51,11 @@
|
|
|
51
51
|
}
|
|
52
52
|
},
|
|
53
53
|
"dependencies": {
|
|
54
|
-
"@xivdyetools/
|
|
55
|
-
"@xivdyetools/
|
|
54
|
+
"@xivdyetools/crypto": "1.1.0",
|
|
55
|
+
"@xivdyetools/types": "1.9.0"
|
|
56
56
|
},
|
|
57
57
|
"devDependencies": {
|
|
58
|
-
"@cloudflare/workers-types": "^4.
|
|
58
|
+
"@cloudflare/workers-types": "^4.20260302.0",
|
|
59
59
|
"@testing-library/dom": "^10.0.0",
|
|
60
60
|
"@vitest/coverage-v8": "^4.0.18",
|
|
61
61
|
"vitest": "^4.0.18"
|