@nimbalyst/extension-sdk 0.2.0 → 0.2.2

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 (79) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/README.md +32 -0
  3. package/dist/__tests__/createTextCollabContentAdapter.test.d.ts +2 -0
  4. package/dist/__tests__/createTextCollabContentAdapter.test.d.ts.map +1 -0
  5. package/dist/__tests__/createTextCollabContentAdapter.test.js +60 -0
  6. package/dist/__tests__/externalsPlugin.test.d.ts +2 -0
  7. package/dist/__tests__/externalsPlugin.test.d.ts.map +1 -0
  8. package/dist/__tests__/externalsPlugin.test.js +16 -0
  9. package/dist/__tests__/fileDirectoryTree.test.d.ts +2 -0
  10. package/dist/__tests__/fileDirectoryTree.test.d.ts.map +1 -0
  11. package/dist/__tests__/fileDirectoryTree.test.js +54 -0
  12. package/dist/__tests__/hasSeedableContent.test.d.ts +2 -0
  13. package/dist/__tests__/hasSeedableContent.test.d.ts.map +1 -0
  14. package/dist/__tests__/hasSeedableContent.test.js +25 -0
  15. package/dist/__tests__/manifestValidation.agentProviders.test.d.ts +2 -0
  16. package/dist/__tests__/manifestValidation.agentProviders.test.d.ts.map +1 -0
  17. package/dist/__tests__/manifestValidation.agentProviders.test.js +44 -0
  18. package/dist/agents/AgentProtocol.d.ts +233 -0
  19. package/dist/agents/AgentProtocol.d.ts.map +1 -0
  20. package/dist/agents/AgentProtocol.js +23 -0
  21. package/dist/agents/AgentProtocolHost.d.ts +190 -0
  22. package/dist/agents/AgentProtocolHost.d.ts.map +1 -0
  23. package/dist/agents/AgentProtocolHost.js +42 -0
  24. package/dist/agents/index.d.ts +26 -0
  25. package/dist/agents/index.d.ts.map +1 -0
  26. package/dist/agents/index.js +24 -0
  27. package/dist/collab/createTextCollabContentAdapter.d.ts +26 -0
  28. package/dist/collab/createTextCollabContentAdapter.d.ts.map +1 -0
  29. package/dist/collab/createTextCollabContentAdapter.js +79 -0
  30. package/dist/externalsPlugin.js +10 -0
  31. package/dist/fileDirectoryTree.d.ts +19 -0
  32. package/dist/fileDirectoryTree.d.ts.map +1 -0
  33. package/dist/fileDirectoryTree.js +98 -0
  34. package/dist/index.d.ts +5 -0
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js +7 -0
  37. package/dist/manifestValidation.d.ts +118 -0
  38. package/dist/manifestValidation.d.ts.map +1 -0
  39. package/dist/manifestValidation.js +475 -0
  40. package/dist/trackerReferences.d.ts +32 -0
  41. package/dist/trackerReferences.d.ts.map +1 -0
  42. package/dist/trackerReferences.js +7 -0
  43. package/dist/types/collab.d.ts +138 -0
  44. package/dist/types/collab.d.ts.map +1 -0
  45. package/dist/types/collab.js +1 -0
  46. package/dist/types/editor.d.ts +81 -0
  47. package/dist/types/editor.d.ts.map +1 -1
  48. package/dist/types/editors.d.ts +4 -0
  49. package/dist/types/editors.d.ts.map +1 -1
  50. package/dist/types/extension.d.ts +364 -5
  51. package/dist/types/extension.d.ts.map +1 -1
  52. package/dist/types/extension.js +11 -1
  53. package/dist/types/index.d.ts +3 -0
  54. package/dist/types/index.d.ts.map +1 -1
  55. package/dist/types/index.js +3 -0
  56. package/dist/types/panel.d.ts +50 -0
  57. package/dist/types/panel.d.ts.map +1 -1
  58. package/dist/types/permissions.d.ts +119 -0
  59. package/dist/types/permissions.d.ts.map +1 -0
  60. package/dist/types/permissions.js +33 -0
  61. package/dist/types/theme.d.ts +50 -0
  62. package/dist/types/theme.d.ts.map +1 -1
  63. package/dist/types/theme.js +7 -1
  64. package/dist/types/trackerImporter.d.ts +147 -0
  65. package/dist/types/trackerImporter.d.ts.map +1 -0
  66. package/dist/types/trackerImporter.js +33 -0
  67. package/dist/useCollaborativeEditor.d.ts +84 -30
  68. package/dist/useCollaborativeEditor.d.ts.map +1 -1
  69. package/dist/useCollaborativeEditor.js +98 -7
  70. package/dist/validate.browser.d.ts +5 -0
  71. package/dist/validate.browser.d.ts.map +1 -0
  72. package/dist/validate.browser.js +27 -0
  73. package/dist/validate.d.ts +2 -8
  74. package/dist/validate.d.ts.map +1 -1
  75. package/dist/validate.js +117 -0
  76. package/dist/validationTypes.d.ts +9 -0
  77. package/dist/validationTypes.d.ts.map +1 -0
  78. package/dist/validationTypes.js +1 -0
  79. package/package.json +8 -1
