@octostar/platform-api 0.5.22 → 0.5.24

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 (71) hide show
  1. package/dist/apis.d.ts +2 -2
  2. package/dist/apis.d.ts.map +1 -1
  3. package/dist/apis.js.map +1 -1
  4. package/dist/components/OsIcon.d.ts +1 -1
  5. package/dist/components/OsIcon.d.ts.map +1 -1
  6. package/dist/components/OsIcon.js.map +1 -1
  7. package/dist/components/OsRecordTitle.d.ts +3 -3
  8. package/dist/components/OsRecordTitle.d.ts.map +1 -1
  9. package/dist/components/OsRecordTitle.js.map +1 -1
  10. package/dist/components/OsTags.d.ts +1 -1
  11. package/dist/components/OsTags.d.ts.map +1 -1
  12. package/dist/components/OsTags.js.map +1 -1
  13. package/dist/components/OsTagsContextMenu.d.ts +1 -1
  14. package/dist/components/OsTagsContextMenu.d.ts.map +1 -1
  15. package/dist/components/OsTagsContextMenu.js.map +1 -1
  16. package/dist/components/TagsDots.d.ts +1 -1
  17. package/dist/components/TagsDots.d.ts.map +1 -1
  18. package/dist/components/TagsDots.js +1 -3
  19. package/dist/components/TagsDots.js.map +1 -1
  20. package/dist/constants.d.ts.map +1 -1
  21. package/dist/constants.js +2 -11
  22. package/dist/constants.js.map +1 -1
  23. package/dist/factory.d.ts +1 -1
  24. package/dist/factory.d.ts.map +1 -1
  25. package/dist/factory.js +3 -5
  26. package/dist/factory.js.map +1 -1
  27. package/dist/index.d.ts +2 -0
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.js +2 -0
  30. package/dist/index.js.map +1 -1
  31. package/dist/lib/AIClientImpl.d.ts +1 -1
  32. package/dist/lib/AIClientImpl.d.ts.map +1 -1
  33. package/dist/lib/AIClientImpl.js +38 -6
  34. package/dist/lib/AIClientImpl.js.map +1 -1
  35. package/dist/lib/AsyncServiceLocator.d.ts +7 -7
  36. package/dist/lib/AsyncServiceLocator.d.ts.map +1 -1
  37. package/dist/lib/AsyncServiceLocator.js +5 -3
  38. package/dist/lib/AsyncServiceLocator.js.map +1 -1
  39. package/dist/lib/FilesAPIImpl.d.ts +10 -7
  40. package/dist/lib/FilesAPIImpl.d.ts.map +1 -1
  41. package/dist/lib/FilesAPIImpl.js +49 -9
  42. package/dist/lib/FilesAPIImpl.js.map +1 -1
  43. package/dist/lib/FusionApi.d.ts +69 -0
  44. package/dist/lib/FusionApi.d.ts.map +1 -0
  45. package/dist/lib/FusionApi.js +361 -0
  46. package/dist/lib/FusionApi.js.map +1 -0
  47. package/dist/lib/LiveContextAPI.d.ts +12 -10
  48. package/dist/lib/LiveContextAPI.d.ts.map +1 -1
  49. package/dist/lib/LiveContextAPI.js +88 -73
  50. package/dist/lib/LiveContextAPI.js.map +1 -1
  51. package/dist/lib/Proxy.d.ts +1 -1
  52. package/dist/lib/Proxy.d.ts.map +1 -1
  53. package/dist/lib/Proxy.js +1 -4
  54. package/dist/lib/Proxy.js.map +1 -1
  55. package/dist/lib/userWorkspace.d.ts +1 -1
  56. package/dist/lib/userWorkspace.d.ts.map +1 -1
  57. package/dist/lib/userWorkspace.js +26 -11
  58. package/dist/lib/userWorkspace.js.map +1 -1
  59. package/dist/octostar-platform-api.js +19020 -871
  60. package/dist/type/FusionTypes.d.ts +39 -0
  61. package/dist/type/FusionTypes.d.ts.map +1 -0
  62. package/dist/type/FusionTypes.js +2 -0
  63. package/dist/type/FusionTypes.js.map +1 -0
  64. package/dist/types.d.ts +11 -11
  65. package/dist/types.d.ts.map +1 -1
  66. package/dist/types.js.map +1 -1
  67. package/dist/utils.d.ts +2 -2
  68. package/dist/utils.d.ts.map +1 -1
  69. package/dist/utils.js +0 -2
  70. package/dist/utils.js.map +1 -1
  71. package/package.json +26 -4
