@pilotdev/pilot-web-sdk 24.24.0 → 24.26.0

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 (63) hide show
  1. package/esm2020/lib/base/disposable.mjs +14 -0
  2. package/esm2020/lib/base/index.mjs +3 -0
  3. package/esm2020/lib/base/initializable.mjs +14 -0
  4. package/esm2020/lib/commands/command-builder.mjs +2 -0
  5. package/esm2020/lib/commands/index.mjs +2 -0
  6. package/esm2020/lib/contexts/index.mjs +2 -1
  7. package/esm2020/lib/contexts/page-context.mjs +3 -0
  8. package/esm2020/lib/data/file.mjs +1 -1
  9. package/esm2020/lib/data/index.mjs +2 -3
  10. package/esm2020/lib/data/theme.mjs +6 -0
  11. package/esm2020/lib/icrypto-provider.mjs +1 -1
  12. package/esm2020/lib/injectable/command-builder-provider.mjs +2 -0
  13. package/esm2020/lib/injectable/index.mjs +5 -1
  14. package/esm2020/lib/injectable/injection-source.mjs +33 -0
  15. package/esm2020/lib/injectable/modifier-provider.mjs +1 -1
  16. package/esm2020/lib/injectable/progress-service.mjs +8 -0
  17. package/esm2020/lib/injectable/theme-service.mjs +2 -0
  18. package/esm2020/lib/modifier/index.mjs +4 -0
  19. package/esm2020/lib/modifier/modifier.mjs +2 -0
  20. package/esm2020/lib/modifier/object-builder.mjs +2 -0
  21. package/esm2020/lib/modifier/signature-modifier.mjs +2 -0
  22. package/esm2020/lib/openspace/openspace-view.mjs +1 -7
  23. package/esm2020/lib/page-navigation/index.mjs +5 -0
  24. package/esm2020/lib/page-navigation/page-navigation-section-element.builder.mjs +42 -0
  25. package/esm2020/lib/page-navigation/page-navigation-section.builder.mjs +47 -0
  26. package/esm2020/lib/page-navigation/page-navigation.builder.mjs +40 -0
  27. package/esm2020/lib/page-navigation/page-navigation.mjs +14 -0
  28. package/esm2020/public-api.mjs +7 -3
  29. package/fesm2015/pilotdev-pilot-web-sdk.mjs +219 -4
  30. package/fesm2015/pilotdev-pilot-web-sdk.mjs.map +1 -1
  31. package/fesm2020/pilotdev-pilot-web-sdk.mjs +219 -4
  32. package/fesm2020/pilotdev-pilot-web-sdk.mjs.map +1 -1
  33. package/lib/base/disposable.d.ts +7 -0
  34. package/lib/base/index.d.ts +2 -0
  35. package/lib/base/initializable.d.ts +8 -0
  36. package/lib/commands/command-builder.d.ts +15 -0
  37. package/lib/commands/index.d.ts +1 -0
  38. package/lib/contexts/index.d.ts +1 -0
  39. package/lib/contexts/page-context.d.ts +2 -0
  40. package/lib/data/file.d.ts +4 -5
  41. package/lib/data/index.d.ts +1 -2
  42. package/lib/data/theme.d.ts +7 -0
  43. package/lib/icrypto-provider.d.ts +63 -4
  44. package/lib/injectable/command-builder-provider.d.ts +10 -0
  45. package/lib/injectable/index.d.ts +4 -0
  46. package/lib/injectable/injection-source.d.ts +19 -0
  47. package/lib/injectable/modifier-provider.d.ts +1 -1
  48. package/lib/injectable/progress-service.d.ts +18 -0
  49. package/lib/injectable/theme-service.d.ts +6 -0
  50. package/lib/modifier/index.d.ts +3 -0
  51. package/lib/{data → modifier}/modifier.d.ts +1 -1
  52. package/lib/{data → modifier}/object-builder.d.ts +29 -4
  53. package/lib/modifier/signature-modifier.d.ts +66 -0
  54. package/lib/openspace/openspace-view.d.ts +0 -4
  55. package/lib/page-navigation/index.d.ts +4 -0
  56. package/lib/page-navigation/page-navigation-section-element.builder.d.ts +29 -0
  57. package/lib/page-navigation/page-navigation-section.builder.d.ts +33 -0
  58. package/lib/page-navigation/page-navigation.builder.d.ts +28 -0
  59. package/lib/page-navigation/page-navigation.d.ts +8 -0
  60. package/package.json +1 -1
  61. package/public-api.d.ts +6 -2
  62. package/esm2020/lib/data/modifier.mjs +0 -2
  63. package/esm2020/lib/data/object-builder.mjs +0 -2
