@webiny/website-builder-sdk 6.3.0 → 6.4.0-beta.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.
Files changed (154) hide show
  1. package/BindingsApi.js +29 -36
  2. package/BindingsApi.js.map +1 -1
  3. package/BindingsProcessor.js +34 -43
  4. package/BindingsProcessor.js.map +1 -1
  5. package/BindingsProcessor.test.js +82 -78
  6. package/BindingsProcessor.test.js.map +1 -1
  7. package/BindingsResolver.js +92 -119
  8. package/BindingsResolver.js.map +1 -1
  9. package/BindingsResolver.test.js +399 -363
  10. package/BindingsResolver.test.js.map +1 -1
  11. package/ComponentInputTraverser.js +28 -49
  12. package/ComponentInputTraverser.js.map +1 -1
  13. package/ComponentManifestToAstConverter.js +20 -21
  14. package/ComponentManifestToAstConverter.js.map +1 -1
  15. package/ComponentRegistry.js +26 -45
  16. package/ComponentRegistry.js.map +1 -1
  17. package/ComponentResolver.js +25 -29
  18. package/ComponentResolver.js.map +1 -1
  19. package/ConstraintEvaluator.js +246 -353
  20. package/ConstraintEvaluator.js.map +1 -1
  21. package/ConstraintEvaluator.test.js +1616 -1438
  22. package/ConstraintEvaluator.test.js.map +1 -1
  23. package/ContentSdk.js +83 -90
  24. package/ContentSdk.js.map +1 -1
  25. package/DocumentStore.js +47 -59
  26. package/DocumentStore.js.map +1 -1
  27. package/DocumentStoreManager.js +17 -16
  28. package/DocumentStoreManager.js.map +1 -1
  29. package/EditingSdk.js +87 -121
  30. package/EditingSdk.js.map +1 -1
  31. package/ElementFactory.js +126 -174
  32. package/ElementFactory.js.map +1 -1
  33. package/ElementFactory.test.js +234 -263
  34. package/ElementFactory.test.js.map +1 -1
  35. package/Environment.js +18 -19
  36. package/Environment.js.map +1 -1
  37. package/FunctionConverter.js +8 -7
  38. package/FunctionConverter.js.map +1 -1
  39. package/HashObject.js +11 -26
  40. package/HashObject.js.map +1 -1
  41. package/HotkeyManager.js +40 -47
  42. package/HotkeyManager.js.map +1 -1
  43. package/IBindingsUpdater.js +0 -3
  44. package/IRedirects.js +0 -3
  45. package/InheritanceProcessor.js +99 -139
  46. package/InheritanceProcessor.js.map +1 -1
  47. package/InheritanceProcessor.test.js +178 -179
  48. package/InheritanceProcessor.test.js.map +1 -1
  49. package/InheritedValueResolver.js +15 -20
  50. package/InheritedValueResolver.js.map +1 -1
  51. package/InputBindingsProcessor.js +187 -307
  52. package/InputBindingsProcessor.js.map +1 -1
  53. package/InputsBindingsProcessor.test.js +334 -315
  54. package/InputsBindingsProcessor.test.js.map +1 -1
  55. package/InputsUpdater.js +23 -26
  56. package/InputsUpdater.js.map +1 -1
  57. package/LiveSdk.js +12 -13
  58. package/LiveSdk.js.map +1 -1
  59. package/Logger.js +9 -8
  60. package/Logger.js.map +1 -1
  61. package/MouseTracker.js +77 -83
  62. package/MouseTracker.js.map +1 -1
  63. package/NullSdk.js +22 -21
  64. package/NullSdk.js.map +1 -1
  65. package/PreviewDocument.js +27 -30
  66. package/PreviewDocument.js.map +1 -1
  67. package/PreviewSdk.js +16 -17
  68. package/PreviewSdk.js.map +1 -1
  69. package/PreviewViewport.js +51 -63
  70. package/PreviewViewport.js.map +1 -1
  71. package/ResizeObserver.js +24 -31
  72. package/ResizeObserver.js.map +1 -1
  73. package/StylesBindingsProcessor.js +40 -79
  74. package/StylesBindingsProcessor.js.map +1 -1
  75. package/StylesUpdater.js +20 -25
  76. package/StylesUpdater.js.map +1 -1
  77. package/Theme.js +28 -25
  78. package/Theme.js.map +1 -1
  79. package/ViewportManager.js +89 -101
  80. package/ViewportManager.js.map +1 -1
  81. package/constants.js +7 -6
  82. package/constants.js.map +1 -1
  83. package/createElement.js +5 -6
  84. package/createElement.js.map +1 -1
  85. package/createInput.js +85 -143
  86. package/createInput.js.map +1 -1
  87. package/createTheme.js +2 -3
  88. package/createTheme.js.map +1 -1
  89. package/dataProviders/ApiClient.js +40 -49
  90. package/dataProviders/ApiClient.js.map +1 -1
  91. package/dataProviders/DefaultDataProvider.js +56 -58
  92. package/dataProviders/DefaultDataProvider.js.map +1 -1
  93. package/dataProviders/GET_PAGE_BY_ID.js +2 -1
  94. package/dataProviders/GET_PAGE_BY_ID.js.map +1 -1
  95. package/dataProviders/GET_PAGE_BY_PATH.js +2 -1
  96. package/dataProviders/GET_PAGE_BY_PATH.js.map +1 -1
  97. package/dataProviders/LIST_PUBLISHED_PAGES.js +2 -1
  98. package/dataProviders/LIST_PUBLISHED_PAGES.js.map +1 -1
  99. package/dataProviders/NullDataProvider.js +21 -20
  100. package/dataProviders/NullDataProvider.js.map +1 -1
  101. package/dataProviders/RedirectsProvider.js +24 -27
  102. package/dataProviders/RedirectsProvider.js.map +1 -1
  103. package/defaultBreakpoints.js +23 -22
  104. package/defaultBreakpoints.js.map +1 -1
  105. package/documentOperations/$addElementReferenceToParent.js +29 -32
  106. package/documentOperations/$addElementReferenceToParent.js.map +1 -1
  107. package/documentOperations/AddElement.js +8 -7
  108. package/documentOperations/AddElement.js.map +1 -1
  109. package/documentOperations/AddToParent.js +14 -13
  110. package/documentOperations/AddToParent.js.map +1 -1
  111. package/documentOperations/IDocumentOperation.js +0 -3
  112. package/documentOperations/RemoveElement.js +9 -15
  113. package/documentOperations/RemoveElement.js.map +1 -1
  114. package/documentOperations/SetGlobalInputBinding.js +23 -22
  115. package/documentOperations/SetGlobalInputBinding.js.map +1 -1
  116. package/documentOperations/SetGlobalStyleBinding.js +23 -23
  117. package/documentOperations/SetGlobalStyleBinding.js.map +1 -1
  118. package/documentOperations/SetInputBindingOverride.js +30 -29
  119. package/documentOperations/SetInputBindingOverride.js.map +1 -1
  120. package/documentOperations/SetStyleBindingOverride.js +30 -31
  121. package/documentOperations/SetStyleBindingOverride.js.map +1 -1
  122. package/documentOperations/index.js +9 -8
  123. package/documentOperations/index.js.map +1 -1
  124. package/findMatchingAstNode.js +11 -13
  125. package/findMatchingAstNode.js.map +1 -1
  126. package/generateElementId.js +2 -1
  127. package/generateElementId.js.map +1 -1
  128. package/headersProvider.js +4 -3
  129. package/headersProvider.js.map +1 -1
  130. package/index.js +0 -2
  131. package/jsonPatch.js +5 -9
  132. package/jsonPatch.js.map +1 -1
  133. package/messages.js +12 -11
  134. package/messages.js.map +1 -1
  135. package/messenger/MessageOrigin.js +12 -11
  136. package/messenger/MessageOrigin.js.map +1 -1
  137. package/messenger/Messenger.js +58 -69
  138. package/messenger/Messenger.js.map +1 -1
  139. package/messenger/index.js +0 -2
  140. package/package.json +5 -5
  141. package/registerComponentGroup.js +5 -6
  142. package/registerComponentGroup.js.map +1 -1
  143. package/types/ShorthandCssProperties.js +0 -3
  144. package/types/WebsiteBuilderTheme.js +0 -3
  145. package/types.d.ts +3 -0
  146. package/types.js +0 -3
  147. package/IBindingsUpdater.js.map +0 -1
  148. package/IRedirects.js.map +0 -1
  149. package/documentOperations/IDocumentOperation.js.map +0 -1
  150. package/index.js.map +0 -1
  151. package/messenger/index.js.map +0 -1
  152. package/types/ShorthandCssProperties.js.map +0 -1
  153. package/types/WebsiteBuilderTheme.js.map +0 -1
  154. package/types.js.map +0 -1
