@materi.ai/frame 1.0.0-rc.1
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.
Potentially problematic release.
This version of @materi.ai/frame might be problematic. Click here for more details.
- package/CHANGELOG.md +330 -0
- package/LICENSE +21 -0
- package/README.md +1124 -0
- package/dist/api/client.d.ts +66 -0
- package/dist/api/client.d.ts.map +1 -0
- package/dist/api/client.js +112 -0
- package/dist/api/client.js.map +1 -0
- package/dist/api/endpoints/index.d.ts +186 -0
- package/dist/api/endpoints/index.d.ts.map +1 -0
- package/dist/api/endpoints/index.js +141 -0
- package/dist/api/endpoints/index.js.map +1 -0
- package/dist/api/index.d.ts +8 -0
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/index.js +7 -0
- package/dist/api/index.js.map +1 -0
- package/dist/core/auth/index.d.ts +71 -0
- package/dist/core/auth/index.d.ts.map +1 -0
- package/dist/core/auth/index.js +189 -0
- package/dist/core/auth/index.js.map +1 -0
- package/dist/core/commands/index.d.ts +115 -0
- package/dist/core/commands/index.d.ts.map +1 -0
- package/dist/core/commands/index.js +321 -0
- package/dist/core/commands/index.js.map +1 -0
- package/dist/core/editors/index.d.ts +8 -0
- package/dist/core/editors/index.d.ts.map +1 -0
- package/dist/core/editors/index.js +8 -0
- package/dist/core/editors/index.js.map +1 -0
- package/dist/core/editors/presentation.d.ts +150 -0
- package/dist/core/editors/presentation.d.ts.map +1 -0
- package/dist/core/editors/presentation.js +255 -0
- package/dist/core/editors/presentation.js.map +1 -0
- package/dist/core/editors/rich-text.d.ts +93 -0
- package/dist/core/editors/rich-text.d.ts.map +1 -0
- package/dist/core/editors/rich-text.js +222 -0
- package/dist/core/editors/rich-text.js.map +1 -0
- package/dist/core/editors/spreadsheet.d.ts +108 -0
- package/dist/core/editors/spreadsheet.d.ts.map +1 -0
- package/dist/core/editors/spreadsheet.js +251 -0
- package/dist/core/editors/spreadsheet.js.map +1 -0
- package/dist/core/formula/index.d.ts +144 -0
- package/dist/core/formula/index.d.ts.map +1 -0
- package/dist/core/formula/index.js +269 -0
- package/dist/core/formula/index.js.map +1 -0
- package/dist/core/generated/index.d.ts +35 -0
- package/dist/core/generated/index.d.ts.map +1 -0
- package/dist/core/generated/index.js +41 -0
- package/dist/core/generated/index.js.map +1 -0
- package/dist/core/generated/manuscript/domains/aria/domains/aria/v1.d.ts +75 -0
- package/dist/core/generated/manuscript/domains/aria/domains/aria/v1.d.ts.map +1 -0
- package/dist/core/generated/manuscript/domains/aria/domains/aria/v1.js +304 -0
- package/dist/core/generated/manuscript/domains/aria/domains/aria/v1.js.map +1 -0
- package/dist/core/generated/manuscript/domains/aria/google/protobuf/descriptor.d.ts +1340 -0
- package/dist/core/generated/manuscript/domains/aria/google/protobuf/descriptor.d.ts.map +1 -0
- package/dist/core/generated/manuscript/domains/aria/google/protobuf/descriptor.js +2965 -0
- package/dist/core/generated/manuscript/domains/aria/google/protobuf/descriptor.js.map +1 -0
- package/dist/core/generated/manuscript/domains/aria/google/protobuf/struct.d.ts +131 -0
- package/dist/core/generated/manuscript/domains/aria/google/protobuf/struct.d.ts.map +1 -0
- package/dist/core/generated/manuscript/domains/aria/google/protobuf/struct.js +308 -0
- package/dist/core/generated/manuscript/domains/aria/google/protobuf/struct.js.map +1 -0
- package/dist/core/generated/manuscript/domains/aria/google/protobuf/timestamp.d.ts +133 -0
- package/dist/core/generated/manuscript/domains/aria/google/protobuf/timestamp.d.ts.map +1 -0
- package/dist/core/generated/manuscript/domains/aria/google/protobuf/timestamp.js +41 -0
- package/dist/core/generated/manuscript/domains/aria/google/protobuf/timestamp.js.map +1 -0
- package/dist/core/generated/manuscript/domains/aria/shared/v1.d.ts +132 -0
- package/dist/core/generated/manuscript/domains/aria/shared/v1.d.ts.map +1 -0
- package/dist/core/generated/manuscript/domains/aria/shared/v1.js +431 -0
- package/dist/core/generated/manuscript/domains/aria/shared/v1.js.map +1 -0
- package/dist/core/generated/manuscript/domains/audit/domains/audit/v1.d.ts +56 -0
- package/dist/core/generated/manuscript/domains/audit/domains/audit/v1.d.ts.map +1 -0
- package/dist/core/generated/manuscript/domains/audit/domains/audit/v1.js +207 -0
- package/dist/core/generated/manuscript/domains/audit/domains/audit/v1.js.map +1 -0
- package/dist/core/generated/manuscript/domains/audit/google/protobuf/descriptor.d.ts +1340 -0
- package/dist/core/generated/manuscript/domains/audit/google/protobuf/descriptor.d.ts.map +1 -0
- package/dist/core/generated/manuscript/domains/audit/google/protobuf/descriptor.js +2965 -0
- package/dist/core/generated/manuscript/domains/audit/google/protobuf/descriptor.js.map +1 -0
- package/dist/core/generated/manuscript/domains/audit/google/protobuf/struct.d.ts +131 -0
- package/dist/core/generated/manuscript/domains/audit/google/protobuf/struct.d.ts.map +1 -0
- package/dist/core/generated/manuscript/domains/audit/google/protobuf/struct.js +308 -0
- package/dist/core/generated/manuscript/domains/audit/google/protobuf/struct.js.map +1 -0
- package/dist/core/generated/manuscript/domains/audit/google/protobuf/timestamp.d.ts +133 -0
- package/dist/core/generated/manuscript/domains/audit/google/protobuf/timestamp.d.ts.map +1 -0
- package/dist/core/generated/manuscript/domains/audit/google/protobuf/timestamp.js +41 -0
- package/dist/core/generated/manuscript/domains/audit/google/protobuf/timestamp.js.map +1 -0
- package/dist/core/generated/manuscript/domains/audit/shared/v1.d.ts +132 -0
- package/dist/core/generated/manuscript/domains/audit/shared/v1.d.ts.map +1 -0
- package/dist/core/generated/manuscript/domains/audit/shared/v1.js +431 -0
- package/dist/core/generated/manuscript/domains/audit/shared/v1.js.map +1 -0
- package/dist/core/generated/manuscript/domains/collaboration/domains/collaboration/v1.d.ts +71 -0
- package/dist/core/generated/manuscript/domains/collaboration/domains/collaboration/v1.d.ts.map +1 -0
- package/dist/core/generated/manuscript/domains/collaboration/domains/collaboration/v1.js +270 -0
- package/dist/core/generated/manuscript/domains/collaboration/domains/collaboration/v1.js.map +1 -0
- package/dist/core/generated/manuscript/domains/collaboration/google/protobuf/descriptor.d.ts +1340 -0
- package/dist/core/generated/manuscript/domains/collaboration/google/protobuf/descriptor.d.ts.map +1 -0
- package/dist/core/generated/manuscript/domains/collaboration/google/protobuf/descriptor.js +2965 -0
- package/dist/core/generated/manuscript/domains/collaboration/google/protobuf/descriptor.js.map +1 -0
- package/dist/core/generated/manuscript/domains/collaboration/google/protobuf/struct.d.ts +131 -0
- package/dist/core/generated/manuscript/domains/collaboration/google/protobuf/struct.d.ts.map +1 -0
- package/dist/core/generated/manuscript/domains/collaboration/google/protobuf/struct.js +308 -0
- package/dist/core/generated/manuscript/domains/collaboration/google/protobuf/struct.js.map +1 -0
- package/dist/core/generated/manuscript/domains/collaboration/google/protobuf/timestamp.d.ts +133 -0
- package/dist/core/generated/manuscript/domains/collaboration/google/protobuf/timestamp.d.ts.map +1 -0
- package/dist/core/generated/manuscript/domains/collaboration/google/protobuf/timestamp.js +41 -0
- package/dist/core/generated/manuscript/domains/collaboration/google/protobuf/timestamp.js.map +1 -0
- package/dist/core/generated/manuscript/domains/collaboration/shared/v1.d.ts +132 -0
- package/dist/core/generated/manuscript/domains/collaboration/shared/v1.d.ts.map +1 -0
- package/dist/core/generated/manuscript/domains/collaboration/shared/v1.js +431 -0
- package/dist/core/generated/manuscript/domains/collaboration/shared/v1.js.map +1 -0
- package/dist/core/generated/manuscript/domains/document/domains/document/v1.d.ts +61 -0
- package/dist/core/generated/manuscript/domains/document/domains/document/v1.d.ts.map +1 -0
- package/dist/core/generated/manuscript/domains/document/domains/document/v1.js +213 -0
- package/dist/core/generated/manuscript/domains/document/domains/document/v1.js.map +1 -0
- package/dist/core/generated/manuscript/domains/document/google/protobuf/descriptor.d.ts +1340 -0
- package/dist/core/generated/manuscript/domains/document/google/protobuf/descriptor.d.ts.map +1 -0
- package/dist/core/generated/manuscript/domains/document/google/protobuf/descriptor.js +2965 -0
- package/dist/core/generated/manuscript/domains/document/google/protobuf/descriptor.js.map +1 -0
- package/dist/core/generated/manuscript/domains/document/google/protobuf/struct.d.ts +131 -0
- package/dist/core/generated/manuscript/domains/document/google/protobuf/struct.d.ts.map +1 -0
- package/dist/core/generated/manuscript/domains/document/google/protobuf/struct.js +308 -0
- package/dist/core/generated/manuscript/domains/document/google/protobuf/struct.js.map +1 -0
- package/dist/core/generated/manuscript/domains/document/google/protobuf/timestamp.d.ts +133 -0
- package/dist/core/generated/manuscript/domains/document/google/protobuf/timestamp.d.ts.map +1 -0
- package/dist/core/generated/manuscript/domains/document/google/protobuf/timestamp.js +41 -0
- package/dist/core/generated/manuscript/domains/document/google/protobuf/timestamp.js.map +1 -0
- package/dist/core/generated/manuscript/domains/document/shared/v1.d.ts +132 -0
- package/dist/core/generated/manuscript/domains/document/shared/v1.d.ts.map +1 -0
- package/dist/core/generated/manuscript/domains/document/shared/v1.js +431 -0
- package/dist/core/generated/manuscript/domains/document/shared/v1.js.map +1 -0
- package/dist/core/generated/manuscript/domains/envelope/domains/envelope/v1.d.ts +202 -0
- package/dist/core/generated/manuscript/domains/envelope/domains/envelope/v1.d.ts.map +1 -0
- package/dist/core/generated/manuscript/domains/envelope/domains/envelope/v1.js +199 -0
- package/dist/core/generated/manuscript/domains/envelope/domains/envelope/v1.js.map +1 -0
- package/dist/core/generated/manuscript/domains/envelope/google/protobuf/descriptor.d.ts +1340 -0
- package/dist/core/generated/manuscript/domains/envelope/google/protobuf/descriptor.d.ts.map +1 -0
- package/dist/core/generated/manuscript/domains/envelope/google/protobuf/descriptor.js +2965 -0
- package/dist/core/generated/manuscript/domains/envelope/google/protobuf/descriptor.js.map +1 -0
- package/dist/core/generated/manuscript/domains/envelope/google/protobuf/struct.d.ts +131 -0
- package/dist/core/generated/manuscript/domains/envelope/google/protobuf/struct.d.ts.map +1 -0
- package/dist/core/generated/manuscript/domains/envelope/google/protobuf/struct.js +308 -0
- package/dist/core/generated/manuscript/domains/envelope/google/protobuf/struct.js.map +1 -0
- package/dist/core/generated/manuscript/domains/envelope/google/protobuf/timestamp.d.ts +133 -0
- package/dist/core/generated/manuscript/domains/envelope/google/protobuf/timestamp.d.ts.map +1 -0
- package/dist/core/generated/manuscript/domains/envelope/google/protobuf/timestamp.js +41 -0
- package/dist/core/generated/manuscript/domains/envelope/google/protobuf/timestamp.js.map +1 -0
- package/dist/core/generated/manuscript/domains/envelope/shared/v1.d.ts +132 -0
- package/dist/core/generated/manuscript/domains/envelope/shared/v1.d.ts.map +1 -0
- package/dist/core/generated/manuscript/domains/envelope/shared/v1.js +431 -0
- package/dist/core/generated/manuscript/domains/envelope/shared/v1.js.map +1 -0
- package/dist/core/generated/manuscript/domains/notification/domains/notification/v1.d.ts +60 -0
- package/dist/core/generated/manuscript/domains/notification/domains/notification/v1.d.ts.map +1 -0
- package/dist/core/generated/manuscript/domains/notification/domains/notification/v1.js +224 -0
- package/dist/core/generated/manuscript/domains/notification/domains/notification/v1.js.map +1 -0
- package/dist/core/generated/manuscript/domains/notification/google/protobuf/descriptor.d.ts +1340 -0
- package/dist/core/generated/manuscript/domains/notification/google/protobuf/descriptor.d.ts.map +1 -0
- package/dist/core/generated/manuscript/domains/notification/google/protobuf/descriptor.js +2965 -0
- package/dist/core/generated/manuscript/domains/notification/google/protobuf/descriptor.js.map +1 -0
- package/dist/core/generated/manuscript/domains/notification/google/protobuf/struct.d.ts +131 -0
- package/dist/core/generated/manuscript/domains/notification/google/protobuf/struct.d.ts.map +1 -0
- package/dist/core/generated/manuscript/domains/notification/google/protobuf/struct.js +308 -0
- package/dist/core/generated/manuscript/domains/notification/google/protobuf/struct.js.map +1 -0
- package/dist/core/generated/manuscript/domains/notification/google/protobuf/timestamp.d.ts +133 -0
- package/dist/core/generated/manuscript/domains/notification/google/protobuf/timestamp.d.ts.map +1 -0
- package/dist/core/generated/manuscript/domains/notification/google/protobuf/timestamp.js +41 -0
- package/dist/core/generated/manuscript/domains/notification/google/protobuf/timestamp.js.map +1 -0
- package/dist/core/generated/manuscript/domains/notification/shared/v1.d.ts +132 -0
- package/dist/core/generated/manuscript/domains/notification/shared/v1.d.ts.map +1 -0
- package/dist/core/generated/manuscript/domains/notification/shared/v1.js +431 -0
- package/dist/core/generated/manuscript/domains/notification/shared/v1.js.map +1 -0
- package/dist/core/generated/manuscript/domains/user/domains/user/v1.d.ts +196 -0
- package/dist/core/generated/manuscript/domains/user/domains/user/v1.d.ts.map +1 -0
- package/dist/core/generated/manuscript/domains/user/domains/user/v1.js +471 -0
- package/dist/core/generated/manuscript/domains/user/domains/user/v1.js.map +1 -0
- package/dist/core/generated/manuscript/domains/user/google/protobuf/descriptor.d.ts +1340 -0
- package/dist/core/generated/manuscript/domains/user/google/protobuf/descriptor.d.ts.map +1 -0
- package/dist/core/generated/manuscript/domains/user/google/protobuf/descriptor.js +2965 -0
- package/dist/core/generated/manuscript/domains/user/google/protobuf/descriptor.js.map +1 -0
- package/dist/core/generated/manuscript/domains/user/google/protobuf/struct.d.ts +131 -0
- package/dist/core/generated/manuscript/domains/user/google/protobuf/struct.d.ts.map +1 -0
- package/dist/core/generated/manuscript/domains/user/google/protobuf/struct.js +308 -0
- package/dist/core/generated/manuscript/domains/user/google/protobuf/struct.js.map +1 -0
- package/dist/core/generated/manuscript/domains/user/google/protobuf/timestamp.d.ts +133 -0
- package/dist/core/generated/manuscript/domains/user/google/protobuf/timestamp.d.ts.map +1 -0
- package/dist/core/generated/manuscript/domains/user/google/protobuf/timestamp.js +41 -0
- package/dist/core/generated/manuscript/domains/user/google/protobuf/timestamp.js.map +1 -0
- package/dist/core/generated/manuscript/domains/user/shared/v1.d.ts +132 -0
- package/dist/core/generated/manuscript/domains/user/shared/v1.d.ts.map +1 -0
- package/dist/core/generated/manuscript/domains/user/shared/v1.js +431 -0
- package/dist/core/generated/manuscript/domains/user/shared/v1.js.map +1 -0
- package/dist/core/generated/manuscript/domains/workspace/domains/workspace/v1.d.ts +68 -0
- package/dist/core/generated/manuscript/domains/workspace/domains/workspace/v1.d.ts.map +1 -0
- package/dist/core/generated/manuscript/domains/workspace/domains/workspace/v1.js +241 -0
- package/dist/core/generated/manuscript/domains/workspace/domains/workspace/v1.js.map +1 -0
- package/dist/core/generated/manuscript/domains/workspace/google/protobuf/descriptor.d.ts +1340 -0
- package/dist/core/generated/manuscript/domains/workspace/google/protobuf/descriptor.d.ts.map +1 -0
- package/dist/core/generated/manuscript/domains/workspace/google/protobuf/descriptor.js +2965 -0
- package/dist/core/generated/manuscript/domains/workspace/google/protobuf/descriptor.js.map +1 -0
- package/dist/core/generated/manuscript/domains/workspace/google/protobuf/struct.d.ts +131 -0
- package/dist/core/generated/manuscript/domains/workspace/google/protobuf/struct.d.ts.map +1 -0
- package/dist/core/generated/manuscript/domains/workspace/google/protobuf/struct.js +308 -0
- package/dist/core/generated/manuscript/domains/workspace/google/protobuf/struct.js.map +1 -0
- package/dist/core/generated/manuscript/domains/workspace/google/protobuf/timestamp.d.ts +133 -0
- package/dist/core/generated/manuscript/domains/workspace/google/protobuf/timestamp.d.ts.map +1 -0
- package/dist/core/generated/manuscript/domains/workspace/google/protobuf/timestamp.js +41 -0
- package/dist/core/generated/manuscript/domains/workspace/google/protobuf/timestamp.js.map +1 -0
- package/dist/core/generated/manuscript/domains/workspace/shared/v1.d.ts +132 -0
- package/dist/core/generated/manuscript/domains/workspace/shared/v1.d.ts.map +1 -0
- package/dist/core/generated/manuscript/domains/workspace/shared/v1.js +431 -0
- package/dist/core/generated/manuscript/domains/workspace/shared/v1.js.map +1 -0
- package/dist/core/generated/manuscript/shared/google/protobuf/descriptor.d.ts +1340 -0
- package/dist/core/generated/manuscript/shared/google/protobuf/descriptor.d.ts.map +1 -0
- package/dist/core/generated/manuscript/shared/google/protobuf/descriptor.js +2965 -0
- package/dist/core/generated/manuscript/shared/google/protobuf/descriptor.js.map +1 -0
- package/dist/core/generated/manuscript/shared/shared/v1.d.ts +132 -0
- package/dist/core/generated/manuscript/shared/shared/v1.d.ts.map +1 -0
- package/dist/core/generated/manuscript/shared/shared/v1.js +431 -0
- package/dist/core/generated/manuscript/shared/shared/v1.js.map +1 -0
- package/dist/core/generated/shared/base_event.d.ts +82 -0
- package/dist/core/generated/shared/base_event.d.ts.map +1 -0
- package/dist/core/generated/shared/base_event.js +261 -0
- package/dist/core/generated/shared/base_event.js.map +1 -0
- package/dist/core/generated/shared/collaboration_events.d.ts +226 -0
- package/dist/core/generated/shared/collaboration_events.d.ts.map +1 -0
- package/dist/core/generated/shared/collaboration_events.js +990 -0
- package/dist/core/generated/shared/collaboration_events.js.map +1 -0
- package/dist/core/generated/shared/document_events.d.ts +189 -0
- package/dist/core/generated/shared/document_events.d.ts.map +1 -0
- package/dist/core/generated/shared/document_events.js +808 -0
- package/dist/core/generated/shared/document_events.js.map +1 -0
- package/dist/core/generated/shared/google/protobuf/timestamp.d.ts +133 -0
- package/dist/core/generated/shared/google/protobuf/timestamp.d.ts.map +1 -0
- package/dist/core/generated/shared/google/protobuf/timestamp.js +41 -0
- package/dist/core/generated/shared/google/protobuf/timestamp.js.map +1 -0
- package/dist/core/generated/shared/user_events.d.ts +137 -0
- package/dist/core/generated/shared/user_events.d.ts.map +1 -0
- package/dist/core/generated/shared/user_events.js +55 -0
- package/dist/core/generated/shared/user_events.js.map +1 -0
- package/dist/core/generated/shared/workspace_events.d.ts +144 -0
- package/dist/core/generated/shared/workspace_events.d.ts.map +1 -0
- package/dist/core/generated/shared/workspace_events.js +61 -0
- package/dist/core/generated/shared/workspace_events.js.map +1 -0
- package/dist/core/index.d.ts +20 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +45 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/ot/index.d.ts +106 -0
- package/dist/core/ot/index.d.ts.map +1 -0
- package/dist/core/ot/index.js +293 -0
- package/dist/core/ot/index.js.map +1 -0
- package/dist/core/presence/index.d.ts +195 -0
- package/dist/core/presence/index.d.ts.map +1 -0
- package/dist/core/presence/index.js +364 -0
- package/dist/core/presence/index.js.map +1 -0
- package/dist/core/search/index.d.ts +103 -0
- package/dist/core/search/index.d.ts.map +1 -0
- package/dist/core/search/index.js +268 -0
- package/dist/core/search/index.js.map +1 -0
- package/dist/core/types/index.d.ts +389 -0
- package/dist/core/types/index.d.ts.map +1 -0
- package/dist/core/types/index.js +113 -0
- package/dist/core/types/index.js.map +1 -0
- package/dist/core/undo/commands.d.ts +109 -0
- package/dist/core/undo/commands.d.ts.map +1 -0
- package/dist/core/undo/commands.js +219 -0
- package/dist/core/undo/commands.js.map +1 -0
- package/dist/core/undo/index.d.ts +6 -0
- package/dist/core/undo/index.d.ts.map +1 -0
- package/dist/core/undo/index.js +6 -0
- package/dist/core/undo/index.js.map +1 -0
- package/dist/core/undo/manager.d.ts +94 -0
- package/dist/core/undo/manager.d.ts.map +1 -0
- package/dist/core/undo/manager.js +215 -0
- package/dist/core/undo/manager.js.map +1 -0
- package/dist/core/websocket/index.d.ts +105 -0
- package/dist/core/websocket/index.d.ts.map +1 -0
- package/dist/core/websocket/index.js +268 -0
- package/dist/core/websocket/index.js.map +1 -0
- package/dist/hooks/api/index.d.ts +18 -0
- package/dist/hooks/api/index.d.ts.map +1 -0
- package/dist/hooks/api/index.js +11 -0
- package/dist/hooks/api/index.js.map +1 -0
- package/dist/hooks/api/types.d.ts +70 -0
- package/dist/hooks/api/types.d.ts.map +1 -0
- package/dist/hooks/api/types.js +6 -0
- package/dist/hooks/api/types.js.map +1 -0
- package/dist/hooks/api/useDocument.d.ts +16 -0
- package/dist/hooks/api/useDocument.d.ts.map +1 -0
- package/dist/hooks/api/useDocument.js +81 -0
- package/dist/hooks/api/useDocument.js.map +1 -0
- package/dist/hooks/api/useFetch.d.ts +20 -0
- package/dist/hooks/api/useFetch.d.ts.map +1 -0
- package/dist/hooks/api/useFetch.js +69 -0
- package/dist/hooks/api/useFetch.js.map +1 -0
- package/dist/hooks/api/useForm.d.ts +30 -0
- package/dist/hooks/api/useForm.d.ts.map +1 -0
- package/dist/hooks/api/useForm.js +86 -0
- package/dist/hooks/api/useForm.js.map +1 -0
- package/dist/hooks/api/usePagination.d.ts +19 -0
- package/dist/hooks/api/usePagination.d.ts.map +1 -0
- package/dist/hooks/api/usePagination.js +60 -0
- package/dist/hooks/api/usePagination.js.map +1 -0
- package/dist/hooks/api/useSearch.d.ts +23 -0
- package/dist/hooks/api/useSearch.d.ts.map +1 -0
- package/dist/hooks/api/useSearch.js +44 -0
- package/dist/hooks/api/useSearch.js.map +1 -0
- package/dist/hooks/api/useUser.d.ts +15 -0
- package/dist/hooks/api/useUser.d.ts.map +1 -0
- package/dist/hooks/api/useUser.js +64 -0
- package/dist/hooks/api/useUser.js.map +1 -0
- package/dist/hooks/aria/index.d.ts +14 -0
- package/dist/hooks/aria/index.d.ts.map +1 -0
- package/dist/hooks/aria/index.js +9 -0
- package/dist/hooks/aria/index.js.map +1 -0
- package/dist/hooks/aria/types.d.ts +41 -0
- package/dist/hooks/aria/types.d.ts.map +1 -0
- package/dist/hooks/aria/types.js +6 -0
- package/dist/hooks/aria/types.js.map +1 -0
- package/dist/hooks/aria/useAI.d.ts +17 -0
- package/dist/hooks/aria/useAI.d.ts.map +1 -0
- package/dist/hooks/aria/useAI.js +40 -0
- package/dist/hooks/aria/useAI.js.map +1 -0
- package/dist/hooks/aria/useAIAnalysis.d.ts +13 -0
- package/dist/hooks/aria/useAIAnalysis.d.ts.map +1 -0
- package/dist/hooks/aria/useAIAnalysis.js +43 -0
- package/dist/hooks/aria/useAIAnalysis.js.map +1 -0
- package/dist/hooks/aria/useAIGrading.d.ts +13 -0
- package/dist/hooks/aria/useAIGrading.d.ts.map +1 -0
- package/dist/hooks/aria/useAIGrading.js +43 -0
- package/dist/hooks/aria/useAIGrading.js.map +1 -0
- package/dist/hooks/aria/useAISuggestions.d.ts +13 -0
- package/dist/hooks/aria/useAISuggestions.d.ts.map +1 -0
- package/dist/hooks/aria/useAISuggestions.js +39 -0
- package/dist/hooks/aria/useAISuggestions.js.map +1 -0
- package/dist/hooks/constants.d.ts +29 -0
- package/dist/hooks/constants.d.ts.map +1 -0
- package/dist/hooks/constants.js +29 -0
- package/dist/hooks/constants.js.map +1 -0
- package/dist/hooks/context/index.d.ts +32 -0
- package/dist/hooks/context/index.d.ts.map +1 -0
- package/dist/hooks/context/index.js +87 -0
- package/dist/hooks/context/index.js.map +1 -0
- package/dist/hooks/errors.d.ts +27 -0
- package/dist/hooks/errors.d.ts.map +1 -0
- package/dist/hooks/errors.js +45 -0
- package/dist/hooks/errors.js.map +1 -0
- package/dist/hooks/folio/index.d.ts +16 -0
- package/dist/hooks/folio/index.d.ts.map +1 -0
- package/dist/hooks/folio/index.js +10 -0
- package/dist/hooks/folio/index.js.map +1 -0
- package/dist/hooks/folio/types.d.ts +67 -0
- package/dist/hooks/folio/types.d.ts.map +1 -0
- package/dist/hooks/folio/types.js +6 -0
- package/dist/hooks/folio/types.js.map +1 -0
- package/dist/hooks/folio/useAnomalyDetection.d.ts +14 -0
- package/dist/hooks/folio/useAnomalyDetection.d.ts.map +1 -0
- package/dist/hooks/folio/useAnomalyDetection.js +40 -0
- package/dist/hooks/folio/useAnomalyDetection.js.map +1 -0
- package/dist/hooks/folio/useErrorTracking.d.ts +13 -0
- package/dist/hooks/folio/useErrorTracking.d.ts.map +1 -0
- package/dist/hooks/folio/useErrorTracking.js +36 -0
- package/dist/hooks/folio/useErrorTracking.js.map +1 -0
- package/dist/hooks/folio/useHealthCheck.d.ts +13 -0
- package/dist/hooks/folio/useHealthCheck.d.ts.map +1 -0
- package/dist/hooks/folio/useHealthCheck.js +50 -0
- package/dist/hooks/folio/useHealthCheck.js.map +1 -0
- package/dist/hooks/folio/useMetrics.d.ts +14 -0
- package/dist/hooks/folio/useMetrics.d.ts.map +1 -0
- package/dist/hooks/folio/useMetrics.js +54 -0
- package/dist/hooks/folio/useMetrics.js.map +1 -0
- package/dist/hooks/folio/usePerformance.d.ts +16 -0
- package/dist/hooks/folio/usePerformance.d.ts.map +1 -0
- package/dist/hooks/folio/usePerformance.js +64 -0
- package/dist/hooks/folio/usePerformance.js.map +1 -0
- package/dist/hooks/index.d.ts +32 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +50 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/relay/index.d.ts +16 -0
- package/dist/hooks/relay/index.d.ts.map +1 -0
- package/dist/hooks/relay/index.js +10 -0
- package/dist/hooks/relay/index.js.map +1 -0
- package/dist/hooks/relay/types.d.ts +77 -0
- package/dist/hooks/relay/types.d.ts.map +1 -0
- package/dist/hooks/relay/types.js +6 -0
- package/dist/hooks/relay/types.js.map +1 -0
- package/dist/hooks/relay/useCollaboration.d.ts +16 -0
- package/dist/hooks/relay/useCollaboration.d.ts.map +1 -0
- package/dist/hooks/relay/useCollaboration.js +41 -0
- package/dist/hooks/relay/useCollaboration.js.map +1 -0
- package/dist/hooks/relay/useOT.d.ts +8 -0
- package/dist/hooks/relay/useOT.d.ts.map +1 -0
- package/dist/hooks/relay/useOT.js +67 -0
- package/dist/hooks/relay/useOT.js.map +1 -0
- package/dist/hooks/relay/useOTSync.d.ts +8 -0
- package/dist/hooks/relay/useOTSync.d.ts.map +1 -0
- package/dist/hooks/relay/useOTSync.js +57 -0
- package/dist/hooks/relay/useOTSync.js.map +1 -0
- package/dist/hooks/relay/usePresence.d.ts +8 -0
- package/dist/hooks/relay/usePresence.d.ts.map +1 -0
- package/dist/hooks/relay/usePresence.js +36 -0
- package/dist/hooks/relay/usePresence.js.map +1 -0
- package/dist/hooks/relay/useWebSocket.d.ts +14 -0
- package/dist/hooks/relay/useWebSocket.d.ts.map +1 -0
- package/dist/hooks/relay/useWebSocket.js +89 -0
- package/dist/hooks/relay/useWebSocket.js.map +1 -0
- package/dist/hooks/services/ApiClient.d.ts +69 -0
- package/dist/hooks/services/ApiClient.d.ts.map +1 -0
- package/dist/hooks/services/ApiClient.js +182 -0
- package/dist/hooks/services/ApiClient.js.map +1 -0
- package/dist/hooks/services/AriaClient.d.ts +51 -0
- package/dist/hooks/services/AriaClient.d.ts.map +1 -0
- package/dist/hooks/services/AriaClient.js +172 -0
- package/dist/hooks/services/AriaClient.js.map +1 -0
- package/dist/hooks/services/FolioClient.d.ts +73 -0
- package/dist/hooks/services/FolioClient.d.ts.map +1 -0
- package/dist/hooks/services/FolioClient.js +241 -0
- package/dist/hooks/services/FolioClient.js.map +1 -0
- package/dist/hooks/services/RelayClient.d.ts +50 -0
- package/dist/hooks/services/RelayClient.d.ts.map +1 -0
- package/dist/hooks/services/RelayClient.js +241 -0
- package/dist/hooks/services/RelayClient.js.map +1 -0
- package/dist/hooks/services/ShieldClient.d.ts +76 -0
- package/dist/hooks/services/ShieldClient.d.ts.map +1 -0
- package/dist/hooks/services/ShieldClient.js +267 -0
- package/dist/hooks/services/ShieldClient.js.map +1 -0
- package/dist/hooks/services/index.d.ts +10 -0
- package/dist/hooks/services/index.d.ts.map +1 -0
- package/dist/hooks/services/index.js +10 -0
- package/dist/hooks/services/index.js.map +1 -0
- package/dist/hooks/shield/index.d.ts +16 -0
- package/dist/hooks/shield/index.d.ts.map +1 -0
- package/dist/hooks/shield/index.js +10 -0
- package/dist/hooks/shield/index.js.map +1 -0
- package/dist/hooks/shield/types.d.ts +66 -0
- package/dist/hooks/shield/types.d.ts.map +1 -0
- package/dist/hooks/shield/types.js +6 -0
- package/dist/hooks/shield/types.js.map +1 -0
- package/dist/hooks/shield/useAdmin.d.ts +16 -0
- package/dist/hooks/shield/useAdmin.d.ts.map +1 -0
- package/dist/hooks/shield/useAdmin.js +35 -0
- package/dist/hooks/shield/useAdmin.js.map +1 -0
- package/dist/hooks/shield/useAuth.d.ts +16 -0
- package/dist/hooks/shield/useAuth.d.ts.map +1 -0
- package/dist/hooks/shield/useAuth.js +64 -0
- package/dist/hooks/shield/useAuth.js.map +1 -0
- package/dist/hooks/shield/useOrganization.d.ts +15 -0
- package/dist/hooks/shield/useOrganization.d.ts.map +1 -0
- package/dist/hooks/shield/useOrganization.js +64 -0
- package/dist/hooks/shield/useOrganization.js.map +1 -0
- package/dist/hooks/shield/usePermissions.d.ts +14 -0
- package/dist/hooks/shield/usePermissions.d.ts.map +1 -0
- package/dist/hooks/shield/usePermissions.js +43 -0
- package/dist/hooks/shield/usePermissions.js.map +1 -0
- package/dist/hooks/shield/useWorkspace.d.ts +15 -0
- package/dist/hooks/shield/useWorkspace.d.ts.map +1 -0
- package/dist/hooks/shield/useWorkspace.js +64 -0
- package/dist/hooks/shield/useWorkspace.js.map +1 -0
- package/dist/hooks/types.d.ts +33 -0
- package/dist/hooks/types.d.ts.map +1 -0
- package/dist/hooks/types.js +7 -0
- package/dist/hooks/types.js.map +1 -0
- package/dist/hooks/utils/index.d.ts +20 -0
- package/dist/hooks/utils/index.d.ts.map +1 -0
- package/dist/hooks/utils/index.js +12 -0
- package/dist/hooks/utils/index.js.map +1 -0
- package/dist/hooks/utils/types.d.ts +45 -0
- package/dist/hooks/utils/types.d.ts.map +1 -0
- package/dist/hooks/utils/types.js +6 -0
- package/dist/hooks/utils/types.js.map +1 -0
- package/dist/hooks/utils/useAsync.d.ts +13 -0
- package/dist/hooks/utils/useAsync.d.ts.map +1 -0
- package/dist/hooks/utils/useAsync.js +36 -0
- package/dist/hooks/utils/useAsync.js.map +1 -0
- package/dist/hooks/utils/useCommandPalette.d.ts +8 -0
- package/dist/hooks/utils/useCommandPalette.d.ts.map +1 -0
- package/dist/hooks/utils/useCommandPalette.js +40 -0
- package/dist/hooks/utils/useCommandPalette.js.map +1 -0
- package/dist/hooks/utils/useDebounce.d.ts +8 -0
- package/dist/hooks/utils/useDebounce.d.ts.map +1 -0
- package/dist/hooks/utils/useDebounce.js +25 -0
- package/dist/hooks/utils/useDebounce.js.map +1 -0
- package/dist/hooks/utils/useLocalStorage.d.ts +12 -0
- package/dist/hooks/utils/useLocalStorage.d.ts.map +1 -0
- package/dist/hooks/utils/useLocalStorage.js +51 -0
- package/dist/hooks/utils/useLocalStorage.js.map +1 -0
- package/dist/hooks/utils/useOnClickOutside.d.ts +8 -0
- package/dist/hooks/utils/useOnClickOutside.d.ts.map +1 -0
- package/dist/hooks/utils/useOnClickOutside.js +17 -0
- package/dist/hooks/utils/useOnClickOutside.js.map +1 -0
- package/dist/hooks/utils/useThrottle.d.ts +8 -0
- package/dist/hooks/utils/useThrottle.d.ts.map +1 -0
- package/dist/hooks/utils/useThrottle.js +35 -0
- package/dist/hooks/utils/useThrottle.js.map +1 -0
- package/dist/hooks/utils/useUndoRedo.d.ts +20 -0
- package/dist/hooks/utils/useUndoRedo.d.ts.map +1 -0
- package/dist/hooks/utils/useUndoRedo.js +58 -0
- package/dist/hooks/utils/useUndoRedo.js.map +1 -0
- package/dist/hooks/utils/useWindowResize.d.ts +8 -0
- package/dist/hooks/utils/useWindowResize.d.ts.map +1 -0
- package/dist/hooks/utils/useWindowResize.js +16 -0
- package/dist/hooks/utils/useWindowResize.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.js +5 -0
- package/dist/ui/index.d.ts +11 -0
- package/dist/ui/index.d.ts.map +1 -0
- package/dist/ui/index.js +14 -0
- package/dist/ui/index.js.map +1 -0
- package/dist/ui/primitives/accordion/Accordion.d.ts +40 -0
- package/dist/ui/primitives/accordion/Accordion.d.ts.map +1 -0
- package/dist/ui/primitives/accordion/Accordion.js +47 -0
- package/dist/ui/primitives/accordion/Accordion.js.map +1 -0
- package/dist/ui/primitives/accordion/index.d.ts +3 -0
- package/dist/ui/primitives/accordion/index.d.ts.map +1 -0
- package/dist/ui/primitives/accordion/index.js +2 -0
- package/dist/ui/primitives/accordion/index.js.map +1 -0
- package/dist/ui/primitives/alert/Alert.d.ts +37 -0
- package/dist/ui/primitives/alert/Alert.d.ts.map +1 -0
- package/dist/ui/primitives/alert/Alert.js +52 -0
- package/dist/ui/primitives/alert/Alert.js.map +1 -0
- package/dist/ui/primitives/alert/index.d.ts +3 -0
- package/dist/ui/primitives/alert/index.d.ts.map +1 -0
- package/dist/ui/primitives/alert/index.js +2 -0
- package/dist/ui/primitives/alert/index.js.map +1 -0
- package/dist/ui/primitives/badge/Badge.d.ts +29 -0
- package/dist/ui/primitives/badge/Badge.d.ts.map +1 -0
- package/dist/ui/primitives/badge/Badge.js +36 -0
- package/dist/ui/primitives/badge/Badge.js.map +1 -0
- package/dist/ui/primitives/badge/index.d.ts +3 -0
- package/dist/ui/primitives/badge/index.d.ts.map +1 -0
- package/dist/ui/primitives/badge/index.js +2 -0
- package/dist/ui/primitives/badge/index.js.map +1 -0
- package/dist/ui/primitives/button/Button.d.ts +31 -0
- package/dist/ui/primitives/button/Button.d.ts.map +1 -0
- package/dist/ui/primitives/button/Button.js +26 -0
- package/dist/ui/primitives/button/Button.js.map +1 -0
- package/dist/ui/primitives/button/index.d.ts +3 -0
- package/dist/ui/primitives/button/index.d.ts.map +1 -0
- package/dist/ui/primitives/button/index.js +2 -0
- package/dist/ui/primitives/button/index.js.map +1 -0
- package/dist/ui/primitives/card/Card.d.ts +34 -0
- package/dist/ui/primitives/card/Card.d.ts.map +1 -0
- package/dist/ui/primitives/card/Card.js +28 -0
- package/dist/ui/primitives/card/Card.js.map +1 -0
- package/dist/ui/primitives/card/index.d.ts +3 -0
- package/dist/ui/primitives/card/index.d.ts.map +1 -0
- package/dist/ui/primitives/card/index.js +2 -0
- package/dist/ui/primitives/card/index.js.map +1 -0
- package/dist/ui/primitives/checkbox/Checkbox.d.ts +26 -0
- package/dist/ui/primitives/checkbox/Checkbox.d.ts.map +1 -0
- package/dist/ui/primitives/checkbox/Checkbox.js +31 -0
- package/dist/ui/primitives/checkbox/Checkbox.js.map +1 -0
- package/dist/ui/primitives/checkbox/index.d.ts +3 -0
- package/dist/ui/primitives/checkbox/index.d.ts.map +1 -0
- package/dist/ui/primitives/checkbox/index.js +2 -0
- package/dist/ui/primitives/checkbox/index.js.map +1 -0
- package/dist/ui/primitives/dialog/Dialog.d.ts +57 -0
- package/dist/ui/primitives/dialog/Dialog.d.ts.map +1 -0
- package/dist/ui/primitives/dialog/Dialog.js +60 -0
- package/dist/ui/primitives/dialog/Dialog.js.map +1 -0
- package/dist/ui/primitives/dialog/index.d.ts +3 -0
- package/dist/ui/primitives/dialog/index.d.ts.map +1 -0
- package/dist/ui/primitives/dialog/index.js +2 -0
- package/dist/ui/primitives/dialog/index.js.map +1 -0
- package/dist/ui/primitives/dropdown/Dropdown.d.ts +43 -0
- package/dist/ui/primitives/dropdown/Dropdown.d.ts.map +1 -0
- package/dist/ui/primitives/dropdown/Dropdown.js +60 -0
- package/dist/ui/primitives/dropdown/Dropdown.js.map +1 -0
- package/dist/ui/primitives/dropdown/index.d.ts +3 -0
- package/dist/ui/primitives/dropdown/index.d.ts.map +1 -0
- package/dist/ui/primitives/dropdown/index.js +2 -0
- package/dist/ui/primitives/dropdown/index.js.map +1 -0
- package/dist/ui/primitives/index.d.ts +46 -0
- package/dist/ui/primitives/index.d.ts.map +1 -0
- package/dist/ui/primitives/index.js +34 -0
- package/dist/ui/primitives/index.js.map +1 -0
- package/dist/ui/primitives/input/Input.d.ts +47 -0
- package/dist/ui/primitives/input/Input.d.ts.map +1 -0
- package/dist/ui/primitives/input/Input.js +36 -0
- package/dist/ui/primitives/input/Input.js.map +1 -0
- package/dist/ui/primitives/input/index.d.ts +3 -0
- package/dist/ui/primitives/input/index.d.ts.map +1 -0
- package/dist/ui/primitives/input/index.js +2 -0
- package/dist/ui/primitives/input/index.js.map +1 -0
- package/dist/ui/primitives/label/Label.d.ts +22 -0
- package/dist/ui/primitives/label/Label.d.ts.map +1 -0
- package/dist/ui/primitives/label/Label.js +23 -0
- package/dist/ui/primitives/label/Label.js.map +1 -0
- package/dist/ui/primitives/label/index.d.ts +3 -0
- package/dist/ui/primitives/label/index.d.ts.map +1 -0
- package/dist/ui/primitives/label/index.js +2 -0
- package/dist/ui/primitives/label/index.js.map +1 -0
- package/dist/ui/primitives/popover/Popover.d.ts +39 -0
- package/dist/ui/primitives/popover/Popover.d.ts.map +1 -0
- package/dist/ui/primitives/popover/Popover.js +53 -0
- package/dist/ui/primitives/popover/Popover.js.map +1 -0
- package/dist/ui/primitives/popover/index.d.ts +3 -0
- package/dist/ui/primitives/popover/index.d.ts.map +1 -0
- package/dist/ui/primitives/popover/index.js +2 -0
- package/dist/ui/primitives/popover/index.js.map +1 -0
- package/dist/ui/primitives/radio/Radio.d.ts +22 -0
- package/dist/ui/primitives/radio/Radio.d.ts.map +1 -0
- package/dist/ui/primitives/radio/Radio.js +24 -0
- package/dist/ui/primitives/radio/Radio.js.map +1 -0
- package/dist/ui/primitives/radio/index.d.ts +3 -0
- package/dist/ui/primitives/radio/index.d.ts.map +1 -0
- package/dist/ui/primitives/radio/index.js +2 -0
- package/dist/ui/primitives/radio/index.js.map +1 -0
- package/dist/ui/primitives/select/Select.d.ts +41 -0
- package/dist/ui/primitives/select/Select.d.ts.map +1 -0
- package/dist/ui/primitives/select/Select.js +31 -0
- package/dist/ui/primitives/select/Select.js.map +1 -0
- package/dist/ui/primitives/select/index.d.ts +3 -0
- package/dist/ui/primitives/select/index.d.ts.map +1 -0
- package/dist/ui/primitives/select/index.js +2 -0
- package/dist/ui/primitives/select/index.js.map +1 -0
- package/dist/ui/primitives/spinner/Spinner.d.ts +26 -0
- package/dist/ui/primitives/spinner/Spinner.d.ts.map +1 -0
- package/dist/ui/primitives/spinner/Spinner.js +30 -0
- package/dist/ui/primitives/spinner/Spinner.js.map +1 -0
- package/dist/ui/primitives/spinner/index.d.ts +3 -0
- package/dist/ui/primitives/spinner/index.d.ts.map +1 -0
- package/dist/ui/primitives/spinner/index.js +2 -0
- package/dist/ui/primitives/spinner/index.js.map +1 -0
- package/dist/ui/primitives/switch/Switch.d.ts +22 -0
- package/dist/ui/primitives/switch/Switch.d.ts.map +1 -0
- package/dist/ui/primitives/switch/Switch.js +27 -0
- package/dist/ui/primitives/switch/Switch.js.map +1 -0
- package/dist/ui/primitives/switch/index.d.ts +3 -0
- package/dist/ui/primitives/switch/index.d.ts.map +1 -0
- package/dist/ui/primitives/switch/index.js +2 -0
- package/dist/ui/primitives/switch/index.js.map +1 -0
- package/dist/ui/primitives/tabs/Tabs.d.ts +37 -0
- package/dist/ui/primitives/tabs/Tabs.d.ts.map +1 -0
- package/dist/ui/primitives/tabs/Tabs.js +36 -0
- package/dist/ui/primitives/tabs/Tabs.js.map +1 -0
- package/dist/ui/primitives/tabs/index.d.ts +3 -0
- package/dist/ui/primitives/tabs/index.d.ts.map +1 -0
- package/dist/ui/primitives/tabs/index.js +2 -0
- package/dist/ui/primitives/tabs/index.js.map +1 -0
- package/dist/ui/primitives/textarea/TextArea.d.ts +40 -0
- package/dist/ui/primitives/textarea/TextArea.d.ts.map +1 -0
- package/dist/ui/primitives/textarea/TextArea.js +32 -0
- package/dist/ui/primitives/textarea/TextArea.js.map +1 -0
- package/dist/ui/primitives/textarea/index.d.ts +3 -0
- package/dist/ui/primitives/textarea/index.d.ts.map +1 -0
- package/dist/ui/primitives/textarea/index.js +2 -0
- package/dist/ui/primitives/textarea/index.js.map +1 -0
- package/dist/ui/primitives/toast/Toast.d.ts +48 -0
- package/dist/ui/primitives/toast/Toast.d.ts.map +1 -0
- package/dist/ui/primitives/toast/Toast.js +87 -0
- package/dist/ui/primitives/toast/Toast.js.map +1 -0
- package/dist/ui/primitives/toast/index.d.ts +3 -0
- package/dist/ui/primitives/toast/index.d.ts.map +1 -0
- package/dist/ui/primitives/toast/index.js +2 -0
- package/dist/ui/primitives/toast/index.js.map +1 -0
- package/dist/ui/styles/index.css +193 -0
- package/dist/ui/tokens/design-tokens.d.ts +509 -0
- package/dist/ui/tokens/design-tokens.d.ts.map +1 -0
- package/dist/ui/tokens/design-tokens.js +300 -0
- package/dist/ui/tokens/design-tokens.js.map +1 -0
- package/dist/ui/tokens/index.d.ts +9 -0
- package/dist/ui/tokens/index.d.ts.map +1 -0
- package/dist/ui/tokens/index.js +12 -0
- package/dist/ui/tokens/index.js.map +1 -0
- package/package.json +212 -0
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Real-time Collaboration Features
|
|
3
|
+
* Presence tracking, awareness protocol, cursor positions, activity indicators
|
|
4
|
+
*/
|
|
5
|
+
export interface UserPresence {
|
|
6
|
+
userId: string;
|
|
7
|
+
username: string;
|
|
8
|
+
color: string;
|
|
9
|
+
cursorPosition: number;
|
|
10
|
+
selectionStart: number;
|
|
11
|
+
selectionEnd: number;
|
|
12
|
+
isActive: boolean;
|
|
13
|
+
lastActivity: number;
|
|
14
|
+
contentVersion: number;
|
|
15
|
+
document: string;
|
|
16
|
+
}
|
|
17
|
+
export interface AwarenessEvent {
|
|
18
|
+
type: 'presence-update' | 'cursor-move' | 'selection-change' | 'user-left';
|
|
19
|
+
userId: string;
|
|
20
|
+
timestamp: number;
|
|
21
|
+
data: Partial<UserPresence>;
|
|
22
|
+
}
|
|
23
|
+
export interface ConflictIndicator {
|
|
24
|
+
conflictId: string;
|
|
25
|
+
operationId: string;
|
|
26
|
+
userId: string;
|
|
27
|
+
position: number;
|
|
28
|
+
content: string;
|
|
29
|
+
timestamp: number;
|
|
30
|
+
resolved: boolean;
|
|
31
|
+
resolution?: 'keep' | 'discard' | 'merge';
|
|
32
|
+
}
|
|
33
|
+
export interface SyncStatus {
|
|
34
|
+
isConnected: boolean;
|
|
35
|
+
isSyncing: boolean;
|
|
36
|
+
lastSyncTime: number;
|
|
37
|
+
pendingOperationCount: number;
|
|
38
|
+
conflictCount: number;
|
|
39
|
+
latency: number;
|
|
40
|
+
}
|
|
41
|
+
export declare class PresenceManager {
|
|
42
|
+
private currentUserId;
|
|
43
|
+
private currentUsername;
|
|
44
|
+
private presenceMap;
|
|
45
|
+
private updateListeners;
|
|
46
|
+
private heartbeatInterval;
|
|
47
|
+
private heartbeatTimeout;
|
|
48
|
+
private inactivityTimeout;
|
|
49
|
+
private maxColorIndex;
|
|
50
|
+
private readonly colors;
|
|
51
|
+
constructor(currentUserId: string, currentUsername: string);
|
|
52
|
+
private initializeCurrentUser;
|
|
53
|
+
private getNextColor;
|
|
54
|
+
/**
|
|
55
|
+
* Update user presence with new cursor position
|
|
56
|
+
*/
|
|
57
|
+
updateCursorPosition(userId: string, position: number): void;
|
|
58
|
+
/**
|
|
59
|
+
* Update user selection range
|
|
60
|
+
*/
|
|
61
|
+
updateSelection(userId: string, start: number, end: number): void;
|
|
62
|
+
/**
|
|
63
|
+
* Add new user to presence map
|
|
64
|
+
*/
|
|
65
|
+
addUser(userId: string, username: string): UserPresence;
|
|
66
|
+
/**
|
|
67
|
+
* Remove user from presence map
|
|
68
|
+
*/
|
|
69
|
+
removeUser(userId: string): boolean;
|
|
70
|
+
/**
|
|
71
|
+
* Get presence for specific user
|
|
72
|
+
*/
|
|
73
|
+
getPresence(userId: string): UserPresence | undefined;
|
|
74
|
+
/**
|
|
75
|
+
* Get all active presences
|
|
76
|
+
*/
|
|
77
|
+
getAllPresences(): UserPresence[];
|
|
78
|
+
/**
|
|
79
|
+
* Get other users' presences (exclude current user)
|
|
80
|
+
*/
|
|
81
|
+
getOtherPresences(): UserPresence[];
|
|
82
|
+
/**
|
|
83
|
+
* Mark user as inactive after timeout
|
|
84
|
+
*/
|
|
85
|
+
private startHeartbeat;
|
|
86
|
+
/**
|
|
87
|
+
* Subscribe to presence updates
|
|
88
|
+
*/
|
|
89
|
+
subscribe(listener: (event: AwarenessEvent) => void): () => void;
|
|
90
|
+
/**
|
|
91
|
+
* Emit awareness event
|
|
92
|
+
*/
|
|
93
|
+
private emitEvent;
|
|
94
|
+
/**
|
|
95
|
+
* Cleanup resources
|
|
96
|
+
*/
|
|
97
|
+
destroy(): void;
|
|
98
|
+
/**
|
|
99
|
+
* Get presence state for serialization
|
|
100
|
+
*/
|
|
101
|
+
getState(): Map<string, UserPresence>;
|
|
102
|
+
}
|
|
103
|
+
export declare class ConflictResolver {
|
|
104
|
+
private conflicts;
|
|
105
|
+
private resolutionListeners;
|
|
106
|
+
/**
|
|
107
|
+
* Record a conflict
|
|
108
|
+
*/
|
|
109
|
+
recordConflict(operationId: string, userId: string, position: number, content: string): ConflictIndicator;
|
|
110
|
+
/**
|
|
111
|
+
* Resolve conflict with decision
|
|
112
|
+
*/
|
|
113
|
+
resolveConflict(conflictId: string, resolution: 'keep' | 'discard' | 'merge'): boolean;
|
|
114
|
+
/**
|
|
115
|
+
* Get unresolved conflicts
|
|
116
|
+
*/
|
|
117
|
+
getUnresolvedConflicts(): ConflictIndicator[];
|
|
118
|
+
/**
|
|
119
|
+
* Get all conflicts for user
|
|
120
|
+
*/
|
|
121
|
+
getConflictsByUser(userId: string): ConflictIndicator[];
|
|
122
|
+
/**
|
|
123
|
+
* Clear resolved conflicts
|
|
124
|
+
*/
|
|
125
|
+
clearResolved(): void;
|
|
126
|
+
/**
|
|
127
|
+
* Subscribe to conflict events
|
|
128
|
+
*/
|
|
129
|
+
subscribe(listener: (conflict: ConflictIndicator) => void): () => void;
|
|
130
|
+
private notifyListeners;
|
|
131
|
+
/**
|
|
132
|
+
* Get conflict state
|
|
133
|
+
*/
|
|
134
|
+
getState(): Map<string, ConflictIndicator>;
|
|
135
|
+
}
|
|
136
|
+
export declare class SyncStatusManager {
|
|
137
|
+
private status;
|
|
138
|
+
private statusListeners;
|
|
139
|
+
/**
|
|
140
|
+
* Update connection status
|
|
141
|
+
*/
|
|
142
|
+
setConnected(connected: boolean): void;
|
|
143
|
+
/**
|
|
144
|
+
* Update syncing status
|
|
145
|
+
*/
|
|
146
|
+
setSyncing(syncing: boolean): void;
|
|
147
|
+
/**
|
|
148
|
+
* Update pending operation count
|
|
149
|
+
*/
|
|
150
|
+
setPendingOperationCount(count: number): void;
|
|
151
|
+
/**
|
|
152
|
+
* Update conflict count
|
|
153
|
+
*/
|
|
154
|
+
setConflictCount(count: number): void;
|
|
155
|
+
/**
|
|
156
|
+
* Update network latency
|
|
157
|
+
*/
|
|
158
|
+
setLatency(latency: number): void;
|
|
159
|
+
/**
|
|
160
|
+
* Get current status
|
|
161
|
+
*/
|
|
162
|
+
getStatus(): SyncStatus;
|
|
163
|
+
/**
|
|
164
|
+
* Check if sync is healthy
|
|
165
|
+
*/
|
|
166
|
+
isHealthy(): boolean;
|
|
167
|
+
/**
|
|
168
|
+
* Subscribe to status changes
|
|
169
|
+
*/
|
|
170
|
+
subscribe(listener: (status: SyncStatus) => void): () => void;
|
|
171
|
+
private notifyListeners;
|
|
172
|
+
}
|
|
173
|
+
export declare class CollaborationManager {
|
|
174
|
+
private presenceManager;
|
|
175
|
+
private conflictResolver;
|
|
176
|
+
private syncStatusManager;
|
|
177
|
+
constructor(currentUserId: string, currentUsername: string);
|
|
178
|
+
/**
|
|
179
|
+
* Get presence manager
|
|
180
|
+
*/
|
|
181
|
+
getPresenceManager(): PresenceManager;
|
|
182
|
+
/**
|
|
183
|
+
* Get conflict resolver
|
|
184
|
+
*/
|
|
185
|
+
getConflictResolver(): ConflictResolver;
|
|
186
|
+
/**
|
|
187
|
+
* Get sync status manager
|
|
188
|
+
*/
|
|
189
|
+
getSyncStatusManager(): SyncStatusManager;
|
|
190
|
+
/**
|
|
191
|
+
* Cleanup all managers
|
|
192
|
+
*/
|
|
193
|
+
destroy(): void;
|
|
194
|
+
}
|
|
195
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/presence/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,364 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Real-time Collaboration Features
|
|
3
|
+
* Presence tracking, awareness protocol, cursor positions, activity indicators
|
|
4
|
+
*/
|
|
5
|
+
export class PresenceManager {
|
|
6
|
+
constructor(currentUserId, currentUsername) {
|
|
7
|
+
this.currentUserId = currentUserId;
|
|
8
|
+
this.currentUsername = currentUsername;
|
|
9
|
+
this.presenceMap = new Map();
|
|
10
|
+
this.updateListeners = new Set();
|
|
11
|
+
this.heartbeatInterval = null;
|
|
12
|
+
this.heartbeatTimeout = 5000;
|
|
13
|
+
this.inactivityTimeout = 30000;
|
|
14
|
+
this.maxColorIndex = 0;
|
|
15
|
+
this.colors = [
|
|
16
|
+
'#FF6B6B', // Red
|
|
17
|
+
'#4ECDC4', // Teal
|
|
18
|
+
'#45B7D1', // Blue
|
|
19
|
+
'#FFA07A', // Light Salmon
|
|
20
|
+
'#98D8C8', // Mint
|
|
21
|
+
'#F7DC6F', // Yellow
|
|
22
|
+
'#BB8FCE', // Purple
|
|
23
|
+
'#85C1E2', // Light Blue
|
|
24
|
+
];
|
|
25
|
+
this.initializeCurrentUser();
|
|
26
|
+
this.startHeartbeat();
|
|
27
|
+
}
|
|
28
|
+
initializeCurrentUser() {
|
|
29
|
+
this.presenceMap.set(this.currentUserId, {
|
|
30
|
+
userId: this.currentUserId,
|
|
31
|
+
username: this.currentUsername,
|
|
32
|
+
color: this.getNextColor(),
|
|
33
|
+
cursorPosition: 0,
|
|
34
|
+
selectionStart: 0,
|
|
35
|
+
selectionEnd: 0,
|
|
36
|
+
isActive: true,
|
|
37
|
+
lastActivity: Date.now(),
|
|
38
|
+
contentVersion: 0,
|
|
39
|
+
document: '',
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
getNextColor() {
|
|
43
|
+
const color = this.colors[this.maxColorIndex % this.colors.length];
|
|
44
|
+
this.maxColorIndex++;
|
|
45
|
+
return color;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Update user presence with new cursor position
|
|
49
|
+
*/
|
|
50
|
+
updateCursorPosition(userId, position) {
|
|
51
|
+
const presence = this.presenceMap.get(userId);
|
|
52
|
+
if (!presence)
|
|
53
|
+
return;
|
|
54
|
+
presence.cursorPosition = position;
|
|
55
|
+
presence.lastActivity = Date.now();
|
|
56
|
+
presence.isActive = true;
|
|
57
|
+
this.emitEvent({
|
|
58
|
+
type: 'cursor-move',
|
|
59
|
+
userId,
|
|
60
|
+
timestamp: Date.now(),
|
|
61
|
+
data: { cursorPosition: position },
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Update user selection range
|
|
66
|
+
*/
|
|
67
|
+
updateSelection(userId, start, end) {
|
|
68
|
+
const presence = this.presenceMap.get(userId);
|
|
69
|
+
if (!presence)
|
|
70
|
+
return;
|
|
71
|
+
presence.selectionStart = start;
|
|
72
|
+
presence.selectionEnd = end;
|
|
73
|
+
presence.lastActivity = Date.now();
|
|
74
|
+
presence.isActive = true;
|
|
75
|
+
this.emitEvent({
|
|
76
|
+
type: 'selection-change',
|
|
77
|
+
userId,
|
|
78
|
+
timestamp: Date.now(),
|
|
79
|
+
data: { selectionStart: start, selectionEnd: end },
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Add new user to presence map
|
|
84
|
+
*/
|
|
85
|
+
addUser(userId, username) {
|
|
86
|
+
const presence = {
|
|
87
|
+
userId,
|
|
88
|
+
username,
|
|
89
|
+
color: this.getNextColor(),
|
|
90
|
+
cursorPosition: 0,
|
|
91
|
+
selectionStart: 0,
|
|
92
|
+
selectionEnd: 0,
|
|
93
|
+
isActive: true,
|
|
94
|
+
lastActivity: Date.now(),
|
|
95
|
+
contentVersion: 0,
|
|
96
|
+
document: '',
|
|
97
|
+
};
|
|
98
|
+
this.presenceMap.set(userId, presence);
|
|
99
|
+
this.emitEvent({
|
|
100
|
+
type: 'presence-update',
|
|
101
|
+
userId,
|
|
102
|
+
timestamp: Date.now(),
|
|
103
|
+
data: presence,
|
|
104
|
+
});
|
|
105
|
+
return presence;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Remove user from presence map
|
|
109
|
+
*/
|
|
110
|
+
removeUser(userId) {
|
|
111
|
+
const removed = this.presenceMap.delete(userId);
|
|
112
|
+
if (removed) {
|
|
113
|
+
this.emitEvent({
|
|
114
|
+
type: 'user-left',
|
|
115
|
+
userId,
|
|
116
|
+
timestamp: Date.now(),
|
|
117
|
+
data: {},
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
return removed;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Get presence for specific user
|
|
124
|
+
*/
|
|
125
|
+
getPresence(userId) {
|
|
126
|
+
return this.presenceMap.get(userId);
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Get all active presences
|
|
130
|
+
*/
|
|
131
|
+
getAllPresences() {
|
|
132
|
+
return Array.from(this.presenceMap.values());
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Get other users' presences (exclude current user)
|
|
136
|
+
*/
|
|
137
|
+
getOtherPresences() {
|
|
138
|
+
return Array.from(this.presenceMap.values()).filter((p) => p.userId !== this.currentUserId);
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Mark user as inactive after timeout
|
|
142
|
+
*/
|
|
143
|
+
startHeartbeat() {
|
|
144
|
+
this.heartbeatInterval = setInterval(() => {
|
|
145
|
+
const now = Date.now();
|
|
146
|
+
this.presenceMap.forEach((presence, userId) => {
|
|
147
|
+
if (userId !== this.currentUserId && now - presence.lastActivity > this.inactivityTimeout) {
|
|
148
|
+
presence.isActive = false;
|
|
149
|
+
}
|
|
150
|
+
});
|
|
151
|
+
}, this.heartbeatTimeout);
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Subscribe to presence updates
|
|
155
|
+
*/
|
|
156
|
+
subscribe(listener) {
|
|
157
|
+
this.updateListeners.add(listener);
|
|
158
|
+
return () => this.updateListeners.delete(listener);
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Emit awareness event
|
|
162
|
+
*/
|
|
163
|
+
emitEvent(event) {
|
|
164
|
+
this.updateListeners.forEach((listener) => listener(event));
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Cleanup resources
|
|
168
|
+
*/
|
|
169
|
+
destroy() {
|
|
170
|
+
if (this.heartbeatInterval) {
|
|
171
|
+
clearInterval(this.heartbeatInterval);
|
|
172
|
+
}
|
|
173
|
+
this.presenceMap.clear();
|
|
174
|
+
this.updateListeners.clear();
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Get presence state for serialization
|
|
178
|
+
*/
|
|
179
|
+
getState() {
|
|
180
|
+
return new Map(this.presenceMap);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
export class ConflictResolver {
|
|
184
|
+
constructor() {
|
|
185
|
+
this.conflicts = new Map();
|
|
186
|
+
this.resolutionListeners = new Set();
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Record a conflict
|
|
190
|
+
*/
|
|
191
|
+
recordConflict(operationId, userId, position, content) {
|
|
192
|
+
const conflict = {
|
|
193
|
+
conflictId: `conflict-${Date.now()}-${Math.random().toString(36).slice(2, 9)}`,
|
|
194
|
+
operationId,
|
|
195
|
+
userId,
|
|
196
|
+
position,
|
|
197
|
+
content,
|
|
198
|
+
timestamp: Date.now(),
|
|
199
|
+
resolved: false,
|
|
200
|
+
};
|
|
201
|
+
this.conflicts.set(conflict.conflictId, conflict);
|
|
202
|
+
this.notifyListeners(conflict);
|
|
203
|
+
return conflict;
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Resolve conflict with decision
|
|
207
|
+
*/
|
|
208
|
+
resolveConflict(conflictId, resolution) {
|
|
209
|
+
const conflict = this.conflicts.get(conflictId);
|
|
210
|
+
if (!conflict)
|
|
211
|
+
return false;
|
|
212
|
+
conflict.resolved = true;
|
|
213
|
+
conflict.resolution = resolution;
|
|
214
|
+
this.notifyListeners(conflict);
|
|
215
|
+
return true;
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Get unresolved conflicts
|
|
219
|
+
*/
|
|
220
|
+
getUnresolvedConflicts() {
|
|
221
|
+
return Array.from(this.conflicts.values()).filter((c) => !c.resolved);
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Get all conflicts for user
|
|
225
|
+
*/
|
|
226
|
+
getConflictsByUser(userId) {
|
|
227
|
+
return Array.from(this.conflicts.values()).filter((c) => c.userId === userId);
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Clear resolved conflicts
|
|
231
|
+
*/
|
|
232
|
+
clearResolved() {
|
|
233
|
+
const resolved = [];
|
|
234
|
+
this.conflicts.forEach((conflict, id) => {
|
|
235
|
+
if (conflict.resolved)
|
|
236
|
+
resolved.push(id);
|
|
237
|
+
});
|
|
238
|
+
resolved.forEach((id) => this.conflicts.delete(id));
|
|
239
|
+
}
|
|
240
|
+
/**
|
|
241
|
+
* Subscribe to conflict events
|
|
242
|
+
*/
|
|
243
|
+
subscribe(listener) {
|
|
244
|
+
this.resolutionListeners.add(listener);
|
|
245
|
+
return () => this.resolutionListeners.delete(listener);
|
|
246
|
+
}
|
|
247
|
+
notifyListeners(conflict) {
|
|
248
|
+
this.resolutionListeners.forEach((listener) => listener(conflict));
|
|
249
|
+
}
|
|
250
|
+
/**
|
|
251
|
+
* Get conflict state
|
|
252
|
+
*/
|
|
253
|
+
getState() {
|
|
254
|
+
return new Map(this.conflicts);
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
export class SyncStatusManager {
|
|
258
|
+
constructor() {
|
|
259
|
+
this.status = {
|
|
260
|
+
isConnected: false,
|
|
261
|
+
isSyncing: false,
|
|
262
|
+
lastSyncTime: 0,
|
|
263
|
+
pendingOperationCount: 0,
|
|
264
|
+
conflictCount: 0,
|
|
265
|
+
latency: 0,
|
|
266
|
+
};
|
|
267
|
+
this.statusListeners = new Set();
|
|
268
|
+
}
|
|
269
|
+
/**
|
|
270
|
+
* Update connection status
|
|
271
|
+
*/
|
|
272
|
+
setConnected(connected) {
|
|
273
|
+
this.status.isConnected = connected;
|
|
274
|
+
this.notifyListeners();
|
|
275
|
+
}
|
|
276
|
+
/**
|
|
277
|
+
* Update syncing status
|
|
278
|
+
*/
|
|
279
|
+
setSyncing(syncing) {
|
|
280
|
+
this.status.isSyncing = syncing;
|
|
281
|
+
if (!syncing) {
|
|
282
|
+
this.status.lastSyncTime = Date.now();
|
|
283
|
+
}
|
|
284
|
+
this.notifyListeners();
|
|
285
|
+
}
|
|
286
|
+
/**
|
|
287
|
+
* Update pending operation count
|
|
288
|
+
*/
|
|
289
|
+
setPendingOperationCount(count) {
|
|
290
|
+
this.status.pendingOperationCount = count;
|
|
291
|
+
this.notifyListeners();
|
|
292
|
+
}
|
|
293
|
+
/**
|
|
294
|
+
* Update conflict count
|
|
295
|
+
*/
|
|
296
|
+
setConflictCount(count) {
|
|
297
|
+
this.status.conflictCount = count;
|
|
298
|
+
this.notifyListeners();
|
|
299
|
+
}
|
|
300
|
+
/**
|
|
301
|
+
* Update network latency
|
|
302
|
+
*/
|
|
303
|
+
setLatency(latency) {
|
|
304
|
+
this.status.latency = latency;
|
|
305
|
+
this.notifyListeners();
|
|
306
|
+
}
|
|
307
|
+
/**
|
|
308
|
+
* Get current status
|
|
309
|
+
*/
|
|
310
|
+
getStatus() {
|
|
311
|
+
return { ...this.status };
|
|
312
|
+
}
|
|
313
|
+
/**
|
|
314
|
+
* Check if sync is healthy
|
|
315
|
+
*/
|
|
316
|
+
isHealthy() {
|
|
317
|
+
return (this.status.isConnected &&
|
|
318
|
+
!this.status.isSyncing &&
|
|
319
|
+
this.status.conflictCount === 0 &&
|
|
320
|
+
this.status.latency < 1000);
|
|
321
|
+
}
|
|
322
|
+
/**
|
|
323
|
+
* Subscribe to status changes
|
|
324
|
+
*/
|
|
325
|
+
subscribe(listener) {
|
|
326
|
+
this.statusListeners.add(listener);
|
|
327
|
+
return () => this.statusListeners.delete(listener);
|
|
328
|
+
}
|
|
329
|
+
notifyListeners() {
|
|
330
|
+
this.statusListeners.forEach((listener) => listener(this.getStatus()));
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
export class CollaborationManager {
|
|
334
|
+
constructor(currentUserId, currentUsername) {
|
|
335
|
+
this.presenceManager = new PresenceManager(currentUserId, currentUsername);
|
|
336
|
+
this.conflictResolver = new ConflictResolver();
|
|
337
|
+
this.syncStatusManager = new SyncStatusManager();
|
|
338
|
+
}
|
|
339
|
+
/**
|
|
340
|
+
* Get presence manager
|
|
341
|
+
*/
|
|
342
|
+
getPresenceManager() {
|
|
343
|
+
return this.presenceManager;
|
|
344
|
+
}
|
|
345
|
+
/**
|
|
346
|
+
* Get conflict resolver
|
|
347
|
+
*/
|
|
348
|
+
getConflictResolver() {
|
|
349
|
+
return this.conflictResolver;
|
|
350
|
+
}
|
|
351
|
+
/**
|
|
352
|
+
* Get sync status manager
|
|
353
|
+
*/
|
|
354
|
+
getSyncStatusManager() {
|
|
355
|
+
return this.syncStatusManager;
|
|
356
|
+
}
|
|
357
|
+
/**
|
|
358
|
+
* Cleanup all managers
|
|
359
|
+
*/
|
|
360
|
+
destroy() {
|
|
361
|
+
this.presenceManager.destroy();
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/presence/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Search & Replace Engine
|
|
3
|
+
* Full-text search, regex support, document-wide replace, search history
|
|
4
|
+
*/
|
|
5
|
+
export interface SearchResult {
|
|
6
|
+
id: string;
|
|
7
|
+
text: string;
|
|
8
|
+
position: number;
|
|
9
|
+
length: number;
|
|
10
|
+
lineNumber: number;
|
|
11
|
+
context: string;
|
|
12
|
+
documentId?: string;
|
|
13
|
+
userId?: string;
|
|
14
|
+
}
|
|
15
|
+
export interface SearchOptions {
|
|
16
|
+
caseSensitive?: boolean;
|
|
17
|
+
wholeWord?: boolean;
|
|
18
|
+
regex?: boolean;
|
|
19
|
+
maxResults?: number;
|
|
20
|
+
contextLength?: number;
|
|
21
|
+
}
|
|
22
|
+
export interface ReplaceResult {
|
|
23
|
+
replacedCount: number;
|
|
24
|
+
skippedCount: number;
|
|
25
|
+
results: SearchResult[];
|
|
26
|
+
}
|
|
27
|
+
export interface SearchHistory {
|
|
28
|
+
query: string;
|
|
29
|
+
timestamp: number;
|
|
30
|
+
resultCount: number;
|
|
31
|
+
isRegex: boolean;
|
|
32
|
+
}
|
|
33
|
+
export declare class SearchEngine {
|
|
34
|
+
private history;
|
|
35
|
+
private maxHistorySize;
|
|
36
|
+
/**
|
|
37
|
+
* Search for text in content
|
|
38
|
+
*/
|
|
39
|
+
search(content: string, query: string, options?: SearchOptions): SearchResult[];
|
|
40
|
+
/**
|
|
41
|
+
* Replace text in content
|
|
42
|
+
*/
|
|
43
|
+
replace(content: string, query: string, replacement: string, options?: SearchOptions & {
|
|
44
|
+
replaceAll?: boolean;
|
|
45
|
+
}): ReplaceResult;
|
|
46
|
+
/**
|
|
47
|
+
* Find and replace with callback
|
|
48
|
+
*/
|
|
49
|
+
replaceWithCallback(content: string, query: string, callback: (match: string, index: number) => string, options?: SearchOptions): string;
|
|
50
|
+
/**
|
|
51
|
+
* Find all occurrences in text
|
|
52
|
+
*/
|
|
53
|
+
findAll(text: string, query: string, caseSensitive?: boolean): number[];
|
|
54
|
+
/**
|
|
55
|
+
* Get search history
|
|
56
|
+
*/
|
|
57
|
+
getHistory(): SearchHistory[];
|
|
58
|
+
/**
|
|
59
|
+
* Add to search history
|
|
60
|
+
*/
|
|
61
|
+
private addToHistory;
|
|
62
|
+
/**
|
|
63
|
+
* Clear search history
|
|
64
|
+
*/
|
|
65
|
+
clearHistory(): void;
|
|
66
|
+
/**
|
|
67
|
+
* Get suggestions based on history
|
|
68
|
+
*/
|
|
69
|
+
getSuggestions(prefix: string, limit?: number): string[];
|
|
70
|
+
/**
|
|
71
|
+
* Validate regex pattern
|
|
72
|
+
*/
|
|
73
|
+
validateRegex(pattern: string): {
|
|
74
|
+
valid: boolean;
|
|
75
|
+
error?: string;
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
export declare class MultiDocumentSearch {
|
|
79
|
+
private engine;
|
|
80
|
+
/**
|
|
81
|
+
* Search across multiple documents
|
|
82
|
+
*/
|
|
83
|
+
searchMultiple(documents: Map<string, string>, query: string, options?: SearchOptions): Map<string, SearchResult[]>;
|
|
84
|
+
/**
|
|
85
|
+
* Replace across multiple documents
|
|
86
|
+
*/
|
|
87
|
+
replaceMultiple(documents: Map<string, string>, query: string, replacement: string, options?: SearchOptions & {
|
|
88
|
+
replaceAll?: boolean;
|
|
89
|
+
}): Map<string, ReplaceResult>;
|
|
90
|
+
/**
|
|
91
|
+
* Get statistics for search across documents
|
|
92
|
+
*/
|
|
93
|
+
getStatistics(documents: Map<string, string>, query: string, options?: SearchOptions): {
|
|
94
|
+
totalMatches: number;
|
|
95
|
+
documentsMatched: number;
|
|
96
|
+
averageMatchesPerDoc: number;
|
|
97
|
+
};
|
|
98
|
+
/**
|
|
99
|
+
* Get engine for advanced usage
|
|
100
|
+
*/
|
|
101
|
+
getEngine(): SearchEngine;
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/search/index.ts"],"names":[],"mappings":"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"}
|