@happyvertical/smrt-cli 0.55.15 → 0.55.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/agents/app-commands.md +10 -0
  2. package/agents/kitchen.md +24 -4
  3. package/dist/{AuditLogCollection-WDHL-_AF-Cp5NKpKo.js → AuditLogCollection-WDHL-_AF-02D9mDot.js} +1 -1
  4. package/dist/{OidcIdentity-BUblgQLs-CqMp2Smf.js → OidcIdentity-BUblgQLs-hzB0lrxA.js} +2 -2
  5. package/dist/{OidcIdentityCollection-ClOyaHeF-l1ifhCWu.js → OidcIdentityCollection-ClOyaHeF-D7aAvcYW.js} +1 -1
  6. package/dist/{ProfileAssetCollection-CRMcjLJ--Bh5AcTQv.js → ProfileAssetCollection-CRMcjLJ--CRQsOHTZ.js} +3 -3
  7. package/dist/{ProfileCollection-C4INKh7Y-DH_e1QdB.js → ProfileCollection-C4INKh7Y-DUcvwlG4.js} +17 -17
  8. package/dist/{ProfileLinkCollection-DFfZRsgv-BGLiIASL.js → ProfileLinkCollection-DFfZRsgv-4ulMzaJO.js} +2 -2
  9. package/dist/{ProfileMetadataCollection-BIYKy4Y3-DSVsCaCz.js → ProfileMetadataCollection-BIYKy4Y3-BGVdmb-k.js} +1 -1
  10. package/dist/{ProfileMetafieldCollection-Buz7gzag-cxq_JG8K.js → ProfileMetafieldCollection-Buz7gzag-Cuuzb-Yt.js} +1 -1
  11. package/dist/{ProfileRelationshipCollection-C4g_QLI4-DCxIpptB.js → ProfileRelationshipCollection-C4g_QLI4-DHnLSOex.js} +1 -1
  12. package/dist/{ProfileTypeCollection-B7kwi1mU-BzT8PP3l.js → ProfileTypeCollection-B7kwi1mU-tffgStmE.js} +2 -2
  13. package/dist/app/cli.d.ts.map +1 -1
  14. package/dist/app/operations.d.ts.map +1 -1
  15. package/dist/app.js +2 -2
  16. package/dist/{cli-OZsH5cdL.js → cli-FDpY0gCt.js} +51 -5
  17. package/dist/commands/kitchen/mcp/bridge.d.ts +3 -0
  18. package/dist/commands/kitchen/mcp/bridge.d.ts.map +1 -0
  19. package/dist/commands/kitchen/mcp/preview.d.ts +8 -0
  20. package/dist/commands/kitchen/mcp/preview.d.ts.map +1 -0
  21. package/dist/commands/kitchen/mcp/server.d.ts.map +1 -1
  22. package/dist/commands/kitchen/mcp/tools.d.ts +21 -2
  23. package/dist/commands/kitchen/mcp/tools.d.ts.map +1 -1
  24. package/dist/commands/kitchen/mcp/ui.d.ts +40 -0
  25. package/dist/commands/kitchen/mcp/ui.d.ts.map +1 -0
  26. package/dist/commands/kitchen.d.ts.map +1 -1
  27. package/dist/{commands-Cut_g1l0.js → commands-Cve0qfxc.js} +30 -4
  28. package/dist/{dist-DoeiKxBG.js → dist-BQ5ZrH9U.js} +16 -16
  29. package/dist/{dist-CSWROA_j.js → dist-BQjejZ0-.js} +3 -3
  30. package/dist/{dist-Daxp0QSv.js → dist-BtlfVNPV.js} +4 -4
  31. package/dist/{dist-DuLsatO8.js → dist-C_pNF2sM.js} +2 -2
  32. package/dist/dist-DHRli5Sc.js +21 -0
  33. package/dist/index.js +12 -12
  34. package/dist/{oidcProvisioningPrimitives-DNP9EZlU-DNut7Q6q.js → oidcProvisioningPrimitives-DNP9EZlU-B5DmitVf.js} +3 -3
  35. package/dist/{portability-CES1YC2m.js → portability-BbltyqQ-.js} +1 -1
  36. package/dist/{resolveIdentity-CkyqvctR-BBpXD0_v.js → resolveIdentity-CkyqvctR-BDafA2yA.js} +14 -14
  37. package/dist/{server-Dp096tZj.js → server-C69K3w-t.js} +682 -39
  38. package/package.json +10 -10
  39. package/scripts/verify-package-types-exports.js +6 -1
  40. package/dist/dist-Du1UPfme.js +0 -21
@@ -1,4 +1,4 @@
1
- import { a as queryGlobal, i as tenantId, o as queryWithGlobals, r as TenantScoped, u as withSystemContext } from "./dist-DuLsatO8.js";
1
+ import { a as queryGlobal, i as tenantId, o as queryWithGlobals, r as TenantScoped, u as withSystemContext } from "./dist-C_pNF2sM.js";
2
2
  import { ObjectRegistry, SmrtCollection, SmrtHierarchical, SmrtJunction, SmrtJunctionBase, SmrtObject, SmrtPolymorphicAssociation, crossPackageRef, field, foreignKey, smrt } from "@happyvertical/smrt-core";
3
3
  //#region ../tags/dist/index.js
4
4
  var __defProp$2$1 = Object.defineProperty;
@@ -11,7 +11,7 @@ var __exportAll$1 = (all, no_symbols) => {
11
11
  if (!no_symbols) __defProp$2$1(target, Symbol.toStringTag, { value: "Module" });
12
12
  return target;
13
13
  };