@@ -0,0 +1,138 @@
1
+ /**
2
+ * CollabCodec
3
+ *
4
+ * Per-extension Y.Doc content contract: the single, PURE thing an editor
5
+ * defines for collaboration. Pure functions `file bytes <-> Y.Doc shape` (no
6
+ * React, no host imports) so the same code seeds a live editor AND runs
7
+ * headlessly (Share-to-Team without the editor open, re-upload from local
8
+ * origin, plain-text projection for search/AI). It lets host features
9
+ * (re-upload, history, export, AI editing, search indexing, comments, backup,
10
+ * restore) operate on any extension's collaborative document without knowing
11
+ * its internal layout.
12
+ *
13
+ * Extensions register a codec via
14
+ * `context.services.collab.registerContentAdapter(...)` from their
15
+ * `activate()` function, and pass the SAME codec to
16
+ * `useCollaborativeEditor(host, { codec, bind })`. `isEmpty` / `seedFromFile`
17
+ * / `exportToFile` are therefore defined exactly ONCE, on the codec -- the
18
+ * live seed and the headless seed are provably the same code.
19
+ *
20
+ * Codecs run only client-side (main process, renderer, extensions). The collab
21
+ * Worker stays codec-agnostic and treats Y.Doc state as opaque ciphertext. The
22
+ * renderer registry is authoritative; the main-process registry is an optional
23
+ * cache (in-repo statics + text descriptors) and its absence degrades to
24
+ * client seeding, never a hard error.
25
+ *
26
+ * NOTE: This is the canonical definition. The host-internal
27
+ * `@nimbalyst/collab-adapters` registry re-imports this type --
28
+ * do not fork the interface there.
29
+ *
30
+ * @see CollabContentAdapter -- the former name, kept as a deprecated alias.
31
+ */
32
+ import type { Doc } from 'yjs';
33
+ export type CollabContentFileSource = string | Uint8Array;
34
+ /**
35
+ * Serializable description of a CollabContentAdapter that lets the HOST
36
+ * replicate the adapter in another process (e.g. the Electron main process)
37
+ * WITHOUT loading the extension's code or doing a dynamic import. Only adapters
38
+ * built from a known host factory carry one. Today the single kind is `text`
39
+ * (a one-`Y.Text` document, produced by `createTextCollabContentAdapter`).
40
+ */
41
+ export interface TextCollabAdapterDescriptor {
42
+ kind: 'text';
43
+ documentType: string;
44
+ fileExtensions: string[];
45
+ mimeType?: string;
46
+ textField: string;
47
+ layoutVersion: number;
48
+ }
49
+ export type CollabAdapterDescriptor = TextCollabAdapterDescriptor;
50
+ export interface CollabCodecMigration {
51
+ from: number;
52
+ to: number;
53
+ run(yDoc: Doc): void;
54
+ }
55
+ /** @deprecated Renamed to {@link CollabCodecMigration}. */
56
+ export type CollabContentAdapterMigration = CollabCodecMigration;
57
+ export interface CollabCodec<TStructured = unknown> {
58
+ /** Identifies this codec; matches the shared doc's documentType. */
59
+ documentType: string;
60
+ /** File extensions this adapter is the on-disk codec for. Include
61
+ * the leading dot (e.g. '.md', '.mockup.html'). The first entry is
62
+ * used as the default by save-a-copy / export-to-file flows. */
63
+ fileExtensions: string[];
64
+ /** Optional MIME type used by save dialogs and asset uploads. */
65
+ mimeType?: string;
66
+ /** Layout schema version. Bump when the Y.Doc shape changes; pair
67
+ * with `migrations` to migrate older docs forward before any
68
+ * write op. */
69
+ layoutVersion: number;
70
+ /** Optional migrations from older layout versions. Run by the
71
+ * registry before `applyFromFile` / `applyStructuredPatch` when
72
+ * the Y.Doc's recorded layoutVersion is older than this adapter's
73
+ * layoutVersion. */
74
+ migrations?: CollabCodecMigration[];
75
+ /** True iff the Y.Doc has no extension content yet. Used to gate
76
+ * the initial-share seed flow. Shared by the live seed (the hook)
77
+ * and every headless seed path, so they can never disagree. */
78
+ isEmpty(yDoc: Doc): boolean;
79
+ /** Seed an empty Y.Doc from on-disk file bytes/text. Initial share
80
+ * only -- adapters can assume `isEmpty(yDoc) === true`. */
81
+ seedFromFile(yDoc: Doc, source: CollabContentFileSource): void;
82
+ /** Replace Y.Doc content with the supplied on-disk file content.
83
+ * Must be safe to call on a populated Y.Doc. Default behaviour is
84
+ * wipe-and-reseed inside a single Y.Doc transaction. Adapters
85
+ * that want finer-grained history can override with a
86
+ * diff-and-patch implementation. */
87
+ applyFromFile(yDoc: Doc, source: CollabContentFileSource): void;
88
+ /** Serialize the live Y.Doc back to the on-disk file format. */
89
+ exportToFile(yDoc: Doc): string | Uint8Array;
90
+ /** Plain-text projection for search, AI prompts, diffs, history
91
+ * previews. Lossy is fine; this is not a round-trip channel. */
92
+ toPlainText(yDoc: Doc): string;
93
+ /** Optional: structured projection for AI tool-call edits and
94
+ * comment anchoring. Shape is extension-defined. Paired with
95
+ * `applyStructuredPatch`. */
96
+ toStructured?(yDoc: Doc): TStructured;
97
+ /** Optional: write structured edits back. Paired with
98
+ * `toStructured`. AI-write surface is gated on the presence of
99
+ * both this and `toStructured`. */
100
+ applyStructuredPatch?(yDoc: Doc, patch: unknown): void;
101
+ /** Optional: produce a snapshot for revision history. Defaults to
102
+ * `Y.encodeStateAsUpdateV2(yDoc)`. Override if you need a denser
103
+ * snapshot format. */
104
+ exportRevisionSnapshot?(yDoc: Doc): Uint8Array;
105
+ /** Optional: restore a revision snapshot. Defaults to
106
+ * `Y.applyUpdateV2(yDoc, bytes)`. */
107
+ restoreRevisionSnapshot?(yDoc: Doc, bytes: Uint8Array): void;
108
+ /** Optional: a serializable descriptor the host can ship to another process
109
+ * to rebuild this adapter without the extension's code. Set automatically by
110
+ * host factories like `createTextCollabContentAdapter`; hand-written
111
+ * adapters may leave it undefined (they stay process-local). */
112
+ serializableDescriptor?: CollabAdapterDescriptor;
113
+ }
114
+ /**
115
+ * @deprecated Renamed to {@link CollabCodec}. Same shape -- a codec is a pure
116
+ * `file bytes <-> Y.Doc shape` contract. Kept so existing extensions and the
117
+ * host-internal `@nimbalyst/collab-adapters` registry keep compiling.
118
+ */
119
+ export type CollabContentAdapter<TStructured = unknown> = CollabCodec<TStructured>;
120
+ /**
121
+ * The collab surface on the extension context. Extensions call into
122
+ * this from their `activate()` to register a collab codec for any
123
+ * document type they ship.
124
+ */
125
+ export interface ExtensionCollabService {
126
+ /**
127
+ * Register a CollabCodec for one of the extension's document types.
128
+ * Returns a Disposable that unregisters on deactivation; the host also
129
+ * tracks the registration in `context.subscriptions` automatically.
130
+ *
131
+ * (Named `registerContentAdapter` for backwards compatibility; it accepts a
132
+ * {@link CollabCodec}.)
133
+ */
134
+ registerContentAdapter(codec: CollabCodec): {
135
+ dispose(): void;
136
+ };
137
+ }
138
+ //# sourceMappingURL=collab.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collab.d.ts","sourceRoot":"","sources":["../../src/types/collab.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE/B,MAAM,MAAM,uBAAuB,GAAG,MAAM,GAAG,UAAU,CAAC;AAE1D;;;;;;GAMG;AACH,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,MAAM,uBAAuB,GAAG,2BAA2B,CAAC;AAElE,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI,CAAC;CACtB;AAED,2DAA2D;AAC3D,MAAM,MAAM,6BAA6B,GAAG,oBAAoB,CAAC;AAEjE,MAAM,WAAW,WAAW,CAAC,WAAW,GAAG,OAAO;IAChD,oEAAoE;IACpE,YAAY,EAAE,MAAM,CAAC;IAErB;;qEAEiE;IACjE,cAAc,EAAE,MAAM,EAAE,CAAC;IAEzB,iEAAiE;IACjE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;oBAEgB;IAChB,aAAa,EAAE,MAAM,CAAC;IAEtB;;;yBAGqB;IACrB,UAAU,CAAC,EAAE,oBAAoB,EAAE,CAAC;IAEpC;;oEAEgE;IAChE,OAAO,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC;IAE5B;gEAC4D;IAC5D,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,uBAAuB,GAAG,IAAI,CAAC;IAE/D;;;;yCAIqC;IACrC,aAAa,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,uBAAuB,GAAG,IAAI,CAAC;IAEhE,gEAAgE;IAChE,YAAY,CAAC,IAAI,EAAE,GAAG,GAAG,MAAM,GAAG,UAAU,CAAC;IAE7C;qEACiE;IACjE,WAAW,CAAC,IAAI,EAAE,GAAG,GAAG,MAAM,CAAC;IAE/B;;kCAE8B;IAC9B,YAAY,CAAC,CAAC,IAAI,EAAE,GAAG,GAAG,WAAW,CAAC;IAEtC;;wCAEoC;IACpC,oBAAoB,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;IAEvD;;2BAEuB;IACvB,sBAAsB,CAAC,CAAC,IAAI,EAAE,GAAG,GAAG,UAAU,CAAC;IAE/C;0CACsC;IACtC,uBAAuB,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;IAE7D;;;qEAGiE;IACjE,sBAAsB,CAAC,EAAE,uBAAuB,CAAC;CAClD;AAED;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,CAAC,WAAW,GAAG,OAAO,IAAI,WAAW,CAAC,WAAW,CAAC,CAAC;AAEnF;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACrC;;;;;;;OAOG;IACH,sBAAsB,CAAC,KAAK,EAAE,WAAW,GAAG;QAAE,OAAO,IAAI,IAAI,CAAA;KAAE,CAAC;CACjE"}
@@ -0,0 +1 @@
1
+ export {};
@@ -96,6 +96,87 @@ export interface CollaborationContext {
96
96
  * reason about file paths in collab mode.
97
97
  */
98
98
  loadInitialContent(): Promise<string | ArrayBuffer>;
99
+ /**
100
+ * Flush the current Y.Doc state upstream and resolve ONLY after the server
101
+ * confirms it persisted the update (not merely after the socket write).
102
+ *
103
+ * The SDK awaits this after seeding a first-open collaborative document so the
104
+ * seed is durably on the server before the provider can tear down. Resolves
105
+ * `true` on a server-acked persist, `false` on timeout / not-yet-connected —
106
+ * the host surfaces a failed flush to the user (pending-seed machinery)
107
+ * rather than silently losing the seed. Required on the collab context: a
108
+ * host that can't guarantee the flush would reintroduce the seed data-loss
109
+ * race that made this method necessary.
110
+ */
111
+ flushWithAck(timeoutMs?: number): Promise<boolean>;
112
+ /**
113
+ * True when the transport skipped server payloads it could not decode
114
+ * (stale key epoch, corruption). An "empty" Y.Doc then does NOT mean the
115
+ * room is empty — the SDK must not run the first-open seed, or a default
116
+ * document gets written over real-but-unreadable content for every client.
117
+ */
118
+ hasUndecodedContent?(): boolean;
119
+ /**
120
+ * Host-level reporting hook for first-open seed durability. The SDK calls
121
+ * this when seeding succeeds, throws, or its server-persisted flush is not
122
+ * confirmed, so extension authors do not have to wire their own toast to
123
+ * avoid silent blank-room failures.
124
+ */
125
+ reportSeedOutcome?(outcome: {
126
+ ok: boolean;
127
+ error?: unknown;
128
+ }): void;
129
+ /**
130
+ * @deprecated Use {@link flushWithAck}, which awaits a server-persisted ack.
131
+ * `flushLocalState` fires-and-forgets (resolves after the socket write, not
132
+ * the server ack) and rode in the mindmap seed data-loss race. Retained only
133
+ * so existing callers keep compiling.
134
+ */
135
+ flushLocalState?(): Promise<void>;
136
+ /**
137
+ * Register a revision-history snapshot adapter for this collaborative
138
+ * document. Extensions opt in by implementing `exportRevisionSnapshot`
139
+ * and `restoreRevisionSnapshot`; the host wires these into the
140
+ * shared-document History dialog so users can preview and restore past
141
+ * versions of the document.
142
+ *
143
+ * Call this once after binding the editor to the Y.Doc (e.g. inside the
144
+ * same effect that wires `useCollaborativeEditor`). The returned function
145
+ * unregisters the adapter -- call it on unmount.
146
+ *
147
+ * When no adapter is registered, the host falls back to a metadata-only
148
+ * history view: users can see when revisions were taken and by whom, but
149
+ * cannot preview or restore them.
150
+ *
151
+ * Implementations should serialize the editor-native state (e.g. an
152
+ * Excalidraw scene JSON) deterministically so dedupe-on-hash is stable.
153
+ */
154
+ registerRevisionAdapter?(adapter: RevisionSnapshotAdapter): () => void;
155
+ }
156
+ /**
157
+ * Editor-supplied snapshot round-trip for collaborative revision history.
158
+ * See `CollaborationContext.revisionAdapter`.
159
+ */
160
+ export interface RevisionSnapshotAdapter {
161
+ /**
162
+ * Snapshot payload format identifier, e.g. `excalidraw-json` or
163
+ * `mindmap-yaml`. Treated as opaque by the server; used by the dialog to
164
+ * pick a renderer (or fall back to metadata-only display).
165
+ */
166
+ readonly contentFormat: string;
167
+ /** Capture the current document state as bytes. */
168
+ exportRevisionSnapshot(): Uint8Array | Promise<Uint8Array>;
169
+ /**
170
+ * Apply a previously captured snapshot back into the live document.
171
+ * Implementations should produce normal collaborative edits so the
172
+ * change broadcasts to peers via the standard Yjs path.
173
+ */
174
+ restoreRevisionSnapshot(plaintext: Uint8Array): void | Promise<void>;
175
+ /**
176
+ * Optional read-only preview component name for the History dialog. When
177
+ * absent, the dialog shows metadata only.
178
+ */
179
+ readonly previewKind?: 'text' | 'metadata-only';
99
180
  }
