@happyvertical/smrt-expenses 0.53.1 → 0.53.2

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/index.js CHANGED
@@ -17,7 +17,7 @@ var __exportAll = (all, no_symbols) => {
17
17
  };
18
18
  //#endregion
19
19
  //#region src/__smrt-register__.ts
20
- ObjectRegistry.registerPackageManifest(JSON.parse("{\"version\":\"1.0.0\",\"timestamp\":0,\"packageName\":\"@happyvertical/smrt-expenses\",\"packageVersion\":\"0.53.1\",\"objects\":{\"@happyvertical/smrt-expenses:ExpenseCollection\":{\"name\":\"expensecollection\",\"className\":\"ExpenseCollection\",\"qualifiedName\":\"@happyvertical/smrt-expenses:ExpenseCollection\",\"collection\":\"expenses\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/expenses/src/collections/ExpenseCollection.ts\",\"packageName\":\"@happyvertical/smrt-expenses\",\"fields\":{},\"methods\":{\"forCostObject\":{\"name\":\"forCostObject\",\"async\":true,\"parameters\":[{\"name\":\"costObjectType\",\"type\":\"string\",\"optional\":false},{\"name\":\"costObjectId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<Expense[]>\",\"isStatic\":false,\"isPublic\":true},\"totalsByCurrency\":{\"name\":\"totalsByCurrency\",\"async\":true,\"parameters\":[{\"name\":\"options\",\"type\":\"ExpenseTotalsOptions\",\"optional\":true}],\"returnType\":\"Promise<CurrencyTotals>\",\"isStatic\":false,\"isPublic\":true},\"commitmentPosition\":{\"name\":\"commitmentPosition\",\"async\":true,\"parameters\":[{\"name\":\"commitmentId\",\"type\":\"string\",\"optional\":false},{\"name\":\"options\",\"type\":\"object\",\"optional\":true,\"memberTypes\":[\"string\"]}],\"returnType\":\"Promise<CommitmentPosition>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"api\":{\"include\":[]},\"mcp\":{\"include\":[]},\"cli\":false,\"tableName\":\"expenses\"},\"extends\":\"SmrtCollection\",\"extendsTypeArg\":\"Expense\",\"exportName\":\"ExpenseCollection\",\"collectionExportName\":\"ExpenseCollectionCollection\",\"schema\":{\"tableName\":\"expenses\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"expenses\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"cost_object_type\\\" TEXT,\\n \\\"cost_object_id\\\" TEXT,\\n \\\"category\\\" TEXT,\\n \\\"description\\\" TEXT,\\n \\\"amount\\\" INTEGER,\\n \\\"currency\\\" TEXT,\\n \\\"incurred_on\\\" TEXT,\\n \\\"recorded_at\\\" TIMESTAMP,\\n \\\"recorded_by_profile_id\\\" UUID,\\n \\\"paid_by\\\" TEXT,\\n \\\"paid_by_profile_id\\\" UUID,\\n \\\"vendor_id\\\" UUID,\\n \\\"commitment_id\\\" UUID,\\n \\\"commitment_line_id\\\" UUID,\\n \\\"review_status\\\" TEXT,\\n \\\"reviewed_by_profile_id\\\" UUID,\\n \\\"reviewed_at\\\" TIMESTAMP,\\n \\\"review_note\\\" TEXT,\\n \\\"duplicate_of_id\\\" UUID,\\n \\\"reimbursable\\\" BOOLEAN,\\n \\\"reimbursed_at\\\" TIMESTAMP,\\n \\\"reimbursement_reference\\\" TEXT\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false,\"unique\":false},\"cost_object_type\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"cost_object_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"category\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"description\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false},\"currency\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"incurred_on\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"recorded_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"recorded_by_profile_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false,\"unique\":false},\"paid_by\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"paid_by_profile_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false,\"unique\":false},\"vendor_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false,\"unique\":false},\"commitment_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false,\"unique\":false},\"commitment_line_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false,\"unique\":false},\"review_status\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"reviewed_by_profile_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false,\"unique\":false},\"reviewed_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"review_note\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"duplicate_of_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"expenses\",\"column\":\"id\",\"onDelete\":\"SET NULL\",\"onUpdate\":\"CASCADE\"}},\"reimbursable\":{\"type\":\"BOOLEAN\",\"notNull\":false,\"unique\":false},\"reimbursed_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"reimbursement_reference\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false}},\"indexes\":[{\"name\":\"expenses_slug_context_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"expenses_cost_object_idx\",\"columns\":[\"tenant_id\",\"cost_object_type\",\"cost_object_id\",\"incurred_on\"]},{\"name\":\"expenses_commitment_review_idx\",\"columns\":[\"tenant_id\",\"commitment_id\",\"review_status\"]},{\"name\":\"expenses_review_status_idx\",\"columns\":[\"tenant_id\",\"review_status\",\"incurred_on\"]},{\"name\":\"expenses_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"expenses_recorded_by_profile_id_idx\",\"columns\":[\"recorded_by_profile_id\"]},{\"name\":\"expenses_paid_by_profile_id_idx\",\"columns\":[\"paid_by_profile_id\"]},{\"name\":\"expenses_vendor_id_idx\",\"columns\":[\"vendor_id\"]},{\"name\":\"expenses_commitment_id_idx\",\"columns\":[\"commitment_id\"]},{\"name\":\"expenses_commitment_line_id_idx\",\"columns\":[\"commitment_line_id\"]},{\"name\":\"expenses_reviewed_by_profile_id_idx\",\"columns\":[\"reviewed_by_profile_id\"]},{\"name\":\"expenses_duplicate_of_id_idx\",\"columns\":[\"duplicate_of_id\"]}],\"version\":\"af101807\"},\"importPath\":\"@happyvertical/smrt-expenses\"},\"@happyvertical/smrt-expenses:ExpenseReceiptCollection\":{\"name\":\"expensereceiptcollection\",\"className\":\"ExpenseReceiptCollection\",\"qualifiedName\":\"@happyvertical/smrt-expenses:ExpenseReceiptCollection\",\"collection\":\"expensereceipts\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/expenses/src/collections/ExpenseReceiptCollection.ts\",\"packageName\":\"@happyvertical/smrt-expenses\",\"fields\":{},\"methods\":{\"byLeft\":{\"name\":\"byLeft\",\"async\":true,\"parameters\":[{\"name\":\"leftId\",\"type\":\"string\",\"optional\":false},{\"name\":\"opts\",\"type\":\"JunctionFilterOptions\",\"optional\":true}],\"returnType\":\"Promise<TItem[]>\",\"isStatic\":false,\"isPublic\":true},\"byRight\":{\"name\":\"byRight\",\"async\":true,\"parameters\":[{\"name\":\"rightId\",\"type\":\"string\",\"optional\":false},{\"name\":\"opts\",\"type\":\"JunctionFilterOptions\",\"optional\":true}],\"returnType\":\"Promise<TItem[]>\",\"isStatic\":false,\"isPublic\":true},\"attach\":{\"name\":\"attach\",\"async\":true,\"parameters\":[{\"name\":\"_expenseId\",\"type\":\"string\",\"optional\":false},{\"name\":\"_assetId\",\"type\":\"string\",\"optional\":false},{\"name\":\"_opts\",\"type\":\"JunctionAttachOptions\",\"optional\":true}],\"returnType\":\"Promise<ExpenseReceipt>\",\"isStatic\":false,\"isPublic\":true},\"detach\":{\"name\":\"detach\",\"async\":true,\"parameters\":[{\"name\":\"leftId\",\"type\":\"string\",\"optional\":false},{\"name\":\"rightId\",\"type\":\"string\",\"optional\":false},{\"name\":\"opts\",\"type\":\"JunctionFilterOptions\",\"optional\":true}],\"returnType\":\"Promise<void>\",\"isStatic\":false,\"isPublic\":true},\"setLinks\":{\"name\":\"setLinks\",\"async\":true,\"parameters\":[{\"name\":\"_expenseId\",\"type\":\"string\",\"optional\":false},{\"name\":\"_assetIds\",\"type\":\"string[]\",\"optional\":false},{\"name\":\"_opts\",\"type\":\"JunctionAttachOptions\",\"optional\":true}],\"returnType\":\"Promise<void>\",\"isStatic\":false,\"isPublic\":true},\"attachReceipt\":{\"name\":\"attachReceipt\",\"async\":true,\"parameters\":[{\"name\":\"input\",\"type\":\"AttachReceiptInput\",\"optional\":false}],\"returnType\":\"Promise<ExpenseReceipt>\",\"isStatic\":false,\"isPublic\":true},\"receiptsFor\":{\"name\":\"receiptsFor\",\"async\":true,\"parameters\":[{\"name\":\"expenseId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<ExpenseReceipt[]>\",\"isStatic\":false,\"isPublic\":true},\"findDuplicateReceipts\":{\"name\":\"findDuplicateReceipts\",\"async\":true,\"parameters\":[{\"name\":\"options\",\"type\":\"FindDuplicateReceiptsOptions\",\"optional\":true}],\"returnType\":\"Promise<DuplicateReceiptGroup[]>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"api\":{\"include\":[]},\"mcp\":{\"include\":[]},\"cli\":false,\"tableName\":\"expense_receipts\"},\"extends\":\"SmrtJunction\",\"extendsTypeArg\":\"ExpenseReceipt\",\"exportName\":\"ExpenseReceiptCollection\",\"collectionExportName\":\"ExpenseReceiptCollectionCollection\",\"schema\":{\"tableName\":\"expense_receipts\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"expense_receipts\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"expense_id\\\" UUID NOT NULL,\\n \\\"asset_id\\\" UUID NOT NULL,\\n \\\"uploaded_by_profile_id\\\" UUID,\\n \\\"filename\\\" TEXT,\\n \\\"mime_type\\\" TEXT,\\n \\\"byte_count\\\" INTEGER,\\n \\\"content_sha256\\\" TEXT NOT NULL\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false,\"unique\":false},\"expense_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":true,\"unique\":false,\"foreignKey\":{\"table\":\"expenses\",\"column\":\"id\",\"onDelete\":\"CASCADE\",\"onUpdate\":\"CASCADE\"}},\"asset_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":true,\"unique\":false},\"uploaded_by_profile_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false,\"unique\":false},\"filename\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"mime_type\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"byte_count\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false},\"content_sha256\":{\"type\":\"TEXT\",\"notNull\":true,\"unique\":false}},\"indexes\":[{\"name\":\"expense_receipts_slug_context_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"expense_receipts_expense_sha256_key\",\"columns\":[\"expense_id\",\"content_sha256\"],\"unique\":true},{\"name\":\"expense_receipts_tenant_sha256_idx\",\"columns\":[\"tenant_id\",\"content_sha256\"]},{\"name\":\"expense_receipts_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"expense_receipts_asset_id_idx\",\"columns\":[\"asset_id\"]},{\"name\":\"expense_receipts_uploaded_by_profile_id_idx\",\"columns\":[\"uploaded_by_profile_id\"]}],\"version\":\"5aa77571\"},\"importPath\":\"@happyvertical/smrt-expenses\"},\"@happyvertical/smrt-expenses:Expense\":{\"name\":\"expense\",\"className\":\"Expense\",\"qualifiedName\":\"@happyvertical/smrt-expenses:Expense\",\"collection\":\"expenses\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/expenses/src/models/Expense.ts\",\"packageName\":\"@happyvertical/smrt-expenses\",\"fields\":{\"tenantId\":{\"type\":\"text\",\"required\":false,\"_meta\":{\"sqlType\":\"UUID\",\"nullable\":true,\"__tenancy\":{\"isTenantIdField\":true,\"autoFilter\":true,\"required\":false,\"autoPopulate\":true,\"nullable\":true,\"mode\":\"optional\",\"field\":\"tenantId\",\"allowSuperAdminBypass\":false}}},\"costObjectType\":{\"type\":\"text\",\"required\":false,\"_meta\":{}},\"costObjectId\":{\"type\":\"text\",\"required\":false,\"_meta\":{}},\"category\":{\"type\":\"text\",\"required\":false,\"_meta\":{}},\"description\":{\"type\":\"text\",\"required\":false,\"_meta\":{}},\"amount\":{\"type\":\"integer\",\"required\":false,\"_meta\":{}},\"currency\":{\"type\":\"text\",\"required\":false,\"_meta\":{}},\"incurredOn\":{\"type\":\"text\",\"required\":false,\"_meta\":{}},\"recordedAt\":{\"type\":\"datetime\",\"required\":false},\"recordedByProfileId\":{\"type\":\"crossPackageRef\",\"required\":false,\"related\":\"PROFILE\"},\"paidBy\":{\"type\":\"text\",\"required\":false,\"_meta\":{}},\"paidByProfileId\":{\"type\":\"crossPackageRef\",\"required\":false,\"related\":\"PROFILE\"},\"vendorId\":{\"type\":\"crossPackageRef\",\"required\":false,\"related\":\"@happyvertical/smrt-commerce:Vendor\"},\"commitmentId\":{\"type\":\"crossPackageRef\",\"required\":false,\"related\":\"@happyvertical/smrt-commerce:Contract\"},\"commitmentLineId\":{\"type\":\"crossPackageRef\",\"required\":false,\"related\":\"@happyvertical/smrt-commerce:ContractLineItem\"},\"reviewStatus\":{\"type\":\"text\",\"required\":false,\"_meta\":{\"readonly\":true},\"readonly\":true},\"reviewedByProfileId\":{\"type\":\"crossPackageRef\",\"required\":false,\"related\":\"PROFILE\"},\"reviewedAt\":{\"type\":\"datetime\",\"required\":false,\"_meta\":{\"readonly\":true},\"readonly\":true},\"reviewNote\":{\"type\":\"text\",\"required\":false,\"_meta\":{\"readonly\":true},\"readonly\":true},\"duplicateOfId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"Expense\",\"_meta\":{\"onDelete\":\"SET NULL\"}},\"reimbursable\":{\"type\":\"boolean\",\"required\":false,\"_meta\":{}},\"reimbursedAt\":{\"type\":\"datetime\",\"required\":false},\"reimbursementReference\":{\"type\":\"text\",\"required\":false,\"_meta\":{}}},\"methods\":{\"isReimbursed\":{\"name\":\"isReimbursed\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isCountable\":{\"name\":\"isCountable\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"review\":{\"name\":\"review\",\"async\":true,\"parameters\":[{\"name\":\"input\",\"type\":\"ReviewExpenseInput\",\"optional\":false}],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true},\"reject\":{\"name\":\"reject\",\"async\":true,\"parameters\":[{\"name\":\"input\",\"type\":\"RejectExpenseInput\",\"optional\":false}],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true},\"markDuplicate\":{\"name\":\"markDuplicate\",\"async\":true,\"parameters\":[{\"name\":\"input\",\"type\":\"MarkDuplicateExpenseInput\",\"optional\":false}],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true},\"reopen\":{\"name\":\"reopen\",\"async\":true,\"parameters\":[{\"name\":\"input\",\"type\":\"ReopenExpenseInput\",\"optional\":false}],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true},\"markReimbursed\":{\"name\":\"markReimbursed\",\"async\":true,\"parameters\":[{\"name\":\"input\",\"type\":\"MarkReimbursedInput\",\"optional\":true}],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true},\"getCostObject\":{\"name\":\"getCostObject\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<T | null>\",\"isStatic\":false,\"isPublic\":true},\"save\":{\"name\":\"save\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"tableName\":\"expenses\",\"api\":{\"include\":[]},\"mcp\":{\"include\":[]},\"cli\":false,\"indexes\":[{\"name\":\"expenses_cost_object_idx\",\"columns\":[\"tenantId\",\"costObjectType\",\"costObjectId\",\"incurredOn\"]},{\"name\":\"expenses_commitment_review_idx\",\"columns\":[\"tenantId\",\"commitmentId\",\"reviewStatus\"]},{\"name\":\"expenses_review_status_idx\",\"columns\":[\"tenantId\",\"reviewStatus\",\"incurredOn\"]}],\"tenantScoped\":{\"mode\":\"optional\"},\"conflictColumns\":[\"tenant_id\",\"slug\",\"context\"]},\"extends\":\"SmrtObject\",\"exportName\":\"Expense\",\"collectionExportName\":\"ExpenseCollection\",\"schema\":{\"tableName\":\"expenses\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"expenses\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"cost_object_type\\\" TEXT,\\n \\\"cost_object_id\\\" TEXT,\\n \\\"category\\\" TEXT,\\n \\\"description\\\" TEXT,\\n \\\"amount\\\" INTEGER,\\n \\\"currency\\\" TEXT,\\n \\\"incurred_on\\\" TEXT,\\n \\\"recorded_at\\\" TIMESTAMP,\\n \\\"recorded_by_profile_id\\\" UUID,\\n \\\"paid_by\\\" TEXT,\\n \\\"paid_by_profile_id\\\" UUID,\\n \\\"vendor_id\\\" UUID,\\n \\\"commitment_id\\\" UUID,\\n \\\"commitment_line_id\\\" UUID,\\n \\\"review_status\\\" TEXT,\\n \\\"reviewed_by_profile_id\\\" UUID,\\n \\\"reviewed_at\\\" TIMESTAMP,\\n \\\"review_note\\\" TEXT,\\n \\\"duplicate_of_id\\\" UUID,\\n \\\"reimbursable\\\" BOOLEAN,\\n \\\"reimbursed_at\\\" TIMESTAMP,\\n \\\"reimbursement_reference\\\" TEXT\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false,\"unique\":false},\"cost_object_type\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"cost_object_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"category\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"description\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false},\"currency\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"incurred_on\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"recorded_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"recorded_by_profile_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false,\"unique\":false},\"paid_by\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"paid_by_profile_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false,\"unique\":false},\"vendor_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false,\"unique\":false},\"commitment_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false,\"unique\":false},\"commitment_line_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false,\"unique\":false},\"review_status\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"reviewed_by_profile_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false,\"unique\":false},\"reviewed_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"review_note\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"duplicate_of_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"expenses\",\"column\":\"id\",\"onDelete\":\"SET NULL\",\"onUpdate\":\"CASCADE\"}},\"reimbursable\":{\"type\":\"BOOLEAN\",\"notNull\":false,\"unique\":false},\"reimbursed_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"reimbursement_reference\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false}},\"indexes\":[{\"name\":\"expenses_slug_context_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"expenses_cost_object_idx\",\"columns\":[\"tenant_id\",\"cost_object_type\",\"cost_object_id\",\"incurred_on\"]},{\"name\":\"expenses_commitment_review_idx\",\"columns\":[\"tenant_id\",\"commitment_id\",\"review_status\"]},{\"name\":\"expenses_review_status_idx\",\"columns\":[\"tenant_id\",\"review_status\",\"incurred_on\"]},{\"name\":\"expenses_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"expenses_recorded_by_profile_id_idx\",\"columns\":[\"recorded_by_profile_id\"]},{\"name\":\"expenses_paid_by_profile_id_idx\",\"columns\":[\"paid_by_profile_id\"]},{\"name\":\"expenses_vendor_id_idx\",\"columns\":[\"vendor_id\"]},{\"name\":\"expenses_commitment_id_idx\",\"columns\":[\"commitment_id\"]},{\"name\":\"expenses_commitment_line_id_idx\",\"columns\":[\"commitment_line_id\"]},{\"name\":\"expenses_reviewed_by_profile_id_idx\",\"columns\":[\"reviewed_by_profile_id\"]},{\"name\":\"expenses_duplicate_of_id_idx\",\"columns\":[\"duplicate_of_id\"]}],\"version\":\"af101807\"},\"importPath\":\"@happyvertical/smrt-expenses\"},\"@happyvertical/smrt-expenses:ExpenseReceipt\":{\"name\":\"expensereceipt\",\"className\":\"ExpenseReceipt\",\"qualifiedName\":\"@happyvertical/smrt-expenses:ExpenseReceipt\",\"collection\":\"expensereceipts\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/expenses/src/models/ExpenseReceipt.ts\",\"packageName\":\"@happyvertical/smrt-expenses\",\"fields\":{\"tenantId\":{\"type\":\"text\",\"required\":false,\"_meta\":{\"sqlType\":\"UUID\",\"nullable\":true,\"__tenancy\":{\"isTenantIdField\":true,\"autoFilter\":true,\"required\":false,\"autoPopulate\":true,\"nullable\":true,\"mode\":\"optional\",\"field\":\"tenantId\",\"allowSuperAdminBypass\":false}}},\"expenseId\":{\"type\":\"foreignKey\",\"required\":true,\"related\":\"Expense\",\"_meta\":{\"required\":true,\"onDelete\":\"CASCADE\"}},\"assetId\":{\"type\":\"crossPackageRef\",\"required\":true,\"related\":\"@happyvertical/smrt-assets:Asset\"},\"uploadedByProfileId\":{\"type\":\"crossPackageRef\",\"required\":false,\"related\":\"@happyvertical/smrt-profiles:Profile\"},\"filename\":{\"type\":\"text\",\"required\":false,\"_meta\":{}},\"mimeType\":{\"type\":\"text\",\"required\":false,\"_meta\":{}},\"byteCount\":{\"type\":\"integer\",\"required\":false,\"_meta\":{}},\"contentSha256\":{\"type\":\"text\",\"required\":true,\"_meta\":{\"required\":true}}},\"methods\":{\"save\":{\"name\":\"save\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"tableName\":\"expense_receipts\",\"api\":{\"include\":[]},\"mcp\":{\"include\":[]},\"cli\":false,\"indexes\":[{\"name\":\"expense_receipts_expense_sha256_key\",\"columns\":[\"expenseId\",\"contentSha256\"],\"unique\":true},{\"name\":\"expense_receipts_tenant_sha256_idx\",\"columns\":[\"tenantId\",\"contentSha256\"]}],\"tenantScoped\":{\"mode\":\"optional\"},\"conflictColumns\":[\"tenant_id\",\"slug\",\"context\"]},\"extends\":\"SmrtObject\",\"exportName\":\"ExpenseReceipt\",\"collectionExportName\":\"ExpenseReceiptCollection\",\"validationRules\":[{\"field\":\"expenseId\",\"rule\":\"required\",\"fieldType\":\"foreignKey\"},{\"field\":\"assetId\",\"rule\":\"required\",\"fieldType\":\"crossPackageRef\"},{\"field\":\"contentSha256\",\"rule\":\"required\",\"fieldType\":\"text\"}],\"schema\":{\"tableName\":\"expense_receipts\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"expense_receipts\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"expense_id\\\" UUID NOT NULL,\\n \\\"asset_id\\\" UUID NOT NULL,\\n \\\"uploaded_by_profile_id\\\" UUID,\\n \\\"filename\\\" TEXT,\\n \\\"mime_type\\\" TEXT,\\n \\\"byte_count\\\" INTEGER,\\n \\\"content_sha256\\\" TEXT NOT NULL\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false,\"unique\":false},\"expense_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":true,\"unique\":false,\"foreignKey\":{\"table\":\"expenses\",\"column\":\"id\",\"onDelete\":\"CASCADE\",\"onUpdate\":\"CASCADE\"}},\"asset_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":true,\"unique\":false},\"uploaded_by_profile_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false,\"unique\":false},\"filename\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"mime_type\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"byte_count\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false},\"content_sha256\":{\"type\":\"TEXT\",\"notNull\":true,\"unique\":false}},\"indexes\":[{\"name\":\"expense_receipts_slug_context_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"expense_receipts_expense_sha256_key\",\"columns\":[\"expense_id\",\"content_sha256\"],\"unique\":true},{\"name\":\"expense_receipts_tenant_sha256_idx\",\"columns\":[\"tenant_id\",\"content_sha256\"]},{\"name\":\"expense_receipts_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"expense_receipts_asset_id_idx\",\"columns\":[\"asset_id\"]},{\"name\":\"expense_receipts_uploaded_by_profile_id_idx\",\"columns\":[\"uploaded_by_profile_id\"]}],\"version\":\"5aa77571\"},\"importPath\":\"@happyvertical/smrt-expenses\"}},\"moduleType\":\"smrt\",\"smrtDependencies\":[\"@happyvertical/smrt-assets\",\"@happyvertical/smrt-commerce\",\"@happyvertical/smrt-core\",\"@happyvertical/smrt-tenancy\"]}"));
20
+ ObjectRegistry.registerPackageManifest(JSON.parse("{\"version\":\"1.0.0\",\"timestamp\":0,\"packageName\":\"@happyvertical/smrt-expenses\",\"packageVersion\":\"0.53.2\",\"objects\":{\"@happyvertical/smrt-expenses:ExpenseCollection\":{\"name\":\"expensecollection\",\"className\":\"ExpenseCollection\",\"qualifiedName\":\"@happyvertical/smrt-expenses:ExpenseCollection\",\"collection\":\"expenses\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/expenses/src/collections/ExpenseCollection.ts\",\"packageName\":\"@happyvertical/smrt-expenses\",\"fields\":{},\"methods\":{\"forCostObject\":{\"name\":\"forCostObject\",\"async\":true,\"parameters\":[{\"name\":\"costObjectType\",\"type\":\"string\",\"optional\":false},{\"name\":\"costObjectId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<Expense[]>\",\"isStatic\":false,\"isPublic\":true},\"totalsByCurrency\":{\"name\":\"totalsByCurrency\",\"async\":true,\"parameters\":[{\"name\":\"options\",\"type\":\"ExpenseTotalsOptions\",\"optional\":true}],\"returnType\":\"Promise<CurrencyTotals>\",\"isStatic\":false,\"isPublic\":true},\"commitmentPosition\":{\"name\":\"commitmentPosition\",\"async\":true,\"parameters\":[{\"name\":\"commitmentId\",\"type\":\"string\",\"optional\":false},{\"name\":\"options\",\"type\":\"object\",\"optional\":true,\"memberTypes\":[\"string\"]}],\"returnType\":\"Promise<CommitmentPosition>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"api\":{\"include\":[]},\"mcp\":{\"include\":[]},\"cli\":false,\"tableName\":\"expenses\"},\"extends\":\"SmrtCollection\",\"extendsTypeArg\":\"Expense\",\"exportName\":\"ExpenseCollection\",\"collectionExportName\":\"ExpenseCollectionCollection\",\"schema\":{\"tableName\":\"expenses\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"expenses\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"cost_object_type\\\" TEXT,\\n \\\"cost_object_id\\\" TEXT,\\n \\\"category\\\" TEXT,\\n \\\"description\\\" TEXT,\\n \\\"amount\\\" INTEGER,\\n \\\"currency\\\" TEXT,\\n \\\"incurred_on\\\" TEXT,\\n \\\"recorded_at\\\" TIMESTAMP,\\n \\\"recorded_by_profile_id\\\" UUID,\\n \\\"paid_by\\\" TEXT,\\n \\\"paid_by_profile_id\\\" UUID,\\n \\\"vendor_id\\\" UUID,\\n \\\"commitment_id\\\" UUID,\\n \\\"commitment_line_id\\\" UUID,\\n \\\"review_status\\\" TEXT,\\n \\\"reviewed_by_profile_id\\\" UUID,\\n \\\"reviewed_at\\\" TIMESTAMP,\\n \\\"review_note\\\" TEXT,\\n \\\"duplicate_of_id\\\" UUID,\\n \\\"reimbursable\\\" BOOLEAN,\\n \\\"reimbursed_at\\\" TIMESTAMP,\\n \\\"reimbursement_reference\\\" TEXT\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false,\"unique\":false},\"cost_object_type\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"cost_object_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"category\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"description\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false},\"currency\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"incurred_on\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"recorded_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"recorded_by_profile_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false,\"unique\":false},\"paid_by\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"paid_by_profile_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false,\"unique\":false},\"vendor_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false,\"unique\":false},\"commitment_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false,\"unique\":false},\"commitment_line_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false,\"unique\":false},\"review_status\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"reviewed_by_profile_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false,\"unique\":false},\"reviewed_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"review_note\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"duplicate_of_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"expenses\",\"column\":\"id\",\"onDelete\":\"SET NULL\",\"onUpdate\":\"CASCADE\"}},\"reimbursable\":{\"type\":\"BOOLEAN\",\"notNull\":false,\"unique\":false},\"reimbursed_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"reimbursement_reference\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false}},\"indexes\":[{\"name\":\"expenses_slug_context_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"expenses_cost_object_idx\",\"columns\":[\"tenant_id\",\"cost_object_type\",\"cost_object_id\",\"incurred_on\"]},{\"name\":\"expenses_commitment_review_idx\",\"columns\":[\"tenant_id\",\"commitment_id\",\"review_status\"]},{\"name\":\"expenses_review_status_idx\",\"columns\":[\"tenant_id\",\"review_status\",\"incurred_on\"]},{\"name\":\"expenses_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"expenses_recorded_by_profile_id_idx\",\"columns\":[\"recorded_by_profile_id\"]},{\"name\":\"expenses_paid_by_profile_id_idx\",\"columns\":[\"paid_by_profile_id\"]},{\"name\":\"expenses_vendor_id_idx\",\"columns\":[\"vendor_id\"]},{\"name\":\"expenses_commitment_id_idx\",\"columns\":[\"commitment_id\"]},{\"name\":\"expenses_commitment_line_id_idx\",\"columns\":[\"commitment_line_id\"]},{\"name\":\"expenses_reviewed_by_profile_id_idx\",\"columns\":[\"reviewed_by_profile_id\"]},{\"name\":\"expenses_duplicate_of_id_idx\",\"columns\":[\"duplicate_of_id\"]}],\"version\":\"af101807\"},\"importPath\":\"@happyvertical/smrt-expenses\"},\"@happyvertical/smrt-expenses:ExpenseReceiptCollection\":{\"name\":\"expensereceiptcollection\",\"className\":\"ExpenseReceiptCollection\",\"qualifiedName\":\"@happyvertical/smrt-expenses:ExpenseReceiptCollection\",\"collection\":\"expensereceipts\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/expenses/src/collections/ExpenseReceiptCollection.ts\",\"packageName\":\"@happyvertical/smrt-expenses\",\"fields\":{},\"methods\":{\"byLeft\":{\"name\":\"byLeft\",\"async\":true,\"parameters\":[{\"name\":\"leftId\",\"type\":\"string\",\"optional\":false},{\"name\":\"opts\",\"type\":\"JunctionFilterOptions\",\"optional\":true}],\"returnType\":\"Promise<TItem[]>\",\"isStatic\":false,\"isPublic\":true},\"byRight\":{\"name\":\"byRight\",\"async\":true,\"parameters\":[{\"name\":\"rightId\",\"type\":\"string\",\"optional\":false},{\"name\":\"opts\",\"type\":\"JunctionFilterOptions\",\"optional\":true}],\"returnType\":\"Promise<TItem[]>\",\"isStatic\":false,\"isPublic\":true},\"attach\":{\"name\":\"attach\",\"async\":true,\"parameters\":[{\"name\":\"_expenseId\",\"type\":\"string\",\"optional\":false},{\"name\":\"_assetId\",\"type\":\"string\",\"optional\":false},{\"name\":\"_opts\",\"type\":\"JunctionAttachOptions\",\"optional\":true}],\"returnType\":\"Promise<ExpenseReceipt>\",\"isStatic\":false,\"isPublic\":true},\"detach\":{\"name\":\"detach\",\"async\":true,\"parameters\":[{\"name\":\"leftId\",\"type\":\"string\",\"optional\":false},{\"name\":\"rightId\",\"type\":\"string\",\"optional\":false},{\"name\":\"opts\",\"type\":\"JunctionFilterOptions\",\"optional\":true}],\"returnType\":\"Promise<void>\",\"isStatic\":false,\"isPublic\":true},\"setLinks\":{\"name\":\"setLinks\",\"async\":true,\"parameters\":[{\"name\":\"_expenseId\",\"type\":\"string\",\"optional\":false},{\"name\":\"_assetIds\",\"type\":\"string[]\",\"optional\":false},{\"name\":\"_opts\",\"type\":\"JunctionAttachOptions\",\"optional\":true}],\"returnType\":\"Promise<void>\",\"isStatic\":false,\"isPublic\":true},\"attachReceipt\":{\"name\":\"attachReceipt\",\"async\":true,\"parameters\":[{\"name\":\"input\",\"type\":\"AttachReceiptInput\",\"optional\":false}],\"returnType\":\"Promise<ExpenseReceipt>\",\"isStatic\":false,\"isPublic\":true},\"receiptsFor\":{\"name\":\"receiptsFor\",\"async\":true,\"parameters\":[{\"name\":\"expenseId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<ExpenseReceipt[]>\",\"isStatic\":false,\"isPublic\":true},\"findDuplicateReceipts\":{\"name\":\"findDuplicateReceipts\",\"async\":true,\"parameters\":[{\"name\":\"options\",\"type\":\"FindDuplicateReceiptsOptions\",\"optional\":true}],\"returnType\":\"Promise<DuplicateReceiptGroup[]>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"api\":{\"include\":[]},\"mcp\":{\"include\":[]},\"cli\":false,\"tableName\":\"expense_receipts\"},\"extends\":\"SmrtJunction\",\"extendsTypeArg\":\"ExpenseReceipt\",\"exportName\":\"ExpenseReceiptCollection\",\"collectionExportName\":\"ExpenseReceiptCollectionCollection\",\"schema\":{\"tableName\":\"expense_receipts\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"expense_receipts\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"expense_id\\\" UUID NOT NULL,\\n \\\"asset_id\\\" UUID NOT NULL,\\n \\\"uploaded_by_profile_id\\\" UUID,\\n \\\"filename\\\" TEXT,\\n \\\"mime_type\\\" TEXT,\\n \\\"byte_count\\\" INTEGER,\\n \\\"content_sha256\\\" TEXT NOT NULL\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false,\"unique\":false},\"expense_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":true,\"unique\":false,\"foreignKey\":{\"table\":\"expenses\",\"column\":\"id\",\"onDelete\":\"CASCADE\",\"onUpdate\":\"CASCADE\"}},\"asset_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":true,\"unique\":false},\"uploaded_by_profile_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false,\"unique\":false},\"filename\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"mime_type\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"byte_count\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false},\"content_sha256\":{\"type\":\"TEXT\",\"notNull\":true,\"unique\":false}},\"indexes\":[{\"name\":\"expense_receipts_slug_context_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"expense_receipts_expense_sha256_key\",\"columns\":[\"expense_id\",\"content_sha256\"],\"unique\":true},{\"name\":\"expense_receipts_tenant_sha256_idx\",\"columns\":[\"tenant_id\",\"content_sha256\"]},{\"name\":\"expense_receipts_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"expense_receipts_asset_id_idx\",\"columns\":[\"asset_id\"]},{\"name\":\"expense_receipts_uploaded_by_profile_id_idx\",\"columns\":[\"uploaded_by_profile_id\"]}],\"version\":\"5aa77571\"},\"importPath\":\"@happyvertical/smrt-expenses\"},\"@happyvertical/smrt-expenses:Expense\":{\"name\":\"expense\",\"className\":\"Expense\",\"qualifiedName\":\"@happyvertical/smrt-expenses:Expense\",\"collection\":\"expenses\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/expenses/src/models/Expense.ts\",\"packageName\":\"@happyvertical/smrt-expenses\",\"fields\":{\"tenantId\":{\"type\":\"text\",\"required\":false,\"_meta\":{\"sqlType\":\"UUID\",\"nullable\":true,\"__tenancy\":{\"isTenantIdField\":true,\"autoFilter\":true,\"required\":false,\"autoPopulate\":true,\"nullable\":true,\"mode\":\"optional\",\"field\":\"tenantId\",\"allowSuperAdminBypass\":false}}},\"costObjectType\":{\"type\":\"text\",\"required\":false,\"_meta\":{}},\"costObjectId\":{\"type\":\"text\",\"required\":false,\"_meta\":{}},\"category\":{\"type\":\"text\",\"required\":false,\"_meta\":{}},\"description\":{\"type\":\"text\",\"required\":false,\"_meta\":{}},\"amount\":{\"type\":\"integer\",\"required\":false,\"_meta\":{}},\"currency\":{\"type\":\"text\",\"required\":false,\"_meta\":{}},\"incurredOn\":{\"type\":\"text\",\"required\":false,\"_meta\":{}},\"recordedAt\":{\"type\":\"datetime\",\"required\":false},\"recordedByProfileId\":{\"type\":\"crossPackageRef\",\"required\":false,\"related\":\"PROFILE\"},\"paidBy\":{\"type\":\"text\",\"required\":false,\"_meta\":{}},\"paidByProfileId\":{\"type\":\"crossPackageRef\",\"required\":false,\"related\":\"PROFILE\"},\"vendorId\":{\"type\":\"crossPackageRef\",\"required\":false,\"related\":\"@happyvertical/smrt-commerce:Vendor\"},\"commitmentId\":{\"type\":\"crossPackageRef\",\"required\":false,\"related\":\"@happyvertical/smrt-commerce:Contract\"},\"commitmentLineId\":{\"type\":\"crossPackageRef\",\"required\":false,\"related\":\"@happyvertical/smrt-commerce:ContractLineItem\"},\"reviewStatus\":{\"type\":\"text\",\"required\":false,\"_meta\":{\"readonly\":true},\"readonly\":true},\"reviewedByProfileId\":{\"type\":\"crossPackageRef\",\"required\":false,\"related\":\"PROFILE\"},\"reviewedAt\":{\"type\":\"datetime\",\"required\":false,\"_meta\":{\"readonly\":true},\"readonly\":true},\"reviewNote\":{\"type\":\"text\",\"required\":false,\"_meta\":{\"readonly\":true},\"readonly\":true},\"duplicateOfId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"Expense\",\"_meta\":{\"onDelete\":\"SET NULL\"}},\"reimbursable\":{\"type\":\"boolean\",\"required\":false,\"_meta\":{}},\"reimbursedAt\":{\"type\":\"datetime\",\"required\":false},\"reimbursementReference\":{\"type\":\"text\",\"required\":false,\"_meta\":{}}},\"methods\":{\"isReimbursed\":{\"name\":\"isReimbursed\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isCountable\":{\"name\":\"isCountable\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"review\":{\"name\":\"review\",\"async\":true,\"parameters\":[{\"name\":\"input\",\"type\":\"ReviewExpenseInput\",\"optional\":false}],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true},\"reject\":{\"name\":\"reject\",\"async\":true,\"parameters\":[{\"name\":\"input\",\"type\":\"RejectExpenseInput\",\"optional\":false}],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true},\"markDuplicate\":{\"name\":\"markDuplicate\",\"async\":true,\"parameters\":[{\"name\":\"input\",\"type\":\"MarkDuplicateExpenseInput\",\"optional\":false}],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true},\"reopen\":{\"name\":\"reopen\",\"async\":true,\"parameters\":[{\"name\":\"input\",\"type\":\"ReopenExpenseInput\",\"optional\":false}],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true},\"markReimbursed\":{\"name\":\"markReimbursed\",\"async\":true,\"parameters\":[{\"name\":\"input\",\"type\":\"MarkReimbursedInput\",\"optional\":true}],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true},\"getCostObject\":{\"name\":\"getCostObject\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<T | null>\",\"isStatic\":false,\"isPublic\":true},\"save\":{\"name\":\"save\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"tableName\":\"expenses\",\"api\":{\"include\":[]},\"mcp\":{\"include\":[]},\"cli\":false,\"indexes\":[{\"name\":\"expenses_cost_object_idx\",\"columns\":[\"tenantId\",\"costObjectType\",\"costObjectId\",\"incurredOn\"]},{\"name\":\"expenses_commitment_review_idx\",\"columns\":[\"tenantId\",\"commitmentId\",\"reviewStatus\"]},{\"name\":\"expenses_review_status_idx\",\"columns\":[\"tenantId\",\"reviewStatus\",\"incurredOn\"]}],\"tenantScoped\":{\"mode\":\"optional\"},\"conflictColumns\":[\"tenant_id\",\"slug\",\"context\"]},\"extends\":\"SmrtObject\",\"exportName\":\"Expense\",\"collectionExportName\":\"ExpenseCollection\",\"schema\":{\"tableName\":\"expenses\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"expenses\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"cost_object_type\\\" TEXT,\\n \\\"cost_object_id\\\" TEXT,\\n \\\"category\\\" TEXT,\\n \\\"description\\\" TEXT,\\n \\\"amount\\\" INTEGER,\\n \\\"currency\\\" TEXT,\\n \\\"incurred_on\\\" TEXT,\\n \\\"recorded_at\\\" TIMESTAMP,\\n \\\"recorded_by_profile_id\\\" UUID,\\n \\\"paid_by\\\" TEXT,\\n \\\"paid_by_profile_id\\\" UUID,\\n \\\"vendor_id\\\" UUID,\\n \\\"commitment_id\\\" UUID,\\n \\\"commitment_line_id\\\" UUID,\\n \\\"review_status\\\" TEXT,\\n \\\"reviewed_by_profile_id\\\" UUID,\\n \\\"reviewed_at\\\" TIMESTAMP,\\n \\\"review_note\\\" TEXT,\\n \\\"duplicate_of_id\\\" UUID,\\n \\\"reimbursable\\\" BOOLEAN,\\n \\\"reimbursed_at\\\" TIMESTAMP,\\n \\\"reimbursement_reference\\\" TEXT\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false,\"unique\":false},\"cost_object_type\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"cost_object_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"category\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"description\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false},\"currency\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"incurred_on\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"recorded_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"recorded_by_profile_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false,\"unique\":false},\"paid_by\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"paid_by_profile_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false,\"unique\":false},\"vendor_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false,\"unique\":false},\"commitment_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false,\"unique\":false},\"commitment_line_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false,\"unique\":false},\"review_status\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"reviewed_by_profile_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false,\"unique\":false},\"reviewed_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"review_note\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"duplicate_of_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"expenses\",\"column\":\"id\",\"onDelete\":\"SET NULL\",\"onUpdate\":\"CASCADE\"}},\"reimbursable\":{\"type\":\"BOOLEAN\",\"notNull\":false,\"unique\":false},\"reimbursed_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"reimbursement_reference\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false}},\"indexes\":[{\"name\":\"expenses_slug_context_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"expenses_cost_object_idx\",\"columns\":[\"tenant_id\",\"cost_object_type\",\"cost_object_id\",\"incurred_on\"]},{\"name\":\"expenses_commitment_review_idx\",\"columns\":[\"tenant_id\",\"commitment_id\",\"review_status\"]},{\"name\":\"expenses_review_status_idx\",\"columns\":[\"tenant_id\",\"review_status\",\"incurred_on\"]},{\"name\":\"expenses_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"expenses_recorded_by_profile_id_idx\",\"columns\":[\"recorded_by_profile_id\"]},{\"name\":\"expenses_paid_by_profile_id_idx\",\"columns\":[\"paid_by_profile_id\"]},{\"name\":\"expenses_vendor_id_idx\",\"columns\":[\"vendor_id\"]},{\"name\":\"expenses_commitment_id_idx\",\"columns\":[\"commitment_id\"]},{\"name\":\"expenses_commitment_line_id_idx\",\"columns\":[\"commitment_line_id\"]},{\"name\":\"expenses_reviewed_by_profile_id_idx\",\"columns\":[\"reviewed_by_profile_id\"]},{\"name\":\"expenses_duplicate_of_id_idx\",\"columns\":[\"duplicate_of_id\"]}],\"version\":\"af101807\"},\"importPath\":\"@happyvertical/smrt-expenses\"},\"@happyvertical/smrt-expenses:ExpenseReceipt\":{\"name\":\"expensereceipt\",\"className\":\"ExpenseReceipt\",\"qualifiedName\":\"@happyvertical/smrt-expenses:ExpenseReceipt\",\"collection\":\"expensereceipts\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/expenses/src/models/ExpenseReceipt.ts\",\"packageName\":\"@happyvertical/smrt-expenses\",\"fields\":{\"tenantId\":{\"type\":\"text\",\"required\":false,\"_meta\":{\"sqlType\":\"UUID\",\"nullable\":true,\"__tenancy\":{\"isTenantIdField\":true,\"autoFilter\":true,\"required\":false,\"autoPopulate\":true,\"nullable\":true,\"mode\":\"optional\",\"field\":\"tenantId\",\"allowSuperAdminBypass\":false}}},\"expenseId\":{\"type\":\"foreignKey\",\"required\":true,\"related\":\"Expense\",\"_meta\":{\"required\":true,\"onDelete\":\"CASCADE\"}},\"assetId\":{\"type\":\"crossPackageRef\",\"required\":true,\"related\":\"@happyvertical/smrt-assets:Asset\"},\"uploadedByProfileId\":{\"type\":\"crossPackageRef\",\"required\":false,\"related\":\"@happyvertical/smrt-profiles:Profile\"},\"filename\":{\"type\":\"text\",\"required\":false,\"_meta\":{}},\"mimeType\":{\"type\":\"text\",\"required\":false,\"_meta\":{}},\"byteCount\":{\"type\":\"integer\",\"required\":false,\"_meta\":{}},\"contentSha256\":{\"type\":\"text\",\"required\":true,\"_meta\":{\"required\":true}}},\"methods\":{\"save\":{\"name\":\"save\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"tableName\":\"expense_receipts\",\"api\":{\"include\":[]},\"mcp\":{\"include\":[]},\"cli\":false,\"indexes\":[{\"name\":\"expense_receipts_expense_sha256_key\",\"columns\":[\"expenseId\",\"contentSha256\"],\"unique\":true},{\"name\":\"expense_receipts_tenant_sha256_idx\",\"columns\":[\"tenantId\",\"contentSha256\"]}],\"tenantScoped\":{\"mode\":\"optional\"},\"conflictColumns\":[\"tenant_id\",\"slug\",\"context\"]},\"extends\":\"SmrtObject\",\"exportName\":\"ExpenseReceipt\",\"collectionExportName\":\"ExpenseReceiptCollection\",\"validationRules\":[{\"field\":\"expenseId\",\"rule\":\"required\",\"fieldType\":\"foreignKey\"},{\"field\":\"assetId\",\"rule\":\"required\",\"fieldType\":\"crossPackageRef\"},{\"field\":\"contentSha256\",\"rule\":\"required\",\"fieldType\":\"text\"}],\"schema\":{\"tableName\":\"expense_receipts\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"expense_receipts\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"expense_id\\\" UUID NOT NULL,\\n \\\"asset_id\\\" UUID NOT NULL,\\n \\\"uploaded_by_profile_id\\\" UUID,\\n \\\"filename\\\" TEXT,\\n \\\"mime_type\\\" TEXT,\\n \\\"byte_count\\\" INTEGER,\\n \\\"content_sha256\\\" TEXT NOT NULL\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false,\"unique\":false},\"expense_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":true,\"unique\":false,\"foreignKey\":{\"table\":\"expenses\",\"column\":\"id\",\"onDelete\":\"CASCADE\",\"onUpdate\":\"CASCADE\"}},\"asset_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":true,\"unique\":false},\"uploaded_by_profile_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false,\"unique\":false},\"filename\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"mime_type\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"byte_count\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false},\"content_sha256\":{\"type\":\"TEXT\",\"notNull\":true,\"unique\":false}},\"indexes\":[{\"name\":\"expense_receipts_slug_context_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"expense_receipts_expense_sha256_key\",\"columns\":[\"expense_id\",\"content_sha256\"],\"unique\":true},{\"name\":\"expense_receipts_tenant_sha256_idx\",\"columns\":[\"tenant_id\",\"content_sha256\"]},{\"name\":\"expense_receipts_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"expense_receipts_asset_id_idx\",\"columns\":[\"asset_id\"]},{\"name\":\"expense_receipts_uploaded_by_profile_id_idx\",\"columns\":[\"uploaded_by_profile_id\"]}],\"version\":\"5aa77571\"},\"importPath\":\"@happyvertical/smrt-expenses\"}},\"moduleType\":\"smrt\",\"smrtDependencies\":[\"@happyvertical/smrt-assets\",\"@happyvertical/smrt-commerce\",\"@happyvertical/smrt-core\",\"@happyvertical/smrt-tenancy\"]}"));
21
21
  //#endregion
