digital-tools 2.1.1 → 2.3.0

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 (293) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/README.md +2 -0
  3. package/dist/client.d.ts +109 -0
  4. package/dist/client.d.ts.map +1 -0
  5. package/dist/client.js +69 -0
  6. package/dist/client.js.map +1 -0
  7. package/dist/define.d.ts +2 -2
  8. package/dist/define.d.ts.map +1 -1
  9. package/dist/define.js +22 -20
  10. package/dist/define.js.map +1 -1
  11. package/dist/function-ref.d.ts +229 -0
  12. package/dist/function-ref.d.ts.map +1 -0
  13. package/dist/function-ref.js +28 -0
  14. package/dist/function-ref.js.map +1 -0
  15. package/dist/function-sugar.d.ts +57 -0
  16. package/dist/function-sugar.d.ts.map +1 -0
  17. package/dist/function-sugar.js +79 -0
  18. package/dist/function-sugar.js.map +1 -0
  19. package/dist/index.d.ts +10 -3
  20. package/dist/index.d.ts.map +1 -1
  21. package/dist/index.js +24 -4
  22. package/dist/index.js.map +1 -1
  23. package/dist/providers/analytics/mixpanel.d.ts.map +1 -1
  24. package/dist/providers/analytics/mixpanel.js +21 -18
  25. package/dist/providers/analytics/mixpanel.js.map +1 -1
  26. package/dist/providers/calendar/cal-com.d.ts.map +1 -1
  27. package/dist/providers/calendar/cal-com.js +10 -10
  28. package/dist/providers/calendar/cal-com.js.map +1 -1
  29. package/dist/providers/calendar/google-calendar.d.ts.map +1 -1
  30. package/dist/providers/calendar/google-calendar.js +4 -4
  31. package/dist/providers/calendar/google-calendar.js.map +1 -1
  32. package/dist/providers/crm/hubspot.d.ts.map +1 -1
  33. package/dist/providers/crm/hubspot.js +107 -85
  34. package/dist/providers/crm/hubspot.js.map +1 -1
  35. package/dist/providers/development/github.d.ts.map +1 -1
  36. package/dist/providers/development/github.js +40 -43
  37. package/dist/providers/development/github.js.map +1 -1
  38. package/dist/providers/ecommerce/shopify.d.ts.map +1 -1
  39. package/dist/providers/ecommerce/shopify.js +79 -62
  40. package/dist/providers/ecommerce/shopify.js.map +1 -1
  41. package/dist/providers/email/resend.d.ts.map +1 -1
  42. package/dist/providers/email/resend.js +20 -16
  43. package/dist/providers/email/resend.js.map +1 -1
  44. package/dist/providers/email/sendgrid.d.ts.map +1 -1
  45. package/dist/providers/email/sendgrid.js +12 -9
  46. package/dist/providers/email/sendgrid.js.map +1 -1
  47. package/dist/providers/finance/stripe.d.ts.map +1 -1
  48. package/dist/providers/finance/stripe.js +44 -42
  49. package/dist/providers/finance/stripe.js.map +1 -1
  50. package/dist/providers/forms/typeform.d.ts.map +1 -1
  51. package/dist/providers/forms/typeform.js +68 -58
  52. package/dist/providers/forms/typeform.js.map +1 -1
  53. package/dist/providers/knowledge/notion.d.ts.map +1 -1
  54. package/dist/providers/knowledge/notion.js +75 -41
  55. package/dist/providers/knowledge/notion.js.map +1 -1
  56. package/dist/providers/marketing/mailchimp.d.ts.map +1 -1
  57. package/dist/providers/marketing/mailchimp.js +74 -61
  58. package/dist/providers/marketing/mailchimp.js.map +1 -1
  59. package/dist/providers/media/cloudinary.d.ts.map +1 -1
  60. package/dist/providers/media/cloudinary.js +30 -28
  61. package/dist/providers/media/cloudinary.js.map +1 -1
  62. package/dist/providers/messaging/slack.d.ts.map +1 -1
  63. package/dist/providers/messaging/slack.js +75 -58
  64. package/dist/providers/messaging/slack.js.map +1 -1
  65. package/dist/providers/messaging/twilio-sms.d.ts.map +1 -1
  66. package/dist/providers/messaging/twilio-sms.js +33 -15
  67. package/dist/providers/messaging/twilio-sms.js.map +1 -1
  68. package/dist/providers/project-management/linear.d.ts.map +1 -1
  69. package/dist/providers/project-management/linear.js +31 -27
  70. package/dist/providers/project-management/linear.js.map +1 -1
  71. package/dist/providers/spreadsheet/google-sheets.d.ts.map +1 -1
  72. package/dist/providers/spreadsheet/google-sheets.js +21 -18
  73. package/dist/providers/spreadsheet/google-sheets.js.map +1 -1
  74. package/dist/providers/spreadsheet/xlsx.d.ts.map +1 -1
  75. package/dist/providers/spreadsheet/xlsx.js +4 -4
  76. package/dist/providers/spreadsheet/xlsx.js.map +1 -1
  77. package/dist/providers/storage/index.js +1 -0
  78. package/dist/providers/storage/index.js.map +1 -1
  79. package/dist/providers/storage/s3.d.ts.map +1 -1
  80. package/dist/providers/storage/s3.js +36 -27
  81. package/dist/providers/storage/s3.js.map +1 -1
  82. package/dist/providers/support/zendesk.d.ts.map +1 -1
  83. package/dist/providers/support/zendesk.js +24 -25
  84. package/dist/providers/support/zendesk.js.map +1 -1
  85. package/dist/providers/tasks/todoist.d.ts.map +1 -1
  86. package/dist/providers/tasks/todoist.js +18 -18
  87. package/dist/providers/tasks/todoist.js.map +1 -1
  88. package/dist/providers/video-conferencing/google-meet.d.ts.map +1 -1
  89. package/dist/providers/video-conferencing/google-meet.js +11 -11
  90. package/dist/providers/video-conferencing/google-meet.js.map +1 -1
  91. package/dist/providers/video-conferencing/jitsi.js +14 -14
  92. package/dist/providers/video-conferencing/jitsi.js.map +1 -1
  93. package/dist/providers/video-conferencing/teams.d.ts.map +1 -1
  94. package/dist/providers/video-conferencing/teams.js +9 -7
  95. package/dist/providers/video-conferencing/teams.js.map +1 -1
  96. package/dist/providers/video-conferencing/zoom.d.ts.map +1 -1
  97. package/dist/providers/video-conferencing/zoom.js +26 -24
  98. package/dist/providers/video-conferencing/zoom.js.map +1 -1
  99. package/dist/tools/data.d.ts.map +1 -1
  100. package/dist/tools/data.js +5 -12
  101. package/dist/tools/data.js.map +1 -1
  102. package/dist/tools/index.d.ts +1 -0
  103. package/dist/tools/index.d.ts.map +1 -1
  104. package/dist/tools/index.js +1 -0
  105. package/dist/tools/index.js.map +1 -1
  106. package/dist/tools/system.d.ts +289 -0
  107. package/dist/tools/system.d.ts.map +1 -0
  108. package/dist/tools/system.js +752 -0
  109. package/dist/tools/system.js.map +1 -0
  110. package/dist/tools/web.d.ts.map +1 -1
  111. package/dist/tools/web.js +22 -10
  112. package/dist/tools/web.js.map +1 -1
  113. package/dist/track-record.d.ts +101 -0
  114. package/dist/track-record.d.ts.map +1 -0
  115. package/dist/track-record.js +17 -0
  116. package/dist/track-record.js.map +1 -0
  117. package/dist/types.d.ts +210 -9
  118. package/dist/types.d.ts.map +1 -1
  119. package/dist/verb-registration.d.ts +122 -0
  120. package/dist/verb-registration.d.ts.map +1 -0
  121. package/dist/verb-registration.js +176 -0
  122. package/dist/verb-registration.js.map +1 -0
  123. package/dist/worker.d.ts +93 -0
  124. package/dist/worker.d.ts.map +1 -0
  125. package/dist/worker.js +315 -0
  126. package/dist/worker.js.map +1 -0
  127. package/dist/wrap.d.ts +89 -0
  128. package/dist/wrap.d.ts.map +1 -0
  129. package/dist/wrap.js +225 -0
  130. package/dist/wrap.js.map +1 -0
  131. package/package.json +21 -4
  132. package/src/client.ts +136 -0
  133. package/src/define.ts +31 -37
  134. package/src/function-ref.ts +264 -0
  135. package/src/function-sugar.ts +134 -0
  136. package/src/index.ts +132 -10
  137. package/src/providers/analytics/mixpanel.ts +19 -18
  138. package/src/providers/calendar/cal-com.ts +29 -18
  139. package/src/providers/calendar/google-calendar.ts +20 -14
  140. package/src/providers/crm/hubspot.ts +225 -99
  141. package/src/providers/development/github.ts +206 -135
  142. package/src/providers/ecommerce/shopify.ts +250 -89
  143. package/src/providers/email/resend.ts +101 -28
  144. package/src/providers/email/sendgrid.ts +12 -9
  145. package/src/providers/finance/stripe.ts +128 -49
  146. package/src/providers/forms/typeform.ts +74 -58
  147. package/src/providers/knowledge/notion.ts +340 -88
  148. package/src/providers/marketing/mailchimp.ts +86 -70
  149. package/src/providers/media/cloudinary.ts +99 -41
  150. package/src/providers/messaging/slack.ts +283 -85
  151. package/src/providers/messaging/twilio-sms.ts +35 -15
  152. package/src/providers/project-management/linear.ts +143 -55
  153. package/src/providers/spreadsheet/google-sheets.ts +222 -56
  154. package/src/providers/spreadsheet/xlsx.ts +47 -16
  155. package/src/providers/storage/s3.ts +119 -47
  156. package/src/providers/support/zendesk.ts +196 -46
  157. package/src/providers/tasks/todoist.ts +20 -26
  158. package/src/providers/video-conferencing/google-meet.ts +17 -20
  159. package/src/providers/video-conferencing/jitsi.ts +14 -14
  160. package/src/providers/video-conferencing/teams.ts +14 -13
  161. package/src/providers/video-conferencing/zoom.ts +54 -49
  162. package/src/tools/data.ts +6 -16
  163. package/src/tools/index.ts +1 -0
  164. package/src/tools/system.ts +887 -0
  165. package/src/tools/web.ts +22 -10
  166. package/src/track-record.ts +106 -0
  167. package/src/types.ts +241 -13
  168. package/src/verb-registration.ts +197 -0
  169. package/src/worker.ts +370 -0
  170. package/src/wrap.ts +260 -0
  171. package/test/client.test.ts +146 -0
  172. package/test/communication-tools-extended.test.ts +734 -0
  173. package/test/data-tools-extended.test.ts +743 -0
  174. package/test/define-extended.test.ts +819 -0
  175. package/test/define.test.ts +150 -41
  176. package/test/entities.test.ts +623 -0
  177. package/test/extended-entities.test.ts +1228 -0
  178. package/test/provider-implementations.test.ts +725 -0
  179. package/test/provider-registry-extended.test.ts +583 -0
  180. package/test/providers/google-sheets.test.ts +851 -0
  181. package/test/providers/helpers.ts +554 -0
  182. package/test/providers/hubspot.test.ts +576 -0
  183. package/test/providers/slack.test.ts +932 -0
  184. package/test/providers/stripe.test.ts +701 -0
  185. package/test/providers.test.ts +578 -0
  186. package/test/system-tools-extended.test.ts +632 -0
  187. package/test/system.test.ts +673 -0
  188. package/test/tools.test.ts +15 -11
  189. package/test/types.test.ts +402 -0
  190. package/test/verb-registration.test.ts +395 -0
  191. package/test/web-tools.test.ts +553 -0
  192. package/test/worker-extended.test.ts +699 -0
  193. package/test/worker.test.ts +576 -0
  194. package/test/wrap.test.ts +366 -0
  195. package/tsconfig.json +3 -13
  196. package/vitest.config.ts +37 -0
  197. package/wrangler.jsonc +9 -0
  198. package/.turbo/turbo-build.log +0 -5
  199. package/dist/providers/voice/vapi.d.ts +0 -27
  200. package/dist/providers/voice/vapi.d.ts.map +0 -1
  201. package/dist/providers/voice/vapi.js +0 -440
  202. package/dist/providers/voice/vapi.js.map +0 -1
  203. package/src/define.js +0 -267
  204. package/src/entities/advertising.js +0 -999
  205. package/src/entities/ai.js +0 -756
  206. package/src/entities/analytics.js +0 -1588
  207. package/src/entities/automation.js +0 -601
  208. package/src/entities/communication.js +0 -1150
  209. package/src/entities/crm.js +0 -1386
  210. package/src/entities/design.js +0 -546
  211. package/src/entities/development.js +0 -2212
  212. package/src/entities/document.js +0 -874
  213. package/src/entities/ecommerce.js +0 -1429
  214. package/src/entities/experiment.js +0 -1039
  215. package/src/entities/finance.js +0 -3478
  216. package/src/entities/forms.js +0 -1892
  217. package/src/entities/hr.js +0 -661
  218. package/src/entities/identity.js +0 -997
  219. package/src/entities/index.js +0 -282
  220. package/src/entities/infrastructure.js +0 -1153
  221. package/src/entities/knowledge.js +0 -1438
  222. package/src/entities/marketing.js +0 -1610
  223. package/src/entities/media.js +0 -1634
  224. package/src/entities/notification.js +0 -1199
  225. package/src/entities/presentation.js +0 -1274
  226. package/src/entities/productivity.js +0 -1317
  227. package/src/entities/project-management.js +0 -1136
  228. package/src/entities/recruiting.js +0 -736
  229. package/src/entities/shipping.js +0 -509
  230. package/src/entities/signature.js +0 -1102
  231. package/src/entities/site.js +0 -222
  232. package/src/entities/spreadsheet.js +0 -1341
  233. package/src/entities/storage.js +0 -1198
  234. package/src/entities/support.js +0 -1166
  235. package/src/entities/video-conferencing.js +0 -1750
  236. package/src/entities/video.js +0 -950
  237. package/src/entities.js +0 -1663
  238. package/src/index.js +0 -74
  239. package/src/providers/analytics/index.js +0 -17
  240. package/src/providers/analytics/mixpanel.js +0 -255
  241. package/src/providers/calendar/cal-com.js +0 -303
  242. package/src/providers/calendar/google-calendar.js +0 -335
  243. package/src/providers/calendar/index.js +0 -20
  244. package/src/providers/crm/hubspot.js +0 -566
  245. package/src/providers/crm/index.js +0 -17
  246. package/src/providers/development/github.js +0 -472
  247. package/src/providers/development/index.js +0 -17
  248. package/src/providers/ecommerce/index.js +0 -17
  249. package/src/providers/ecommerce/shopify.js +0 -378
  250. package/src/providers/email/index.js +0 -20
  251. package/src/providers/email/resend.js +0 -258
  252. package/src/providers/email/sendgrid.js +0 -161
  253. package/src/providers/finance/index.js +0 -17
  254. package/src/providers/finance/stripe.js +0 -549
  255. package/src/providers/forms/index.js +0 -17
  256. package/src/providers/forms/typeform.js +0 -500
  257. package/src/providers/index.js +0 -123
  258. package/src/providers/knowledge/index.js +0 -17
  259. package/src/providers/knowledge/notion.js +0 -389
  260. package/src/providers/marketing/index.js +0 -17
  261. package/src/providers/marketing/mailchimp.js +0 -443
  262. package/src/providers/media/cloudinary.js +0 -318
  263. package/src/providers/media/index.js +0 -17
  264. package/src/providers/messaging/index.js +0 -20
  265. package/src/providers/messaging/slack.js +0 -393
  266. package/src/providers/messaging/twilio-sms.js +0 -249
  267. package/src/providers/project-management/index.js +0 -17
  268. package/src/providers/project-management/linear.js +0 -575
  269. package/src/providers/registry.js +0 -86
  270. package/src/providers/spreadsheet/google-sheets.js +0 -375
  271. package/src/providers/spreadsheet/index.js +0 -20
  272. package/src/providers/spreadsheet/xlsx.js +0 -423
  273. package/src/providers/storage/index.js +0 -24
  274. package/src/providers/storage/s3.js +0 -419
  275. package/src/providers/support/index.js +0 -17
  276. package/src/providers/support/zendesk.js +0 -373
  277. package/src/providers/tasks/index.js +0 -17
  278. package/src/providers/tasks/todoist.js +0 -286
  279. package/src/providers/types.js +0 -9
  280. package/src/providers/video-conferencing/google-meet.js +0 -286
  281. package/src/providers/video-conferencing/index.js +0 -31
  282. package/src/providers/video-conferencing/jitsi.js +0 -254
  283. package/src/providers/video-conferencing/teams.js +0 -270
  284. package/src/providers/video-conferencing/zoom.js +0 -332
  285. package/src/registry.js +0 -128
  286. package/src/tools/communication.js +0 -184
  287. package/src/tools/data.js +0 -205
  288. package/src/tools/index.js +0 -11
  289. package/src/tools/web.js +0 -137
  290. package/src/types.js +0 -10
  291. package/test/define.test.js +0 -306
  292. package/test/registry.test.js +0 -357
  293. package/test/tools.test.js +0 -363
