@snaptrude/plugin-client 0.0.1 → 0.0.3

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.
@@ -1,8 +1,9 @@
1
- import { PluginSpaceApi, PluginSpaceCreateRectangularArgs, PluginSpaceCreateRectangularResult, PluginSpaceDeleteByIdArgs, PluginSpaceDeleteByIdResult, PluginSpaceGetByIdArgs, PluginSpaceGetByIdResult } from "@snaptrude/plugin-core";
1
+ import { PluginSpaceApi, PluginSpaceCreateRectangularArgs, PluginSpaceCreateRectangularResult, PluginSpaceDeleteByIdArgs, PluginSpaceDeleteByIdResult, PluginSpaceGetByIdArgs, PluginSpaceGetByIdResult, PluginSpaceGetAllResult } from "@snaptrude/plugin-core";
2
2
  export declare class ClientSpaceApi extends PluginSpaceApi {
3
3
  constructor();
4
4
  createRectangular({ position, dimensions, }: PluginSpaceCreateRectangularArgs): Promise<PluginSpaceCreateRectangularResult>;
5
5
  getById({ spaceId, properties, }: PluginSpaceGetByIdArgs): Promise<PluginSpaceGetByIdResult>;
6
+ getAll(): Promise<PluginSpaceGetAllResult>;
6
7
  deleteById({ spaceId, }: PluginSpaceDeleteByIdArgs): Promise<PluginSpaceDeleteByIdResult>;
7
8
  }
8
9
  //# sourceMappingURL=space.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"space.d.ts","sourceRoot":"","sources":["../../../src/api/entity/space.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,gCAAgC,EAChC,kCAAkC,EAClC,yBAAyB,EACzB,2BAA2B,EAC3B,sBAAsB,EACtB,wBAAwB,EACzB,MAAM,wBAAwB,CAAA;AAG/B,qBAAa,cAAe,SAAQ,cAAc;;IAKnC,iBAAiB,CAAC,EAC7B,QAAQ,EACR,UAAU,GACX,EAAE,gCAAgC,GAAG,OAAO,CAAC,kCAAkC,CAAC;IAWpE,OAAO,CAAC,EACnB,OAAO,EACP,UAAU,GACX,EAAE,sBAAsB,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAWhD,UAAU,CAAC,EACtB,OAAO,GACR,EAAE,yBAAyB,GAAG,OAAO,CAAC,2BAA2B,CAAC;CASpE"}
1
+ {"version":3,"file":"space.d.ts","sourceRoot":"","sources":["../../../src/api/entity/space.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,gCAAgC,EAChC,kCAAkC,EAClC,yBAAyB,EACzB,2BAA2B,EAC3B,sBAAsB,EACtB,wBAAwB,EACxB,uBAAuB,EACxB,MAAM,wBAAwB,CAAA;AAG/B,qBAAa,cAAe,SAAQ,cAAc;;IAKnC,iBAAiB,CAAC,EAC7B,QAAQ,EACR,UAAU,GACX,EAAE,gCAAgC,GAAG,OAAO,CAAC,kCAAkC,CAAC;IAWpE,OAAO,CAAC,EACnB,OAAO,EACP,UAAU,GACX,EAAE,sBAAsB,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAWhD,MAAM,IAAI,OAAO,CAAC,uBAAuB,CAAC;IAO1C,UAAU,CAAC,EACtB,OAAO,GACR,EAAE,yBAAyB,GAAG,OAAO,CAAC,2BAA2B,CAAC;CASpE"}
@@ -1,8 +1,11 @@
1
1
  import * as Comlink from "comlink";
2
- import type { PluginApiMethod, PluginApiCallPayload, PluginApiCallResult } from "@snaptrude/plugin-core";
2
+ import type { PluginApiMethod, PluginApiCallPayload, PluginApiCallWrappedResult, PluginApiCallResult } from "@snaptrude/plugin-core";
3
3
  export interface HostApi {
4
+ call<M extends PluginApiMethod>(payload: PluginApiCallPayload<M>): Promise<PluginApiCallWrappedResult<M>>;
5
+ }
6
+ export interface HostApiWrapped {
4
7
  call<M extends PluginApiMethod>(payload: PluginApiCallPayload<M>): Promise<PluginApiCallResult<M>>;
5
8
  }
6
9
  export declare function createHostApi(endpoint?: Comlink.Endpoint): HostApi;
7
- export declare function getHostApi(): HostApi;
10
+ export declare function getHostApi(): HostApiWrapped;
8
11
  //# sourceMappingURL=host-api.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"host-api.d.ts","sourceRoot":"","sources":["../src/host-api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAA;AAClC,OAAO,KAAK,EACV,eAAe,EACf,oBAAoB,EACpB,mBAAmB,EACpB,MAAM,wBAAwB,CAAA;AAE/B,MAAM,WAAW,OAAO;IACtB,IAAI,CAAC,CAAC,SAAS,eAAe,EAC5B,OAAO,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAC/B,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAA;CACnC;AAED,wBAAgB,aAAa,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,QAAQ,GAAG,OAAO,CAIlE;AAID,wBAAgB,UAAU,IAAI,OAAO,CAKpC"}
1
+ {"version":3,"file":"host-api.d.ts","sourceRoot":"","sources":["../src/host-api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAA;AAClC,OAAO,KAAK,EACV,eAAe,EACf,oBAAoB,EACpB,0BAA0B,EAC1B,mBAAmB,EACpB,MAAM,wBAAwB,CAAA;AAE/B,MAAM,WAAW,OAAO;IACtB,IAAI,CAAC,CAAC,SAAS,eAAe,EAC5B,OAAO,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAC/B,OAAO,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC,CAAA;CAC1C;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,CAAC,SAAS,eAAe,EAC5B,OAAO,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAC/B,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAA;CACnC;AAED,wBAAgB,aAAa,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,QAAQ,GAAG,OAAO,CAIlE;AAID,wBAAgB,UAAU,IAAI,cAAc,CAkB3C"}
package/dist/index.cjs CHANGED
@@ -60,7 +60,20 @@ function getHostApi() {
60
60
  if (!_instance) {
61
61
  _instance = createHostApi();
62
62
  }
63
- return _instance;
63
+ return {
64
+ call: async (payload) => {
65
+ if (!_instance) {
66
+ throw new Error("Host API not initialized");
67
+ }
68
+ return _instance.call(payload).then((result) => {
69
+ if (result.success) {
70
+ return result.data;
71
+ } else {
72
+ throw new Error(result.error);
73
+ }
74
+ });
75
+ }
76
+ };
64
77
  }
65
78
 
66
79
  // src/api/entity/space.ts
@@ -94,6 +107,12 @@ var ClientSpaceApi = class extends import_plugin_core.PluginSpaceApi {
94
107
  }
95
108
  });
