@de-otio/trellis 0.4.0 → 0.6.0
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/lib/crypto/voting/hash-utils.d.ts +3 -49
- package/dist/lib/crypto/voting/hash-utils.d.ts.map +1 -1
- package/dist/lib/crypto/voting/hash-utils.js +12 -54
- package/dist/lib/crypto/voting/hash-utils.js.map +1 -1
- package/dist/lib/email-privacy.d.ts +6 -44
- package/dist/lib/email-privacy.d.ts.map +1 -1
- package/dist/lib/email-privacy.js +10 -50
- package/dist/lib/email-privacy.js.map +1 -1
- package/package.json +6 -6
- package/prisma/migrations/20260412075058_init_redesign_schema/migration.sql +1547 -0
- package/prisma/migrations/20260412080000_seed_role_metadata/migration.sql +15 -0
- package/prisma/migrations/migration_lock.toml +3 -0
- package/prisma/schema.prisma +1408 -0
- package/dist/lib/crypto/encryption-service.d.ts +0 -100
- package/dist/lib/crypto/encryption-service.d.ts.map +0 -1
- package/dist/lib/crypto/encryption-service.js +0 -293
- package/dist/lib/crypto/encryption-service.js.map +0 -1
- package/dist/lib/crypto/index.d.ts +0 -22
- package/dist/lib/crypto/index.d.ts.map +0 -1
- package/dist/lib/crypto/index.js +0 -28
- package/dist/lib/crypto/index.js.map +0 -1
- package/dist/lib/crypto/types.d.ts +0 -71
- package/dist/lib/crypto/types.d.ts.map +0 -1
- package/dist/lib/crypto/types.js +0 -3
- package/dist/lib/crypto/types.js.map +0 -1
- package/dist/lib/crypto/versioning.d.ts +0 -112
- package/dist/lib/crypto/versioning.d.ts.map +0 -1
- package/dist/lib/crypto/versioning.js +0 -148
- package/dist/lib/crypto/versioning.js.map +0 -1
- package/dist/lib/encryption-key-service.d.ts +0 -115
- package/dist/lib/encryption-key-service.d.ts.map +0 -1
- package/dist/lib/encryption-key-service.js +0 -272
- package/dist/lib/encryption-key-service.js.map +0 -1
- package/dist/lib/followers-handler.d.ts +0 -21
- package/dist/lib/followers-handler.d.ts.map +0 -1
- package/dist/lib/followers-handler.js +0 -35
- package/dist/lib/followers-handler.js.map +0 -1
- package/dist/lib/routes/followers.d.ts +0 -6
- package/dist/lib/routes/followers.d.ts.map +0 -1
- package/dist/lib/routes/followers.js +0 -405
- package/dist/lib/routes/followers.js.map +0 -1
|
@@ -1,58 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Hash Utilities for Secure Voting
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* - Election record hashing
|
|
8
|
-
* - Proof challenges (Fiat-Shamir heuristic)
|
|
9
|
-
*
|
|
10
|
-
* Note: ElGamal encryption remains separate (homomorphic requirement).
|
|
11
|
-
* Only hash functions use the shared library.
|
|
12
|
-
*
|
|
13
|
-
* @see packages/crypto for shared cryptographic operations
|
|
14
|
-
* @see doc/02-technical/architecture/cryptography/ for design documentation
|
|
15
|
-
*/
|
|
16
|
-
/**
|
|
17
|
-
* Hash data for verification codes
|
|
18
|
-
*
|
|
19
|
-
* Verification codes are used to allow voters to verify their vote was counted.
|
|
20
|
-
* Uses SHA-256 from the shared cryptographic library.
|
|
21
|
-
*
|
|
22
|
-
* @param data - Data to hash (typically ballot identifier or vote data)
|
|
23
|
-
* @returns SHA-256 hash as hex string
|
|
4
|
+
* SHA-256 helpers for verification codes, election records, proof
|
|
5
|
+
* challenges (Fiat-Shamir), and device-info tracking. ElGamal stays
|
|
6
|
+
* separate (homomorphic requirement).
|
|
24
7
|
*/
|
|
25
8
|
export declare function hashVerificationCode(data: string | object): Promise<string>;
|
|
26
|
-
/**
|
|
27
|
-
* Hash election record for integrity verification
|
|
28
|
-
*
|
|
29
|
-
* Election records contain cryptographic commitments to election parameters.
|
|
30
|
-
* Uses SHA-256 from the shared cryptographic library.
|
|
31
|
-
*
|
|
32
|
-
* @param electionRecord - Election record data to hash
|
|
33
|
-
* @returns SHA-256 hash as hex string
|
|
34
|
-
*/
|
|
35
9
|
export declare function hashElectionRecord(electionRecord: string | object): Promise<string>;
|
|
36
|
-
/**
|
|
37
|
-
* Generate proof challenge using Fiat-Shamir heuristic
|
|
38
|
-
*
|
|
39
|
-
* The Fiat-Shamir heuristic converts interactive zero-knowledge proofs
|
|
40
|
-
* to non-interactive proofs by using a hash of the proof transcript as the challenge.
|
|
41
|
-
*
|
|
42
|
-
* Uses SHA-256 from the shared cryptographic library.
|
|
43
|
-
*
|
|
44
|
-
* @param transcript - Proof transcript (public values, commitments, etc.)
|
|
45
|
-
* @returns Challenge value (hash of transcript) as hex string
|
|
46
|
-
*/
|
|
47
10
|
export declare function generateFiatShamirChallenge(transcript: string | object): Promise<string>;
|
|
48
|
-
/**
|
|
49
|
-
* Hash device information for ballot tracking
|
|
50
|
-
*
|
|
51
|
-
* Device information is hashed (not stored in plaintext) to enable
|
|
52
|
-
* ballot tracking while maintaining privacy.
|
|
53
|
-
*
|
|
54
|
-
* @param deviceInfo - Device information object
|
|
55
|
-
* @returns SHA-256 hash as hex string
|
|
56
|
-
*/
|
|
57
11
|
export declare function hashDeviceInfo(deviceInfo: object): Promise<string>;
|
|
58
12
|
//# sourceMappingURL=hash-utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hash-utils.d.ts","sourceRoot":"","sources":["../../../../src/lib/crypto/voting/hash-utils.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"hash-utils.d.ts","sourceRoot":"","sources":["../../../../src/lib/crypto/voting/hash-utils.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AASH,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,MAAM,GAAG,MAAM,GACpB,OAAO,CAAC,MAAM,CAAC,CAEjB;AAED,wBAAsB,kBAAkB,CACtC,cAAc,EAAE,MAAM,GAAG,MAAM,GAC9B,OAAO,CAAC,MAAM,CAAC,CAEjB;AAED,wBAAsB,2BAA2B,CAC/C,UAAU,EAAE,MAAM,GAAG,MAAM,GAC1B,OAAO,CAAC,MAAM,CAAC,CAEjB;AAED,wBAAsB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAExE"}
|
|
@@ -2,72 +2,30 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Hash Utilities for Secure Voting
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* - Election record hashing
|
|
9
|
-
* - Proof challenges (Fiat-Shamir heuristic)
|
|
10
|
-
*
|
|
11
|
-
* Note: ElGamal encryption remains separate (homomorphic requirement).
|
|
12
|
-
* Only hash functions use the shared library.
|
|
13
|
-
*
|
|
14
|
-
* @see packages/crypto for shared cryptographic operations
|
|
15
|
-
* @see doc/02-technical/architecture/cryptography/ for design documentation
|
|
5
|
+
* SHA-256 helpers for verification codes, election records, proof
|
|
6
|
+
* challenges (Fiat-Shamir), and device-info tracking. ElGamal stays
|
|
7
|
+
* separate (homomorphic requirement).
|
|
16
8
|
*/
|
|
17
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
10
|
exports.hashVerificationCode = hashVerificationCode;
|
|
19
11
|
exports.hashElectionRecord = hashElectionRecord;
|
|
20
12
|
exports.generateFiatShamirChallenge = generateFiatShamirChallenge;
|
|
21
13
|
exports.hashDeviceInfo = hashDeviceInfo;
|
|
22
|
-
const
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
* Uses SHA-256 from the shared cryptographic library.
|
|
28
|
-
*
|
|
29
|
-
* @param data - Data to hash (typically ballot identifier or vote data)
|
|
30
|
-
* @returns SHA-256 hash as hex string
|
|
31
|
-
*/
|
|
14
|
+
const node_crypto_1 = require("node:crypto");
|
|
15
|
+
function sha256Hex(data) {
|
|
16
|
+
const s = typeof data === "string" ? data : JSON.stringify(data);
|
|
17
|
+
return (0, node_crypto_1.createHash)("sha256").update(s, "utf8").digest("hex");
|
|
18
|
+
}
|
|
32
19
|
async function hashVerificationCode(data) {
|
|
33
|
-
return
|
|
20
|
+
return sha256Hex(data);
|
|
34
21
|
}
|
|
35
|
-
/**
|
|
36
|
-
* Hash election record for integrity verification
|
|
37
|
-
*
|
|
38
|
-
* Election records contain cryptographic commitments to election parameters.
|
|
39
|
-
* Uses SHA-256 from the shared cryptographic library.
|
|
40
|
-
*
|
|
41
|
-
* @param electionRecord - Election record data to hash
|
|
42
|
-
* @returns SHA-256 hash as hex string
|
|
43
|
-
*/
|
|
44
22
|
async function hashElectionRecord(electionRecord) {
|
|
45
|
-
return
|
|
23
|
+
return sha256Hex(electionRecord);
|
|
46
24
|
}
|
|
47
|
-
/**
|
|
48
|
-
* Generate proof challenge using Fiat-Shamir heuristic
|
|
49
|
-
*
|
|
50
|
-
* The Fiat-Shamir heuristic converts interactive zero-knowledge proofs
|
|
51
|
-
* to non-interactive proofs by using a hash of the proof transcript as the challenge.
|
|
52
|
-
*
|
|
53
|
-
* Uses SHA-256 from the shared cryptographic library.
|
|
54
|
-
*
|
|
55
|
-
* @param transcript - Proof transcript (public values, commitments, etc.)
|
|
56
|
-
* @returns Challenge value (hash of transcript) as hex string
|
|
57
|
-
*/
|
|
58
25
|
async function generateFiatShamirChallenge(transcript) {
|
|
59
|
-
return
|
|
26
|
+
return sha256Hex(transcript);
|
|
60
27
|
}
|
|
61
|
-
/**
|
|
62
|
-
* Hash device information for ballot tracking
|
|
63
|
-
*
|
|
64
|
-
* Device information is hashed (not stored in plaintext) to enable
|
|
65
|
-
* ballot tracking while maintaining privacy.
|
|
66
|
-
*
|
|
67
|
-
* @param deviceInfo - Device information object
|
|
68
|
-
* @returns SHA-256 hash as hex string
|
|
69
|
-
*/
|
|
70
28
|
async function hashDeviceInfo(deviceInfo) {
|
|
71
|
-
return
|
|
29
|
+
return sha256Hex(deviceInfo);
|
|
72
30
|
}
|
|
73
31
|
//# sourceMappingURL=hash-utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hash-utils.js","sourceRoot":"","sources":["../../../../src/lib/crypto/voting/hash-utils.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"hash-utils.js","sourceRoot":"","sources":["../../../../src/lib/crypto/voting/hash-utils.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;AASH,oDAIC;AAED,gDAIC;AAED,kEAIC;AAED,wCAEC;AA3BD,6CAAyC;AAEzC,SAAS,SAAS,CAAC,IAAqB;IACtC,MAAM,CAAC,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACjE,OAAO,IAAA,wBAAU,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC9D,CAAC;AAEM,KAAK,UAAU,oBAAoB,CACxC,IAAqB;IAErB,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC;AACzB,CAAC;AAEM,KAAK,UAAU,kBAAkB,CACtC,cAA+B;IAE/B,OAAO,SAAS,CAAC,cAAc,CAAC,CAAC;AACnC,CAAC;AAEM,KAAK,UAAU,2BAA2B,CAC/C,UAA2B;IAE3B,OAAO,SAAS,CAAC,UAAU,CAAC,CAAC;AAC/B,CAAC;AAEM,KAAK,UAAU,cAAc,CAAC,UAAkB;IACrD,OAAO,SAAS,CAAC,UAAU,CAAC,CAAC;AAC/B,CAAC"}
|
|
@@ -1,54 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Email Privacy Utilities
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* Email hashes allow lookups without exposing plaintext emails to the server.
|
|
8
|
-
*
|
|
9
|
-
* FUTURE USE: When zero-knowledge architecture is implemented, email hashes will:
|
|
10
|
-
* - Enable email lookups without server seeing plaintext
|
|
11
|
-
* - Support account recovery without exposing email
|
|
12
|
-
* - Enable anonymous account linking
|
|
13
|
-
*
|
|
14
|
-
* @see doc/01-business/features/b2c-features/border-safety-mode/preparatory-design-changes/07-privacy.md
|
|
4
|
+
* Hashes emails for privacy-preserving lookups. Plain SHA-256 over the
|
|
5
|
+
* normalized email (lowercased + trimmed). For pepper-based HMAC use
|
|
6
|
+
* `node:crypto` directly at the call site.
|
|
15
7
|
*/
|
|
16
8
|
/**
|
|
17
|
-
* Hash
|
|
18
|
-
*
|
|
19
|
-
* PREPARATORY: Creates a consistent hash of an email address for privacy-preserving lookups.
|
|
20
|
-
* The email is normalized (lowercased and trimmed) before hashing to ensure consistent results.
|
|
21
|
-
*
|
|
22
|
-
* Uses the shared cryptographic library (@de-otio/trellis (inlined crypto)) for consistent hashing.
|
|
23
|
-
*
|
|
24
|
-
* FUTURE USE: When zero-knowledge architecture is implemented, this hash will be used for:
|
|
25
|
-
* - Email lookups without exposing plaintext
|
|
26
|
-
* - Account recovery workflows
|
|
27
|
-
* - Anonymous account linking
|
|
9
|
+
* Hash a normalized email via SHA-256. Returns hex.
|
|
28
10
|
*
|
|
29
|
-
*
|
|
30
|
-
* consider using EncryptionService.hashEmail(email, pepper) instead.
|
|
31
|
-
*
|
|
32
|
-
* @param email - Email address to hash
|
|
33
|
-
* @returns SHA-256 hash of the normalized email as a hex string
|
|
34
|
-
* @throws Error if email is empty or invalid after normalization
|
|
35
|
-
*
|
|
36
|
-
* @example
|
|
37
|
-
* ```typescript
|
|
38
|
-
* const hash = hashEmail(' User@Example.com ');
|
|
39
|
-
* // Returns: hash of 'user@example.com'
|
|
40
|
-
* ```
|
|
11
|
+
* @throws if `email` is empty / non-string / empty after normalization.
|
|
41
12
|
*/
|
|
42
13
|
export declare function hashEmail(email: string): Promise<string>;
|
|
43
|
-
/**
|
|
44
|
-
* Synchronous version of hashEmail (for compatibility)
|
|
45
|
-
*
|
|
46
|
-
* Note: This uses the async Web Crypto API but provides a synchronous interface
|
|
47
|
-
* by returning a Promise. Use hashEmail() directly for better clarity.
|
|
48
|
-
*
|
|
49
|
-
* @deprecated Use hashEmail() instead
|
|
50
|
-
* @param email - Email address to hash
|
|
51
|
-
* @returns Promise that resolves to SHA-256 hash as hex string
|
|
52
|
-
*/
|
|
14
|
+
/** @deprecated Use hashEmail() directly — this wrapper exists for compat. */
|
|
53
15
|
export declare function hashEmailSync(email: string): Promise<string>;
|
|
54
16
|
//# sourceMappingURL=email-privacy.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"email-privacy.d.ts","sourceRoot":"","sources":["../../src/lib/email-privacy.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"email-privacy.d.ts","sourceRoot":"","sources":["../../src/lib/email-privacy.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH;;;;GAIG;AACH,wBAAsB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAW9D;AAED,6EAA6E;AAC7E,wBAAsB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAElE"}
|
|
@@ -2,70 +2,30 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Email Privacy Utilities
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* Email hashes allow lookups without exposing plaintext emails to the server.
|
|
9
|
-
*
|
|
10
|
-
* FUTURE USE: When zero-knowledge architecture is implemented, email hashes will:
|
|
11
|
-
* - Enable email lookups without server seeing plaintext
|
|
12
|
-
* - Support account recovery without exposing email
|
|
13
|
-
* - Enable anonymous account linking
|
|
14
|
-
*
|
|
15
|
-
* @see doc/01-business/features/b2c-features/border-safety-mode/preparatory-design-changes/07-privacy.md
|
|
5
|
+
* Hashes emails for privacy-preserving lookups. Plain SHA-256 over the
|
|
6
|
+
* normalized email (lowercased + trimmed). For pepper-based HMAC use
|
|
7
|
+
* `node:crypto` directly at the call site.
|
|
16
8
|
*/
|
|
17
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
10
|
exports.hashEmail = hashEmail;
|
|
19
11
|
exports.hashEmailSync = hashEmailSync;
|
|
20
|
-
const
|
|
12
|
+
const node_crypto_1 = require("node:crypto");
|
|
21
13
|
/**
|
|
22
|
-
* Hash
|
|
23
|
-
*
|
|
24
|
-
* PREPARATORY: Creates a consistent hash of an email address for privacy-preserving lookups.
|
|
25
|
-
* The email is normalized (lowercased and trimmed) before hashing to ensure consistent results.
|
|
26
|
-
*
|
|
27
|
-
* Uses the shared cryptographic library (@de-otio/trellis (inlined crypto)) for consistent hashing.
|
|
28
|
-
*
|
|
29
|
-
* FUTURE USE: When zero-knowledge architecture is implemented, this hash will be used for:
|
|
30
|
-
* - Email lookups without exposing plaintext
|
|
31
|
-
* - Account recovery workflows
|
|
32
|
-
* - Anonymous account linking
|
|
14
|
+
* Hash a normalized email via SHA-256. Returns hex.
|
|
33
15
|
*
|
|
34
|
-
*
|
|
35
|
-
* consider using EncryptionService.hashEmail(email, pepper) instead.
|
|
36
|
-
*
|
|
37
|
-
* @param email - Email address to hash
|
|
38
|
-
* @returns SHA-256 hash of the normalized email as a hex string
|
|
39
|
-
* @throws Error if email is empty or invalid after normalization
|
|
40
|
-
*
|
|
41
|
-
* @example
|
|
42
|
-
* ```typescript
|
|
43
|
-
* const hash = hashEmail(' User@Example.com ');
|
|
44
|
-
* // Returns: hash of 'user@example.com'
|
|
45
|
-
* ```
|
|
16
|
+
* @throws if `email` is empty / non-string / empty after normalization.
|
|
46
17
|
*/
|
|
47
18
|
async function hashEmail(email) {
|
|
48
19
|
if (!email || typeof email !== "string") {
|
|
49
20
|
throw new Error("Email must be a non-empty string");
|
|
50
21
|
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
if (normalizedEmail.length === 0) {
|
|
22
|
+
const normalized = email.toLowerCase().trim();
|
|
23
|
+
if (normalized.length === 0) {
|
|
54
24
|
throw new Error("Email cannot be empty after normalization");
|
|
55
25
|
}
|
|
56
|
-
|
|
57
|
-
return await index_js_1.EncryptionService.hash(normalizedEmail);
|
|
26
|
+
return (0, node_crypto_1.createHash)("sha256").update(normalized, "utf8").digest("hex");
|
|
58
27
|
}
|
|
59
|
-
/**
|
|
60
|
-
* Synchronous version of hashEmail (for compatibility)
|
|
61
|
-
*
|
|
62
|
-
* Note: This uses the async Web Crypto API but provides a synchronous interface
|
|
63
|
-
* by returning a Promise. Use hashEmail() directly for better clarity.
|
|
64
|
-
*
|
|
65
|
-
* @deprecated Use hashEmail() instead
|
|
66
|
-
* @param email - Email address to hash
|
|
67
|
-
* @returns Promise that resolves to SHA-256 hash as hex string
|
|
68
|
-
*/
|
|
28
|
+
/** @deprecated Use hashEmail() directly — this wrapper exists for compat. */
|
|
69
29
|
async function hashEmailSync(email) {
|
|
70
30
|
return hashEmail(email);
|
|
71
31
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"email-privacy.js","sourceRoot":"","sources":["../../src/lib/email-privacy.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"email-privacy.js","sourceRoot":"","sources":["../../src/lib/email-privacy.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;AASH,8BAWC;AAGD,sCAEC;AAvBD,6CAAyC;AAEzC;;;;GAIG;AACI,KAAK,UAAU,SAAS,CAAC,KAAa;IAC3C,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;IAED,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;IAC9C,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC/D,CAAC;IAED,OAAO,IAAA,wBAAU,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACvE,CAAC;AAED,6EAA6E;AACtE,KAAK,UAAU,aAAa,CAAC,KAAa;IAC/C,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC;AAC1B,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@de-otio/trellis",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.0",
|
|
4
4
|
"main": "./dist/index.js",
|
|
5
5
|
"types": "./dist/index.d.ts",
|
|
6
6
|
"files": [
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"test:postdeployment": "vitest run --config vitest.postdeployment.config.ts",
|
|
31
31
|
"test:postdeployment:api": "vitest run --config vitest.postdeployment.api.config.ts",
|
|
32
32
|
"test:postdeployment:followers": "vitest run --config vitest.postdeployment.followers.config.ts",
|
|
33
|
-
"lint": "tsc --build
|
|
33
|
+
"lint": "tsc --build",
|
|
34
34
|
"format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"",
|
|
35
35
|
"prisma:generate": "prisma generate",
|
|
36
36
|
"prisma:migrate:dev": "prisma migrate dev",
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
"@prisma/adapter-pg": "^6.0.0",
|
|
53
53
|
"@prisma/client": "^6.0.0",
|
|
54
54
|
"@prisma/extension-accelerate": "^1.0.0",
|
|
55
|
-
"@de-otio/trellis-extension-api": "^0.
|
|
55
|
+
"@de-otio/trellis-extension-api": "^0.2.0",
|
|
56
56
|
"aws-jwt-verify": "^4.0.0",
|
|
57
57
|
"exifr": "^7.1.3",
|
|
58
58
|
"isomorphic-dompurify": "^2.18.0",
|
|
@@ -76,8 +76,8 @@
|
|
|
76
76
|
"@types/node": "^22.0.0",
|
|
77
77
|
"@types/pg": "^8.18.0",
|
|
78
78
|
"@types/sharp": "^0.31.0",
|
|
79
|
-
"@vitest/coverage-v8": "^
|
|
80
|
-
"@vitest/ui": "^
|
|
79
|
+
"@vitest/coverage-v8": "^4.0.0",
|
|
80
|
+
"@vitest/ui": "^4.0.0",
|
|
81
81
|
"@aws-lambda-powertools/parameters": "^2.32.0",
|
|
82
82
|
"esbuild": "^0.27.0",
|
|
83
83
|
"form-data": "^4.0.1",
|
|
@@ -86,6 +86,6 @@
|
|
|
86
86
|
"prisma": "^6.0.0",
|
|
87
87
|
"tsx": "^4.19.0",
|
|
88
88
|
"typescript": "^5.6.0",
|
|
89
|
-
"vitest": "^
|
|
89
|
+
"vitest": "^4.0.0"
|
|
90
90
|
}
|
|
91
91
|
}
|