@@ -1,7 +1,66 @@
1
1
  import { Observable } from 'rxjs';
2
+ import { IDataObject } from './data';
3
+ /**
4
+ * Represents a certificate with validity dates, issuer, and subject information.
5
+ */
6
+ export interface ICertificate {
7
+ /**
8
+ * Validity end date of the certificate.
9
+ */
10
+ validToDate: string;
11
+ /**
12
+ * Validity start date of the certificate.
13
+ */
14
+ validFromDate: string;
15
+ /**
16
+ * Issuer of the certificate.
17
+ */
18
+ issuer: string;
19
+ /**
20
+ * Subject of the certificate.
21
+ */
22
+ subject: string;
23
+ }
24
+ /**
25
+ * Represents a cryptographic provider interface for signing, verifying, and retrieving certificates.
26
+ */
2
27
  export interface ICryptoProvider {
3
- sign(file: ArrayBuffer): Observable<string>;
4
- verify(file: ArrayBuffer, sign: string): Observable<boolean>;
5
- getCertificates(): Observable<{} | string>;
6
- signAndVerify(): any;
28
+ /**
29
+ * Signs a file with a digital signature using the provided certificate.
30
+ *
31
+ * @param document The document for additional information, represented as an IDataObject.
32
+ * @param file The file to be signed, represented as an ArrayBuffer.
33
+ * @param certificate The digital certificate to use for signing, represented as an ArrayBuffer.
34
+ * @param signatureRequestIds An array of IDs for the signature requests.
35
+ * @returns An observable that resolves to the digital signature as a string.
36
+ */
37
+ sign(document: IDataObject, file: ArrayBuffer, certificate: ArrayBuffer, signatureRequestIds: string[]): Observable<string>;
38
+ /**
39
+ * Verifies the digital signature of a file.
40
+ *
41
+ * @param file The file to be verified, represented as an ArrayBuffer.
42
+ * @param sign The digital signature to be verified, represented as an ArrayBuffer.
43
+ * @returns An observable that resolves to a boolean indicating whether the signature is valid.
44
+ */
45
+ verify(file: ArrayBuffer, sign: ArrayBuffer): Observable<boolean>;
46
+ /**
47
+ * Retrieves a list of digital certificates.
48
+ *
49
+ * @returns An observable that resolves to an array of ICertificate objects.
50
+ */
51
+ getCertificates(): Observable<ICertificate[]>;
52
+ /**
53
+ * Determines whether the cryptoprovider has it or not.
54
+ *
55
+ * @param name The cryptoprovider name.
56
+ * @returns boolean, true if cryptoprovider has same name.
57
+ */
58
+ isKnowSignature(name: string): boolean;
59
+ /**
60
+ * Adds new cryptoprovider name.
61
+ *
62
+ * @param name New name which will be added for comparing.
63
+ * @returns string the new cryptoprovider name which was added.
64
+ */
65
+ addNewProviderName(name: string): string;
7
66
  }
@@ -0,0 +1,10 @@
1
+ import { ICommandBuilder } from "../commands/command-builder";
2
+ /**
3
+ *
4
+ */
5
+ export interface ICommandBuilderProvider {
6
+ /**
7
+ *
8
+ */
9
+ newCommandBuilder(): ICommandBuilder;
10
+ }
@@ -1,4 +1,8 @@
1
+ export * from './injection-source';
1
2
  export * from './objects-repository';
2
3
  export * from './render-context-provider';
3
4
  export * from './modifier-provider';
4
5
  export * from './repository-events';