package/ContentSdk.js CHANGED
@@ -10,97 +10,90 @@ import { Theme } from "./Theme.js";
10
10
  import { viewportManager } from "./ViewportManager.js";
11
11
  import { RedirectsProvider } from "./dataProviders/RedirectsProvider.js";
12
12
  class InternalContentSdk {
13
- constructor(redirectsProvider, liveSdk, editingSdk) {
14
- this.redirectsProvider = redirectsProvider;
15
- this.activeSdk = editingSdk ?? liveSdk;
16
- this.editingSdk = editingSdk;
17
- }
18
- getEditingSdk() {
19
- return this.editingSdk;
20
- }
21
- async getPage(path) {
22
- return this.activeSdk.getPage(path);
23
- }
24
- listPages(options) {
25
- return this.activeSdk.listPages(options);
26
- }
27
- getAllRedirects() {
28
- return this.redirectsProvider.getAllRedirects();
29
- }
30
- getRedirectByPath(path) {
31
- return this.redirectsProvider.getRedirectByPath(path);
32
- }
13
+ constructor(redirectsProvider, liveSdk, editingSdk){
14
+ this.redirectsProvider = redirectsProvider;
15
+ this.activeSdk = editingSdk ?? liveSdk;
16
+ this.editingSdk = editingSdk;
17
+ }
18
+ getEditingSdk() {
19
+ return this.editingSdk;
20
+ }
21
+ async getPage(path) {
22
+ return this.activeSdk.getPage(path);
23
+ }
24
+ listPages(options) {
25
+ return this.activeSdk.listPages(options);
26
+ }
27
+ getAllRedirects() {
28
+ return this.redirectsProvider.getAllRedirects();
29
+ }
30
+ getRedirectByPath(path) {
31
+ return this.redirectsProvider.getRedirectByPath(path);
32
+ }
33
33
  }
