@lssm/lib.files 0.0.0-canary-20251217060834 → 0.0.0-canary-20251217063201

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 (130) hide show
  1. package/dist/contracts/dist/capabilities/openbanking.js +1 -0
  2. package/dist/contracts/dist/client/index.js +1 -0
  3. package/dist/contracts/dist/client/react/feature-render.js +1 -0
  4. package/dist/contracts/dist/client/react/form-render.js +1 -0
  5. package/dist/contracts/dist/client/react/index.js +1 -0
  6. package/dist/contracts/dist/contract-registry/index.js +1 -0
  7. package/dist/contracts/dist/contract-registry/schemas.js +1 -0
  8. package/dist/contracts/dist/docs/PUBLISHING.docblock.js +76 -0
  9. package/dist/contracts/dist/docs/accessibility_wcag_compliance_specs.docblock.js +350 -0
  10. package/dist/contracts/dist/docs/index.js +1 -0
  11. package/dist/contracts/dist/docs/presentations.js +1 -0
  12. package/dist/contracts/dist/docs/registry.js +1 -0
  13. package/dist/contracts/dist/docs/tech/PHASE_1_QUICKSTART.docblock.js +383 -0
  14. package/dist/contracts/dist/docs/tech/PHASE_2_AI_NATIVE_OPERATIONS.docblock.js +68 -0
  15. package/dist/contracts/dist/docs/tech/PHASE_3_AUTO_EVOLUTION.docblock.js +140 -0
  16. package/dist/contracts/dist/docs/tech/PHASE_4_PERSONALIZATION_ENGINE.docblock.js +86 -0
  17. package/dist/contracts/dist/docs/tech/PHASE_5_ZERO_TOUCH_OPERATIONS.docblock.js +1 -0
  18. package/dist/contracts/dist/docs/tech/auth/better-auth-nextjs.docblock.js +58 -0
  19. package/dist/contracts/dist/docs/tech/contracts/openapi-export.docblock.js +38 -0
  20. package/dist/contracts/dist/docs/tech/lifecycle-stage-system.docblock.js +213 -0
  21. package/dist/contracts/dist/docs/tech/llm/llm-integration.docblock.js +289 -0
  22. package/dist/contracts/dist/docs/tech/mcp-endpoints.docblock.js +1 -0
  23. package/dist/contracts/dist/docs/tech/presentation-runtime.docblock.js +1 -0
  24. package/dist/contracts/dist/docs/tech/schema/README.docblock.js +262 -0
  25. package/dist/contracts/dist/docs/tech/studio/learning-events.docblock.js +1 -0
  26. package/dist/contracts/dist/docs/tech/studio/learning-journeys.docblock.js +57 -0
  27. package/dist/contracts/dist/docs/tech/studio/platform-admin-panel.docblock.js +63 -0
  28. package/dist/contracts/dist/docs/tech/studio/project-access-teams.docblock.js +36 -0
  29. package/dist/contracts/dist/docs/tech/studio/project-routing.docblock.js +1 -0
  30. package/dist/contracts/dist/docs/tech/studio/sandbox-unlogged.docblock.js +20 -0
  31. package/dist/contracts/dist/docs/tech/studio/team-invitations.docblock.js +65 -0
  32. package/dist/contracts/dist/docs/tech/studio/workspace-ops.docblock.js +1 -0
  33. package/dist/contracts/dist/docs/tech/studio/workspaces.docblock.js +41 -0
  34. package/dist/contracts/dist/docs/tech/telemetry-ingest.docblock.js +122 -0
  35. package/dist/contracts/dist/docs/tech/templates/runtime.docblock.js +1 -0
  36. package/dist/contracts/dist/docs/tech/vscode-extension.docblock.js +68 -0
  37. package/dist/contracts/dist/docs/tech/workflows/overview.docblock.js +1 -0
  38. package/dist/contracts/dist/events.js +1 -0
  39. package/dist/contracts/dist/experiments/evaluator.js +1 -0
  40. package/dist/contracts/dist/index.js +1 -0
  41. package/dist/contracts/dist/install.js +1 -0
  42. package/dist/contracts/dist/integrations/contracts.js +1 -0
  43. package/dist/contracts/dist/integrations/index.js +1 -0
  44. package/dist/contracts/dist/integrations/openbanking/contracts/accounts.js +1 -0
  45. package/dist/contracts/dist/integrations/openbanking/contracts/balances.js +1 -0
  46. package/dist/contracts/dist/integrations/openbanking/contracts/index.js +1 -0
  47. package/dist/contracts/dist/integrations/openbanking/contracts/transactions.js +1 -0
  48. package/dist/contracts/dist/integrations/openbanking/models.js +1 -0
  49. package/dist/contracts/dist/integrations/openbanking/telemetry.js +1 -0
  50. package/dist/contracts/dist/integrations/providers/elevenlabs.js +1 -0
  51. package/dist/contracts/dist/integrations/providers/gcs-storage.js +1 -0
  52. package/dist/contracts/dist/integrations/providers/gmail.js +1 -0
  53. package/dist/contracts/dist/integrations/providers/google-calendar.js +1 -0
  54. package/dist/contracts/dist/integrations/providers/index.js +1 -0
  55. package/dist/contracts/dist/integrations/providers/mistral.js +1 -0
  56. package/dist/contracts/dist/integrations/providers/postmark.js +1 -0
  57. package/dist/contracts/dist/integrations/providers/powens.js +1 -0
  58. package/dist/contracts/dist/integrations/providers/qdrant.js +1 -0
  59. package/dist/contracts/dist/integrations/providers/registry.js +1 -0
  60. package/dist/contracts/dist/integrations/providers/stripe.js +1 -0
  61. package/dist/contracts/dist/integrations/providers/twilio-sms.js +1 -0
  62. package/dist/contracts/dist/jsonschema.js +1 -0
  63. package/dist/contracts/dist/knowledge/contracts.js +1 -0
  64. package/dist/contracts/dist/knowledge/index.js +1 -0
  65. package/dist/contracts/dist/knowledge/spaces/email-threads.js +1 -0
  66. package/dist/contracts/dist/knowledge/spaces/financial-docs.js +1 -0
  67. package/dist/contracts/dist/knowledge/spaces/financial-overview.js +1 -0
  68. package/dist/contracts/dist/knowledge/spaces/index.js +1 -0
  69. package/dist/contracts/dist/knowledge/spaces/product-canon.js +1 -0
  70. package/dist/contracts/dist/knowledge/spaces/support-faq.js +1 -0
  71. package/dist/contracts/dist/knowledge/spaces/uploaded-docs.js +1 -0
  72. package/dist/contracts/dist/llm/exporters.js +1 -0
  73. package/dist/contracts/dist/llm/index.js +1 -0
  74. package/dist/contracts/dist/llm/prompts.js +1 -0
  75. package/dist/contracts/dist/onboarding-base.js +1 -0
  76. package/dist/contracts/dist/openapi.js +1 -0
  77. package/dist/contracts/dist/ownership.js +1 -0
  78. package/dist/contracts/dist/presentations.js +1 -0
  79. package/dist/contracts/dist/presentations.v2.js +1 -0
  80. package/dist/contracts/dist/prompt.js +1 -0
  81. package/dist/contracts/dist/promptRegistry.js +1 -0
  82. package/dist/contracts/dist/regenerator/index.js +1 -0
  83. package/dist/contracts/dist/regenerator/service.js +1 -0
  84. package/dist/contracts/dist/registry.js +1 -0
  85. package/dist/contracts/dist/resources.js +1 -0
  86. package/dist/contracts/dist/schema/dist/EnumType.js +1 -0
  87. package/dist/contracts/dist/schema/dist/FieldType.js +1 -0
  88. package/dist/contracts/dist/schema/dist/ScalarTypeEnum.js +1 -0
  89. package/dist/contracts/dist/schema/dist/SchemaModel.js +1 -0
  90. package/dist/contracts/dist/schema/dist/entity/defineEntity.js +1 -0
  91. package/dist/contracts/dist/schema/dist/entity/index.js +1 -0
  92. package/dist/contracts/dist/schema/dist/entity/types.js +1 -0
  93. package/dist/contracts/dist/schema/dist/index.js +1 -0
  94. package/dist/contracts/dist/server/graphql-pothos.js +1 -0
  95. package/dist/contracts/dist/server/index.js +1 -0
  96. package/dist/contracts/dist/server/mcp/createMcpServer.js +1 -0
  97. package/dist/contracts/dist/server/mcp/registerPresentations.js +1 -0
  98. package/dist/contracts/dist/server/mcp/registerPrompts.js +1 -0
  99. package/dist/contracts/dist/server/mcp/registerResources.js +1 -0
  100. package/dist/contracts/dist/server/mcp/registerTools.js +1 -0
  101. package/dist/contracts/dist/server/provider-mcp.js +1 -0
  102. package/dist/contracts/dist/server/rest-elysia.js +1 -0
  103. package/dist/contracts/dist/server/rest-express.js +1 -0
  104. package/dist/contracts/dist/server/rest-generic.js +1 -0
  105. package/dist/contracts/dist/server/rest-next-app.js +1 -0
  106. package/dist/contracts/dist/server/rest-next-pages.js +1 -0
  107. package/dist/contracts/dist/spec.js +1 -0
  108. package/dist/contracts/dist/telemetry/index.js +1 -0
  109. package/dist/contracts/dist/telemetry/tracker.js +1 -0
  110. package/dist/contracts/dist/tests/index.js +1 -0
  111. package/dist/contracts/dist/tests/runner.js +1 -0
  112. package/dist/contracts/dist/workflow/index.js +1 -0
  113. package/dist/contracts/dist/workflow/runner.js +1 -0
  114. package/dist/contracts/index.d.ts +291 -291
  115. package/dist/contracts/index.js +1 -1
  116. package/dist/docs/files.docblock.js +1 -1
  117. package/dist/entities/index.d.ts +133 -133
  118. package/dist/entities/index.js +1 -1
  119. package/dist/events.d.ts +118 -118
  120. package/dist/events.js +1 -1
  121. package/dist/schema/dist/EnumType.js +1 -0
  122. package/dist/schema/dist/FieldType.js +1 -0
  123. package/dist/schema/dist/ScalarTypeEnum.js +1 -0
  124. package/dist/schema/dist/SchemaModel.js +1 -0
  125. package/dist/schema/dist/entity/defineEntity.js +1 -0
  126. package/dist/schema/dist/entity/index.js +1 -0
  127. package/dist/schema/dist/entity/types.js +1 -0
  128. package/dist/schema/dist/index.js +1 -0
  129. package/dist/storage/index.js +1 -1
  130. package/package.json +5 -5