6
+ export * from './progress-service';
7
+ export * from './theme-service';
8
+ export * from './command-builder-provider';
@@ -0,0 +1,19 @@
1
+ import { IModifierProvider, IObjectsRepository, IProgressService, IRenderContextProvider, IRepositoryEvents, IThemeService } from '../injectable';
2
+ import { ICommandBuilderProvider } from './command-builder-provider';
3
+ export declare class InjectionSource {
4
+ private _modifierProvider;
5
+ private _objectsRepository;
6
+ private _renderContextProvider;
7
+ private _repositoryEvents;
8
+ private _progressService;
9
+ private _themeService;
10
+ private _commandBuilderProvider;
11
+ constructor(_modifierProvider: IModifierProvider, _objectsRepository: IObjectsRepository, _renderContextProvider: IRenderContextProvider, _repositoryEvents: IRepositoryEvents, _progressService: IProgressService, _themeService: IThemeService, _commandBuilderProvider: ICommandBuilderProvider);
12
+ get modifierProvider(): IModifierProvider;
13
+ get objectsRepository(): IObjectsRepository;
14
+ get renderContextProvider(): IRenderContextProvider;
15
+ get repositoryEvents(): IRepositoryEvents;
16
+ get progressService(): IProgressService;
17
+ get themeService(): IThemeService;
18
+ get commandBuilderProvider(): ICommandBuilderProvider;
19
+ }
@@ -1,4 +1,4 @@
1
- import { IModifier } from "../data/modifier";
1
+ import { IModifier } from "../modifier/modifier";
2
2
  /**
3
3
  * Provides modifier
4
4
  */
@@ -0,0 +1,18 @@
1
+ import { Observable } from "rxjs";
2
+ /**
3
+ *
4
+ */
5
+ export interface IProgressService {
6
+ get percentage(): Observable<number>;
7
+ get isOpen(): boolean;
8
+ open(mode: ProgressBarMode): void;
9
+ update(percentage: number): void;
10
+ reset(): void;
11
+ close(): void;
12
+ }
13
+ export declare enum ProgressBarMode {
14
+ Determinate = 0,
15
+ Indeterminate = 1,
16
+ Buffer = 2,
17
+ Query = 3
18
+ }
@@ -0,0 +1,6 @@
1
+ import { Observable } from "rxjs";
2
+ import { Themes } from "../data/theme";
3
+ export interface IThemeService {
4
+ get themes(): Themes;
5
+ get change(): Observable<Themes>;
6
+ }
@@ -0,0 +1,3 @@
1
+ export * from './object-builder';
2
+ export * from './modifier';
3
+ export * from './signature-modifier';
@@ -1,5 +1,5 @@
1
1
  import { Observable } from "rxjs/internal/Observable";
2
- import { IDataObject } from ".";
2
+ import { IDataObject } from "../data";
3
3
  import { IObjectBuilder } from "./object-builder";
4
4
  /**
5
5
  * Creates, modifies and deletes objects
@@ -1,7 +1,8 @@
1
- import { AttributeType } from "./attribute";
2
- import { IAnnotationContainer } from "./annotations";
3
- import { IAccessRecord } from "./access";
4
- import { IRelation } from "./relation";
1
+ import { AttributeType } from "../data/attribute";
2
+ import { IAnnotationContainer } from "../data/annotations";
3
+ import { IAccessRecord } from "../data/access";
4
+ import { IRelation } from "../data/relation";
5
+ import { ISignatureModifier } from "./signature-modifier";
5
6
  /**
6
7
  * Fluent interface that enables you to modify the associated object
7
8
  */