34
- export class ContentSdk {
35
- isPreview = false;
36
- init(config, afterInit) {
37
- const configHash = JSON.stringify(config);
38
- if (this.lastConfig && this.lastConfig === configHash) {
39
- return;
40
- }
41
- this.lastConfig = configHash;
42
- const apiClient = new ApiClient(config.apiHost, config.apiKey, config.apiTenant);
43
- const dataProvider = new DefaultDataProvider({
44
- apiClient
45
- });
46
- let liveSdk = new LiveSdk(dataProvider);
47
- if (config.preview && !environment.isEditing()) {
48
- this.isPreview = true;
49
- liveSdk = new PreviewSdk(dataProvider, liveSdk);
50
- }
51
- const theme = Theme.from(config.theme ?? {});
52
- if (environment.isClient()) {
53
- viewportManager.setBreakpoints(theme.breakpoints);
54
- }
55
- let editingSdk;
56
- if (environment.isEditing()) {
57
- editingSdk = new EditingSdk(liveSdk, theme);
58
- }
59
- this.sdk = new InternalContentSdk(new RedirectsProvider(apiClient), liveSdk, editingSdk);
60
- if (typeof afterInit === "function") {
61
- afterInit();
62
- }
63
- }
64
- getEditingSdk() {
65
- this.assertInitialized();
66
- return this.sdk.getEditingSdk();
67
- }
68
- getPage(path) {
69
- this.assertInitialized();
70
- return this.sdk.getPage(path);
71
- }
72
- listPages(options) {
73
- this.assertInitialized();
74
- return this.sdk.listPages(options);
75
- }
76
- async getAllRedirects() {
77
- this.assertInitialized();
78
- return this.sdk.getAllRedirects();
79
- }
80
- getRedirectByPath(path) {
81
- this.assertInitialized();
82
- return this.sdk.getRedirectByPath(path);
83
- }
84
- registerComponent(blueprint) {
85
- this.assertInitialized();
86
- componentRegistry.register(blueprint);
87
- }
88
- resolveElement(params) {
89
- this.assertInitialized();
90
- return new ComponentResolver(componentRegistry).resolve(params);
91
- }
92
- isEditing() {
93
- return environment.isEditing();
94
- }
95
- isPreviewing() {
96
- return this.isPreview;
97
- }
98
- assertInitialized() {
99
- if (!this.sdk) {
100
- throw new Error(`ContentSdk has not been initialized!`);
101
- }
102
- }
34
+ class ContentSdk {
35
+ init(config, afterInit) {
36
+ const configHash = JSON.stringify(config);
37
+ if (this.lastConfig && this.lastConfig === configHash) return;
38
+ this.lastConfig = configHash;
39
+ const apiClient = new ApiClient(config.apiHost, config.apiKey, config.apiTenant);
40
+ const dataProvider = new DefaultDataProvider({
41
+ apiClient
42
+ });
43
+ let liveSdk = new LiveSdk(dataProvider);
44
+ if (config.preview && !environment.isEditing()) {
45
+ this.isPreview = true;
46
+ liveSdk = new PreviewSdk(dataProvider, liveSdk);
47
+ }
48
+ const theme = Theme.from(config.theme ?? {});
49
+ if (environment.isClient()) viewportManager.setBreakpoints(theme.breakpoints);
50
+ let editingSdk;
51
+ if (environment.isEditing()) editingSdk = new EditingSdk(liveSdk, theme);
52
+ this.sdk = new InternalContentSdk(new RedirectsProvider(apiClient), liveSdk, editingSdk);
53
+ if ("function" == typeof afterInit) afterInit();
54
+ }
55
+ getEditingSdk() {
56
+ this.assertInitialized();
57
+ return this.sdk.getEditingSdk();
58
+ }
59
+ getPage(path) {
60
+ this.assertInitialized();
61
+ return this.sdk.getPage(path);
62
+ }
63
+ listPages(options) {
64
+ this.assertInitialized();
65
+ return this.sdk.listPages(options);
66
+ }
67
+ async getAllRedirects() {
68
+ this.assertInitialized();
69
+ return this.sdk.getAllRedirects();
70
+ }
71
+ getRedirectByPath(path) {
72
+ this.assertInitialized();
73
+ return this.sdk.getRedirectByPath(path);
74
+ }
75
+ registerComponent(blueprint) {
76
+ this.assertInitialized();
77
+ componentRegistry.register(blueprint);
78
+ }
79
+ resolveElement(params) {
80
+ this.assertInitialized();
81
+ return new ComponentResolver(componentRegistry).resolve(params);
82
+ }
83
+ isEditing() {
84
+ return environment.isEditing();
85
+ }
86
+ isPreviewing() {
87
+ return this.isPreview;
88
+ }
89
+ assertInitialized() {
90
+ if (!this.sdk) throw new Error("ContentSdk has not been initialized!");
91
+ }
92
+ constructor(){
93
+ this.isPreview = false;
94
+ }
103
95
  }
104
- export const contentSdk = new ContentSdk();
96
+ const contentSdk = new ContentSdk();
97
+ export { ContentSdk, contentSdk };
105
98
 
106
99
  //# sourceMappingURL=ContentSdk.js.map
package/ContentSdk.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["environment","LiveSdk","EditingSdk","ComponentResolver","PreviewSdk","componentRegistry","ApiClient","DefaultDataProvider","Theme","viewportManager","RedirectsProvider","InternalContentSdk","constructor","redirectsProvider","liveSdk","editingSdk","activeSdk","getEditingSdk","getPage","path","listPages","options","getAllRedirects","getRedirectByPath","ContentSdk","isPreview","init","config","afterInit","configHash","JSON","stringify","lastConfig","apiClient","apiHost","apiKey","apiTenant","dataProvider","preview","isEditing","theme","from","isClient","setBreakpoints","breakpoints","sdk","assertInitialized","registerComponent","blueprint","register","resolveElement","params","resolve","isPreviewing","Error","contentSdk"],"sources":["ContentSdk.ts"],"sourcesContent":["import type {\n Component,\n IContentSdk,\n ListPagesOptions,\n ListPagesResult,\n PublicPage,\n PublicRedirect,\n ResolvedComponent\n} from \"~/types.js\";\nimport { environment } from \"./Environment.js\";\nimport { LiveSdk } from \"./LiveSdk.js\";\nimport { EditingSdk } from \"./EditingSdk.js\";\nimport { ComponentResolver, type ResolveElementParams } from \"~/ComponentResolver.js\";\nimport { PreviewSdk } from \"./PreviewSdk.js\";\nimport { componentRegistry } from \"~/ComponentRegistry.js\";\nimport { ApiClient } from \"~/dataProviders/ApiClient.js\";\nimport { DefaultDataProvider } from \"~/dataProviders/DefaultDataProvider.js\";\nimport type { WebsiteBuilderThemeInput } from \"./types/WebsiteBuilderTheme.js\";\nimport { Theme } from \"./Theme.js\";\nimport { viewportManager } from \"./ViewportManager.js\";\nimport type { IRedirects } from \"~/IRedirects.js\";\nimport { RedirectsProvider } from \"~/dataProviders/RedirectsProvider.js\";\n\nexport type ApiConfig = {\n apiKey: string;\n apiHost: string;\n apiTenant: string;\n};\n\nexport type ContentSDKConfig = ApiConfig & {\n preview?: boolean;\n theme?: WebsiteBuilderThemeInput;\n};\n\nclass InternalContentSdk implements IContentSdk, IRedirects {\n private activeSdk: IContentSdk;\n private editingSdk: EditingSdk | undefined;\n private redirectsProvider: IRedirects;\n\n constructor(redirectsProvider: IRedirects, liveSdk: LiveSdk, editingSdk?: EditingSdk) {\n this.redirectsProvider = redirectsProvider;\n this.activeSdk = editingSdk ?? liveSdk;\n this.editingSdk = editingSdk;\n }\n\n getEditingSdk() {\n return this.editingSdk;\n }\n\n async getPage(path: string): Promise<PublicPage | null> {\n return this.activeSdk.getPage(path);\n }\n\n listPages(options?: ListPagesOptions): Promise<ListPagesResult> {\n return this.activeSdk.listPages(options);\n }\n\n getAllRedirects(): Promise<Map<string, PublicRedirect>> {\n return this.redirectsProvider.getAllRedirects();\n }\n\n getRedirectByPath(path: string): Promise<PublicRedirect | undefined> {\n return this.redirectsProvider.getRedirectByPath(path);\n }\n}\n\nexport class ContentSdk implements IContentSdk, IRedirects {\n protected sdk?: InternalContentSdk;\n private isPreview = false;\n private lastConfig: any;\n\n public init(config: ContentSDKConfig, afterInit?: () => void): void {\n const configHash = JSON.stringify(config);\n if (this.lastConfig && this.lastConfig === configHash) {\n return;\n }\n\n this.lastConfig = configHash;\n const apiClient = new ApiClient(config.apiHost, config.apiKey, config.apiTenant);\n\n const dataProvider = new DefaultDataProvider({ apiClient });\n\n let liveSdk: IContentSdk = new LiveSdk(dataProvider);\n\n if (config.preview && !environment.isEditing()) {\n this.isPreview = true;\n liveSdk = new PreviewSdk(dataProvider, liveSdk);\n }\n\n const theme = Theme.from(config.theme ?? {});\n\n if (environment.isClient()) {\n viewportManager.setBreakpoints(theme.breakpoints);\n }\n\n let editingSdk;\n if (environment.isEditing()) {\n editingSdk = new EditingSdk(liveSdk, theme);\n }\n\n this.sdk = new InternalContentSdk(\n new RedirectsProvider(apiClient),\n liveSdk as LiveSdk,\n editingSdk\n );\n\n if (typeof afterInit === \"function\") {\n afterInit();\n }\n }\n\n public getEditingSdk() {\n this.assertInitialized();\n return this.sdk.getEditingSdk();\n }\n\n public getPage(path: string) {\n this.assertInitialized();\n return this.sdk.getPage(path);\n }\n\n public listPages(options?: ListPagesOptions) {\n this.assertInitialized();\n return this.sdk.listPages(options);\n }\n\n public async getAllRedirects() {\n this.assertInitialized();\n return this.sdk.getAllRedirects();\n }\n\n getRedirectByPath(path: string): Promise<PublicRedirect | undefined> {\n this.assertInitialized();\n return this.sdk.getRedirectByPath(path);\n }\n\n registerComponent(blueprint: Component): void {\n this.assertInitialized();\n componentRegistry.register(blueprint);\n }\n\n resolveElement(params: ResolveElementParams): ResolvedComponent[] | null {\n this.assertInitialized();\n return new ComponentResolver(componentRegistry).resolve(params);\n }\n\n isEditing() {\n return environment.isEditing();\n }\n\n isPreviewing() {\n return this.isPreview;\n }\n\n private assertInitialized(): asserts this is this & {\n sdk: IContentSdk;\n } {\n if (!this.sdk) {\n throw new Error(`ContentSdk has not been initialized!`);\n }\n }\n}\n\nexport const contentSdk = new ContentSdk();\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ContentSdk.js","sources":["../src/ContentSdk.ts"],"sourcesContent":["import type {\n Component,\n IContentSdk,\n ListPagesOptions,\n ListPagesResult,\n PublicPage,\n PublicRedirect,\n ResolvedComponent\n} from \"~/types.js\";\nimport { environment } from \"./Environment.js\";\nimport { LiveSdk } from \"./LiveSdk.js\";\nimport { EditingSdk } from \"./EditingSdk.js\";\nimport { ComponentResolver, type ResolveElementParams } from \"~/ComponentResolver.js\";\nimport { PreviewSdk } from \"./PreviewSdk.js\";\nimport { componentRegistry } from \"~/ComponentRegistry.js\";\nimport { ApiClient } from \"~/dataProviders/ApiClient.js\";\nimport { DefaultDataProvider } from \"~/dataProviders/DefaultDataProvider.js\";\nimport type { WebsiteBuilderThemeInput } from \"./types/WebsiteBuilderTheme.js\";\nimport { Theme } from \"./Theme.js\";\nimport { viewportManager } from \"./ViewportManager.js\";\nimport type { IRedirects } from \"~/IRedirects.js\";\nimport { RedirectsProvider } from \"~/dataProviders/RedirectsProvider.js\";\n\nexport type ApiConfig = {\n apiKey: string;\n apiHost: string;\n apiTenant: string;\n};\n\nexport type ContentSDKConfig = ApiConfig & {\n preview?: boolean;\n theme?: WebsiteBuilderThemeInput;\n};\n\nclass InternalContentSdk implements IContentSdk, IRedirects {\n private activeSdk: IContentSdk;\n private editingSdk: EditingSdk | undefined;\n private redirectsProvider: IRedirects;\n\n constructor(redirectsProvider: IRedirects, liveSdk: LiveSdk, editingSdk?: EditingSdk) {\n this.redirectsProvider = redirectsProvider;\n this.activeSdk = editingSdk ?? liveSdk;\n this.editingSdk = editingSdk;\n }\n\n getEditingSdk() {\n return this.editingSdk;\n }\n\n async getPage(path: string): Promise<PublicPage | null> {\n return this.activeSdk.getPage(path);\n }\n\n listPages(options?: ListPagesOptions): Promise<ListPagesResult> {\n return this.activeSdk.listPages(options);\n }\n\n getAllRedirects(): Promise<Map<string, PublicRedirect>> {\n return this.redirectsProvider.getAllRedirects();\n }\n\n getRedirectByPath(path: string): Promise<PublicRedirect | undefined> {\n return this.redirectsProvider.getRedirectByPath(path);\n }\n}\n\nexport class ContentSdk implements IContentSdk, IRedirects {\n protected sdk?: InternalContentSdk;\n private isPreview = false;\n private lastConfig: any;\n\n public init(config: ContentSDKConfig, afterInit?: () => void): void {\n const configHash = JSON.stringify(config);\n if (this.lastConfig && this.lastConfig === configHash) {\n return;\n }\n\n this.lastConfig = configHash;\n const apiClient = new ApiClient(config.apiHost, config.apiKey, config.apiTenant);\n\n const dataProvider = new DefaultDataProvider({ apiClient });\n\n let liveSdk: IContentSdk = new LiveSdk(dataProvider);\n\n if (config.preview && !environment.isEditing()) {\n this.isPreview = true;\n liveSdk = new PreviewSdk(dataProvider, liveSdk);\n }\n\n const theme = Theme.from(config.theme ?? {});\n\n if (environment.isClient()) {\n viewportManager.setBreakpoints(theme.breakpoints);\n }\n\n let editingSdk;\n if (environment.isEditing()) {\n editingSdk = new EditingSdk(liveSdk, theme);\n }\n\n this.sdk = new InternalContentSdk(\n new RedirectsProvider(apiClient),\n liveSdk as LiveSdk,\n editingSdk\n );\n\n if (typeof afterInit === \"function\") {\n afterInit();\n }\n }\n\n public getEditingSdk() {\n this.assertInitialized();\n return this.sdk.getEditingSdk();\n }\n\n public getPage(path: string) {\n this.assertInitialized();\n return this.sdk.getPage(path);\n }\n\n public listPages(options?: ListPagesOptions) {\n this.assertInitialized();\n return this.sdk.listPages(options);\n }\n\n public async getAllRedirects() {\n this.assertInitialized();\n return this.sdk.getAllRedirects();\n }\n\n getRedirectByPath(path: string): Promise<PublicRedirect | undefined> {\n this.assertInitialized();\n return this.sdk.getRedirectByPath(path);\n }\n\n registerComponent(blueprint: Component): void {\n this.assertInitialized();\n componentRegistry.register(blueprint);\n }\n\n resolveElement(params: ResolveElementParams): ResolvedComponent[] | null {\n this.assertInitialized();\n return new ComponentResolver(componentRegistry).resolve(params);\n }\n\n isEditing() {\n return environment.isEditing();\n }\n\n isPreviewing() {\n return this.isPreview;\n }\n\n private assertInitialized(): asserts this is this & {\n sdk: IContentSdk;\n } {\n if (!this.sdk) {\n throw new Error(`ContentSdk has not been initialized!`);\n }\n }\n}\n\nexport const contentSdk = new ContentSdk();\n"],"names":["InternalContentSdk","redirectsProvider","liveSdk","editingSdk","path","options","ContentSdk","config","afterInit","configHash","JSON","apiClient","ApiClient","dataProvider","DefaultDataProvider","LiveSdk","environment","PreviewSdk","theme","Theme","viewportManager","EditingSdk","RedirectsProvider","blueprint","componentRegistry","params","ComponentResolver","Error","contentSdk"],"mappings":";;;;;;;;;;;AAkCA,MAAMA;IAKF,YAAYC,iBAA6B,EAAEC,OAAgB,EAAEC,UAAuB,CAAE;QAClF,IAAI,CAAC,iBAAiB,GAAGF;QACzB,IAAI,CAAC,SAAS,GAAGE,cAAcD;QAC/B,IAAI,CAAC,UAAU,GAAGC;IACtB;IAEA,gBAAgB;QACZ,OAAO,IAAI,CAAC,UAAU;IAC1B;IAEA,MAAM,QAAQC,IAAY,EAA8B;QACpD,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAACA;IAClC;IAEA,UAAUC,OAA0B,EAA4B;QAC5D,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAACA;IACpC;IAEA,kBAAwD;QACpD,OAAO,IAAI,CAAC,iBAAiB,CAAC,eAAe;IACjD;IAEA,kBAAkBD,IAAY,EAAuC;QACjE,OAAO,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAACA;IACpD;AACJ;AAEO,MAAME;IAKF,KAAKC,MAAwB,EAAEC,SAAsB,EAAQ;QAChE,MAAMC,aAAaC,KAAK,SAAS,CAACH;QAClC,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,KAAKE,YACvC;QAGJ,IAAI,CAAC,UAAU,GAAGA;QAClB,MAAME,YAAY,IAAIC,UAAUL,OAAO,OAAO,EAAEA,OAAO,MAAM,EAAEA,OAAO,SAAS;QAE/E,MAAMM,eAAe,IAAIC,oBAAoB;YAAEH;QAAU;QAEzD,IAAIT,UAAuB,IAAIa,QAAQF;QAEvC,IAAIN,OAAO,OAAO,IAAI,CAACS,YAAY,SAAS,IAAI;YAC5C,IAAI,CAAC,SAAS,GAAG;YACjBd,UAAU,IAAIe,WAAWJ,cAAcX;QAC3C;QAEA,MAAMgB,QAAQC,MAAM,IAAI,CAACZ,OAAO,KAAK,IAAI,CAAC;QAE1C,IAAIS,YAAY,QAAQ,IACpBI,gBAAgB,cAAc,CAACF,MAAM,WAAW;QAGpD,IAAIf;QACJ,IAAIa,YAAY,SAAS,IACrBb,aAAa,IAAIkB,WAAWnB,SAASgB;QAGzC,IAAI,CAAC,GAAG,GAAG,IAAIlB,mBACX,IAAIsB,kBAAkBX,YACtBT,SACAC;QAGJ,IAAI,AAAqB,cAArB,OAAOK,WACPA;IAER;IAEO,gBAAgB;QACnB,IAAI,CAAC,iBAAiB;QACtB,OAAO,IAAI,CAAC,GAAG,CAAC,aAAa;IACjC;IAEO,QAAQJ,IAAY,EAAE;QACzB,IAAI,CAAC,iBAAiB;QACtB,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAACA;IAC5B;IAEO,UAAUC,OAA0B,EAAE;QACzC,IAAI,CAAC,iBAAiB;QACtB,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,CAACA;IAC9B;IAEA,MAAa,kBAAkB;QAC3B,IAAI,CAAC,iBAAiB;QACtB,OAAO,IAAI,CAAC,GAAG,CAAC,eAAe;IACnC;IAEA,kBAAkBD,IAAY,EAAuC;QACjE,IAAI,CAAC,iBAAiB;QACtB,OAAO,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAACA;IACtC;IAEA,kBAAkBmB,SAAoB,EAAQ;QAC1C,IAAI,CAAC,iBAAiB;QACtBC,kBAAkB,QAAQ,CAACD;IAC/B;IAEA,eAAeE,MAA4B,EAA8B;QACrE,IAAI,CAAC,iBAAiB;QACtB,OAAO,IAAIC,kBAAkBF,mBAAmB,OAAO,CAACC;IAC5D;IAEA,YAAY;QACR,OAAOT,YAAY,SAAS;IAChC;IAEA,eAAe;QACX,OAAO,IAAI,CAAC,SAAS;IACzB;IAEQ,oBAEN;QACE,IAAI,CAAC,IAAI,CAAC,GAAG,EACT,MAAM,IAAIW,MAAM;IAExB;;aA5FQ,SAAS,GAAG;;AA6FxB;AAEO,MAAMC,aAAa,IAAItB"}
package/DocumentStore.js CHANGED
@@ -1,67 +1,55 @@
1
1
  import { jsonPatch } from "./jsonPatch.js";
2
- import { makeAutoObservable, runInAction, observable } from "mobx";
3
- export class DocumentStore {
4
- document = null;
5
- documentReady = false;
6
- readyResolvers = [];
7
- constructor() {
8
- makeAutoObservable(this);
9
- }
10
- setDocument(doc) {
11
- runInAction(() => {
12
- if (this.document) {
13
- Object.assign(this.document, doc);
14
- } else {
15
- this.document = observable(doc);
16
- }
17
- this.documentReady = true;
18
- this.readyResolvers.forEach(fn => fn());
19
- this.readyResolvers = [];
20
- });
21
- }
22
- updateDocument(cb) {
23
- runInAction(() => {
24
- if (this.document) {
25
- cb(this.document);
26
- }
27
- });
28
- }
29
- getDocument() {
30
- return this.document;
31
- }
32
- getElement(id) {
33
- if (!this.document) {
34
- return null;
2
+ import { makeAutoObservable, observable, runInAction } from "mobx";
3
+ class DocumentStore {
4
+ constructor(){
5
+ this.document = null;
6
+ this.documentReady = false;
7
+ this.readyResolvers = [];
8
+ makeAutoObservable(this);
35
9
  }
36
- return this.document.elements[id];
37
- }
38
- updateElement(id, patch) {
39
- if (!this.document) {
40
- return;
10
+ setDocument(doc) {
11
+ runInAction(()=>{
12
+ if (this.document) Object.assign(this.document, doc);
13
+ else this.document = observable(doc);
14
+ this.documentReady = true;
15
+ this.readyResolvers.forEach((fn)=>fn());
16
+ this.readyResolvers = [];
17
+ });
41
18
  }
42
- const current = this.document.elements[id];
43
- if (current) {
44
- this.document.elements[id] = {
45
- ...current,
46
- ...patch
47
- };
19
+ updateDocument(cb) {
20
+ runInAction(()=>{
21
+ if (this.document) cb(this.document);
22
+ });
48
23
  }
49
- }
50
- applyPatch(patch) {
51
- runInAction(() => {
52
- jsonPatch.applyPatch(this.document, patch, false, true);
53
- });
54
- }
55
- async waitForDocument() {
56
- if (this.documentReady) {
57
- return this.document;
24
+ getDocument() {
25
+ return this.document;
26
+ }
27
+ getElement(id) {
28
+ if (!this.document) return null;
29
+ return this.document.elements[id];
30
+ }
31
+ updateElement(id, patch) {
32
+ if (!this.document) return;
33
+ const current = this.document.elements[id];
34
+ if (current) this.document.elements[id] = {
35
+ ...current,
36
+ ...patch
37
+ };
38
+ }
39
+ applyPatch(patch) {
40
+ runInAction(()=>{
41
+ jsonPatch.applyPatch(this.document, patch, false, true);
42
+ });
43
+ }
44
+ async waitForDocument() {
45
+ if (this.documentReady) return this.document;
46
+ return new Promise((resolve)=>{
47
+ this.readyResolvers.push(()=>{
48
+ resolve(this.document);
49
+ });
50
+ });
58
51
  }
59
- return new Promise(resolve => {
60
- this.readyResolvers.push(() => {
61
- resolve(this.document);
62
- });
63
- });
64
- }
65
52
  }
53
+ export { DocumentStore };
66
54
 
67
55
  //# sourceMappingURL=DocumentStore.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["jsonPatch","makeAutoObservable","runInAction","observable","DocumentStore","document","documentReady","readyResolvers","constructor","setDocument","doc","Object","assign","forEach","fn","updateDocument","cb","getDocument","getElement","id","elements","updateElement","patch","current","applyPatch","waitForDocument","Promise","resolve","push"],"sources":["DocumentStore.ts"],"sourcesContent":["import { jsonPatch, type JsonPatchOperation } from \"~/jsonPatch.js\";\nimport type { Document } from \"~/types.js\";\nimport { makeAutoObservable, runInAction, observable } from \"mobx\";\n\nexport class DocumentStore<TDocument extends Document = Document> {\n private document: TDocument | null = null;\n private documentReady = false;\n private readyResolvers: (() => void)[] = [];\n\n constructor() {\n makeAutoObservable(this);\n }\n\n setDocument(doc: TDocument) {\n runInAction(() => {\n if (this.document) {\n Object.assign(this.document, doc);\n } else {\n this.document = observable(doc);\n }\n this.documentReady = true;\n this.readyResolvers.forEach(fn => fn());\n this.readyResolvers = [];\n });\n }\n\n updateDocument(cb: (document: TDocument) => void) {\n runInAction(() => {\n if (this.document) {\n cb(this.document);\n }\n });\n }\n\n getDocument() {\n return this.document;\n }\n\n getElement(id: string) {\n if (!this.document) {\n return null;\n }\n\n return this.document.elements[id];\n }\n\n updateElement(id: string, patch: Partial<any>) {\n if (!this.document) {\n return;\n }\n\n const current = this.document.elements[id];\n if (current) {\n this.document.elements[id] = { ...current, ...patch };\n }\n }\n\n applyPatch(patch: JsonPatchOperation[]) {\n runInAction(() => {\n jsonPatch.applyPatch(this.document!, patch, false, true);\n });\n }\n\n async waitForDocument(): Promise<TDocument> {\n if (this.documentReady) {\n return this.document as TDocument;\n }\n\n return new Promise(resolve => {\n this.readyResolvers.push(() => {\n resolve(this.document as TDocument);\n });\n });\n }\n}\n"],"mappings":"AAAA,SAASA,SAAS;AAElB,SAASC,kBAAkB,EAAEC,WAAW,EAAEC,UAAU,QAAQ,MAAM;AAElE,OAAO,MAAMC,aAAa,CAAwC;EACtDC,QAAQ,GAAqB,IAAI;EACjCC,aAAa,GAAG,KAAK;EACrBC,cAAc,GAAmB,EAAE;EAE3CC,WAAWA,CAAA,EAAG;IACVP,kBAAkB,CAAC,IAAI,CAAC;EAC5B;EAEAQ,WAAWA,CAACC,GAAc,EAAE;IACxBR,WAAW,CAAC,MAAM;MACd,IAAI,IAAI,CAACG,QAAQ,EAAE;QACfM,MAAM,CAACC,MAAM,CAAC,IAAI,CAACP,QAAQ,EAAEK,GAAG,CAAC;MACrC,CAAC,MAAM;QACH,IAAI,CAACL,QAAQ,GAAGF,UAAU,CAACO,GAAG,CAAC;MACnC;MACA,IAAI,CAACJ,aAAa,GAAG,IAAI;MACzB,IAAI,CAACC,cAAc,CAACM,OAAO,CAACC,EAAE,IAAIA,EAAE,CAAC,CAAC,CAAC;MACvC,IAAI,CAACP,cAAc,GAAG,EAAE;IAC5B,CAAC,CAAC;EACN;EAEAQ,cAAcA,CAACC,EAAiC,EAAE;IAC9Cd,WAAW,CAAC,MAAM;MACd,IAAI,IAAI,CAACG,QAAQ,EAAE;QACfW,EAAE,CAAC,IAAI,CAACX,QAAQ,CAAC;MACrB;IACJ,CAAC,CAAC;EACN;EAEAY,WAAWA,CAAA,EAAG;IACV,OAAO,IAAI,CAACZ,QAAQ;EACxB;EAEAa,UAAUA,CAACC,EAAU,EAAE;IACnB,IAAI,CAAC,IAAI,CAACd,QAAQ,EAAE;MAChB,OAAO,IAAI;IACf;IAEA,OAAO,IAAI,CAACA,QAAQ,CAACe,QAAQ,CAACD,EAAE,CAAC;EACrC;EAEAE,aAAaA,CAACF,EAAU,EAAEG,KAAmB,EAAE;IAC3C,IAAI,CAAC,IAAI,CAACjB,QAAQ,EAAE;MAChB;IACJ;IAEA,MAAMkB,OAAO,GAAG,IAAI,CAAClB,QAAQ,CAACe,QAAQ,CAACD,EAAE,CAAC;IAC1C,IAAII,OAAO,EAAE;MACT,IAAI,CAAClB,QAAQ,CAACe,QAAQ,CAACD,EAAE,CAAC,GAAG;QAAE,GAAGI,OAAO;QAAE,GAAGD;MAAM,CAAC;IACzD;EACJ;EAEAE,UAAUA,CAACF,KAA2B,EAAE;IACpCpB,WAAW,CAAC,MAAM;MACdF,SAAS,CAACwB,UAAU,CAAC,IAAI,CAACnB,QAAQ,EAAGiB,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC;IAC5D,CAAC,CAAC;EACN;EAEA,MAAMG,eAAeA,CAAA,EAAuB;IACxC,IAAI,IAAI,CAACnB,aAAa,EAAE;MACpB,OAAO,IAAI,CAACD,QAAQ;IACxB;IAEA,OAAO,IAAIqB,OAAO,CAACC,OAAO,IAAI;MAC1B,IAAI,CAACpB,cAAc,CAACqB,IAAI,CAAC,MAAM;QAC3BD,OAAO,CAAC,IAAI,CAACtB,QAAqB,CAAC;MACvC,CAAC,CAAC;IACN,CAAC,CAAC;EACN;AACJ","ignoreList":[]}
1
+ {"version":3,"file":"DocumentStore.js","sources":["../src/DocumentStore.ts"],"sourcesContent":["import { jsonPatch, type JsonPatchOperation } from \"~/jsonPatch.js\";\nimport type { Document } from \"~/types.js\";\nimport { makeAutoObservable, runInAction, observable } from \"mobx\";\n\nexport class DocumentStore<TDocument extends Document = Document> {\n private document: TDocument | null = null;\n private documentReady = false;\n private readyResolvers: (() => void)[] = [];\n\n constructor() {\n makeAutoObservable(this);\n }\n\n setDocument(doc: TDocument) {\n runInAction(() => {\n if (this.document) {\n Object.assign(this.document, doc);\n } else {\n this.document = observable(doc);\n }\n this.documentReady = true;\n this.readyResolvers.forEach(fn => fn());\n this.readyResolvers = [];\n });\n }\n\n updateDocument(cb: (document: TDocument) => void) {\n runInAction(() => {\n if (this.document) {\n cb(this.document);\n }\n });\n }\n\n getDocument() {\n return this.document;\n }\n\n getElement(id: string) {\n if (!this.document) {\n return null;\n }\n\n return this.document.elements[id];\n }\n\n updateElement(id: string, patch: Partial<any>) {\n if (!this.document) {\n return;\n }\n\n const current = this.document.elements[id];\n if (current) {\n this.document.elements[id] = { ...current, ...patch };\n }\n }\n\n applyPatch(patch: JsonPatchOperation[]) {\n runInAction(() => {\n jsonPatch.applyPatch(this.document!, patch, false, true);\n });\n }\n\n async waitForDocument(): Promise<TDocument> {\n if (this.documentReady) {\n return this.document as TDocument;\n }\n\n return new Promise(resolve => {\n this.readyResolvers.push(() => {\n resolve(this.document as TDocument);\n });\n });\n }\n}\n"],"names":["DocumentStore","makeAutoObservable","doc","runInAction","Object","observable","fn","cb","id","patch","current","jsonPatch","Promise","resolve"],"mappings":";;AAIO,MAAMA;IAKT,aAAc;aAJN,QAAQ,GAAqB;aAC7B,aAAa,GAAG;aAChB,cAAc,GAAmB,EAAE;QAGvCC,mBAAmB,IAAI;IAC3B;IAEA,YAAYC,GAAc,EAAE;QACxBC,YAAY;YACR,IAAI,IAAI,CAAC,QAAQ,EACbC,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAEF;iBAE7B,IAAI,CAAC,QAAQ,GAAGG,WAAWH;YAE/B,IAAI,CAAC,aAAa,GAAG;YACrB,IAAI,CAAC,cAAc,CAAC,OAAO,CAACI,CAAAA,KAAMA;YAClC,IAAI,CAAC,cAAc,GAAG,EAAE;QAC5B;IACJ;IAEA,eAAeC,EAAiC,EAAE;QAC9CJ,YAAY;YACR,IAAI,IAAI,CAAC,QAAQ,EACbI,GAAG,IAAI,CAAC,QAAQ;QAExB;IACJ;IAEA,cAAc;QACV,OAAO,IAAI,CAAC,QAAQ;IACxB;IAEA,WAAWC,EAAU,EAAE;QACnB,IAAI,CAAC,IAAI,CAAC,QAAQ,EACd,OAAO;QAGX,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAACA,GAAG;IACrC;IAEA,cAAcA,EAAU,EAAEC,KAAmB,EAAE;QAC3C,IAAI,CAAC,IAAI,CAAC,QAAQ,EACd;QAGJ,MAAMC,UAAU,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAACF,GAAG;QAC1C,IAAIE,SACA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAACF,GAAG,GAAG;YAAE,GAAGE,OAAO;YAAE,GAAGD,KAAK;QAAC;IAE5D;IAEA,WAAWA,KAA2B,EAAE;QACpCN,YAAY;YACRQ,UAAU,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAGF,OAAO,OAAO;QACvD;IACJ;IAEA,MAAM,kBAAsC;QACxC,IAAI,IAAI,CAAC,aAAa,EAClB,OAAO,IAAI,CAAC,QAAQ;QAGxB,OAAO,IAAIG,QAAQC,CAAAA;YACf,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;gBACrBA,QAAQ,IAAI,CAAC,QAAQ;YACzB;QACJ;IACJ;AACJ"}
@@ -1,22 +1,23 @@
1
1
  import { DocumentStore } from "./DocumentStore.js";
2
2
  class DocumentStoreManager {
3
- stores = new Map();
4
- getStores() {
5
- return this.stores;
6
- }
7
- getStore(id) {
8
- if (!this.stores.has(id)) {
9
- this.stores.set(id, new DocumentStore());
3
+ getStores() {
4
+ return this.stores;
5
+ }
6
+ getStore(id) {
7
+ if (!this.stores.has(id)) this.stores.set(id, new DocumentStore());
8
+ return this.stores.get(id);
9
+ }
10
+ removeStore(id) {
11
+ this.stores.delete(id);
12
+ }
13
+ hasStore(id) {
14
+ return this.stores.has(id);
15
+ }
16
+ constructor(){
17
+ this.stores = new Map();
10
18
  }
11
- return this.stores.get(id);
12
- }
13
- removeStore(id) {
14
- this.stores.delete(id);
15
- }
16
- hasStore(id) {
17
- return this.stores.has(id);
18
- }
19
19
  }
20
- export const documentStoreManager = new DocumentStoreManager();
20
+ const documentStoreManager = new DocumentStoreManager();
21
+ export { documentStoreManager };
21
22
 
22
23
  //# sourceMappingURL=DocumentStoreManager.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["DocumentStore","DocumentStoreManager","stores","Map","getStores","getStore","id","has","set","get","removeStore","delete","hasStore","documentStoreManager"],"sources":["DocumentStoreManager.ts"],"sourcesContent":["import type { Document } from \"./types.js\";\nimport { DocumentStore } from \"./DocumentStore.js\";\n\nclass DocumentStoreManager {\n private stores = new Map<string, DocumentStore>();\n\n getStores() {\n return this.stores;\n }\n\n getStore<TDocument extends Document>(id: string): DocumentStore<TDocument> {\n if (!this.stores.has(id)) {\n this.stores.set(id, new DocumentStore<TDocument>());\n }\n return this.stores.get(id)! as DocumentStore<TDocument>;\n }\n\n removeStore(id: string) {\n this.stores.delete(id);\n }\n\n hasStore(id: string): boolean {\n return this.stores.has(id);\n }\n}\n\nexport const documentStoreManager = new DocumentStoreManager();\n"],"mappings":"AACA,SAASA,aAAa;AAEtB,MAAMC,oBAAoB,CAAC;EACfC,MAAM,GAAG,IAAIC,GAAG,CAAwB,CAAC;EAEjDC,SAASA,CAAA,EAAG;IACR,OAAO,IAAI,CAACF,MAAM;EACtB;EAEAG,QAAQA,CAA6BC,EAAU,EAA4B;IACvE,IAAI,CAAC,IAAI,CAACJ,MAAM,CAACK,GAAG,CAACD,EAAE,CAAC,EAAE;MACtB,IAAI,CAACJ,MAAM,CAACM,GAAG,CAACF,EAAE,EAAE,IAAIN,aAAa,CAAY,CAAC,CAAC;IACvD;IACA,OAAO,IAAI,CAACE,MAAM,CAACO,GAAG,CAACH,EAAE,CAAC;EAC9B;EAEAI,WAAWA,CAACJ,EAAU,EAAE;IACpB,IAAI,CAACJ,MAAM,CAACS,MAAM,CAACL,EAAE,CAAC;EAC1B;EAEAM,QAAQA,CAACN,EAAU,EAAW;IAC1B,OAAO,IAAI,CAACJ,MAAM,CAACK,GAAG,CAACD,EAAE,CAAC;EAC9B;AACJ;AAEA,OAAO,MAAMO,oBAAoB,GAAG,IAAIZ,oBAAoB,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"DocumentStoreManager.js","sources":["../src/DocumentStoreManager.ts"],"sourcesContent":["import type { Document } from \"./types.js\";\nimport { DocumentStore } from \"./DocumentStore.js\";\n\nclass DocumentStoreManager {\n private stores = new Map<string, DocumentStore>();\n\n getStores() {\n return this.stores;\n }\n\n getStore<TDocument extends Document>(id: string): DocumentStore<TDocument> {\n if (!this.stores.has(id)) {\n this.stores.set(id, new DocumentStore<TDocument>());\n }\n return this.stores.get(id)! as DocumentStore<TDocument>;\n }\n\n removeStore(id: string) {\n this.stores.delete(id);\n }\n\n hasStore(id: string): boolean {\n return this.stores.has(id);\n }\n}\n\nexport const documentStoreManager = new DocumentStoreManager();\n"],"names":["DocumentStoreManager","id","DocumentStore","Map","documentStoreManager"],"mappings":";AAGA,MAAMA;IAGF,YAAY;QACR,OAAO,IAAI,CAAC,MAAM;IACtB;IAEA,SAAqCC,EAAU,EAA4B;QACvE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAACA,KACjB,IAAI,CAAC,MAAM,CAAC,GAAG,CAACA,IAAI,IAAIC;QAE5B,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAACD;IAC3B;IAEA,YAAYA,EAAU,EAAE;QACpB,IAAI,CAAC,MAAM,CAAC,MAAM,CAACA;IACvB;IAEA,SAASA,EAAU,EAAW;QAC1B,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAACA;IAC3B;;aAnBQ,MAAM,GAAG,IAAIE;;AAoBzB;AAEO,MAAMC,uBAAuB,IAAIJ"}