@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.
Files changed (41) hide show
  1. package/dist/lib/crypto/voting/hash-utils.d.ts +3 -49
  2. package/dist/lib/crypto/voting/hash-utils.d.ts.map +1 -1
  3. package/dist/lib/crypto/voting/hash-utils.js +12 -54
  4. package/dist/lib/crypto/voting/hash-utils.js.map +1 -1
  5. package/dist/lib/email-privacy.d.ts +6 -44
  6. package/dist/lib/email-privacy.d.ts.map +1 -1
  7. package/dist/lib/email-privacy.js +10 -50
  8. package/dist/lib/email-privacy.js.map +1 -1
  9. package/package.json +6 -6
  10. package/prisma/migrations/20260412075058_init_redesign_schema/migration.sql +1547 -0
  11. package/prisma/migrations/20260412080000_seed_role_metadata/migration.sql +15 -0
  12. package/prisma/migrations/migration_lock.toml +3 -0
  13. package/prisma/schema.prisma +1408 -0
  14. package/dist/lib/crypto/encryption-service.d.ts +0 -100
  15. package/dist/lib/crypto/encryption-service.d.ts.map +0 -1
  16. package/dist/lib/crypto/encryption-service.js +0 -293
  17. package/dist/lib/crypto/encryption-service.js.map +0 -1
  18. package/dist/lib/crypto/index.d.ts +0 -22
  19. package/dist/lib/crypto/index.d.ts.map +0 -1
  20. package/dist/lib/crypto/index.js +0 -28
  21. package/dist/lib/crypto/index.js.map +0 -1
  22. package/dist/lib/crypto/types.d.ts +0 -71
  23. package/dist/lib/crypto/types.d.ts.map +0 -1
  24. package/dist/lib/crypto/types.js +0 -3
  25. package/dist/lib/crypto/types.js.map +0 -1
  26. package/dist/lib/crypto/versioning.d.ts +0 -112
  27. package/dist/lib/crypto/versioning.d.ts.map +0 -1
  28. package/dist/lib/crypto/versioning.js +0 -148
  29. package/dist/lib/crypto/versioning.js.map +0 -1
  30. package/dist/lib/encryption-key-service.d.ts +0 -115
  31. package/dist/lib/encryption-key-service.d.ts.map +0 -1
  32. package/dist/lib/encryption-key-service.js +0 -272
  33. package/dist/lib/encryption-key-service.js.map +0 -1
  34. package/dist/lib/followers-handler.d.ts +0 -21
  35. package/dist/lib/followers-handler.d.ts.map +0 -1
  36. package/dist/lib/followers-handler.js +0 -35
  37. package/dist/lib/followers-handler.js.map +0 -1
  38. package/dist/lib/routes/followers.d.ts +0 -6
  39. package/dist/lib/routes/followers.d.ts.map +0 -1
  40. package/dist/lib/routes/followers.js +0 -405
  41. 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
- * Provides hash functions for Secure Voting System using the shared cryptographic library.
5
- * These functions are used for:
6
- * - Verification codes
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;;;;;;;;;;;;;;GAcG;AAIH;;;;;;;;GAQG;AACH,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,MAAM,GAAG,MAAM,GACpB,OAAO,CAAC,MAAM,CAAC,CAEjB;AAED;;;;;;;;GAQG;AACH,wBAAsB,kBAAkB,CACtC,cAAc,EAAE,MAAM,GAAG,MAAM,GAC9B,OAAO,CAAC,MAAM,CAAC,CAEjB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,2BAA2B,CAC/C,UAAU,EAAE,MAAM,GAAG,MAAM,GAC1B,OAAO,CAAC,MAAM,CAAC,CAEjB;AAED;;;;;;;;GAQG;AACH,wBAAsB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAExE"}
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
- * Provides hash functions for Secure Voting System using the shared cryptographic library.
6
- * These functions are used for:
7
- * - Verification codes
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 index_js_1 = require("../index.js");
23
- /**
24
- * Hash data for verification codes
25
- *
26
- * Verification codes are used to allow voters to verify their vote was counted.
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 await index_js_1.EncryptionService.hash(data);
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 await index_js_1.EncryptionService.hash(electionRecord);
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 await index_js_1.EncryptionService.hash(transcript);
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 await index_js_1.EncryptionService.hash(deviceInfo);
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;;;;;;;;;;;;;;GAcG;;AAaH,oDAIC;AAWD,gDAIC;AAaD,kEAIC;AAWD,wCAEC;AA5DD,0CAAgD;AAEhD;;;;;;;;GAQG;AACI,KAAK,UAAU,oBAAoB,CACxC,IAAqB;IAErB,OAAO,MAAM,4BAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5C,CAAC;AAED;;;;;;;;GAQG;AACI,KAAK,UAAU,kBAAkB,CACtC,cAA+B;IAE/B,OAAO,MAAM,4BAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AACtD,CAAC;AAED;;;;;;;;;;GAUG;AACI,KAAK,UAAU,2BAA2B,CAC/C,UAA2B;IAE3B,OAAO,MAAM,4BAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAClD,CAAC;AAED;;;;;;;;GAQG;AACI,KAAK,UAAU,cAAc,CAAC,UAAkB;IACrD,OAAO,MAAM,4BAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAClD,CAAC"}
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
- * PREPARATORY: Border Safety Mode - Email hashing for privacy
5
- *
6
- * Provides utilities for hashing emails to support zero-knowledge architecture.
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 an email address using SHA-256
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
- * NOTE: This function uses plain SHA-256. For enhanced security with pepper,
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;;;;;;;;;;;;;;GAcG;AAIH;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAsB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAc9D;AAED;;;;;;;;;GASG;AACH,wBAAsB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAElE"}
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
- * PREPARATORY: Border Safety Mode - Email hashing for privacy
6
- *
7
- * Provides utilities for hashing emails to support zero-knowledge architecture.
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 index_js_1 = require("./crypto/index.js");
12
+ const node_crypto_1 = require("node:crypto");
21
13
  /**
22
- * Hash an email address using SHA-256
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
- * NOTE: This function uses plain SHA-256. For enhanced security with pepper,
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
- // Normalize email: lowercase and trim whitespace
52
- const normalizedEmail = email.toLowerCase().trim();
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
- // Use shared cryptographic library for consistent hashing
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;;;;;;;;;;;;;;GAcG;;AA8BH,8BAcC;AAYD,sCAEC;AAxDD,gDAAsD;AAEtD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;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,iDAAiD;IACjD,MAAM,eAAe,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;IAEnD,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC/D,CAAC;IAED,0DAA0D;IAC1D,OAAO,MAAM,4BAAiB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AACvD,CAAC;AAED;;;;;;;;;GASG;AACI,KAAK,UAAU,aAAa,CAAC,KAAa;IAC/C,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC;AAC1B,CAAC"}
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.4.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 --noEmit",
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.1.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": "^2.0.0",
80
- "@vitest/ui": "^2.0.0",
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": "^2.0.0"
89
+ "vitest": "^4.0.0"
90
90
  }
91
91
  }