@lssm/lib.files 0.0.0-canary-20251217080011 → 0.0.0-canary-20251219202229

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 (165) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +2 -0
  3. package/dist/contracts/dist/capabilities/openbanking.js +2 -1
  4. package/dist/contracts/dist/capabilities/openbanking.js.map +1 -0
  5. package/dist/contracts/dist/contract-registry/schemas.js +2 -1
  6. package/dist/contracts/dist/contract-registry/schemas.js.map +1 -0
  7. package/dist/contracts/dist/docs/accessibility_wcag_compliance_specs.docblock.js +2 -1
  8. package/dist/contracts/dist/docs/accessibility_wcag_compliance_specs.docblock.js.map +1 -0
  9. package/dist/contracts/dist/docs/index.js +2 -6
  10. package/dist/contracts/dist/docs/meta.docs.js +30 -0
  11. package/dist/contracts/dist/docs/meta.docs.js.map +1 -0
  12. package/dist/contracts/dist/docs/presentations.js +2 -1
  13. package/dist/contracts/dist/docs/presentations.js.map +1 -0
  14. package/dist/contracts/dist/docs/registry.js +2 -1
  15. package/dist/contracts/dist/docs/registry.js.map +1 -0
  16. package/dist/contracts/dist/docs/tech/auth/better-auth-nextjs.docblock.js +2 -1
  17. package/dist/contracts/dist/docs/tech/auth/better-auth-nextjs.docblock.js.map +1 -0
  18. package/dist/contracts/dist/docs/tech/contracts/openapi-export.docblock.js +2 -1
  19. package/dist/contracts/dist/docs/tech/contracts/openapi-export.docblock.js.map +1 -0
  20. package/dist/contracts/dist/docs/tech/lifecycle-stage-system.docblock.js +2 -1
  21. package/dist/contracts/dist/docs/tech/lifecycle-stage-system.docblock.js.map +1 -0
  22. package/dist/contracts/dist/docs/tech/llm/llm-integration.docblock.js +2 -1
  23. package/dist/contracts/dist/docs/tech/llm/llm-integration.docblock.js.map +1 -0
  24. package/dist/contracts/dist/docs/tech/mcp-endpoints.docblock.js +2 -1
  25. package/dist/contracts/dist/docs/tech/mcp-endpoints.docblock.js.map +1 -0
  26. package/dist/contracts/dist/docs/tech/presentation-runtime.docblock.js +2 -1
  27. package/dist/contracts/dist/docs/tech/presentation-runtime.docblock.js.map +1 -0
  28. package/dist/contracts/dist/docs/tech/schema/README.docblock.js +2 -1
  29. package/dist/contracts/dist/docs/tech/schema/README.docblock.js.map +1 -0
  30. package/dist/contracts/dist/docs/tech/studio/learning-events.docblock.js +2 -1
  31. package/dist/contracts/dist/docs/tech/studio/learning-events.docblock.js.map +1 -0
  32. package/dist/contracts/dist/docs/tech/studio/learning-journeys.docblock.js +2 -1
  33. package/dist/contracts/dist/docs/tech/studio/learning-journeys.docblock.js.map +1 -0
  34. package/dist/contracts/dist/docs/tech/studio/platform-admin-panel.docblock.js +2 -1
  35. package/dist/contracts/dist/docs/tech/studio/platform-admin-panel.docblock.js.map +1 -0
  36. package/dist/contracts/dist/docs/tech/studio/project-access-teams.docblock.js +2 -1
  37. package/dist/contracts/dist/docs/tech/studio/project-access-teams.docblock.js.map +1 -0
  38. package/dist/contracts/dist/docs/tech/studio/project-routing.docblock.js +2 -1
  39. package/dist/contracts/dist/docs/tech/studio/project-routing.docblock.js.map +1 -0
  40. package/dist/contracts/dist/docs/tech/studio/sandbox-unlogged.docblock.js +2 -1
  41. package/dist/contracts/dist/docs/tech/studio/sandbox-unlogged.docblock.js.map +1 -0
  42. package/dist/contracts/dist/docs/tech/studio/team-invitations.docblock.js +2 -1
  43. package/dist/contracts/dist/docs/tech/studio/team-invitations.docblock.js.map +1 -0
  44. package/dist/contracts/dist/docs/tech/studio/workspace-ops.docblock.js +2 -1
  45. package/dist/contracts/dist/docs/tech/studio/workspace-ops.docblock.js.map +1 -0
  46. package/dist/contracts/dist/docs/tech/studio/workspaces.docblock.js +2 -1
  47. package/dist/contracts/dist/docs/tech/studio/workspaces.docblock.js.map +1 -0
  48. package/dist/contracts/dist/docs/tech/telemetry-ingest.docblock.js +2 -1
  49. package/dist/contracts/dist/docs/tech/telemetry-ingest.docblock.js.map +1 -0
  50. package/dist/contracts/dist/docs/tech/templates/runtime.docblock.js +2 -1
  51. package/dist/contracts/dist/docs/tech/templates/runtime.docblock.js.map +1 -0
  52. package/dist/contracts/dist/docs/tech/vscode-extension.docblock.js +2 -1
  53. package/dist/contracts/dist/docs/tech/vscode-extension.docblock.js.map +1 -0
  54. package/dist/contracts/dist/docs/tech/workflows/overview.docblock.js +2 -1
  55. package/dist/contracts/dist/docs/tech/workflows/overview.docblock.js.map +1 -0
  56. package/dist/contracts/dist/docs/tech-contracts.docs.js +97 -0
  57. package/dist/contracts/dist/docs/tech-contracts.docs.js.map +1 -0
  58. package/dist/contracts/dist/events.js +2 -1
  59. package/dist/contracts/dist/events.js.map +1 -0
  60. package/dist/contracts/dist/index.js +2 -1
  61. package/dist/contracts/dist/integrations/contracts.js +65 -66
  62. package/dist/contracts/dist/integrations/contracts.js.map +1 -0
  63. package/dist/contracts/dist/integrations/openbanking/contracts/accounts.js +31 -32
  64. package/dist/contracts/dist/integrations/openbanking/contracts/accounts.js.map +1 -0
  65. package/dist/contracts/dist/integrations/openbanking/contracts/balances.js +18 -19
  66. package/dist/contracts/dist/integrations/openbanking/contracts/balances.js.map +1 -0
  67. package/dist/contracts/dist/integrations/openbanking/contracts/transactions.js +32 -33
  68. package/dist/contracts/dist/integrations/openbanking/contracts/transactions.js.map +1 -0
  69. package/dist/contracts/dist/integrations/openbanking/models.js +60 -61
  70. package/dist/contracts/dist/integrations/openbanking/models.js.map +1 -0
  71. package/dist/contracts/dist/integrations/openbanking/telemetry.js +2 -1
  72. package/dist/contracts/dist/integrations/openbanking/telemetry.js.map +1 -0
  73. package/dist/contracts/dist/integrations/providers/elevenlabs.js +2 -1
  74. package/dist/contracts/dist/integrations/providers/elevenlabs.js.map +1 -0
  75. package/dist/contracts/dist/integrations/providers/gcs-storage.js +2 -1
  76. package/dist/contracts/dist/integrations/providers/gcs-storage.js.map +1 -0
  77. package/dist/contracts/dist/integrations/providers/gmail.js +2 -1
  78. package/dist/contracts/dist/integrations/providers/gmail.js.map +1 -0
  79. package/dist/contracts/dist/integrations/providers/google-calendar.js +2 -1
  80. package/dist/contracts/dist/integrations/providers/google-calendar.js.map +1 -0
  81. package/dist/contracts/dist/integrations/providers/mistral.js +2 -1
  82. package/dist/contracts/dist/integrations/providers/mistral.js.map +1 -0
  83. package/dist/contracts/dist/integrations/providers/postmark.js +2 -1
  84. package/dist/contracts/dist/integrations/providers/postmark.js.map +1 -0
  85. package/dist/contracts/dist/integrations/providers/powens.js +2 -1
  86. package/dist/contracts/dist/integrations/providers/powens.js.map +1 -0
  87. package/dist/contracts/dist/integrations/providers/qdrant.js +2 -1
  88. package/dist/contracts/dist/integrations/providers/qdrant.js.map +1 -0
  89. package/dist/contracts/dist/integrations/providers/stripe.js +2 -1
  90. package/dist/contracts/dist/integrations/providers/stripe.js.map +1 -0
  91. package/dist/contracts/dist/integrations/providers/twilio-sms.js +2 -1
  92. package/dist/contracts/dist/integrations/providers/twilio-sms.js.map +1 -0
  93. package/dist/contracts/dist/knowledge/contracts.js +44 -45
  94. package/dist/contracts/dist/knowledge/contracts.js.map +1 -0
  95. package/dist/contracts/dist/knowledge/spaces/email-threads.js +2 -1
  96. package/dist/contracts/dist/knowledge/spaces/email-threads.js.map +1 -0
  97. package/dist/contracts/dist/knowledge/spaces/financial-docs.js +2 -1
  98. package/dist/contracts/dist/knowledge/spaces/financial-docs.js.map +1 -0
  99. package/dist/contracts/dist/knowledge/spaces/financial-overview.js +2 -1
  100. package/dist/contracts/dist/knowledge/spaces/financial-overview.js.map +1 -0
  101. package/dist/contracts/dist/knowledge/spaces/product-canon.js +2 -1
  102. package/dist/contracts/dist/knowledge/spaces/product-canon.js.map +1 -0
  103. package/dist/contracts/dist/knowledge/spaces/support-faq.js +2 -1
  104. package/dist/contracts/dist/knowledge/spaces/support-faq.js.map +1 -0
  105. package/dist/contracts/dist/knowledge/spaces/uploaded-docs.js +2 -1
  106. package/dist/contracts/dist/knowledge/spaces/uploaded-docs.js.map +1 -0
  107. package/dist/contracts/dist/llm/exporters.js +2 -1
  108. package/dist/contracts/dist/llm/exporters.js.map +1 -0
  109. package/dist/contracts/dist/onboarding-base.js +22 -23
  110. package/dist/contracts/dist/onboarding-base.js.map +1 -0
  111. package/dist/contracts/dist/ownership.js +4 -2
  112. package/dist/contracts/dist/ownership.js.map +1 -0
  113. package/dist/contracts/dist/presentations.v2.js +2 -1
  114. package/dist/contracts/dist/presentations.v2.js.map +1 -0
  115. package/dist/contracts/dist/regenerator/service.js +2 -1
  116. package/dist/contracts/dist/regenerator/service.js.map +1 -0
  117. package/dist/contracts/dist/schema/dist/index.js +3873 -6
  118. package/dist/contracts/dist/schema/dist/index.js.map +1 -0
  119. package/dist/contracts/dist/spec.js +2 -1
  120. package/dist/contracts/dist/spec.js.map +1 -0
  121. package/dist/contracts/index.d.ts +292 -291
  122. package/dist/contracts/index.d.ts.map +1 -0
  123. package/dist/contracts/index.js +115 -116
  124. package/dist/contracts/index.js.map +1 -0
  125. package/dist/docs/files.docblock.js +2 -1
  126. package/dist/docs/files.docblock.js.map +1 -0
  127. package/dist/entities/index.d.ts +135 -134
  128. package/dist/entities/index.d.ts.map +1 -0
  129. package/dist/entities/index.js +81 -81
  130. package/dist/entities/index.js.map +1 -0
  131. package/dist/events.d.ts +2 -1
  132. package/dist/events.d.ts.map +1 -0
  133. package/dist/events.js +61 -62
  134. package/dist/events.js.map +1 -0
  135. package/dist/files.feature.d.ts +2 -1
  136. package/dist/files.feature.d.ts.map +1 -0
  137. package/dist/files.feature.js +2 -1
  138. package/dist/files.feature.js.map +1 -0
  139. package/dist/schema/dist/index.js +4889 -6
  140. package/dist/schema/dist/index.js.map +1 -0
  141. package/dist/storage/index.d.ts +2 -1
  142. package/dist/storage/index.d.ts.map +1 -0
  143. package/dist/storage/index.js +2 -1
  144. package/dist/storage/index.js.map +1 -0
  145. package/package.json +7 -6
  146. package/dist/contracts/dist/docs/PUBLISHING.docblock.js +0 -16
  147. package/dist/contracts/dist/docs/tech/PHASE_1_QUICKSTART.docblock.js +0 -16
  148. package/dist/contracts/dist/docs/tech/PHASE_2_AI_NATIVE_OPERATIONS.docblock.js +0 -16
  149. package/dist/contracts/dist/docs/tech/PHASE_3_AUTO_EVOLUTION.docblock.js +0 -16
  150. package/dist/contracts/dist/docs/tech/PHASE_4_PERSONALIZATION_ENGINE.docblock.js +0 -16
  151. package/dist/contracts/dist/docs/tech/PHASE_5_ZERO_TOUCH_OPERATIONS.docblock.js +0 -16
  152. package/dist/contracts/dist/schema/dist/EnumType.js +0 -2
  153. package/dist/contracts/dist/schema/dist/FieldType.js +0 -49
  154. package/dist/contracts/dist/schema/dist/ScalarTypeEnum.js +0 -236
  155. package/dist/contracts/dist/schema/dist/SchemaModel.js +0 -34
  156. package/dist/contracts/dist/schema/dist/entity/defineEntity.js +0 -1
  157. package/dist/contracts/dist/schema/dist/entity/index.js +0 -2
  158. package/dist/contracts/dist/schema/dist/entity/types.js +0 -1
  159. package/dist/schema/dist/EnumType.js +0 -2
  160. package/dist/schema/dist/FieldType.js +0 -49
  161. package/dist/schema/dist/ScalarTypeEnum.js +0 -236
  162. package/dist/schema/dist/SchemaModel.js +0 -39
  163. package/dist/schema/dist/entity/defineEntity.js +0 -236
  164. package/dist/schema/dist/entity/index.js +0 -2
  165. package/dist/schema/dist/entity/types.js +0 -1