@@ -1 +1 @@
1
- import{ScalarTypeEnum as e,defineSchemaModel as t}from"@lssm/lib.schema";import{defineCommand as n,defineQuery as r}from"@lssm/lib.contracts";const i=[`platform.files`],a=t({name:`File`,description:`Represents an uploaded file`,fields:{id:{type:e.String_unsecure(),isOptional:!1},name:{type:e.String_unsecure(),isOptional:!1},mimeType:{type:e.String_unsecure(),isOptional:!1},size:{type:e.Int_unsecure(),isOptional:!1},storageProvider:{type:e.String_unsecure(),isOptional:!1},storagePath:{type:e.String_unsecure(),isOptional:!1},checksum:{type:e.String_unsecure(),isOptional:!0},status:{type:e.String_unsecure(),isOptional:!1},isPublic:{type:e.Boolean(),isOptional:!1},ownerId:{type:e.String_unsecure(),isOptional:!1},orgId:{type:e.String_unsecure(),isOptional:!0},metadata:{type:e.JSON(),isOptional:!0},width:{type:e.Int_unsecure(),isOptional:!0},height:{type:e.Int_unsecure(),isOptional:!0},createdAt:{type:e.DateTime(),isOptional:!1},updatedAt:{type:e.DateTime(),isOptional:!1}}}),o=t({name:`FileVersion`,description:`Represents a file version`,fields:{id:{type:e.String_unsecure(),isOptional:!1},fileId:{type:e.String_unsecure(),isOptional:!1},version:{type:e.Int_unsecure(),isOptional:!1},size:{type:e.Int_unsecure(),isOptional:!1},storagePath:{type:e.String_unsecure(),isOptional:!1},checksum:{type:e.String_unsecure(),isOptional:!0},comment:{type:e.String_unsecure(),isOptional:!0},createdBy:{type:e.String_unsecure(),isOptional:!1},createdAt:{type:e.DateTime(),isOptional:!1}}}),s=t({name:`Attachment`,description:`Represents an attachment`,fields:{id:{type:e.String_unsecure(),isOptional:!1},fileId:{type:e.String_unsecure(),isOptional:!1},entityType:{type:e.String_unsecure(),isOptional:!1},entityId:{type:e.String_unsecure(),isOptional:!1},attachmentType:{type:e.String_unsecure(),isOptional:!0},name:{type:e.String_unsecure(),isOptional:!0},description:{type:e.String_unsecure(),isOptional:!0},order:{type:e.Int_unsecure(),isOptional:!1},metadata:{type:e.JSON(),isOptional:!0},createdBy:{type:e.String_unsecure(),isOptional:!1},createdAt:{type:e.DateTime(),isOptional:!1},file:{type:a,isOptional:!0}}}),c=t({name:`PresignedUrl`,description:`A presigned URL for file operations`,fields:{url:{type:e.String_unsecure(),isOptional:!1},fields:{type:e.JSON(),isOptional:!0},expiresAt:{type:e.DateTime(),isOptional:!1},fileId:{type:e.String_unsecure(),isOptional:!0},sessionId:{type:e.String_unsecure(),isOptional:!0}}}),l=t({name:`UploadFileInput`,description:`Input for uploading a file`,fields:{name:{type:e.String_unsecure(),isOptional:!1},mimeType:{type:e.String_unsecure(),isOptional:!1},size:{type:e.Int_unsecure(),isOptional:!1},content:{type:e.String_unsecure(),isOptional:!1},orgId:{type:e.String_unsecure(),isOptional:!0},isPublic:{type:e.Boolean(),isOptional:!0},metadata:{type:e.JSON(),isOptional:!0},tags:{type:e.JSON(),isOptional:!0}}}),u=t({name:`UpdateFileInput`,description:`Input for updating a file`,fields:{fileId:{type:e.String_unsecure(),isOptional:!1},name:{type:e.String_unsecure(),isOptional:!0},isPublic:{type:e.Boolean(),isOptional:!0},metadata:{type:e.JSON(),isOptional:!0},tags:{type:e.JSON(),isOptional:!0}}}),d=t({name:`DeleteFileInput`,description:`Input for deleting a file`,fields:{fileId:{type:e.String_unsecure(),isOptional:!1}}}),f=t({name:`GetFileInput`,description:`Input for getting a file`,fields:{fileId:{type:e.String_unsecure(),isOptional:!1}}}),p=t({name:`ListFilesInput`,description:`Input for listing files`,fields:{orgId:{type:e.String_unsecure(),isOptional:!0},ownerId:{type:e.String_unsecure(),isOptional:!0},mimeType:{type:e.String_unsecure(),isOptional:!0},status:{type:e.String_unsecure(),isOptional:!0},tags:{type:e.JSON(),isOptional:!0},limit:{type:e.Int_unsecure(),isOptional:!0},offset:{type:e.Int_unsecure(),isOptional:!0}}}),m=t({name:`ListFilesOutput`,description:`Output for listing files`,fields:{files:{type:a,isArray:!0,isOptional:!1},total:{type:e.Int_unsecure(),isOptional:!1}}}),h=t({name:`GetDownloadUrlInput`,description:`Input for getting a download URL`,fields:{fileId:{type:e.String_unsecure(),isOptional:!1},expiresInSeconds:{type:e.Int_unsecure(),isOptional:!0}}}),g=t({name:`CreateVersionInput`,description:`Input for creating a file version`,fields:{fileId:{type:e.String_unsecure(),isOptional:!1},content:{type:e.String_unsecure(),isOptional:!1},comment:{type:e.String_unsecure(),isOptional:!0}}}),_=t({name:`GetVersionsInput`,description:`Input for getting file versions`,fields:{fileId:{type:e.String_unsecure(),isOptional:!1},limit:{type:e.Int_unsecure(),isOptional:!0},offset:{type:e.Int_unsecure(),isOptional:!0}}}),v=t({name:`GetVersionsOutput`,description:`Output for getting file versions`,fields:{versions:{type:o,isArray:!0,isOptional:!1},total:{type:e.Int_unsecure(),isOptional:!1}}}),y=t({name:`AttachFileInput`,description:`Input for attaching a file to an entity`,fields:{fileId:{type:e.String_unsecure(),isOptional:!1},entityType:{type:e.String_unsecure(),isOptional:!1},entityId:{type:e.String_unsecure(),isOptional:!1},attachmentType:{type:e.String_unsecure(),isOptional:!0},name:{type:e.String_unsecure(),isOptional:!0},description:{type:e.String_unsecure(),isOptional:!0},order:{type:e.Int_unsecure(),isOptional:!0},metadata:{type:e.JSON(),isOptional:!0}}}),b=t({name:`DetachFileInput`,description:`Input for detaching a file`,fields:{attachmentId:{type:e.String_unsecure(),isOptional:!1}}}),x=t({name:`ListAttachmentsInput`,description:`Input for listing attachments`,fields:{entityType:{type:e.String_unsecure(),isOptional:!1},entityId:{type:e.String_unsecure(),isOptional:!1},attachmentType:{type:e.String_unsecure(),isOptional:!0}}}),S=t({name:`ListAttachmentsOutput`,description:`Output for listing attachments`,fields:{attachments:{type:s,isArray:!0,isOptional:!1},total:{type:e.Int_unsecure(),isOptional:!1}}}),C=t({name:`CreatePresignedUrlInput`,description:`Input for creating a presigned upload URL`,fields:{fileName:{type:e.String_unsecure(),isOptional:!1},mimeType:{type:e.String_unsecure(),isOptional:!1},size:{type:e.Int_unsecure(),isOptional:!1},orgId:{type:e.String_unsecure(),isOptional:!0},expiresInSeconds:{type:e.Int_unsecure(),isOptional:!0}}}),w=t({name:`SuccessOutput`,description:`Generic success output`,fields:{success:{type:e.Boolean(),isOptional:!1}}}),T=n({meta:{name:`file.upload`,version:1,stability:`stable`,owners:[...i],tags:[`files`,`upload`],description:`Upload a new file.`,goal:`Store a file and create a file record.`,context:`Called when uploading files directly.`},io:{input:l,output:a,errors:{FILE_TOO_LARGE:{description:`File exceeds size limit`,http:413,gqlCode:`FILE_TOO_LARGE`,when:`File size exceeds configured limit`},INVALID_MIME_TYPE:{description:`MIME type not allowed`,http:415,gqlCode:`INVALID_MIME_TYPE`,when:`File type is not in allowed list`}}},policy:{auth:`user`}}),E=n({meta:{name:`file.update`,version:1,stability:`stable`,owners:[...i],tags:[`files`,`update`],description:`Update file metadata.`,goal:`Modify file properties without replacing content.`,context:`Called when renaming or updating file metadata.`},io:{input:u,output:a,errors:{FILE_NOT_FOUND:{description:`File does not exist`,http:404,gqlCode:`FILE_NOT_FOUND`,when:`File ID is invalid`}}},policy:{auth:`user`}}),D=n({meta:{name:`file.delete`,version:1,stability:`stable`,owners:[...i],tags:[`files`,`delete`],description:`Delete a file.`,goal:`Remove a file and all its versions and attachments.`,context:`Called when removing a file permanently.`},io:{input:d,output:w,errors:{FILE_NOT_FOUND:{description:`File does not exist`,http:404,gqlCode:`FILE_NOT_FOUND`,when:`File ID is invalid`}}},policy:{auth:`user`}}),O=r({meta:{name:`file.get`,version:1,stability:`stable`,owners:[...i],tags:[`files`,`get`],description:`Get a file by ID.`,goal:`Retrieve file metadata.`,context:`Called to inspect file details.`},io:{input:f,output:a,errors:{FILE_NOT_FOUND:{description:`File does not exist`,http:404,gqlCode:`FILE_NOT_FOUND`,when:`File ID is invalid`}}},policy:{auth:`user`}}),k=r({meta:{name:`file.list`,version:1,stability:`stable`,owners:[...i],tags:[`files`,`list`],description:`List files with filtering.`,goal:`Browse uploaded files.`,context:`Called to browse file library.`},io:{input:p,output:m},policy:{auth:`user`}}),A=r({meta:{name:`file.downloadUrl`,version:1,stability:`stable`,owners:[...i],tags:[`files`,`download`],description:`Get a presigned download URL.`,goal:`Generate a temporary URL for downloading.`,context:`Called when user wants to download a file.`},io:{input:h,output:c,errors:{FILE_NOT_FOUND:{description:`File does not exist`,http:404,gqlCode:`FILE_NOT_FOUND`,when:`File ID is invalid`}}},policy:{auth:`user`}}),j=n({meta:{name:`file.version.create`,version:1,stability:`stable`,owners:[...i],tags:[`files`,`version`,`create`],description:`Create a new version of a file.`,goal:`Upload a new version while preserving history.`,context:`Called when updating a document.`},io:{input:g,output:o,errors:{FILE_NOT_FOUND:{description:`File does not exist`,http:404,gqlCode:`FILE_NOT_FOUND`,when:`File ID is invalid`}}},policy:{auth:`user`}}),M=r({meta:{name:`file.version.list`,version:1,stability:`stable`,owners:[...i],tags:[`files`,`version`,`list`],description:`Get file version history.`,goal:`View all versions of a file.`,context:`Called to browse file history.`},io:{input:_,output:v,errors:{FILE_NOT_FOUND:{description:`File does not exist`,http:404,gqlCode:`FILE_NOT_FOUND`,when:`File ID is invalid`}}},policy:{auth:`user`}}),N=n({meta:{name:`attachment.attach`,version:1,stability:`stable`,owners:[...i],tags:[`files`,`attachment`,`attach`],description:`Attach a file to an entity.`,goal:`Link a file to a business entity.`,context:`Called when associating files with entities.`},io:{input:y,output:s,errors:{FILE_NOT_FOUND:{description:`File does not exist`,http:404,gqlCode:`FILE_NOT_FOUND`,when:`File ID is invalid`},ATTACHMENT_EXISTS:{description:`Attachment already exists`,http:409,gqlCode:`ATTACHMENT_EXISTS`,when:`File is already attached to this entity`}}},policy:{auth:`user`}}),P=n({meta:{name:`attachment.detach`,version:1,stability:`stable`,owners:[...i],tags:[`files`,`attachment`,`detach`],description:`Detach a file from an entity.`,goal:`Remove a file association.`,context:`Called when removing file from entity.`},io:{input:b,output:w,errors:{ATTACHMENT_NOT_FOUND:{description:`Attachment does not exist`,http:404,gqlCode:`ATTACHMENT_NOT_FOUND`,when:`Attachment ID is invalid`}}},policy:{auth:`user`}}),F=r({meta:{name:`attachment.list`,version:1,stability:`stable`,owners:[...i],tags:[`files`,`attachment`,`list`],description:`List attachments for an entity.`,goal:`Get all files attached to an entity.`,context:`Called to display attached files.`},io:{input:x,output:S},policy:{auth:`user`}}),I=n({meta:{name:`file.presignedUrl.create`,version:1,stability:`stable`,owners:[...i],tags:[`files`,`presigned`,`upload`],description:`Create a presigned URL for direct upload.`,goal:`Enable direct-to-storage uploads.`,context:`Called for large file uploads.`},io:{input:C,output:c,errors:{FILE_TOO_LARGE:{description:`File exceeds size limit`,http:413,gqlCode:`FILE_TOO_LARGE`,when:`Requested file size exceeds limit`},INVALID_MIME_TYPE:{description:`MIME type not allowed`,http:415,gqlCode:`INVALID_MIME_TYPE`,when:`File type is not in allowed list`}}},policy:{auth:`user`}});export{N as AttachFileContract,s as AttachmentModel,I as CreatePresignedUrlContract,j as CreateVersionContract,D as DeleteFileContract,P as DetachFileContract,a as FileModel,o as FileVersionModel,A as GetDownloadUrlContract,O as GetFileContract,M as GetVersionsContract,F as ListAttachmentsContract,k as ListFilesContract,c as PresignedUrlModel,E as UpdateFileContract,T as UploadFileContract};
1
+ import{l as e}from"../schema/dist/ScalarTypeEnum.js";import{n as t}from"../schema/dist/SchemaModel.js";import"../schema/dist/index.js";import{n,t as r}from"./dist/spec.js";import"./dist/index.js";const i=[`platform.files`],a=t({name:`File`,description:`Represents an uploaded file`,fields:{id:{type:e.String_unsecure(),isOptional:!1},name:{type:e.String_unsecure(),isOptional:!1},mimeType:{type:e.String_unsecure(),isOptional:!1},size:{type:e.Int_unsecure(),isOptional:!1},storageProvider:{type:e.String_unsecure(),isOptional:!1},storagePath:{type:e.String_unsecure(),isOptional:!1},checksum:{type:e.String_unsecure(),isOptional:!0},status:{type:e.String_unsecure(),isOptional:!1},isPublic:{type:e.Boolean(),isOptional:!1},ownerId:{type:e.String_unsecure(),isOptional:!1},orgId:{type:e.String_unsecure(),isOptional:!0},metadata:{type:e.JSON(),isOptional:!0},width:{type:e.Int_unsecure(),isOptional:!0},height:{type:e.Int_unsecure(),isOptional:!0},createdAt:{type:e.DateTime(),isOptional:!1},updatedAt:{type:e.DateTime(),isOptional:!1}}}),o=t({name:`FileVersion`,description:`Represents a file version`,fields:{id:{type:e.String_unsecure(),isOptional:!1},fileId:{type:e.String_unsecure(),isOptional:!1},version:{type:e.Int_unsecure(),isOptional:!1},size:{type:e.Int_unsecure(),isOptional:!1},storagePath:{type:e.String_unsecure(),isOptional:!1},checksum:{type:e.String_unsecure(),isOptional:!0},comment:{type:e.String_unsecure(),isOptional:!0},createdBy:{type:e.String_unsecure(),isOptional:!1},createdAt:{type:e.DateTime(),isOptional:!1}}}),s=t({name:`Attachment`,description:`Represents an attachment`,fields:{id:{type:e.String_unsecure(),isOptional:!1},fileId:{type:e.String_unsecure(),isOptional:!1},entityType:{type:e.String_unsecure(),isOptional:!1},entityId:{type:e.String_unsecure(),isOptional:!1},attachmentType:{type:e.String_unsecure(),isOptional:!0},name:{type:e.String_unsecure(),isOptional:!0},description:{type:e.String_unsecure(),isOptional:!0},order:{type:e.Int_unsecure(),isOptional:!1},metadata:{type:e.JSON(),isOptional:!0},createdBy:{type:e.String_unsecure(),isOptional:!1},createdAt:{type:e.DateTime(),isOptional:!1},file:{type:a,isOptional:!0}}}),c=t({name:`PresignedUrl`,description:`A presigned URL for file operations`,fields:{url:{type:e.String_unsecure(),isOptional:!1},fields:{type:e.JSON(),isOptional:!0},expiresAt:{type:e.DateTime(),isOptional:!1},fileId:{type:e.String_unsecure(),isOptional:!0},sessionId:{type:e.String_unsecure(),isOptional:!0}}}),l=t({name:`UploadFileInput`,description:`Input for uploading a file`,fields:{name:{type:e.String_unsecure(),isOptional:!1},mimeType:{type:e.String_unsecure(),isOptional:!1},size:{type:e.Int_unsecure(),isOptional:!1},content:{type:e.String_unsecure(),isOptional:!1},orgId:{type:e.String_unsecure(),isOptional:!0},isPublic:{type:e.Boolean(),isOptional:!0},metadata:{type:e.JSON(),isOptional:!0},tags:{type:e.JSON(),isOptional:!0}}}),u=t({name:`UpdateFileInput`,description:`Input for updating a file`,fields:{fileId:{type:e.String_unsecure(),isOptional:!1},name:{type:e.String_unsecure(),isOptional:!0},isPublic:{type:e.Boolean(),isOptional:!0},metadata:{type:e.JSON(),isOptional:!0},tags:{type:e.JSON(),isOptional:!0}}}),d=t({name:`DeleteFileInput`,description:`Input for deleting a file`,fields:{fileId:{type:e.String_unsecure(),isOptional:!1}}}),f=t({name:`GetFileInput`,description:`Input for getting a file`,fields:{fileId:{type:e.String_unsecure(),isOptional:!1}}}),p=t({name:`ListFilesInput`,description:`Input for listing files`,fields:{orgId:{type:e.String_unsecure(),isOptional:!0},ownerId:{type:e.String_unsecure(),isOptional:!0},mimeType:{type:e.String_unsecure(),isOptional:!0},status:{type:e.String_unsecure(),isOptional:!0},tags:{type:e.JSON(),isOptional:!0},limit:{type:e.Int_unsecure(),isOptional:!0},offset:{type:e.Int_unsecure(),isOptional:!0}}}),m=t({name:`ListFilesOutput`,description:`Output for listing files`,fields:{files:{type:a,isArray:!0,isOptional:!1},total:{type:e.Int_unsecure(),isOptional:!1}}}),h=t({name:`GetDownloadUrlInput`,description:`Input for getting a download URL`,fields:{fileId:{type:e.String_unsecure(),isOptional:!1},expiresInSeconds:{type:e.Int_unsecure(),isOptional:!0}}}),g=t({name:`CreateVersionInput`,description:`Input for creating a file version`,fields:{fileId:{type:e.String_unsecure(),isOptional:!1},content:{type:e.String_unsecure(),isOptional:!1},comment:{type:e.String_unsecure(),isOptional:!0}}}),_=t({name:`GetVersionsInput`,description:`Input for getting file versions`,fields:{fileId:{type:e.String_unsecure(),isOptional:!1},limit:{type:e.Int_unsecure(),isOptional:!0},offset:{type:e.Int_unsecure(),isOptional:!0}}}),v=t({name:`GetVersionsOutput`,description:`Output for getting file versions`,fields:{versions:{type:o,isArray:!0,isOptional:!1},total:{type:e.Int_unsecure(),isOptional:!1}}}),y=t({name:`AttachFileInput`,description:`Input for attaching a file to an entity`,fields:{fileId:{type:e.String_unsecure(),isOptional:!1},entityType:{type:e.String_unsecure(),isOptional:!1},entityId:{type:e.String_unsecure(),isOptional:!1},attachmentType:{type:e.String_unsecure(),isOptional:!0},name:{type:e.String_unsecure(),isOptional:!0},description:{type:e.String_unsecure(),isOptional:!0},order:{type:e.Int_unsecure(),isOptional:!0},metadata:{type:e.JSON(),isOptional:!0}}}),b=t({name:`DetachFileInput`,description:`Input for detaching a file`,fields:{attachmentId:{type:e.String_unsecure(),isOptional:!1}}}),x=t({name:`ListAttachmentsInput`,description:`Input for listing attachments`,fields:{entityType:{type:e.String_unsecure(),isOptional:!1},entityId:{type:e.String_unsecure(),isOptional:!1},attachmentType:{type:e.String_unsecure(),isOptional:!0}}}),S=t({name:`ListAttachmentsOutput`,description:`Output for listing attachments`,fields:{attachments:{type:s,isArray:!0,isOptional:!1},total:{type:e.Int_unsecure(),isOptional:!1}}}),C=t({name:`CreatePresignedUrlInput`,description:`Input for creating a presigned upload URL`,fields:{fileName:{type:e.String_unsecure(),isOptional:!1},mimeType:{type:e.String_unsecure(),isOptional:!1},size:{type:e.Int_unsecure(),isOptional:!1},orgId:{type:e.String_unsecure(),isOptional:!0},expiresInSeconds:{type:e.Int_unsecure(),isOptional:!0}}}),w=t({name:`SuccessOutput`,description:`Generic success output`,fields:{success:{type:e.Boolean(),isOptional:!1}}}),T=r({meta:{name:`file.upload`,version:1,stability:`stable`,owners:[...i],tags:[`files`,`upload`],description:`Upload a new file.`,goal:`Store a file and create a file record.`,context:`Called when uploading files directly.`},io:{input:l,output:a,errors:{FILE_TOO_LARGE:{description:`File exceeds size limit`,http:413,gqlCode:`FILE_TOO_LARGE`,when:`File size exceeds configured limit`},INVALID_MIME_TYPE:{description:`MIME type not allowed`,http:415,gqlCode:`INVALID_MIME_TYPE`,when:`File type is not in allowed list`}}},policy:{auth:`user`}}),E=r({meta:{name:`file.update`,version:1,stability:`stable`,owners:[...i],tags:[`files`,`update`],description:`Update file metadata.`,goal:`Modify file properties without replacing content.`,context:`Called when renaming or updating file metadata.`},io:{input:u,output:a,errors:{FILE_NOT_FOUND:{description:`File does not exist`,http:404,gqlCode:`FILE_NOT_FOUND`,when:`File ID is invalid`}}},policy:{auth:`user`}}),D=r({meta:{name:`file.delete`,version:1,stability:`stable`,owners:[...i],tags:[`files`,`delete`],description:`Delete a file.`,goal:`Remove a file and all its versions and attachments.`,context:`Called when removing a file permanently.`},io:{input:d,output:w,errors:{FILE_NOT_FOUND:{description:`File does not exist`,http:404,gqlCode:`FILE_NOT_FOUND`,when:`File ID is invalid`}}},policy:{auth:`user`}}),O=n({meta:{name:`file.get`,version:1,stability:`stable`,owners:[...i],tags:[`files`,`get`],description:`Get a file by ID.`,goal:`Retrieve file metadata.`,context:`Called to inspect file details.`},io:{input:f,output:a,errors:{FILE_NOT_FOUND:{description:`File does not exist`,http:404,gqlCode:`FILE_NOT_FOUND`,when:`File ID is invalid`}}},policy:{auth:`user`}}),k=n({meta:{name:`file.list`,version:1,stability:`stable`,owners:[...i],tags:[`files`,`list`],description:`List files with filtering.`,goal:`Browse uploaded files.`,context:`Called to browse file library.`},io:{input:p,output:m},policy:{auth:`user`}}),A=n({meta:{name:`file.downloadUrl`,version:1,stability:`stable`,owners:[...i],tags:[`files`,`download`],description:`Get a presigned download URL.`,goal:`Generate a temporary URL for downloading.`,context:`Called when user wants to download a file.`},io:{input:h,output:c,errors:{FILE_NOT_FOUND:{description:`File does not exist`,http:404,gqlCode:`FILE_NOT_FOUND`,when:`File ID is invalid`}}},policy:{auth:`user`}}),j=r({meta:{name:`file.version.create`,version:1,stability:`stable`,owners:[...i],tags:[`files`,`version`,`create`],description:`Create a new version of a file.`,goal:`Upload a new version while preserving history.`,context:`Called when updating a document.`},io:{input:g,output:o,errors:{FILE_NOT_FOUND:{description:`File does not exist`,http:404,gqlCode:`FILE_NOT_FOUND`,when:`File ID is invalid`}}},policy:{auth:`user`}}),M=n({meta:{name:`file.version.list`,version:1,stability:`stable`,owners:[...i],tags:[`files`,`version`,`list`],description:`Get file version history.`,goal:`View all versions of a file.`,context:`Called to browse file history.`},io:{input:_,output:v,errors:{FILE_NOT_FOUND:{description:`File does not exist`,http:404,gqlCode:`FILE_NOT_FOUND`,when:`File ID is invalid`}}},policy:{auth:`user`}}),N=r({meta:{name:`attachment.attach`,version:1,stability:`stable`,owners:[...i],tags:[`files`,`attachment`,`attach`],description:`Attach a file to an entity.`,goal:`Link a file to a business entity.`,context:`Called when associating files with entities.`},io:{input:y,output:s,errors:{FILE_NOT_FOUND:{description:`File does not exist`,http:404,gqlCode:`FILE_NOT_FOUND`,when:`File ID is invalid`},ATTACHMENT_EXISTS:{description:`Attachment already exists`,http:409,gqlCode:`ATTACHMENT_EXISTS`,when:`File is already attached to this entity`}}},policy:{auth:`user`}}),P=r({meta:{name:`attachment.detach`,version:1,stability:`stable`,owners:[...i],tags:[`files`,`attachment`,`detach`],description:`Detach a file from an entity.`,goal:`Remove a file association.`,context:`Called when removing file from entity.`},io:{input:b,output:w,errors:{ATTACHMENT_NOT_FOUND:{description:`Attachment does not exist`,http:404,gqlCode:`ATTACHMENT_NOT_FOUND`,when:`Attachment ID is invalid`}}},policy:{auth:`user`}}),F=n({meta:{name:`attachment.list`,version:1,stability:`stable`,owners:[...i],tags:[`files`,`attachment`,`list`],description:`List attachments for an entity.`,goal:`Get all files attached to an entity.`,context:`Called to display attached files.`},io:{input:x,output:S},policy:{auth:`user`}}),I=r({meta:{name:`file.presignedUrl.create`,version:1,stability:`stable`,owners:[...i],tags:[`files`,`presigned`,`upload`],description:`Create a presigned URL for direct upload.`,goal:`Enable direct-to-storage uploads.`,context:`Called for large file uploads.`},io:{input:C,output:c,errors:{FILE_TOO_LARGE:{description:`File exceeds size limit`,http:413,gqlCode:`FILE_TOO_LARGE`,when:`Requested file size exceeds limit`},INVALID_MIME_TYPE:{description:`MIME type not allowed`,http:415,gqlCode:`INVALID_MIME_TYPE`,when:`File type is not in allowed list`}}},policy:{auth:`user`}});export{N as AttachFileContract,s as AttachmentModel,I as CreatePresignedUrlContract,j as CreateVersionContract,D as DeleteFileContract,P as DetachFileContract,a as FileModel,o as FileVersionModel,A as GetDownloadUrlContract,O as GetFileContract,M as GetVersionsContract,F as ListAttachmentsContract,k as ListFilesContract,c as PresignedUrlModel,E as UpdateFileContract,T as UploadFileContract};
@@ -1,4 +1,4 @@
1
- import{registerDocBlocks as e}from"@lssm/lib.contracts/docs";e([{id:`docs.files.attachments`,title:`Files, Versions & Attachments`,summary:`Spec-first file management with storage adapters, versioning, presigned URLs, and polymorphic attachments for any entity.`,kind:`reference`,visibility:`public`,route:`/docs/files/attachments`,tags:[`files`,`attachments`,`storage`,`versions`],body:`## Capabilities
1
+ import{a as e}from"../contracts/dist/docs/registry.js";import"../contracts/dist/docs/index.js";e([{id:`docs.files.attachments`,title:`Files, Versions & Attachments`,summary:`Spec-first file management with storage adapters, versioning, presigned URLs, and polymorphic attachments for any entity.`,kind:`reference`,visibility:`public`,route:`/docs/files/attachments`,tags:[`files`,`attachments`,`storage`,`versions`],body:`## Capabilities
2
2
 
3
3
  - **Entities**: File, FileVersion, Attachment, UploadSession with retention, checksum, ACLs.
4
4
  - **Contracts**: upload/update/delete/list/get files; presigned upload/download; version create/list; attach/detach/list attachments.
@@ -1,164 +1,164 @@
1
- import * as _lssm_lib_schema404 from "@lssm/lib.schema";
1
+ import * as _lssm_lib_schema288 from "@lssm/lib.schema";
2
2
  import { ModuleSchemaContribution } from "@lssm/lib.schema";
3
3
 
4
4
  //#region src/entities/index.d.ts
5
5
  /**
6
6
  * Storage provider enum.
7
7
  */
8
- declare const StorageProviderEnum: _lssm_lib_schema404.EntityEnumDef;
8
+ declare const StorageProviderEnum: _lssm_lib_schema288.EntityEnumDef;
9
9
  /**
10
10
  * File status enum.
11
11
  */
12
- declare const FileStatusEnum: _lssm_lib_schema404.EntityEnumDef;
12
+ declare const FileStatusEnum: _lssm_lib_schema288.EntityEnumDef;
13
13
  /**
14
14
  * File entity - represents an uploaded file.
15
15
  */
16
- declare const FileEntity: _lssm_lib_schema404.EntitySpec<{
17
- id: _lssm_lib_schema404.EntityScalarField;
18
- name: _lssm_lib_schema404.EntityScalarField;
19
- mimeType: _lssm_lib_schema404.EntityScalarField;
20
- size: _lssm_lib_schema404.EntityScalarField;
21
- storageProvider: _lssm_lib_schema404.EntityEnumField;
22
- storagePath: _lssm_lib_schema404.EntityScalarField;
23
- storageKey: _lssm_lib_schema404.EntityScalarField;
24
- checksum: _lssm_lib_schema404.EntityScalarField;
25
- etag: _lssm_lib_schema404.EntityScalarField;
26
- status: _lssm_lib_schema404.EntityEnumField;
27
- isPublic: _lssm_lib_schema404.EntityScalarField;
28
- expiresAt: _lssm_lib_schema404.EntityScalarField;
29
- ownerId: _lssm_lib_schema404.EntityScalarField;
30
- orgId: _lssm_lib_schema404.EntityScalarField;
31
- metadata: _lssm_lib_schema404.EntityScalarField;
32
- tags: _lssm_lib_schema404.EntityScalarField;
33
- width: _lssm_lib_schema404.EntityScalarField;
34
- height: _lssm_lib_schema404.EntityScalarField;
35
- createdAt: _lssm_lib_schema404.EntityScalarField;
36
- updatedAt: _lssm_lib_schema404.EntityScalarField;
37
- versions: _lssm_lib_schema404.EntityRelationField;
38
- attachments: _lssm_lib_schema404.EntityRelationField;
16
+ declare const FileEntity: _lssm_lib_schema288.EntitySpec<{
17
+ id: _lssm_lib_schema288.EntityScalarField;
18
+ name: _lssm_lib_schema288.EntityScalarField;
19
+ mimeType: _lssm_lib_schema288.EntityScalarField;
20
+ size: _lssm_lib_schema288.EntityScalarField;
21
+ storageProvider: _lssm_lib_schema288.EntityEnumField;
22
+ storagePath: _lssm_lib_schema288.EntityScalarField;
23
+ storageKey: _lssm_lib_schema288.EntityScalarField;
24
+ checksum: _lssm_lib_schema288.EntityScalarField;
25
+ etag: _lssm_lib_schema288.EntityScalarField;
26
+ status: _lssm_lib_schema288.EntityEnumField;
27
+ isPublic: _lssm_lib_schema288.EntityScalarField;
28
+ expiresAt: _lssm_lib_schema288.EntityScalarField;
29
+ ownerId: _lssm_lib_schema288.EntityScalarField;
30
+ orgId: _lssm_lib_schema288.EntityScalarField;
31
+ metadata: _lssm_lib_schema288.EntityScalarField;
32
+ tags: _lssm_lib_schema288.EntityScalarField;
33
+ width: _lssm_lib_schema288.EntityScalarField;
34
+ height: _lssm_lib_schema288.EntityScalarField;
35
+ createdAt: _lssm_lib_schema288.EntityScalarField;
36
+ updatedAt: _lssm_lib_schema288.EntityScalarField;
37
+ versions: _lssm_lib_schema288.EntityRelationField;
38
+ attachments: _lssm_lib_schema288.EntityRelationField;
39
39
  }>;
40
40
  /**
41
41
  * FileVersion entity - version history for files.
42
42
  */
43
- declare const FileVersionEntity: _lssm_lib_schema404.EntitySpec<{
44
- id: _lssm_lib_schema404.EntityScalarField;
45
- fileId: _lssm_lib_schema404.EntityScalarField;
46
- version: _lssm_lib_schema404.EntityScalarField;
47
- size: _lssm_lib_schema404.EntityScalarField;
48
- storagePath: _lssm_lib_schema404.EntityScalarField;
49
- checksum: _lssm_lib_schema404.EntityScalarField;
50
- comment: _lssm_lib_schema404.EntityScalarField;
51
- changes: _lssm_lib_schema404.EntityScalarField;
52
- createdBy: _lssm_lib_schema404.EntityScalarField;
53
- createdAt: _lssm_lib_schema404.EntityScalarField;
54
- file: _lssm_lib_schema404.EntityRelationField;
43
+ declare const FileVersionEntity: _lssm_lib_schema288.EntitySpec<{
44
+ id: _lssm_lib_schema288.EntityScalarField;
45
+ fileId: _lssm_lib_schema288.EntityScalarField;
46
+ version: _lssm_lib_schema288.EntityScalarField;
47
+ size: _lssm_lib_schema288.EntityScalarField;
48
+ storagePath: _lssm_lib_schema288.EntityScalarField;
49
+ checksum: _lssm_lib_schema288.EntityScalarField;
50
+ comment: _lssm_lib_schema288.EntityScalarField;
51
+ changes: _lssm_lib_schema288.EntityScalarField;
52
+ createdBy: _lssm_lib_schema288.EntityScalarField;
53
+ createdAt: _lssm_lib_schema288.EntityScalarField;
54
+ file: _lssm_lib_schema288.EntityRelationField;
55
55
  }>;
56
56
  /**
57
57
  * Attachment entity - polymorphic link between files and entities.
58
58
  */
59
- declare const AttachmentEntity: _lssm_lib_schema404.EntitySpec<{
60
- id: _lssm_lib_schema404.EntityScalarField;
61
- fileId: _lssm_lib_schema404.EntityScalarField;
62
- entityType: _lssm_lib_schema404.EntityScalarField;
63
- entityId: _lssm_lib_schema404.EntityScalarField;
64
- attachmentType: _lssm_lib_schema404.EntityScalarField;
65
- name: _lssm_lib_schema404.EntityScalarField;
66
- description: _lssm_lib_schema404.EntityScalarField;
67
- order: _lssm_lib_schema404.EntityScalarField;
68
- metadata: _lssm_lib_schema404.EntityScalarField;
69
- createdBy: _lssm_lib_schema404.EntityScalarField;
70
- createdAt: _lssm_lib_schema404.EntityScalarField;
71
- updatedAt: _lssm_lib_schema404.EntityScalarField;
72
- file: _lssm_lib_schema404.EntityRelationField;
59
+ declare const AttachmentEntity: _lssm_lib_schema288.EntitySpec<{
60
+ id: _lssm_lib_schema288.EntityScalarField;
61
+ fileId: _lssm_lib_schema288.EntityScalarField;
62
+ entityType: _lssm_lib_schema288.EntityScalarField;
63
+ entityId: _lssm_lib_schema288.EntityScalarField;
64
+ attachmentType: _lssm_lib_schema288.EntityScalarField;
65
+ name: _lssm_lib_schema288.EntityScalarField;
66
+ description: _lssm_lib_schema288.EntityScalarField;
67
+ order: _lssm_lib_schema288.EntityScalarField;
68
+ metadata: _lssm_lib_schema288.EntityScalarField;
69
+ createdBy: _lssm_lib_schema288.EntityScalarField;
70
+ createdAt: _lssm_lib_schema288.EntityScalarField;
71
+ updatedAt: _lssm_lib_schema288.EntityScalarField;
72
+ file: _lssm_lib_schema288.EntityRelationField;
73
73
  }>;
74
74
  /**
75
75
  * UploadSession entity - tracks multipart uploads.
76
76
  */
77
- declare const UploadSessionEntity: _lssm_lib_schema404.EntitySpec<{
78
- id: _lssm_lib_schema404.EntityScalarField;
79
- fileName: _lssm_lib_schema404.EntityScalarField;
80
- mimeType: _lssm_lib_schema404.EntityScalarField;
81
- totalSize: _lssm_lib_schema404.EntityScalarField;
82
- uploadId: _lssm_lib_schema404.EntityScalarField;
83
- uploadedBytes: _lssm_lib_schema404.EntityScalarField;
84
- uploadedParts: _lssm_lib_schema404.EntityScalarField;
85
- status: _lssm_lib_schema404.EntityScalarField;
86
- error: _lssm_lib_schema404.EntityScalarField;
87
- fileId: _lssm_lib_schema404.EntityScalarField;
88
- ownerId: _lssm_lib_schema404.EntityScalarField;
89
- orgId: _lssm_lib_schema404.EntityScalarField;
90
- expiresAt: _lssm_lib_schema404.EntityScalarField;
91
- createdAt: _lssm_lib_schema404.EntityScalarField;
92
- updatedAt: _lssm_lib_schema404.EntityScalarField;
77
+ declare const UploadSessionEntity: _lssm_lib_schema288.EntitySpec<{
78
+ id: _lssm_lib_schema288.EntityScalarField;
79
+ fileName: _lssm_lib_schema288.EntityScalarField;
80
+ mimeType: _lssm_lib_schema288.EntityScalarField;
81
+ totalSize: _lssm_lib_schema288.EntityScalarField;
82
+ uploadId: _lssm_lib_schema288.EntityScalarField;
83
+ uploadedBytes: _lssm_lib_schema288.EntityScalarField;
84
+ uploadedParts: _lssm_lib_schema288.EntityScalarField;
85
+ status: _lssm_lib_schema288.EntityScalarField;
86
+ error: _lssm_lib_schema288.EntityScalarField;
87
+ fileId: _lssm_lib_schema288.EntityScalarField;
88
+ ownerId: _lssm_lib_schema288.EntityScalarField;
89
+ orgId: _lssm_lib_schema288.EntityScalarField;
90
+ expiresAt: _lssm_lib_schema288.EntityScalarField;
91
+ createdAt: _lssm_lib_schema288.EntityScalarField;
92
+ updatedAt: _lssm_lib_schema288.EntityScalarField;
93
93
  }>;
94
94
  /**
95
95
  * All file entities for schema composition.
96
96
  */
97
- declare const fileEntities: (_lssm_lib_schema404.EntitySpec<{
98
- id: _lssm_lib_schema404.EntityScalarField;
99
- name: _lssm_lib_schema404.EntityScalarField;
100
- mimeType: _lssm_lib_schema404.EntityScalarField;
101
- size: _lssm_lib_schema404.EntityScalarField;
102
- storageProvider: _lssm_lib_schema404.EntityEnumField;
103
- storagePath: _lssm_lib_schema404.EntityScalarField;
104
- storageKey: _lssm_lib_schema404.EntityScalarField;
105
- checksum: _lssm_lib_schema404.EntityScalarField;
106
- etag: _lssm_lib_schema404.EntityScalarField;
107
- status: _lssm_lib_schema404.EntityEnumField;
108
- isPublic: _lssm_lib_schema404.EntityScalarField;
109
- expiresAt: _lssm_lib_schema404.EntityScalarField;
110
- ownerId: _lssm_lib_schema404.EntityScalarField;
111
- orgId: _lssm_lib_schema404.EntityScalarField;
112
- metadata: _lssm_lib_schema404.EntityScalarField;
113
- tags: _lssm_lib_schema404.EntityScalarField;
114
- width: _lssm_lib_schema404.EntityScalarField;
115
- height: _lssm_lib_schema404.EntityScalarField;
116
- createdAt: _lssm_lib_schema404.EntityScalarField;
117
- updatedAt: _lssm_lib_schema404.EntityScalarField;
118
- versions: _lssm_lib_schema404.EntityRelationField;
119
- attachments: _lssm_lib_schema404.EntityRelationField;
120
- }> | _lssm_lib_schema404.EntitySpec<{
121
- id: _lssm_lib_schema404.EntityScalarField;
122
- fileId: _lssm_lib_schema404.EntityScalarField;
123
- version: _lssm_lib_schema404.EntityScalarField;
124
- size: _lssm_lib_schema404.EntityScalarField;
125
- storagePath: _lssm_lib_schema404.EntityScalarField;
126
- checksum: _lssm_lib_schema404.EntityScalarField;
127
- comment: _lssm_lib_schema404.EntityScalarField;
128
- changes: _lssm_lib_schema404.EntityScalarField;
129
- createdBy: _lssm_lib_schema404.EntityScalarField;
130
- createdAt: _lssm_lib_schema404.EntityScalarField;
131
- file: _lssm_lib_schema404.EntityRelationField;
132
- }> | _lssm_lib_schema404.EntitySpec<{
133
- id: _lssm_lib_schema404.EntityScalarField;
134
- fileId: _lssm_lib_schema404.EntityScalarField;
135
- entityType: _lssm_lib_schema404.EntityScalarField;
136
- entityId: _lssm_lib_schema404.EntityScalarField;
137
- attachmentType: _lssm_lib_schema404.EntityScalarField;
138
- name: _lssm_lib_schema404.EntityScalarField;
139
- description: _lssm_lib_schema404.EntityScalarField;
140
- order: _lssm_lib_schema404.EntityScalarField;
141
- metadata: _lssm_lib_schema404.EntityScalarField;
142
- createdBy: _lssm_lib_schema404.EntityScalarField;
143
- createdAt: _lssm_lib_schema404.EntityScalarField;
144
- updatedAt: _lssm_lib_schema404.EntityScalarField;
145
- file: _lssm_lib_schema404.EntityRelationField;
146
- }> | _lssm_lib_schema404.EntitySpec<{
147
- id: _lssm_lib_schema404.EntityScalarField;
148
- fileName: _lssm_lib_schema404.EntityScalarField;
149
- mimeType: _lssm_lib_schema404.EntityScalarField;
150
- totalSize: _lssm_lib_schema404.EntityScalarField;
151
- uploadId: _lssm_lib_schema404.EntityScalarField;
152
- uploadedBytes: _lssm_lib_schema404.EntityScalarField;
153
- uploadedParts: _lssm_lib_schema404.EntityScalarField;
154
- status: _lssm_lib_schema404.EntityScalarField;
155
- error: _lssm_lib_schema404.EntityScalarField;
156
- fileId: _lssm_lib_schema404.EntityScalarField;
157
- ownerId: _lssm_lib_schema404.EntityScalarField;
158
- orgId: _lssm_lib_schema404.EntityScalarField;
159
- expiresAt: _lssm_lib_schema404.EntityScalarField;
160
- createdAt: _lssm_lib_schema404.EntityScalarField;
161
- updatedAt: _lssm_lib_schema404.EntityScalarField;
97
+ declare const fileEntities: (_lssm_lib_schema288.EntitySpec<{
98
+ id: _lssm_lib_schema288.EntityScalarField;
99
+ name: _lssm_lib_schema288.EntityScalarField;
100
+ mimeType: _lssm_lib_schema288.EntityScalarField;
101
+ size: _lssm_lib_schema288.EntityScalarField;
102
+ storageProvider: _lssm_lib_schema288.EntityEnumField;
103
+ storagePath: _lssm_lib_schema288.EntityScalarField;
104
+ storageKey: _lssm_lib_schema288.EntityScalarField;
105
+ checksum: _lssm_lib_schema288.EntityScalarField;
106
+ etag: _lssm_lib_schema288.EntityScalarField;
107
+ status: _lssm_lib_schema288.EntityEnumField;
108
+ isPublic: _lssm_lib_schema288.EntityScalarField;
109
+ expiresAt: _lssm_lib_schema288.EntityScalarField;
110
+ ownerId: _lssm_lib_schema288.EntityScalarField;
111
+ orgId: _lssm_lib_schema288.EntityScalarField;
112
+ metadata: _lssm_lib_schema288.EntityScalarField;
113
+ tags: _lssm_lib_schema288.EntityScalarField;
114
+ width: _lssm_lib_schema288.EntityScalarField;
115
+ height: _lssm_lib_schema288.EntityScalarField;
116
+ createdAt: _lssm_lib_schema288.EntityScalarField;
117
+ updatedAt: _lssm_lib_schema288.EntityScalarField;
118
+ versions: _lssm_lib_schema288.EntityRelationField;
119
+ attachments: _lssm_lib_schema288.EntityRelationField;
120
+ }> | _lssm_lib_schema288.EntitySpec<{
121
+ id: _lssm_lib_schema288.EntityScalarField;
122
+ fileId: _lssm_lib_schema288.EntityScalarField;
123
+ version: _lssm_lib_schema288.EntityScalarField;
124
+ size: _lssm_lib_schema288.EntityScalarField;
125
+ storagePath: _lssm_lib_schema288.EntityScalarField;
126
+ checksum: _lssm_lib_schema288.EntityScalarField;
127
+ comment: _lssm_lib_schema288.EntityScalarField;
128
+ changes: _lssm_lib_schema288.EntityScalarField;
129
+ createdBy: _lssm_lib_schema288.EntityScalarField;
130
+ createdAt: _lssm_lib_schema288.EntityScalarField;
131
+ file: _lssm_lib_schema288.EntityRelationField;
132
+ }> | _lssm_lib_schema288.EntitySpec<{
133
+ id: _lssm_lib_schema288.EntityScalarField;
134
+ fileId: _lssm_lib_schema288.EntityScalarField;
135
+ entityType: _lssm_lib_schema288.EntityScalarField;
136
+ entityId: _lssm_lib_schema288.EntityScalarField;
137
+ attachmentType: _lssm_lib_schema288.EntityScalarField;
138
+ name: _lssm_lib_schema288.EntityScalarField;
139
+ description: _lssm_lib_schema288.EntityScalarField;
140
+ order: _lssm_lib_schema288.EntityScalarField;
141
+ metadata: _lssm_lib_schema288.EntityScalarField;
142
+ createdBy: _lssm_lib_schema288.EntityScalarField;
143
+ createdAt: _lssm_lib_schema288.EntityScalarField;
144
+ updatedAt: _lssm_lib_schema288.EntityScalarField;
145
+ file: _lssm_lib_schema288.EntityRelationField;
146
+ }> | _lssm_lib_schema288.EntitySpec<{
147
+ id: _lssm_lib_schema288.EntityScalarField;
148
+ fileName: _lssm_lib_schema288.EntityScalarField;
149
+ mimeType: _lssm_lib_schema288.EntityScalarField;
150
+ totalSize: _lssm_lib_schema288.EntityScalarField;
151
+ uploadId: _lssm_lib_schema288.EntityScalarField;
152
+ uploadedBytes: _lssm_lib_schema288.EntityScalarField;
153
+ uploadedParts: _lssm_lib_schema288.EntityScalarField;
154
+ status: _lssm_lib_schema288.EntityScalarField;
155
+ error: _lssm_lib_schema288.EntityScalarField;
156
+ fileId: _lssm_lib_schema288.EntityScalarField;
157
+ ownerId: _lssm_lib_schema288.EntityScalarField;
158
+ orgId: _lssm_lib_schema288.EntityScalarField;
159
+ expiresAt: _lssm_lib_schema288.EntityScalarField;
160
+ createdAt: _lssm_lib_schema288.EntityScalarField;
161
+ updatedAt: _lssm_lib_schema288.EntityScalarField;
162
162
  }>)[];
163
163
  /**
164
164
  * Module schema contribution for files.
@@ -1 +1 @@
1
- import{defineEntity as e,defineEntityEnum as t,field as n,index as r}from"@lssm/lib.schema";const i=t({name:`StorageProvider`,values:[`LOCAL`,`S3`,`GCS`,`AZURE`,`CLOUDFLARE`],schema:`lssm_files`,description:`Storage backend provider.`}),a=t({name:`FileStatus`,values:[`PENDING`,`UPLOADED`,`PROCESSING`,`READY`,`ERROR`,`DELETED`],schema:`lssm_files`,description:`File processing status.`}),o=e({name:`File`,description:`An uploaded file.`,schema:`lssm_files`,map:`file`,fields:{id:n.id({description:`Unique file identifier`}),name:n.string({description:`Original file name`}),mimeType:n.string({description:`MIME type`}),size:n.int({description:`File size in bytes`}),storageProvider:n.enum(`StorageProvider`,{default:`LOCAL`,description:`Storage backend`}),storagePath:n.string({description:`Path in storage backend`}),storageKey:n.string({isOptional:!0,description:`Storage key/bucket`}),checksum:n.string({isOptional:!0,description:`SHA-256 checksum`}),etag:n.string({isOptional:!0,description:`Storage ETag`}),status:n.enum(`FileStatus`,{default:`PENDING`,description:`File status`}),isPublic:n.boolean({default:!1,description:`Whether file is publicly accessible`}),expiresAt:n.dateTime({isOptional:!0,description:`Auto-delete timestamp`}),ownerId:n.string({description:`User who uploaded`}),orgId:n.string({isOptional:!0,description:`Organization scope`}),metadata:n.json({isOptional:!0,description:`Additional metadata`}),tags:n.json({isOptional:!0,description:`Tags for categorization`}),width:n.int({isOptional:!0,description:`Image width in pixels`}),height:n.int({isOptional:!0,description:`Image height in pixels`}),createdAt:n.createdAt(),updatedAt:n.updatedAt(),versions:n.hasMany(`FileVersion`),attachments:n.hasMany(`Attachment`)},indexes:[r.on([`ownerId`]),r.on([`orgId`]),r.on([`status`]),r.on([`mimeType`]),r.on([`storageProvider`,`storagePath`])],enums:[i,a]}),s=e({name:`FileVersion`,description:`A version of a file.`,schema:`lssm_files`,map:`file_version`,fields:{id:n.id({description:`Unique version identifier`}),fileId:n.foreignKey({description:`Parent file`}),version:n.int({description:`Version number`}),size:n.int({description:`Version size in bytes`}),storagePath:n.string({description:`Path in storage backend`}),checksum:n.string({isOptional:!0,description:`SHA-256 checksum`}),comment:n.string({isOptional:!0,description:`Version comment`}),changes:n.json({isOptional:!0,description:`Change description`}),createdBy:n.string({description:`User who created version`}),createdAt:n.createdAt(),file:n.belongsTo(`File`,[`fileId`],[`id`],{onDelete:`Cascade`})},indexes:[r.on([`fileId`,`version`]),r.unique([`fileId`,`version`],{name:`file_version_unique`})]}),c=e({name:`Attachment`,description:`Links a file to an entity.`,schema:`lssm_files`,map:`attachment`,fields:{id:n.id({description:`Unique attachment identifier`}),fileId:n.foreignKey({description:`Attached file`}),entityType:n.string({description:`Target entity type (deal, listing, etc.)`}),entityId:n.string({description:`Target entity ID`}),attachmentType:n.string({isOptional:!0,description:`Type of attachment (document, image, avatar, etc.)`}),name:n.string({isOptional:!0,description:`Display name (overrides file name)`}),description:n.string({isOptional:!0,description:`Attachment description`}),order:n.int({default:0,description:`Display order`}),metadata:n.json({isOptional:!0,description:`Attachment-specific metadata`}),createdBy:n.string({description:`User who created attachment`}),createdAt:n.createdAt(),updatedAt:n.updatedAt(),file:n.belongsTo(`File`,[`fileId`],[`id`],{onDelete:`Cascade`})},indexes:[r.on([`entityType`,`entityId`]),r.on([`fileId`]),r.on([`entityType`,`entityId`,`attachmentType`]),r.unique([`fileId`,`entityType`,`entityId`],{name:`attachment_unique`})]}),l=e({name:`UploadSession`,description:`Tracks a multipart upload session.`,schema:`lssm_files`,map:`upload_session`,fields:{id:n.id({description:`Unique session identifier`}),fileName:n.string({description:`Target file name`}),mimeType:n.string({description:`Expected MIME type`}),totalSize:n.int({description:`Total file size`}),uploadId:n.string({isOptional:!0,description:`Storage upload ID`}),uploadedBytes:n.int({default:0,description:`Bytes uploaded so far`}),uploadedParts:n.json({isOptional:!0,description:`Completed part info`}),status:n.string({default:`"pending"`,description:`Session status`}),error:n.string({isOptional:!0,description:`Error message if failed`}),fileId:n.string({isOptional:!0,description:`Resulting file ID`}),ownerId:n.string({description:`User who initiated upload`}),orgId:n.string({isOptional:!0,description:`Organization scope`}),expiresAt:n.dateTime({description:`Session expiry time`}),createdAt:n.createdAt(),updatedAt:n.updatedAt()},indexes:[r.on([`status`,`expiresAt`]),r.on([`ownerId`])]}),u=[o,s,c,l],d={moduleId:`@lssm/lib.files`,entities:u,enums:[i,a]};export{c as AttachmentEntity,o as FileEntity,a as FileStatusEnum,s as FileVersionEntity,i as StorageProviderEnum,l as UploadSessionEntity,u as fileEntities,d as filesSchemaContribution};
1
+ import{i as e,n as t,r as n,t as r}from"../schema/dist/entity/defineEntity.js";import"../schema/dist/index.js";const i=t({name:`StorageProvider`,values:[`LOCAL`,`S3`,`GCS`,`AZURE`,`CLOUDFLARE`],schema:`lssm_files`,description:`Storage backend provider.`}),a=t({name:`FileStatus`,values:[`PENDING`,`UPLOADED`,`PROCESSING`,`READY`,`ERROR`,`DELETED`],schema:`lssm_files`,description:`File processing status.`}),o=r({name:`File`,description:`An uploaded file.`,schema:`lssm_files`,map:`file`,fields:{id:n.id({description:`Unique file identifier`}),name:n.string({description:`Original file name`}),mimeType:n.string({description:`MIME type`}),size:n.int({description:`File size in bytes`}),storageProvider:n.enum(`StorageProvider`,{default:`LOCAL`,description:`Storage backend`}),storagePath:n.string({description:`Path in storage backend`}),storageKey:n.string({isOptional:!0,description:`Storage key/bucket`}),checksum:n.string({isOptional:!0,description:`SHA-256 checksum`}),etag:n.string({isOptional:!0,description:`Storage ETag`}),status:n.enum(`FileStatus`,{default:`PENDING`,description:`File status`}),isPublic:n.boolean({default:!1,description:`Whether file is publicly accessible`}),expiresAt:n.dateTime({isOptional:!0,description:`Auto-delete timestamp`}),ownerId:n.string({description:`User who uploaded`}),orgId:n.string({isOptional:!0,description:`Organization scope`}),metadata:n.json({isOptional:!0,description:`Additional metadata`}),tags:n.json({isOptional:!0,description:`Tags for categorization`}),width:n.int({isOptional:!0,description:`Image width in pixels`}),height:n.int({isOptional:!0,description:`Image height in pixels`}),createdAt:n.createdAt(),updatedAt:n.updatedAt(),versions:n.hasMany(`FileVersion`),attachments:n.hasMany(`Attachment`)},indexes:[e.on([`ownerId`]),e.on([`orgId`]),e.on([`status`]),e.on([`mimeType`]),e.on([`storageProvider`,`storagePath`])],enums:[i,a]}),s=r({name:`FileVersion`,description:`A version of a file.`,schema:`lssm_files`,map:`file_version`,fields:{id:n.id({description:`Unique version identifier`}),fileId:n.foreignKey({description:`Parent file`}),version:n.int({description:`Version number`}),size:n.int({description:`Version size in bytes`}),storagePath:n.string({description:`Path in storage backend`}),checksum:n.string({isOptional:!0,description:`SHA-256 checksum`}),comment:n.string({isOptional:!0,description:`Version comment`}),changes:n.json({isOptional:!0,description:`Change description`}),createdBy:n.string({description:`User who created version`}),createdAt:n.createdAt(),file:n.belongsTo(`File`,[`fileId`],[`id`],{onDelete:`Cascade`})},indexes:[e.on([`fileId`,`version`]),e.unique([`fileId`,`version`],{name:`file_version_unique`})]}),c=r({name:`Attachment`,description:`Links a file to an entity.`,schema:`lssm_files`,map:`attachment`,fields:{id:n.id({description:`Unique attachment identifier`}),fileId:n.foreignKey({description:`Attached file`}),entityType:n.string({description:`Target entity type (deal, listing, etc.)`}),entityId:n.string({description:`Target entity ID`}),attachmentType:n.string({isOptional:!0,description:`Type of attachment (document, image, avatar, etc.)`}),name:n.string({isOptional:!0,description:`Display name (overrides file name)`}),description:n.string({isOptional:!0,description:`Attachment description`}),order:n.int({default:0,description:`Display order`}),metadata:n.json({isOptional:!0,description:`Attachment-specific metadata`}),createdBy:n.string({description:`User who created attachment`}),createdAt:n.createdAt(),updatedAt:n.updatedAt(),file:n.belongsTo(`File`,[`fileId`],[`id`],{onDelete:`Cascade`})},indexes:[e.on([`entityType`,`entityId`]),e.on([`fileId`]),e.on([`entityType`,`entityId`,`attachmentType`]),e.unique([`fileId`,`entityType`,`entityId`],{name:`attachment_unique`})]}),l=r({name:`UploadSession`,description:`Tracks a multipart upload session.`,schema:`lssm_files`,map:`upload_session`,fields:{id:n.id({description:`Unique session identifier`}),fileName:n.string({description:`Target file name`}),mimeType:n.string({description:`Expected MIME type`}),totalSize:n.int({description:`Total file size`}),uploadId:n.string({isOptional:!0,description:`Storage upload ID`}),uploadedBytes:n.int({default:0,description:`Bytes uploaded so far`}),uploadedParts:n.json({isOptional:!0,description:`Completed part info`}),status:n.string({default:`"pending"`,description:`Session status`}),error:n.string({isOptional:!0,description:`Error message if failed`}),fileId:n.string({isOptional:!0,description:`Resulting file ID`}),ownerId:n.string({description:`User who initiated upload`}),orgId:n.string({isOptional:!0,description:`Organization scope`}),expiresAt:n.dateTime({description:`Session expiry time`}),createdAt:n.createdAt(),updatedAt:n.updatedAt()},indexes:[e.on([`status`,`expiresAt`]),e.on([`ownerId`])]}),u=[o,s,c,l],d={moduleId:`@lssm/lib.files`,entities:u,enums:[i,a]};export{c as AttachmentEntity,o as FileEntity,a as FileStatusEnum,s as FileVersionEntity,i as StorageProviderEnum,l as UploadSessionEntity,u as fileEntities,d as filesSchemaContribution};