@@ -2,7 +2,7 @@ export class FilesAPIImpl {
2
2
  constructor(osAPIClient) {
3
3
  this.osAPIClient = osAPIClient;
4
4
  }
5
- async stat(os_workspace, path) {
5
+ stat(os_workspace, path) {
6
6
  const url = path
7
7
  ? `/api/v1/files/stat/${os_workspace}/${encodeURIComponent(path)}`
8
8
  : `/api/v1/files/stat/${os_workspace}`;
@@ -52,7 +52,7 @@ export class FilesAPIImpl {
52
52
  headers: { 'Content-Type': 'application/json' },
53
53
  });
54
54
  }
55
- async list_folder(os_workspace, options) {
55
+ async listFolder(os_workspace, options) {
56
56
  if (options?.os_parent_folder) {
57
57
  return this.listByParentFolder(os_workspace, options.os_parent_folder, options);
58
58
  }
@@ -61,8 +61,8 @@ export class FilesAPIImpl {
61
61
  }
62
62
  return this.listRoot(os_workspace, options);
63
63
  }
64
- async move(os_workspace, path, { to_path, force = false }) {
65
- const query = this.buildQueryParams({ to_path, force });
64
+ async moveOrRename(os_workspace, path, { to_path, entity_id, new_name, new_os_parent_folder, force = false }) {
65
+ const query = this.buildQueryParams({ to_path, entity_id, new_name, new_os_parent_folder, force });
66
66
  const url = `/api/v1/files/move/${os_workspace}/${encodeURIComponent(path)}?${query}`;
67
67
  return this.osAPIClient.fetchData({
68
68
  endpoint: url,
@@ -72,7 +72,7 @@ export class FilesAPIImpl {
72
72
  },
73
73
  });
74
74
  }
75
- async getDownloadUrl(os_workspace, path, { content_type, content_disposition = 'inline', redirect = true, } = {}) {
75
+ async getDownloadUrl(os_workspace, path, { content_type, content_disposition = 'inline', redirect = true } = {}) {
76
76
  const query = this.buildQueryParams({
77
77
  content_type,
78
78
  content_disposition,
@@ -86,11 +86,35 @@ export class FilesAPIImpl {
86
86
  });
87
87
  return signedUrl;
88
88
  }
89
- async mkdir(os_workspace, path) {
90
- const url = `/api/v1/files/mkdir/${os_workspace}/${encodeURIComponent(path)}`;
89
+ async createFile(item) {
90
+ const url = `/api/v1/files/create/${item.os_workspace}`;
91
91
  return this.osAPIClient.fetchData({
92
92
  endpoint: url,
93
93
  method: 'POST',
94
+ body: {
95
+ ...item,
96
+ os_item_name: item.os_item_name,
97
+ os_item_content_type: item.os_item_content_type,
98
+ os_has_attachment: item.os_has_attachment,
99
+ os_parent_folder: item.os_parent_folder,
100
+ os_workspace: item.os_workspace,
101
+ os_item_type: item.os_item_type,
102
+ os_entity_uid: item.os_entity_uid,
103
+ entity_id: item.entity_id,
104
+ os_icon: item.os_icon,
105
+ },
106
+ headers: {
107
+ 'Content-Type': 'application/json',
108
+ },
109
+ });
110
+ }
111
+ async mkdir(item) {
112
+ const { os_workspace, os_parent_folder, entity_id, entity_label, os_item_content_type } = item;
113
+ const url = `/api/v1/files/mkdir-parent/${os_workspace}/${encodeURIComponent(os_parent_folder ?? '')}/${encodeURIComponent(entity_label ?? '')}`;
114
+ return this.osAPIClient.fetchData({
115
+ endpoint: url,
116
+ method: 'POST',
117
+ body: JSON.stringify({ entity_id, os_item_content_type }),
94
118
  headers: {
95
119
  'Content-Type': 'application/json',
96
120
  },
@@ -110,9 +134,25 @@ export class FilesAPIImpl {
110
134
  method: 'DELETE',
111
135
  });
112
136
  }
113
- async unzipByEntity(os_workspace, entity_id) {
137
+ async unzipByEntity(os_workspace, entity_id, options) {
138
+ const query = options?.extract_to_new_folder !== undefined
139
+ ? this.buildQueryParams({ extract_to_new_folder: String(options.extract_to_new_folder) })
140
+ : '';
114
141
  return this.osAPIClient.fetchData({
115
- endpoint: `/api/v1/unzip/${os_workspace}/${entity_id}`,
142
+ endpoint: `/api/v1/files/unzip/${os_workspace}/${entity_id}${query ? `?${query}` : ''}`,
143
+ method: 'POST',
144
+ headers: {
145
+ 'Content-Type': 'application/json',
146
+ },
147
+ });
148
+ }
149
+ async getUploadUrl(os_workspace, entity_id, options) {
150
+ const { content_type, ttl_minutes = 60 } = options;
151
+ const ttl = ttl_minutes * 60;
152
+ const query = this.buildQueryParams({ content_type, ttl });
153
+ const url = `/api/v1/files/attachments/${os_workspace}/${entity_id}${query ? `?${query}` : ''}`;
154
+ return this.osAPIClient.fetchData({
155
+ endpoint: url,
116
156
  method: 'POST',
117
157
  headers: {
118
158
  'Content-Type': 'application/json',
@@ -1 +1 @@
1
- {"version":3,"file":"FilesAPIImpl.js","sourceRoot":"","sources":["../../src/lib/FilesAPIImpl.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FilesAPIImpl.js","sourceRoot":"","sources":["../../src/lib/FilesAPIImpl.ts"],"names":[],"mappings":"AAiBA,MAAM,OAAO,YAAY;IAGvB,YAAY,WAAwB;QAClC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;IAED,IAAI,CAAC,YAAoB,EAAE,IAAa;QACtC,MAAM,GAAG,GAAG,IAAI;YACd,CAAC,CAAC,sBAAsB,YAAY,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE;YAClE,CAAC,CAAC,sBAAsB,YAAY,EAAE,CAAC;QACzC,OAAO,IAAI,CAAC,WAAW,CAAC,SAAS,CAAgB;YAC/C,QAAQ,EAAE,GAAG;YACb,MAAM,EAAE,KAAK;YACb,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;aACnC;SACF,CAAC,CAAC;IACL,CAAC;IAEO,gBAAgB,CACtB,OAA+D,EAC/D,QAA+D,EAAE;QAEjE,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QAErC,MAAM,MAAM,GAAG,EAAE,GAAG,OAAO,EAAE,GAAG,KAAK,EAAE,CAAC;QAExC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAClD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACpC,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,YAAoB,EAAE,IAAY,EAAE,OAAsB;QACjF,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAC7C,MAAM,WAAW,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAC7C,MAAM,GAAG,GAAG,sBAAsB,YAAY,IAAI,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAE3F,OAAO,IAAI,CAAC,WAAW,CAAC,SAAS,CAAmB;YAClD,QAAQ,EAAE,GAAG;YACb,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;SAChD,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAC9B,YAAoB,EACpB,gBAAwB,EACxB,OAAsB;QAEtB,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,EAAE,gBAAgB,EAAE,CAAC,CAAC;QACnE,MAAM,GAAG,GAAG,sBAAsB,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAE5E,OAAO,IAAI,CAAC,WAAW,CAAC,SAAS,CAAmB;YAClD,QAAQ,EAAE,GAAG;YACb,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;SAChD,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,QAAQ,CAAC,YAAoB,EAAE,OAAuB;QAClE,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAC7C,MAAM,GAAG,GAAG,sBAAsB,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAE5E,OAAO,IAAI,CAAC,WAAW,CAAC,SAAS,CAAmB;YAClD,QAAQ,EAAE,GAAG;YACb,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;SAChD,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,YAAoB,EAAE,OAA2B;QAChE,IAAI,OAAO,EAAE,gBAAgB,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,OAAO,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;QAClF,CAAC;QAED,IAAI,OAAO,EAAE,IAAI,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC9D,CAAC;QAED,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,YAAoB,EACpB,IAAY,EACZ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,oBAAoB,EAAE,KAAK,GAAG,KAAK,EAAe;QAElF,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAAC,CAAC;QAEnG,MAAM,GAAG,GAAG,sBAAsB,YAAY,IAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,KAAK,EAAE,CAAC;QAEtF,OAAO,IAAI,CAAC,WAAW,CAAC,SAAS,CAAe;YAC9C,QAAQ,EAAE,GAAG;YACb,MAAM,EAAE,KAAK;YACb,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;aACnC;SACF,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,cAAc,CAClB,YAAoB,EACpB,IAAY,EACZ,EAAE,YAAY,EAAE,mBAAmB,GAAG,QAAQ,EAAE,QAAQ,GAAG,IAAI,KAAsB,EAAE;QAEvF,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC;YAClC,YAAY;YACZ,mBAAmB;YACnB,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM;SACzC,CAAC,CAAC;QAEH,MAAM,GAAG,GAAG,0BAA0B,YAAY,IAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,KAAK,EAAE,CAAC;QAE1F,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAExD;YACD,QAAQ,EAAE,GAAG;YACb,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;SAChD,CAAC,CAAC;QAEH,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,IAAmB;QAClC,MAAM,GAAG,GAAG,wBAAwB,IAAI,CAAC,YAAY,EAAE,CAAC;QACxD,OAAO,IAAI,CAAC,WAAW,CAAC,SAAS,CAAgB;YAC/C,QAAQ,EAAE,GAAG;YACb,MAAM,EAAE,MAAM;YACd,IAAI,EAAE;gBACJ,GAAG,IAAI;gBACP,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;gBAC/C,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;gBACzC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;gBACvC,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,OAAO,EAAE,IAAI,CAAC,OAAO;aACtB;YACD,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;aACnC;SACF,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,IAAmB;QAC7B,MAAM,EAAE,YAAY,EAAE,gBAAgB,EAAE,SAAS,EAAE,YAAY,EAAE,oBAAoB,EAAE,GAAG,IAAI,CAAC;QAC/F,MAAM,GAAG,GAAG,8BAA8B,YAAY,IAAI,kBAAkB,CAAC,gBAAgB,IAAI,EAAE,CAAC,IAAI,kBAAkB,CAAC,YAAY,IAAI,EAAE,CAAC,EAAE,CAAC;QAEjJ,OAAO,IAAI,CAAC,WAAW,CAAC,SAAS,CAAgB;YAC/C,QAAQ,EAAE,GAAG;YACb,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,oBAAoB,EAAE,CAAC;YACzD,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;aACnC;SACF,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,YAAoB,EAAE,IAAY;QACjD,MAAM,GAAG,GAAG,6BAA6B,YAAY,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;QACpF,OAAO,IAAI,CAAC,WAAW,CAAC,SAAS,CAAiB;YAChD,QAAQ,EAAE,GAAG;YACb,MAAM,EAAE,QAAQ;SACjB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,YAAoB,EAAE,IAAY;QACtD,MAAM,GAAG,GAAG,kCAAkC,YAAY,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;QACzF,OAAO,IAAI,CAAC,WAAW,CAAC,SAAS,CAAiB;YAChD,QAAQ,EAAE,GAAG;YACb,MAAM,EAAE,QAAQ;SACjB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,YAAoB,EACpB,SAAiB,EACjB,OAAsB;QAEtB,MAAM,KAAK,GACT,OAAO,EAAE,qBAAqB,KAAK,SAAS;YAC1C,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,qBAAqB,EAAE,MAAM,CAAC,OAAO,CAAC,qBAAqB,CAAC,EAAE,CAAC;YACzF,CAAC,CAAC,EAAE,CAAC;QAET,OAAO,IAAI,CAAC,WAAW,CAAC,SAAS,CAG9B;YACD,QAAQ,EAAE,uBAAuB,YAAY,IAAI,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;YACvF,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;aACnC;SACF,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,YAAoB,EAAE,SAAiB,EAAE,OAAsB;QAChF,MAAM,EAAE,YAAY,EAAE,WAAW,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC;QACnD,MAAM,GAAG,GAAG,WAAW,GAAG,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC;QAC3D,MAAM,GAAG,GAAG,6BAA6B,YAAY,IAAI,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAEhG,OAAO,IAAI,CAAC,WAAW,CAAC,SAAS,CAAmB;YAClD,QAAQ,EAAE,GAAG;YACb,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;aACnC;SACF,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -0,0 +1,69 @@
1
+ import type { Entity, WorkspaceItem } from '@octostar/platform-types';
2
+ import type { FusionConnectedDataKey, FusionConnectionValue, FusionAPIConstructorParams, FusionSource, FusionValue, FusionDocumentData } from '../type/FusionTypes';
3
+ interface GetFusionValuesFromSourcesParams {
4
+ sources: FusionSource[];
5
+ getValue: (record: Record<string, unknown>) => unknown;
6
+ focusedSourceId?: string | 0;
7
+ }
8
+ /**
9
+ * FusionAPI handles entity data fusion operations, managing sources,
10
+ * connections, and data merging for entities with same_as relationships
11
+ */
12
+ export declare class FusionAPI {
13
+ private static readonly DEFAULT_COLOR;
14
+ private static readonly RELATIONSHIP_SAME_AS;
15
+ private static readonly RELATIONSHIP_SAME_AS_REVERSE;
16
+ private static readonly RELATIONSHIP_FEATURED_IN;
17
+ readonly entity: Entity;
18
+ private readonly fusionSourcesEntityIds;
19
+ private readonly fusionSourcesPromise;
20
+ private readonly uiOrderPromise;
21
+ private readonly desktopAPI;
22
+ private readonly ontologyAPI;
23
+ constructor({ entity, desktopAPI, ontologyAPI }: FusionAPIConstructorParams);
24
+ /**
25
+ * Gets all fusion sources (main entity + connected same_as entities)
26
+ */
27
+ getSources(): Promise<FusionSource[]>;
28
+ /**
29
+ * Gets connected data for the main entity only
30
+ */
31
+ getMainConnectedData(name: string, connectedDataKey: FusionConnectedDataKey): Promise<FusionConnectionValue[]>;
32
+ fuseEntities(dataToSave: FusionDocumentData[]): Promise<(WorkspaceItem | undefined)[]>;
33
+ /**
34
+ * Gets connected data for all fusion sources and merges them
35
+ */
36
+ getFusionConnectedData(name: string, connectedDataKey: FusionConnectedDataKey): Promise<FusionConnectionValue[]>;
37
+ /**
38
+ * Generates ordered record fields for fusion sources based on UI schema
39
+ */
40
+ generateRecordFields(sources: FusionSource[]): Promise<string[]>;
41
+ /**
42
+ * Removes all same_as relationships for the given entity
43
+ */
44
+ removeFusionSourceRelationships(entity: Entity): Promise<void>;
45
+ private removeFusionSourceSameAsRelationship;
46
+ private removeFusionSourceDocumentRelationship;
47
+ private getParentEntity;
48
+ /**
49
+ * Static method to get fusion values from sources with optional focus
50
+ */
51
+ static getFusionValuesFromSources({ sources, getValue, focusedSourceId, }: GetFusionValuesFromSourcesParams): FusionValue<unknown, true>[];
52
+ private getEntityConcept;
53
+ private getUiOrderAsync;
54
+ private getWorkspaceItemColor;
55
+ private getFusionSourceColorAsync;
56
+ private getFusionSourcesAsync;
57
+ private getSameAsEntities;
58
+ private getRelatedDocumentsData;
59
+ private isFusionDocumentData;
60
+ private getConnectedEntities;
61
+ private getConnectionsByRelationship;
62
+ private getEntityConnectedData;
63
+ private mergeConnectedData;
64
+ private sortFieldsByUiOrder;
65
+ private static getFusionSourceWithFocus;
66
+ private static hashValue;
67
+ }
68
+ export {};
69
+ //# sourceMappingURL=FusionApi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FusionApi.d.ts","sourceRoot":"","sources":["../../src/lib/FusionApi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAwB,MAAM,EAAY,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAGtG,OAAO,KAAK,EACV,sBAAsB,EACtB,qBAAqB,EACrB,0BAA0B,EAC1B,YAAY,EACZ,WAAW,EACX,kBAAkB,EACnB,MAAM,qBAAqB,CAAC;AAE7B,UAAU,gCAAgC;IACxC,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC;IACvD,eAAe,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC;CAC9B;AAED;;;GAGG;AACH,qBAAa,SAAS;IAEpB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAa;IAClD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAa;IACzD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,4BAA4B,CAAc;IAClE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,wBAAwB,CAAiB;IAGjE,SAAgB,MAAM,EAAE,MAAM,CAAC;IAE/B,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAc;IACrD,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAA0B;IAC/D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAoB;IACnD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsC;IACjE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAuC;gBAEvD,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,EAAE,0BAA0B;IAW3E;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAc3C;;OAEG;IACG,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,gBAAgB,EAAE,sBAAsB,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAK9G,YAAY,CAAC,UAAU,EAAE,kBAAkB,EAAE;IA0CnD;;OAEG;IACG,sBAAsB,CAC1B,IAAI,EAAE,MAAM,EACZ,gBAAgB,EAAE,sBAAsB,GACvC,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAoBnC;;OAEG;IACG,oBAAoB,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAQtE;;OAEG;IACG,+BAA+B,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAkBtD,oCAAoC;YAmBpC,sCAAsC;YAmBtC,eAAe;IAW7B;;OAEG;IACH,MAAM,CAAC,0BAA0B,CAAC,EAChC,OAAO,EACP,QAAQ,EACR,eAAe,GAChB,EAAE,gCAAgC,GAAG,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE;IA0BlE,OAAO,CAAC,gBAAgB;YAIV,eAAe;IAS7B,OAAO,CAAC,qBAAqB;YAgBf,yBAAyB;YAWzB,qBAAqB;YAyCrB,iBAAiB;YASjB,uBAAuB;IA0CrC,OAAO,CAAC,oBAAoB;YAyBd,oBAAoB;YAiBpB,4BAA4B;YAgB5B,sBAAsB;IAmBpC,OAAO,CAAC,kBAAkB;IAiB1B,OAAO,CAAC,mBAAmB;IAmB3B,OAAO,CAAC,MAAM,CAAC,wBAAwB;IAOvC,OAAO,CAAC,MAAM,CAAC,SAAS;CAMzB"}
@@ -0,0 +1,361 @@
1
+ import { has, isString } from 'lodash';
2
+ /**
3
+ * FusionAPI handles entity data fusion operations, managing sources,
4
+ * connections, and data merging for entities with same_as relationships
5
+ */
6
+ export class FusionAPI {
7
+ constructor({ entity, desktopAPI, ontologyAPI }) {
8
+ this.entity = entity;
9
+ this.fusionSourcesEntityIds = new Set([entity.entity_id]);
10
+ this.desktopAPI = desktopAPI;
11
+ this.ontologyAPI = ontologyAPI;
12
+ this.uiOrderPromise = this.getUiOrderAsync();
13
+ this.fusionSourcesPromise = this.getFusionSourcesAsync();
14
+ }
15
+ // Public Methods
16
+ /**
17
+ * Gets all fusion sources (main entity + connected same_as entities)
18
+ */
19
+ async getSources() {
20
+ const fusionSources = await this.fusionSourcesPromise;
21
+ return [
22
+ {
23
+ data: this.entity,
24
+ entity: this.entity,
25
+ color: await this.getFusionSourceColorAsync(this.entity),
26
+ path: [],
27
+ },
28
+ ...fusionSources,
29
+ ];
30
+ }
31
+ /**
32
+ * Gets connected data for the main entity only
33
+ */
34
+ async getMainConnectedData(name, connectedDataKey) {
35
+ const [mainSource] = await this.getSources();
36
+ return this.getEntityConnectedData(mainSource, name, connectedDataKey);
37
+ }
38
+ async fuseEntities(dataToSave) {
39
+ const activeWorkspace = await this.desktopAPI.getActiveWorkspace();
40
+ return this.desktopAPI.withProgressBar(Promise.all(dataToSave.map(async ({ entity: entityToFuse, fusionData }) => {
41
+ switch (entityToFuse.entity_type) {
42
+ case this.entity.entity_type: {
43
+ return this.desktopAPI.connect('same_as', this.entity, entityToFuse, activeWorkspace ?? this.entity.os_workspace);
44
+ }
45
+ case 'os_file': {
46
+ const relationship = await this.desktopAPI.connect(FusionAPI.RELATIONSHIP_FEATURED_IN, this.entity, entityToFuse, activeWorkspace ?? this.entity.os_workspace);
47
+ return this.desktopAPI.save({
48
+ ...relationship,
49
+ os_item_content: {
50
+ ...relationship.os_item_content,
51
+ fusionData,
52
+ },
53
+ });
54
+ }
55
+ default: {
56
+ return undefined;
57
+ }
58
+ }
59
+ })), {
60
+ job_type: 'fusing',
61
+ label: `Fusing data for "${this.entity.entity_label}"`,
62
+ });
63
+ }
64
+ /**
65
+ * Gets connected data for all fusion sources and merges them
66
+ */
67
+ async getFusionConnectedData(name, connectedDataKey) {
68
+ const sources = await this.getSources();
69
+ const connectedData = (await Promise.all(sources.map(source => this.getEntityConnectedData(source, name, connectedDataKey)))).flat();
70
+ return this.mergeConnectedData(connectedData).map(item => {
71
+ const { value } = item;
72
+ const entity = value.entity2;
73
+ const connectedSource = sources.find(source => source.entity.entity_id === entity.entity_id);
74
+ if (connectedSource) {
75
+ return {
76
+ ...item,
77
+ sources: [...item.sources, connectedSource],
78
+ };
79
+ }
80
+ return item;
81
+ });
82
+ }
83
+ /**
84
+ * Generates ordered record fields for fusion sources based on UI schema
85
+ */
86
+ async generateRecordFields(sources) {
87
+ const uiOrder = await this.uiOrderPromise;
88
+ const fieldSet = new Set(sources.flatMap(({ data }) => Object.keys(data).filter(key => Boolean(data[key]))));
89
+ const recordFields = Array.from(fieldSet);
90
+ return this.sortFieldsByUiOrder(recordFields, uiOrder);
91
+ }
92
+ /**
93
+ * Removes all same_as relationships for the given entity
94
+ */
95
+ async removeFusionSourceRelationships(entity) {
96
+ const parentEntity = await this.getParentEntity(entity);
97
+ if (!parentEntity) {
98
+ return;
99
+ }
100
+ if (entity.entity_type === 'os_file') {
101
+ await this.desktopAPI.withProgressBar(this.removeFusionSourceDocumentRelationship(parentEntity, entity), {
102
+ job_type: 'remove',
103
+ label: `Removing ${entity.entity_label} as a fusion source`,
104
+ });
105
+ }
106
+ else {
107
+ await this.desktopAPI.withProgressBar(this.removeFusionSourceSameAsRelationship(parentEntity, entity), {
108
+ job_type: 'remove',
109
+ label: `Removing ${entity.entity_label} as a fusion source`,
110
+ });
111
+ }
112
+ }
113
+ async removeFusionSourceSameAsRelationship(entity, sameEntity) {
114
+ const relationships = await this.ontologyAPI.getWorkspaceRelationshipRecords(entity, FusionAPI.RELATIONSHIP_SAME_AS);
115
+ const filteredRelationships = relationships.filter(relationship => relationship.os_entity_uid_to === sameEntity.entity_id);
116
+ await Promise.all(filteredRelationships.map(relationship => this.desktopAPI.delete({
117
+ entity_type: relationship.os_item_type,
118
+ os_entity_uid: relationship.os_entity_uid,
119
+ os_workspace: relationship.os_workspace,
120
+ })));
121
+ }
122
+ async removeFusionSourceDocumentRelationship(entity, document) {
123
+ const relationships = await this.ontologyAPI.getWorkspaceRelationshipRecords(entity, FusionAPI.RELATIONSHIP_FEATURED_IN);
124
+ const filteredRelationships = relationships.filter(relationship => [relationship.os_entity_uid_from, relationship.os_entity_uid_to].includes(document.entity_id));
125
+ await Promise.all(filteredRelationships.map(relationship => this.desktopAPI.delete({
126
+ entity_type: relationship.os_item_type,
127
+ os_entity_uid: relationship.os_entity_uid,
128
+ os_workspace: relationship.os_workspace,
129
+ })));
130
+ }
131
+ async getParentEntity(entity) {
132
+ const sources = await this.getSources();
133
+ const currentSource = sources.find(source => source.entity.entity_id === entity.entity_id);
134
+ if (!currentSource) {
135
+ return undefined;
136
+ }
137
+ const parentEntityId = currentSource.path[currentSource.path.length - 1];
138
+ const parentSource = sources.find(source => source.entity.entity_id === parentEntityId);
139
+ return parentSource?.entity ?? this.entity;
140
+ }
141
+ /**
142
+ * Static method to get fusion values from sources with optional focus
143
+ */
144
+ static getFusionValuesFromSources({ sources, getValue, focusedSourceId, }) {
145
+ const valuesObject = {};
146
+ sources.forEach(source => {
147
+ const data = source.data;
148
+ const value = getValue(data);
149
+ if (!value) {
150
+ return;
151
+ }
152
+ const key = this.hashValue(value);
153
+ if (valuesObject[key]) {
154
+ valuesObject[key].sources.push(this.getFusionSourceWithFocus(source, focusedSourceId));
155
+ }
156
+ else {
157
+ valuesObject[key] = {
158
+ value,
159
+ sources: [this.getFusionSourceWithFocus(source, focusedSourceId)],
160
+ };
161
+ }
162
+ });
163
+ return Object.values(valuesObject);
164
+ }
165
+ // Private Methods - Entity and Concept Handling
166
+ getEntityConcept(entity) {
167
+ return 'os_concept' in entity && typeof entity.os_concept === 'string' ? entity.os_concept : entity.entity_type;
168
+ }
169
+ async getUiOrderAsync() {
170
+ const concept = this.getEntityConcept(this.entity);
171
+ const { schemaUI } = await this.desktopAPI.getJSONSchema(concept);
172
+ const { 'ui:order': orderedFields } = JSON.parse(schemaUI);
173
+ return orderedFields ?? [];
174
+ }
175
+ // Private Methods - Color Handling
176
+ getWorkspaceItemColor(workspace) {
177
+ const osItemContent = workspace?.os_item_content;
178
+ if (osItemContent &&
179
+ typeof osItemContent === 'object' &&
180
+ 'color' in osItemContent &&
181
+ typeof osItemContent.color === 'string' &&
182
+ Boolean(osItemContent.color)) {
183
+ return osItemContent.color;
184
+ }
185
+ return FusionAPI.DEFAULT_COLOR;
186
+ }
187
+ async getFusionSourceColorAsync(entity) {
188
+ if (!has(entity, 'os_workspace') || !isString(entity.os_workspace)) {
189
+ return FusionAPI.DEFAULT_COLOR;
190
+ }
191
+ const workspace = await this.desktopAPI.getItem(entity.os_workspace);
192
+ return this.getWorkspaceItemColor(workspace);
193
+ }
194
+ // Private Methods - Fusion Sources
195
+ async getFusionSourcesAsync(entity = this.entity, path = [this.entity.entity_id]) {
196
+ const sameAsEntities = await this.getSameAsEntities(entity);
197
+ const relatedDocuments = await this.getRelatedDocumentsData(entity);
198
+ const sourcesPromises = sameAsEntities.map(async (connectedEntity) => {
199
+ const entityId = connectedEntity.entity_id;
200
+ if (this.fusionSourcesEntityIds.has(entityId)) {
201
+ return [];
202
+ }
203
+ this.fusionSourcesEntityIds.add(entityId);
204
+ const nestedSources = await this.getFusionSourcesAsync(connectedEntity, [...path, entityId]);
205
+ return [
206
+ {
207
+ data: connectedEntity,
208
+ entity: connectedEntity,
209
+ color: await this.getFusionSourceColorAsync(connectedEntity),
210
+ path,
211
+ },
212
+ ...nestedSources,
213
+ ];
214
+ });
215
+ const relatedDocumentsSources = Promise.all(relatedDocuments.map(async (document) => ({
216
+ data: document.fusionData?.entityExtractedMetadata ?? {},
217
+ entity: document.entity,
218
+ extractedFusionData: document.fusionData,
219
+ color: await this.getFusionSourceColorAsync(document.entity),
220
+ path,
221
+ })));
222
+ return [...(await Promise.all(sourcesPromises)).flat(), ...(await relatedDocumentsSources).flat()];
223
+ }
224
+ async getSameAsEntities(entity) {
225
+ const [forwardEntities, reverseEntities] = await Promise.all([
226
+ this.ontologyAPI.getConnectedEntities(entity, FusionAPI.RELATIONSHIP_SAME_AS),
227
+ this.ontologyAPI.getConnectedEntities(entity, FusionAPI.RELATIONSHIP_SAME_AS_REVERSE),
228
+ ]);
229
+ return [...forwardEntities, ...reverseEntities];
230
+ }
231
+ async getRelatedDocumentsData(entity) {
232
+ const relatedDocuments = await this.ontologyAPI.getWorkspaceRelationshipRecords(entity, FusionAPI.RELATIONSHIP_FEATURED_IN);
233
+ const data = await Promise.all(relatedDocuments.map(async (document) => {
234
+ if ('os_item_content' in document &&
235
+ typeof document.os_item_content === 'object' &&
236
+ document.os_item_content &&
237
+ 'fusionData' in document.os_item_content &&
238
+ document.os_item_content.fusionData) {
239
+ const entityId = document.os_relationship_name === FusionAPI.RELATIONSHIP_FEATURED_IN
240
+ ? document.os_entity_uid_to
241
+ : document.os_entity_uid_from;
242
+ const entityType = document.os_relationship_name === FusionAPI.RELATIONSHIP_FEATURED_IN
243
+ ? document.os_entity_type_to
244
+ : document.os_entity_type_from;
245
+ const entityWithMissing = {
246
+ entity_id: entityId,
247
+ entity_type: entityType,
248
+ entity_label: '',
249
+ '#missing': true,
250
+ };
251
+ const documentEntity = await this.ontologyAPI.getEntity(entityWithMissing);
252
+ if (documentEntity['#missing']) {
253
+ return undefined;
254
+ }
255
+ return { fusionData: document.os_item_content.fusionData ?? {}, entity: documentEntity };
256
+ }
257
+ return undefined;
258
+ }));
259
+ return data.filter(v => this.isFusionDocumentData(v));
260
+ }
261
+ isFusionDocumentData(data) {
262
+ if (typeof data !== 'object' || data === null) {
263
+ return false;
264
+ }
265
+ if ('description' in data && typeof data.description !== 'string' && data.description !== undefined) {
266
+ return false;
267
+ }
268
+ if ('similarEntity' in data &&
269
+ (typeof data.similarEntity !== 'object' || data.similarEntity === null) &&
270
+ data.similarEntity !== undefined) {
271
+ return false;
272
+ }
273
+ if ('entityInfo' in data && !Array.isArray(data.entityInfo) && data.entityInfo !== undefined) {
274
+ return false;
275
+ }
276
+ if ('entity' in data && (typeof data.entity !== 'object' || data.entity === null) && data.entity !== undefined) {
277
+ return false;
278
+ }
279
+ return true;
280
+ }
281
+ // Private Methods - Connected Data
282
+ async getConnectedEntities(entity, name, connectedDataKey) {
283
+ switch (connectedDataKey) {
284
+ case 'byConcept':
285
+ return this.ontologyAPI.getConnectionsByType(entity, name);
286
+ case 'byRelationship':
287
+ return this.getConnectionsByRelationship(entity, name);
288
+ default:
289
+ return [];
290
+ }
291
+ }
292
+ async getConnectionsByRelationship(entity, relationshipName) {
293
+ const allRelationships = await this.ontologyAPI.getRelationshipsForEntity(entity);
294
+ const relationship = allRelationships.find(r => r.relationship_name === relationshipName);
295
+ if (!relationship) {
296
+ return [];
297
+ }
298
+ const connectedEntities = await this.ontologyAPI.getConnectedEntities(entity, relationship);
299
+ return connectedEntities.map(entity2 => ({
300
+ entity1: entity,
301
+ entity2,
302
+ relationship,
303
+ }));
304
+ }
305
+ async getEntityConnectedData(source, name, connectedDataKey) {
306
+ const connections = await this.getConnectedEntities(source.entity, name, connectedDataKey);
307
+ if (connections.length === 0) {
308
+ return [];
309
+ }
310
+ const connectedEntitiesEntries = connections.map(connection => [connection.entity2.entity_id, { value: connection, sources: [source] }]);
311
+ return Object.values(Object.fromEntries(connectedEntitiesEntries));
312
+ }
313
+ mergeConnectedData(connectedData) {
314
+ const mergedConnectedDataObject = {};
315
+ for (const data of connectedData) {
316
+ const key = data.value.entity2.entity_id;
317
+ if (mergedConnectedDataObject[key]) {
318
+ mergedConnectedDataObject[key].sources.push(...data.sources);
319
+ }
320
+ else {
321
+ mergedConnectedDataObject[key] = data;
322
+ }
323
+ }
324
+ return Object.values(mergedConnectedDataObject);
325
+ }
326
+ // Private Methods - Utility
327
+ sortFieldsByUiOrder(fields, uiOrder) {
328
+ return fields.sort((a, b) => {
329
+ const aIndex = uiOrder.indexOf(a);
330
+ const bIndex = uiOrder.indexOf(b);
331
+ if (aIndex === bIndex) {
332
+ return a.localeCompare(b);
333
+ }
334
+ if (aIndex === -1) {
335
+ return 1;
336
+ }
337
+ if (bIndex === -1) {
338
+ return -1;
339
+ }
340
+ return aIndex - bIndex;
341
+ });
342
+ }
343
+ static getFusionSourceWithFocus(source, focusedSourceId) {
344
+ return {
345
+ ...source,
346
+ isOutOfFocus: Boolean(focusedSourceId) && focusedSourceId !== source.entity.entity_id,
347
+ };
348
+ }
349
+ static hashValue(value) {
350
+ if (typeof value === 'object' && value !== null) {
351
+ return JSON.stringify(value);
352
+ }
353
+ return String(value);
354
+ }
355
+ }
356
+ // Constants
357
+ FusionAPI.DEFAULT_COLOR = '#0C66E4';
358
+ FusionAPI.RELATIONSHIP_SAME_AS = 'same_as';
359
+ FusionAPI.RELATIONSHIP_SAME_AS_REVERSE = '~same_as';
360
+ FusionAPI.RELATIONSHIP_FEATURED_IN = 'featured_in';
361
+ //# sourceMappingURL=FusionApi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FusionApi.js","sourceRoot":"","sources":["../../src/lib/FusionApi.ts"],"names":[],"mappings":"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"}
@@ -1,26 +1,28 @@
1
- import { LiveContext, LiveContextListener, LiveContextAPISetParams, DefaultLiveContextData } from '@octostar/platform-types';
1
+ import type { LiveContext, LiveContextListener, LiveContextAPISetParams, DefaultLiveContextData } from '@octostar/platform-types';
2
2
  export declare class LiveContextAPI<ContextData extends DefaultLiveContextData = DefaultLiveContextData> implements LiveContext<ContextData> {
3
+ readonly id: string;
3
4
  private contextData;
4
5
  private listeners;
5
- private postRobotListener;
6
6
  private type;
7
7
  private channelId;
8
- private iframeChannelAttr;
9
- readonly id: string;
8
+ private messageHandler;
9
+ private messageType;
10
10
  constructor(contextData: ContextData);
11
- private connectPostRobot;
11
+ private initPostRobot;
12
+ private handleMessage;
13
+ private requestInit;
14
+ private sendMessage;
12
15
  private getConnectId;
13
- private getTargetWindow;
16
+ private getContextDataFromParams;
14
17
  private setContextAndNotify;
15
- private getPostRobotEventName;
16
18
  private sendContextUpdate;
17
19
  getContext(): ContextData;
18
- setContext(context: LiveContextAPISetParams<ContextData>): Promise<void>;
20
+ setContext(context: LiveContextAPISetParams<ContextData>): void;
19
21
  subscribeToChanges(contextListener: LiveContextListener<ContextData>): string;
20
22
  subscribeToChanges(id: string, contextListener: LiveContextListener<ContextData>): string;
21
23
  unsubscribeFromChanges(id: string): void;
22
- addContextListener<ContextDataToConnect extends DefaultLiveContextData>(LiveContextAPItoConnect: LiveContextAPI<ContextDataToConnect>, mapContext?: (context: ContextDataToConnect) => ContextData): () => void;
23
- removeContextListener<ContextDataToConnect extends DefaultLiveContextData>(idOrContextAPI: LiveContextAPI<ContextDataToConnect> | string): void;
24
+ addContextListener<ContextDataToConnect extends DefaultLiveContextData>(liveContextAPItoConnect: LiveContext<ContextDataToConnect>, mapContext?: (context: ContextDataToConnect) => ContextData): () => void;
25
+ removeContextListener<ContextDataToConnect extends DefaultLiveContextData>(idOrContextAPI: LiveContext<ContextDataToConnect> | string): void;
24
26
  connect(): string;
25
27
  destroy(): void;
26
28
  }
@@ -1 +1 @@
1
- {"version":3,"file":"LiveContextAPI.d.ts","sourceRoot":"","sources":["../../src/lib/LiveContextAPI.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,uBAAuB,EACvB,sBAAsB,EACvB,MAAM,0BAA0B,CAAC;AAMlC,qBAAa,cAAc,CAAC,WAAW,SAAS,sBAAsB,GAAG,sBAAsB,CAAE,YAAW,WAAW,CAAC,WAAW,CAAC;IAElI,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,SAAS,CAAwD;IACzE,OAAO,CAAC,iBAAiB,CAAgD;IACzE,OAAO,CAAC,IAAI,CAAsB;IAClC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,iBAAiB,CAAkC;IAC3D,QAAQ,CAAC,EAAE,SAAY;gBAEX,WAAW,EAAE,WAAW;YAOtB,gBAAgB;IAc9B,OAAO,CAAC,YAAY;YAIN,eAAe;IAyB7B,OAAO,CAAC,mBAAmB;IAS3B,OAAO,CAAC,qBAAqB;YAIf,iBAAiB;IAU/B,UAAU;IAIJ,UAAU,CAAC,OAAO,EAAE,uBAAuB,CAAC,WAAW,CAAC;IAK9D,kBAAkB,CAAC,eAAe,EAAE,mBAAmB,CAAC,WAAW,CAAC,GAAG,MAAM;IAE7E,kBAAkB,CAChB,EAAE,EAAE,MAAM,EACV,eAAe,EAAE,mBAAmB,CAAC,WAAW,CAAC,GAChD,MAAM;IAsBT,sBAAsB,CAAC,EAAE,EAAE,MAAM;IAIjC,kBAAkB,CAAC,oBAAoB,SAAS,sBAAsB,EAAE,uBAAuB,EAAE,cAAc,CAAC,oBAAoB,CAAC,EAAE,UAAU,GAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,WAA4D,GAAG,MAAM,IAAI;IAc/P,qBAAqB,CAAC,oBAAoB,SAAS,sBAAsB,EAAE,cAAc,EAAE,cAAc,CAAC,oBAAoB,CAAC,GAAG,MAAM;IAKvI,OAAO;IAMR,OAAO;CAGR"}
1
+ {"version":3,"file":"LiveContextAPI.d.ts","sourceRoot":"","sources":["../../src/lib/LiveContextAPI.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,mBAAmB,EACnB,uBAAuB,EACvB,sBAAsB,EACvB,MAAM,0BAA0B,CAAC;AAOlC,qBAAa,cAAc,CAAC,WAAW,SAAS,sBAAsB,GAAG,sBAAsB,CAC7F,YAAW,WAAW,CAAC,WAAW,CAAC;IAGnC,QAAQ,CAAC,EAAE,SAAY;IAGvB,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,SAAS,CAAwD;IACzE,OAAO,CAAC,IAAI,CAAsB;IAClC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,cAAc,CAAgC;IACtD,OAAO,CAAC,WAAW,CAA4B;gBAEnC,WAAW,EAAE,WAAW;IAapC,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,aAAa;IA0BrB,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,WAAW;IAWnB,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,wBAAwB;IAOhC,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,iBAAiB;IASzB,UAAU;IAIV,UAAU,CAAC,OAAO,EAAE,uBAAuB,CAAC,WAAW,CAAC;IAQxD,kBAAkB,CAAC,eAAe,EAAE,mBAAmB,CAAC,WAAW,CAAC,GAAG,MAAM;IAC7E,kBAAkB,CAAC,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE,mBAAmB,CAAC,WAAW,CAAC,GAAG,MAAM;IAiBzF,sBAAsB,CAAC,EAAE,EAAE,MAAM;IAKjC,kBAAkB,CAAC,oBAAoB,SAAS,sBAAsB,EACpE,uBAAuB,EAAE,WAAW,CAAC,oBAAoB,CAAC,EAC1D,UAAU,GAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,WAA0D,GACxG,MAAM,IAAI;IAmBb,qBAAqB,CAAC,oBAAoB,SAAS,sBAAsB,EACvE,cAAc,EAAE,WAAW,CAAC,oBAAoB,CAAC,GAAG,MAAM;IAM5D,OAAO;IAIP,OAAO;CAOR"}