96
109
  }
110
+ async getAll() {
111
+ const hostApi = getHostApi();
112
+ return hostApi.call({
113
+ method: "entity.space.getAll"
114
+ });
115
+ }
97
116
  async deleteById({
98
117
  spaceId
99
118
  }) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/api/entity/index.ts","../src/api/entity/space.ts","../src/host-api.ts","../src/api/tools/index.ts","../src/api/tools/selection.ts","../src/api/tools/transform.ts","../src/api/index.ts"],"sourcesContent":["import { ClientPluginApi } from \"./api\"\n\nexport * from \"./api\"\nexport * from \"./host-api\"\n\n/**\n * The Snaptrude plugin client API.\n *\n * The main entry point for plugins to interact with the Snaptrude platform.\n */\nexport const snaptrude = ClientPluginApi.getInstance()\n","import { PluginEntityApi } from \"@snaptrude/plugin-core\"\nimport { ClientSpaceApi } from \"./space\"\n\nexport class ClientEntityApi extends PluginEntityApi {\n public space: ClientSpaceApi\n\n constructor() {\n super()\n this.space = new ClientSpaceApi()\n }\n}\n\nexport * from \"./space\"\n","import {\n PluginSpaceApi,\n PluginSpaceCreateRectangularArgs,\n PluginSpaceCreateRectangularResult,\n PluginSpaceDeleteByIdArgs,\n PluginSpaceDeleteByIdResult,\n PluginSpaceGetByIdArgs,\n PluginSpaceGetByIdResult,\n} from \"@snaptrude/plugin-core\"\nimport { getHostApi } from \"../../host-api\"\n\nexport class ClientSpaceApi extends PluginSpaceApi {\n constructor() {\n super()\n }\n\n public async createRectangular({\n position,\n dimensions,\n }: PluginSpaceCreateRectangularArgs): Promise<PluginSpaceCreateRectangularResult> {\n const hostApi = getHostApi()\n return hostApi.call({\n method: \"entity.space.createRectangular\",\n args: {\n position,\n dimensions,\n },\n })\n }\n\n public async getById({\n spaceId,\n properties,\n }: PluginSpaceGetByIdArgs): Promise<PluginSpaceGetByIdResult> {\n const hostApi = getHostApi()\n return hostApi.call({\n method: \"entity.space.getById\",\n args: {\n spaceId,\n properties,\n },\n })\n }\n\n public async deleteById({\n spaceId,\n }: PluginSpaceDeleteByIdArgs): Promise<PluginSpaceDeleteByIdResult> {\n const hostApi = getHostApi()\n return hostApi.call({\n method: \"entity.space.deleteById\",\n args: {\n spaceId,\n },\n })\n }\n}\n","import * as Comlink from \"comlink\"\nimport type {\n PluginApiMethod,\n PluginApiCallPayload,\n PluginApiCallResult,\n} from \"@snaptrude/plugin-core\"\n\nexport interface HostApi {\n call<M extends PluginApiMethod>(\n payload: PluginApiCallPayload<M>\n ): Promise<PluginApiCallResult<M>>\n}\n\nexport function createHostApi(endpoint?: Comlink.Endpoint): HostApi {\n return Comlink.wrap<HostApi>(\n endpoint ?? (globalThis as unknown as Comlink.Endpoint)\n ) as unknown as HostApi\n}\n\nlet _instance: HostApi | null = null\n\nexport function getHostApi(): HostApi {\n if (!_instance) {\n _instance = createHostApi()\n }\n return _instance\n}\n","import { PluginToolsApi } from \"@snaptrude/plugin-core\"\nimport { ClientSelectionApi } from \"./selection\"\nimport { ClientTransformApi } from \"./transform\"\n\nexport class ClientToolsApi extends PluginToolsApi {\n public selection: ClientSelectionApi\n public transform: ClientTransformApi\n\n constructor() {\n super()\n this.selection = new ClientSelectionApi()\n this.transform = new ClientTransformApi()\n }\n}\n\nexport * from \"./selection\"\nexport * from \"./transform\"\n","import { PluginSelectionApi, PluginSelectionGetResult } from \"@snaptrude/plugin-core\"\nimport { getHostApi } from \"../../host-api\"\n\nexport class ClientSelectionApi extends PluginSelectionApi {\n constructor() {\n super()\n }\n\n public async get(): Promise<PluginSelectionGetResult> {\n const hostApi = getHostApi()\n return hostApi.call({\n method: \"tools.selection.get\",\n })\n }\n}\n","import {\n PluginTransformApi,\n PluginMoveArgs,\n PluginRotateArgs,\n} from \"@snaptrude/plugin-core\"\nimport { getHostApi } from \"../../host-api\"\n\nexport class ClientTransformApi extends PluginTransformApi {\n constructor() {\n super()\n }\n\n public async move({\n componentIds,\n displacement,\n }: PluginMoveArgs): Promise<void> {\n const hostApi = getHostApi()\n return hostApi.call({\n method: \"tools.transform.move\",\n args: {\n componentIds,\n displacement,\n },\n })\n }\n\n public async rotate({\n componentIds,\n angle,\n axis,\n pivot,\n }: PluginRotateArgs): Promise<void> {\n const hostApi = getHostApi()\n return hostApi.call({\n method: \"tools.transform.rotate\",\n args: {\n componentIds,\n angle,\n axis,\n pivot,\n },\n })\n }\n}\n","import { ClientEntityApi } from \"./entity\"\nimport { ClientToolsApi } from \"./tools\"\nimport { PluginApi } from \"@snaptrude/plugin-core\"\n\nexport class ClientPluginApi extends PluginApi {\n private static instance: ClientPluginApi\n\n public tools: ClientToolsApi\n public entity: ClientEntityApi\n\n private constructor() {\n super()\n this.tools = new ClientToolsApi()\n this.entity = new ClientEntityApi()\n }\n\n static getInstance(): ClientPluginApi {\n if (!ClientPluginApi.instance) {\n ClientPluginApi.instance = new ClientPluginApi()\n }\n return ClientPluginApi.instance\n }\n}\n\nexport * from \"./entity\"\nexport * from \"./tools\"\n"],"mappings":"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","names":["import_plugin_core","import_plugin_core","import_plugin_core","import_plugin_core","import_plugin_core"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/api/entity/index.ts","../src/api/entity/space.ts","../src/host-api.ts","../src/api/tools/index.ts","../src/api/tools/selection.ts","../src/api/tools/transform.ts","../src/api/index.ts"],"sourcesContent":["import { ClientPluginApi } from \"./api\"\n\nexport * from \"./api\"\nexport * from \"./host-api\"\n\n/**\n * The Snaptrude plugin client API.\n *\n * The main entry point for plugins to interact with the Snaptrude platform.\n */\nexport const snaptrude = ClientPluginApi.getInstance()\n","import { PluginEntityApi } from \"@snaptrude/plugin-core\"\nimport { ClientSpaceApi } from \"./space\"\n\nexport class ClientEntityApi extends PluginEntityApi {\n public space: ClientSpaceApi\n\n constructor() {\n super()\n this.space = new ClientSpaceApi()\n }\n}\n\nexport * from \"./space\"\n","import {\n PluginSpaceApi,\n PluginSpaceCreateRectangularArgs,\n PluginSpaceCreateRectangularResult,\n PluginSpaceDeleteByIdArgs,\n PluginSpaceDeleteByIdResult,\n PluginSpaceGetByIdArgs,\n PluginSpaceGetByIdResult,\n PluginSpaceGetAllResult,\n} from \"@snaptrude/plugin-core\"\nimport { getHostApi } from \"../../host-api\"\n\nexport class ClientSpaceApi extends PluginSpaceApi {\n constructor() {\n super()\n }\n\n public async createRectangular({\n position,\n dimensions,\n }: PluginSpaceCreateRectangularArgs): Promise<PluginSpaceCreateRectangularResult> {\n const hostApi = getHostApi()\n return hostApi.call({\n method: \"entity.space.createRectangular\",\n args: {\n position,\n dimensions,\n },\n })\n }\n\n public async getById({\n spaceId,\n properties,\n }: PluginSpaceGetByIdArgs): Promise<PluginSpaceGetByIdResult> {\n const hostApi = getHostApi()\n return hostApi.call({\n method: \"entity.space.getById\",\n args: {\n spaceId,\n properties,\n },\n })\n }\n\n public async getAll(): Promise<PluginSpaceGetAllResult> {\n const hostApi = getHostApi()\n return hostApi.call({\n method: \"entity.space.getAll\",\n })\n }\n\n public async deleteById({\n spaceId,\n }: PluginSpaceDeleteByIdArgs): Promise<PluginSpaceDeleteByIdResult> {\n const hostApi = getHostApi()\n return hostApi.call({\n method: \"entity.space.deleteById\",\n args: {\n spaceId,\n },\n })\n }\n}\n","import * as Comlink from \"comlink\"\nimport type {\n PluginApiMethod,\n PluginApiCallPayload,\n PluginApiCallWrappedResult,\n PluginApiCallResult,\n} from \"@snaptrude/plugin-core\"\n\nexport interface HostApi {\n call<M extends PluginApiMethod>(\n payload: PluginApiCallPayload<M>\n ): Promise<PluginApiCallWrappedResult<M>>\n}\n\nexport interface HostApiWrapped {\n call<M extends PluginApiMethod>(\n payload: PluginApiCallPayload<M>\n ): Promise<PluginApiCallResult<M>>\n}\n\nexport function createHostApi(endpoint?: Comlink.Endpoint): HostApi {\n return Comlink.wrap<HostApi>(\n endpoint ?? (globalThis as unknown as Comlink.Endpoint)\n ) as unknown as HostApi\n}\n\nlet _instance: HostApi | null = null\n\nexport function getHostApi(): HostApiWrapped {\n if (!_instance) {\n _instance = createHostApi()\n }\n return {\n call: async <M extends PluginApiMethod>(payload: PluginApiCallPayload<M>): Promise<PluginApiCallResult<M>> => {\n if (!_instance) {\n throw new Error(\"Host API not initialized\")\n }\n return _instance.call(payload).then(result => {\n if (result.success) {\n return result.data\n } else {\n throw new Error(result.error)\n }\n })\n }\n }\n}\n","import { PluginToolsApi } from \"@snaptrude/plugin-core\"\nimport { ClientSelectionApi } from \"./selection\"\nimport { ClientTransformApi } from \"./transform\"\n\nexport class ClientToolsApi extends PluginToolsApi {\n public selection: ClientSelectionApi\n public transform: ClientTransformApi\n\n constructor() {\n super()\n this.selection = new ClientSelectionApi()\n this.transform = new ClientTransformApi()\n }\n}\n\nexport * from \"./selection\"\nexport * from \"./transform\"\n","import { PluginSelectionApi, PluginSelectionGetResult } from \"@snaptrude/plugin-core\"\nimport { getHostApi } from \"../../host-api\"\n\nexport class ClientSelectionApi extends PluginSelectionApi {\n constructor() {\n super()\n }\n\n public async get(): Promise<PluginSelectionGetResult> {\n const hostApi = getHostApi()\n return hostApi.call({\n method: \"tools.selection.get\",\n })\n }\n}\n","import {\n PluginTransformApi,\n PluginMoveArgs,\n PluginRotateArgs,\n} from \"@snaptrude/plugin-core\"\nimport { getHostApi } from \"../../host-api\"\n\nexport class ClientTransformApi extends PluginTransformApi {\n constructor() {\n super()\n }\n\n public async move({\n componentIds,\n displacement,\n }: PluginMoveArgs): Promise<void> {\n const hostApi = getHostApi()\n return hostApi.call({\n method: \"tools.transform.move\",\n args: {\n componentIds,\n displacement,\n },\n })\n }\n\n public async rotate({\n componentIds,\n angle,\n axis,\n pivot,\n }: PluginRotateArgs): Promise<void> {\n const hostApi = getHostApi()\n return hostApi.call({\n method: \"tools.transform.rotate\",\n args: {\n componentIds,\n angle,\n axis,\n pivot,\n },\n })\n }\n}\n","import { ClientEntityApi } from \"./entity\"\nimport { ClientToolsApi } from \"./tools\"\nimport { PluginApi } from \"@snaptrude/plugin-core\"\n\nexport class ClientPluginApi extends PluginApi {\n private static instance: ClientPluginApi\n\n public tools: ClientToolsApi\n public entity: ClientEntityApi\n\n private constructor() {\n super()\n this.tools = new ClientToolsApi()\n this.entity = new ClientEntityApi()\n }\n\n static getInstance(): ClientPluginApi {\n if (!ClientPluginApi.instance) {\n ClientPluginApi.instance = new ClientPluginApi()\n }\n return ClientPluginApi.instance\n }\n}\n\nexport * from \"./entity\"\nexport * from \"./tools\"\n"],"mappings":"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","names":["import_plugin_core","import_plugin_core","import_plugin_core","import_plugin_core","import_plugin_core"]}