@@ -71,6 +72,23 @@ export interface IObjectBuilder {
71
72
  * @returns Self
72
73
  */
73
74
  createSnapshotFrom(version: string, reason: string): IObjectBuilder;
75
+ /**
76
+ * Adds a new file to the associated object
77
+ *
78
+ * @param file File identificator
79
+ * @param file File interface
80
+ * @param creationTime File creation time
81
+ * @param lastAccessTime File last access time
82
+ * @param lastWriteTime File last write time
83
+ * @returns Fluent interface that enables you to modify the associated object
84
+ */
85
+ addFile(fileId: string, file: File, creationTime: Date, lastAccessTime: Date, lastWriteTime: Date): IObjectBuilder;
86
+ /**
87
+ * Removes file from actual file snapshot by identifier
88
+ * @param fileId file identificator
89
+ * @returns Fluent interface that enables you to modify the associated object
90
+ */
91
+ removeFile(fileId: string): IObjectBuilder;
74
92
  /**
75
93
  * Sets permanently deleted flag
76
94
  *
@@ -107,4 +125,11 @@ export interface IObjectBuilder {
107
125
  * @returns Self
108
126
  */
109
127
  addAnnotationContainer(container: IAnnotationContainer, attrbutes: any): IObjectBuilder;
128
+ /**
129
+ * Sets new signature requests to the selected file
130
+ *
131
+ * @param fileId file id
132
+ * @returns Fluent interface that enables you to modify the signatures of the filtered files
133
+ */
134
+ setSignatures(fileId: string): ISignatureModifier;
110
135
  }
@@ -0,0 +1,66 @@
1
+ import { ISignatureRequest } from "../data";
2
+ /**
3
+ * Interface for modifying digital signature requests.
4
+ */
5
+ export interface ISignatureModifier {
6
+ /**
7
+ * Creates a new signature request with the given ID.
8
+ *
9
+ * @param signatureRequestId - The ID of the signature request to create.
10
+ * @returns An instance of ISignatureBuilder for further configuration.
11
+ */
12
+ create(signatureRequestId: string): ISignatureBuilder;
13
+ /**
14
+ * Edits an existing signature request with the given ID.
15
+ *
16
+ * @param signatureRequest - The signature request to edit.
17
+ * @returns An instance of ISignatureBuilder for further configuration.
18
+ */
19
+ edit(signatureRequest: ISignatureRequest): ISignatureBuilder;
20
+ /**
21
+ * Removes an existing signature request with the given ID.
22
+ *
23
+ * @param signatureRequestId - The ID of the signature request to remove.
24
+ */
25
+ remove(signatureRequestId: string): void;
26
+ }
27
+ /**
28
+ * Interface for building digital signature requests.
29
+ */
30
+ export interface ISignatureBuilder {
31
+ /**
32
+ * Sets the position ID for the signature.
33
+ *
34
+ * @param positionId - The ID of the person position associated with the request.
35
+ * @returns This instance of ISignatureBuilder for method chaining.
36
+ */
37
+ withPositionId(positionId: number): ISignatureBuilder;
38
+ /**
39
+ * Sets the role for the signature.
40
+ *
41
+ * @param role - The role associated with the signature.
42
+ * @returns This instance of ISignatureBuilder for method chaining.
43
+ */
44
+ withRole(role: string): ISignatureBuilder;
45
+ /**
46
+ * Sets the flag sign for the signature.
47
+ *
48
+ * @param sign - The sign associated with the signature.
49
+ * @returns This instance of ISignatureBuilder for method chaining.
50
+ */
51
+ withSign(sign: string): ISignatureBuilder;
52
+ /**
53
+ * Sets the request signer for the signature.
54
+ *
55
+ * @param requestSigner - The request signer associated with the signature.
56
+ * @returns This instance of ISignatureBuilder for method chaining.
57
+ */
58
+ withRequestSigner(requestSigner: string): ISignatureBuilder;
59
+ /**
60
+ * Sets the object ID for the signature.
61
+ *
62
+ * @param objectId - The ID of the object associated with the signature.
63
+ * @returns This instance of ISignatureBuilder for method chaining.
64
+ */
65
+ withObjectId(objectId: string): ISignatureBuilder;
66
+ }
@@ -15,8 +15,4 @@ export declare abstract class IOpenspaceView<TOpenspaceViewContext> {
15
15
  * @param context - context
16
16
  */
17
17
  getView(context: TOpenspaceViewContext): HTMLElement | undefined;
18
- /**
19
- * The method is called just before the openspace container's view is disposed
20
- */
21
- onDispose(): void;
22
18
  }