@@ -1,11 +1,10 @@
1
- import { defineEntity, defineEntityEnum, field, index } from "../schema/dist/entity/defineEntity.js";
2
- import "../schema/dist/index.js";
1
+ import { L5, Z5, _5, b5 } from "../schema/dist/index.js";
3
2
 
4
3
  //#region src/entities/index.ts
5
4
  /**
6
5
  * Storage provider enum.
7
6
  */
8
- const StorageProviderEnum = defineEntityEnum({
7
+ const StorageProviderEnum = Z5({
9
8
  name: "StorageProvider",
10
9
  values: [
11
10
  "LOCAL",
@@ -20,7 +19,7 @@ const StorageProviderEnum = defineEntityEnum({
20
19
  /**
21
20
  * File status enum.
22
21
  */
23
- const FileStatusEnum = defineEntityEnum({
22
+ const FileStatusEnum = Z5({
24
23
  name: "FileStatus",
25
24
  values: [
26
25
  "PENDING",
@@ -36,159 +35,159 @@ const FileStatusEnum = defineEntityEnum({
36
35
  /**
37
36
  * File entity - represents an uploaded file.
38
37
  */
39
- const FileEntity = defineEntity({
38
+ const FileEntity = L5({
40
39
  name: "File",
41
40
  description: "An uploaded file.",
42
41
  schema: "lssm_files",
43
42
  map: "file",
44
43
  fields: {
45
- id: field.id({ description: "Unique file identifier" }),
46
- name: field.string({ description: "Original file name" }),
47
- mimeType: field.string({ description: "MIME type" }),
48
- size: field.int({ description: "File size in bytes" }),
49
- storageProvider: field.enum("StorageProvider", {
44
+ id: _5.id({ description: "Unique file identifier" }),
45
+ name: _5.string({ description: "Original file name" }),
46
+ mimeType: _5.string({ description: "MIME type" }),
47
+ size: _5.int({ description: "File size in bytes" }),
48
+ storageProvider: _5.enum("StorageProvider", {
50
49
  default: "LOCAL",
51
50
  description: "Storage backend"
52
51
  }),
53
- storagePath: field.string({ description: "Path in storage backend" }),
54
- storageKey: field.string({
52
+ storagePath: _5.string({ description: "Path in storage backend" }),
53
+ storageKey: _5.string({
55
54
  isOptional: true,
56
55
  description: "Storage key/bucket"
57
56
  }),
58
- checksum: field.string({
57
+ checksum: _5.string({
59
58
  isOptional: true,
60
59
  description: "SHA-256 checksum"
61
60
  }),
62
- etag: field.string({
61
+ etag: _5.string({
63
62
  isOptional: true,
64
63
  description: "Storage ETag"
65
64
  }),
66
- status: field.enum("FileStatus", {
65
+ status: _5.enum("FileStatus", {
67
66
  default: "PENDING",
68
67
  description: "File status"
69
68
  }),
70
- isPublic: field.boolean({
69
+ isPublic: _5.boolean({
71
70
  default: false,
72
71
  description: "Whether file is publicly accessible"
73
72
  }),
74
- expiresAt: field.dateTime({
73
+ expiresAt: _5.dateTime({
75
74
  isOptional: true,
76
75
  description: "Auto-delete timestamp"
77
76
  }),
78
- ownerId: field.string({ description: "User who uploaded" }),
79
- orgId: field.string({
77
+ ownerId: _5.string({ description: "User who uploaded" }),
78
+ orgId: _5.string({
80
79
  isOptional: true,
81
80
  description: "Organization scope"
82
81
  }),
83
- metadata: field.json({
82
+ metadata: _5.json({
84
83
  isOptional: true,
85
84
  description: "Additional metadata"
86
85
  }),
87
- tags: field.json({
86
+ tags: _5.json({
88
87
  isOptional: true,
89
88
  description: "Tags for categorization"
90
89
  }),
91
- width: field.int({
90
+ width: _5.int({
92
91
  isOptional: true,
93
92
  description: "Image width in pixels"
94
93
  }),
95
- height: field.int({
94
+ height: _5.int({
96
95
  isOptional: true,
97
96
  description: "Image height in pixels"
98
97
  }),
99
- createdAt: field.createdAt(),
100
- updatedAt: field.updatedAt(),
101
- versions: field.hasMany("FileVersion"),
102
- attachments: field.hasMany("Attachment")
98
+ createdAt: _5.createdAt(),
99
+ updatedAt: _5.updatedAt(),
100
+ versions: _5.hasMany("FileVersion"),
101
+ attachments: _5.hasMany("Attachment")
103
102
  },
104
103
  indexes: [
105
- index.on(["ownerId"]),
106
- index.on(["orgId"]),
107
- index.on(["status"]),
108
- index.on(["mimeType"]),
109
- index.on(["storageProvider", "storagePath"])
104
+ b5.on(["ownerId"]),
105
+ b5.on(["orgId"]),
106
+ b5.on(["status"]),
107
+ b5.on(["mimeType"]),
108
+ b5.on(["storageProvider", "storagePath"])
110
109
  ],
111
110
  enums: [StorageProviderEnum, FileStatusEnum]
112
111
  });
113
112
  /**
114
113
  * FileVersion entity - version history for files.
115
114
  */
116
- const FileVersionEntity = defineEntity({
115
+ const FileVersionEntity = L5({
117
116
  name: "FileVersion",
118
117
  description: "A version of a file.",
119
118
  schema: "lssm_files",
120
119
  map: "file_version",
121
120
  fields: {
122
- id: field.id({ description: "Unique version identifier" }),
123
- fileId: field.foreignKey({ description: "Parent file" }),
124
- version: field.int({ description: "Version number" }),
125
- size: field.int({ description: "Version size in bytes" }),
126
- storagePath: field.string({ description: "Path in storage backend" }),
127
- checksum: field.string({
121
+ id: _5.id({ description: "Unique version identifier" }),
122
+ fileId: _5.foreignKey({ description: "Parent file" }),
123
+ version: _5.int({ description: "Version number" }),
124
+ size: _5.int({ description: "Version size in bytes" }),
125
+ storagePath: _5.string({ description: "Path in storage backend" }),
126
+ checksum: _5.string({
128
127
  isOptional: true,
129
128
  description: "SHA-256 checksum"
130
129
  }),
131
- comment: field.string({
130
+ comment: _5.string({
132
131
  isOptional: true,
133
132
  description: "Version comment"
134
133
  }),
135
- changes: field.json({
134
+ changes: _5.json({
136
135
  isOptional: true,
137
136
  description: "Change description"
138
137
  }),
139
- createdBy: field.string({ description: "User who created version" }),
140
- createdAt: field.createdAt(),
141
- file: field.belongsTo("File", ["fileId"], ["id"], { onDelete: "Cascade" })
138
+ createdBy: _5.string({ description: "User who created version" }),
139
+ createdAt: _5.createdAt(),
140
+ file: _5.belongsTo("File", ["fileId"], ["id"], { onDelete: "Cascade" })
142
141
  },
143
- indexes: [index.on(["fileId", "version"]), index.unique(["fileId", "version"], { name: "file_version_unique" })]
142
+ indexes: [b5.on(["fileId", "version"]), b5.unique(["fileId", "version"], { name: "file_version_unique" })]
144
143
  });
145
144
  /**
146
145
  * Attachment entity - polymorphic link between files and entities.
147
146
  */
148
- const AttachmentEntity = defineEntity({
147
+ const AttachmentEntity = L5({
149
148
  name: "Attachment",
150
149
  description: "Links a file to an entity.",
151
150
  schema: "lssm_files",
152
151
  map: "attachment",
153
152
  fields: {
154
- id: field.id({ description: "Unique attachment identifier" }),
155
- fileId: field.foreignKey({ description: "Attached file" }),
156
- entityType: field.string({ description: "Target entity type (deal, listing, etc.)" }),
157
- entityId: field.string({ description: "Target entity ID" }),
158
- attachmentType: field.string({
153
+ id: _5.id({ description: "Unique attachment identifier" }),
154
+ fileId: _5.foreignKey({ description: "Attached file" }),
155
+ entityType: _5.string({ description: "Target entity type (deal, listing, etc.)" }),
156
+ entityId: _5.string({ description: "Target entity ID" }),
157
+ attachmentType: _5.string({
159
158
  isOptional: true,
160
159
  description: "Type of attachment (document, image, avatar, etc.)"
161
160
  }),
162
- name: field.string({
161
+ name: _5.string({
163
162
  isOptional: true,
164
163
  description: "Display name (overrides file name)"
165
164
  }),
166
- description: field.string({
165
+ description: _5.string({
167
166
  isOptional: true,
168
167
  description: "Attachment description"
169
168
  }),
170
- order: field.int({
169
+ order: _5.int({
171
170
  default: 0,
172
171
  description: "Display order"
173
172
  }),
174
- metadata: field.json({
173
+ metadata: _5.json({
175
174
  isOptional: true,
176
175
  description: "Attachment-specific metadata"
177
176
  }),
178
- createdBy: field.string({ description: "User who created attachment" }),
179
- createdAt: field.createdAt(),
180
- updatedAt: field.updatedAt(),
181
- file: field.belongsTo("File", ["fileId"], ["id"], { onDelete: "Cascade" })
177
+ createdBy: _5.string({ description: "User who created attachment" }),
178
+ createdAt: _5.createdAt(),
179
+ updatedAt: _5.updatedAt(),
180
+ file: _5.belongsTo("File", ["fileId"], ["id"], { onDelete: "Cascade" })
182
181
  },
183
182
  indexes: [
184
- index.on(["entityType", "entityId"]),
185
- index.on(["fileId"]),
186
- index.on([
183
+ b5.on(["entityType", "entityId"]),
184
+ b5.on(["fileId"]),
185
+ b5.on([
187
186
  "entityType",
188
187
  "entityId",
189
188
  "attachmentType"
190
189
  ]),
191
- index.unique([
190
+ b5.unique([
192
191
  "fileId",
193
192
  "entityType",
194
193
  "entityId"
@@ -198,50 +197,50 @@ const AttachmentEntity = defineEntity({
198
197
  /**
199
198
  * UploadSession entity - tracks multipart uploads.
200
199
  */
201
- const UploadSessionEntity = defineEntity({
200
+ const UploadSessionEntity = L5({
202
201
  name: "UploadSession",
203
202
  description: "Tracks a multipart upload session.",
204
203
  schema: "lssm_files",
205
204
  map: "upload_session",
206
205
  fields: {
207
- id: field.id({ description: "Unique session identifier" }),
208
- fileName: field.string({ description: "Target file name" }),
209
- mimeType: field.string({ description: "Expected MIME type" }),
210
- totalSize: field.int({ description: "Total file size" }),
211
- uploadId: field.string({
206
+ id: _5.id({ description: "Unique session identifier" }),
207
+ fileName: _5.string({ description: "Target file name" }),
208
+ mimeType: _5.string({ description: "Expected MIME type" }),
209
+ totalSize: _5.int({ description: "Total file size" }),
210
+ uploadId: _5.string({
212
211
  isOptional: true,
213
212
  description: "Storage upload ID"
214
213
  }),
215
- uploadedBytes: field.int({
214
+ uploadedBytes: _5.int({
216
215
  default: 0,
217
216
  description: "Bytes uploaded so far"
218
217
  }),
219
- uploadedParts: field.json({
218
+ uploadedParts: _5.json({
220
219
  isOptional: true,
221
220
  description: "Completed part info"
222
221
  }),
223
- status: field.string({
222
+ status: _5.string({
224
223
  default: "\"pending\"",
225
224
  description: "Session status"
226
225
  }),
227
- error: field.string({
226
+ error: _5.string({
228
227
  isOptional: true,
229
228
  description: "Error message if failed"
230
229
  }),
231
- fileId: field.string({
230
+ fileId: _5.string({
232
231
  isOptional: true,
233
232
  description: "Resulting file ID"
234
233
  }),
235
- ownerId: field.string({ description: "User who initiated upload" }),
236
- orgId: field.string({
234
+ ownerId: _5.string({ description: "User who initiated upload" }),
235
+ orgId: _5.string({
237
236
  isOptional: true,
238
237
  description: "Organization scope"
239
238
  }),
240
- expiresAt: field.dateTime({ description: "Session expiry time" }),
241
- createdAt: field.createdAt(),
242
- updatedAt: field.updatedAt()
239
+ expiresAt: _5.dateTime({ description: "Session expiry time" }),
240
+ createdAt: _5.createdAt(),
241
+ updatedAt: _5.updatedAt()
243
242
  },
244
- indexes: [index.on(["status", "expiresAt"]), index.on(["ownerId"])]
243
+ indexes: [b5.on(["status", "expiresAt"]), b5.on(["ownerId"])]
245
244
  });
246
245
  /**
247
246
  * All file entities for schema composition.
@@ -262,4 +261,5 @@ const filesSchemaContribution = {
262
261
  };
263
262
 
264
263
  //#endregion
265
- export { AttachmentEntity, FileEntity, FileStatusEnum, FileVersionEntity, StorageProviderEnum, UploadSessionEntity, fileEntities, filesSchemaContribution };
264
+ export { AttachmentEntity, FileEntity, FileStatusEnum, FileVersionEntity, StorageProviderEnum, UploadSessionEntity, fileEntities, filesSchemaContribution };
265
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["defineEntityEnum","defineEntity","field","index","filesSchemaContribution: ModuleSchemaContribution"],"sources":["../../src/entities/index.ts"],"sourcesContent":["import { defineEntity, defineEntityEnum, field, index } from '@lssm/lib.schema';\nimport type { ModuleSchemaContribution } from '@lssm/lib.schema';\n\n/**\n * Storage provider enum.\n */\nexport const StorageProviderEnum = defineEntityEnum({\n name: 'StorageProvider',\n values: ['LOCAL', 'S3', 'GCS', 'AZURE', 'CLOUDFLARE'] as const,\n schema: 'lssm_files',\n description: 'Storage backend provider.',\n});\n\n/**\n * File status enum.\n */\nexport const FileStatusEnum = defineEntityEnum({\n name: 'FileStatus',\n values: [\n 'PENDING',\n 'UPLOADED',\n 'PROCESSING',\n 'READY',\n 'ERROR',\n 'DELETED',\n ] as const,\n schema: 'lssm_files',\n description: 'File processing status.',\n});\n\n/**\n * File entity - represents an uploaded file.\n */\nexport const FileEntity = defineEntity({\n name: 'File',\n description: 'An uploaded file.',\n schema: 'lssm_files',\n map: 'file',\n fields: {\n id: field.id({ description: 'Unique file identifier' }),\n\n // File info\n name: field.string({ description: 'Original file name' }),\n mimeType: field.string({ description: 'MIME type' }),\n size: field.int({ description: 'File size in bytes' }),\n\n // Storage\n storageProvider: field.enum('StorageProvider', {\n default: 'LOCAL',\n description: 'Storage backend',\n }),\n storagePath: field.string({ description: 'Path in storage backend' }),\n storageKey: field.string({\n isOptional: true,\n description: 'Storage key/bucket',\n }),\n\n // Integrity\n checksum: field.string({\n isOptional: true,\n description: 'SHA-256 checksum',\n }),\n etag: field.string({ isOptional: true, description: 'Storage ETag' }),\n\n // Status\n status: field.enum('FileStatus', {\n default: 'PENDING',\n description: 'File status',\n }),\n\n // Access\n isPublic: field.boolean({\n default: false,\n description: 'Whether file is publicly accessible',\n }),\n expiresAt: field.dateTime({\n isOptional: true,\n description: 'Auto-delete timestamp',\n }),\n\n // Ownership\n ownerId: field.string({ description: 'User who uploaded' }),\n orgId: field.string({\n isOptional: true,\n description: 'Organization scope',\n }),\n\n // Metadata\n metadata: field.json({\n isOptional: true,\n description: 'Additional metadata',\n }),\n tags: field.json({\n isOptional: true,\n description: 'Tags for categorization',\n }),\n\n // Image-specific\n width: field.int({\n isOptional: true,\n description: 'Image width in pixels',\n }),\n height: field.int({\n isOptional: true,\n description: 'Image height in pixels',\n }),\n\n // Timestamps\n createdAt: field.createdAt(),\n updatedAt: field.updatedAt(),\n\n // Relations\n versions: field.hasMany('FileVersion'),\n attachments: field.hasMany('Attachment'),\n },\n indexes: [\n index.on(['ownerId']),\n index.on(['orgId']),\n index.on(['status']),\n index.on(['mimeType']),\n index.on(['storageProvider', 'storagePath']),\n ],\n enums: [StorageProviderEnum, FileStatusEnum],\n});\n\n/**\n * FileVersion entity - version history for files.\n */\nexport const FileVersionEntity = defineEntity({\n name: 'FileVersion',\n description: 'A version of a file.',\n schema: 'lssm_files',\n map: 'file_version',\n fields: {\n id: field.id({ description: 'Unique version identifier' }),\n fileId: field.foreignKey({ description: 'Parent file' }),\n\n // Version info\n version: field.int({ description: 'Version number' }),\n size: field.int({ description: 'Version size in bytes' }),\n\n // Storage\n storagePath: field.string({ description: 'Path in storage backend' }),\n checksum: field.string({\n isOptional: true,\n description: 'SHA-256 checksum',\n }),\n\n // Metadata\n comment: field.string({ isOptional: true, description: 'Version comment' }),\n changes: field.json({\n isOptional: true,\n description: 'Change description',\n }),\n\n // Creator\n createdBy: field.string({ description: 'User who created version' }),\n\n // Timestamps\n createdAt: field.createdAt(),\n\n // Relations\n file: field.belongsTo('File', ['fileId'], ['id'], { onDelete: 'Cascade' }),\n },\n indexes: [\n index.on(['fileId', 'version']),\n index.unique(['fileId', 'version'], { name: 'file_version_unique' }),\n ],\n});\n\n/**\n * Attachment entity - polymorphic link between files and entities.\n */\nexport const AttachmentEntity = defineEntity({\n name: 'Attachment',\n description: 'Links a file to an entity.',\n schema: 'lssm_files',\n map: 'attachment',\n fields: {\n id: field.id({ description: 'Unique attachment identifier' }),\n fileId: field.foreignKey({ description: 'Attached file' }),\n\n // Target entity (polymorphic)\n entityType: field.string({\n description: 'Target entity type (deal, listing, etc.)',\n }),\n entityId: field.string({ description: 'Target entity ID' }),\n\n // Attachment metadata\n attachmentType: field.string({\n isOptional: true,\n description: 'Type of attachment (document, image, avatar, etc.)',\n }),\n name: field.string({\n isOptional: true,\n description: 'Display name (overrides file name)',\n }),\n description: field.string({\n isOptional: true,\n description: 'Attachment description',\n }),\n\n // Ordering\n order: field.int({ default: 0, description: 'Display order' }),\n\n // Metadata\n metadata: field.json({\n isOptional: true,\n description: 'Attachment-specific metadata',\n }),\n\n // Creator\n createdBy: field.string({ description: 'User who created attachment' }),\n\n // Timestamps\n createdAt: field.createdAt(),\n updatedAt: field.updatedAt(),\n\n // Relations\n file: field.belongsTo('File', ['fileId'], ['id'], { onDelete: 'Cascade' }),\n },\n indexes: [\n index.on(['entityType', 'entityId']),\n index.on(['fileId']),\n index.on(['entityType', 'entityId', 'attachmentType']),\n index.unique(['fileId', 'entityType', 'entityId'], {\n name: 'attachment_unique',\n }),\n ],\n});\n\n/**\n * UploadSession entity - tracks multipart uploads.\n */\nexport const UploadSessionEntity = defineEntity({\n name: 'UploadSession',\n description: 'Tracks a multipart upload session.',\n schema: 'lssm_files',\n map: 'upload_session',\n fields: {\n id: field.id({ description: 'Unique session identifier' }),\n\n // File info\n fileName: field.string({ description: 'Target file name' }),\n mimeType: field.string({ description: 'Expected MIME type' }),\n totalSize: field.int({ description: 'Total file size' }),\n\n // Upload state\n uploadId: field.string({\n isOptional: true,\n description: 'Storage upload ID',\n }),\n uploadedBytes: field.int({\n default: 0,\n description: 'Bytes uploaded so far',\n }),\n uploadedParts: field.json({\n isOptional: true,\n description: 'Completed part info',\n }),\n\n // Status\n status: field.string({\n default: '\"pending\"',\n description: 'Session status',\n }),\n error: field.string({\n isOptional: true,\n description: 'Error message if failed',\n }),\n\n // Result\n fileId: field.string({\n isOptional: true,\n description: 'Resulting file ID',\n }),\n\n // Context\n ownerId: field.string({ description: 'User who initiated upload' }),\n orgId: field.string({\n isOptional: true,\n description: 'Organization scope',\n }),\n\n // Expiry\n expiresAt: field.dateTime({ description: 'Session expiry time' }),\n\n // Timestamps\n createdAt: field.createdAt(),\n updatedAt: field.updatedAt(),\n },\n indexes: [index.on(['status', 'expiresAt']), index.on(['ownerId'])],\n});\n\n/**\n * All file entities for schema composition.\n */\nexport const fileEntities = [\n FileEntity,\n FileVersionEntity,\n AttachmentEntity,\n UploadSessionEntity,\n];\n\n/**\n * Module schema contribution for files.\n */\nexport const filesSchemaContribution: ModuleSchemaContribution = {\n moduleId: '@lssm/lib.files',\n entities: fileEntities,\n enums: [StorageProviderEnum, FileStatusEnum],\n};\n"],"mappings":"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"}
package/dist/events.d.ts CHANGED
@@ -464,4 +464,5 @@ declare const FileEvents: {
464
464
  }>>;
465
465
  };
466
466
  //#endregion
467
- export { AttachmentAttachedEvent, AttachmentDetachedEvent, FileDeletedEvent, FileEvents, FileUpdatedEvent, FileUploadedEvent, FileVersionCreatedEvent, UploadSessionCompletedEvent, UploadSessionStartedEvent };
467
+ export { AttachmentAttachedEvent, AttachmentDetachedEvent, FileDeletedEvent, FileEvents, FileUpdatedEvent, FileUploadedEvent, FileVersionCreatedEvent, UploadSessionCompletedEvent, UploadSessionStartedEvent };
468
+ //# sourceMappingURL=events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.d.ts","names":[],"sources":["../src/events.ts"],"sourcesContent":[],"mappings":";;;;;;;cA6Ha,mBAAiB,oBAAA,CAAA,4BAAA;EAAjB,MAAA,EAAA;IAKX,IAAA,EAAA,iBAAA,CAAA,SAAA,CAAA,MAAA,EAAA,MAAA,CAAA;;;;;;;;;gBAL4B,KAAA;EAAA,CAAA;EAAA,IAAA,EAAA;IAUjB,IAAA,6BAKX,CAAA,MAAA,EAAA,MAAA,CAAA;IAAA,UAAA,EAAA,KAAA;;;;;;;IAL2B,IAAA,6BAAA,CAAA,MAAA,EAAA,MAAA,CAAA;IAAA,UAAA,EAAA,KAAA;EAUhB,CAAA;EAKX,KAAA,EAAA;;;;;;;;CAL2B,CAAA,CAAA;;AAU7B;;cApBa,kBAAgB,oBAAA,CAAA,4BAAA;;UAK3B,iBAAA,CAAA;;;;;gBAekC,KAAA;EAAA,CAAA;EAAA,OAAA,EAAA;IAUvB,IAAA,6BAKX,CAAA,OAAA,EAAA,OAAA,CAAA;IAAA,UAAA,EAAA,KAAA;;;;;;;;gBALkC,KAAA;EAAA,CAAA;CAAA,CAAA,CAAA;AAUpC;;;cA9Ba,kBAAgB,oBAAA,CAAA,4BAAA;;UAK3B,iBAAA,CAAA;;;;IAyBkC,IAAA,6BAAA,CAAA,MAAA,EAAA,MAAA,CAAA;IAAA,UAAA,EAAA,KAAA;EAUvB,CAAA;EAKX,eAAA,EAAA;;;;;;;;EALoC,SAAA,EAAA;IAAA,IAAA,6BAAA,CAAA,MAAA,EAAA,MAAA,CAAA;IAUzB,UAAA,EAAA,IAAA;EAKX,CAAA;;;;;;;;;AAKW,cAlDA,uBA2DZ,EA3DmC,oBAAA,CAAA,SA2DnC,mBA3DmC,WA2DnC,CAAA;EAAA,MAAA,EAAA;UAtDC,iBAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAKW,yBAAuB,oBAAA,CAAA,4BAAA;;UAKlC,iBAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAKW,yBAAuB,oBAAA,CAAA,4BAAA;;UAKlC,iBAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;cAKW,2BAAyB,oBAAA,CAAA,4BAAA;;UAKpC,iBAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;cAKW,6BAA2B,oBAAA,CAAA,4BAAA;;UAKtC,iBAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;cAKW;;;YASZ,iBAAA,CAAA"}