14
- ObjectRegistry.registerPackageManifest(JSON.parse(`{"version":"1.0.0","timestamp":0,"packageName":"@happyvertical/smrt-tags","packageVersion":"0.55.15","objects":{"@happyvertical/smrt-tags:TagAlias":{"name":"tagalias","className":"TagAlias","qualifiedName":"@happyvertical/smrt-tags:TagAlias","collection":"tagaliases","filePath":"/home/runner/work/smrt/smrt/packages/tags/src/tag-alias.ts","packageName":"@happyvertical/smrt-tags","fields":{"created_at":{"type":"datetime","required":false},"updated_at":{"type":"datetime","required":false},"tagSlug":{"type":"text","required":false,"default":"","description":"The tag this alternative name points to.","_meta":{"description":"The tag this alternative name points to."}},"alias":{"type":"text","required":true,"default":"","description":"Another name or a translation people may use for the tag.","_meta":{"required":true,"description":"Another name or a translation people may use for the tag."}},"language":{"type":"text","required":false,"default":"","description":"The two-letter language code of the alternative name.","_meta":{"description":"The two-letter language code of the alternative name."}},"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}}},"createdAt":{"type":"datetime","required":false}},"methods":{"getTag":{"name":"getTag","async":true,"parameters":[],"returnType":"Promise<Tag | null>","isStatic":false,"isPublic":true},"searchByAlias":{"name":"searchByAlias","async":true,"parameters":[{"name":"_alias","type":"string","optional":false},{"name":"_language","type":"string","optional":true}],"returnType":"Promise<Tag[]>","isStatic":true,"isPublic":true},"getAliasesForTag":{"name":"getAliasesForTag","async":true,"parameters":[{"name":"_tagSlug","type":"string","optional":false}],"returnType":"Promise<TagAlias[]>","isStatic":true,"isPublic":true}},"decoratorConfig":{"tableStrategy":"sti","api":{"include":["list","get","create","update","delete"]},"mcp":{"include":["list","get","create"]},"cli":{"skipApiCheck":true},"tenantScoped":{"mode":"optional"},"conflictColumns":["tenant_id","slug","context","_meta_type"]},"extends":"SmrtObject","exportName":"TagAlias","collectionExportName":"TagAliasCollection","validationRules":[{"field":"alias","rule":"required","fieldType":"text"}],"schema":{"tableName":"tag_aliases","ddl":"CREATE TABLE IF NOT EXISTS \\"tag_aliases\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"_meta_type\\" TEXT NOT NULL,\\n \\"_meta_data\\" JSON,\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"tag_slug\\" TEXT DEFAULT '',\\n \\"alias\\" TEXT DEFAULT '',\\n \\"language\\" TEXT DEFAULT '',\\n \\"tenant_id\\" UUID\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"_meta_type":{"type":"TEXT","notNull":true},"_meta_data":{"type":"JSON","notNull":false},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"tag_slug":{"type":"TEXT","notNull":false,"default":""},"alias":{"type":"TEXT","notNull":false,"default":""},"language":{"type":"TEXT","notNull":false,"default":""},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false}},"indexes":[{"name":"tag_aliases_slug_context_meta_type_idx","columns":["tenant_id","slug","context","_meta_type"],"unique":true,"nullsNotDistinct":true},{"name":"tag_aliases_meta_type_idx","columns":["_meta_type"]},{"name":"tag_aliases_tenant_id_created_at_idx","columns":["tenant_id","created_at"]}],"version":"95a4bc18"},"importPath":"@happyvertical/smrt-tags"},"@happyvertical/smrt-tags:TagAliasCollection":{"name":"tagaliascollection","className":"TagAliasCollection","qualifiedName":"@happyvertical/smrt-tags:TagAliasCollection","collection":"tagaliases","filePath":"/home/runner/work/smrt/smrt/packages/tags/src/tag-aliases.ts","packageName":"@happyvertical/smrt-tags","fields":{},"methods":{"addAlias":{"name":"addAlias","async":true,"parameters":[{"name":"tagSlug","type":"string","optional":false},{"name":"alias","type":"string","optional":false},{"name":"language","type":"string","optional":true},{"name":"context","type":"string","optional":true}],"returnType":"Promise<TagAlias>","isStatic":false,"isPublic":true},"searchByAlias":{"name":"searchByAlias","async":true,"parameters":[{"name":"alias","type":"string","optional":false},{"name":"language","type":"string","optional":true}],"returnType":"Promise<Tag[]>","isStatic":false,"isPublic":true},"getAliasesForTag":{"name":"getAliasesForTag","async":true,"parameters":[{"name":"tagSlug","type":"string","optional":false},{"name":"language","type":"string","optional":true}],"returnType":"Promise<TagAlias[]>","isStatic":false,"isPublic":true},"removeAlias":{"name":"removeAlias","async":true,"parameters":[{"name":"aliasId","type":"string","optional":false}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"bulkAddAliases":{"name":"bulkAddAliases","async":true,"parameters":[{"name":"tagSlug","type":"string","optional":false},{"name":"aliases","type":"Array<object>","optional":false,"memberTypes":["string"]}],"returnType":"Promise<TagAlias[]>","isStatic":false,"isPublic":true},"getAliasesByLanguage":{"name":"getAliasesByLanguage","async":true,"parameters":[{"name":"tagSlug","type":"string","optional":false}],"returnType":"Promise<Map<string, string[]>>","isStatic":false,"isPublic":true},"findMatchingAliases":{"name":"findMatchingAliases","async":true,"parameters":[{"name":"query","type":"string","optional":false},{"name":"language","type":"string","optional":true}],"returnType":"Promise<TagAlias[]>","isStatic":false,"isPublic":true},"findByTenant":{"name":"findByTenant","async":true,"parameters":[{"name":"tenantId","type":"string","optional":false}],"returnType":"Promise<TagAlias[]>","isStatic":false,"isPublic":true},"findGlobal":{"name":"findGlobal","async":true,"parameters":[],"returnType":"Promise<TagAlias[]>","isStatic":false,"isPublic":true},"findWithGlobals":{"name":"findWithGlobals","async":true,"parameters":[{"name":"tenantId","type":"string","optional":false}],"returnType":"Promise<TagAlias[]>","isStatic":false,"isPublic":true}},"decoratorConfig":{},"extends":"SmrtCollection","extendsTypeArg":"TagAlias","exportName":"TagAliasCollection","collectionExportName":"TagAliasCollectionCollection","schema":{"tableName":"tag_aliases","ddl":"CREATE TABLE IF NOT EXISTS \\"tag_aliases\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"_meta_type\\" TEXT NOT NULL,\\n \\"_meta_data\\" JSON,\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"tag_slug\\" TEXT DEFAULT '',\\n \\"alias\\" TEXT DEFAULT '',\\n \\"language\\" TEXT DEFAULT '',\\n \\"tenant_id\\" UUID\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"_meta_type":{"type":"TEXT","notNull":true},"_meta_data":{"type":"JSON","notNull":false},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"tag_slug":{"type":"TEXT","notNull":false,"default":""},"alias":{"type":"TEXT","notNull":false,"default":""},"language":{"type":"TEXT","notNull":false,"default":""},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false}},"indexes":[{"name":"tag_aliases_slug_context_meta_type_idx","columns":["tenant_id","slug","context","_meta_type"],"unique":true,"nullsNotDistinct":true},{"name":"tag_aliases_meta_type_idx","columns":["_meta_type"]},{"name":"tag_aliases_tenant_id_created_at_idx","columns":["tenant_id","created_at"]}],"version":"95a4bc18"},"importPath":"@happyvertical/smrt-tags"},"@happyvertical/smrt-tags:Tag":{"name":"tag","className":"Tag","qualifiedName":"@happyvertical/smrt-tags:Tag","collection":"tags","filePath":"/home/runner/work/smrt/smrt/packages/tags/src/tag.ts","packageName":"@happyvertical/smrt-tags","fields":{"created_at":{"type":"datetime","required":false},"updated_at":{"type":"datetime","required":false},"parentId":{"type":"foreignKey","required":false,"related":"Tag","_meta":{"nullable":true}},"name":{"type":"text","required":true,"default":"","description":"The name people see when they pick or browse tags.","_meta":{"required":true,"description":"The name people see when they pick or browse tags."}},"level":{"type":"integer","required":false,"default":0},"description":{"type":"text","required":false,"default":"","description":"A short note on what belongs under this tag.","_meta":{"description":"A short note on what belongs under this tag."}},"metadata":{"type":"text","required":false,"default":"","description":"Extra details about the tag, saved as named items.","_meta":{"description":"Extra details about the tag, saved as named items."}},"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}}},"createdAt":{"type":"datetime","required":false},"updatedAt":{"type":"datetime","required":false}},"methods":{"getParent":{"name":"getParent","async":true,"parameters":[],"returnType":"Promise<this | null>","isStatic":false,"isPublic":true},"getChildren":{"name":"getChildren","async":true,"parameters":[],"returnType":"Promise<this[]>","isStatic":false,"isPublic":true},"getAncestors":{"name":"getAncestors","async":true,"parameters":[],"returnType":"Promise<this[]>","isStatic":false,"isPublic":true},"getDescendants":{"name":"getDescendants","async":true,"parameters":[],"returnType":"Promise<this[]>","isStatic":false,"isPublic":true},"getHierarchy":{"name":"getHierarchy","async":true,"parameters":[],"returnType":"Promise<HierarchyView<this>>","isStatic":false,"isPublic":true},"moveTo":{"name":"moveTo","async":true,"parameters":[{"name":"newParent","type":"this | string | null","optional":false,"unionBranches":[{"type":"this"},{"type":"string"},{"type":"null"}]}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"getMetadata":{"name":"getMetadata","async":false,"parameters":[],"returnType":"TagMetadata","isStatic":false,"isPublic":true},"setMetadata":{"name":"setMetadata","async":false,"parameters":[{"name":"data","type":"TagMetadata","optional":false}],"returnType":"void","isStatic":false,"isPublic":true},"updateMetadata":{"name":"updateMetadata","async":false,"parameters":[{"name":"updates","type":"Partial<TagMetadata>","optional":false}],"returnType":"void","isStatic":false,"isPublic":true},"getBySlug":{"name":"getBySlug","async":true,"parameters":[{"name":"_slug","type":"string","optional":false},{"name":"_context","type":"string","optional":true}],"returnType":"Promise<Tag | null>","isStatic":true,"isPublic":true},"getRootTags":{"name":"getRootTags","async":true,"parameters":[{"name":"_context","type":"string","optional":true,"default":"global"}],"returnType":"Promise<Tag[]>","isStatic":true,"isPublic":true}},"decoratorConfig":{"tableStrategy":"sti","api":{"include":["list","get","create","update","delete"]},"mcp":{"include":["list","get","create","update"]},"cli":{"skipApiCheck":true},"tenantScoped":{"mode":"optional"},"conflictColumns":["tenant_id","slug","context","_meta_type"]},"extends":"SmrtHierarchical","exportName":"Tag","collectionExportName":"TagCollection","displayLabelField":"name","validationRules":[{"field":"name","rule":"required","fieldType":"text"}],"schema":{"tableName":"tags","ddl":"CREATE TABLE IF NOT EXISTS \\"tags\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"_meta_type\\" TEXT NOT NULL,\\n \\"_meta_data\\" JSON,\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"parent_id\\" UUID,\\n \\"name\\" TEXT DEFAULT '',\\n \\"level\\" INTEGER DEFAULT 0,\\n \\"description\\" TEXT DEFAULT '',\\n \\"metadata\\" TEXT DEFAULT '',\\n \\"tenant_id\\" UUID\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"_meta_type":{"type":"TEXT","notNull":true},"_meta_data":{"type":"JSON","notNull":false},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"parent_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"tags","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"name":{"type":"TEXT","notNull":false,"default":""},"level":{"type":"INTEGER","notNull":false,"default":0},"description":{"type":"TEXT","notNull":false,"default":""},"metadata":{"type":"TEXT","notNull":false,"default":""},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false}},"indexes":[{"name":"tags_slug_context_meta_type_idx","columns":["tenant_id","slug","context","_meta_type"],"unique":true,"nullsNotDistinct":true},{"name":"tags_meta_type_idx","columns":["_meta_type"]},{"name":"tags_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"tags_parent_id_idx","columns":["parent_id"]}],"version":"4da9de3e"},"importPath":"@happyvertical/smrt-tags"},"@happyvertical/smrt-tags:TagCollection":{"name":"tagcollection","className":"TagCollection","qualifiedName":"@happyvertical/smrt-tags:TagCollection","collection":"tags","filePath":"/home/runner/work/smrt/smrt/packages/tags/src/tags.ts","packageName":"@happyvertical/smrt-tags","fields":{},"methods":{"getOrCreate":{"name":"getOrCreate","async":true,"parameters":[{"name":"slug","type":"string","optional":false},{"name":"context","type":"string","optional":true,"default":"global"}],"returnType":"Promise<Tag>","isStatic":false,"isPublic":true},"listByContext":{"name":"listByContext","async":true,"parameters":[{"name":"context","type":"string","optional":false},{"name":"parentSlug","type":"string | null","optional":true,"unionBranches":[{"type":"string"},{"type":"null"}]}],"returnType":"Promise<Tag[]>","isStatic":false,"isPublic":true},"getRootTags":{"name":"getRootTags","async":true,"parameters":[{"name":"context","type":"string","optional":true,"default":"global"}],"returnType":"Promise<Tag[]>","isStatic":false,"isPublic":true},"getChildren":{"name":"getChildren","async":true,"parameters":[{"name":"parentSlug","type":"string","optional":false},{"name":"context","type":"string","optional":true}],"returnType":"Promise<Tag[]>","isStatic":false,"isPublic":true},"getHierarchy":{"name":"getHierarchy","async":true,"parameters":[{"name":"slug","type":"string","optional":false},{"name":"context","type":"string","optional":true}],"returnType":"Promise<TagHierarchy>","isStatic":false,"isPublic":true},"moveTag":{"name":"moveTag","async":true,"parameters":[{"name":"slug","type":"string","optional":false},{"name":"newParentSlug","type":"string | null","optional":false,"unionBranches":[{"type":"string"},{"type":"null"}]},{"name":"context","type":"string","optional":true}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"mergeTag":{"name":"mergeTag","async":true,"parameters":[{"name":"fromSlug","type":"string","optional":false},{"name":"toSlug","type":"string","optional":false},{"name":"context","type":"string","optional":true}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"cleanupUnused":{"name":"cleanupUnused","async":true,"parameters":[{"name":"context","type":"string","optional":true}],"returnType":"Promise<number>","isStatic":false,"isPublic":true},"calculateLevel":{"name":"calculateLevel","async":true,"parameters":[{"name":"parentSlug","type":"string | null","optional":false,"unionBranches":[{"type":"string"},{"type":"null"}]},{"name":"context","type":"string","optional":true}],"returnType":"Promise<number>","isStatic":false,"isPublic":true},"findByTenant":{"name":"findByTenant","async":true,"parameters":[{"name":"tenantId","type":"string","optional":false}],"returnType":"Promise<Tag[]>","isStatic":false,"isPublic":true},"findGlobal":{"name":"findGlobal","async":true,"parameters":[],"returnType":"Promise<Tag[]>","isStatic":false,"isPublic":true},"findWithGlobals":{"name":"findWithGlobals","async":true,"parameters":[{"name":"tenantId","type":"string","optional":false}],"returnType":"Promise<Tag[]>","isStatic":false,"isPublic":true}},"decoratorConfig":{},"extends":"SmrtCollection","extendsTypeArg":"Tag","exportName":"TagCollection","collectionExportName":"TagCollectionCollection","schema":{"tableName":"tags","ddl":"CREATE TABLE IF NOT EXISTS \\"tags\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"_meta_type\\" TEXT NOT NULL,\\n \\"_meta_data\\" JSON,\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"parent_id\\" UUID,\\n \\"name\\" TEXT DEFAULT '',\\n \\"level\\" INTEGER DEFAULT 0,\\n \\"description\\" TEXT DEFAULT '',\\n \\"metadata\\" TEXT DEFAULT '',\\n \\"tenant_id\\" UUID\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"_meta_type":{"type":"TEXT","notNull":true},"_meta_data":{"type":"JSON","notNull":false},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"parent_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"tags","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"name":{"type":"TEXT","notNull":false,"default":""},"level":{"type":"INTEGER","notNull":false,"default":0},"description":{"type":"TEXT","notNull":false,"default":""},"metadata":{"type":"TEXT","notNull":false,"default":""},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false}},"indexes":[{"name":"tags_slug_context_meta_type_idx","columns":["tenant_id","slug","context","_meta_type"],"unique":true,"nullsNotDistinct":true},{"name":"tags_meta_type_idx","columns":["_meta_type"]},{"name":"tags_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"tags_parent_id_idx","columns":["parent_id"]}],"version":"4da9de3e"},"importPath":"@happyvertical/smrt-tags"}},"moduleType":"smrt","recipes":[{"id":"tags.taxonomy","className":"TaxonomyRecipe","label":"Taxonomy","summary":"Organise anything with a shared set of nested tags and alternative names.","synonyms":["tags","tagging","categories","labels","topics"],"models":["@happyvertical/smrt-tags:Tag","@happyvertical/smrt-tags:TagAlias"],"nav":[{"label":"Tags","model":"@happyvertical/smrt-tags:Tag","icon":"tag","description":"The shared set of tags, including tags inside other tags."},{"label":"Alternative names","model":"@happyvertical/smrt-tags:TagAlias","icon":"book","description":"Other names and translations that lead people to the same tag."}],"requires":[],"section":{"id":"taxonomy","label":"Taxonomy","icon":"tag","description":"The tags people use to sort and find things."},"options":{"@happyvertical/smrt-tags:Tag":{"fields":{"name":{"order":1},"parentId":{"label":"Parent tag","help":"The broader tag this one sits under. Leave it empty for a top-level tag.","order":2},"description":{"order":3},"level":{"visibility":"hidden","locked":true},"metadata":{"visibility":"advanced"}}},"@happyvertical/smrt-tags:TagAlias":{"fields":{"alias":{"label":"Alternative name","order":1},"tagSlug":{"label":"Tag","order":2},"language":{"order":3}}}},"help":{"markdown":"## Overview\\n\\nTaxonomy is a shared list of tags you can use to organise anything in your app.\\nTags can sit inside other tags, so a broad tag such as \\"Events\\" can hold\\nnarrower ones such as \\"Concerts\\" and \\"Workshops\\". A tag can also have\\nalternative names, including translations, so people find it by whichever word\\nthey know.\\n\\n## Tasks\\n\\n### Add a tag\\n\\n1. Choose the **New** button above the list of tags.\\n2. Give the tag a **{field:name}** people will recognise.\\n3. Add a **{field:description}** that says what belongs under it.\\n4. Save. The tag is now ready to use.\\n\\n### Put a tag inside another tag\\n\\n1. Open the tag from the list and choose Edit.\\n2. Pick the **{field:parentId}**, the broader tag it belongs under.\\n3. Leave it empty to make the tag a top-level tag.\\n4. Save. Moving a tag moves everything under it too.\\n\\n### Add another name for a tag\\n\\n1. Open the list of alternative names and choose **New**.\\n2. Pick the **{field:tagSlug}** the new name belongs to.\\n3. Type the **{field:alias}**, for example a common nickname or a translation.\\n4. Set the **{field:language}** if the name is in a specific language.\\n5. Save. The alternative name is now on file for that tag.\\n\\n### Keep the list tidy\\n\\nKeep one tag for each idea. If two tags mean the same thing, record the second\\nas an alternative name instead of keeping both.\\n","fieldRefs":["alias","description","language","name","parentId","tagSlug"]},"demo":{"mode":"server","reasons":["Needs a server because its package depends on @happyvertical/smrt-tenancy, which do not build for a browser (#3624)."]}}],"smrtDependencies":["@happyvertical/smrt-core","@happyvertical/smrt-tenancy"],"browser":{"status":"server-only","issues":["#3624"],"via":["@happyvertical/smrt-tenancy"]},"stampsConstructors":true}`));
14
+ ObjectRegistry.registerPackageManifest(JSON.parse(`{"version":"1.0.0","timestamp":0,"packageName":"@happyvertical/smrt-tags","packageVersion":"0.55.17","objects":{"@happyvertical/smrt-tags:TagAlias":{"name":"tagalias","className":"TagAlias","qualifiedName":"@happyvertical/smrt-tags:TagAlias","collection":"tagaliases","filePath":"/home/runner/work/smrt/smrt/packages/tags/src/tag-alias.ts","packageName":"@happyvertical/smrt-tags","fields":{"created_at":{"type":"datetime","required":false},"updated_at":{"type":"datetime","required":false},"tagSlug":{"type":"text","required":false,"default":"","description":"The tag this alternative name points to.","_meta":{"description":"The tag this alternative name points to."}},"alias":{"type":"text","required":true,"default":"","description":"Another name or a translation people may use for the tag.","_meta":{"required":true,"description":"Another name or a translation people may use for the tag."}},"language":{"type":"text","required":false,"default":"","description":"The two-letter language code of the alternative name.","_meta":{"description":"The two-letter language code of the alternative name."}},"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}}},"createdAt":{"type":"datetime","required":false}},"methods":{"getTag":{"name":"getTag","async":true,"parameters":[],"returnType":"Promise<Tag | null>","isStatic":false,"isPublic":true},"searchByAlias":{"name":"searchByAlias","async":true,"parameters":[{"name":"_alias","type":"string","optional":false},{"name":"_language","type":"string","optional":true}],"returnType":"Promise<Tag[]>","isStatic":true,"isPublic":true},"getAliasesForTag":{"name":"getAliasesForTag","async":true,"parameters":[{"name":"_tagSlug","type":"string","optional":false}],"returnType":"Promise<TagAlias[]>","isStatic":true,"isPublic":true}},"decoratorConfig":{"tableStrategy":"sti","api":{"include":["list","get","create","update","delete"]},"mcp":{"include":["list","get","create"]},"cli":{"skipApiCheck":true},"tenantScoped":{"mode":"optional"},"conflictColumns":["tenant_id","slug","context","_meta_type"]},"extends":"SmrtObject","exportName":"TagAlias","collectionExportName":"TagAliasCollection","validationRules":[{"field":"alias","rule":"required","fieldType":"text"}],"schema":{"tableName":"tag_aliases","ddl":"CREATE TABLE IF NOT EXISTS \\"tag_aliases\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"_meta_type\\" TEXT NOT NULL,\\n \\"_meta_data\\" JSON,\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"tag_slug\\" TEXT DEFAULT '',\\n \\"alias\\" TEXT DEFAULT '',\\n \\"language\\" TEXT DEFAULT '',\\n \\"tenant_id\\" UUID\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"_meta_type":{"type":"TEXT","notNull":true},"_meta_data":{"type":"JSON","notNull":false},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"tag_slug":{"type":"TEXT","notNull":false,"default":""},"alias":{"type":"TEXT","notNull":false,"default":""},"language":{"type":"TEXT","notNull":false,"default":""},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false}},"indexes":[{"name":"tag_aliases_slug_context_meta_type_idx","columns":["tenant_id","slug","context","_meta_type"],"unique":true,"nullsNotDistinct":true},{"name":"tag_aliases_meta_type_idx","columns":["_meta_type"]},{"name":"tag_aliases_tenant_id_created_at_idx","columns":["tenant_id","created_at"]}],"version":"95a4bc18"},"importPath":"@happyvertical/smrt-tags"},"@happyvertical/smrt-tags:TagAliasCollection":{"name":"tagaliascollection","className":"TagAliasCollection","qualifiedName":"@happyvertical/smrt-tags:TagAliasCollection","collection":"tagaliases","filePath":"/home/runner/work/smrt/smrt/packages/tags/src/tag-aliases.ts","packageName":"@happyvertical/smrt-tags","fields":{},"methods":{"addAlias":{"name":"addAlias","async":true,"parameters":[{"name":"tagSlug","type":"string","optional":false},{"name":"alias","type":"string","optional":false},{"name":"language","type":"string","optional":true},{"name":"context","type":"string","optional":true}],"returnType":"Promise<TagAlias>","isStatic":false,"isPublic":true},"searchByAlias":{"name":"searchByAlias","async":true,"parameters":[{"name":"alias","type":"string","optional":false},{"name":"language","type":"string","optional":true}],"returnType":"Promise<Tag[]>","isStatic":false,"isPublic":true},"getAliasesForTag":{"name":"getAliasesForTag","async":true,"parameters":[{"name":"tagSlug","type":"string","optional":false},{"name":"language","type":"string","optional":true}],"returnType":"Promise<TagAlias[]>","isStatic":false,"isPublic":true},"removeAlias":{"name":"removeAlias","async":true,"parameters":[{"name":"aliasId","type":"string","optional":false}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"bulkAddAliases":{"name":"bulkAddAliases","async":true,"parameters":[{"name":"tagSlug","type":"string","optional":false},{"name":"aliases","type":"Array<object>","optional":false,"memberTypes":["string"]}],"returnType":"Promise<TagAlias[]>","isStatic":false,"isPublic":true},"getAliasesByLanguage":{"name":"getAliasesByLanguage","async":true,"parameters":[{"name":"tagSlug","type":"string","optional":false}],"returnType":"Promise<Map<string, string[]>>","isStatic":false,"isPublic":true},"findMatchingAliases":{"name":"findMatchingAliases","async":true,"parameters":[{"name":"query","type":"string","optional":false},{"name":"language","type":"string","optional":true}],"returnType":"Promise<TagAlias[]>","isStatic":false,"isPublic":true},"findByTenant":{"name":"findByTenant","async":true,"parameters":[{"name":"tenantId","type":"string","optional":false}],"returnType":"Promise<TagAlias[]>","isStatic":false,"isPublic":true},"findGlobal":{"name":"findGlobal","async":true,"parameters":[],"returnType":"Promise<TagAlias[]>","isStatic":false,"isPublic":true},"findWithGlobals":{"name":"findWithGlobals","async":true,"parameters":[{"name":"tenantId","type":"string","optional":false}],"returnType":"Promise<TagAlias[]>","isStatic":false,"isPublic":true}},"decoratorConfig":{},"extends":"SmrtCollection","extendsTypeArg":"TagAlias","exportName":"TagAliasCollection","collectionExportName":"TagAliasCollectionCollection","schema":{"tableName":"tag_aliases","ddl":"CREATE TABLE IF NOT EXISTS \\"tag_aliases\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"_meta_type\\" TEXT NOT NULL,\\n \\"_meta_data\\" JSON,\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"tag_slug\\" TEXT DEFAULT '',\\n \\"alias\\" TEXT DEFAULT '',\\n \\"language\\" TEXT DEFAULT '',\\n \\"tenant_id\\" UUID\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"_meta_type":{"type":"TEXT","notNull":true},"_meta_data":{"type":"JSON","notNull":false},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"tag_slug":{"type":"TEXT","notNull":false,"default":""},"alias":{"type":"TEXT","notNull":false,"default":""},"language":{"type":"TEXT","notNull":false,"default":""},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false}},"indexes":[{"name":"tag_aliases_slug_context_meta_type_idx","columns":["tenant_id","slug","context","_meta_type"],"unique":true,"nullsNotDistinct":true},{"name":"tag_aliases_meta_type_idx","columns":["_meta_type"]},{"name":"tag_aliases_tenant_id_created_at_idx","columns":["tenant_id","created_at"]}],"version":"95a4bc18"},"importPath":"@happyvertical/smrt-tags"},"@happyvertical/smrt-tags:Tag":{"name":"tag","className":"Tag","qualifiedName":"@happyvertical/smrt-tags:Tag","collection":"tags","filePath":"/home/runner/work/smrt/smrt/packages/tags/src/tag.ts","packageName":"@happyvertical/smrt-tags","fields":{"created_at":{"type":"datetime","required":false},"updated_at":{"type":"datetime","required":false},"parentId":{"type":"foreignKey","required":false,"related":"Tag","_meta":{"nullable":true}},"name":{"type":"text","required":true,"default":"","description":"The name people see when they pick or browse tags.","_meta":{"required":true,"description":"The name people see when they pick or browse tags."}},"level":{"type":"integer","required":false,"default":0},"description":{"type":"text","required":false,"default":"","description":"A short note on what belongs under this tag.","_meta":{"description":"A short note on what belongs under this tag."}},"metadata":{"type":"text","required":false,"default":"","description":"Extra details about the tag, saved as named items.","_meta":{"description":"Extra details about the tag, saved as named items."}},"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}}},"createdAt":{"type":"datetime","required":false},"updatedAt":{"type":"datetime","required":false}},"methods":{"getParent":{"name":"getParent","async":true,"parameters":[],"returnType":"Promise<this | null>","isStatic":false,"isPublic":true},"getChildren":{"name":"getChildren","async":true,"parameters":[],"returnType":"Promise<this[]>","isStatic":false,"isPublic":true},"getAncestors":{"name":"getAncestors","async":true,"parameters":[],"returnType":"Promise<this[]>","isStatic":false,"isPublic":true},"getDescendants":{"name":"getDescendants","async":true,"parameters":[],"returnType":"Promise<this[]>","isStatic":false,"isPublic":true},"getHierarchy":{"name":"getHierarchy","async":true,"parameters":[],"returnType":"Promise<HierarchyView<this>>","isStatic":false,"isPublic":true},"moveTo":{"name":"moveTo","async":true,"parameters":[{"name":"newParent","type":"this | string | null","optional":false,"unionBranches":[{"type":"this"},{"type":"string"},{"type":"null"}]}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"getMetadata":{"name":"getMetadata","async":false,"parameters":[],"returnType":"TagMetadata","isStatic":false,"isPublic":true},"setMetadata":{"name":"setMetadata","async":false,"parameters":[{"name":"data","type":"TagMetadata","optional":false}],"returnType":"void","isStatic":false,"isPublic":true},"updateMetadata":{"name":"updateMetadata","async":false,"parameters":[{"name":"updates","type":"Partial<TagMetadata>","optional":false}],"returnType":"void","isStatic":false,"isPublic":true},"getBySlug":{"name":"getBySlug","async":true,"parameters":[{"name":"_slug","type":"string","optional":false},{"name":"_context","type":"string","optional":true}],"returnType":"Promise<Tag | null>","isStatic":true,"isPublic":true},"getRootTags":{"name":"getRootTags","async":true,"parameters":[{"name":"_context","type":"string","optional":true,"default":"global"}],"returnType":"Promise<Tag[]>","isStatic":true,"isPublic":true}},"decoratorConfig":{"tableStrategy":"sti","api":{"include":["list","get","create","update","delete"]},"mcp":{"include":["list","get","create","update"]},"cli":{"skipApiCheck":true},"tenantScoped":{"mode":"optional"},"conflictColumns":["tenant_id","slug","context","_meta_type"]},"extends":"SmrtHierarchical","exportName":"Tag","collectionExportName":"TagCollection","displayLabelField":"name","validationRules":[{"field":"name","rule":"required","fieldType":"text"}],"schema":{"tableName":"tags","ddl":"CREATE TABLE IF NOT EXISTS \\"tags\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"_meta_type\\" TEXT NOT NULL,\\n \\"_meta_data\\" JSON,\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"parent_id\\" UUID,\\n \\"name\\" TEXT DEFAULT '',\\n \\"level\\" INTEGER DEFAULT 0,\\n \\"description\\" TEXT DEFAULT '',\\n \\"metadata\\" TEXT DEFAULT '',\\n \\"tenant_id\\" UUID\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"_meta_type":{"type":"TEXT","notNull":true},"_meta_data":{"type":"JSON","notNull":false},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"parent_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"tags","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"name":{"type":"TEXT","notNull":false,"default":""},"level":{"type":"INTEGER","notNull":false,"default":0},"description":{"type":"TEXT","notNull":false,"default":""},"metadata":{"type":"TEXT","notNull":false,"default":""},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false}},"indexes":[{"name":"tags_slug_context_meta_type_idx","columns":["tenant_id","slug","context","_meta_type"],"unique":true,"nullsNotDistinct":true},{"name":"tags_meta_type_idx","columns":["_meta_type"]},{"name":"tags_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"tags_parent_id_idx","columns":["parent_id"]}],"version":"4da9de3e"},"importPath":"@happyvertical/smrt-tags"},"@happyvertical/smrt-tags:TagCollection":{"name":"tagcollection","className":"TagCollection","qualifiedName":"@happyvertical/smrt-tags:TagCollection","collection":"tags","filePath":"/home/runner/work/smrt/smrt/packages/tags/src/tags.ts","packageName":"@happyvertical/smrt-tags","fields":{},"methods":{"getOrCreate":{"name":"getOrCreate","async":true,"parameters":[{"name":"slug","type":"string","optional":false},{"name":"context","type":"string","optional":true,"default":"global"}],"returnType":"Promise<Tag>","isStatic":false,"isPublic":true},"listByContext":{"name":"listByContext","async":true,"parameters":[{"name":"context","type":"string","optional":false},{"name":"parentSlug","type":"string | null","optional":true,"unionBranches":[{"type":"string"},{"type":"null"}]}],"returnType":"Promise<Tag[]>","isStatic":false,"isPublic":true},"getRootTags":{"name":"getRootTags","async":true,"parameters":[{"name":"context","type":"string","optional":true,"default":"global"}],"returnType":"Promise<Tag[]>","isStatic":false,"isPublic":true},"getChildren":{"name":"getChildren","async":true,"parameters":[{"name":"parentSlug","type":"string","optional":false},{"name":"context","type":"string","optional":true}],"returnType":"Promise<Tag[]>","isStatic":false,"isPublic":true},"getHierarchy":{"name":"getHierarchy","async":true,"parameters":[{"name":"slug","type":"string","optional":false},{"name":"context","type":"string","optional":true}],"returnType":"Promise<TagHierarchy>","isStatic":false,"isPublic":true},"moveTag":{"name":"moveTag","async":true,"parameters":[{"name":"slug","type":"string","optional":false},{"name":"newParentSlug","type":"string | null","optional":false,"unionBranches":[{"type":"string"},{"type":"null"}]},{"name":"context","type":"string","optional":true}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"mergeTag":{"name":"mergeTag","async":true,"parameters":[{"name":"fromSlug","type":"string","optional":false},{"name":"toSlug","type":"string","optional":false},{"name":"context","type":"string","optional":true}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"cleanupUnused":{"name":"cleanupUnused","async":true,"parameters":[{"name":"context","type":"string","optional":true}],"returnType":"Promise<number>","isStatic":false,"isPublic":true},"calculateLevel":{"name":"calculateLevel","async":true,"parameters":[{"name":"parentSlug","type":"string | null","optional":false,"unionBranches":[{"type":"string"},{"type":"null"}]},{"name":"context","type":"string","optional":true}],"returnType":"Promise<number>","isStatic":false,"isPublic":true},"findByTenant":{"name":"findByTenant","async":true,"parameters":[{"name":"tenantId","type":"string","optional":false}],"returnType":"Promise<Tag[]>","isStatic":false,"isPublic":true},"findGlobal":{"name":"findGlobal","async":true,"parameters":[],"returnType":"Promise<Tag[]>","isStatic":false,"isPublic":true},"findWithGlobals":{"name":"findWithGlobals","async":true,"parameters":[{"name":"tenantId","type":"string","optional":false}],"returnType":"Promise<Tag[]>","isStatic":false,"isPublic":true}},"decoratorConfig":{},"extends":"SmrtCollection","extendsTypeArg":"Tag","exportName":"TagCollection","collectionExportName":"TagCollectionCollection","schema":{"tableName":"tags","ddl":"CREATE TABLE IF NOT EXISTS \\"tags\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"_meta_type\\" TEXT NOT NULL,\\n \\"_meta_data\\" JSON,\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"parent_id\\" UUID,\\n \\"name\\" TEXT DEFAULT '',\\n \\"level\\" INTEGER DEFAULT 0,\\n \\"description\\" TEXT DEFAULT '',\\n \\"metadata\\" TEXT DEFAULT '',\\n \\"tenant_id\\" UUID\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"_meta_type":{"type":"TEXT","notNull":true},"_meta_data":{"type":"JSON","notNull":false},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"parent_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"tags","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"name":{"type":"TEXT","notNull":false,"default":""},"level":{"type":"INTEGER","notNull":false,"default":0},"description":{"type":"TEXT","notNull":false,"default":""},"metadata":{"type":"TEXT","notNull":false,"default":""},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false}},"indexes":[{"name":"tags_slug_context_meta_type_idx","columns":["tenant_id","slug","context","_meta_type"],"unique":true,"nullsNotDistinct":true},{"name":"tags_meta_type_idx","columns":["_meta_type"]},{"name":"tags_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"tags_parent_id_idx","columns":["parent_id"]}],"version":"4da9de3e"},"importPath":"@happyvertical/smrt-tags"}},"moduleType":"smrt","recipes":[{"id":"tags.taxonomy","className":"TaxonomyRecipe","label":"Taxonomy","summary":"Organise anything with a shared set of nested tags and alternative names.","synonyms":["tags","tagging","categories","labels","topics"],"models":["@happyvertical/smrt-tags:Tag","@happyvertical/smrt-tags:TagAlias"],"nav":[{"label":"Tags","model":"@happyvertical/smrt-tags:Tag","icon":"tag","description":"The shared set of tags, including tags inside other tags."},{"label":"Alternative names","model":"@happyvertical/smrt-tags:TagAlias","icon":"book","description":"Other names and translations that lead people to the same tag."}],"requires":[],"section":{"id":"taxonomy","label":"Taxonomy","icon":"tag","description":"The tags people use to sort and find things."},"options":{"@happyvertical/smrt-tags:Tag":{"fields":{"name":{"order":1},"parentId":{"label":"Parent tag","help":"The broader tag this one sits under. Leave it empty for a top-level tag.","order":2},"description":{"order":3},"level":{"visibility":"hidden","locked":true},"metadata":{"visibility":"advanced"}}},"@happyvertical/smrt-tags:TagAlias":{"fields":{"alias":{"label":"Alternative name","order":1},"tagSlug":{"label":"Tag","order":2},"language":{"order":3}}}},"help":{"markdown":"## Overview\\n\\nTaxonomy is a shared list of tags you can use to organise anything in your app.\\nTags can sit inside other tags, so a broad tag such as \\"Events\\" can hold\\nnarrower ones such as \\"Concerts\\" and \\"Workshops\\". A tag can also have\\nalternative names, including translations, so people find it by whichever word\\nthey know.\\n\\n## Tasks\\n\\n### Add a tag\\n\\n1. Choose the **New** button above the list of tags.\\n2. Give the tag a **{field:name}** people will recognise.\\n3. Add a **{field:description}** that says what belongs under it.\\n4. Save. The tag is now ready to use.\\n\\n### Put a tag inside another tag\\n\\n1. Open the tag from the list and choose Edit.\\n2. Pick the **{field:parentId}**, the broader tag it belongs under.\\n3. Leave it empty to make the tag a top-level tag.\\n4. Save. Moving a tag moves everything under it too.\\n\\n### Add another name for a tag\\n\\n1. Open the list of alternative names and choose **New**.\\n2. Pick the **{field:tagSlug}** the new name belongs to.\\n3. Type the **{field:alias}**, for example a common nickname or a translation.\\n4. Set the **{field:language}** if the name is in a specific language.\\n5. Save. The alternative name is now on file for that tag.\\n\\n### Keep the list tidy\\n\\nKeep one tag for each idea. If two tags mean the same thing, record the second\\nas an alternative name instead of keeping both.\\n","fieldRefs":["alias","description","language","name","parentId","tagSlug"]},"demo":{"mode":"server","reasons":["Needs a server because its package depends on @happyvertical/smrt-tenancy, which do not build for a browser (#3624)."]}}],"smrtDependencies":["@happyvertical/smrt-core","@happyvertical/smrt-tenancy"],"browser":{"status":"server-only","issues":["#3624"],"via":["@happyvertical/smrt-tenancy"]},"stampsConstructors":true}`));
15
15
  var __defProp$1$1 = Object.defineProperty;
