@picteus/extension-sdk 0.3.1 → 0.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -10,7 +10,10 @@
10
10
  * Do not edit the class manually.
11
11
  */
12
12
  import * as runtime from '../runtime.js';
13
- import type { Extension, ExtensionActivity, ExtensionGenerationOptions, ExtensionSettings, ExtensionsConfiguration } from '../models/index.js';
13
+ import type { Extension, ExtensionActivity, ExtensionAndManual, ExtensionGenerationOptions, ExtensionSettings, ExtensionsConfiguration } from '../models/index.js';
14
+ export interface ExtensionApiExtensionBuildRequest {
15
+ body: Blob;
16
+ }
14
17
  export interface ExtensionApiExtensionGenerateRequest {
15
18
  withPublicSdk: boolean;
16
19
  extensionGenerationOptions: ExtensionGenerationOptions;
@@ -73,6 +76,20 @@ export interface ExtensionApiInterface {
73
76
  * Indicates the extension activities
74
77
  */
75
78
  extensionActivities(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Array<ExtensionActivity>>;
79
+ /**
80
+ * Compiles and packages an extension from its source code.
81
+ * @summary Builds an extension
82
+ * @param {Blob} body The extension archive
83
+ * @param {*} [options] Override http request option.
84
+ * @throws {RequiredError}
85
+ * @memberof ExtensionApiInterface
86
+ */
87
+ extensionBuildRaw(requestParameters: ExtensionApiExtensionBuildRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Blob>>;
88
+ /**
89
+ * Compiles and packages an extension from its source code.
90
+ * Builds an extension
91
+ */
92
+ extensionBuild(requestParameters: ExtensionApiExtensionBuildRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Blob>;
76
93
  /**
77
94
  * Scaffolds an extension respecting a set of specifications.
78
95
  * @summary Generates an extension
@@ -96,12 +113,12 @@ export interface ExtensionApiInterface {
96
113
  * @throws {RequiredError}
97
114
  * @memberof ExtensionApiInterface
98
115
  */
99
- extensionGetRaw(requestParameters: ExtensionApiExtensionGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Extension>>;
116
+ extensionGetRaw(requestParameters: ExtensionApiExtensionGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<ExtensionAndManual>>;
100
117
  /**
101
118
  * Returns the details about an extension.
102
119
  * Gets an extension
103
120
  */
104
- extensionGet(requestParameters: ExtensionApiExtensionGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Extension>;
121
+ extensionGet(requestParameters: ExtensionApiExtensionGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<ExtensionAndManual>;
105
122
  /**
106
123
  * Returns the details in terms of all installed extensions capabilities, i.e. what they can offer, and the command they offer.
107
124
  * @summary Provides the extensions configuration
@@ -277,6 +294,16 @@ export declare class ExtensionApi extends runtime.BaseAPI implements ExtensionAp
277
294
  * Indicates the extension activities
278
295
  */
279
296
  extensionActivities(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Array<ExtensionActivity>>;
297
+ /**
298
+ * Compiles and packages an extension from its source code.
299
+ * Builds an extension
300
+ */
301
+ extensionBuildRaw(requestParameters: ExtensionApiExtensionBuildRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Blob>>;
302
+ /**
303
+ * Compiles and packages an extension from its source code.
304
+ * Builds an extension
305
+ */
306
+ extensionBuild(requestParameters: ExtensionApiExtensionBuildRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Blob>;
280
307
  /**
281
308
  * Scaffolds an extension respecting a set of specifications.
282
309
  * Generates an extension
@@ -291,12 +318,12 @@ export declare class ExtensionApi extends runtime.BaseAPI implements ExtensionAp
291
318
  * Returns the details about an extension.
292
319
  * Gets an extension
293
320
  */
294
- extensionGetRaw(requestParameters: ExtensionApiExtensionGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Extension>>;
321
+ extensionGetRaw(requestParameters: ExtensionApiExtensionGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<ExtensionAndManual>>;
295
322
  /**
296
323
  * Returns the details about an extension.
297
324
  * Gets an extension
298
325
  */
299
- extensionGet(requestParameters: ExtensionApiExtensionGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Extension>;
326
+ extensionGet(requestParameters: ExtensionApiExtensionGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<ExtensionAndManual>;
300
327
  /**
301
328
  * Returns the details in terms of all installed extensions capabilities, i.e. what they can offer, and the command they offer.
302
329
  * Provides the extensions configuration
@@ -12,7 +12,7 @@
12
12
  * Do not edit the class manually.
13
13
  */
14
14
  import * as runtime from '../runtime.js';
15
- import { ExtensionFromJSON, ExtensionActivityFromJSON, ExtensionGenerationOptionsToJSON, ExtensionSettingsFromJSON, ExtensionSettingsToJSON, ExtensionsConfigurationFromJSON, } from '../models/index.js';
15
+ import { ExtensionFromJSON, ExtensionActivityFromJSON, ExtensionAndManualFromJSON, ExtensionGenerationOptionsToJSON, ExtensionSettingsFromJSON, ExtensionSettingsToJSON, ExtensionsConfigurationFromJSON, } from '../models/index.js';
16
16
  /**
17
17
  *
18
18
  */
@@ -44,6 +44,38 @@ export class ExtensionApi extends runtime.BaseAPI {
44
44
  const response = await this.extensionActivitiesRaw(initOverrides);
45
45
  return await response.value();
46
46
  }
47
+ /**
48
+ * Compiles and packages an extension from its source code.
49
+ * Builds an extension
50
+ */
51
+ async extensionBuildRaw(requestParameters, initOverrides) {
52
+ if (requestParameters['body'] == null) {
53
+ throw new runtime.RequiredError('body', 'Required parameter "body" was null or undefined when calling extensionBuild().');
54
+ }
55
+ const queryParameters = {};
56
+ const headerParameters = {};
57
+ headerParameters['Content-Type'] = 'application/zip';
58
+ if (this.configuration && this.configuration.apiKey) {
59
+ headerParameters["X-API-KEY"] = await this.configuration.apiKey("X-API-KEY"); // api-key authentication
60
+ }
61
+ let urlPath = `/extension/build`;
62
+ const response = await this.request({
63
+ path: urlPath,
64
+ method: 'PUT',
65
+ headers: headerParameters,
66
+ query: queryParameters,
67
+ body: requestParameters['body'],
68
+ }, initOverrides);
69
+ return new runtime.BlobApiResponse(response);
70
+ }
71
+ /**
72
+ * Compiles and packages an extension from its source code.
73
+ * Builds an extension
74
+ */
75
+ async extensionBuild(requestParameters, initOverrides) {
76
+ const response = await this.extensionBuildRaw(requestParameters, initOverrides);
77
+ return await response.value();
78
+ }
47
79
  /**
48
80
  * Scaffolds an extension respecting a set of specifications.
49
81
  * Generates an extension
@@ -103,7 +135,7 @@ export class ExtensionApi extends runtime.BaseAPI {
103
135
  headers: headerParameters,
104
136
  query: queryParameters,
105
137
  }, initOverrides);
106
- return new runtime.JSONApiResponse(response, (jsonValue) => ExtensionFromJSON(jsonValue));
138
+ return new runtime.JSONApiResponse(response, (jsonValue) => ExtensionAndManualFromJSON(jsonValue));
107
139
  }
108
140
  /**
109
141
  * Returns the details about an extension.
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Picteus
3
+ * The Picteus API
4
+ *
5
+ * The version of the OpenAPI document: 0.3.0
6
+ * Contact: edouard@koppasoft.com
7
+ *
8
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
+ * https://openapi-generator.tech
10
+ * Do not edit the class manually.
11
+ */
12
+ import type { ExtensionManual } from './ExtensionManual.js';
13
+ import type { ExtensionStatus } from './ExtensionStatus.js';
14
+ import type { Manifest } from './Manifest.js';
15
+ /**
16
+ *
17
+ * @export
18
+ * @interface ExtensionAndManual
19
+ */
20
+ export interface ExtensionAndManual {
21
+ /**
22
+ * The extension manifest
23
+ * @type {Manifest}
24
+ * @memberof ExtensionAndManual
25
+ */
26
+ manifest: Manifest;
27
+ /**
28
+ * The status of the extension
29
+ * @type {ExtensionStatus}
30
+ * @memberof ExtensionAndManual
31
+ */
32
+ status: ExtensionStatus;
33
+ /**
34
+ * The extension manual
35
+ * @type {ExtensionManual}
36
+ * @memberof ExtensionAndManual
37
+ */
38
+ manual?: ExtensionManual;
39
+ }
40
+ /**
41
+ * Check if a given object implements the ExtensionAndManual interface.
42
+ */
43
+ export declare function instanceOfExtensionAndManual(value: object): value is ExtensionAndManual;
44
+ export declare function ExtensionAndManualFromJSON(json: any): ExtensionAndManual;
45
+ export declare function ExtensionAndManualFromJSONTyped(json: any, ignoreDiscriminator: boolean): ExtensionAndManual;
46
+ export declare function ExtensionAndManualToJSON(json: any): ExtensionAndManual;
47
+ export declare function ExtensionAndManualToJSONTyped(value?: ExtensionAndManual | null, ignoreDiscriminator?: boolean): any;
@@ -0,0 +1,52 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ * Picteus
5
+ * The Picteus API
6
+ *
7
+ * The version of the OpenAPI document: 0.3.0
8
+ * Contact: edouard@koppasoft.com
9
+ *
10
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
+ * https://openapi-generator.tech
12
+ * Do not edit the class manually.
13
+ */
14
+ import { ExtensionManualFromJSON, ExtensionManualToJSON, } from './ExtensionManual.js';
15
+ import { ExtensionStatusFromJSON, ExtensionStatusToJSON, } from './ExtensionStatus.js';
16
+ import { ManifestFromJSON, ManifestToJSON, } from './Manifest.js';
17
+ /**
18
+ * Check if a given object implements the ExtensionAndManual interface.
19
+ */
20
+ export function instanceOfExtensionAndManual(value) {
21
+ if (!('manifest' in value) || value['manifest'] === undefined)
22
+ return false;
23
+ if (!('status' in value) || value['status'] === undefined)
24
+ return false;
25
+ return true;
26
+ }
27
+ export function ExtensionAndManualFromJSON(json) {
28
+ return ExtensionAndManualFromJSONTyped(json, false);
29
+ }
30
+ export function ExtensionAndManualFromJSONTyped(json, ignoreDiscriminator) {
31
+ if (json == null) {
32
+ return json;
33
+ }
34
+ return {
35
+ 'manifest': ManifestFromJSON(json['manifest']),
36
+ 'status': ExtensionStatusFromJSON(json['status']),
37
+ 'manual': json['manual'] == null ? undefined : ExtensionManualFromJSON(json['manual']),
38
+ };
39
+ }
40
+ export function ExtensionAndManualToJSON(json) {
41
+ return ExtensionAndManualToJSONTyped(json, false);
42
+ }
43
+ export function ExtensionAndManualToJSONTyped(value, ignoreDiscriminator = false) {
44
+ if (value == null) {
45
+ return value;
46
+ }
47
+ return {
48
+ 'manifest': ManifestToJSON(value['manifest']),
49
+ 'status': ExtensionStatusToJSON(value['status']),
50
+ 'manual': ExtensionManualToJSON(value['manual']),
51
+ };
52
+ }
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Picteus
3
+ * The Picteus API
4
+ *
5
+ * The version of the OpenAPI document: 0.3.0
6
+ * Contact: edouard@koppasoft.com
7
+ *
8
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
+ * https://openapi-generator.tech
10
+ * Do not edit the class manually.
11
+ */
12
+ /**
13
+ *
14
+ * @export
15
+ * @interface ExtensionManual
16
+ */
17
+ export interface ExtensionManual {
18
+ /**
19
+ * The instructions
20
+ * @type {string}
21
+ * @memberof ExtensionManual
22
+ */
23
+ instructions: string;
24
+ }
25
+ /**
26
+ * Check if a given object implements the ExtensionManual interface.
27
+ */
28
+ export declare function instanceOfExtensionManual(value: object): value is ExtensionManual;
29
+ export declare function ExtensionManualFromJSON(json: any): ExtensionManual;
30
+ export declare function ExtensionManualFromJSONTyped(json: any, ignoreDiscriminator: boolean): ExtensionManual;
31
+ export declare function ExtensionManualToJSON(json: any): ExtensionManual;
32
+ export declare function ExtensionManualToJSONTyped(value?: ExtensionManual | null, ignoreDiscriminator?: boolean): any;
@@ -0,0 +1,43 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ * Picteus
5
+ * The Picteus API
6
+ *
7
+ * The version of the OpenAPI document: 0.3.0
8
+ * Contact: edouard@koppasoft.com
9
+ *
10
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
+ * https://openapi-generator.tech
12
+ * Do not edit the class manually.
13
+ */
14
+ /**
15
+ * Check if a given object implements the ExtensionManual interface.
16
+ */
17
+ export function instanceOfExtensionManual(value) {
18
+ if (!('instructions' in value) || value['instructions'] === undefined)
19
+ return false;
20
+ return true;
21
+ }
22
+ export function ExtensionManualFromJSON(json) {
23
+ return ExtensionManualFromJSONTyped(json, false);
24
+ }
25
+ export function ExtensionManualFromJSONTyped(json, ignoreDiscriminator) {
26
+ if (json == null) {
27
+ return json;
28
+ }
29
+ return {
30
+ 'instructions': json['instructions'],
31
+ };
32
+ }
33
+ export function ExtensionManualToJSON(json) {
34
+ return ExtensionManualToJSONTyped(json, false);
35
+ }
36
+ export function ExtensionManualToJSONTyped(value, ignoreDiscriminator = false) {
37
+ if (value == null) {
38
+ return value;
39
+ }
40
+ return {
41
+ 'instructions': value['instructions'],
42
+ };
43
+ }
@@ -8,10 +8,12 @@ export * from './Dates.js';
8
8
  export * from './Extension.js';
9
9
  export * from './ExtensionActivity.js';
10
10
  export * from './ExtensionActivityKind.js';
11
+ export * from './ExtensionAndManual.js';
11
12
  export * from './ExtensionGenerationOptions.js';
12
13
  export * from './ExtensionImageEmbeddings.js';
13
14
  export * from './ExtensionImageFeature.js';
14
15
  export * from './ExtensionImageTag.js';
16
+ export * from './ExtensionManual.js';
15
17
  export * from './ExtensionSettings.js';
16
18
  export * from './ExtensionStatus.js';
17
19
  export * from './ExtensionsConfiguration.js';
@@ -10,10 +10,12 @@ export * from './Dates.js';
10
10
  export * from './Extension.js';
11
11
  export * from './ExtensionActivity.js';
12
12
  export * from './ExtensionActivityKind.js';
13
+ export * from './ExtensionAndManual.js';
13
14
  export * from './ExtensionGenerationOptions.js';
14
15
  export * from './ExtensionImageEmbeddings.js';
15
16
  export * from './ExtensionImageFeature.js';
16
17
  export * from './ExtensionImageTag.js';
18
+ export * from './ExtensionManual.js';
17
19
  export * from './ExtensionSettings.js';
18
20
  export * from './ExtensionStatus.js';
19
21
  export * from './ExtensionsConfiguration.js';
@@ -116,6 +116,7 @@ export declare class Communicator {
116
116
  launchIntent<T>(intent: NotificationsIntent): Promise<T>;
117
117
  private sendMessage;
118
118
  }
119
+ export type SettingsValue = Record<string, any>;
119
120
  export declare class PicteusExtension {
120
121
  static getSdkVersion(): string;
121
122
  protected readonly logger: Logger;
@@ -132,11 +133,12 @@ export declare class PicteusExtension {
132
133
  protected initialize(): Promise<boolean>;
133
134
  protected onReady(communicator?: Communicator): Promise<void>;
134
135
  protected onTerminate(): Promise<void>;
136
+ protected onSettings(communicator: Communicator, value: SettingsValue): Promise<void>;
135
137
  protected onEvent(communicator: Communicator, event: string, value: NotificationValue): Promise<any>;
136
138
  protected getRepositoryApi(): RepositoryApi;
137
139
  protected getImageApi(): ImageApi;
138
140
  protected getImageAttachmentApi(): ImageAttachmentApi;
139
- protected getSettings(): Promise<Record<string, any>>;
141
+ protected getSettings(): Promise<SettingsValue>;
140
142
  private getParameters;
141
143
  private connectSocket;
142
144
  private disconnectSocket;
@@ -48,6 +48,7 @@ export var NotificationEvent;
48
48
  NotificationEvent["ImageRunCommand"] = "image.runCommand";
49
49
  NotificationEvent["TextComputeEmbeddings"] = "text.computeEmbeddings";
50
50
  })(NotificationEvent || (NotificationEvent = {}));
51
+ const extensionSettingsEvent = "extension.settings";
51
52
  const dateToString = (date) => {
52
53
  function padNumber(number, length) {
53
54
  return number.toString().padStart(length, "0");
@@ -64,7 +65,7 @@ const computeLeveledLogMethod = (logger, level) => {
64
65
  };
65
66
  };
66
67
  export class Logger {
67
- debug = computeLeveledLogMethod(this, "debug");
68
+ debug = computeLeveledLogMethod(this, "log");
68
69
  info = computeLeveledLogMethod(this, "info");
69
70
  warn = computeLeveledLogMethod(this, "warn");
70
71
  error = computeLeveledLogMethod(this, "error");
@@ -218,6 +219,9 @@ export class PicteusExtension {
218
219
  }
219
220
  async onTerminate() {
220
221
  }
222
+ async onSettings(communicator, value) {
223
+ return Promise.resolve();
224
+ }
221
225
  // noinspection JSUnusedLocalSymbols
222
226
  async onEvent(communicator, event, value) {
223
227
  }
@@ -265,10 +269,11 @@ export class PicteusExtension {
265
269
  return this.toString();
266
270
  }, contextId);
267
271
  const communicator = new Communicator(this.logger, sender);
272
+ const isRegularEvent = channel !== extensionSettingsEvent;
268
273
  let result;
269
274
  let success = false;
270
275
  try {
271
- result = await this.onEvent(communicator, channel, value);
276
+ result = await (isRegularEvent === true ? this.onEvent(communicator, channel, value) : this.onSettings(communicator, value.value));
272
277
  success = true;
273
278
  }
274
279
  catch (error) {
@@ -280,7 +285,7 @@ export class PicteusExtension {
280
285
  finally {
281
286
  sender.sendMessage(notificationsChannel, { acknowledgment: { success } });
282
287
  }
283
- if (result !== undefined && onResult !== undefined) {
288
+ if (isRegularEvent === true && result !== undefined && onResult !== undefined) {
284
289
  onResult(result);
285
290
  }
286
291
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@picteus/extension-sdk",
3
- "version": "0.3.1",
3
+ "version": "0.3.2",
4
4
  "productName": "Picteus TypeScript SDK",
5
5
  "description": "The Picteus extension TypeScript SDK.",
6
6
  "keywords": [