22
22
  //#region src/collections/ExpenseCollection.ts
23
23
  var ExpenseCollection_exports = /* @__PURE__ */ __exportAll({ ExpenseCollection: () => ExpenseCollection });
@@ -2,7 +2,7 @@
2
2
  "version": "1.0.0",
3
3
  "timestamp": 0,
4
4
  "packageName": "@happyvertical/smrt-expenses",
5
- "packageVersion": "0.53.1",
5
+ "packageVersion": "0.53.2",
6
6
  "objects": {
7
7
  "@happyvertical/smrt-expenses:ExpenseCollection": {
8
8
  "name": "expensecollection",
@@ -3,12 +3,12 @@
3
3
  "sensitiveFieldsExcluded": true,
4
4
  "generatedAt": "1970-01-01T00:00:00.000Z",
5
5
  "packageName": "@happyvertical/smrt-expenses",
6
- "packageVersion": "0.53.1",
6
+ "packageVersion": "0.53.2",
7
7
  "sourceManifestPath": "dist/manifest.json",
8
8
  "agentDocPath": "AGENTS.md",
9
9
  "sourceHashes": {
10
- "manifest": "9a6f8f0412cc905f8726038913eccfbcdc869ea94d1319b16df770066c49c557",
11
- "packageJson": "4343ca00d893ea736e1ffb71e6bf9e1fc06677da710bd78d3f618c09db5e99df",
10
+ "manifest": "abafe4f4bf41c36effc3871b26e00adb8091370012220f1c718dc4159b5049e6",
11
+ "packageJson": "6988a3cd8998098db51a256abcba15e4992053847f1edbf78cf076fcdc793abc",
12
12
  "agents": "3af9d39ed7cbb390749e3828cb667dab39a6fd9104ad6c37abcf1db023f8dfcb"
13
13
  },
14
14
  "exports": [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@happyvertical/smrt-expenses",
3
- "version": "0.53.1",
3
+ "version": "0.53.2",
4
4
  "description": "Expense records for the SMRT framework - reviewed costs against a cost object, deduplicated receipts, and commitment drawdown",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -19,13 +19,13 @@
19
19
  "./manifest.json": "./dist/manifest.json"
20
20
  },
21
21
  "dependencies": {
22
- "@happyvertical/smrt-assets": "0.53.1",
23
- "@happyvertical/smrt-commerce": "0.53.1",
24
- "@happyvertical/smrt-core": "0.53.1",
25
- "@happyvertical/smrt-tenancy": "0.53.1"
22
+ "@happyvertical/smrt-assets": "0.53.2",
23
+ "@happyvertical/smrt-commerce": "0.53.2",
24
+ "@happyvertical/smrt-core": "0.53.2",
25
+ "@happyvertical/smrt-tenancy": "0.53.2"
26
26
  },
27
27
  "devDependencies": {
28
- "@happyvertical/smrt-vitest": "0.53.1",
28
+ "@happyvertical/smrt-vitest": "0.53.2",
29
29
  "@types/node": "24.13.6",
30
30
  "typescript": "6.0.3",
31
31
  "vite": "8.1.4",
@@ -1,64 +0,0 @@
1
- /**
2
- * The expense behaviour suite, shared by the default (SQLite) lane and the
3
- * PostgreSQL lane so both adapters prove the same contract: review
4
- * transitions, duplicate receipts, and commitment matching.
5
- *
6
- * Every test runs inside its own fresh tenant, with tenancy enabled, so the
7
- * PostgreSQL lane can share one migrated database across tests.
8
- */
9
- import { AssetCollection } from '@happyvertical/smrt-assets';
10
- import { ContractCollection, ContractLineItemCollection } from '@happyvertical/smrt-commerce';
11
- import type { DatabaseInterface } from '@happyvertical/smrt-core/migrations';
12
- import { ExpenseCollection } from '../../collections/ExpenseCollection.js';
13
- import { ExpenseReceiptCollection } from '../../collections/ExpenseReceiptCollection.js';
14
- import { Expense } from '../../models/Expense.js';
15
- import { type ExpenseOptions } from '../../types.js';
16
- export declare const PROJECT = "@happyvertical/smrt-projects:Project";
17
- /** A persisted object: its id is known. */
18
- export type Saved<T> = T & {
19
- id: string;
20
- };
21
- /** Collections bound to one database, plus a fresh tenant to work in. */
22
- export interface ExpenseWorld {
23
- db: DatabaseInterface;
24
- tenantId: string;
25
- expenses: ExpenseCollection;
26
- receipts: ExpenseReceiptCollection;
27
- contracts: ContractCollection;
28
- lines: ContractLineItemCollection;
29
- assets: AssetCollection;
30
- /** Run `fn` inside this world's tenant. */
31
- inTenant<T>(fn: () => Promise<T>): Promise<T>;
32
- /** Create and save an expense with sensible defaults. */
33
- expense(overrides?: ExpenseOptions): Promise<Saved<Expense>>;
34
- /** Create and save an asset. */
35
- asset(name?: string): Promise<{
36
- id: string;
37
- }>;
38
- /** Create and save a purchase-order commitment. */
39
- commitment(totalAmount: number, currency?: string): Promise<{
40
- id: string;
41
- }>;
42
- /** Create and save a commerce vendor. */
43
- vendor(): Promise<{
44
- id: string;
45
- }>;
46
- }
47
- /** Build a world over `db` with its own tenant. */
48
- export declare function createWorld(db: DatabaseInterface): Promise<ExpenseWorld>;
49
- /**
50
- * Attach a receipt in `world`'s tenant, then move that row out of the
51
- * tenant's reads (raw `tenant_id = NULL`). A second attach of the same file
52
- * then passes the tenant-filtered pre-insert read and reaches the unique
53
- * index — the same path a concurrent attach takes.
54
- */
55
- export declare function hideReceiptFromTenantReads(world: ExpenseWorld): Promise<{
56
- expenseId: string;
57
- sha: string;
58
- }>;
59
- /**
60
- * Register the behaviour suite against whatever database `getDb()` returns
61
- * when a test runs.
62
- */
63
- export declare function defineExpenseSuite(getDb: () => DatabaseInterface): void;
64
- //# sourceMappingURL=expense-suite.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"expense-suite.d.ts","sourceRoot":"","sources":["../../../src/__tests__/helpers/expense-suite.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EACL,kBAAkB,EAClB,0BAA0B,EAE3B,MAAM,8BAA8B,CAAC;AAEtC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAO7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAC3E,OAAO,EAAE,wBAAwB,EAAE,MAAM,+CAA+C,CAAC;AACzF,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAElD,OAAO,EAGL,KAAK,cAAc,EACpB,MAAM,gBAAgB,CAAC;AAGxB,eAAO,MAAM,OAAO,yCAAyC,CAAC;AAE9D,2CAA2C;AAC3C,MAAM,MAAM,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC;AAO1C,yEAAyE;AACzE,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,iBAAiB,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,QAAQ,EAAE,wBAAwB,CAAC;IACnC,SAAS,EAAE,kBAAkB,CAAC;IAC9B,KAAK,EAAE,0BAA0B,CAAC;IAClC,MAAM,EAAE,eAAe,CAAC;IACxB,2CAA2C;IAC3C,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC9C,yDAAyD;IACzD,OAAO,CAAC,SAAS,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IAC7D,gCAAgC;IAChC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC9C,mDAAmD;IACnD,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5E,yCAAyC;IACzC,MAAM,IAAI,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACnC;AAED,mDAAmD;AACnD,wBAAsB,WAAW,CAC/B,EAAE,EAAE,iBAAiB,GACpB,OAAO,CAAC,YAAY,CAAC,CA2DvB;AAED;;;;;GAKG;AACH,wBAAsB,0BAA0B,CAC9C,KAAK,EAAE,YAAY,GAClB,OAAO,CAAC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,CAgB7C;AASD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,iBAAiB,GAAG,IAAI,CAgnCvE"}