package/dist/index.js CHANGED
@@ -18,7 +18,20 @@ function getHostApi() {
18
18
  if (!_instance) {
19
19
  _instance = createHostApi();
20
20
  }
21
- return _instance;
21
+ return {
22
+ call: async (payload) => {
23
+ if (!_instance) {
24
+ throw new Error("Host API not initialized");
25
+ }
26
+ return _instance.call(payload).then((result) => {
27
+ if (result.success) {
28
+ return result.data;
29
+ } else {
30
+ throw new Error(result.error);
31
+ }
32
+ });
33
+ }
34
+ };
22
35
  }
23
36
 
24
37
  // src/api/entity/space.ts
@@ -52,6 +65,12 @@ var ClientSpaceApi = class extends PluginSpaceApi {
52
65
  }
53
66
  });
54
67
  }
68
+ async getAll() {
69
+ const hostApi = getHostApi();
70
+ return hostApi.call({
71
+ method: "entity.space.getAll"
72
+ });
73
+ }
55
74
  async deleteById({
56
75
  spaceId
57
76
  }) {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/api/entity/index.ts","../src/api/entity/space.ts","../src/host-api.ts","../src/api/tools/index.ts","../src/api/tools/selection.ts","../src/api/tools/transform.ts","../src/api/index.ts","../src/index.ts"],"sourcesContent":["import { PluginEntityApi } from \"@snaptrude/plugin-core\"\nimport { ClientSpaceApi } from \"./space\"\n\nexport class ClientEntityApi extends PluginEntityApi {\n public space: ClientSpaceApi\n\n constructor() {\n super()\n this.space = new ClientSpaceApi()\n }\n}\n\nexport * from \"./space\"\n","import {\n PluginSpaceApi,\n PluginSpaceCreateRectangularArgs,\n PluginSpaceCreateRectangularResult,\n PluginSpaceDeleteByIdArgs,\n PluginSpaceDeleteByIdResult,\n PluginSpaceGetByIdArgs,\n PluginSpaceGetByIdResult,\n} from \"@snaptrude/plugin-core\"\nimport { getHostApi } from \"../../host-api\"\n\nexport class ClientSpaceApi extends PluginSpaceApi {\n constructor() {\n super()\n }\n\n public async createRectangular({\n position,\n dimensions,\n }: PluginSpaceCreateRectangularArgs): Promise<PluginSpaceCreateRectangularResult> {\n const hostApi = getHostApi()\n return hostApi.call({\n method: \"entity.space.createRectangular\",\n args: {\n position,\n dimensions,\n },\n })\n }\n\n public async getById({\n spaceId,\n properties,\n }: PluginSpaceGetByIdArgs): Promise<PluginSpaceGetByIdResult> {\n const hostApi = getHostApi()\n return hostApi.call({\n method: \"entity.space.getById\",\n args: {\n spaceId,\n properties,\n },\n })\n }\n\n public async deleteById({\n spaceId,\n }: PluginSpaceDeleteByIdArgs): Promise<PluginSpaceDeleteByIdResult> {\n const hostApi = getHostApi()\n return hostApi.call({\n method: \"entity.space.deleteById\",\n args: {\n spaceId,\n },\n })\n }\n}\n","import * as Comlink from \"comlink\"\nimport type {\n PluginApiMethod,\n PluginApiCallPayload,\n PluginApiCallResult,\n} from \"@snaptrude/plugin-core\"\n\nexport interface HostApi {\n call<M extends PluginApiMethod>(\n payload: PluginApiCallPayload<M>\n ): Promise<PluginApiCallResult<M>>\n}\n\nexport function createHostApi(endpoint?: Comlink.Endpoint): HostApi {\n return Comlink.wrap<HostApi>(\n endpoint ?? (globalThis as unknown as Comlink.Endpoint)\n ) as unknown as HostApi\n}\n\nlet _instance: HostApi | null = null\n\nexport function getHostApi(): HostApi {\n if (!_instance) {\n _instance = createHostApi()\n }\n return _instance\n}\n","import { PluginToolsApi } from \"@snaptrude/plugin-core\"\nimport { ClientSelectionApi } from \"./selection\"\nimport { ClientTransformApi } from \"./transform\"\n\nexport class ClientToolsApi extends PluginToolsApi {\n public selection: ClientSelectionApi\n public transform: ClientTransformApi\n\n constructor() {\n super()\n this.selection = new ClientSelectionApi()\n this.transform = new ClientTransformApi()\n }\n}\n\nexport * from \"./selection\"\nexport * from \"./transform\"\n","import { PluginSelectionApi, PluginSelectionGetResult } from \"@snaptrude/plugin-core\"\nimport { getHostApi } from \"../../host-api\"\n\nexport class ClientSelectionApi extends PluginSelectionApi {\n constructor() {\n super()\n }\n\n public async get(): Promise<PluginSelectionGetResult> {\n const hostApi = getHostApi()\n return hostApi.call({\n method: \"tools.selection.get\",\n })\n }\n}\n","import {\n PluginTransformApi,\n PluginMoveArgs,\n PluginRotateArgs,\n} from \"@snaptrude/plugin-core\"\nimport { getHostApi } from \"../../host-api\"\n\nexport class ClientTransformApi extends PluginTransformApi {\n constructor() {\n super()\n }\n\n public async move({\n componentIds,\n displacement,\n }: PluginMoveArgs): Promise<void> {\n const hostApi = getHostApi()\n return hostApi.call({\n method: \"tools.transform.move\",\n args: {\n componentIds,\n displacement,\n },\n })\n }\n\n public async rotate({\n componentIds,\n angle,\n axis,\n pivot,\n }: PluginRotateArgs): Promise<void> {\n const hostApi = getHostApi()\n return hostApi.call({\n method: \"tools.transform.rotate\",\n args: {\n componentIds,\n angle,\n axis,\n pivot,\n },\n })\n }\n}\n","import { ClientEntityApi } from \"./entity\"\nimport { ClientToolsApi } from \"./tools\"\nimport { PluginApi } from \"@snaptrude/plugin-core\"\n\nexport class ClientPluginApi extends PluginApi {\n private static instance: ClientPluginApi\n\n public tools: ClientToolsApi\n public entity: ClientEntityApi\n\n private constructor() {\n super()\n this.tools = new ClientToolsApi()\n this.entity = new ClientEntityApi()\n }\n\n static getInstance(): ClientPluginApi {\n if (!ClientPluginApi.instance) {\n ClientPluginApi.instance = new ClientPluginApi()\n }\n return ClientPluginApi.instance\n }\n}\n\nexport * from \"./entity\"\nexport * from \"./tools\"\n","import { ClientPluginApi } from \"./api\"\n\nexport * from \"./api\"\nexport * from \"./host-api\"\n\n/**\n * The Snaptrude plugin client API.\n *\n * The main entry point for plugins to interact with the Snaptrude platform.\n */\nexport const snaptrude = ClientPluginApi.getInstance()\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/api/entity/index.ts","../src/api/entity/space.ts","../src/host-api.ts","../src/api/tools/index.ts","../src/api/tools/selection.ts","../src/api/tools/transform.ts","../src/api/index.ts","../src/index.ts"],"sourcesContent":["import { PluginEntityApi } from \"@snaptrude/plugin-core\"\nimport { ClientSpaceApi } from \"./space\"\n\nexport class ClientEntityApi extends PluginEntityApi {\n public space: ClientSpaceApi\n\n constructor() {\n super()\n this.space = new ClientSpaceApi()\n }\n}\n\nexport * from \"./space\"\n","import {\n PluginSpaceApi,\n PluginSpaceCreateRectangularArgs,\n PluginSpaceCreateRectangularResult,\n PluginSpaceDeleteByIdArgs,\n PluginSpaceDeleteByIdResult,\n PluginSpaceGetByIdArgs,\n PluginSpaceGetByIdResult,\n PluginSpaceGetAllResult,\n} from \"@snaptrude/plugin-core\"\nimport { getHostApi } from \"../../host-api\"\n\nexport class ClientSpaceApi extends PluginSpaceApi {\n constructor() {\n super()\n }\n\n public async createRectangular({\n position,\n dimensions,\n }: PluginSpaceCreateRectangularArgs): Promise<PluginSpaceCreateRectangularResult> {\n const hostApi = getHostApi()\n return hostApi.call({\n method: \"entity.space.createRectangular\",\n args: {\n position,\n dimensions,\n },\n })\n }\n\n public async getById({\n spaceId,\n properties,\n }: PluginSpaceGetByIdArgs): Promise<PluginSpaceGetByIdResult> {\n const hostApi = getHostApi()\n return hostApi.call({\n method: \"entity.space.getById\",\n args: {\n spaceId,\n properties,\n },\n })\n }\n\n public async getAll(): Promise<PluginSpaceGetAllResult> {\n const hostApi = getHostApi()\n return hostApi.call({\n method: \"entity.space.getAll\",\n })\n }\n\n public async deleteById({\n spaceId,\n }: PluginSpaceDeleteByIdArgs): Promise<PluginSpaceDeleteByIdResult> {\n const hostApi = getHostApi()\n return hostApi.call({\n method: \"entity.space.deleteById\",\n args: {\n spaceId,\n },\n })\n }\n}\n","import * as Comlink from \"comlink\"\nimport type {\n PluginApiMethod,\n PluginApiCallPayload,\n PluginApiCallWrappedResult,\n PluginApiCallResult,\n} from \"@snaptrude/plugin-core\"\n\nexport interface HostApi {\n call<M extends PluginApiMethod>(\n payload: PluginApiCallPayload<M>\n ): Promise<PluginApiCallWrappedResult<M>>\n}\n\nexport interface HostApiWrapped {\n call<M extends PluginApiMethod>(\n payload: PluginApiCallPayload<M>\n ): Promise<PluginApiCallResult<M>>\n}\n\nexport function createHostApi(endpoint?: Comlink.Endpoint): HostApi {\n return Comlink.wrap<HostApi>(\n endpoint ?? (globalThis as unknown as Comlink.Endpoint)\n ) as unknown as HostApi\n}\n\nlet _instance: HostApi | null = null\n\nexport function getHostApi(): HostApiWrapped {\n if (!_instance) {\n _instance = createHostApi()\n }\n return {\n call: async <M extends PluginApiMethod>(payload: PluginApiCallPayload<M>): Promise<PluginApiCallResult<M>> => {\n if (!_instance) {\n throw new Error(\"Host API not initialized\")\n }\n return _instance.call(payload).then(result => {\n if (result.success) {\n return result.data\n } else {\n throw new Error(result.error)\n }\n })\n }\n }\n}\n","import { PluginToolsApi } from \"@snaptrude/plugin-core\"\nimport { ClientSelectionApi } from \"./selection\"\nimport { ClientTransformApi } from \"./transform\"\n\nexport class ClientToolsApi extends PluginToolsApi {\n public selection: ClientSelectionApi\n public transform: ClientTransformApi\n\n constructor() {\n super()\n this.selection = new ClientSelectionApi()\n this.transform = new ClientTransformApi()\n }\n}\n\nexport * from \"./selection\"\nexport * from \"./transform\"\n","import { PluginSelectionApi, PluginSelectionGetResult } from \"@snaptrude/plugin-core\"\nimport { getHostApi } from \"../../host-api\"\n\nexport class ClientSelectionApi extends PluginSelectionApi {\n constructor() {\n super()\n }\n\n public async get(): Promise<PluginSelectionGetResult> {\n const hostApi = getHostApi()\n return hostApi.call({\n method: \"tools.selection.get\",\n })\n }\n}\n","import {\n PluginTransformApi,\n PluginMoveArgs,\n PluginRotateArgs,\n} from \"@snaptrude/plugin-core\"\nimport { getHostApi } from \"../../host-api\"\n\nexport class ClientTransformApi extends PluginTransformApi {\n constructor() {\n super()\n }\n\n public async move({\n componentIds,\n displacement,\n }: PluginMoveArgs): Promise<void> {\n const hostApi = getHostApi()\n return hostApi.call({\n method: \"tools.transform.move\",\n args: {\n componentIds,\n displacement,\n },\n })\n }\n\n public async rotate({\n componentIds,\n angle,\n axis,\n pivot,\n }: PluginRotateArgs): Promise<void> {\n const hostApi = getHostApi()\n return hostApi.call({\n method: \"tools.transform.rotate\",\n args: {\n componentIds,\n angle,\n axis,\n pivot,\n },\n })\n }\n}\n","import { ClientEntityApi } from \"./entity\"\nimport { ClientToolsApi } from \"./tools\"\nimport { PluginApi } from \"@snaptrude/plugin-core\"\n\nexport class ClientPluginApi extends PluginApi {\n private static instance: ClientPluginApi\n\n public tools: ClientToolsApi\n public entity: ClientEntityApi\n\n private constructor() {\n super()\n this.tools = new ClientToolsApi()\n this.entity = new ClientEntityApi()\n }\n\n static getInstance(): ClientPluginApi {\n if (!ClientPluginApi.instance) {\n ClientPluginApi.instance = new ClientPluginApi()\n }\n return ClientPluginApi.instance\n }\n}\n\nexport * from \"./entity\"\nexport * from \"./tools\"\n","import { ClientPluginApi } from \"./api\"\n\nexport * from \"./api\"\nexport * from \"./host-api\"\n\n/**\n * The Snaptrude plugin client API.\n *\n * The main entry point for plugins to interact with the Snaptrude platform.\n */\nexport const snaptrude = ClientPluginApi.getInstance()\n"],"mappings":";AAAA,SAAS,uBAAuB;;;ACAhC;AAAA,EACE;AAAA,OAQK;;;ACTP,YAAY,aAAa;AAoBlB,SAAS,cAAc,UAAsC;AAClE,SAAe;AAAA,IACb,YAAa;AAAA,EACf;AACF;AAEA,IAAI,YAA4B;AAEzB,SAAS,aAA6B;AAC3C,MAAI,CAAC,WAAW;AACd,gBAAY,cAAc;AAAA,EAC5B;AACA,SAAO;AAAA,IACL,MAAM,OAAkC,YAAsE;AAC5G,UAAI,CAAC,WAAW;AACd,cAAM,IAAI,MAAM,0BAA0B;AAAA,MAC5C;AACA,aAAO,UAAU,KAAK,OAAO,EAAE,KAAK,YAAU;AAC5C,YAAI,OAAO,SAAS;AAClB,iBAAO,OAAO;AAAA,QAChB,OAAO;AACL,gBAAM,IAAI,MAAM,OAAO,KAAK;AAAA,QAC9B;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF;AACF;;;ADlCO,IAAM,iBAAN,cAA6B,eAAe;AAAA,EACjD,cAAc;AACZ,UAAM;AAAA,EACR;AAAA,EAEA,MAAa,kBAAkB;AAAA,IAC7B;AAAA,IACA;AAAA,EACF,GAAkF;AAChF,UAAM,UAAU,WAAW;AAC3B,WAAO,QAAQ,KAAK;AAAA,MAClB,QAAQ;AAAA,MACR,MAAM;AAAA,QACJ;AAAA,QACA;AAAA,MACF;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAEA,MAAa,QAAQ;AAAA,IACnB;AAAA,IACA;AAAA,EACF,GAA8D;AAC5D,UAAM,UAAU,WAAW;AAC3B,WAAO,QAAQ,KAAK;AAAA,MAClB,QAAQ;AAAA,MACR,MAAM;AAAA,QACJ;AAAA,QACA;AAAA,MACF;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAEA,MAAa,SAA2C;AACtD,UAAM,UAAU,WAAW;AAC3B,WAAO,QAAQ,KAAK;AAAA,MAClB,QAAQ;AAAA,IACV,CAAC;AAAA,EACH;AAAA,EAEA,MAAa,WAAW;AAAA,IACtB;AAAA,EACF,GAAoE;AAClE,UAAM,UAAU,WAAW;AAC3B,WAAO,QAAQ,KAAK;AAAA,MAClB,QAAQ;AAAA,MACR,MAAM;AAAA,QACJ;AAAA,MACF;AAAA,IACF,CAAC;AAAA,EACH;AACF;;;AD5DO,IAAM,kBAAN,cAA8B,gBAAgB;AAAA,EAGnD,cAAc;AACZ,UAAM;AACN,SAAK,QAAQ,IAAI,eAAe;AAAA,EAClC;AACF;;;AGVA,SAAS,sBAAsB;;;ACA/B,SAAS,0BAAoD;AAGtD,IAAM,qBAAN,cAAiC,mBAAmB;AAAA,EACzD,cAAc;AACZ,UAAM;AAAA,EACR;AAAA,EAEA,MAAa,MAAyC;AACpD,UAAM,UAAU,WAAW;AAC3B,WAAO,QAAQ,KAAK;AAAA,MAClB,QAAQ;AAAA,IACV,CAAC;AAAA,EACH;AACF;;;ACdA;AAAA,EACE;AAAA,OAGK;AAGA,IAAM,qBAAN,cAAiC,mBAAmB;AAAA,EACzD,cAAc;AACZ,UAAM;AAAA,EACR;AAAA,EAEA,MAAa,KAAK;AAAA,IAChB;AAAA,IACA;AAAA,EACF,GAAkC;AAChC,UAAM,UAAU,WAAW;AAC3B,WAAO,QAAQ,KAAK;AAAA,MAClB,QAAQ;AAAA,MACR,MAAM;AAAA,QACJ;AAAA,QACA;AAAA,MACF;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAEA,MAAa,OAAO;AAAA,IAClB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,GAAoC;AAClC,UAAM,UAAU,WAAW;AAC3B,WAAO,QAAQ,KAAK;AAAA,MAClB,QAAQ;AAAA,MACR,MAAM;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF,CAAC;AAAA,EACH;AACF;;;AFvCO,IAAM,iBAAN,cAA6B,eAAe;AAAA,EAIjD,cAAc;AACZ,UAAM;AACN,SAAK,YAAY,IAAI,mBAAmB;AACxC,SAAK,YAAY,IAAI,mBAAmB;AAAA,EAC1C;AACF;;;AGXA,SAAS,iBAAiB;AAEnB,IAAM,kBAAN,MAAM,yBAAwB,UAAU;AAAA,EAMrC,cAAc;AACpB,UAAM;AACN,SAAK,QAAQ,IAAI,eAAe;AAChC,SAAK,SAAS,IAAI,gBAAgB;AAAA,EACpC;AAAA,EAEA,OAAO,cAA+B;AACpC,QAAI,CAAC,iBAAgB,UAAU;AAC7B,uBAAgB,WAAW,IAAI,iBAAgB;AAAA,IACjD;AACA,WAAO,iBAAgB;AAAA,EACzB;AACF;;;ACZO,IAAM,YAAY,gBAAgB,YAAY;","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@snaptrude/plugin-client",
