@intelligo-dev/core 1.0.0-beta.1 → 1.0.0-beta.13
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/NOTICE +6 -0
- package/README.md +102 -0
- package/dist/attachments/errors.d.ts +7 -0
- package/dist/attachments/errors.d.ts.map +1 -0
- package/dist/attachments/errors.js +11 -0
- package/dist/attachments/errors.js.map +1 -0
- package/dist/attachments/index.d.ts +8 -0
- package/dist/attachments/index.d.ts.map +1 -0
- package/dist/attachments/index.js +7 -0
- package/dist/attachments/index.js.map +1 -0
- package/dist/attachments/service.d.ts +45 -0
- package/dist/attachments/service.d.ts.map +1 -0
- package/dist/attachments/service.js +100 -0
- package/dist/attachments/service.js.map +1 -0
- package/dist/attachments/types.d.ts +6 -0
- package/dist/attachments/types.d.ts.map +1 -0
- package/dist/attachments/types.js +2 -0
- package/dist/attachments/types.js.map +1 -0
- package/dist/conversations/errors.d.ts +2 -8
- package/dist/conversations/errors.d.ts.map +1 -1
- package/dist/conversations/errors.js +2 -8
- package/dist/conversations/errors.js.map +1 -1
- package/dist/conversations/index.d.ts +4 -12
- package/dist/conversations/index.d.ts.map +1 -1
- package/dist/conversations/index.js +2 -11
- package/dist/conversations/index.js.map +1 -1
- package/dist/conversations/service.d.ts +49 -61
- package/dist/conversations/service.d.ts.map +1 -1
- package/dist/conversations/service.js +110 -83
- package/dist/conversations/service.js.map +1 -1
- package/dist/conversations/types.d.ts +1 -4
- package/dist/conversations/types.d.ts.map +1 -1
- package/dist/conversations/types.js +0 -3
- package/dist/conversations/types.js.map +1 -1
- package/dist/db/client.d.ts +21 -10
- package/dist/db/client.d.ts.map +1 -1
- package/dist/db/client.js +43 -18
- package/dist/db/client.js.map +1 -1
- package/dist/db/index.d.ts +3 -3
- package/dist/db/index.d.ts.map +1 -1
- package/dist/db/index.js +3 -7
- package/dist/db/index.js.map +1 -1
- package/dist/db/schema/agents.d.ts +14 -51
- package/dist/db/schema/agents.d.ts.map +1 -1
- package/dist/db/schema/agents.js +9 -21
- package/dist/db/schema/agents.js.map +1 -1
- package/dist/db/schema/ai.d.ts +86 -1556
- package/dist/db/schema/ai.d.ts.map +1 -1
- package/dist/db/schema/ai.js +32 -236
- package/dist/db/schema/ai.js.map +1 -1
- package/dist/db/schema/auth.d.ts +5 -34
- package/dist/db/schema/auth.d.ts.map +1 -1
- package/dist/db/schema/auth.js +25 -56
- package/dist/db/schema/auth.js.map +1 -1
- package/dist/db/schema/billing.d.ts +136 -107
- package/dist/db/schema/billing.d.ts.map +1 -1
- package/dist/db/schema/billing.js +72 -60
- package/dist/db/schema/billing.js.map +1 -1
- package/dist/db/schema/feature-flags.d.ts +3 -12
- package/dist/db/schema/feature-flags.d.ts.map +1 -1
- package/dist/db/schema/feature-flags.js +3 -12
- package/dist/db/schema/feature-flags.js.map +1 -1
- package/dist/db/schema/identity.d.ts +12 -274
- package/dist/db/schema/identity.d.ts.map +1 -1
- package/dist/db/schema/identity.js +19 -104
- package/dist/db/schema/identity.js.map +1 -1
- package/dist/db/schema/index.d.ts +8 -15
- package/dist/db/schema/index.d.ts.map +1 -1
- package/dist/db/schema/index.js +12 -42
- package/dist/db/schema/index.js.map +1 -1
- package/dist/db/schema/notifications.d.ts +3 -17
- package/dist/db/schema/notifications.d.ts.map +1 -1
- package/dist/db/schema/notifications.js +3 -17
- package/dist/db/schema/notifications.js.map +1 -1
- package/dist/db/schema/usage.d.ts +94 -77
- package/dist/db/schema/usage.d.ts.map +1 -1
- package/dist/db/schema/usage.js +59 -89
- package/dist/db/schema/usage.js.map +1 -1
- package/dist/db/validate.d.ts +2 -11
- package/dist/db/validate.d.ts.map +1 -1
- package/dist/db/validate.js +6 -17
- package/dist/db/validate.js.map +1 -1
- package/dist/db/workspace-queries.d.ts +5 -29
- package/dist/db/workspace-queries.d.ts.map +1 -1
- package/dist/db/workspace-queries.js +5 -29
- package/dist/db/workspace-queries.js.map +1 -1
- package/dist/documents/classifier.d.ts +5 -12
- package/dist/documents/classifier.d.ts.map +1 -1
- package/dist/documents/classifier.js +16 -16
- package/dist/documents/classifier.js.map +1 -1
- package/dist/documents/errors.d.ts +2 -10
- package/dist/documents/errors.d.ts.map +1 -1
- package/dist/documents/errors.js +2 -10
- package/dist/documents/errors.js.map +1 -1
- package/dist/documents/index.d.ts +4 -13
- package/dist/documents/index.d.ts.map +1 -1
- package/dist/documents/index.js +3 -12
- package/dist/documents/index.js.map +1 -1
- package/dist/documents/service.d.ts +19 -26
- package/dist/documents/service.d.ts.map +1 -1
- package/dist/documents/service.js +44 -38
- package/dist/documents/service.js.map +1 -1
- package/dist/documents/types.d.ts +6 -10
- package/dist/documents/types.d.ts.map +1 -1
- package/dist/documents/types.js +0 -3
- package/dist/documents/types.js.map +1 -1
- package/dist/email/brand.d.ts +17 -0
- package/dist/email/brand.d.ts.map +1 -0
- package/dist/email/brand.js +9 -0
- package/dist/email/brand.js.map +1 -0
- package/dist/email/index.d.ts +4 -4
- package/dist/email/index.js +4 -4
- package/dist/email/provider.d.ts +1 -7
- package/dist/email/provider.d.ts.map +1 -1
- package/dist/email/provider.js +10 -19
- package/dist/email/provider.js.map +1 -1
- package/dist/email/send.d.ts +12 -12
- package/dist/email/send.d.ts.map +1 -1
- package/dist/email/send.js +5 -19
- package/dist/email/send.js.map +1 -1
- package/dist/email/senders.d.ts +17 -30
- package/dist/email/senders.d.ts.map +1 -1
- package/dist/email/senders.js +33 -47
- package/dist/email/senders.js.map +1 -1
- package/dist/email/templates/base-layout.d.ts +1 -1
- package/dist/email/templates/base-layout.d.ts.map +1 -1
- package/dist/email/templates/base-layout.js +4 -6
- package/dist/email/templates/base-layout.js.map +1 -1
- package/dist/email/templates/index.d.ts +10 -10
- package/dist/email/templates/index.d.ts.map +1 -1
- package/dist/email/templates/index.js +10 -16
- package/dist/email/templates/index.js.map +1 -1
- package/dist/email/templates/password-reset.d.ts +2 -2
- package/dist/email/templates/password-reset.d.ts.map +1 -1
- package/dist/email/templates/password-reset.js +10 -22
- package/dist/email/templates/password-reset.js.map +1 -1
- package/dist/email/templates/payment-failed.d.ts +2 -2
- package/dist/email/templates/payment-failed.d.ts.map +1 -1
- package/dist/email/templates/payment-failed.js +11 -24
- package/dist/email/templates/payment-failed.js.map +1 -1
- package/dist/email/templates/quota-warning.d.ts +4 -4
- package/dist/email/templates/quota-warning.d.ts.map +1 -1
- package/dist/email/templates/quota-warning.js +19 -39
- package/dist/email/templates/quota-warning.js.map +1 -1
- package/dist/email/templates/subscription-confirmed.d.ts +2 -2
- package/dist/email/templates/subscription-confirmed.d.ts.map +1 -1
- package/dist/email/templates/subscription-confirmed.js +13 -28
- package/dist/email/templates/subscription-confirmed.js.map +1 -1
- package/dist/email/templates/trial-expiry.d.ts +2 -2
- package/dist/email/templates/trial-expiry.d.ts.map +1 -1
- package/dist/email/templates/trial-expiry.js +12 -36
- package/dist/email/templates/trial-expiry.js.map +1 -1
- package/dist/email/templates/trial-warning.d.ts +2 -2
- package/dist/email/templates/trial-warning.d.ts.map +1 -1
- package/dist/email/templates/trial-warning.js +15 -32
- package/dist/email/templates/trial-warning.js.map +1 -1
- package/dist/email/templates/verify-email.d.ts +2 -2
- package/dist/email/templates/verify-email.d.ts.map +1 -1
- package/dist/email/templates/verify-email.js +10 -22
- package/dist/email/templates/verify-email.js.map +1 -1
- package/dist/email/templates/welcome.d.ts +2 -2
- package/dist/email/templates/welcome.d.ts.map +1 -1
- package/dist/email/templates/welcome.js +13 -20
- package/dist/email/templates/welcome.js.map +1 -1
- package/dist/email/templates/workspace-invitation.d.ts +2 -2
- package/dist/email/templates/workspace-invitation.d.ts.map +1 -1
- package/dist/email/templates/workspace-invitation.js +12 -26
- package/dist/email/templates/workspace-invitation.js.map +1 -1
- package/dist/env.d.ts +5 -10
- package/dist/env.d.ts.map +1 -1
- package/dist/env.js +41 -31
- package/dist/env.js.map +1 -1
- package/dist/identity/audit.d.ts +11 -24
- package/dist/identity/audit.d.ts.map +1 -1
- package/dist/identity/audit.js +13 -27
- package/dist/identity/audit.js.map +1 -1
- package/dist/identity/errors.d.ts +4 -12
- package/dist/identity/errors.d.ts.map +1 -1
- package/dist/identity/errors.js +2 -8
- package/dist/identity/errors.js.map +1 -1
- package/dist/identity/index.d.ts +5 -13
- package/dist/identity/index.d.ts.map +1 -1
- package/dist/identity/index.js +4 -12
- package/dist/identity/index.js.map +1 -1
- package/dist/identity/service.d.ts +13 -47
- package/dist/identity/service.d.ts.map +1 -1
- package/dist/identity/service.js +31 -78
- package/dist/identity/service.js.map +1 -1
- package/dist/identity/types.d.ts +1 -4
- package/dist/identity/types.d.ts.map +1 -1
- package/dist/identity/types.js +0 -3
- package/dist/identity/types.js.map +1 -1
- package/dist/index.d.ts +1 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -10
- package/dist/index.js.map +1 -1
- package/dist/logger.d.ts +7 -18
- package/dist/logger.d.ts.map +1 -1
- package/dist/logger.js +45 -49
- package/dist/logger.js.map +1 -1
- package/dist/money.d.ts +95 -0
- package/dist/money.d.ts.map +1 -0
- package/dist/money.js +208 -0
- package/dist/money.js.map +1 -0
- package/dist/notifications/index.d.ts +9 -43
- package/dist/notifications/index.d.ts.map +1 -1
- package/dist/notifications/index.js +9 -49
- package/dist/notifications/index.js.map +1 -1
- package/dist/notifications/triggers.d.ts +9 -32
- package/dist/notifications/triggers.d.ts.map +1 -1
- package/dist/notifications/triggers.js +21 -58
- package/dist/notifications/triggers.js.map +1 -1
- package/dist/notifications/types.d.ts +1 -10
- package/dist/notifications/types.d.ts.map +1 -1
- package/dist/notifications/types.js +0 -9
- package/dist/notifications/types.js.map +1 -1
- package/dist/prompt.d.ts +38 -0
- package/dist/prompt.d.ts.map +1 -0
- package/dist/prompt.js +118 -0
- package/dist/prompt.js.map +1 -0
- package/dist/registry.d.ts +32 -0
- package/dist/registry.d.ts.map +1 -0
- package/dist/registry.js +60 -0
- package/dist/registry.js.map +1 -0
- package/dist/request-context.d.ts +49 -0
- package/dist/request-context.d.ts.map +1 -0
- package/dist/request-context.js +100 -0
- package/dist/request-context.js.map +1 -0
- package/dist/storage/index.d.ts +65 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/storage/index.js +109 -0
- package/dist/storage/index.js.map +1 -0
- package/package.json +74 -24
- package/src/attachments/errors.ts +18 -0
- package/src/attachments/index.ts +22 -0
- package/src/attachments/service.ts +178 -0
- package/src/attachments/types.ts +6 -0
- package/src/conversations/errors.ts +45 -0
- package/src/conversations/index.ts +39 -0
- package/src/conversations/service.ts +594 -0
- package/src/conversations/types.ts +15 -0
- package/src/db/client.ts +91 -0
- package/src/db/index.ts +3 -0
- package/src/db/migrations/0000_baseline.sql +652 -0
- package/src/db/migrations/0001_reconcile_chain_built_databases.sql +53 -0
- package/src/db/migrations/0002_webhook_claim_lease.sql +1 -0
- package/src/db/migrations/README.md +74 -36
- package/src/db/migrations/legacy-chain.json +197 -0
- package/src/db/migrations/meta/0000_snapshot.json +4182 -157
- package/src/db/migrations/meta/0002_snapshot.json +2478 -368
- package/src/db/migrations/meta/_journal.json +6 -279
- package/src/db/schema/agents.ts +57 -0
- package/src/db/schema/ai.ts +174 -0
- package/src/db/schema/auth.ts +183 -0
- package/src/db/schema/billing.ts +209 -0
- package/src/db/schema/feature-flags.ts +20 -0
- package/src/db/schema/identity.ts +250 -0
- package/src/db/schema/index.ts +12 -0
- package/src/db/schema/notifications.ts +31 -0
- package/src/db/schema/usage.ts +269 -0
- package/src/db/validate.ts +63 -0
- package/src/db/workspace-queries.ts +64 -0
- package/src/documents/classifier.ts +61 -0
- package/src/documents/errors.ts +44 -0
- package/src/documents/index.ts +24 -0
- package/src/documents/service.ts +256 -0
- package/src/documents/types.ts +24 -0
- package/src/email/brand.ts +24 -0
- package/src/email/index.ts +19 -0
- package/src/email/provider.ts +278 -0
- package/src/email/send.ts +169 -0
- package/src/email/senders.ts +292 -0
- package/src/email/templates/base-layout.tsx +145 -0
- package/src/email/templates/index.ts +28 -0
- package/src/email/templates/password-reset.tsx +72 -0
- package/src/email/templates/payment-failed.tsx +77 -0
- package/src/email/templates/quota-warning.tsx +118 -0
- package/src/email/templates/subscription-confirmed.tsx +91 -0
- package/src/email/templates/trial-expiry.tsx +124 -0
- package/src/email/templates/trial-warning.tsx +104 -0
- package/src/email/templates/verify-email.tsx +72 -0
- package/src/email/templates/welcome.tsx +64 -0
- package/src/email/templates/workspace-invitation.tsx +105 -0
- package/src/env.ts +180 -0
- package/src/identity/audit.ts +65 -0
- package/src/identity/errors.ts +44 -0
- package/src/identity/index.ts +26 -0
- package/src/identity/service.ts +202 -0
- package/src/identity/types.ts +28 -0
- package/src/index.ts +4 -0
- package/src/logger.ts +198 -0
- package/src/money.ts +270 -0
- package/src/notifications/index.ts +108 -0
- package/src/notifications/triggers.ts +158 -0
- package/src/notifications/types.ts +18 -0
- package/src/prompt.ts +142 -0
- package/src/registry.ts +75 -0
- package/src/request-context.ts +137 -0
- package/src/storage/index.ts +153 -0
- package/dist/db/schema/rag.d.ts +0 -171
- package/dist/db/schema/rag.d.ts.map +0 -1
- package/dist/db/schema/rag.js +0 -42
- package/dist/db/schema/rag.js.map +0 -1
- package/src/db/migrations/0000_sharp_night_nurse.sql +0 -52
- package/src/db/migrations/0001_hesitant_vapor.sql +0 -40
- package/src/db/migrations/0002_numerous_lady_vermin.sql +0 -235
- package/src/db/migrations/0003_mighty_jean_grey.sql +0 -37
- package/src/db/migrations/0004_cynical_grandmaster.sql +0 -2
- package/src/db/migrations/0005_careful_switch.sql +0 -8
- package/src/db/migrations/0006_tense_blue_marvel.sql +0 -16
- package/src/db/migrations/0007_next_squadron_sinister.sql +0 -1
- package/src/db/migrations/0008_powerful_scream.sql +0 -39
- package/src/db/migrations/0009_sad_ink.sql +0 -1
- package/src/db/migrations/0010_shocking_omega_flight.sql +0 -2
- package/src/db/migrations/0011_ambiguous_otto_octavius.sql +0 -151
- package/src/db/migrations/0011_hnsw_vector_index.sql +0 -17
- package/src/db/migrations/0012_user_profiles.sql +0 -30
- package/src/db/migrations/0013_trending_seasonal_columns.sql +0 -9
- package/src/db/migrations/0014_add_product_type_to_agents.sql +0 -6
- package/src/db/migrations/0015_new_v1_tables.sql +0 -149
- package/src/db/migrations/0016_document_types.sql +0 -30
- package/src/db/migrations/0017_document_metadata.sql +0 -2
- package/src/db/migrations/0018_identity_graph.sql +0 -200
- package/src/db/migrations/0019_db_driven_prompts.sql +0 -20
- package/src/db/migrations/0020_pending_extractions.sql +0 -35
- package/src/db/migrations/0021_rag_documents.sql +0 -39
- package/src/db/migrations/0022_user_quotas_usage_jsonb.sql +0 -70
- package/src/db/migrations/0023_user_facts_user_scoped_unique.sql +0 -17
- package/src/db/migrations/0024_user_memories_hnsw.sql +0 -23
- package/src/db/migrations/0025_audit_trigger_errcode.sql +0 -21
- package/src/db/migrations/0026_user_profile_snapshots_composite_pk.sql +0 -17
- package/src/db/migrations/0027_billing_settings_mnt_columns.sql +0 -54
- package/src/db/migrations/0028_trial_credits_normalized_email.sql +0 -37
- package/src/db/migrations/0029_usage_records_conversation_idx.sql +0 -13
- package/src/db/migrations/0030_pending_extractions_composite_idx.sql +0 -11
- package/src/db/migrations/0031_rag_documents_hnsw.sql +0 -16
- package/src/db/migrations/0032_rate_limit_unique_idx.sql +0 -16
- package/src/db/migrations/0033_pending_extractions_partial_idx.sql +0 -18
- package/src/db/migrations/0034_rate_limit_count.sql +0 -9
- package/src/db/migrations/0035_credit_reservations.sql +0 -24
- package/src/db/migrations/0036_executions_audit_jobs.sql +0 -96
- package/src/db/migrations/0037_rate_limit_minute_bucket.sql +0 -46
- package/src/db/migrations/0038_user_quotas_generic_usage.sql +0 -25
- package/src/db/migrations/0039_platform_admin_impersonation.sql +0 -27
- package/src/db/migrations/0040_ee_audit_chain.sql +0 -23
- package/src/db/migrations/meta/0001_snapshot.json +0 -631
- package/src/db/migrations/meta/0003_snapshot.json +0 -2488
- package/src/db/migrations/meta/0004_snapshot.json +0 -2500
- package/src/db/migrations/meta/0005_snapshot.json +0 -2548
- package/src/db/migrations/meta/0006_snapshot.json +0 -2650
- package/src/db/migrations/meta/0007_snapshot.json +0 -2657
- package/src/db/migrations/meta/0008_snapshot.json +0 -2719
- package/src/db/migrations/meta/0009_snapshot.json +0 -2726
- package/src/db/migrations/meta/0010_snapshot.json +0 -2739
- package/src/db/migrations/meta/0011_snapshot.json +0 -3886
package/dist/db/schema/index.js
CHANGED
|
@@ -1,43 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
*
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
export * from "./
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
//
|
|
14
|
-
// Organization plugin indexes (TECH-02 verified pattern):
|
|
15
|
-
// Better-Auth's organization plugin creates these indexes automatically:
|
|
16
|
-
// - member.organizationId (workspace member lookup)
|
|
17
|
-
// - member.userId (user's memberships lookup)
|
|
18
|
-
// - invitation.organizationId (workspace invitations lookup)
|
|
19
|
-
// - invitation.email (invited email lookup)
|
|
20
|
-
// These indexes are created by Better-Auth when tables are auto-created on first use.
|
|
21
|
-
// No manual migration needed — plugin handles all schema management.
|
|
22
|
-
// Billing tables (Phase 11)
|
|
23
|
-
export * from "./billing";
|
|
24
|
-
// Usage tracking tables (Phase 12)
|
|
25
|
-
export * from "./usage";
|
|
26
|
-
// Notification tables (Phase 14)
|
|
27
|
-
export * from "./notifications";
|
|
28
|
-
// Feature flags (Phase 15)
|
|
29
|
-
export * from "./feature-flags";
|
|
30
|
-
// AI tables (Phase 16)
|
|
31
|
-
export * from "./ai";
|
|
32
|
-
// Agents table (Phase 37)
|
|
33
|
-
export * from "./agents";
|
|
34
|
-
// User Identity Graph (AI-ARCHITECTURE Phase B)
|
|
35
|
-
// Four tables that back the cross-product memory system:
|
|
36
|
-
// user_facts, user_memories, user_profile_snapshots, user_memory_audit.
|
|
37
|
-
export * from "./identity";
|
|
38
|
-
// RAG documents table (AI-ARCHITECTURE Phase H)
|
|
39
|
-
// Single shared table that backs every collection in
|
|
40
|
-
// @intelligo-dev/agents/rag. Per-collection wrappers live in the
|
|
41
|
-
// product packages.
|
|
42
|
-
export * from "./rag";
|
|
1
|
+
// Better-Auth's tables, including organization, member and invitation.
|
|
2
|
+
// Product code goes through the Better-Auth API rather than querying the
|
|
3
|
+
// organization tables directly, so membership and role rules stay in one
|
|
4
|
+
// place.
|
|
5
|
+
export * from "./auth.js";
|
|
6
|
+
export * from "./billing.js";
|
|
7
|
+
export * from "./usage.js";
|
|
8
|
+
export * from "./notifications.js";
|
|
9
|
+
export * from "./feature-flags.js";
|
|
10
|
+
export * from "./ai.js";
|
|
11
|
+
export * from "./agents.js";
|
|
12
|
+
export * from "./identity.js";
|
|
43
13
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/db/schema/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/db/schema/index.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,yEAAyE;AACzE,yEAAyE;AACzE,SAAS;AACT,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,MAAM,CAAC;AACrB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC"}
|
|
@@ -1,21 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
* These are user-scoped (not workspace-scoped) so a user sees all their notifications
|
|
6
|
-
* across workspaces in one place.
|
|
7
|
-
*
|
|
8
|
-
* Pattern: snake_case columns in PostgreSQL, camelCase TypeScript API (via Drizzle mapping)
|
|
9
|
-
*/
|
|
10
|
-
/**
|
|
11
|
-
* Notifications table - User-facing notification records (NOTIF-06)
|
|
12
|
-
*
|
|
13
|
-
* Each notification has a type (matching NotificationType), a title/message for display,
|
|
14
|
-
* and optional metadata for additional context. The isRead flag supports read/unread
|
|
15
|
-
* filtering for the notification bell badge.
|
|
16
|
-
*
|
|
17
|
-
* userId references Better-Auth's user table by convention (no FK constraint).
|
|
18
|
-
* workspaceId is nullable — some notifications are user-level (e.g., payment_failed).
|
|
2
|
+
* User-scoped, not workspace-scoped, so a user sees their notifications from
|
|
3
|
+
* every workspace in one place. `userId` references the users table by
|
|
4
|
+
* convention (no FK); `workspaceId` is null for user-level notifications.
|
|
19
5
|
*/
|
|
20
6
|
export declare const notifications: import("drizzle-orm/pg-core").PgTableWithColumns<{
|
|
21
7
|
name: "notifications";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notifications.d.ts","sourceRoot":"","sources":["../../../src/db/schema/notifications.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"notifications.d.ts","sourceRoot":"","sources":["../../../src/db/schema/notifications.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoBzB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,OAAO,aAAa,CAAC,YAAY,CAAC;AAC7D,MAAM,MAAM,kBAAkB,GAAG,OAAO,aAAa,CAAC,YAAY,CAAC"}
|
|
@@ -1,22 +1,8 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Notifications Database Schema
|
|
3
|
-
*
|
|
4
|
-
* Persistent notifications for users (quota warnings, payment events, team updates).
|
|
5
|
-
* These are user-scoped (not workspace-scoped) so a user sees all their notifications
|
|
6
|
-
* across workspaces in one place.
|
|
7
|
-
*
|
|
8
|
-
* Pattern: snake_case columns in PostgreSQL, camelCase TypeScript API (via Drizzle mapping)
|
|
9
|
-
*/
|
|
10
1
|
import { pgTable, text, timestamp, boolean, index } from "drizzle-orm/pg-core";
|
|
11
2
|
/**
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
* and optional metadata for additional context. The isRead flag supports read/unread
|
|
16
|
-
* filtering for the notification bell badge.
|
|
17
|
-
*
|
|
18
|
-
* userId references Better-Auth's user table by convention (no FK constraint).
|
|
19
|
-
* workspaceId is nullable — some notifications are user-level (e.g., payment_failed).
|
|
3
|
+
* User-scoped, not workspace-scoped, so a user sees their notifications from
|
|
4
|
+
* every workspace in one place. `userId` references the users table by
|
|
5
|
+
* convention (no FK); `workspaceId` is null for user-level notifications.
|
|
20
6
|
*/
|
|
21
7
|
export const notifications = pgTable("notifications", {
|
|
22
8
|
id: text("id")
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notifications.js","sourceRoot":"","sources":["../../../src/db/schema/notifications.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"notifications.js","sourceRoot":"","sources":["../../../src/db/schema/notifications.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAE/E;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,OAAO,CAClC,eAAe,EACf;IACE,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC;SACX,UAAU,EAAE;SACZ,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;IACxC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE;IACjC,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC;IACjC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE;IAC5B,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE;IAC9B,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE;IAClC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACnD,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC;IAC1B,SAAS,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE;CAC1D,EACD,CAAC,KAAK,EAAE,EAAE,CAAC;IACT,KAAK,CAAC,2BAA2B,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC;IACnD,KAAK,CAAC,mCAAmC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;IACzE,KAAK,CAAC,8BAA8B,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC;CAC1D,CACF,CAAC"}
|
|
@@ -1,18 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
* Tables for tracking per-request token consumption and aggregated monthly usage.
|
|
5
|
-
* Used by the quota enforcement engine to check limits before AI requests
|
|
6
|
-
* and record consumption atomically after completion.
|
|
7
|
-
*
|
|
8
|
-
* Pattern: snake_case columns in PostgreSQL, camelCase TypeScript API (via Drizzle mapping)
|
|
2
|
+
* Token consumption per request and aggregated per period, which the quota
|
|
3
|
+
* engine checks before AI requests and records into after them.
|
|
9
4
|
*/
|
|
10
5
|
/**
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
* Every AI request creates one record with input/output/total tokens,
|
|
14
|
-
* the model used, and the agent that handled it. This provides the
|
|
15
|
-
* detailed breakdown for per-model and per-agent reporting (QUOTA-07).
|
|
6
|
+
* One row per AI request: tokens, model and agent, for per-model and
|
|
7
|
+
* per-agent reporting.
|
|
16
8
|
*/
|
|
17
9
|
export declare const usageRecords: import("drizzle-orm/pg-core").PgTableWithColumns<{
|
|
18
10
|
name: "usage_records";
|
|
@@ -171,11 +163,11 @@ export declare const usageRecords: import("drizzle-orm/pg-core").PgTableWithColu
|
|
|
171
163
|
identity: undefined;
|
|
172
164
|
generated: undefined;
|
|
173
165
|
}, {}, {}>;
|
|
174
|
-
|
|
175
|
-
name: "
|
|
166
|
+
providerCostMicros: import("drizzle-orm/pg-core").PgColumn<{
|
|
167
|
+
name: "provider_cost_micros";
|
|
176
168
|
tableName: "usage_records";
|
|
177
169
|
dataType: "number";
|
|
178
|
-
columnType: "
|
|
170
|
+
columnType: "PgBigInt53";
|
|
179
171
|
data: number;
|
|
180
172
|
driverParam: string | number;
|
|
181
173
|
notNull: true;
|
|
@@ -188,11 +180,11 @@ export declare const usageRecords: import("drizzle-orm/pg-core").PgTableWithColu
|
|
|
188
180
|
identity: undefined;
|
|
189
181
|
generated: undefined;
|
|
190
182
|
}, {}, {}>;
|
|
191
|
-
|
|
192
|
-
name: "
|
|
183
|
+
marginBp: import("drizzle-orm/pg-core").PgColumn<{
|
|
184
|
+
name: "margin_bp";
|
|
193
185
|
tableName: "usage_records";
|
|
194
186
|
dataType: "number";
|
|
195
|
-
columnType: "
|
|
187
|
+
columnType: "PgInteger";
|
|
196
188
|
data: number;
|
|
197
189
|
driverParam: string | number;
|
|
198
190
|
notNull: true;
|
|
@@ -205,11 +197,11 @@ export declare const usageRecords: import("drizzle-orm/pg-core").PgTableWithColu
|
|
|
205
197
|
identity: undefined;
|
|
206
198
|
generated: undefined;
|
|
207
199
|
}, {}, {}>;
|
|
208
|
-
|
|
209
|
-
name: "
|
|
200
|
+
usdRateMicros: import("drizzle-orm/pg-core").PgColumn<{
|
|
201
|
+
name: "usd_rate_micros";
|
|
210
202
|
tableName: "usage_records";
|
|
211
203
|
dataType: "number";
|
|
212
|
-
columnType: "
|
|
204
|
+
columnType: "PgBigInt53";
|
|
213
205
|
data: number;
|
|
214
206
|
driverParam: string | number;
|
|
215
207
|
notNull: true;
|
|
@@ -222,11 +214,11 @@ export declare const usageRecords: import("drizzle-orm/pg-core").PgTableWithColu
|
|
|
222
214
|
identity: undefined;
|
|
223
215
|
generated: undefined;
|
|
224
216
|
}, {}, {}>;
|
|
225
|
-
|
|
226
|
-
name: "
|
|
217
|
+
chargedMicros: import("drizzle-orm/pg-core").PgColumn<{
|
|
218
|
+
name: "charged_micros";
|
|
227
219
|
tableName: "usage_records";
|
|
228
220
|
dataType: "number";
|
|
229
|
-
columnType: "
|
|
221
|
+
columnType: "PgBigInt53";
|
|
230
222
|
data: number;
|
|
231
223
|
driverParam: string | number;
|
|
232
224
|
notNull: true;
|
|
@@ -239,6 +231,23 @@ export declare const usageRecords: import("drizzle-orm/pg-core").PgTableWithColu
|
|
|
239
231
|
identity: undefined;
|
|
240
232
|
generated: undefined;
|
|
241
233
|
}, {}, {}>;
|
|
234
|
+
currency: import("drizzle-orm/pg-core").PgColumn<{
|
|
235
|
+
name: "currency";
|
|
236
|
+
tableName: "usage_records";
|
|
237
|
+
dataType: "string";
|
|
238
|
+
columnType: "PgText";
|
|
239
|
+
data: string;
|
|
240
|
+
driverParam: string;
|
|
241
|
+
notNull: true;
|
|
242
|
+
hasDefault: true;
|
|
243
|
+
isPrimaryKey: false;
|
|
244
|
+
isAutoincrement: false;
|
|
245
|
+
hasRuntimeDefault: false;
|
|
246
|
+
enumValues: [string, ...string[]];
|
|
247
|
+
baseColumn: never;
|
|
248
|
+
identity: undefined;
|
|
249
|
+
generated: undefined;
|
|
250
|
+
}, {}, {}>;
|
|
242
251
|
requestId: import("drizzle-orm/pg-core").PgColumn<{
|
|
243
252
|
name: "request_id";
|
|
244
253
|
tableName: "usage_records";
|
|
@@ -328,11 +337,8 @@ export declare const usageRecords: import("drizzle-orm/pg-core").PgTableWithColu
|
|
|
328
337
|
dialect: "pg";
|
|
329
338
|
}>;
|
|
330
339
|
/**
|
|
331
|
-
*
|
|
332
|
-
*
|
|
333
|
-
* Instead of SUM(totalTokens) on every request, we increment a counter atomically.
|
|
334
|
-
* One row per workspace per billing period. The usage_records table provides
|
|
335
|
-
* the detailed breakdown for reporting; this table provides O(1) quota checks.
|
|
340
|
+
* One row per workspace per billing period, incremented atomically, so a
|
|
341
|
+
* quota check is O(1) instead of a SUM over usage_records.
|
|
336
342
|
*/
|
|
337
343
|
export declare const monthlyUsage: import("drizzle-orm/pg-core").PgTableWithColumns<{
|
|
338
344
|
name: "monthly_usage";
|
|
@@ -423,11 +429,11 @@ export declare const monthlyUsage: import("drizzle-orm/pg-core").PgTableWithColu
|
|
|
423
429
|
identity: undefined;
|
|
424
430
|
generated: undefined;
|
|
425
431
|
}, {}, {}>;
|
|
426
|
-
|
|
427
|
-
name: "
|
|
432
|
+
allowanceUsedMicros: import("drizzle-orm/pg-core").PgColumn<{
|
|
433
|
+
name: "allowance_used_micros";
|
|
428
434
|
tableName: "monthly_usage";
|
|
429
435
|
dataType: "number";
|
|
430
|
-
columnType: "
|
|
436
|
+
columnType: "PgBigInt53";
|
|
431
437
|
data: number;
|
|
432
438
|
driverParam: string | number;
|
|
433
439
|
notNull: true;
|
|
@@ -440,6 +446,23 @@ export declare const monthlyUsage: import("drizzle-orm/pg-core").PgTableWithColu
|
|
|
440
446
|
identity: undefined;
|
|
441
447
|
generated: undefined;
|
|
442
448
|
}, {}, {}>;
|
|
449
|
+
currency: import("drizzle-orm/pg-core").PgColumn<{
|
|
450
|
+
name: "currency";
|
|
451
|
+
tableName: "monthly_usage";
|
|
452
|
+
dataType: "string";
|
|
453
|
+
columnType: "PgText";
|
|
454
|
+
data: string;
|
|
455
|
+
driverParam: string;
|
|
456
|
+
notNull: true;
|
|
457
|
+
hasDefault: true;
|
|
458
|
+
isPrimaryKey: false;
|
|
459
|
+
isAutoincrement: false;
|
|
460
|
+
hasRuntimeDefault: false;
|
|
461
|
+
enumValues: [string, ...string[]];
|
|
462
|
+
baseColumn: never;
|
|
463
|
+
identity: undefined;
|
|
464
|
+
generated: undefined;
|
|
465
|
+
}, {}, {}>;
|
|
443
466
|
requestCount: import("drizzle-orm/pg-core").PgColumn<{
|
|
444
467
|
name: "request_count";
|
|
445
468
|
tableName: "monthly_usage";
|
|
@@ -478,14 +501,9 @@ export declare const monthlyUsage: import("drizzle-orm/pg-core").PgTableWithColu
|
|
|
478
501
|
dialect: "pg";
|
|
479
502
|
}>;
|
|
480
503
|
/**
|
|
481
|
-
*
|
|
482
|
-
*
|
|
483
|
-
*
|
|
484
|
-
* The unique constraint on workspace_id enforces one trial per workspace (TRIAL-07).
|
|
485
|
-
* Trial credits are separate from purchased credits (credit_balances).
|
|
486
|
-
* They act as a fallback when plan quota is exceeded or credit balance is zero.
|
|
487
|
-
*
|
|
488
|
-
* Status flow: active → depleted (credits hit 0) or active → converted (paid plan)
|
|
504
|
+
* One-time trial grant, one per workspace (unique constraint). Separate from
|
|
505
|
+
* purchased credits; used when the plan quota is exceeded or the credit
|
|
506
|
+
* balance is zero. Status: active → depleted, converted or expired.
|
|
489
507
|
*/
|
|
490
508
|
export declare const trialCredits: import("drizzle-orm/pg-core").PgTableWithColumns<{
|
|
491
509
|
name: "trial_credits";
|
|
@@ -576,11 +594,11 @@ export declare const trialCredits: import("drizzle-orm/pg-core").PgTableWithColu
|
|
|
576
594
|
identity: undefined;
|
|
577
595
|
generated: undefined;
|
|
578
596
|
}, {}, {}>;
|
|
579
|
-
|
|
580
|
-
name: "
|
|
597
|
+
initialMicros: import("drizzle-orm/pg-core").PgColumn<{
|
|
598
|
+
name: "initial_micros";
|
|
581
599
|
tableName: "trial_credits";
|
|
582
600
|
dataType: "number";
|
|
583
|
-
columnType: "
|
|
601
|
+
columnType: "PgBigInt53";
|
|
584
602
|
data: number;
|
|
585
603
|
driverParam: string | number;
|
|
586
604
|
notNull: true;
|
|
@@ -593,11 +611,11 @@ export declare const trialCredits: import("drizzle-orm/pg-core").PgTableWithColu
|
|
|
593
611
|
identity: undefined;
|
|
594
612
|
generated: undefined;
|
|
595
613
|
}, {}, {}>;
|
|
596
|
-
|
|
597
|
-
name: "
|
|
614
|
+
usedMicros: import("drizzle-orm/pg-core").PgColumn<{
|
|
615
|
+
name: "used_micros";
|
|
598
616
|
tableName: "trial_credits";
|
|
599
617
|
dataType: "number";
|
|
600
|
-
columnType: "
|
|
618
|
+
columnType: "PgBigInt53";
|
|
601
619
|
data: number;
|
|
602
620
|
driverParam: string | number;
|
|
603
621
|
notNull: true;
|
|
@@ -610,11 +628,11 @@ export declare const trialCredits: import("drizzle-orm/pg-core").PgTableWithColu
|
|
|
610
628
|
identity: undefined;
|
|
611
629
|
generated: undefined;
|
|
612
630
|
}, {}, {}>;
|
|
613
|
-
|
|
614
|
-
name: "
|
|
631
|
+
remainingMicros: import("drizzle-orm/pg-core").PgColumn<{
|
|
632
|
+
name: "remaining_micros";
|
|
615
633
|
tableName: "trial_credits";
|
|
616
634
|
dataType: "number";
|
|
617
|
-
columnType: "
|
|
635
|
+
columnType: "PgBigInt53";
|
|
618
636
|
data: number;
|
|
619
637
|
driverParam: string | number;
|
|
620
638
|
notNull: true;
|
|
@@ -627,6 +645,23 @@ export declare const trialCredits: import("drizzle-orm/pg-core").PgTableWithColu
|
|
|
627
645
|
identity: undefined;
|
|
628
646
|
generated: undefined;
|
|
629
647
|
}, {}, {}>;
|
|
648
|
+
currency: import("drizzle-orm/pg-core").PgColumn<{
|
|
649
|
+
name: "currency";
|
|
650
|
+
tableName: "trial_credits";
|
|
651
|
+
dataType: "string";
|
|
652
|
+
columnType: "PgText";
|
|
653
|
+
data: string;
|
|
654
|
+
driverParam: string;
|
|
655
|
+
notNull: true;
|
|
656
|
+
hasDefault: true;
|
|
657
|
+
isPrimaryKey: false;
|
|
658
|
+
isAutoincrement: false;
|
|
659
|
+
hasRuntimeDefault: false;
|
|
660
|
+
enumValues: [string, ...string[]];
|
|
661
|
+
baseColumn: never;
|
|
662
|
+
identity: undefined;
|
|
663
|
+
generated: undefined;
|
|
664
|
+
}, {}, {}>;
|
|
630
665
|
status: import("drizzle-orm/pg-core").PgColumn<{
|
|
631
666
|
name: "status";
|
|
632
667
|
tableName: "trial_credits";
|
|
@@ -767,20 +802,10 @@ export declare const trialCredits: import("drizzle-orm/pg-core").PgTableWithColu
|
|
|
767
802
|
dialect: "pg";
|
|
768
803
|
}>;
|
|
769
804
|
/**
|
|
770
|
-
*
|
|
771
|
-
*
|
|
772
|
-
*
|
|
773
|
-
*
|
|
774
|
-
* concurrent requests observe 1..N and exactly `limit` are admitted.
|
|
775
|
-
*
|
|
776
|
-
* An earlier version used ON CONFLICT DO NOTHING, which admitted
|
|
777
|
-
* exactly ONE request per minute on every plan — the per-plan limit was
|
|
778
|
-
* never consulted. See packages/billing/src/rate-limit.ts.
|
|
779
|
-
*
|
|
780
|
-
* Old buckets are deleted by the billing-maintenance cron.
|
|
781
|
-
*
|
|
782
|
-
* Database-backed rate limiting is the correct choice for <10K users
|
|
783
|
-
* (no Redis dependency, per architecture decisions).
|
|
805
|
+
* One row per (workspace, endpoint, minute bucket). Each request upserts the
|
|
806
|
+
* row and atomically increments `count`, so N concurrent requests observe
|
|
807
|
+
* 1..N and exactly `limit` are admitted. Old buckets are deleted by the
|
|
808
|
+
* billing-maintenance job.
|
|
784
809
|
*/
|
|
785
810
|
export declare const rateLimitEntries: import("drizzle-orm/pg-core").PgTableWithColumns<{
|
|
786
811
|
name: "rate_limit_entries";
|
|
@@ -892,15 +917,9 @@ export declare const rateLimitEntries: import("drizzle-orm/pg-core").PgTableWith
|
|
|
892
917
|
dialect: "pg";
|
|
893
918
|
}>;
|
|
894
919
|
/**
|
|
895
|
-
*
|
|
896
|
-
*
|
|
897
|
-
*
|
|
898
|
-
* period-based deduplication key. The unique constraint on
|
|
899
|
-
* (workspaceId, type, periodKey) prevents sending the same notification
|
|
900
|
-
* twice in the same billing period.
|
|
901
|
-
*
|
|
902
|
-
* Phase 14 will update the channel from "console" to "email" and use
|
|
903
|
-
* Resend for actual delivery. For now, notifications are logged to console.
|
|
920
|
+
* Sent quota and trial notifications. The unique constraint on
|
|
921
|
+
* (workspaceId, type, periodKey) keeps one notification from being sent
|
|
922
|
+
* twice in a billing period.
|
|
904
923
|
*/
|
|
905
924
|
export declare const notificationHistory: import("drizzle-orm/pg-core").PgTableWithColumns<{
|
|
906
925
|
name: "notification_history";
|
|
@@ -1029,11 +1048,9 @@ export declare const notificationHistory: import("drizzle-orm/pg-core").PgTableW
|
|
|
1029
1048
|
dialect: "pg";
|
|
1030
1049
|
}>;
|
|
1031
1050
|
/**
|
|
1032
|
-
*
|
|
1033
|
-
*
|
|
1034
|
-
*
|
|
1035
|
-
* live in the `usage` JSONB map and increment atomically in SQL, so a
|
|
1036
|
-
* quota check is O(1) with no SUM over usage_records.
|
|
1051
|
+
* Per-user, per-action usage counters, one row per user and workspace (not
|
|
1052
|
+
* per period). Counters live in the `usage` JSONB map and increment
|
|
1053
|
+
* atomically in SQL, so a quota check is O(1).
|
|
1037
1054
|
*/
|
|
1038
1055
|
export declare const userQuotas: import("drizzle-orm/pg-core").PgTableWithColumns<{
|
|
1039
1056
|
name: "user_quotas";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usage.d.ts","sourceRoot":"","sources":["../../../src/db/schema/usage.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"usage.d.ts","sourceRoot":"","sources":["../../../src/db/schema/usage.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAeH;;;GAGG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyDxB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyBxB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqCxB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0B5B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqB/B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+BtB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,OAAO,UAAU,CAAC,YAAY,CAAC;AACvD,MAAM,MAAM,eAAe,GAAG,OAAO,UAAU,CAAC,YAAY,CAAC;AAC7D,MAAM,MAAM,WAAW,GAAG,OAAO,YAAY,CAAC,YAAY,CAAC;AAC3D,MAAM,MAAM,iBAAiB,GAAG,OAAO,YAAY,CAAC,YAAY,CAAC;AACjE,MAAM,MAAM,YAAY,GAAG,OAAO,YAAY,CAAC,YAAY,CAAC;AAC5D,MAAM,MAAM,kBAAkB,GAAG,OAAO,YAAY,CAAC,YAAY,CAAC;AAClE,MAAM,MAAM,WAAW,GAAG,OAAO,YAAY,CAAC,YAAY,CAAC;AAC3D,MAAM,MAAM,iBAAiB,GAAG,OAAO,YAAY,CAAC,YAAY,CAAC;AACjE,MAAM,MAAM,cAAc,GAAG,OAAO,gBAAgB,CAAC,YAAY,CAAC;AAClE,MAAM,MAAM,oBAAoB,GAAG,OAAO,gBAAgB,CAAC,YAAY,CAAC;AACxE,MAAM,MAAM,yBAAyB,GAAG,OAAO,mBAAmB,CAAC,YAAY,CAAC;AAChF,MAAM,MAAM,+BAA+B,GACzC,OAAO,mBAAmB,CAAC,YAAY,CAAC"}
|