@@ -1,874 +0,0 @@
1
- /**
2
- * Document Entity Types (Nouns)
3
- *
4
- * Semantic type definitions for word processing documents that support
5
- * Google Docs, Microsoft Word/DOCX, and Markdown/MDX formats.
6
- * Each entity defines:
7
- * - Properties: The data fields
8
- * - Actions: Operations that can be performed (Verbs)
9
- * - Events: State changes that occur
10
- *
11
- * @packageDocumentation
12
- */
13
- // =============================================================================
14
- // Document
15
- // =============================================================================
16
- /**
17
- * Document entity
18
- *
19
- * Represents a word processing document for creating and editing text content.
20
- * Supports Google Docs, Microsoft Word/DOCX, and Markdown/MDX formats.
21
- */
22
- export const Document = {
23
- singular: 'document',
24
- plural: 'documents',
25
- description: 'A word processing document for creating and editing text content',
26
- properties: {
27
- // Identity
28
- title: {
29
- type: 'string',
30
- description: 'Document title',
31
- },
32
- slug: {
33
- type: 'string',
34
- optional: true,
35
- description: 'URL-friendly identifier',
36
- },
37
- description: {
38
- type: 'string',
39
- optional: true,
40
- description: 'Document description or summary',
41
- },
42
- // Content
43
- content: {
44
- type: 'string',
45
- description: 'Document content in native format',
46
- },
47
- format: {
48
- type: 'string',
49
- description: 'Document format: docx, gdoc, markdown, mdx, html, plain',
50
- examples: ['docx', 'gdoc', 'markdown', 'mdx', 'html', 'plain'],
51
- },
52
- wordCount: {
53
- type: 'number',
54
- optional: true,
55
- description: 'Total word count',
56
- },
57
- characterCount: {
58
- type: 'number',
59
- optional: true,
60
- description: 'Total character count',
61
- },
62
- pageCount: {
63
- type: 'number',
64
- optional: true,
65
- description: 'Number of pages',
66
- },
67
- // Status and workflow
68
- status: {
69
- type: 'string',
70
- description: 'Document status: draft, in-review, approved, published, archived',
71
- examples: ['draft', 'in-review', 'approved', 'published', 'archived'],
72
- },
73
- visibility: {
74
- type: 'string',
75
- description: 'Visibility: private, internal, public',
76
- examples: ['private', 'internal', 'public'],
77
- },
78
- // Versioning
79
- version: {
80
- type: 'string',
81
- optional: true,
82
- description: 'Current version number',
83
- },
84
- versionNumber: {
85
- type: 'number',
86
- optional: true,
87
- description: 'Numeric version counter',
88
- },
89
- majorVersion: {
90
- type: 'number',
91
- optional: true,
92
- description: 'Major version number',
93
- },
94
- minorVersion: {
95
- type: 'number',
96
- optional: true,
97
- description: 'Minor version number',
98
- },
99
- // Styling and formatting
100
- pageSize: {
101
- type: 'string',
102
- optional: true,
103
- description: 'Page size: letter, a4, legal, custom',
104
- examples: ['letter', 'a4', 'legal', 'custom'],
105
- },
106
- pageOrientation: {
107
- type: 'string',
108
- optional: true,
109
- description: 'Page orientation: portrait, landscape',
110
- examples: ['portrait', 'landscape'],
111
- },
112
- margins: {
113
- type: 'json',
114
- optional: true,
115
- description: 'Page margins configuration',
116
- },
117
- defaultFont: {
118
- type: 'string',
119
- optional: true,
120
- description: 'Default font family',
121
- },
122
- defaultFontSize: {
123
- type: 'number',
124
- optional: true,
125
- description: 'Default font size in points',
126
- },
127
- lineSpacing: {
128
- type: 'number',
129
- optional: true,
130
- description: 'Line spacing multiplier',
131
- },
132
- theme: {
133
- type: 'json',
134
- optional: true,
135
- description: 'Document theme and styling configuration',
136
- },
137
- // Collaboration
138
- allowComments: {
139
- type: 'boolean',
140
- optional: true,
141
- description: 'Whether comments are enabled',
142
- },
143
- allowSuggestions: {
144
- type: 'boolean',
145
- optional: true,
146
- description: 'Whether suggestions/tracked changes are enabled',
147
- },
148
- shareMode: {
149
- type: 'string',
150
- optional: true,
151
- description: 'Sharing mode: view, comment, edit',
152
- examples: ['view', 'comment', 'edit'],
153
- },
154
- // Protection
155
- protected: {
156
- type: 'boolean',
157
- optional: true,
158
- description: 'Whether document is protected from editing',
159
- },
160
- password: {
161
- type: 'string',
162
- optional: true,
163
- description: 'Password for protected documents',
164
- },
165
- readOnly: {
166
- type: 'boolean',
167
- optional: true,
168
- description: 'Whether document is read-only',
169
- },
170
- downloadable: {
171
- type: 'boolean',
172
- optional: true,
173
- description: 'Whether document can be downloaded',
174
- },
175
- copyable: {
176
- type: 'boolean',
177
- optional: true,
178
- description: 'Whether content can be copied',
179
- },
180
- printable: {
181
- type: 'boolean',
182
- optional: true,
183
- description: 'Whether document can be printed',
184
- },
185
- // Templates
186
- isTemplate: {
187
- type: 'boolean',
188
- optional: true,
189
- description: 'Whether this document is a template',
190
- },
191
- templateId: {
192
- type: 'string',
193
- optional: true,
194
- description: 'ID of template this was created from',
195
- },
196
- // Integration
197
- externalId: {
198
- type: 'string',
199
- optional: true,
200
- description: 'External system ID (Google Docs ID, OneDrive ID, etc.)',
201
- },
202
- externalUrl: {
203
- type: 'url',
204
- optional: true,
205
- description: 'URL in external system',
206
- },
207
- syncEnabled: {
208
- type: 'boolean',
209
- optional: true,
210
- description: 'Whether sync with external system is enabled',
211
- },
212
- lastSyncedAt: {
213
- type: 'datetime',
214
- optional: true,
215
- description: 'Last sync timestamp',
216
- },
217
- // Metadata
218
- language: {
219
- type: 'string',
220
- optional: true,
221
- description: 'Document language code',
222
- },
223
- tags: {
224
- type: 'string',
225
- array: true,
226
- optional: true,
227
- description: 'Tags for categorizing the document',
228
- },
229
- category: {
230
- type: 'string',
231
- optional: true,
232
- description: 'Document category',
233
- },
234
- folder: {
235
- type: 'string',
236
- optional: true,
237
- description: 'Folder or workspace path',
238
- },
239
- customMetadata: {
240
- type: 'json',
241
- optional: true,
242
- description: 'Custom metadata fields',
243
- },
244
- // Analytics
245
- viewCount: {
246
- type: 'number',
247
- optional: true,
248
- description: 'Number of views',
249
- },
250
- downloadCount: {
251
- type: 'number',
252
- optional: true,
253
- description: 'Number of downloads',
254
- },
255
- lastViewedAt: {
256
- type: 'datetime',
257
- optional: true,
258
- description: 'Last view timestamp',
259
- },
260
- lastEditedAt: {
261
- type: 'datetime',
262
- optional: true,
263
- description: 'Last edit timestamp',
264
- },
265
- // Publishing
266
- publishedAt: {
267
- type: 'datetime',
268
- optional: true,
269
- description: 'Publication timestamp',
270
- },
271
- publishedUrl: {
272
- type: 'url',
273
- optional: true,
274
- description: 'Published document URL',
275
- },
276
- expiresAt: {
277
- type: 'datetime',
278
- optional: true,
279
- description: 'Document expiration timestamp',
280
- },
281
- },
282
- relationships: {
283
- owner: {
284
- type: 'Contact',
285
- description: 'Document owner',
286
- },
287
- creator: {
288
- type: 'Contact',
289
- description: 'User who created the document',
290
- },
291
- lastEditor: {
292
- type: 'Contact',
293
- required: false,
294
- description: 'User who last edited the document',
295
- },
296
- collaborators: {
297
- type: 'DocumentCollaborator[]',
298
- backref: 'document',
299
- description: 'Users with access to the document',
300
- },
301
- versions: {
302
- type: 'DocumentVersion[]',
303
- backref: 'document',
304
- description: 'Version history',
305
- },
306
- comments: {
307
- type: 'DocumentComment[]',
308
- backref: 'document',
309
- description: 'Comments and suggestions',
310
- },
311
- attachments: {
312
- type: 'Attachment[]',
313
- description: 'Attached files',
314
- },
315
- },
316
- actions: [
317
- 'create',
318
- 'open',
319
- 'edit',
320
- 'save',
321
- 'saveAs',
322
- 'duplicate',
323
- 'rename',
324
- 'delete',
325
- 'restore',
326
- 'export',
327
- 'download',
328
- 'print',
329
- 'share',
330
- 'unshare',
331
- 'publish',
332
- 'unpublish',
333
- 'archive',
334
- 'unarchive',
335
- 'move',
336
- 'copy',
337
- 'lock',
338
- 'unlock',
339
- 'protect',
340
- 'unprotect',
341
- 'makeTemplate',
342
- 'createFromTemplate',
343
- 'compare',
344
- 'merge',
345
- 'split',
346
- 'convert',
347
- 'translate',
348
- 'spellCheck',
349
- 'findAndReplace',
350
- 'formatDocument',
351
- 'insertImage',
352
- 'insertTable',
353
- 'insertLink',
354
- 'addPageBreak',
355
- 'addComment',
356
- 'acceptSuggestion',
357
- 'rejectSuggestion',
358
- ],
359
- events: [
360
- 'created',
361
- 'opened',
362
- 'edited',
363
- 'saved',
364
- 'renamed',
365
- 'deleted',
366
- 'restored',
367
- 'exported',
368
- 'downloaded',
369
- 'printed',
370
- 'shared',
371
- 'unshared',
372
- 'published',
373
- 'unpublished',
374
- 'archived',
375
- 'unarchived',
376
- 'moved',
377
- 'copied',
378
- 'locked',
379
- 'unlocked',
380
- 'protected',
381
- 'unprotected',
382
- 'converted',
383
- 'translated',
384
- 'commentAdded',
385
- 'commentResolved',
386
- 'suggestionAccepted',
387
- 'suggestionRejected',
388
- 'collaboratorAdded',
389
- 'collaboratorRemoved',
390
- 'permissionChanged',
391
- 'versionCreated',
392
- 'versionRestored',
393
- 'synced',
394
- 'viewed',
395
- ],
396
- };
397
- // =============================================================================
398
- // DocumentVersion
399
- // =============================================================================
400
- /**
401
- * DocumentVersion entity
402
- *
403
- * Represents a version in the document's history with content snapshot.
404
- */
405
- export const DocumentVersion = {
406
- singular: 'document version',
407
- plural: 'document versions',
408
- description: 'A version snapshot in document history',
409
- properties: {
410
- // Identity
411
- versionNumber: {
412
- type: 'number',
413
- description: 'Sequential version number',
414
- },
415
- label: {
416
- type: 'string',
417
- optional: true,
418
- description: 'Version label or tag',
419
- },
420
- description: {
421
- type: 'string',
422
- optional: true,
423
- description: 'Version description or change notes',
424
- },
425
- // Content
426
- content: {
427
- type: 'string',
428
- description: 'Document content at this version',
429
- },
430
- contentDiff: {
431
- type: 'string',
432
- optional: true,
433
- description: 'Diff from previous version',
434
- },
435
- wordCount: {
436
- type: 'number',
437
- optional: true,
438
- description: 'Word count at this version',
439
- },
440
- characterCount: {
441
- type: 'number',
442
- optional: true,
443
- description: 'Character count at this version',
444
- },
445
- // Change tracking
446
- changeType: {
447
- type: 'string',
448
- optional: true,
449
- description: 'Type of change: edit, format, insert, delete, move',
450
- examples: ['edit', 'format', 'insert', 'delete', 'move', 'restructure'],
451
- },
452
- changedSections: {
453
- type: 'json',
454
- optional: true,
455
- description: 'Sections that were changed',
456
- },
457
- addedWords: {
458
- type: 'number',
459
- optional: true,
460
- description: 'Number of words added',
461
- },
462
- deletedWords: {
463
- type: 'number',
464
- optional: true,
465
- description: 'Number of words deleted',
466
- },
467
- // Versioning
468
- isMajorVersion: {
469
- type: 'boolean',
470
- optional: true,
471
- description: 'Whether this is a major version',
472
- },
473
- isAutoSave: {
474
- type: 'boolean',
475
- optional: true,
476
- description: 'Whether this was an auto-saved version',
477
- },
478
- isPinned: {
479
- type: 'boolean',
480
- optional: true,
481
- description: 'Whether this version is pinned',
482
- },
483
- // Metadata
484
- size: {
485
- type: 'number',
486
- optional: true,
487
- description: 'Version size in bytes',
488
- },
489
- checksum: {
490
- type: 'string',
491
- optional: true,
492
- description: 'Content checksum for verification',
493
- },
494
- },
495
- relationships: {
496
- document: {
497
- type: 'Document',
498
- backref: 'versions',
499
- description: 'Parent document',
500
- },
501
- author: {
502
- type: 'Contact',
503
- description: 'User who created this version',
504
- },
505
- previousVersion: {
506
- type: 'DocumentVersion',
507
- required: false,
508
- description: 'Previous version in history',
509
- },
510
- },
511
- actions: [
512
- 'create',
513
- 'view',
514
- 'compare',
515
- 'restore',
516
- 'download',
517
- 'delete',
518
- 'pin',
519
- 'unpin',
520
- 'label',
521
- 'addNote',
522
- ],
523
- events: [
524
- 'created',
525
- 'viewed',
526
- 'compared',
527
- 'restored',
528
- 'downloaded',
529
- 'deleted',
530
- 'pinned',
531
- 'unpinned',
532
- 'labeled',
533
- ],
534
- };
535
- // =============================================================================
536
- // DocumentComment
537
- // =============================================================================
538
- /**
539
- * DocumentComment entity
540
- *
541
- * Represents a comment or suggestion on a document.
542
- */
543
- export const DocumentComment = {
544
- singular: 'document comment',
545
- plural: 'document comments',
546
- description: 'A comment or suggestion on a document',
547
- properties: {
548
- // Content
549
- text: {
550
- type: 'string',
551
- description: 'Comment text',
552
- },
553
- quotedText: {
554
- type: 'string',
555
- optional: true,
556
- description: 'Text being commented on',
557
- },
558
- // Type
559
- type: {
560
- type: 'string',
561
- description: 'Comment type: comment, suggestion, edit, note',
562
- examples: ['comment', 'suggestion', 'edit', 'note', 'question'],
563
- },
564
- severity: {
565
- type: 'string',
566
- optional: true,
567
- description: 'Comment severity for editorial workflows',
568
- examples: ['info', 'suggestion', 'warning', 'required'],
569
- },
570
- // Location
571
- anchor: {
572
- type: 'json',
573
- optional: true,
574
- description: 'Position anchor in document (character offset, paragraph, etc.)',
575
- },
576
- range: {
577
- type: 'json',
578
- optional: true,
579
- description: 'Text range this comment applies to',
580
- },
581
- page: {
582
- type: 'number',
583
- optional: true,
584
- description: 'Page number',
585
- },
586
- // Status
587
- status: {
588
- type: 'string',
589
- description: 'Comment status: open, resolved, accepted, rejected',
590
- examples: ['open', 'resolved', 'accepted', 'rejected', 'wont-fix'],
591
- },
592
- resolved: {
593
- type: 'boolean',
594
- description: 'Whether comment is resolved',
595
- },
596
- // Suggestions
597
- suggestedChange: {
598
- type: 'string',
599
- optional: true,
600
- description: 'Suggested text change',
601
- },
602
- originalText: {
603
- type: 'string',
604
- optional: true,
605
- description: 'Original text before suggestion',
606
- },
607
- // Threading
608
- isReply: {
609
- type: 'boolean',
610
- optional: true,
611
- description: 'Whether this is a reply to another comment',
612
- },
613
- replyCount: {
614
- type: 'number',
615
- optional: true,
616
- description: 'Number of replies',
617
- },
618
- // Resolution
619
- resolvedAt: {
620
- type: 'datetime',
621
- optional: true,
622
- description: 'When comment was resolved',
623
- },
624
- resolution: {
625
- type: 'string',
626
- optional: true,
627
- description: 'Resolution notes',
628
- },
629
- // Metadata
630
- mentions: {
631
- type: 'string',
632
- array: true,
633
- optional: true,
634
- description: 'User IDs mentioned in comment',
635
- },
636
- attachments: {
637
- type: 'json',
638
- optional: true,
639
- description: 'Attached files or images',
640
- },
641
- },
642
- relationships: {
643
- document: {
644
- type: 'Document',
645
- backref: 'comments',
646
- description: 'Parent document',
647
- },
648
- author: {
649
- type: 'Contact',
650
- description: 'Comment author',
651
- },
652
- parentComment: {
653
- type: 'DocumentComment',
654
- required: false,
655
- description: 'Parent comment if this is a reply',
656
- },
657
- replies: {
658
- type: 'DocumentComment[]',
659
- backref: 'parentComment',
660
- description: 'Reply comments',
661
- },
662
- resolver: {
663
- type: 'Contact',
664
- required: false,
665
- description: 'User who resolved the comment',
666
- },
667
- },
668
- actions: [
669
- 'create',
670
- 'edit',
671
- 'delete',
672
- 'reply',
673
- 'resolve',
674
- 'reopen',
675
- 'accept',
676
- 'reject',
677
- 'mention',
678
- 'attach',
679
- 'react',
680
- ],
681
- events: [
682
- 'created',
683
- 'edited',
684
- 'deleted',
685
- 'replied',
686
- 'resolved',
687
- 'reopened',
688
- 'accepted',
689
- 'rejected',
690
- 'mentioned',
691
- 'reacted',
692
- ],
693
- };
694
- // =============================================================================
695
- // DocumentCollaborator
696
- // =============================================================================
697
- /**
698
- * DocumentCollaborator entity
699
- *
700
- * Represents a user with access to a document and their permissions.
701
- */
702
- export const DocumentCollaborator = {
703
- singular: 'document collaborator',
704
- plural: 'document collaborators',
705
- description: 'A user with access permissions to a document',
706
- properties: {
707
- // Permissions
708
- role: {
709
- type: 'string',
710
- description: 'Access role: owner, editor, commenter, viewer',
711
- examples: ['owner', 'editor', 'commenter', 'viewer', 'reviewer'],
712
- },
713
- canEdit: {
714
- type: 'boolean',
715
- description: 'Whether user can edit content',
716
- },
717
- canComment: {
718
- type: 'boolean',
719
- description: 'Whether user can add comments',
720
- },
721
- canShare: {
722
- type: 'boolean',
723
- optional: true,
724
- description: 'Whether user can share with others',
725
- },
726
- canDownload: {
727
- type: 'boolean',
728
- optional: true,
729
- description: 'Whether user can download',
730
- },
731
- canPrint: {
732
- type: 'boolean',
733
- optional: true,
734
- description: 'Whether user can print',
735
- },
736
- canDelete: {
737
- type: 'boolean',
738
- optional: true,
739
- description: 'Whether user can delete document',
740
- },
741
- // Access control
742
- accessType: {
743
- type: 'string',
744
- description: 'Access type: direct, inherited, link, public',
745
- examples: ['direct', 'inherited', 'link', 'public'],
746
- },
747
- inviteStatus: {
748
- type: 'string',
749
- optional: true,
750
- description: 'Invitation status: pending, accepted, declined',
751
- examples: ['pending', 'accepted', 'declined'],
752
- },
753
- // Expiration
754
- expiresAt: {
755
- type: 'datetime',
756
- optional: true,
757
- description: 'When access expires',
758
- },
759
- isTemporary: {
760
- type: 'boolean',
761
- optional: true,
762
- description: 'Whether this is temporary access',
763
- },
764
- // Activity
765
- lastAccessedAt: {
766
- type: 'datetime',
767
- optional: true,
768
- description: 'Last access timestamp',
769
- },
770
- accessCount: {
771
- type: 'number',
772
- optional: true,
773
- description: 'Number of times accessed',
774
- },
775
- editCount: {
776
- type: 'number',
777
- optional: true,
778
- description: 'Number of edits made',
779
- },
780
- commentCount: {
781
- type: 'number',
782
- optional: true,
783
- description: 'Number of comments made',
784
- },
785
- // Notifications
786
- notifyOnEdit: {
787
- type: 'boolean',
788
- optional: true,
789
- description: 'Whether to notify on edits',
790
- },
791
- notifyOnComment: {
792
- type: 'boolean',
793
- optional: true,
794
- description: 'Whether to notify on comments',
795
- },
796
- notifyOnShare: {
797
- type: 'boolean',
798
- optional: true,
799
- description: 'Whether to notify on new shares',
800
- },
801
- // Metadata
802
- inviteMessage: {
803
- type: 'string',
804
- optional: true,
805
- description: 'Message included with invitation',
806
- },
807
- customPermissions: {
808
- type: 'json',
809
- optional: true,
810
- description: 'Additional custom permissions',
811
- },
812
- },
813
- relationships: {
814
- document: {
815
- type: 'Document',
816
- backref: 'collaborators',
817
- description: 'Document being shared',
818
- },
819
- user: {
820
- type: 'Contact',
821
- description: 'User with access',
822
- },
823
- inviter: {
824
- type: 'Contact',
825
- required: false,
826
- description: 'User who shared the document',
827
- },
828
- },
829
- actions: [
830
- 'invite',
831
- 'accept',
832
- 'decline',
833
- 'revoke',
834
- 'updatePermissions',
835
- 'makeOwner',
836
- 'promote',
837
- 'demote',
838
- 'notify',
839
- 'resendInvite',
840
- 'setExpiration',
841
- ],
842
- events: [
843
- 'invited',
844
- 'accepted',
845
- 'declined',
846
- 'revoked',
847
- 'permissionsUpdated',
848
- 'ownerChanged',
849
- 'promoted',
850
- 'demoted',
851
- 'expired',
852
- 'accessed',
853
- 'edited',
854
- 'commented',
855
- ],
856
- };
857
- // =============================================================================
858
- // Export all entities as a schema
859
- // =============================================================================
860
- /**
861
- * All document entity types
862
- */
863
- export const DocumentEntities = {
864
- Document,
865
- DocumentVersion,
866
- DocumentComment,
867
- DocumentCollaborator,
868
- };
869
- /**
870
- * Entity categories for organization
871
- */
872
- export const DocumentCategories = {
873
- documents: ['Document', 'DocumentVersion', 'DocumentComment', 'DocumentCollaborator'],
874
- };