3
- "version": "0.0.1",
3
+ "version": "0.0.3",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",
@@ -18,7 +18,7 @@
18
18
  },
19
19
  "dependencies": {
20
20
  "comlink": "^4.4.2",
21
- "@snaptrude/plugin-core": "0.0.1"
21
+ "@snaptrude/plugin-core": "0.0.3"
22
22
  },
23
23
  "devDependencies": {
24
24
  "tsup": "^8.5.1",
@@ -6,6 +6,7 @@ import {
6
6
  PluginSpaceDeleteByIdResult,
7
7
  PluginSpaceGetByIdArgs,
8
8
  PluginSpaceGetByIdResult,
9
+ PluginSpaceGetAllResult,
9
10
  } from "@snaptrude/plugin-core"
10
11
  import { getHostApi } from "../../host-api"
11
12
 
@@ -42,6 +43,13 @@ export class ClientSpaceApi extends PluginSpaceApi {
42
43
  })
43
44
  }
44
45
 
46
+ public async getAll(): Promise<PluginSpaceGetAllResult> {
47
+ const hostApi = getHostApi()
48
+ return hostApi.call({
49
+ method: "entity.space.getAll",
50
+ })
51
+ }
52
+
45
53
  public async deleteById({
46
54
  spaceId,
47
55
  }: PluginSpaceDeleteByIdArgs): Promise<PluginSpaceDeleteByIdResult> {
package/src/host-api.ts CHANGED
@@ -2,10 +2,17 @@ import * as Comlink from "comlink"
2
2
  import type {
3
3
  PluginApiMethod,
4
4
  PluginApiCallPayload,
5
+ PluginApiCallWrappedResult,
5
6
  PluginApiCallResult,
6
7
  } from "@snaptrude/plugin-core"
7
8
 
8
9
  export interface HostApi {
10
+ call<M extends PluginApiMethod>(
11
+ payload: PluginApiCallPayload<M>
12
+ ): Promise<PluginApiCallWrappedResult<M>>
13
+ }
14
+
15
+ export interface HostApiWrapped {
9
16
  call<M extends PluginApiMethod>(
10
17
  payload: PluginApiCallPayload<M>
11
18
  ): Promise<PluginApiCallResult<M>>
@@ -19,9 +26,22 @@ export function createHostApi(endpoint?: Comlink.Endpoint): HostApi {
19
26
 
20
27
  let _instance: HostApi | null = null
21
28
 
22
- export function getHostApi(): HostApi {
29
+ export function getHostApi(): HostApiWrapped {
23
30
  if (!_instance) {
24
31
  _instance = createHostApi()
25
32
  }
26
- return _instance
33
+ return {
34
+ call: async <M extends PluginApiMethod>(payload: PluginApiCallPayload<M>): Promise<PluginApiCallResult<M>> => {
35
+ if (!_instance) {
36
+ throw new Error("Host API not initialized")
37
+ }
38
+ return _instance.call(payload).then(result => {
39
+ if (result.success) {
40
+ return result.data
41
+ } else {
42
+ throw new Error(result.error)
43
+ }
44
+ })
45
+ }
46
+ }
27
47
  }
package/tsconfig.json CHANGED
@@ -8,9 +8,10 @@
8
8
  "esModuleInterop": true,
9
9
  "skipLibCheck": true,
10
10
  "emitDeclarationOnly": true,
11
+ "typeRoots": [],
11
12
  "declaration": true,
12
13
  "declarationMap": true,
13
- "outDir": "dist",
14
+ "outDir": "dist"
14
15
  },
15
- "include": ["src/**/*.ts"],
16
+ "include": ["src/**/*.ts"]
16
17
  }