16
16
  var __getOwnPropDesc$1$1 = Object.getOwnPropertyDescriptor;
17
17
  var __defNormalProp$1$1 = (obj, key, value) => key in obj ? __defProp$1$1(obj, key, {
@@ -731,7 +731,7 @@ var __exportAll = (all, no_symbols) => {
731
731
  if (!no_symbols) __defProp$9(target, Symbol.toStringTag, { value: "Module" });
732
732
  return target;
733
733
  };
734
- ObjectRegistry.registerPackageManifest(JSON.parse(`{"version":"1.0.0","timestamp":0,"packageName":"@happyvertical/smrt-assets","packageVersion":"0.55.15","objects":{"@happyvertical/smrt-assets:AssetAssociation":{"name":"assetassociation","className":"AssetAssociation","qualifiedName":"@happyvertical/smrt-assets:AssetAssociation","collection":"assetassociations","filePath":"/home/runner/work/smrt/smrt/packages/assets/src/asset-association.ts","packageName":"@happyvertical/smrt-assets","fields":{"metaType":{"type":"text","required":true,"_meta":{"required":true}},"metaId":{"type":"text","required":true,"_meta":{"required":true}},"role":{"type":"text","required":true,"_meta":{"required":true}},"sortOrder":{"type":"integer","required":false,"default":0},"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}}},"assetId":{"type":"foreignKey","required":true,"related":"Asset","description":"The file attached to the related record.","_meta":{"description":"The file attached to the related record.","required":true}}},"methods":{"hydrate":{"name":"hydrate","async":true,"parameters":[],"returnType":"Promise<T | null>","isStatic":false,"isPublic":true}},"decoratorConfig":{"conflictColumns":["asset_id","meta_type","meta_id","role"],"api":{"include":["list","get","create","delete"]},"mcp":{"include":["list","get","create"]},"cli":{"skipApiCheck":true},"tenantScoped":{"mode":"optional"}},"extends":"SmrtPolymorphicAssociation","exportName":"AssetAssociation","collectionExportName":"AssetAssociationCollection","validationRules":[{"field":"metaType","rule":"required","fieldType":"text"},{"field":"metaId","rule":"required","fieldType":"text"},{"field":"role","rule":"required","fieldType":"text"},{"field":"assetId","rule":"required","fieldType":"foreignKey"}],"schema":{"tableName":"asset_associations","ddl":"CREATE TABLE IF NOT EXISTS \\"asset_associations\\" (\\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 \\"meta_type\\" TEXT NOT NULL,\\n \\"meta_id\\" TEXT NOT NULL,\\n \\"role\\" TEXT NOT NULL,\\n \\"sort_order\\" INTEGER DEFAULT 0,\\n \\"tenant_id\\" UUID,\\n \\"asset_id\\" UUID 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"},"meta_type":{"type":"TEXT","notNull":true,"unique":false},"meta_id":{"type":"TEXT","notNull":true,"unique":false},"role":{"type":"TEXT","notNull":true,"unique":false},"sort_order":{"type":"INTEGER","notNull":false,"unique":false,"default":0},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false,"unique":false},"asset_id":{"type":"UUID","referenceKind":"foreignKey","notNull":true,"unique":false,"foreignKey":{"table":"assets","column":"id","onDelete":"CASCADE","onUpdate":"CASCADE"}}},"indexes":[{"name":"asset_associations_asset_id_meta_type_idx","columns":["asset_id","meta_type","meta_id","role"],"unique":true},{"name":"asset_associations_slug_context_idx","columns":["slug","context"]},{"name":"asset_associations_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"asset_associations_meta_type_meta_id_idx","columns":["meta_type","meta_id"]}],"version":"faa13cea"},"importPath":"@happyvertical/smrt-assets"},"@happyvertical/smrt-assets:AssetAssociationCollection":{"name":"assetassociationcollection","className":"AssetAssociationCollection","qualifiedName":"@happyvertical/smrt-assets:AssetAssociationCollection","collection":"assetassociations","filePath":"/home/runner/work/smrt/smrt/packages/assets/src/asset-associations.ts","packageName":"@happyvertical/smrt-assets","fields":{},"methods":{"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},"byLeft":{"name":"byLeft","async":true,"parameters":[{"name":"metaType","type":"string","optional":false},{"name":"metaId","type":"string","optional":false},{"name":"opts","type":"JunctionFilterOptions","optional":true}],"returnType":"Promise<AssetAssociation[]>","isStatic":false,"isPublic":true},"attach":{"name":"attach","async":true,"parameters":[{"name":"metaType","type":"string","optional":false},{"name":"metaId","type":"string","optional":false},{"name":"assetId","type":"string","optional":false},{"name":"opts","type":"JunctionAttachOptions","optional":true}],"returnType":"Promise<AssetAssociation>","isStatic":false,"isPublic":true},"detach":{"name":"detach","async":true,"parameters":[{"name":"metaType","type":"string","optional":false},{"name":"metaId","type":"string","optional":false},{"name":"assetId","type":"string","optional":false},{"name":"opts","type":"JunctionFilterOptions","optional":true}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"setLinks":{"name":"setLinks","async":true,"parameters":[{"name":"metaType","type":"string","optional":false},{"name":"metaId","type":"string","optional":false},{"name":"assetIds","type":"string[]","optional":false},{"name":"opts","type":"JunctionAttachOptions","optional":true}],"returnType":"Promise<void>","isStatic":false,"isPublic":true}},"decoratorConfig":{},"extends":"SmrtJunctionBase","extendsTypeArg":"AssetAssociation","exportName":"AssetAssociationCollection","collectionExportName":"AssetAssociationCollectionCollection","schema":{"tableName":"asset_associations","ddl":"CREATE TABLE IF NOT EXISTS \\"asset_associations\\" (\\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 \\"meta_type\\" TEXT NOT NULL,\\n \\"meta_id\\" TEXT NOT NULL,\\n \\"role\\" TEXT NOT NULL,\\n \\"sort_order\\" INTEGER DEFAULT 0,\\n \\"tenant_id\\" UUID,\\n \\"asset_id\\" UUID 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"},"meta_type":{"type":"TEXT","notNull":true,"unique":false},"meta_id":{"type":"TEXT","notNull":true,"unique":false},"role":{"type":"TEXT","notNull":true,"unique":false},"sort_order":{"type":"INTEGER","notNull":false,"unique":false,"default":0},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false,"unique":false},"asset_id":{"type":"UUID","referenceKind":"foreignKey","notNull":true,"unique":false,"foreignKey":{"table":"assets","column":"id","onDelete":"CASCADE","onUpdate":"CASCADE"}}},"indexes":[{"name":"asset_associations_asset_id_meta_type_idx","columns":["asset_id","meta_type","meta_id","role"],"unique":true},{"name":"asset_associations_slug_context_idx","columns":["slug","context"]},{"name":"asset_associations_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"asset_associations_meta_type_meta_id_idx","columns":["meta_type","meta_id"]}],"version":"faa13cea"},"importPath":"@happyvertical/smrt-assets"},"@happyvertical/smrt-assets:AssetMetafield":{"name":"assetmetafield","className":"AssetMetafield","qualifiedName":"@happyvertical/smrt-assets:AssetMetafield","collection":"assetmetafields","filePath":"/home/runner/work/smrt/smrt/packages/assets/src/asset-metafield.ts","packageName":"@happyvertical/smrt-assets","fields":{"created_at":{"type":"datetime","required":false},"updated_at":{"type":"datetime","required":false},"name":{"type":"text","required":false,"description":"The name of an additional asset detail, such as Width or Height.","_meta":{"description":"The name of an additional asset detail, such as Width or Height."}},"validation":{"type":"text","required":false,"description":"Rules that determine which values this asset detail accepts.","_meta":{"description":"Rules that determine which values this asset detail accepts."}}},"methods":{"getValidation":{"name":"getValidation","async":false,"parameters":[],"returnType":"Record<string, unknown>","isStatic":false,"isPublic":true},"setValidation":{"name":"setValidation","async":false,"parameters":[{"name":"rules","type":"Record<string, unknown>","optional":false}],"returnType":"void","isStatic":false,"isPublic":true},"getBySlug":{"name":"getBySlug","async":true,"parameters":[{"name":"_slug","type":"string","optional":false}],"returnType":"Promise<AssetMetafield | null>","isStatic":true,"isPublic":true}},"decoratorConfig":{"tableStrategy":"sti","api":{"include":["list","get","create","update","delete"]},"mcp":{"include":["list","get","create"]},"cli":{"skipApiCheck":true}},"extends":"SmrtObject","exportName":"AssetMetafield","collectionExportName":"AssetMetafieldCollection","displayLabelField":"name","schema":{"tableName":"asset_metafields","ddl":"CREATE TABLE IF NOT EXISTS \\"asset_metafields\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"_meta_type\\" TEXT NOT NULL,\\n \\"_meta_data\\" JSON,\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"name\\" TEXT,\\n \\"validation\\" TEXT\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"_meta_type":{"type":"TEXT","notNull":true},"_meta_data":{"type":"JSON","notNull":false},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"name":{"type":"TEXT","notNull":false},"validation":{"type":"TEXT","notNull":false}},"indexes":[{"name":"asset_metafields_slug_context_meta_type_idx","columns":["slug","context","_meta_type"],"unique":true},{"name":"asset_metafields_meta_type_idx","columns":["_meta_type"]},{"name":"asset_metafields_created_at_idx","columns":["created_at"]}],"version":"7393718c"},"importPath":"@happyvertical/smrt-assets"},"@happyvertical/smrt-assets:AssetMetafieldCollection":{"name":"assetmetafieldcollection","className":"AssetMetafieldCollection","qualifiedName":"@happyvertical/smrt-assets:AssetMetafieldCollection","collection":"assetmetafields","filePath":"/home/runner/work/smrt/smrt/packages/assets/src/asset-metafields.ts","packageName":"@happyvertical/smrt-assets","fields":{},"methods":{"getOrCreate":{"name":"getOrCreate","async":true,"parameters":[{"name":"slug","type":"string","optional":false},{"name":"name","type":"string","optional":true},{"name":"validation","type":"string | Record<string, unknown>","optional":true,"unionBranches":[{"type":"string"},{"type":"Record<string, unknown>"}]}],"returnType":"Promise<AssetMetafield>","isStatic":false,"isPublic":true},"initializeCommonMetafields":{"name":"initializeCommonMetafields","async":true,"parameters":[],"returnType":"Promise<void>","isStatic":false,"isPublic":true}},"decoratorConfig":{},"extends":"SmrtCollection","extendsTypeArg":"AssetMetafield","exportName":"AssetMetafieldCollection","collectionExportName":"AssetMetafieldCollectionCollection","schema":{"tableName":"asset_metafields","ddl":"CREATE TABLE IF NOT EXISTS \\"asset_metafields\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"_meta_type\\" TEXT NOT NULL,\\n \\"_meta_data\\" JSON,\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"name\\" TEXT,\\n \\"validation\\" TEXT\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"_meta_type":{"type":"TEXT","notNull":true},"_meta_data":{"type":"JSON","notNull":false},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"name":{"type":"TEXT","notNull":false},"validation":{"type":"TEXT","notNull":false}},"indexes":[{"name":"asset_metafields_slug_context_meta_type_idx","columns":["slug","context","_meta_type"],"unique":true},{"name":"asset_metafields_meta_type_idx","columns":["_meta_type"]},{"name":"asset_metafields_created_at_idx","columns":["created_at"]}],"version":"7393718c"},"importPath":"@happyvertical/smrt-assets"},"@happyvertical/smrt-assets:AssetStatus":{"name":"assetstatus","className":"AssetStatus","qualifiedName":"@happyvertical/smrt-assets:AssetStatus","collection":"assetstatuses","filePath":"/home/runner/work/smrt/smrt/packages/assets/src/asset-status.ts","packageName":"@happyvertical/smrt-assets","fields":{"created_at":{"type":"datetime","required":false},"updated_at":{"type":"datetime","required":false},"name":{"type":"text","required":false,"description":"The name of this lifecycle stage, such as Draft or Published.","_meta":{"description":"The name of this lifecycle stage, such as Draft or Published."}},"description":{"type":"text","required":false,"description":"Explain when an asset should use this lifecycle stage.","_meta":{"description":"Explain when an asset should use this lifecycle stage."}}},"methods":{"getBySlug":{"name":"getBySlug","async":true,"parameters":[{"name":"_slug","type":"string","optional":false}],"returnType":"Promise<AssetStatus | null>","isStatic":true,"isPublic":true}},"decoratorConfig":{"tableStrategy":"sti","api":{"include":["list","get","create","update","delete"]},"mcp":{"include":["list","get","create"]},"cli":{"skipApiCheck":true}},"extends":"SmrtObject","exportName":"AssetStatus","collectionExportName":"AssetStatusCollection","displayLabelField":"name","schema":{"tableName":"asset_statuses","ddl":"CREATE TABLE IF NOT EXISTS \\"asset_statuses\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"_meta_type\\" TEXT NOT NULL,\\n \\"_meta_data\\" JSON,\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"name\\" TEXT,\\n \\"description\\" TEXT\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"_meta_type":{"type":"TEXT","notNull":true},"_meta_data":{"type":"JSON","notNull":false},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"name":{"type":"TEXT","notNull":false},"description":{"type":"TEXT","notNull":false}},"indexes":[{"name":"asset_statuses_slug_context_meta_type_idx","columns":["slug","context","_meta_type"],"unique":true},{"name":"asset_statuses_meta_type_idx","columns":["_meta_type"]},{"name":"asset_statuses_created_at_idx","columns":["created_at"]}],"version":"8251a52f"},"importPath":"@happyvertical/smrt-assets"},"@happyvertical/smrt-assets:AssetStatusCollection":{"name":"assetstatuscollection","className":"AssetStatusCollection","qualifiedName":"@happyvertical/smrt-assets:AssetStatusCollection","collection":"assetstatuses","filePath":"/home/runner/work/smrt/smrt/packages/assets/src/asset-statuses.ts","packageName":"@happyvertical/smrt-assets","fields":{},"methods":{"getOrCreate":{"name":"getOrCreate","async":true,"parameters":[{"name":"slug","type":"string","optional":false},{"name":"name","type":"string","optional":true},{"name":"description","type":"string","optional":true}],"returnType":"Promise<AssetStatus>","isStatic":false,"isPublic":true},"initializeCommonStatuses":{"name":"initializeCommonStatuses","async":true,"parameters":[],"returnType":"Promise<void>","isStatic":false,"isPublic":true}},"decoratorConfig":{},"extends":"SmrtCollection","extendsTypeArg":"AssetStatus","exportName":"AssetStatusCollection","collectionExportName":"AssetStatusCollectionCollection","schema":{"tableName":"asset_statuses","ddl":"CREATE TABLE IF NOT EXISTS \\"asset_statuses\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"_meta_type\\" TEXT NOT NULL,\\n \\"_meta_data\\" JSON,\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"name\\" TEXT,\\n \\"description\\" TEXT\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"_meta_type":{"type":"TEXT","notNull":true},"_meta_data":{"type":"JSON","notNull":false},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"name":{"type":"TEXT","notNull":false},"description":{"type":"TEXT","notNull":false}},"indexes":[{"name":"asset_statuses_slug_context_meta_type_idx","columns":["slug","context","_meta_type"],"unique":true},{"name":"asset_statuses_meta_type_idx","columns":["_meta_type"]},{"name":"asset_statuses_created_at_idx","columns":["created_at"]}],"version":"8251a52f"},"importPath":"@happyvertical/smrt-assets"},"@happyvertical/smrt-assets:AssetTag":{"name":"assettag","className":"AssetTag","qualifiedName":"@happyvertical/smrt-assets:AssetTag","collection":"assettags","filePath":"/home/runner/work/smrt/smrt/packages/assets/src/asset-tag.ts","packageName":"@happyvertical/smrt-assets","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}}},"assetId":{"type":"foreignKey","required":true,"related":"Asset","_meta":{"required":true,"onDelete":"CASCADE"}},"tagId":{"type":"crossPackageRef","required":true,"related":"@happyvertical/smrt-tags:Tag","_meta":{"onDelete":"CASCADE"}}},"methods":{},"decoratorConfig":{"tableName":"asset_tags","conflictColumns":["asset_id","tag_id"],"api":false,"mcp":false,"cli":false,"tenantScoped":{"mode":"optional"}},"extends":"SmrtObject","exportName":"AssetTag","collectionExportName":"AssetTagCollection","validationRules":[{"field":"assetId","rule":"required","fieldType":"foreignKey"},{"field":"tagId","rule":"required","fieldType":"crossPackageRef"}],"schema":{"tableName":"asset_tags","ddl":"CREATE TABLE IF NOT EXISTS \\"asset_tags\\" (\\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 \\"asset_id\\" UUID NOT NULL,\\n \\"tag_id\\" UUID 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},"asset_id":{"type":"UUID","referenceKind":"foreignKey","notNull":true,"unique":false,"foreignKey":{"table":"assets","column":"id","onDelete":"CASCADE","onUpdate":"CASCADE"}},"tag_id":{"type":"UUID","referenceKind":"crossPackageRef","notNull":true,"unique":false}},"indexes":[{"name":"asset_tags_asset_id_tag_id_idx","columns":["asset_id","tag_id"],"unique":true},{"name":"asset_tags_slug_context_idx","columns":["slug","context"]},{"name":"asset_tags_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"asset_tags_tag_id_idx","columns":["tag_id"]}],"version":"e60d24f5"},"importPath":"@happyvertical/smrt-assets"},"@happyvertical/smrt-assets:AssetTagCollection":{"name":"assettagcollection","className":"AssetTagCollection","qualifiedName":"@happyvertical/smrt-assets:AssetTagCollection","collection":"assettags","filePath":"/home/runner/work/smrt/smrt/packages/assets/src/asset-tags.ts","packageName":"@happyvertical/smrt-assets","fields":{},"methods":{"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},"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},"attach":{"name":"attach","async":true,"parameters":[{"name":"leftId","type":"string","optional":false},{"name":"rightId","type":"string","optional":false},{"name":"opts","type":"JunctionAttachOptions","optional":true}],"returnType":"Promise<TItem>","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":"leftId","type":"string","optional":false},{"name":"rightIds","type":"string[]","optional":false},{"name":"opts","type":"JunctionAttachOptions","optional":true}],"returnType":"Promise<void>","isStatic":false,"isPublic":true}},"decoratorConfig":{"tableName":"asset_tags","api":false,"mcp":false,"cli":false},"extends":"SmrtJunction","extendsTypeArg":"AssetTag","exportName":"AssetTagCollection","collectionExportName":"AssetTagCollectionCollection","schema":{"tableName":"asset_tags","ddl":"CREATE TABLE IF NOT EXISTS \\"asset_tags\\" (\\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 \\"asset_id\\" UUID NOT NULL,\\n \\"tag_id\\" UUID 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},"asset_id":{"type":"UUID","referenceKind":"foreignKey","notNull":true,"unique":false,"foreignKey":{"table":"assets","column":"id","onDelete":"CASCADE","onUpdate":"CASCADE"}},"tag_id":{"type":"UUID","referenceKind":"crossPackageRef","notNull":true,"unique":false}},"indexes":[{"name":"asset_tags_asset_id_tag_id_idx","columns":["asset_id","tag_id"],"unique":true},{"name":"asset_tags_slug_context_idx","columns":["slug","context"]},{"name":"asset_tags_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"asset_tags_tag_id_idx","columns":["tag_id"]}],"version":"e60d24f5"},"importPath":"@happyvertical/smrt-assets"},"@happyvertical/smrt-assets:AssetType":{"name":"assettype","className":"AssetType","qualifiedName":"@happyvertical/smrt-assets:AssetType","collection":"assettypes","filePath":"/home/runner/work/smrt/smrt/packages/assets/src/asset-type.ts","packageName":"@happyvertical/smrt-assets","fields":{"created_at":{"type":"datetime","required":false},"updated_at":{"type":"datetime","required":false},"name":{"type":"text","required":false,"description":"The name of this file category, such as Image or Document.","_meta":{"description":"The name of this file category, such as Image or Document."}},"description":{"type":"text","required":false,"description":"Explain which kinds of files belong in this category.","_meta":{"description":"Explain which kinds of files belong in this category."}}},"methods":{"getBySlug":{"name":"getBySlug","async":true,"parameters":[{"name":"_slug","type":"string","optional":false}],"returnType":"Promise<AssetType | null>","isStatic":true,"isPublic":true}},"decoratorConfig":{"tableStrategy":"sti","api":{"include":["list","get","create","update","delete"]},"mcp":{"include":["list","get","create"]},"cli":{"skipApiCheck":true}},"extends":"SmrtObject","exportName":"AssetType","collectionExportName":"AssetTypeCollection","displayLabelField":"name","schema":{"tableName":"asset_types","ddl":"CREATE TABLE IF NOT EXISTS \\"asset_types\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"_meta_type\\" TEXT NOT NULL,\\n \\"_meta_data\\" JSON,\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"name\\" TEXT,\\n \\"description\\" TEXT\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"_meta_type":{"type":"TEXT","notNull":true},"_meta_data":{"type":"JSON","notNull":false},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"name":{"type":"TEXT","notNull":false},"description":{"type":"TEXT","notNull":false}},"indexes":[{"name":"asset_types_slug_context_meta_type_idx","columns":["slug","context","_meta_type"],"unique":true},{"name":"asset_types_meta_type_idx","columns":["_meta_type"]},{"name":"asset_types_created_at_idx","columns":["created_at"]}],"version":"a9c93be2"},"importPath":"@happyvertical/smrt-assets"},"@happyvertical/smrt-assets:AssetTypeCollection":{"name":"assettypecollection","className":"AssetTypeCollection","qualifiedName":"@happyvertical/smrt-assets:AssetTypeCollection","collection":"assettypes","filePath":"/home/runner/work/smrt/smrt/packages/assets/src/asset-types.ts","packageName":"@happyvertical/smrt-assets","fields":{},"methods":{"getOrCreate":{"name":"getOrCreate","async":true,"parameters":[{"name":"slug","type":"string","optional":false},{"name":"name","type":"string","optional":true},{"name":"description","type":"string","optional":true}],"returnType":"Promise<AssetType>","isStatic":false,"isPublic":true},"initializeCommonTypes":{"name":"initializeCommonTypes","async":true,"parameters":[],"returnType":"Promise<void>","isStatic":false,"isPublic":true}},"decoratorConfig":{},"extends":"SmrtCollection","extendsTypeArg":"AssetType","exportName":"AssetTypeCollection","collectionExportName":"AssetTypeCollectionCollection","schema":{"tableName":"asset_types","ddl":"CREATE TABLE IF NOT EXISTS \\"asset_types\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"_meta_type\\" TEXT NOT NULL,\\n \\"_meta_data\\" JSON,\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"name\\" TEXT,\\n \\"description\\" TEXT\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"_meta_type":{"type":"TEXT","notNull":true},"_meta_data":{"type":"JSON","notNull":false},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"name":{"type":"TEXT","notNull":false},"description":{"type":"TEXT","notNull":false}},"indexes":[{"name":"asset_types_slug_context_meta_type_idx","columns":["slug","context","_meta_type"],"unique":true},{"name":"asset_types_meta_type_idx","columns":["_meta_type"]},{"name":"asset_types_created_at_idx","columns":["created_at"]}],"version":"a9c93be2"},"importPath":"@happyvertical/smrt-assets"},"@happyvertical/smrt-assets:Asset":{"name":"asset","className":"Asset","qualifiedName":"@happyvertical/smrt-assets:Asset","collection":"assets","filePath":"/home/runner/work/smrt/smrt/packages/assets/src/asset.ts","packageName":"@happyvertical/smrt-assets","fields":{"created_at":{"type":"datetime","required":false},"updated_at":{"type":"datetime","required":false},"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}}},"name":{"type":"text","required":false,"description":"A recognizable name for this file or media item.","_meta":{"description":"A recognizable name for this file or media item."}},"sourceUri":{"type":"text","required":false,"description":"Where the original file is stored or can be retrieved.","_meta":{"description":"Where the original file is stored or can be retrieved."}},"mimeType":{"type":"text","required":false,"description":"The file format, such as image/jpeg or application/pdf.","_meta":{"description":"The file format, such as image/jpeg or application/pdf."}},"description":{"type":"text","required":false,"description":"Explain what the file contains and when it should be used.","_meta":{"description":"Explain what the file contains and when it should be used."}},"metadata":{"type":"text","required":false,"description":"Additional details recorded while processing this file.","_meta":{"description":"Additional details recorded while processing this file."}},"version":{"type":"integer","required":true,"default":1,"description":"The revision number of this file in its version history.","_meta":{"description":"The revision number of this file in its version history."}},"primaryVersionId":{"type":"foreignKey","required":false,"related":"Asset","description":"The first version of this file, linking its revision history.","_meta":{"description":"The first version of this file, linking its revision history."}},"typeSlug":{"type":"text","required":false,"description":"The category of asset, such as an image, video, or document.","_meta":{"description":"The category of asset, such as an image, video, or document."}},"statusSlug":{"type":"text","required":false,"description":"The stage of this asset, such as draft, published, or archived.","_meta":{"description":"The stage of this asset, such as draft, published, or archived."}},"ownerProfileId":{"type":"crossPackageRef","required":false,"related":"@happyvertical/smrt-profiles:Profile","description":"The person or organization responsible for this asset.","_meta":{"description":"The person or organization responsible for this asset."}},"sourceAssetId":{"type":"foreignKey","required":false,"related":"Asset","description":"The original asset used to produce this file or variation.","_meta":{"description":"The original asset used to produce this file or variation."}},"folderId":{"type":"foreignKey","required":false,"related":"Folder","description":"The folder that organizes this file in the asset library.","_meta":{"description":"The folder that organizes this file in the asset library."}},"sourceType":{"type":"text","required":false,"description":"The service or source from which this file was obtained.","_meta":{"description":"The service or source from which this file was obtained."}},"externalId":{"type":"text","required":false,"description":"The reference used to identify this file at its original source.","_meta":{"description":"The reference used to identify this file at its original source."}},"externalRefs":{"type":"text","required":false,"description":"References that connect this file to copies held by other services.","_meta":{"description":"References that connect this file to copies held by other services."}},"createdAt":{"type":"text","required":false},"updatedAt":{"type":"text","required":false}},"methods":{"getSlug":{"name":"getSlug","async":true,"parameters":[],"returnType":"Promise<string | null | undefined>","isStatic":false,"isPublic":true},"getMetadata":{"name":"getMetadata","async":false,"parameters":[],"returnType":"Record<string, unknown>","isStatic":false,"isPublic":true},"setMetadata":{"name":"setMetadata","async":false,"parameters":[{"name":"metadata","type":"Record<string, unknown>","optional":false}],"returnType":"void","isStatic":false,"isPublic":true},"mergeMetadata":{"name":"mergeMetadata","async":false,"parameters":[{"name":"metadata","type":"Record<string, unknown>","optional":false}],"returnType":"void","isStatic":false,"isPublic":true},"getExternalRefs":{"name":"getExternalRefs","async":false,"parameters":[],"returnType":"Record<string, AssetExternalReference>","isStatic":false,"isPublic":true},"getExternalRef":{"name":"getExternalRef","async":false,"parameters":[{"name":"provider","type":"string","optional":false}],"returnType":"AssetExternalReference | null","isStatic":false,"isPublic":true},"setExternalRef":{"name":"setExternalRef","async":false,"parameters":[{"name":"provider","type":"string","optional":false},{"name":"reference","type":"any","optional":false,"typeUnresolved":true}],"returnType":"void","isStatic":false,"isPublic":true},"getTags":{"name":"getTags","async":true,"parameters":[],"returnType":"Promise<Tag[]>","isStatic":false,"isPublic":true},"hasTag":{"name":"hasTag","async":true,"parameters":[{"name":"tagSlug","type":"string","optional":false},{"name":"context","type":"string","optional":true}],"returnType":"Promise<boolean>","isStatic":false,"isPublic":true},"getSource":{"name":"getSource","async":true,"parameters":[],"returnType":"Promise<Asset | null>","isStatic":false,"isPublic":true},"getDerivatives":{"name":"getDerivatives","async":true,"parameters":[],"returnType":"Promise<Asset[]>","isStatic":false,"isPublic":true},"getType":{"name":"getType","async":true,"parameters":[],"returnType":"Promise<AssetType | null>","isStatic":false,"isPublic":true},"getStatus":{"name":"getStatus","async":true,"parameters":[],"returnType":"Promise<AssetStatus | null>","isStatic":false,"isPublic":true},"getAssociations":{"name":"getAssociations","async":true,"parameters":[],"returnType":"Promise<AssetAssociation[]>","isStatic":false,"isPublic":true},"associateWith":{"name":"associateWith","async":true,"parameters":[{"name":"metaType","type":"string","optional":false},{"name":"metaId","type":"string","optional":false},{"name":"role","type":"any","optional":true,"default":"default"}],"returnType":"Promise<AssetAssociation>","isStatic":false,"isPublic":true},"getBySlug":{"name":"getBySlug","async":true,"parameters":[{"name":"_slug","type":"string","optional":false}],"returnType":"Promise<Asset | null>","isStatic":true,"isPublic":true}},"decoratorConfig":{"tableStrategy":"sti","api":{"include":["list","get","create","update","delete"]},"mcp":{"include":["list","get","create","update"]},"cli":{"skipApiCheck":true},"tenantScoped":{"mode":"optional"},"conflictColumns":["tenant_id","slug","context","_meta_type"]},"extends":"SmrtObject","exportName":"Asset","collectionExportName":"AssetCollection","displayLabelField":"name","validationRules":[{"field":"version","rule":"required","fieldType":"integer"}],"schema":{"tableName":"assets","ddl":"CREATE TABLE IF NOT EXISTS \\"assets\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"_meta_type\\" TEXT NOT NULL,\\n \\"_meta_data\\" JSON,\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"tenant_id\\" UUID,\\n \\"name\\" TEXT,\\n \\"source_uri\\" TEXT,\\n \\"mime_type\\" TEXT,\\n \\"description\\" TEXT,\\n \\"metadata\\" TEXT,\\n \\"version\\" INTEGER DEFAULT 1,\\n \\"primary_version_id\\" UUID,\\n \\"type_slug\\" TEXT,\\n \\"status_slug\\" TEXT,\\n \\"owner_profile_id\\" UUID,\\n \\"source_asset_id\\" UUID,\\n \\"folder_id\\" UUID,\\n \\"source_type\\" TEXT,\\n \\"external_id\\" TEXT,\\n \\"external_refs\\" TEXT\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"_meta_type":{"type":"TEXT","notNull":true},"_meta_data":{"type":"JSON","notNull":false},"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},"name":{"type":"TEXT","notNull":false},"source_uri":{"type":"TEXT","notNull":false},"mime_type":{"type":"TEXT","notNull":false},"description":{"type":"TEXT","notNull":false},"metadata":{"type":"TEXT","notNull":false},"version":{"type":"INTEGER","notNull":false,"default":1},"primary_version_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"assets","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"type_slug":{"type":"TEXT","notNull":false},"status_slug":{"type":"TEXT","notNull":false},"owner_profile_id":{"type":"UUID","referenceKind":"crossPackageRef","notNull":false},"source_asset_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"assets","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"folder_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"folders","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"source_type":{"type":"TEXT","notNull":false},"external_id":{"type":"TEXT","notNull":false},"external_refs":{"type":"TEXT","notNull":false}},"indexes":[{"name":"assets_slug_context_meta_type_idx","columns":["tenant_id","slug","context","_meta_type"],"unique":true,"nullsNotDistinct":true},{"name":"assets_meta_type_idx","columns":["_meta_type"]},{"name":"assets_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"assets_primary_version_id_idx","columns":["primary_version_id"]},{"name":"assets_owner_profile_id_idx","columns":["owner_profile_id"]},{"name":"assets_source_asset_id_idx","columns":["source_asset_id"]},{"name":"assets_folder_id_idx","columns":["folder_id"]}],"version":"16d6c152"},"importPath":"@happyvertical/smrt-assets"},"@happyvertical/smrt-assets:AssetCollection":{"name":"assetcollection","className":"AssetCollection","qualifiedName":"@happyvertical/smrt-assets:AssetCollection","collection":"assets","filePath":"/home/runner/work/smrt/smrt/packages/assets/src/assets.ts","packageName":"@happyvertical/smrt-assets","fields":{},"methods":{"findByTenant":{"name":"findByTenant","async":true,"parameters":[{"name":"tenantId","type":"string","optional":false}],"returnType":"Promise<Asset[]>","isStatic":false,"isPublic":true},"findGlobal":{"name":"findGlobal","async":true,"parameters":[],"returnType":"Promise<Asset[]>","isStatic":false,"isPublic":true},"findWithGlobals":{"name":"findWithGlobals","async":true,"parameters":[{"name":"tenantId","type":"string","optional":false}],"returnType":"Promise<Asset[]>","isStatic":false,"isPublic":true},"addTag":{"name":"addTag","async":true,"parameters":[{"name":"assetId","type":"string","optional":false},{"name":"tag","type":"string","optional":false},{"name":"options","type":"AssetTagInput","optional":true}],"returnType":"Promise<Tag>","isStatic":false,"isPublic":true},"removeTag":{"name":"removeTag","async":true,"parameters":[{"name":"assetId","type":"string","optional":false},{"name":"tag","type":"string","optional":false},{"name":"options","type":"Pick<AssetTagInput, 'context'>","optional":true}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"setTags":{"name":"setTags","async":true,"parameters":[{"name":"assetId","type":"string","optional":false},{"name":"tags","type":"string[]","optional":false},{"name":"options","type":"Pick<AssetTagInput, 'context'>","optional":true}],"returnType":"Promise<Tag[]>","isStatic":false,"isPublic":true},"getTagsForAssets":{"name":"getTagsForAssets","async":true,"parameters":[{"name":"assetIds","type":"string[]","optional":false}],"returnType":"Promise<Map<string, Tag[]>>","isStatic":false,"isPublic":true},"getByTag":{"name":"getByTag","async":true,"parameters":[{"name":"tag","type":"string","optional":false},{"name":"options","type":"Pick<AssetTagInput, 'context'>","optional":true}],"returnType":"Promise<Asset[]>","isStatic":false,"isPublic":true},"getByType":{"name":"getByType","async":true,"parameters":[{"name":"typeSlug","type":"string","optional":false}],"returnType":"Promise<Asset[]>","isStatic":false,"isPublic":true},"getByStatus":{"name":"getByStatus","async":true,"parameters":[{"name":"statusSlug","type":"string","optional":false}],"returnType":"Promise<Asset[]>","isStatic":false,"isPublic":true},"getByOwner":{"name":"getByOwner","async":true,"parameters":[{"name":"ownerProfileId","type":"string","optional":false}],"returnType":"Promise<Asset[]>","isStatic":false,"isPublic":true},"createNewVersion":{"name":"createNewVersion","async":true,"parameters":[{"name":"primaryVersionId","type":"string","optional":false},{"name":"newSourceUri","type":"string","optional":false},{"name":"updates","type":"Partial<Asset>","optional":true}],"returnType":"Promise<Asset>","isStatic":false,"isPublic":true},"getLatestVersion":{"name":"getLatestVersion","async":true,"parameters":[{"name":"primaryVersionId","type":"string","optional":false}],"returnType":"Promise<Asset | null>","isStatic":false,"isPublic":true},"listVersions":{"name":"listVersions","async":true,"parameters":[{"name":"primaryVersionId","type":"string","optional":false}],"returnType":"Promise<Asset[]>","isStatic":false,"isPublic":true},"getDerivatives":{"name":"getDerivatives","async":true,"parameters":[{"name":"sourceAssetId","type":"string","optional":false}],"returnType":"Promise<Asset[]>","isStatic":false,"isPublic":true},"getByMimeType":{"name":"getByMimeType","async":true,"parameters":[{"name":"mimePattern","type":"string","optional":false}],"returnType":"Promise<Asset[]>","isStatic":false,"isPublic":true},"rollbackToVersion":{"name":"rollbackToVersion","async":true,"parameters":[{"name":"primaryVersionId","type":"string","optional":false},{"name":"targetVersion","type":"number","optional":false}],"returnType":"Promise<Asset>","isStatic":false,"isPublic":true},"getByFolder":{"name":"getByFolder","async":true,"parameters":[{"name":"folderId","type":"string","optional":false}],"returnType":"Promise<Asset[]>","isStatic":false,"isPublic":true}},"decoratorConfig":{},"extends":"SmrtCollection","extendsTypeArg":"Asset","exportName":"AssetCollection","collectionExportName":"AssetCollectionCollection","schema":{"tableName":"assets","ddl":"CREATE TABLE IF NOT EXISTS \\"assets\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"_meta_type\\" TEXT NOT NULL,\\n \\"_meta_data\\" JSON,\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"tenant_id\\" UUID,\\n \\"name\\" TEXT,\\n \\"source_uri\\" TEXT,\\n \\"mime_type\\" TEXT,\\n \\"description\\" TEXT,\\n \\"metadata\\" TEXT,\\n \\"version\\" INTEGER DEFAULT 1,\\n \\"primary_version_id\\" UUID,\\n \\"type_slug\\" TEXT,\\n \\"status_slug\\" TEXT,\\n \\"owner_profile_id\\" UUID,\\n \\"source_asset_id\\" UUID,\\n \\"folder_id\\" UUID,\\n \\"source_type\\" TEXT,\\n \\"external_id\\" TEXT,\\n \\"external_refs\\" TEXT\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"_meta_type":{"type":"TEXT","notNull":true},"_meta_data":{"type":"JSON","notNull":false},"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},"name":{"type":"TEXT","notNull":false},"source_uri":{"type":"TEXT","notNull":false},"mime_type":{"type":"TEXT","notNull":false},"description":{"type":"TEXT","notNull":false},"metadata":{"type":"TEXT","notNull":false},"version":{"type":"INTEGER","notNull":false,"default":1},"primary_version_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"assets","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"type_slug":{"type":"TEXT","notNull":false},"status_slug":{"type":"TEXT","notNull":false},"owner_profile_id":{"type":"UUID","referenceKind":"crossPackageRef","notNull":false},"source_asset_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"assets","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"folder_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"folders","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"source_type":{"type":"TEXT","notNull":false},"external_id":{"type":"TEXT","notNull":false},"external_refs":{"type":"TEXT","notNull":false}},"indexes":[{"name":"assets_slug_context_meta_type_idx","columns":["tenant_id","slug","context","_meta_type"],"unique":true,"nullsNotDistinct":true},{"name":"assets_meta_type_idx","columns":["_meta_type"]},{"name":"assets_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"assets_primary_version_id_idx","columns":["primary_version_id"]},{"name":"assets_owner_profile_id_idx","columns":["owner_profile_id"]},{"name":"assets_source_asset_id_idx","columns":["source_asset_id"]},{"name":"assets_folder_id_idx","columns":["folder_id"]}],"version":"16d6c152"},"importPath":"@happyvertical/smrt-assets"},"@happyvertical/smrt-assets:Folder":{"name":"folder","className":"Folder","qualifiedName":"@happyvertical/smrt-assets:Folder","collection":"folders","filePath":"/home/runner/work/smrt/smrt/packages/assets/src/folder.ts","packageName":"@happyvertical/smrt-assets","fields":{"parentId":{"type":"foreignKey","required":false,"related":"Folder","_meta":{"nullable":true}},"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}}},"name":{"type":"text","required":false,"description":"A recognizable name for this group of files.","_meta":{"description":"A recognizable name for this group of files."}},"description":{"type":"text","required":false,"description":"Explain the purpose of this folder and which files belong here.","_meta":{"description":"Explain the purpose of this folder and which files belong here."}},"ownerProfileId":{"type":"crossPackageRef","required":false,"related":"@happyvertical/smrt-profiles:Profile","description":"The person or organization responsible for this folder.","_meta":{"description":"The person or organization responsible for this folder."}},"createdAt":{"type":"text","required":false},"updatedAt":{"type":"text","required":false}},"methods":{"getParent":{"name":"getParent","async":true,"parameters":[],"returnType":"Promise<this | null>","isStatic":false,"isPublic":true},"getChildren":{"name":"getChildren","async":true,"parameters":[],"returnType":"Promise<this[]>","isStatic":false,"isPublic":true},"getAncestors":{"name":"getAncestors","async":true,"parameters":[],"returnType":"Promise<this[]>","isStatic":false,"isPublic":true},"getDescendants":{"name":"getDescendants","async":true,"parameters":[],"returnType":"Promise<this[]>","isStatic":false,"isPublic":true},"getHierarchy":{"name":"getHierarchy","async":true,"parameters":[],"returnType":"Promise<HierarchyView<this>>","isStatic":false,"isPublic":true},"moveTo":{"name":"moveTo","async":true,"parameters":[{"name":"newParent","type":"this | string | null","optional":false,"unionBranches":[{"type":"this"},{"type":"string"},{"type":"null"}]}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"getBySlug":{"name":"getBySlug","async":true,"parameters":[{"name":"_slug","type":"string","optional":false}],"returnType":"Promise<Folder | null>","isStatic":true,"isPublic":true}},"decoratorConfig":{"api":{"include":["list","get","create","update","delete"]},"mcp":{"include":["list","get","create","update"]},"cli":{"skipApiCheck":true},"tenantScoped":{"mode":"optional"},"conflictColumns":["tenant_id","slug","context"]},"extends":"SmrtHierarchical","exportName":"Folder","collectionExportName":"FolderCollection","displayLabelField":"name","schema":{"tableName":"folders","ddl":"CREATE TABLE IF NOT EXISTS \\"folders\\" (\\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 \\"parent_id\\" UUID,\\n \\"tenant_id\\" UUID,\\n \\"name\\" TEXT,\\n \\"description\\" TEXT,\\n \\"owner_profile_id\\" UUID\\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"},"parent_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"unique":false,"foreignKey":{"table":"folders","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false,"unique":false},"name":{"type":"TEXT","notNull":false,"unique":false},"description":{"type":"TEXT","notNull":false,"unique":false},"owner_profile_id":{"type":"UUID","referenceKind":"crossPackageRef","notNull":false,"unique":false}},"indexes":[{"name":"folders_slug_context_idx","columns":["tenant_id","slug","context"],"unique":true,"nullsNotDistinct":true},{"name":"folders_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"folders_parent_id_idx","columns":["parent_id"]},{"name":"folders_owner_profile_id_idx","columns":["owner_profile_id"]}],"version":"1d0b1fcb"},"importPath":"@happyvertical/smrt-assets"},"@happyvertical/smrt-assets:FolderCollection":{"name":"foldercollection","className":"FolderCollection","qualifiedName":"@happyvertical/smrt-assets:FolderCollection","collection":"folders","filePath":"/home/runner/work/smrt/smrt/packages/assets/src/folders.ts","packageName":"@happyvertical/smrt-assets","fields":{},"methods":{"getTree":{"name":"getTree","async":true,"parameters":[{"name":"rootId","type":"string","optional":true}],"returnType":"Promise<Folder[]>","isStatic":false,"isPublic":true},"getPath":{"name":"getPath","async":true,"parameters":[{"name":"folderId","type":"string","optional":false}],"returnType":"Promise<Folder[]>","isStatic":false,"isPublic":true},"getContents":{"name":"getContents","async":true,"parameters":[{"name":"folderId","type":"string","optional":false},{"name":"assetCollection","type":"AssetCollection","optional":false}],"returnType":"Promise<Asset[]>","isStatic":false,"isPublic":true},"moveAsset":{"name":"moveAsset","async":true,"parameters":[{"name":"asset","type":"Asset","optional":false},{"name":"folderId","type":"string | null","optional":false,"unionBranches":[{"type":"string"},{"type":"null"}]}],"returnType":"Promise<void>","isStatic":false,"isPublic":true}},"decoratorConfig":{},"extends":"SmrtCollection","extendsTypeArg":"Folder","exportName":"FolderCollection","collectionExportName":"FolderCollectionCollection","schema":{"tableName":"folders","ddl":"CREATE TABLE IF NOT EXISTS \\"folders\\" (\\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 \\"parent_id\\" UUID,\\n \\"tenant_id\\" UUID,\\n \\"name\\" TEXT,\\n \\"description\\" TEXT,\\n \\"owner_profile_id\\" UUID\\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"},"parent_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"unique":false,"foreignKey":{"table":"folders","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false,"unique":false},"name":{"type":"TEXT","notNull":false,"unique":false},"description":{"type":"TEXT","notNull":false,"unique":false},"owner_profile_id":{"type":"UUID","referenceKind":"crossPackageRef","notNull":false,"unique":false}},"indexes":[{"name":"folders_slug_context_idx","columns":["tenant_id","slug","context"],"unique":true,"nullsNotDistinct":true},{"name":"folders_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"folders_parent_id_idx","columns":["parent_id"]},{"name":"folders_owner_profile_id_idx","columns":["owner_profile_id"]}],"version":"1d0b1fcb"},"importPath":"@happyvertical/smrt-assets"}},"moduleType":"smrt","recipes":[{"id":"assets.attachments","className":"AssetAttachmentsRecipe","label":"Attachments","summary":"Attach authorized files to records and retain their history.","synonyms":["file attachments","record files","supporting documents"],"models":["@happyvertical/smrt-assets:Asset","@happyvertical/smrt-assets:AssetAssociation"],"nav":[{"label":"Attachments","model":"@happyvertical/smrt-assets:Asset","icon":"fileText","description":"Supporting files connected to the record you are viewing.","key":"attachments","noun":"attachment"}],"requires":["assets.library"],"group":{"id":"assets","label":"Files and media","summary":"Organize files and media, then attach them to the records that need them."},"section":{"id":"assets","label":"Assets","icon":"folder","description":"Files, media and attachments for your work."},"options":{"@happyvertical/smrt-assets:Asset":{"fields":{"name":{"label":"File name","order":1},"description":{"label":"Description","order":2},"mimeType":{"label":"File type","order":3}}},"@happyvertical/smrt-assets:AssetAssociation":{"fields":{"assetId":{"label":"Attachment","order":1},"metaType":{"help":"The kind of record this file is connected to, such as an article or event."},"metaId":{"help":"The specific record that this file is connected to."},"role":{"label":"Role","order":2,"help":"How this file is used by the related record, such as a cover image or attachment."},"sortOrder":{"label":"Display order","order":3,"help":"The position of this attachment among files with the same role; lower numbers appear first."}}}},"help":{"markdown":"## Overview\\n\\nAttachments keep authorized supporting files connected to a record without making a public storage link. The application supplies the authorization and upload endpoint; this recipe records the asset and its relationship.\\n\\n## Tasks\\n\\n### Describe an attachment\\n\\n1. Use a clear {field:Asset.name} so people can identify the file.\\n2. Add a {field:Asset.description} when the attachment needs context.\\n3. Check the {field:Asset.mimeType} before offering the file to a viewer.\\n\\n### Link an attachment to a record\\n\\n1. Select the {field:AssetAssociation.assetId} to link.\\n2. Set a {field:AssetAssociation.role} when the record uses more than one file.\\n3. Adjust {field:AssetAssociation.sortOrder} to control display order.\\n","fieldRefs":["Asset.description","Asset.mimeType","Asset.name","AssetAssociation.assetId","AssetAssociation.role","AssetAssociation.sortOrder"]},"runtime":"both","demoSeed":{"export":"@happyvertical/smrt-assets/playground#assetAttachmentMockAttachments"},"demo":{"mode":"server","reasons":["Needs a server because its package depends on @happyvertical/smrt-tenancy, which do not build for a browser (#3624)."]}},{"id":"assets.library","className":"AssetLibraryRecipe","label":"Asset Library","summary":"Organize files and media with folders, types, and statuses.","synonyms":["media library","file library","digital assets"],"models":["@happyvertical/smrt-assets:Asset","@happyvertical/smrt-assets:Folder","@happyvertical/smrt-assets:AssetType","@happyvertical/smrt-assets:AssetStatus","@happyvertical/smrt-assets:AssetMetafield"],"nav":[{"label":"Assets","model":"@happyvertical/smrt-assets:Asset","icon":"archive","description":"Files and media you can organize, reuse and share.","noun":"asset"},{"label":"Folders","model":"@happyvertical/smrt-assets:Folder","icon":"folder","description":"Organize assets into clear, reusable groups.","noun":"folder"}],"requires":[],"group":{"id":"assets","label":"Files and media","summary":"Organize files and media, then attach them to the records that need them."},"section":{"id":"assets","label":"Assets","icon":"folder","description":"Files, media and attachments for your work."},"options":{"@happyvertical/smrt-assets:Asset":{"fields":{"name":{"label":"Name","order":1},"description":{"order":2},"folderId":{"label":"Folder","order":3},"typeSlug":{"label":"Type","order":4},"statusSlug":{"label":"Status","order":5},"mimeType":{"label":"File type","order":6}}},"@happyvertical/smrt-assets:Folder":{"fields":{"parentId":{"help":"The containing folder; leave empty to place this folder at the top level."},"name":{"label":"Name","order":1},"description":{"order":2}}}},"help":{"markdown":"## Overview\\n\\nThe Asset Library keeps files and media in one place. Organize assets into folders, classify them by type and status, and keep a clear description for people who need to find them later.\\n\\n## Tasks\\n\\n### Add an asset\\n\\n1. Give the asset a recognizable {field:Asset.name}.\\n2. Add a {field:Asset.description} that explains how the file can be used.\\n3. Select its {field:Asset.folderId}, {field:Asset.typeSlug}, and {field:Asset.statusSlug}.\\n4. Confirm the {field:Asset.mimeType} matches the file you intend to manage.\\n\\n### Organize folders\\n\\n1. Create a folder with a descriptive {field:Folder.name}.\\n2. Use the {field:Folder.description} to explain the folder's purpose.\\n","fieldRefs":["Asset.description","Asset.folderId","Asset.mimeType","Asset.name","Asset.statusSlug","Asset.typeSlug","Folder.description","Folder.name"]},"runtime":"both","demoSeed":{"export":"@happyvertical/smrt-assets/playground#assetGridMockAssets"},"demo":{"mode":"server","reasons":["Needs a server because its package depends on @happyvertical/smrt-tenancy, which do not build for a browser (#3624)."]}}],"smrtDependencies":["@happyvertical/smrt-core","@happyvertical/smrt-tags","@happyvertical/smrt-tenancy"],"browser":{"status":"server-only","issues":["#3624"],"via":["@happyvertical/smrt-tenancy"]},"stampsConstructors":true}`));
734
+ ObjectRegistry.registerPackageManifest(JSON.parse(`{"version":"1.0.0","timestamp":0,"packageName":"@happyvertical/smrt-assets","packageVersion":"0.55.17","objects":{"@happyvertical/smrt-assets:AssetAssociation":{"name":"assetassociation","className":"AssetAssociation","qualifiedName":"@happyvertical/smrt-assets:AssetAssociation","collection":"assetassociations","filePath":"/home/runner/work/smrt/smrt/packages/assets/src/asset-association.ts","packageName":"@happyvertical/smrt-assets","fields":{"metaType":{"type":"text","required":true,"_meta":{"required":true}},"metaId":{"type":"text","required":true,"_meta":{"required":true}},"role":{"type":"text","required":true,"_meta":{"required":true}},"sortOrder":{"type":"integer","required":false,"default":0},"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}}},"assetId":{"type":"foreignKey","required":true,"related":"Asset","description":"The file attached to the related record.","_meta":{"description":"The file attached to the related record.","required":true}}},"methods":{"hydrate":{"name":"hydrate","async":true,"parameters":[],"returnType":"Promise<T | null>","isStatic":false,"isPublic":true}},"decoratorConfig":{"conflictColumns":["asset_id","meta_type","meta_id","role"],"api":{"include":["list","get","create","delete"]},"mcp":{"include":["list","get","create"]},"cli":{"skipApiCheck":true},"tenantScoped":{"mode":"optional"}},"extends":"SmrtPolymorphicAssociation","exportName":"AssetAssociation","collectionExportName":"AssetAssociationCollection","validationRules":[{"field":"metaType","rule":"required","fieldType":"text"},{"field":"metaId","rule":"required","fieldType":"text"},{"field":"role","rule":"required","fieldType":"text"},{"field":"assetId","rule":"required","fieldType":"foreignKey"}],"schema":{"tableName":"asset_associations","ddl":"CREATE TABLE IF NOT EXISTS \\"asset_associations\\" (\\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 \\"meta_type\\" TEXT NOT NULL,\\n \\"meta_id\\" TEXT NOT NULL,\\n \\"role\\" TEXT NOT NULL,\\n \\"sort_order\\" INTEGER DEFAULT 0,\\n \\"tenant_id\\" UUID,\\n \\"asset_id\\" UUID 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"},"meta_type":{"type":"TEXT","notNull":true,"unique":false},"meta_id":{"type":"TEXT","notNull":true,"unique":false},"role":{"type":"TEXT","notNull":true,"unique":false},"sort_order":{"type":"INTEGER","notNull":false,"unique":false,"default":0},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false,"unique":false},"asset_id":{"type":"UUID","referenceKind":"foreignKey","notNull":true,"unique":false,"foreignKey":{"table":"assets","column":"id","onDelete":"CASCADE","onUpdate":"CASCADE"}}},"indexes":[{"name":"asset_associations_asset_id_meta_type_idx","columns":["asset_id","meta_type","meta_id","role"],"unique":true},{"name":"asset_associations_slug_context_idx","columns":["slug","context"]},{"name":"asset_associations_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"asset_associations_meta_type_meta_id_idx","columns":["meta_type","meta_id"]}],"version":"faa13cea"},"importPath":"@happyvertical/smrt-assets"},"@happyvertical/smrt-assets:AssetAssociationCollection":{"name":"assetassociationcollection","className":"AssetAssociationCollection","qualifiedName":"@happyvertical/smrt-assets:AssetAssociationCollection","collection":"assetassociations","filePath":"/home/runner/work/smrt/smrt/packages/assets/src/asset-associations.ts","packageName":"@happyvertical/smrt-assets","fields":{},"methods":{"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},"byLeft":{"name":"byLeft","async":true,"parameters":[{"name":"metaType","type":"string","optional":false},{"name":"metaId","type":"string","optional":false},{"name":"opts","type":"JunctionFilterOptions","optional":true}],"returnType":"Promise<AssetAssociation[]>","isStatic":false,"isPublic":true},"attach":{"name":"attach","async":true,"parameters":[{"name":"metaType","type":"string","optional":false},{"name":"metaId","type":"string","optional":false},{"name":"assetId","type":"string","optional":false},{"name":"opts","type":"JunctionAttachOptions","optional":true}],"returnType":"Promise<AssetAssociation>","isStatic":false,"isPublic":true},"detach":{"name":"detach","async":true,"parameters":[{"name":"metaType","type":"string","optional":false},{"name":"metaId","type":"string","optional":false},{"name":"assetId","type":"string","optional":false},{"name":"opts","type":"JunctionFilterOptions","optional":true}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"setLinks":{"name":"setLinks","async":true,"parameters":[{"name":"metaType","type":"string","optional":false},{"name":"metaId","type":"string","optional":false},{"name":"assetIds","type":"string[]","optional":false},{"name":"opts","type":"JunctionAttachOptions","optional":true}],"returnType":"Promise<void>","isStatic":false,"isPublic":true}},"decoratorConfig":{},"extends":"SmrtJunctionBase","extendsTypeArg":"AssetAssociation","exportName":"AssetAssociationCollection","collectionExportName":"AssetAssociationCollectionCollection","schema":{"tableName":"asset_associations","ddl":"CREATE TABLE IF NOT EXISTS \\"asset_associations\\" (\\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 \\"meta_type\\" TEXT NOT NULL,\\n \\"meta_id\\" TEXT NOT NULL,\\n \\"role\\" TEXT NOT NULL,\\n \\"sort_order\\" INTEGER DEFAULT 0,\\n \\"tenant_id\\" UUID,\\n \\"asset_id\\" UUID 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"},"meta_type":{"type":"TEXT","notNull":true,"unique":false},"meta_id":{"type":"TEXT","notNull":true,"unique":false},"role":{"type":"TEXT","notNull":true,"unique":false},"sort_order":{"type":"INTEGER","notNull":false,"unique":false,"default":0},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false,"unique":false},"asset_id":{"type":"UUID","referenceKind":"foreignKey","notNull":true,"unique":false,"foreignKey":{"table":"assets","column":"id","onDelete":"CASCADE","onUpdate":"CASCADE"}}},"indexes":[{"name":"asset_associations_asset_id_meta_type_idx","columns":["asset_id","meta_type","meta_id","role"],"unique":true},{"name":"asset_associations_slug_context_idx","columns":["slug","context"]},{"name":"asset_associations_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"asset_associations_meta_type_meta_id_idx","columns":["meta_type","meta_id"]}],"version":"faa13cea"},"importPath":"@happyvertical/smrt-assets"},"@happyvertical/smrt-assets:AssetMetafield":{"name":"assetmetafield","className":"AssetMetafield","qualifiedName":"@happyvertical/smrt-assets:AssetMetafield","collection":"assetmetafields","filePath":"/home/runner/work/smrt/smrt/packages/assets/src/asset-metafield.ts","packageName":"@happyvertical/smrt-assets","fields":{"created_at":{"type":"datetime","required":false},"updated_at":{"type":"datetime","required":false},"name":{"type":"text","required":false,"description":"The name of an additional asset detail, such as Width or Height.","_meta":{"description":"The name of an additional asset detail, such as Width or Height."}},"validation":{"type":"text","required":false,"description":"Rules that determine which values this asset detail accepts.","_meta":{"description":"Rules that determine which values this asset detail accepts."}}},"methods":{"getValidation":{"name":"getValidation","async":false,"parameters":[],"returnType":"Record<string, unknown>","isStatic":false,"isPublic":true},"setValidation":{"name":"setValidation","async":false,"parameters":[{"name":"rules","type":"Record<string, unknown>","optional":false}],"returnType":"void","isStatic":false,"isPublic":true},"getBySlug":{"name":"getBySlug","async":true,"parameters":[{"name":"_slug","type":"string","optional":false}],"returnType":"Promise<AssetMetafield | null>","isStatic":true,"isPublic":true}},"decoratorConfig":{"tableStrategy":"sti","api":{"include":["list","get","create","update","delete"]},"mcp":{"include":["list","get","create"]},"cli":{"skipApiCheck":true}},"extends":"SmrtObject","exportName":"AssetMetafield","collectionExportName":"AssetMetafieldCollection","displayLabelField":"name","schema":{"tableName":"asset_metafields","ddl":"CREATE TABLE IF NOT EXISTS \\"asset_metafields\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"_meta_type\\" TEXT NOT NULL,\\n \\"_meta_data\\" JSON,\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"name\\" TEXT,\\n \\"validation\\" TEXT\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"_meta_type":{"type":"TEXT","notNull":true},"_meta_data":{"type":"JSON","notNull":false},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"name":{"type":"TEXT","notNull":false},"validation":{"type":"TEXT","notNull":false}},"indexes":[{"name":"asset_metafields_slug_context_meta_type_idx","columns":["slug","context","_meta_type"],"unique":true},{"name":"asset_metafields_meta_type_idx","columns":["_meta_type"]},{"name":"asset_metafields_created_at_idx","columns":["created_at"]}],"version":"7393718c"},"importPath":"@happyvertical/smrt-assets"},"@happyvertical/smrt-assets:AssetMetafieldCollection":{"name":"assetmetafieldcollection","className":"AssetMetafieldCollection","qualifiedName":"@happyvertical/smrt-assets:AssetMetafieldCollection","collection":"assetmetafields","filePath":"/home/runner/work/smrt/smrt/packages/assets/src/asset-metafields.ts","packageName":"@happyvertical/smrt-assets","fields":{},"methods":{"getOrCreate":{"name":"getOrCreate","async":true,"parameters":[{"name":"slug","type":"string","optional":false},{"name":"name","type":"string","optional":true},{"name":"validation","type":"string | Record<string, unknown>","optional":true,"unionBranches":[{"type":"string"},{"type":"Record<string, unknown>"}]}],"returnType":"Promise<AssetMetafield>","isStatic":false,"isPublic":true},"initializeCommonMetafields":{"name":"initializeCommonMetafields","async":true,"parameters":[],"returnType":"Promise<void>","isStatic":false,"isPublic":true}},"decoratorConfig":{},"extends":"SmrtCollection","extendsTypeArg":"AssetMetafield","exportName":"AssetMetafieldCollection","collectionExportName":"AssetMetafieldCollectionCollection","schema":{"tableName":"asset_metafields","ddl":"CREATE TABLE IF NOT EXISTS \\"asset_metafields\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"_meta_type\\" TEXT NOT NULL,\\n \\"_meta_data\\" JSON,\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"name\\" TEXT,\\n \\"validation\\" TEXT\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"_meta_type":{"type":"TEXT","notNull":true},"_meta_data":{"type":"JSON","notNull":false},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"name":{"type":"TEXT","notNull":false},"validation":{"type":"TEXT","notNull":false}},"indexes":[{"name":"asset_metafields_slug_context_meta_type_idx","columns":["slug","context","_meta_type"],"unique":true},{"name":"asset_metafields_meta_type_idx","columns":["_meta_type"]},{"name":"asset_metafields_created_at_idx","columns":["created_at"]}],"version":"7393718c"},"importPath":"@happyvertical/smrt-assets"},"@happyvertical/smrt-assets:AssetStatus":{"name":"assetstatus","className":"AssetStatus","qualifiedName":"@happyvertical/smrt-assets:AssetStatus","collection":"assetstatuses","filePath":"/home/runner/work/smrt/smrt/packages/assets/src/asset-status.ts","packageName":"@happyvertical/smrt-assets","fields":{"created_at":{"type":"datetime","required":false},"updated_at":{"type":"datetime","required":false},"name":{"type":"text","required":false,"description":"The name of this lifecycle stage, such as Draft or Published.","_meta":{"description":"The name of this lifecycle stage, such as Draft or Published."}},"description":{"type":"text","required":false,"description":"Explain when an asset should use this lifecycle stage.","_meta":{"description":"Explain when an asset should use this lifecycle stage."}}},"methods":{"getBySlug":{"name":"getBySlug","async":true,"parameters":[{"name":"_slug","type":"string","optional":false}],"returnType":"Promise<AssetStatus | null>","isStatic":true,"isPublic":true}},"decoratorConfig":{"tableStrategy":"sti","api":{"include":["list","get","create","update","delete"]},"mcp":{"include":["list","get","create"]},"cli":{"skipApiCheck":true}},"extends":"SmrtObject","exportName":"AssetStatus","collectionExportName":"AssetStatusCollection","displayLabelField":"name","schema":{"tableName":"asset_statuses","ddl":"CREATE TABLE IF NOT EXISTS \\"asset_statuses\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"_meta_type\\" TEXT NOT NULL,\\n \\"_meta_data\\" JSON,\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"name\\" TEXT,\\n \\"description\\" TEXT\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"_meta_type":{"type":"TEXT","notNull":true},"_meta_data":{"type":"JSON","notNull":false},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"name":{"type":"TEXT","notNull":false},"description":{"type":"TEXT","notNull":false}},"indexes":[{"name":"asset_statuses_slug_context_meta_type_idx","columns":["slug","context","_meta_type"],"unique":true},{"name":"asset_statuses_meta_type_idx","columns":["_meta_type"]},{"name":"asset_statuses_created_at_idx","columns":["created_at"]}],"version":"8251a52f"},"importPath":"@happyvertical/smrt-assets"},"@happyvertical/smrt-assets:AssetStatusCollection":{"name":"assetstatuscollection","className":"AssetStatusCollection","qualifiedName":"@happyvertical/smrt-assets:AssetStatusCollection","collection":"assetstatuses","filePath":"/home/runner/work/smrt/smrt/packages/assets/src/asset-statuses.ts","packageName":"@happyvertical/smrt-assets","fields":{},"methods":{"getOrCreate":{"name":"getOrCreate","async":true,"parameters":[{"name":"slug","type":"string","optional":false},{"name":"name","type":"string","optional":true},{"name":"description","type":"string","optional":true}],"returnType":"Promise<AssetStatus>","isStatic":false,"isPublic":true},"initializeCommonStatuses":{"name":"initializeCommonStatuses","async":true,"parameters":[],"returnType":"Promise<void>","isStatic":false,"isPublic":true}},"decoratorConfig":{},"extends":"SmrtCollection","extendsTypeArg":"AssetStatus","exportName":"AssetStatusCollection","collectionExportName":"AssetStatusCollectionCollection","schema":{"tableName":"asset_statuses","ddl":"CREATE TABLE IF NOT EXISTS \\"asset_statuses\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"_meta_type\\" TEXT NOT NULL,\\n \\"_meta_data\\" JSON,\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"name\\" TEXT,\\n \\"description\\" TEXT\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"_meta_type":{"type":"TEXT","notNull":true},"_meta_data":{"type":"JSON","notNull":false},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"name":{"type":"TEXT","notNull":false},"description":{"type":"TEXT","notNull":false}},"indexes":[{"name":"asset_statuses_slug_context_meta_type_idx","columns":["slug","context","_meta_type"],"unique":true},{"name":"asset_statuses_meta_type_idx","columns":["_meta_type"]},{"name":"asset_statuses_created_at_idx","columns":["created_at"]}],"version":"8251a52f"},"importPath":"@happyvertical/smrt-assets"},"@happyvertical/smrt-assets:AssetTag":{"name":"assettag","className":"AssetTag","qualifiedName":"@happyvertical/smrt-assets:AssetTag","collection":"assettags","filePath":"/home/runner/work/smrt/smrt/packages/assets/src/asset-tag.ts","packageName":"@happyvertical/smrt-assets","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}}},"assetId":{"type":"foreignKey","required":true,"related":"Asset","_meta":{"required":true,"onDelete":"CASCADE"}},"tagId":{"type":"crossPackageRef","required":true,"related":"@happyvertical/smrt-tags:Tag","_meta":{"onDelete":"CASCADE"}}},"methods":{},"decoratorConfig":{"tableName":"asset_tags","conflictColumns":["asset_id","tag_id"],"api":false,"mcp":false,"cli":false,"tenantScoped":{"mode":"optional"}},"extends":"SmrtObject","exportName":"AssetTag","collectionExportName":"AssetTagCollection","validationRules":[{"field":"assetId","rule":"required","fieldType":"foreignKey"},{"field":"tagId","rule":"required","fieldType":"crossPackageRef"}],"schema":{"tableName":"asset_tags","ddl":"CREATE TABLE IF NOT EXISTS \\"asset_tags\\" (\\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 \\"asset_id\\" UUID NOT NULL,\\n \\"tag_id\\" UUID 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},"asset_id":{"type":"UUID","referenceKind":"foreignKey","notNull":true,"unique":false,"foreignKey":{"table":"assets","column":"id","onDelete":"CASCADE","onUpdate":"CASCADE"}},"tag_id":{"type":"UUID","referenceKind":"crossPackageRef","notNull":true,"unique":false}},"indexes":[{"name":"asset_tags_asset_id_tag_id_idx","columns":["asset_id","tag_id"],"unique":true},{"name":"asset_tags_slug_context_idx","columns":["slug","context"]},{"name":"asset_tags_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"asset_tags_tag_id_idx","columns":["tag_id"]}],"version":"e60d24f5"},"importPath":"@happyvertical/smrt-assets"},"@happyvertical/smrt-assets:AssetTagCollection":{"name":"assettagcollection","className":"AssetTagCollection","qualifiedName":"@happyvertical/smrt-assets:AssetTagCollection","collection":"assettags","filePath":"/home/runner/work/smrt/smrt/packages/assets/src/asset-tags.ts","packageName":"@happyvertical/smrt-assets","fields":{},"methods":{"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},"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},"attach":{"name":"attach","async":true,"parameters":[{"name":"leftId","type":"string","optional":false},{"name":"rightId","type":"string","optional":false},{"name":"opts","type":"JunctionAttachOptions","optional":true}],"returnType":"Promise<TItem>","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":"leftId","type":"string","optional":false},{"name":"rightIds","type":"string[]","optional":false},{"name":"opts","type":"JunctionAttachOptions","optional":true}],"returnType":"Promise<void>","isStatic":false,"isPublic":true}},"decoratorConfig":{"tableName":"asset_tags","api":false,"mcp":false,"cli":false},"extends":"SmrtJunction","extendsTypeArg":"AssetTag","exportName":"AssetTagCollection","collectionExportName":"AssetTagCollectionCollection","schema":{"tableName":"asset_tags","ddl":"CREATE TABLE IF NOT EXISTS \\"asset_tags\\" (\\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 \\"asset_id\\" UUID NOT NULL,\\n \\"tag_id\\" UUID 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},"asset_id":{"type":"UUID","referenceKind":"foreignKey","notNull":true,"unique":false,"foreignKey":{"table":"assets","column":"id","onDelete":"CASCADE","onUpdate":"CASCADE"}},"tag_id":{"type":"UUID","referenceKind":"crossPackageRef","notNull":true,"unique":false}},"indexes":[{"name":"asset_tags_asset_id_tag_id_idx","columns":["asset_id","tag_id"],"unique":true},{"name":"asset_tags_slug_context_idx","columns":["slug","context"]},{"name":"asset_tags_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"asset_tags_tag_id_idx","columns":["tag_id"]}],"version":"e60d24f5"},"importPath":"@happyvertical/smrt-assets"},"@happyvertical/smrt-assets:AssetType":{"name":"assettype","className":"AssetType","qualifiedName":"@happyvertical/smrt-assets:AssetType","collection":"assettypes","filePath":"/home/runner/work/smrt/smrt/packages/assets/src/asset-type.ts","packageName":"@happyvertical/smrt-assets","fields":{"created_at":{"type":"datetime","required":false},"updated_at":{"type":"datetime","required":false},"name":{"type":"text","required":false,"description":"The name of this file category, such as Image or Document.","_meta":{"description":"The name of this file category, such as Image or Document."}},"description":{"type":"text","required":false,"description":"Explain which kinds of files belong in this category.","_meta":{"description":"Explain which kinds of files belong in this category."}}},"methods":{"getBySlug":{"name":"getBySlug","async":true,"parameters":[{"name":"_slug","type":"string","optional":false}],"returnType":"Promise<AssetType | null>","isStatic":true,"isPublic":true}},"decoratorConfig":{"tableStrategy":"sti","api":{"include":["list","get","create","update","delete"]},"mcp":{"include":["list","get","create"]},"cli":{"skipApiCheck":true}},"extends":"SmrtObject","exportName":"AssetType","collectionExportName":"AssetTypeCollection","displayLabelField":"name","schema":{"tableName":"asset_types","ddl":"CREATE TABLE IF NOT EXISTS \\"asset_types\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"_meta_type\\" TEXT NOT NULL,\\n \\"_meta_data\\" JSON,\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"name\\" TEXT,\\n \\"description\\" TEXT\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"_meta_type":{"type":"TEXT","notNull":true},"_meta_data":{"type":"JSON","notNull":false},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"name":{"type":"TEXT","notNull":false},"description":{"type":"TEXT","notNull":false}},"indexes":[{"name":"asset_types_slug_context_meta_type_idx","columns":["slug","context","_meta_type"],"unique":true},{"name":"asset_types_meta_type_idx","columns":["_meta_type"]},{"name":"asset_types_created_at_idx","columns":["created_at"]}],"version":"a9c93be2"},"importPath":"@happyvertical/smrt-assets"},"@happyvertical/smrt-assets:AssetTypeCollection":{"name":"assettypecollection","className":"AssetTypeCollection","qualifiedName":"@happyvertical/smrt-assets:AssetTypeCollection","collection":"assettypes","filePath":"/home/runner/work/smrt/smrt/packages/assets/src/asset-types.ts","packageName":"@happyvertical/smrt-assets","fields":{},"methods":{"getOrCreate":{"name":"getOrCreate","async":true,"parameters":[{"name":"slug","type":"string","optional":false},{"name":"name","type":"string","optional":true},{"name":"description","type":"string","optional":true}],"returnType":"Promise<AssetType>","isStatic":false,"isPublic":true},"initializeCommonTypes":{"name":"initializeCommonTypes","async":true,"parameters":[],"returnType":"Promise<void>","isStatic":false,"isPublic":true}},"decoratorConfig":{},"extends":"SmrtCollection","extendsTypeArg":"AssetType","exportName":"AssetTypeCollection","collectionExportName":"AssetTypeCollectionCollection","schema":{"tableName":"asset_types","ddl":"CREATE TABLE IF NOT EXISTS \\"asset_types\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"_meta_type\\" TEXT NOT NULL,\\n \\"_meta_data\\" JSON,\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"name\\" TEXT,\\n \\"description\\" TEXT\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"_meta_type":{"type":"TEXT","notNull":true},"_meta_data":{"type":"JSON","notNull":false},"created_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"updated_at":{"type":"TIMESTAMP","notNull":true,"default":"current_timestamp"},"name":{"type":"TEXT","notNull":false},"description":{"type":"TEXT","notNull":false}},"indexes":[{"name":"asset_types_slug_context_meta_type_idx","columns":["slug","context","_meta_type"],"unique":true},{"name":"asset_types_meta_type_idx","columns":["_meta_type"]},{"name":"asset_types_created_at_idx","columns":["created_at"]}],"version":"a9c93be2"},"importPath":"@happyvertical/smrt-assets"},"@happyvertical/smrt-assets:Asset":{"name":"asset","className":"Asset","qualifiedName":"@happyvertical/smrt-assets:Asset","collection":"assets","filePath":"/home/runner/work/smrt/smrt/packages/assets/src/asset.ts","packageName":"@happyvertical/smrt-assets","fields":{"created_at":{"type":"datetime","required":false},"updated_at":{"type":"datetime","required":false},"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}}},"name":{"type":"text","required":false,"description":"A recognizable name for this file or media item.","_meta":{"description":"A recognizable name for this file or media item."}},"sourceUri":{"type":"text","required":false,"description":"Where the original file is stored or can be retrieved.","_meta":{"description":"Where the original file is stored or can be retrieved."}},"mimeType":{"type":"text","required":false,"description":"The file format, such as image/jpeg or application/pdf.","_meta":{"description":"The file format, such as image/jpeg or application/pdf."}},"description":{"type":"text","required":false,"description":"Explain what the file contains and when it should be used.","_meta":{"description":"Explain what the file contains and when it should be used."}},"metadata":{"type":"text","required":false,"description":"Additional details recorded while processing this file.","_meta":{"description":"Additional details recorded while processing this file."}},"version":{"type":"integer","required":true,"default":1,"description":"The revision number of this file in its version history.","_meta":{"description":"The revision number of this file in its version history."}},"primaryVersionId":{"type":"foreignKey","required":false,"related":"Asset","description":"The first version of this file, linking its revision history.","_meta":{"description":"The first version of this file, linking its revision history."}},"typeSlug":{"type":"text","required":false,"description":"The category of asset, such as an image, video, or document.","_meta":{"description":"The category of asset, such as an image, video, or document."}},"statusSlug":{"type":"text","required":false,"description":"The stage of this asset, such as draft, published, or archived.","_meta":{"description":"The stage of this asset, such as draft, published, or archived."}},"ownerProfileId":{"type":"crossPackageRef","required":false,"related":"@happyvertical/smrt-profiles:Profile","description":"The person or organization responsible for this asset.","_meta":{"description":"The person or organization responsible for this asset."}},"sourceAssetId":{"type":"foreignKey","required":false,"related":"Asset","description":"The original asset used to produce this file or variation.","_meta":{"description":"The original asset used to produce this file or variation."}},"folderId":{"type":"foreignKey","required":false,"related":"Folder","description":"The folder that organizes this file in the asset library.","_meta":{"description":"The folder that organizes this file in the asset library."}},"sourceType":{"type":"text","required":false,"description":"The service or source from which this file was obtained.","_meta":{"description":"The service or source from which this file was obtained."}},"externalId":{"type":"text","required":false,"description":"The reference used to identify this file at its original source.","_meta":{"description":"The reference used to identify this file at its original source."}},"externalRefs":{"type":"text","required":false,"description":"References that connect this file to copies held by other services.","_meta":{"description":"References that connect this file to copies held by other services."}},"createdAt":{"type":"text","required":false},"updatedAt":{"type":"text","required":false}},"methods":{"getSlug":{"name":"getSlug","async":true,"parameters":[],"returnType":"Promise<string | null | undefined>","isStatic":false,"isPublic":true},"getMetadata":{"name":"getMetadata","async":false,"parameters":[],"returnType":"Record<string, unknown>","isStatic":false,"isPublic":true},"setMetadata":{"name":"setMetadata","async":false,"parameters":[{"name":"metadata","type":"Record<string, unknown>","optional":false}],"returnType":"void","isStatic":false,"isPublic":true},"mergeMetadata":{"name":"mergeMetadata","async":false,"parameters":[{"name":"metadata","type":"Record<string, unknown>","optional":false}],"returnType":"void","isStatic":false,"isPublic":true},"getExternalRefs":{"name":"getExternalRefs","async":false,"parameters":[],"returnType":"Record<string, AssetExternalReference>","isStatic":false,"isPublic":true},"getExternalRef":{"name":"getExternalRef","async":false,"parameters":[{"name":"provider","type":"string","optional":false}],"returnType":"AssetExternalReference | null","isStatic":false,"isPublic":true},"setExternalRef":{"name":"setExternalRef","async":false,"parameters":[{"name":"provider","type":"string","optional":false},{"name":"reference","type":"any","optional":false,"typeUnresolved":true}],"returnType":"void","isStatic":false,"isPublic":true},"getTags":{"name":"getTags","async":true,"parameters":[],"returnType":"Promise<Tag[]>","isStatic":false,"isPublic":true},"hasTag":{"name":"hasTag","async":true,"parameters":[{"name":"tagSlug","type":"string","optional":false},{"name":"context","type":"string","optional":true}],"returnType":"Promise<boolean>","isStatic":false,"isPublic":true},"getSource":{"name":"getSource","async":true,"parameters":[],"returnType":"Promise<Asset | null>","isStatic":false,"isPublic":true},"getDerivatives":{"name":"getDerivatives","async":true,"parameters":[],"returnType":"Promise<Asset[]>","isStatic":false,"isPublic":true},"getType":{"name":"getType","async":true,"parameters":[],"returnType":"Promise<AssetType | null>","isStatic":false,"isPublic":true},"getStatus":{"name":"getStatus","async":true,"parameters":[],"returnType":"Promise<AssetStatus | null>","isStatic":false,"isPublic":true},"getAssociations":{"name":"getAssociations","async":true,"parameters":[],"returnType":"Promise<AssetAssociation[]>","isStatic":false,"isPublic":true},"associateWith":{"name":"associateWith","async":true,"parameters":[{"name":"metaType","type":"string","optional":false},{"name":"metaId","type":"string","optional":false},{"name":"role","type":"any","optional":true,"default":"default"}],"returnType":"Promise<AssetAssociation>","isStatic":false,"isPublic":true},"getBySlug":{"name":"getBySlug","async":true,"parameters":[{"name":"_slug","type":"string","optional":false}],"returnType":"Promise<Asset | null>","isStatic":true,"isPublic":true}},"decoratorConfig":{"tableStrategy":"sti","api":{"include":["list","get","create","update","delete"]},"mcp":{"include":["list","get","create","update"]},"cli":{"skipApiCheck":true},"tenantScoped":{"mode":"optional"},"conflictColumns":["tenant_id","slug","context","_meta_type"]},"extends":"SmrtObject","exportName":"Asset","collectionExportName":"AssetCollection","displayLabelField":"name","validationRules":[{"field":"version","rule":"required","fieldType":"integer"}],"schema":{"tableName":"assets","ddl":"CREATE TABLE IF NOT EXISTS \\"assets\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"_meta_type\\" TEXT NOT NULL,\\n \\"_meta_data\\" JSON,\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"tenant_id\\" UUID,\\n \\"name\\" TEXT,\\n \\"source_uri\\" TEXT,\\n \\"mime_type\\" TEXT,\\n \\"description\\" TEXT,\\n \\"metadata\\" TEXT,\\n \\"version\\" INTEGER DEFAULT 1,\\n \\"primary_version_id\\" UUID,\\n \\"type_slug\\" TEXT,\\n \\"status_slug\\" TEXT,\\n \\"owner_profile_id\\" UUID,\\n \\"source_asset_id\\" UUID,\\n \\"folder_id\\" UUID,\\n \\"source_type\\" TEXT,\\n \\"external_id\\" TEXT,\\n \\"external_refs\\" TEXT\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"_meta_type":{"type":"TEXT","notNull":true},"_meta_data":{"type":"JSON","notNull":false},"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},"name":{"type":"TEXT","notNull":false},"source_uri":{"type":"TEXT","notNull":false},"mime_type":{"type":"TEXT","notNull":false},"description":{"type":"TEXT","notNull":false},"metadata":{"type":"TEXT","notNull":false},"version":{"type":"INTEGER","notNull":false,"default":1},"primary_version_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"assets","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"type_slug":{"type":"TEXT","notNull":false},"status_slug":{"type":"TEXT","notNull":false},"owner_profile_id":{"type":"UUID","referenceKind":"crossPackageRef","notNull":false},"source_asset_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"assets","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"folder_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"folders","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"source_type":{"type":"TEXT","notNull":false},"external_id":{"type":"TEXT","notNull":false},"external_refs":{"type":"TEXT","notNull":false}},"indexes":[{"name":"assets_slug_context_meta_type_idx","columns":["tenant_id","slug","context","_meta_type"],"unique":true,"nullsNotDistinct":true},{"name":"assets_meta_type_idx","columns":["_meta_type"]},{"name":"assets_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"assets_primary_version_id_idx","columns":["primary_version_id"]},{"name":"assets_owner_profile_id_idx","columns":["owner_profile_id"]},{"name":"assets_source_asset_id_idx","columns":["source_asset_id"]},{"name":"assets_folder_id_idx","columns":["folder_id"]}],"version":"16d6c152"},"importPath":"@happyvertical/smrt-assets"},"@happyvertical/smrt-assets:AssetCollection":{"name":"assetcollection","className":"AssetCollection","qualifiedName":"@happyvertical/smrt-assets:AssetCollection","collection":"assets","filePath":"/home/runner/work/smrt/smrt/packages/assets/src/assets.ts","packageName":"@happyvertical/smrt-assets","fields":{},"methods":{"findByTenant":{"name":"findByTenant","async":true,"parameters":[{"name":"tenantId","type":"string","optional":false}],"returnType":"Promise<Asset[]>","isStatic":false,"isPublic":true},"findGlobal":{"name":"findGlobal","async":true,"parameters":[],"returnType":"Promise<Asset[]>","isStatic":false,"isPublic":true},"findWithGlobals":{"name":"findWithGlobals","async":true,"parameters":[{"name":"tenantId","type":"string","optional":false}],"returnType":"Promise<Asset[]>","isStatic":false,"isPublic":true},"addTag":{"name":"addTag","async":true,"parameters":[{"name":"assetId","type":"string","optional":false},{"name":"tag","type":"string","optional":false},{"name":"options","type":"AssetTagInput","optional":true}],"returnType":"Promise<Tag>","isStatic":false,"isPublic":true},"removeTag":{"name":"removeTag","async":true,"parameters":[{"name":"assetId","type":"string","optional":false},{"name":"tag","type":"string","optional":false},{"name":"options","type":"Pick<AssetTagInput, 'context'>","optional":true}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"setTags":{"name":"setTags","async":true,"parameters":[{"name":"assetId","type":"string","optional":false},{"name":"tags","type":"string[]","optional":false},{"name":"options","type":"Pick<AssetTagInput, 'context'>","optional":true}],"returnType":"Promise<Tag[]>","isStatic":false,"isPublic":true},"getTagsForAssets":{"name":"getTagsForAssets","async":true,"parameters":[{"name":"assetIds","type":"string[]","optional":false}],"returnType":"Promise<Map<string, Tag[]>>","isStatic":false,"isPublic":true},"getByTag":{"name":"getByTag","async":true,"parameters":[{"name":"tag","type":"string","optional":false},{"name":"options","type":"Pick<AssetTagInput, 'context'>","optional":true}],"returnType":"Promise<Asset[]>","isStatic":false,"isPublic":true},"getByType":{"name":"getByType","async":true,"parameters":[{"name":"typeSlug","type":"string","optional":false}],"returnType":"Promise<Asset[]>","isStatic":false,"isPublic":true},"getByStatus":{"name":"getByStatus","async":true,"parameters":[{"name":"statusSlug","type":"string","optional":false}],"returnType":"Promise<Asset[]>","isStatic":false,"isPublic":true},"getByOwner":{"name":"getByOwner","async":true,"parameters":[{"name":"ownerProfileId","type":"string","optional":false}],"returnType":"Promise<Asset[]>","isStatic":false,"isPublic":true},"createNewVersion":{"name":"createNewVersion","async":true,"parameters":[{"name":"primaryVersionId","type":"string","optional":false},{"name":"newSourceUri","type":"string","optional":false},{"name":"updates","type":"Partial<Asset>","optional":true}],"returnType":"Promise<Asset>","isStatic":false,"isPublic":true},"getLatestVersion":{"name":"getLatestVersion","async":true,"parameters":[{"name":"primaryVersionId","type":"string","optional":false}],"returnType":"Promise<Asset | null>","isStatic":false,"isPublic":true},"listVersions":{"name":"listVersions","async":true,"parameters":[{"name":"primaryVersionId","type":"string","optional":false}],"returnType":"Promise<Asset[]>","isStatic":false,"isPublic":true},"getDerivatives":{"name":"getDerivatives","async":true,"parameters":[{"name":"sourceAssetId","type":"string","optional":false}],"returnType":"Promise<Asset[]>","isStatic":false,"isPublic":true},"getByMimeType":{"name":"getByMimeType","async":true,"parameters":[{"name":"mimePattern","type":"string","optional":false}],"returnType":"Promise<Asset[]>","isStatic":false,"isPublic":true},"rollbackToVersion":{"name":"rollbackToVersion","async":true,"parameters":[{"name":"primaryVersionId","type":"string","optional":false},{"name":"targetVersion","type":"number","optional":false}],"returnType":"Promise<Asset>","isStatic":false,"isPublic":true},"getByFolder":{"name":"getByFolder","async":true,"parameters":[{"name":"folderId","type":"string","optional":false}],"returnType":"Promise<Asset[]>","isStatic":false,"isPublic":true}},"decoratorConfig":{},"extends":"SmrtCollection","extendsTypeArg":"Asset","exportName":"AssetCollection","collectionExportName":"AssetCollectionCollection","schema":{"tableName":"assets","ddl":"CREATE TABLE IF NOT EXISTS \\"assets\\" (\\n \\"id\\" UUID PRIMARY KEY NOT NULL,\\n \\"slug\\" TEXT NOT NULL,\\n \\"context\\" TEXT NOT NULL DEFAULT '',\\n \\"_meta_type\\" TEXT NOT NULL,\\n \\"_meta_data\\" JSON,\\n \\"created_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"updated_at\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\"tenant_id\\" UUID,\\n \\"name\\" TEXT,\\n \\"source_uri\\" TEXT,\\n \\"mime_type\\" TEXT,\\n \\"description\\" TEXT,\\n \\"metadata\\" TEXT,\\n \\"version\\" INTEGER DEFAULT 1,\\n \\"primary_version_id\\" UUID,\\n \\"type_slug\\" TEXT,\\n \\"status_slug\\" TEXT,\\n \\"owner_profile_id\\" UUID,\\n \\"source_asset_id\\" UUID,\\n \\"folder_id\\" UUID,\\n \\"source_type\\" TEXT,\\n \\"external_id\\" TEXT,\\n \\"external_refs\\" TEXT\\n);","columns":{"id":{"type":"UUID","primaryKey":true,"referenceKind":"id","notNull":true},"slug":{"type":"TEXT","notNull":true},"context":{"type":"TEXT","notNull":true,"default":""},"_meta_type":{"type":"TEXT","notNull":true},"_meta_data":{"type":"JSON","notNull":false},"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},"name":{"type":"TEXT","notNull":false},"source_uri":{"type":"TEXT","notNull":false},"mime_type":{"type":"TEXT","notNull":false},"description":{"type":"TEXT","notNull":false},"metadata":{"type":"TEXT","notNull":false},"version":{"type":"INTEGER","notNull":false,"default":1},"primary_version_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"assets","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"type_slug":{"type":"TEXT","notNull":false},"status_slug":{"type":"TEXT","notNull":false},"owner_profile_id":{"type":"UUID","referenceKind":"crossPackageRef","notNull":false},"source_asset_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"assets","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"folder_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"folders","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"source_type":{"type":"TEXT","notNull":false},"external_id":{"type":"TEXT","notNull":false},"external_refs":{"type":"TEXT","notNull":false}},"indexes":[{"name":"assets_slug_context_meta_type_idx","columns":["tenant_id","slug","context","_meta_type"],"unique":true,"nullsNotDistinct":true},{"name":"assets_meta_type_idx","columns":["_meta_type"]},{"name":"assets_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"assets_primary_version_id_idx","columns":["primary_version_id"]},{"name":"assets_owner_profile_id_idx","columns":["owner_profile_id"]},{"name":"assets_source_asset_id_idx","columns":["source_asset_id"]},{"name":"assets_folder_id_idx","columns":["folder_id"]}],"version":"16d6c152"},"importPath":"@happyvertical/smrt-assets"},"@happyvertical/smrt-assets:Folder":{"name":"folder","className":"Folder","qualifiedName":"@happyvertical/smrt-assets:Folder","collection":"folders","filePath":"/home/runner/work/smrt/smrt/packages/assets/src/folder.ts","packageName":"@happyvertical/smrt-assets","fields":{"parentId":{"type":"foreignKey","required":false,"related":"Folder","_meta":{"nullable":true}},"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}}},"name":{"type":"text","required":false,"description":"A recognizable name for this group of files.","_meta":{"description":"A recognizable name for this group of files."}},"description":{"type":"text","required":false,"description":"Explain the purpose of this folder and which files belong here.","_meta":{"description":"Explain the purpose of this folder and which files belong here."}},"ownerProfileId":{"type":"crossPackageRef","required":false,"related":"@happyvertical/smrt-profiles:Profile","description":"The person or organization responsible for this folder.","_meta":{"description":"The person or organization responsible for this folder."}},"createdAt":{"type":"text","required":false},"updatedAt":{"type":"text","required":false}},"methods":{"getParent":{"name":"getParent","async":true,"parameters":[],"returnType":"Promise<this | null>","isStatic":false,"isPublic":true},"getChildren":{"name":"getChildren","async":true,"parameters":[],"returnType":"Promise<this[]>","isStatic":false,"isPublic":true},"getAncestors":{"name":"getAncestors","async":true,"parameters":[],"returnType":"Promise<this[]>","isStatic":false,"isPublic":true},"getDescendants":{"name":"getDescendants","async":true,"parameters":[],"returnType":"Promise<this[]>","isStatic":false,"isPublic":true},"getHierarchy":{"name":"getHierarchy","async":true,"parameters":[],"returnType":"Promise<HierarchyView<this>>","isStatic":false,"isPublic":true},"moveTo":{"name":"moveTo","async":true,"parameters":[{"name":"newParent","type":"this | string | null","optional":false,"unionBranches":[{"type":"this"},{"type":"string"},{"type":"null"}]}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"getBySlug":{"name":"getBySlug","async":true,"parameters":[{"name":"_slug","type":"string","optional":false}],"returnType":"Promise<Folder | null>","isStatic":true,"isPublic":true}},"decoratorConfig":{"api":{"include":["list","get","create","update","delete"]},"mcp":{"include":["list","get","create","update"]},"cli":{"skipApiCheck":true},"tenantScoped":{"mode":"optional"},"conflictColumns":["tenant_id","slug","context"]},"extends":"SmrtHierarchical","exportName":"Folder","collectionExportName":"FolderCollection","displayLabelField":"name","schema":{"tableName":"folders","ddl":"CREATE TABLE IF NOT EXISTS \\"folders\\" (\\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 \\"parent_id\\" UUID,\\n \\"tenant_id\\" UUID,\\n \\"name\\" TEXT,\\n \\"description\\" TEXT,\\n \\"owner_profile_id\\" UUID\\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"},"parent_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"unique":false,"foreignKey":{"table":"folders","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false,"unique":false},"name":{"type":"TEXT","notNull":false,"unique":false},"description":{"type":"TEXT","notNull":false,"unique":false},"owner_profile_id":{"type":"UUID","referenceKind":"crossPackageRef","notNull":false,"unique":false}},"indexes":[{"name":"folders_slug_context_idx","columns":["tenant_id","slug","context"],"unique":true,"nullsNotDistinct":true},{"name":"folders_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"folders_parent_id_idx","columns":["parent_id"]},{"name":"folders_owner_profile_id_idx","columns":["owner_profile_id"]}],"version":"1d0b1fcb"},"importPath":"@happyvertical/smrt-assets"},"@happyvertical/smrt-assets:FolderCollection":{"name":"foldercollection","className":"FolderCollection","qualifiedName":"@happyvertical/smrt-assets:FolderCollection","collection":"folders","filePath":"/home/runner/work/smrt/smrt/packages/assets/src/folders.ts","packageName":"@happyvertical/smrt-assets","fields":{},"methods":{"getTree":{"name":"getTree","async":true,"parameters":[{"name":"rootId","type":"string","optional":true}],"returnType":"Promise<Folder[]>","isStatic":false,"isPublic":true},"getPath":{"name":"getPath","async":true,"parameters":[{"name":"folderId","type":"string","optional":false}],"returnType":"Promise<Folder[]>","isStatic":false,"isPublic":true},"getContents":{"name":"getContents","async":true,"parameters":[{"name":"folderId","type":"string","optional":false},{"name":"assetCollection","type":"AssetCollection","optional":false}],"returnType":"Promise<Asset[]>","isStatic":false,"isPublic":true},"moveAsset":{"name":"moveAsset","async":true,"parameters":[{"name":"asset","type":"Asset","optional":false},{"name":"folderId","type":"string | null","optional":false,"unionBranches":[{"type":"string"},{"type":"null"}]}],"returnType":"Promise<void>","isStatic":false,"isPublic":true}},"decoratorConfig":{},"extends":"SmrtCollection","extendsTypeArg":"Folder","exportName":"FolderCollection","collectionExportName":"FolderCollectionCollection","schema":{"tableName":"folders","ddl":"CREATE TABLE IF NOT EXISTS \\"folders\\" (\\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 \\"parent_id\\" UUID,\\n \\"tenant_id\\" UUID,\\n \\"name\\" TEXT,\\n \\"description\\" TEXT,\\n \\"owner_profile_id\\" UUID\\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"},"parent_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"unique":false,"foreignKey":{"table":"folders","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false,"unique":false},"name":{"type":"TEXT","notNull":false,"unique":false},"description":{"type":"TEXT","notNull":false,"unique":false},"owner_profile_id":{"type":"UUID","referenceKind":"crossPackageRef","notNull":false,"unique":false}},"indexes":[{"name":"folders_slug_context_idx","columns":["tenant_id","slug","context"],"unique":true,"nullsNotDistinct":true},{"name":"folders_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"folders_parent_id_idx","columns":["parent_id"]},{"name":"folders_owner_profile_id_idx","columns":["owner_profile_id"]}],"version":"1d0b1fcb"},"importPath":"@happyvertical/smrt-assets"}},"moduleType":"smrt","recipes":[{"id":"assets.attachments","className":"AssetAttachmentsRecipe","label":"Attachments","summary":"Attach authorized files to records and retain their history.","synonyms":["file attachments","record files","supporting documents"],"models":["@happyvertical/smrt-assets:Asset","@happyvertical/smrt-assets:AssetAssociation"],"nav":[{"label":"Attachments","model":"@happyvertical/smrt-assets:Asset","icon":"fileText","description":"Supporting files connected to the record you are viewing.","key":"attachments","noun":"attachment"}],"requires":["assets.library"],"group":{"id":"assets","label":"Files and media","summary":"Organize files and media, then attach them to the records that need them."},"section":{"id":"assets","label":"Assets","icon":"folder","description":"Files, media and attachments for your work."},"options":{"@happyvertical/smrt-assets:Asset":{"fields":{"name":{"label":"File name","order":1},"description":{"label":"Description","order":2},"mimeType":{"label":"File type","order":3}}},"@happyvertical/smrt-assets:AssetAssociation":{"fields":{"assetId":{"label":"Attachment","order":1},"metaType":{"help":"The kind of record this file is connected to, such as an article or event."},"metaId":{"help":"The specific record that this file is connected to."},"role":{"label":"Role","order":2,"help":"How this file is used by the related record, such as a cover image or attachment."},"sortOrder":{"label":"Display order","order":3,"help":"The position of this attachment among files with the same role; lower numbers appear first."}}}},"help":{"markdown":"## Overview\\n\\nAttachments keep authorized supporting files connected to a record without making a public storage link. The application supplies the authorization and upload endpoint; this recipe records the asset and its relationship.\\n\\n## Tasks\\n\\n### Describe an attachment\\n\\n1. Use a clear {field:Asset.name} so people can identify the file.\\n2. Add a {field:Asset.description} when the attachment needs context.\\n3. Check the {field:Asset.mimeType} before offering the file to a viewer.\\n\\n### Link an attachment to a record\\n\\n1. Select the {field:AssetAssociation.assetId} to link.\\n2. Set a {field:AssetAssociation.role} when the record uses more than one file.\\n3. Adjust {field:AssetAssociation.sortOrder} to control display order.\\n","fieldRefs":["Asset.description","Asset.mimeType","Asset.name","AssetAssociation.assetId","AssetAssociation.role","AssetAssociation.sortOrder"]},"runtime":"both","demoSeed":{"export":"@happyvertical/smrt-assets/playground#assetAttachmentMockAttachments"},"demo":{"mode":"server","reasons":["Needs a server because its package depends on @happyvertical/smrt-tenancy, which do not build for a browser (#3624)."]}},{"id":"assets.library","className":"AssetLibraryRecipe","label":"Asset Library","summary":"Organize files and media with folders, types, and statuses.","synonyms":["media library","file library","digital assets"],"models":["@happyvertical/smrt-assets:Asset","@happyvertical/smrt-assets:Folder","@happyvertical/smrt-assets:AssetType","@happyvertical/smrt-assets:AssetStatus","@happyvertical/smrt-assets:AssetMetafield"],"nav":[{"label":"Assets","model":"@happyvertical/smrt-assets:Asset","icon":"archive","description":"Files and media you can organize, reuse and share.","noun":"asset"},{"label":"Folders","model":"@happyvertical/smrt-assets:Folder","icon":"folder","description":"Organize assets into clear, reusable groups.","noun":"folder"}],"requires":[],"group":{"id":"assets","label":"Files and media","summary":"Organize files and media, then attach them to the records that need them."},"section":{"id":"assets","label":"Assets","icon":"folder","description":"Files, media and attachments for your work."},"options":{"@happyvertical/smrt-assets:Asset":{"fields":{"name":{"label":"Name","order":1},"description":{"order":2},"folderId":{"label":"Folder","order":3},"typeSlug":{"label":"Type","order":4},"statusSlug":{"label":"Status","order":5},"mimeType":{"label":"File type","order":6}}},"@happyvertical/smrt-assets:Folder":{"fields":{"parentId":{"help":"The containing folder; leave empty to place this folder at the top level."},"name":{"label":"Name","order":1},"description":{"order":2}}}},"help":{"markdown":"## Overview\\n\\nThe Asset Library keeps files and media in one place. Organize assets into folders, classify them by type and status, and keep a clear description for people who need to find them later.\\n\\n## Tasks\\n\\n### Add an asset\\n\\n1. Give the asset a recognizable {field:Asset.name}.\\n2. Add a {field:Asset.description} that explains how the file can be used.\\n3. Select its {field:Asset.folderId}, {field:Asset.typeSlug}, and {field:Asset.statusSlug}.\\n4. Confirm the {field:Asset.mimeType} matches the file you intend to manage.\\n\\n### Organize folders\\n\\n1. Create a folder with a descriptive {field:Folder.name}.\\n2. Use the {field:Folder.description} to explain the folder's purpose.\\n","fieldRefs":["Asset.description","Asset.folderId","Asset.mimeType","Asset.name","Asset.statusSlug","Asset.typeSlug","Folder.description","Folder.name"]},"runtime":"both","demoSeed":{"export":"@happyvertical/smrt-assets/playground#assetGridMockAssets"},"demo":{"mode":"server","reasons":["Needs a server because its package depends on @happyvertical/smrt-tenancy, which do not build for a browser (#3624)."]}}],"smrtDependencies":["@happyvertical/smrt-core","@happyvertical/smrt-tags","@happyvertical/smrt-tenancy"],"browser":{"status":"server-only","issues":["#3624"],"via":["@happyvertical/smrt-tenancy"]},"stampsConstructors":true}`));
735
735
  var __defProp$8 = Object.defineProperty;
736
736
  var __getOwnPropDesc$8 = Object.getOwnPropertyDescriptor;
737
737
  var __defNormalProp$8 = (obj, key, value) => key in obj ? __defProp$8(obj, key, {