@@ -0,0 +1,4 @@
1
+ export * from './page-navigation-section-element.builder';
2
+ export * from './page-navigation-section.builder';
3
+ export * from './page-navigation.builder';
4
+ export * from './page-navigation';
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Represents a builder for navigation window section's element
3
+ */
4
+ export declare abstract class IPageNavigationSectionElementBuilder {
5
+ constructor();
6
+ /**
7
+ * Element's title to be displayed
8
+ * @param title value
9
+ */
10
+ withTitle(title: string): IPageNavigationSectionElementBuilder;
11
+ /**
12
+ * Element's title to be displayed
13
+ * @param description value
14
+ */
15
+ withDescription(description: string): IPageNavigationSectionElementBuilder;
16
+ /**
17
+ * Element's icon
18
+ * @param name Icon name
19
+ * @param iconSvg Url of icon or base64 string
20
+ */
21
+ withIcon(name: string, iconSvg: string): IPageNavigationSectionElementBuilder;
22
+ /**
23
+ * Element's view id
24
+ *
25
+ * Is matched with corresponding IOpenspaceView's `getViewId(): string`
26
+ * @param value - View Id
27
+ */
28
+ withViewId(value: string): IPageNavigationSectionElementBuilder;
29
+ }
@@ -0,0 +1,33 @@
1
+ import { IPageNavigationSectionElementBuilder } from './page-navigation-section-element.builder';
2
+ /**
3
+ * Represents a builder for the navigation window's section
4
+ */
5
+ export declare abstract class IPageNavigationSectionBuilder {
6
+ constructor();
7
+ /**
8
+ * Section's title to be displayed
9
+ * @param title value
10
+ */
11
+ withTitle(title: string): IPageNavigationSectionBuilder;
12
+ /**
13
+ * Gets the list of existing element ids of the section
14
+ * @returns Existing element ids
15
+ */
16
+ get elementIds(): string[];
17
+ /**
18
+ * Gets count of section's elements
19
+ */
20
+ get count(): number;
21
+ /**
22
+ * Adds a new element to the section
23
+ * @param id Element's internal id
24
+ * @param index The index to put the new element at
25
+ */
26
+ addElement(id: string, index: number): IPageNavigationSectionElementBuilder;
27
+ /**
28
+ * Replaces the element of the section
29
+ * If element does not exist - creates it
30
+ * @param id Elements's internal id
31
+ */
32
+ replaceElement(id: string): IPageNavigationSectionElementBuilder;
33
+ }
@@ -0,0 +1,28 @@
1
+ import { IPageNavigationSectionBuilder } from './page-navigation-section.builder';
2
+ /**
3
+ * Represents a builder for navigation window
4
+ */
5
+ export declare abstract class IPageNavigationBuilder {
6
+ constructor();
7
+ /**
8
+ * Gets the list of existing section ids of the navigation window
9
+ * @returns Existing section ids
10
+ */
11
+ get sectionIds(): string[];
12
+ /**
13
+ * Gets count of navigation window's elements
14
+ */
15
+ get count(): number;
16
+ /**
17
+ * Adds a new section to the navigation window
18
+ * @param id Sections's internal id
19
+ * @param index The index to put the new section at
20
+ */
21
+ addSection(id: string, index: number): IPageNavigationSectionBuilder;
22
+ /**
23
+ * Replaces the section of the navigation window
24
+ * If element does not exist - creates it
25
+ * @param id Elements's internal id
26
+ */
27
+ replaceSection(id: string): IPageNavigationSectionBuilder;
28
+ }
@@ -0,0 +1,8 @@
1
+ import { IPageNavigationBuilder } from './page-navigation.builder';
2
+ /**
3
+ * Interface that allows to add new sections and elements to navigation window
4
+ */
5
+ export declare abstract class IPageNavigation {
6
+ constructor();
7
+ build(builder: IPageNavigationBuilder): void;
8
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pilotdev/pilot-web-sdk",
3
- "version": "24.24.0",
3
+ "version": "24.26.0",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^15.1.4",
6
6
  "@angular/core": "^15.1.4",
package/public-api.d.ts CHANGED
@@ -1,10 +1,14 @@
1
+ export * from './lib/base/index';
1
2
  export * from './lib/idata.plugin';
3
+ export * from './lib/icrypto-provider';
2
4
  export * from './lib/injectable/index';
3
5
  export * from './lib/toolbar/index';
4
- export * from "./lib/openspace/index";
6
+ export * from './lib/openspace/index';
7
+ export * from './lib/page-navigation';
5
8
  export * from './lib/tabs/index';
6
9
  export * from './lib/menu/index';
10
+ export * from './lib/modifier/index';
7
11
  export * from './lib/contexts/index';
8
12
  export * from './lib/tools/index';
9
13
  export * from './lib/data/index';
10
- export * from './lib/icrypto-provider';
14
+ export * from './lib/commands/index';
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kaWZpZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9waWxvdC13ZWItc2RrL3NyYy9saWIvZGF0YS9tb2RpZmllci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzL2ludGVybmFsL09ic2VydmFibGVcIjtcbmltcG9ydCB7IElEYXRhT2JqZWN0IH0gZnJvbSBcIi5cIjtcbmltcG9ydCB7IElPYmplY3RCdWlsZGVyIH0gZnJvbSBcIi4vb2JqZWN0LWJ1aWxkZXJcIjtcblxuLyoqXG4gKiBDcmVhdGVzLCBtb2RpZmllcyBhbmQgZGVsZXRlcyBvYmplY3RzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSU1vZGlmaWVyIHtcbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgb2JqZWN0XG4gICAqIFxuICAgKiBAcGFyYW0gaWQgTmV3IG9iamVjdCBpZFxuICAgKiBAcGFyYW0gcGFyZW50SWQgUGFyZW50IGlkXG4gICAqIEBwYXJhbSB0eXBlSWQgQ3JlYXRpbmcgb2JqZWN0J3MgdHlwZSBpZFxuICAgKiBAcmV0dXJuIEZsdWVudCBpbnRlcmZhY2UgdGhhdCBlbmFibGVzIHlvdSB0byBtb2RpZnkgY3JlYXRlZCBvYmplY3RcbiAgICovXG4gIGNyZWF0ZShpZDogc3RyaW5nLCBwYXJlbnRJZDogc3RyaW5nLCB0eXBlSWQ6IG51bWJlcik6IElPYmplY3RCdWlsZGVyO1xuICAvKipcbiAgICogRWRpdHMgZXhpc3Rpbmcgb2JqZWN0XG4gICAqIFxuICAgKiBAcGFyYW0gaWQgSWQgb2Ygb2JqZWN0IHRvIG1vZGlmeVxuICAgKiBAcmV0dXJucyBGbHVlbnQgaW50ZXJmYWNlIHRoYXQgZW5hYmxlcyB5b3UgdG8gbW9kaWZ5IGNyZWF0ZWQgb2JqZWN0XG4gICAqL1xuICBlZGl0KGlkOiBzdHJpbmcpIDogSU9iamVjdEJ1aWxkZXI7XG4gIC8qKlxuICAgKiBBcHBsaWVzIGFsbCB0aGUgY2hhbmdlcyBoYXZlIGJlZW4gbWFkZSBpbiBtb2RpZmllclxuICAgKiBcbiAgICogQHJldHVybnMgQ3JlYXRlZCBhbmQgZWRpdGVkIG9iamVjdHMgd3JhcHBlZCBpbiBjb2xkIE9ic2VydmFibGVcbiAgICovXG4gIGFwcGx5KCk6IE9ic2VydmFibGU8SURhdGFPYmplY3RbXT47XG59Il19
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9waWxvdC13ZWItc2RrL3NyYy9saWIvZGF0YS9vYmplY3QtYnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXR0cmlidXRlVHlwZSB9IGZyb20gXCIuL2F0dHJpYnV0ZVwiO1xuaW1wb3J0IHsgSUFubm90YXRpb25Db250YWluZXIgfSBmcm9tIFwiLi9hbm5vdGF0aW9uc1wiO1xuaW1wb3J0IHsgSUFjY2Vzc1JlY29yZCB9IGZyb20gXCIuL2FjY2Vzc1wiO1xuaW1wb3J0IHsgSVJlbGF0aW9uIH0gZnJvbSBcIi4vcmVsYXRpb25cIjtcblxuLyoqXG4gKiBGbHVlbnQgaW50ZXJmYWNlIHRoYXQgZW5hYmxlcyB5b3UgdG8gbW9kaWZ5IHRoZSBhc3NvY2lhdGVkIG9iamVjdFxuICovXG5leHBvcnQgaW50ZXJmYWNlIElPYmplY3RCdWlsZGVyIHtcbiAgLyoqXG4gICAqIFNldHMgdGhlIHN0cmluZyBhdHRyaWJ1dGUgdmFsdWVcbiAgICogXG4gICAqIEBwYXJhbSBuYW1lICBBdHRyaWJ1dGUgbmFtZVxuICAgKiBAcGFyYW0gdmFsdWUgIEF0dHJpYnV0ZSB2YWx1ZVxuICAgKiBAcmV0dXJucyBTZWxmXG4gICAqL1xuICBzZXRBdHRyaWJ1dGUobmFtZTogc3RyaW5nLCB2YWx1ZTogYW55LCB0eXBlOiBBdHRyaWJ1dGVUeXBlKTogSU9iamVjdEJ1aWxkZXI7XG4gIC8qKlxuICAgKiBBZGRzIGFjY2VzcyByZWNvcmQgdG8gYW4gb2JqZWN0XG4gICAqIFxuICAgKiBAcGFyYW0gcmVjb3JkICBBY2Nlc3MgcmVjb3JkXG4gICAqIEByZXR1cm5zIFNlbGZcbiAgICovXG4gIHNldEFjY2VzcyhyZWNvcmQ6IElBY2Nlc3NSZWNvcmQpOiBJT2JqZWN0QnVpbGRlcjtcbiAgLyoqXG4gICAqIFJlbW92ZXMgYWNjZXNzIHJlY29yZFxuICAgKiBcbiAgICogQHBhcmFtIHJlY29yZCAgQWNjZXNzIHJlY29yZFxuICAgKiBAcmV0dXJucyBTZWxmXG4gICAqL1xuICByZW1vdmVBY2Nlc3MocmVjb3JkOiBJQWNjZXNzUmVjb3JkKTogSU9iamVjdEJ1aWxkZXI7XG4gIC8qKlxuICAgKiBBZGRzIGEgcmVsYXRpb25cbiAgICogXG4gICAqIEBwYXJhbSByZWxhdGlvbiAgUmVsYXRpb25cbiAgICogQHJldHVybnMgU2VsZlxuICAgKi9cbiAgYWRkUmVsYXRpb24ocmVsYXRpb246IElSZWxhdGlvbik6IElPYmplY3RCdWlsZGVyO1xuICAvKipcbiAgICogUmVtb3ZlcyByZWxhdGlvblxuICAgKiBcbiAgICogQHBhcmFtIHJlbGF0aW9uSWQgIFJlbGF0aW9uIGlkXG4gICAqIEByZXR1cm5zIFNlbGZcbiAgICovIFxuICByZW1vdmVSZWxhdGlvbihyZWxhdGlvbklkOiBzdHJpbmcpOiBJT2JqZWN0QnVpbGRlcjtcbiAgLyoqXG4gICAqIFNldHMgbmV3IHR5cGUuIEl0IGlzIHJlY29tbWVuZGVkIHRvIHVzZSB0aGlzIG1ldGhvZCBvbmx5IGZvciByZWNvdmVyaW5nIHBlcm1hbmVudGx5IGRlbGV0ZWQgb2JqZWN0cy4gSW4gb3RoZXIgY2FzZXMsIHRoaXMgY2FuIGxlYWQgdG8gc3lzdGVtIG1hbGZ1bmN0aW9uLlxuICAgKiBcbiAgICogQHBhcmFtIHR5cGVJZCAgVHlwZSBpZFxuICAgKiBAcmV0dXJucyBTZWxmXG4gICAqLyBcbiAgc2V0VHlwZUlkKHR5cGVJZDogbnVtYmVyKTogSU9iamVjdEJ1aWxkZXI7XG4gIC8qKlxuICAgKiBTZXRzIG5ldyBwYXJlbnRcbiAgICogXG4gICAqIEBwYXJhbSBwYXJlbnRJZCAgUGFyZW50IGlkXG4gICAqIEByZXR1cm5zIFNlbGZcbiAgICovIFxuICBzZXRQYXJlbnRJZChwYXJlbnRJZDogc3RyaW5nKTogSU9iamVjdEJ1aWxkZXI7XG4gIC8qKlxuICAgKiBBZGRzIGZpbGUgc25hcHNob3RcbiAgICogXG4gICAqIEBwYXJhbSByZWFzb24gIFJlYXNvblxuICAgKiBAcmV0dXJucyBTZWxmXG4gICAqLyBcbiAgY3JlYXRlU25hcHNob3QocmVhc29uOiBzdHJpbmcpOiBJT2JqZWN0QnVpbGRlcjtcbiAgLyoqXG4gICAqIE1ha2VzIGZpbGUgc25hcHNob3QgYWN0dWFsXG4gICAqIFxuICAgKiBAcGFyYW0gdmVyc2lvbiAgVmVyc2lvbiBvZiBmaWxlIHNuYXBzaG90IHRvIG1ha2UgYWN0dWFsXG4gICAqIEBwYXJhbSByZWFzb24gIFJlYXNvblxuICAgKiBAcmV0dXJucyBTZWxmXG4gICAqLyBcbiAgY3JlYXRlU25hcHNob3RGcm9tKHZlcnNpb246IHN0cmluZywgcmVhc29uOiBzdHJpbmcpOiBJT2JqZWN0QnVpbGRlcjtcbiAgLyoqXG4gICogU2V0cyBwZXJtYW5lbnRseSBkZWxldGVkIGZsYWdcbiAgKiBcbiAgKiBAcGFyYW0gaXNEZWxldGVkICBWYWx1ZVxuICAqIEByZXR1cm5zIFNlbGZcbiAgKi8gXG4gIHNldElzRGVsZXRlZChpc0RlbGV0ZWQ6IGJvb2xlYW4pOiBJT2JqZWN0QnVpbGRlcjtcbiAgLyoqXG4gICAqIFNldCBmbGFnIGluIHJlY3ljbGUgYmluXG4gICAqIFxuICAgKiBAcGFyYW0gaXNJblJlY3ljbGVCaW4gIFZhbHVlXG4gICAqIEByZXR1cm5zIFNlbGZcbiAgICovIFxuICBzZXRJc0luUmVjeWNsZUJpbihpc0luUmVjeWNsZUJpbjogYm9vbGVhbik6IElPYmplY3RCdWlsZGVyO1xuICAvKipcbiAgICogU2V0cyBmcm96ZW4gZmxhZ1xuICAgKiBcbiAgICogQHBhcmFtIGlzRnJlZXplZCBWYWx1ZVxuICAgKiBAcmV0dXJucyBTZWxmXG4gICAqLyBcbiAgc2V0SXNGcmVlemVkKGlzRnJlZXplZDogYm9vbGVhbik6IElPYmplY3RCdWlsZGVyO1xuICAvKipcbiAgICogU2V0cyBvYmplY3QncyBzZWNyZXQgaW5mb1xuICAgKiBcbiAgICogQHBhcmFtIGlzU2VjcmV0IFZhbHVlXG4gICAqIEByZXR1cm5zIFNlbGZcbiAgICovIFxuICBzZXRJc1NlY3JldChpc1NlY3JldDogYm9vbGVhbik6IElPYmplY3RCdWlsZGVyO1xuICAvKipcbiAgICogQWRkcyBvciBjaGFuZ2VzIGEgYW5ub3RhdGlvblxuICAgKiBcbiAgICogQHBhcmFtIGNvbnRhaW5lciBBbm5vdGF0aW9uIGNvbnRhaW5lclxuICAgKiBAcGFyYW0gYXR0cmJ1dGVzIEFubm90YXRpb24gYXR0cmlidXRlc1xuICAgKiBAcmV0dXJucyBTZWxmXG4gICAqLyBcbiAgYWRkQW5ub3RhdGlvbkNvbnRhaW5lcihjb250YWluZXI6IElBbm5vdGF0aW9uQ29udGFpbmVyLCBhdHRyYnV0ZXM6IGFueSk6IElPYmplY3RCdWlsZGVyO1xufSJdfQ==