100
181
  /**
101
182
  * Context that an editor pushes to the chat panel.
@@ -1 +1 @@
1
- {"version":3,"file":"editor.d.ts","sourceRoot":"","sources":["../../src/types/editor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"editor.d.ts","sourceRoot":"","sources":["../../src/types/editor.ts"],"names":[],"mappings":"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"}
@@ -24,6 +24,10 @@ export interface MonacoEditorConfig {
24
24
  extensionThemeId?: string;
25
25
  /** Whether this editor's tab is active */
26
26
  isActive?: boolean;
27
+ /** Optional transform from stored file content to visible editor content */
28
+ transformLoadContent?: (content: string) => string;
29
+ /** Optional transform from visible editor content back to stored file content */
30
+ transformSaveContent?: (content: string) => string;
27
31
  }
28
32
  export interface MonacoEditorProps {
29
33
  /** Host service for all editor-host communication */
@@ -1 +1 @@
1
- {"version":3,"file":"editors.d.ts","sourceRoot":"","sources":["../../src/types/editors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAM9C,MAAM,WAAW,kBAAkB;IACjC,2BAA2B;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,0FAA0F;IAC1F,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,qDAAqD;IACrD,IAAI,EAAE,UAAU,CAAC;IAEjB,uCAAuC;IACvC,QAAQ,EAAE,MAAM,CAAC;IAEjB,6BAA6B;IAC7B,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAE5B,gFAAgF;IAChF,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC;IAEtC,qDAAqD;IACrD,YAAY,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,MAAM,KAAK,IAAI,CAAC;IAEpD,mEAAmE;IACnE,uBAAuB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACnD;AAMD,MAAM,WAAW,oBAAoB;IACnC,sCAAsC;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,uBAAuB;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,+CAA+C;IAC/C,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,mBAAmB;IAClC,qDAAqD;IACrD,IAAI,EAAE,UAAU,CAAC;IAEjB,6BAA6B;IAC7B,MAAM,CAAC,EAAE,oBAAoB,CAAC;CAC/B"}
1
+ {"version":3,"file":"editors.d.ts","sourceRoot":"","sources":["../../src/types/editors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAM9C,MAAM,WAAW,kBAAkB;IACjC,2BAA2B;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,0FAA0F;IAC1F,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,4EAA4E;IAC5E,oBAAoB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC;IAEnD,iFAAiF;IACjF,oBAAoB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC;CACpD;AAED,MAAM,WAAW,iBAAiB;IAChC,qDAAqD;IACrD,IAAI,EAAE,UAAU,CAAC;IAEjB,uCAAuC;IACvC,QAAQ,EAAE,MAAM,CAAC;IAEjB,6BAA6B;IAC7B,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAE5B,gFAAgF;IAChF,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC;IAEtC,qDAAqD;IACrD,YAAY,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,MAAM,KAAK,IAAI,CAAC;IAEpD,mEAAmE;IACnE,uBAAuB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACnD;AAMD,MAAM,WAAW,oBAAoB;IACnC,sCAAsC;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,uBAAuB;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,+CAA+C;IAC/C,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,mBAAmB;IAClC,qDAAqD;IACrD,IAAI,EAAE,UAAU,CAAC;IAEjB,6BAA6B;IAC7B,MAAM,CAAC,EAAE,oBAAoB,CAAC;CAC/B"}