@progalaxyelabs/ngx-stonescriptphp-client 0.0.5

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.
package/README.md ADDED
@@ -0,0 +1,24 @@
1
+ # ProgalaxyClientCommon
2
+
3
+ This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 16.2.0.
4
+
5
+ ## Code scaffolding
6
+
7
+ Run `ng generate component component-name --project progalaxy-client-common` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project progalaxy-client-common`.
8
+ > Note: Don't forget to add `--project progalaxy-client-common` or else it will be added to the default project in your `angular.json` file.
9
+
10
+ ## Build
11
+
12
+ Run `ng build progalaxy-client-common` to build the project. The build artifacts will be stored in the `dist/` directory.
13
+
14
+ ## Publishing
15
+
16
+ After building your library with `ng build progalaxy-client-common`, go to the dist folder `cd dist/progalaxy-client-common` and run `npm publish`.
17
+
18
+ ## Running unit tests
19
+
20
+ Run `ng test progalaxy-client-common` to execute the unit tests via [Karma](https://karma-runner.github.io).
21
+
22
+ ## Further help
23
+
24
+ To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
@@ -0,0 +1,169 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { ApiResponse } from './api-response.model';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "./token.service";
5
+ import * as i2 from "./signin-status.service";
6
+ import * as i3 from "./my-environment.model";
7
+ export class ApiConnectionService {
8
+ constructor(tokens, signinStatus, environment) {
9
+ this.tokens = tokens;
10
+ this.signinStatus = signinStatus;
11
+ this.environment = environment;
12
+ this.host = ''; // contains trailing slash
13
+ this.accessToken = '';
14
+ this.host = environment.apiServer.host;
15
+ }
16
+ async request(url, options, data) {
17
+ try {
18
+ if (data !== null) {
19
+ const body = JSON.stringify(data);
20
+ if (body) {
21
+ options.body = body;
22
+ }
23
+ else {
24
+ options.body = {};
25
+ }
26
+ }
27
+ const accessTokenIncluded = this.includeAccessToken(options);
28
+ let response = await fetch(url, options);
29
+ if ((response.status === 401) && accessTokenIncluded) {
30
+ response = await this.refreshAccessTokenAndRetry(url, options, response);
31
+ }
32
+ if (response.ok) {
33
+ const json = await (response.json());
34
+ return (new ApiResponse(json.status, json.data, json.message));
35
+ }
36
+ if (response.status === 401) {
37
+ this.signinStatus.signedOut();
38
+ }
39
+ return this.handleError(response);
40
+ }
41
+ catch (error) {
42
+ return this.handleError(error);
43
+ }
44
+ }
45
+ handleError(error) {
46
+ console.error(`Backend returned code ${error.status}, ` +
47
+ `full error: `, error);
48
+ return new ApiResponse('error');
49
+ }
50
+ async get(endpoint, queryParamsObj) {
51
+ const url = this.host + endpoint.replace(/^\/+/, '') + this.buildQueryString(queryParamsObj);
52
+ const fetchOptions = {
53
+ mode: 'cors',
54
+ redirect: 'error'
55
+ };
56
+ return this.request(url, fetchOptions, null);
57
+ }
58
+ async post(pathWithQueryParams, data) {
59
+ const url = this.host + pathWithQueryParams.replace(/^\/+/, '');
60
+ const fetchOptions = {
61
+ method: 'POST',
62
+ mode: 'cors',
63
+ redirect: 'error',
64
+ headers: {
65
+ 'Content-Type': 'application/json'
66
+ },
67
+ body: JSON.stringify(data)
68
+ };
69
+ return this.request(url, fetchOptions, data);
70
+ }
71
+ // async postFormWithFiles(pathWithQueryParams: string, formData: FormData): Promise<ApiResponse | null> {
72
+ // const url = this.host + pathWithQueryParams.replace(/^\/+/, '')
73
+ // try {
74
+ // const fetchOptions: RequestInit = {
75
+ // method: 'POST',
76
+ // mode: 'cors',
77
+ // redirect: 'error',
78
+ // body: formData
79
+ // }
80
+ // const accessTokenIncluded = this.includeAccessToken(fetchOptions)
81
+ // let response: Response = await fetch(url, fetchOptions)
82
+ // if ((response.status === 401) && accessTokenIncluded) {
83
+ // response = await this.refreshAccessTokenAndRetry(url, fetchOptions, response)
84
+ // }
85
+ // if (response.ok) {
86
+ // return ((await (response.json()) as ApiResponse))
87
+ // }
88
+ // return this.handleError(response)
89
+ // } catch (error) {
90
+ // return this.handleError(error)
91
+ // }
92
+ // }
93
+ includeAccessToken(options) {
94
+ this.accessToken = this.tokens.getAccessToken();
95
+ if (!this.accessToken) {
96
+ return false;
97
+ }
98
+ if (!options.headers) {
99
+ options.headers = {};
100
+ }
101
+ options.headers['Authorization'] = 'Bearer ' + this.accessToken;
102
+ return true;
103
+ }
104
+ async refreshAccessTokenAndRetry(url, fetchOptions, response) {
105
+ const refreshStatusOk = await this.refreshAccessToken();
106
+ if (!refreshStatusOk) {
107
+ return response;
108
+ }
109
+ fetchOptions.headers['Authorization'] = 'Bearer ' + this.accessToken;
110
+ response = await fetch(url, fetchOptions);
111
+ return response;
112
+ }
113
+ async refreshAccessToken() {
114
+ const refreshToken = this.tokens.getRefreshToken();
115
+ if (!refreshToken) {
116
+ return false;
117
+ }
118
+ const refreshTokenUrl = this.host + 'user/refresh_access';
119
+ let refreshTokenResponse = await fetch(refreshTokenUrl, {
120
+ method: 'POST',
121
+ mode: 'cors',
122
+ redirect: 'error',
123
+ headers: {
124
+ 'Content-Type': 'application/json'
125
+ },
126
+ body: JSON.stringify({
127
+ access_token: this.accessToken,
128
+ refresh_token: refreshToken
129
+ })
130
+ });
131
+ if (!refreshTokenResponse.ok) {
132
+ this.accessToken = '';
133
+ this.tokens.clear();
134
+ return false;
135
+ }
136
+ let refreshAccessData = await refreshTokenResponse.json();
137
+ if (!refreshAccessData) {
138
+ return false;
139
+ }
140
+ this.tokens.setTokens(refreshAccessData.data.access_token, refreshToken);
141
+ this.accessToken = refreshAccessData.data.access_token;
142
+ return true;
143
+ }
144
+ buildQueryString(options) {
145
+ if (options === undefined) {
146
+ return '';
147
+ }
148
+ const array = [];
149
+ for (let key in options) {
150
+ if (options.hasOwnProperty(key) && (options[key] !== null) && (options[key] !== undefined)) {
151
+ array.push(encodeURIComponent(key) + "=" + encodeURIComponent(options[key]));
152
+ }
153
+ }
154
+ const str = array.join('&');
155
+ if (str !== '') {
156
+ return '?' + str;
157
+ }
158
+ return '';
159
+ }
160
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ApiConnectionService, deps: [{ token: i1.TokenService }, { token: i2.SigninStatusService }, { token: i3.MyEnvironmentModel }], target: i0.ɵɵFactoryTarget.Injectable }); }
161
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ApiConnectionService, providedIn: 'root' }); }
162
+ }
163
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ApiConnectionService, decorators: [{
164
+ type: Injectable,
165
+ args: [{
166
+ providedIn: 'root'
167
+ }]
168
+ }], ctorParameters: function () { return [{ type: i1.TokenService }, { type: i2.SigninStatusService }, { type: i3.MyEnvironmentModel }]; } });
169
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWNvbm5lY3Rpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL25neC1zdG9uZXNjcmlwdHBocC1jbGllbnQvcHJvamVjdHMvcHJvZ2FsYXh5LWNsaWVudC1jb21tb24vc3JjL2xpYi9hcGktY29ubmVjdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7OztBQU1uRCxNQUFNLE9BQU8sb0JBQW9CO0lBTTdCLFlBQ1ksTUFBb0IsRUFDcEIsWUFBaUMsRUFDakMsV0FBK0I7UUFGL0IsV0FBTSxHQUFOLE1BQU0sQ0FBYztRQUNwQixpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFDakMsZ0JBQVcsR0FBWCxXQUFXLENBQW9CO1FBUG5DLFNBQUksR0FBRyxFQUFFLENBQUEsQ0FBQywwQkFBMEI7UUFFcEMsZ0JBQVcsR0FBRyxFQUFFLENBQUE7UUFPcEIsSUFBSSxDQUFDLElBQUksR0FBRyxXQUFXLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQTtJQUMxQyxDQUFDO0lBR08sS0FBSyxDQUFDLE9BQU8sQ0FBVyxHQUFXLEVBQUUsT0FBWSxFQUFFLElBQWdCO1FBQ3ZFLElBQUk7WUFFQSxJQUFHLElBQUksS0FBSyxJQUFJLEVBQUU7Z0JBQ2QsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQTtnQkFDakMsSUFBRyxJQUFJLEVBQUU7b0JBQ0wsT0FBTyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUE7aUJBQ3RCO3FCQUFNO29CQUNILE9BQU8sQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFBO2lCQUNwQjthQUNKO1lBRUQsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUE7WUFFNUQs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LEdBQUcsa0JBQWtCLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQTthQUMvRTtTQUNKO1FBQ0QsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUMzQixJQUFJLEdBQUcsS0FBSyxFQUFFLEVBQUU7WUFDWixPQUFPLEdBQUcsR0FBRyxHQUFHLENBQUE7U0FDbkI7UUFFRCxPQUFPLEVBQUUsQ0FBQTtJQUNiLENBQUM7K0dBekxRLG9CQUFvQjttSEFBcEIsb0JBQW9CLGNBRmpCLE1BQU07OzRGQUVULG9CQUFvQjtrQkFIaEMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUb2tlblNlcnZpY2UgfSBmcm9tICcuL3Rva2VuLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2lnbmluU3RhdHVzU2VydmljZSB9IGZyb20gJy4vc2lnbmluLXN0YXR1cy5zZXJ2aWNlJztcbmltcG9ydCB7IEFwaVJlc3BvbnNlIH0gZnJvbSAnLi9hcGktcmVzcG9uc2UubW9kZWwnO1xuaW1wb3J0IHsgTXlFbnZpcm9ubWVudE1vZGVsIH0gZnJvbSAnLi9teS1lbnZpcm9ubWVudC5tb2RlbCc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQXBpQ29ubmVjdGlvblNlcnZpY2Uge1xuXG4gICAgcHJpdmF0ZSBob3N0ID0gJycgLy8gY29udGFpbnMgdHJhaWxpbmcgc2xhc2hcblxuICAgIHByaXZhdGUgYWNjZXNzVG9rZW4gPSAnJ1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgdG9rZW5zOiBUb2tlblNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgc2lnbmluU3RhdHVzOiBTaWduaW5TdGF0dXNTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGVudmlyb25tZW50OiBNeUVudmlyb25tZW50TW9kZWxcbiAgICApIHtcbiAgICAgICAgdGhpcy5ob3N0ID0gZW52aXJvbm1lbnQuYXBpU2VydmVyLmhvc3RcbiAgICB9XG5cblxuICAgIHByaXZhdGUgYXN5bmMgcmVxdWVzdDxEYXRhVHlwZT4odXJsOiBzdHJpbmcsIG9wdGlvbnM6IGFueSwgZGF0YTogYW55IHwgbnVsbCk6IFByb21pc2U8QXBpUmVzcG9uc2U8RGF0YVR5cGU+PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIGlmKGRhdGEgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBib2R5ID0gSlNPTi5zdHJpbmdpZnkoZGF0YSlcbiAgICAgICAgICAgICAgICBpZihib2R5KSB7XG4gICAgICAgICAgICAgICAgICAgIG9wdGlvbnMuYm9keSA9IGJvZHlcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBvcHRpb25zLmJvZHkgPSB7fVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgYWNjZXNzVG9rZW5JbmNsdWRlZCA9IHRoaXMuaW5jbHVkZUFjY2Vzc1Rva2VuKG9wdGlvbnMpXG5cbiAgICAgICAgICAgIGxldCByZXNwb25zZTogUmVzcG9uc2UgPSBhd2FpdCBmZXRjaCh1cmwsIG9wdGlvbnMpXG5cbiAgICAgICAgICAgIGlmICgocmVzcG9uc2Uuc3RhdHVzID09PSA0MDEpICYmIGFjY2Vzc1Rva2VuSW5jbHVkZWQpIHtcbiAgICAgICAgICAgICAgICByZXNwb25zZSA9IGF3YWl0IHRoaXMucmVmcmVzaEFjY2Vzc1Rva2VuQW5kUmV0cnkodXJsLCBvcHRpb25zLCByZXNwb25zZSlcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHJlc3BvbnNlLm9rKSB7XG4gICAgICAgICAgICAgICAgY29uc3QganNvbiA9IGF3YWl0IChyZXNwb25zZS5qc29uKCkpXG4gICAgICAgICAgICAgICAgcmV0dXJuIChuZXcgQXBpUmVzcG9uc2U8RGF0YVR5cGU+KGpzb24uc3RhdHVzLCBqc29uLmRhdGEsIGpzb24ubWVzc2FnZSkpXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT09IDQwMSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2lnbmluU3RhdHVzLnNpZ25lZE91dCgpXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB0aGlzLmhhbmRsZUVycm9yPERhdGFUeXBlPihyZXNwb25zZSlcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmhhbmRsZUVycm9yPERhdGFUeXBlPihlcnJvcilcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlRXJyb3I8RGF0YVR5cGU+KGVycm9yOiBhbnkpOiBBcGlSZXNwb25zZTxEYXRhVHlwZT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgYEJhY2tlbmQgcmV0dXJuZWQgY29kZSAke2Vycm9yLnN0YXR1c30sIGAgK1xuICAgICAgICAgICAgYGZ1bGwgZXJyb3I6IGAsIGVycm9yKTtcbiAgICAgICAgcmV0dXJuIG5ldyBBcGlSZXNwb25zZTxEYXRhVHlwZT4oJ2Vycm9yJylcbiAgICB9XG5cbiAgICBhc3luYyBnZXQ8RGF0YVR5cGU+KGVuZHBvaW50OiBzdHJpbmcsIHF1ZXJ5UGFyYW1zT2JqPzogYW55ICk6IFByb21pc2U8QXBpUmVzcG9uc2U8RGF0YVR5cGU+PiB7XG4gICAgICAgIGNvbnN0IHVybCA9IHRoaXMuaG9zdCArIGVuZHBvaW50LnJlcGxhY2UoL15cXC8rLywgJycpICsgdGhpcy5idWlsZFF1ZXJ5U3RyaW5nKHF1ZXJ5UGFyYW1zT2JqKVxuICAgICAgICBjb25zdCBmZXRjaE9wdGlvbnM6IFJlcXVlc3RJbml0ID0ge1xuICAgICAgICAgICAgbW9kZTogJ2NvcnMnLFxuICAgICAgICAgICAgcmVkaXJlY3Q6ICdlcnJvcidcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5yZXF1ZXN0KHVybCwgZmV0Y2hPcHRpb25zLCBudWxsKVxuICAgIH1cblxuICAgIGFzeW5jIHBvc3Q8RGF0YVR5cGU+KHBhdGhXaXRoUXVlcnlQYXJhbXM6IHN0cmluZywgZGF0YTogYW55KTogUHJvbWlzZTxBcGlSZXNwb25zZTxEYXRhVHlwZT4+IHtcbiAgICAgICAgY29uc3QgdXJsID0gdGhpcy5ob3N0ICsgcGF0aFdpdGhRdWVyeVBhcmFtcy5yZXBsYWNlKC9eXFwvKy8sICcnKVxuICAgICAgICBjb25zdCBmZXRjaE9wdGlvbnM6IFJlcXVlc3RJbml0ID0ge1xuICAgICAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgICAgICBtb2RlOiAnY29ycycsXG4gICAgICAgICAgICByZWRpcmVjdDogJ2Vycm9yJyxcbiAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoZGF0YSlcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5yZXF1ZXN0KHVybCwgZmV0Y2hPcHRpb25zLCBkYXRhKSAgICAgICAgXG4gICAgfVxuXG4gICAgLy8gYXN5bmMgcG9zdEZvcm1XaXRoRmlsZXMocGF0aFdpdGhRdWVyeVBhcmFtczogc3RyaW5nLCBmb3JtRGF0YTogRm9ybURhdGEpOiBQcm9taXNlPEFwaVJlc3BvbnNlIHwgbnVsbD4ge1xuICAgIC8vICAgICBjb25zdCB1cmwgPSB0aGlzLmhvc3QgKyBwYXRoV2l0aFF1ZXJ5UGFyYW1zLnJlcGxhY2UoL15cXC8rLywgJycpXG4gICAgLy8gICAgIHRyeSB7XG4gICAgLy8gICAgICAgICBjb25zdCBmZXRjaE9wdGlvbnM6IFJlcXVlc3RJbml0ID0ge1xuICAgIC8vICAgICAgICAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgIC8vICAgICAgICAgICAgIG1vZGU6ICdjb3JzJyxcbiAgICAvLyAgICAgICAgICAgICByZWRpcmVjdDogJ2Vycm9yJyxcbiAgICAvLyAgICAgICAgICAgICBib2R5OiBmb3JtRGF0YVxuICAgIC8vICAgICAgICAgfVxuXG4gICAgLy8gICAgICAgICBjb25zdCBhY2Nlc3NUb2tlbkluY2x1ZGVkID0gdGhpcy5pbmNsdWRlQWNjZXNzVG9rZW4oZmV0Y2hPcHRpb25zKVxuXG4gICAgLy8gICAgICAgICBsZXQgcmVzcG9uc2U6IFJlc3BvbnNlID0gYXdhaXQgZmV0Y2godXJsLCBmZXRjaE9wdGlvbnMpXG5cbiAgICAvLyAgICAgICAgIGlmICgocmVzcG9uc2Uuc3RhdHVzID09PSA0MDEpICYmIGFjY2Vzc1Rva2VuSW5jbHVkZWQpIHtcbiAgICAvLyAgICAgICAgICAgICByZXNwb25zZSA9IGF3YWl0IHRoaXMucmVmcmVzaEFjY2Vzc1Rva2VuQW5kUmV0cnkodXJsLCBmZXRjaE9wdGlvbnMsIHJlc3BvbnNlKVxuICAgIC8vICAgICAgICAgfVxuXG4gICAgLy8gICAgICAgICBpZiAocmVzcG9uc2Uub2spIHtcbiAgICAvLyAgICAgICAgICAgICByZXR1cm4gKChhd2FpdCAocmVzcG9uc2UuanNvbigpKSBhcyBBcGlSZXNwb25zZSkpXG4gICAgLy8gICAgICAgICB9XG5cbiAgICAvLyAgICAgICAgIHJldHVybiB0aGlzLmhhbmRsZUVycm9yKHJlc3BvbnNlKVxuICAgIC8vICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgIC8vICAgICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlRXJyb3IoZXJyb3IpXG4gICAgLy8gICAgIH1cbiAgICAvLyB9XG5cbiAgICBwcml2YXRlIGluY2x1ZGVBY2Nlc3NUb2tlbihvcHRpb25zOiBhbnkpOiBib29sZWFuIHtcbiAgICAgICAgdGhpcy5hY2Nlc3NUb2tlbiA9IHRoaXMudG9rZW5zLmdldEFjY2Vzc1Rva2VuKClcbiAgICAgICAgaWYgKCF0aGlzLmFjY2Vzc1Rva2VuKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghb3B0aW9ucy5oZWFkZXJzKSB7XG4gICAgICAgICAgICBvcHRpb25zLmhlYWRlcnMgPSB7fVxuICAgICAgICB9XG4gICAgICAgIG9wdGlvbnMuaGVhZGVyc1snQXV0aG9yaXphdGlvbiddID0gJ0JlYXJlciAnICsgdGhpcy5hY2Nlc3NUb2tlblxuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgcmVmcmVzaEFjY2Vzc1Rva2VuQW5kUmV0cnkodXJsOiBzdHJpbmcsIGZldGNoT3B0aW9uczogYW55LCByZXNwb25zZTogUmVzcG9uc2UpOiBQcm9taXNlPFJlc3BvbnNlPiB7XG5cbiAgICAgICAgY29uc3QgcmVmcmVzaFN0YXR1c09rID0gYXdhaXQgdGhpcy5yZWZyZXNoQWNjZXNzVG9rZW4oKVxuICAgICAgICBpZiAoIXJlZnJlc2hTdGF0dXNPaykge1xuICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlXG4gICAgICAgIH1cblxuICAgICAgICBmZXRjaE9wdGlvbnMuaGVhZGVyc1snQXV0aG9yaXphdGlvbiddID0gJ0JlYXJlciAnICsgdGhpcy5hY2Nlc3NUb2tlblxuICAgICAgICByZXNwb25zZSA9IGF3YWl0IGZldGNoKHVybCwgZmV0Y2hPcHRpb25zKVxuICAgICAgICByZXR1cm4gcmVzcG9uc2VcbiAgICB9XG5cbiAgICBhc3luYyByZWZyZXNoQWNjZXNzVG9rZW4oKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgICAgIGNvbnN0IHJlZnJlc2hUb2tlbiA9IHRoaXMudG9rZW5zLmdldFJlZnJlc2hUb2tlbigpXG4gICAgICAgIGlmICghcmVmcmVzaFRva2VuKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHJlZnJlc2hUb2tlblVybCA9IHRoaXMuaG9zdCArICd1c2VyL3JlZnJlc2hfYWNjZXNzJ1xuICAgICAgICBsZXQgcmVmcmVzaFRva2VuUmVzcG9uc2UgPSBhd2FpdCBmZXRjaChyZWZyZXNoVG9rZW5VcmwsIHtcbiAgICAgICAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgICAgICAgbW9kZTogJ2NvcnMnLFxuICAgICAgICAgICAgcmVkaXJlY3Q6ICdlcnJvcicsXG4gICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBhY2Nlc3NfdG9rZW46IHRoaXMuYWNjZXNzVG9rZW4sXG4gICAgICAgICAgICAgICAgcmVmcmVzaF90b2tlbjogcmVmcmVzaFRva2VuXG4gICAgICAgICAgICB9KVxuICAgICAgICB9KVxuICAgICAgICBpZiAoIXJlZnJlc2hUb2tlblJlc3BvbnNlLm9rKSB7XG4gICAgICAgICAgICB0aGlzLmFjY2Vzc1Rva2VuID0gJydcbiAgICAgICAgICAgIHRoaXMudG9rZW5zLmNsZWFyKClcbiAgICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICB9XG5cbiAgICAgICAgbGV0IHJlZnJlc2hBY2Nlc3NEYXRhID0gYXdhaXQgcmVmcmVzaFRva2VuUmVzcG9uc2UuanNvbigpXG4gICAgICAgIGlmICghcmVmcmVzaEFjY2Vzc0RhdGEpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICB9XG4gICAgICAgIHRoaXMudG9rZW5zLnNldFRva2VucyhyZWZyZXNoQWNjZXNzRGF0YS5kYXRhLmFjY2Vzc190b2tlbiwgcmVmcmVzaFRva2VuKVxuICAgICAgICB0aGlzLmFjY2Vzc1Rva2VuID0gcmVmcmVzaEFjY2Vzc0RhdGEuZGF0YS5hY2Nlc3NfdG9rZW5cblxuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cblxuICAgIGJ1aWxkUXVlcnlTdHJpbmcob3B0aW9ucz86IGFueSk6IHN0cmluZyB7XG4gICAgICAgIGlmIChvcHRpb25zID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiAnJ1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgYXJyYXkgPSBbXVxuICAgICAgICBmb3IgKGxldCBrZXkgaW4gb3B0aW9ucykge1xuICAgICAgICAgICAgaWYgKG9wdGlvbnMuaGFzT3duUHJvcGVydHkoa2V5KSAmJiAob3B0aW9uc1trZXldICE9PSBudWxsKSAmJiAob3B0aW9uc1trZXldICE9PSB1bmRlZmluZWQpKSB7XG4gICAgICAgICAgICAgICAgYXJyYXkucHVzaChlbmNvZGVVUklDb21wb25lbnQoa2V5KSArIFwiPVwiICsgZW5jb2RlVVJJQ29tcG9uZW50KG9wdGlvbnNba2V5XSkpXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc3RyID0gYXJyYXkuam9pbignJicpXG4gICAgICAgIGlmIChzdHIgIT09ICcnKSB7XG4gICAgICAgICAgICByZXR1cm4gJz8nICsgc3RyXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gJydcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,26 @@
1
+ export class ApiResponse {
2
+ constructor(status, data = {}, message = '') {
3
+ this.status = status;
4
+ this.data = data;
5
+ this.message = message;
6
+ }
7
+ onOk(callback) {
8
+ if (this.status === 'ok') {
9
+ callback(this.data);
10
+ }
11
+ return this;
12
+ }
13
+ onNotOk(callback) {
14
+ if (this.status === 'not ok') {
15
+ callback(this.message, this.data);
16
+ }
17
+ return this;
18
+ }
19
+ onError(callback) {
20
+ if (this.status === 'error') {
21
+ callback();
22
+ }
23
+ return this;
24
+ }
25
+ }
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLXJlc3BvbnNlLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbmd4LXN0b25lc2NyaXB0cGhwLWNsaWVudC9wcm9qZWN0cy9wcm9nYWxheHktY2xpZW50LWNvbW1vbi9zcmMvbGliL2FwaS1yZXNwb25zZS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sV0FBVztJQUtwQixZQUFZLE1BQWMsRUFBRSxPQUFZLEVBQUUsRUFBRSxVQUFrQixFQUFFO1FBQzVELElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFBO1FBQ3BCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFBO1FBQ2hCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFBO0lBQzFCLENBQUM7SUFFRCxJQUFJLENBQUMsUUFBa0M7UUFDbkMsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLElBQUksRUFBRTtZQUN0QixRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO1NBQ3RCO1FBQ0QsT0FBTyxJQUFJLENBQUE7SUFDZixDQUFDO0lBRUQsT0FBTyxDQUFDLFFBQW1EO1FBQ3ZELElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxRQUFRLEVBQUU7WUFDMUIsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO1NBQ3BDO1FBQ0QsT0FBTyxJQUFJLENBQUE7SUFDZixDQUFDO0lBRUQsT0FBTyxDQUFDLFFBQW9CO1FBQ3hCLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxPQUFPLEVBQUU7WUFDekIsUUFBUSxFQUFFLENBQUE7U0FDYjtRQUNELE9BQU8sSUFBSSxDQUFBO0lBQ2YsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIEFwaVJlc3BvbnNlPERhdGFUeXBlPiB7XG4gICAgcHJpdmF0ZSBzdGF0dXM6IHN0cmluZ1xuICAgIHByaXZhdGUgZGF0YTogYW55XG4gICAgcHJpdmF0ZSBtZXNzYWdlOiBzdHJpbmdcblxuICAgIGNvbnN0cnVjdG9yKHN0YXR1czogc3RyaW5nLCBkYXRhOiBhbnkgPSB7fSwgbWVzc2FnZTogc3RyaW5nID0gJycpIHtcbiAgICAgICAgdGhpcy5zdGF0dXMgPSBzdGF0dXNcbiAgICAgICAgdGhpcy5kYXRhID0gZGF0YVxuICAgICAgICB0aGlzLm1lc3NhZ2UgPSBtZXNzYWdlXG4gICAgfVxuXG4gICAgb25PayhjYWxsYmFjazogKGRhdGE6IERhdGFUeXBlKSA9PiB2b2lkKTogQXBpUmVzcG9uc2U8RGF0YVR5cGU+IHtcbiAgICAgICAgaWYgKHRoaXMuc3RhdHVzID09PSAnb2snKSB7XG4gICAgICAgICAgICBjYWxsYmFjayh0aGlzLmRhdGEpXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXNcbiAgICB9XG5cbiAgICBvbk5vdE9rKGNhbGxiYWNrOiAobWVzc2FnZTogc3RyaW5nLCBkYXRhOiBEYXRhVHlwZSkgPT4gdm9pZCk6IEFwaVJlc3BvbnNlPERhdGFUeXBlPiB7XG4gICAgICAgIGlmICh0aGlzLnN0YXR1cyA9PT0gJ25vdCBvaycpIHtcbiAgICAgICAgICAgIGNhbGxiYWNrKHRoaXMubWVzc2FnZSwgdGhpcy5kYXRhKVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzXG4gICAgfVxuXG4gICAgb25FcnJvcihjYWxsYmFjazogKCkgPT4gdm9pZCk6IEFwaVJlc3BvbnNlPERhdGFUeXBlPiB7XG4gICAgICAgIGlmICh0aGlzLnN0YXR1cyA9PT0gJ2Vycm9yJykge1xuICAgICAgICAgICAgY2FsbGJhY2soKVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzXG4gICAgfVxufSJdfQ==
@@ -0,0 +1,14 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class AuthService {
4
+ constructor() { }
5
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AuthService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
6
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AuthService, providedIn: 'root' }); }
7
+ }
8
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AuthService, decorators: [{
9
+ type: Injectable,
10
+ args: [{
11
+ providedIn: 'root'
12
+ }]
13
+ }], ctorParameters: function () { return []; } });
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbmd4LXN0b25lc2NyaXB0cGhwLWNsaWVudC9wcm9qZWN0cy9wcm9nYWxheHktY2xpZW50LWNvbW1vbi9zcmMvbGliL2F1dGguc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUszQyxNQUFNLE9BQU8sV0FBVztJQUV0QixnQkFBZ0IsQ0FBQzsrR0FGTixXQUFXO21IQUFYLFdBQVcsY0FGVixNQUFNOzs0RkFFUCxXQUFXO2tCQUh2QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQXV0aFNlcnZpY2Uge1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG59XG4iXX0=
@@ -0,0 +1,14 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class DbService {
4
+ constructor() { }
5
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
6
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbService, providedIn: 'root' }); }
7
+ }
8
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbService, decorators: [{
9
+ type: Injectable,
10
+ args: [{
11
+ providedIn: 'root'
12
+ }]
13
+ }], ctorParameters: function () { return []; } });
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL25neC1zdG9uZXNjcmlwdHBocC1jbGllbnQvcHJvamVjdHMvcHJvZ2FsYXh5LWNsaWVudC1jb21tb24vc3JjL2xpYi9kYi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSzNDLE1BQU0sT0FBTyxTQUFTO0lBRXBCLGdCQUFnQixDQUFDOytHQUZOLFNBQVM7bUhBQVQsU0FBUyxjQUZSLE1BQU07OzRGQUVQLFNBQVM7a0JBSHJCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBEYlNlcnZpY2Uge1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG59XG4iXX0=
@@ -0,0 +1,19 @@
1
+ export class MyEnvironmentModel {
2
+ constructor() {
3
+ this.production = true;
4
+ this.firebase = {
5
+ projectId: '',
6
+ appId: '',
7
+ databaseURL: '',
8
+ storageBucket: '',
9
+ locationId: '',
10
+ apiKey: '',
11
+ authDomain: '',
12
+ messagingSenderId: '',
13
+ measurementId: ''
14
+ };
15
+ this.apiServer = { host: '' };
16
+ this.chatServer = { host: '' };
17
+ }
18
+ }
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXktZW52aXJvbm1lbnQubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9uZ3gtc3RvbmVzY3JpcHRwaHAtY2xpZW50L3Byb2plY3RzL3Byb2dhbGF4eS1jbGllbnQtY29tbW9uL3NyYy9saWIvbXktZW52aXJvbm1lbnQubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLGtCQUFrQjtJQUEvQjtRQUNJLGVBQVUsR0FBWSxJQUFJLENBQUE7UUFDMUIsYUFBUSxHQVVKO1lBQ0ksU0FBUyxFQUFFLEVBQUU7WUFDYixLQUFLLEVBQUUsRUFBRTtZQUNULFdBQVcsRUFBRSxFQUFFO1lBQ2YsYUFBYSxFQUFFLEVBQUU7WUFDakIsVUFBVSxFQUFFLEVBQUU7WUFDZCxNQUFNLEVBQUUsRUFBRTtZQUNWLFVBQVUsRUFBRSxFQUFFO1lBQ2QsaUJBQWlCLEVBQUUsRUFBRTtZQUNyQixhQUFhLEVBQUUsRUFBRTtTQUNwQixDQUFBO1FBQ0wsY0FBUyxHQUVMLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFBO1FBQ2hCLGVBQVUsR0FFTixFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQztJQUNyQixDQUFDO0NBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgTXlFbnZpcm9ubWVudE1vZGVsIHtcbiAgICBwcm9kdWN0aW9uOiBib29sZWFuID0gdHJ1ZVxuICAgIGZpcmViYXNlOiB7XG4gICAgICAgIHByb2plY3RJZDogc3RyaW5nXG4gICAgICAgIGFwcElkOiBzdHJpbmdcbiAgICAgICAgZGF0YWJhc2VVUkw6IHN0cmluZ1xuICAgICAgICBzdG9yYWdlQnVja2V0OiBzdHJpbmdcbiAgICAgICAgbG9jYXRpb25JZDogc3RyaW5nXG4gICAgICAgIGFwaUtleTogc3RyaW5nXG4gICAgICAgIGF1dGhEb21haW46IHN0cmluZ1xuICAgICAgICBtZXNzYWdpbmdTZW5kZXJJZDogc3RyaW5nXG4gICAgICAgIG1lYXN1cmVtZW50SWQ6IHN0cmluZ1xuICAgIH0gPSB7XG4gICAgICAgICAgICBwcm9qZWN0SWQ6ICcnLFxuICAgICAgICAgICAgYXBwSWQ6ICcnLFxuICAgICAgICAgICAgZGF0YWJhc2VVUkw6ICcnLFxuICAgICAgICAgICAgc3RvcmFnZUJ1Y2tldDogJycsXG4gICAgICAgICAgICBsb2NhdGlvbklkOiAnJyxcbiAgICAgICAgICAgIGFwaUtleTogJycsXG4gICAgICAgICAgICBhdXRoRG9tYWluOiAnJyxcbiAgICAgICAgICAgIG1lc3NhZ2luZ1NlbmRlcklkOiAnJyxcbiAgICAgICAgICAgIG1lYXN1cmVtZW50SWQ6ICcnXG4gICAgICAgIH1cbiAgICBhcGlTZXJ2ZXI6IHtcbiAgICAgICAgaG9zdDogc3RyaW5nXG4gICAgfSA9IHsgaG9zdDogJycgfVxuICAgIGNoYXRTZXJ2ZXI6IHtcbiAgICAgICAgaG9zdDogc3RyaW5nXG4gICAgfSA9IHsgaG9zdDogJycgfTtcbn0iXX0=
@@ -0,0 +1,27 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { MyEnvironmentModel } from '../my-environment.model';
4
+ import * as i0 from "@angular/core";
5
+ export class ProgalaxyClientCommonModule {
6
+ static forRoot(environment) {
7
+ return {
8
+ ngModule: ProgalaxyClientCommonModule,
9
+ providers: [
10
+ { provide: MyEnvironmentModel, useValue: environment }
11
+ ]
12
+ };
13
+ }
14
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ProgalaxyClientCommonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
15
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: ProgalaxyClientCommonModule, imports: [CommonModule] }); }
16
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ProgalaxyClientCommonModule, imports: [CommonModule] }); }
17
+ }
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ProgalaxyClientCommonModule, decorators: [{
19
+ type: NgModule,
20
+ args: [{
21
+ declarations: [],
22
+ imports: [
23
+ CommonModule
24
+ ]
25
+ }]
26
+ }] });
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ2FsYXh5LWNsaWVudC1jb21tb24ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbmd4LXN0b25lc2NyaXB0cGhwLWNsaWVudC9wcm9qZWN0cy9wcm9nYWxheHktY2xpZW50LWNvbW1vbi9zcmMvbGliL3Byb2dhbGF4eS1jbGllbnQtY29tbW9uL3Byb2dhbGF4eS1jbGllbnQtY29tbW9uLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7O0FBVTdELE1BQU0sT0FBTywyQkFBMkI7SUFDN0IsTUFBTSxDQUFDLE9BQU8sQ0FBQyxXQUErQjtRQUNqRCxPQUFPO1lBQ0gsUUFBUSxFQUFFLDJCQUEyQjtZQUNyQyxTQUFTLEVBQUU7Z0JBQ1AsRUFBRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRTthQUN6RDtTQUNKLENBQUE7SUFDTCxDQUFDOytHQVJRLDJCQUEyQjtnSEFBM0IsMkJBQTJCLFlBSGhDLFlBQVk7Z0hBR1AsMkJBQTJCLFlBSGhDLFlBQVk7OzRGQUdQLDJCQUEyQjtrQkFOdkMsUUFBUTttQkFBQztvQkFDTixZQUFZLEVBQUUsRUFBRTtvQkFDaEIsT0FBTyxFQUFFO3dCQUNMLFlBQVk7cUJBQ2Y7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE15RW52aXJvbm1lbnRNb2RlbCB9IGZyb20gJy4uL215LWVudmlyb25tZW50Lm1vZGVsJztcblxuXG5cbkBOZ01vZHVsZSh7XG4gICAgZGVjbGFyYXRpb25zOiBbXSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgUHJvZ2FsYXh5Q2xpZW50Q29tbW9uTW9kdWxlIHtcbiAgICBwdWJsaWMgc3RhdGljIGZvclJvb3QoZW52aXJvbm1lbnQ6IE15RW52aXJvbm1lbnRNb2RlbCk6IE1vZHVsZVdpdGhQcm92aWRlcnM8UHJvZ2FsYXh5Q2xpZW50Q29tbW9uTW9kdWxlPiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBuZ01vZHVsZTogUHJvZ2FsYXh5Q2xpZW50Q29tbW9uTW9kdWxlLFxuICAgICAgICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgICAgICAgICAgeyBwcm92aWRlOiBNeUVudmlyb25tZW50TW9kZWwsIHVzZVZhbHVlOiBlbnZpcm9ubWVudCB9XG4gICAgICAgICAgICBdXG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,23 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { BehaviorSubject } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ export class SigninStatusService {
5
+ constructor() {
6
+ this.status = new BehaviorSubject(false);
7
+ }
8
+ signedOut() {
9
+ this.status.next(false);
10
+ }
11
+ signedIn() {
12
+ this.status.next(true);
13
+ }
14
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SigninStatusService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
15
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SigninStatusService, providedIn: 'root' }); }
16
+ }
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SigninStatusService, decorators: [{
18
+ type: Injectable,
19
+ args: [{
20
+ providedIn: 'root'
21
+ }]
22
+ }], ctorParameters: function () { return []; } });
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmluLXN0YXR1cy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbmd4LXN0b25lc2NyaXB0cGhwLWNsaWVudC9wcm9qZWN0cy9wcm9nYWxheHktY2xpZW50LWNvbW1vbi9zcmMvbGliL3NpZ25pbi1zdGF0dXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBS3ZDLE1BQU0sT0FBTyxtQkFBbUI7SUFHNUI7UUFDSSxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFBO0lBQ3JELENBQUM7SUFFRCxTQUFTO1FBQ0wsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDM0IsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUMxQixDQUFDOytHQWJRLG1CQUFtQjttSEFBbkIsbUJBQW1CLGNBRmhCLE1BQU07OzRGQUVULG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBTaWduaW5TdGF0dXNTZXJ2aWNlIHtcbiAgICBwdWJsaWMgc3RhdHVzOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj5cblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLnN0YXR1cyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpXG4gICAgfVxuXG4gICAgc2lnbmVkT3V0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnN0YXR1cy5uZXh0KGZhbHNlKVxuICAgIH1cblxuICAgIHNpZ25lZEluKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnN0YXR1cy5uZXh0KHRydWUpXG4gICAgfVxufVxuIl19
@@ -0,0 +1,55 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class TokenService {
4
+ constructor() {
5
+ this.accessToken = '';
6
+ this.refreshToken = '';
7
+ this.lsAccessTokenKey = 'progalaxyapi_access_token';
8
+ this.lsRefreshTokenKey = 'progalaxyapi_refresh_token';
9
+ }
10
+ setTokens(accessToken, refreshToken) {
11
+ this.accessToken = accessToken;
12
+ this.refreshToken = refreshToken;
13
+ localStorage.setItem(this.lsAccessTokenKey, accessToken);
14
+ localStorage.setItem(this.lsRefreshTokenKey, refreshToken);
15
+ }
16
+ getAccessToken() {
17
+ if (this.accessToken) {
18
+ return this.accessToken;
19
+ }
20
+ const storedAccessToken = localStorage.getItem(this.lsAccessTokenKey);
21
+ if (storedAccessToken) {
22
+ return storedAccessToken;
23
+ }
24
+ else {
25
+ return '';
26
+ }
27
+ }
28
+ getRefreshToken() {
29
+ if (this.refreshToken) {
30
+ return this.refreshToken;
31
+ }
32
+ const storedRefreshToken = localStorage.getItem(this.lsRefreshTokenKey);
33
+ if (storedRefreshToken) {
34
+ return storedRefreshToken;
35
+ }
36
+ else {
37
+ return '';
38
+ }
39
+ }
40
+ clear() {
41
+ this.accessToken = '';
42
+ this.refreshToken = '';
43
+ localStorage.removeItem(this.lsAccessTokenKey);
44
+ localStorage.removeItem(this.lsRefreshTokenKey);
45
+ }
46
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TokenService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
47
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TokenService, providedIn: 'root' }); }
48
+ }
49
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TokenService, decorators: [{
50
+ type: Injectable,
51
+ args: [{
52
+ providedIn: 'root'
53
+ }]
54
+ }], ctorParameters: function () { return []; } });
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW4uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL25neC1zdG9uZXNjcmlwdHBocC1jbGllbnQvcHJvamVjdHMvcHJvZ2FsYXh5LWNsaWVudC1jb21tb24vc3JjL2xpYi90b2tlbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSzNDLE1BQU0sT0FBTyxZQUFZO0lBT3JCO1FBTlEsZ0JBQVcsR0FBRyxFQUFFLENBQUE7UUFDaEIsaUJBQVksR0FBRyxFQUFFLENBQUE7UUFFakIscUJBQWdCLEdBQUcsMkJBQTJCLENBQUE7UUFDOUMsc0JBQWlCLEdBQUcsNEJBQTRCLENBQUE7SUFFeEMsQ0FBQztJQUVqQixTQUFTLENBQUMsV0FBbUIsRUFBRSxZQUFvQjtRQUMvQyxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQTtRQUM5QixJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQTtRQUNoQyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxXQUFXLENBQUMsQ0FBQTtRQUN4RCxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxZQUFZLENBQUMsQ0FBQTtJQUM5RCxDQUFDO0lBRUQsY0FBYztRQUNWLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNsQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUE7U0FDMUI7UUFFRCxNQUFNLGlCQUFpQixHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUE7UUFDckUsSUFBSSxpQkFBaUIsRUFBRTtZQUNuQixPQUFPLGlCQUFpQixDQUFBO1NBQzNCO2FBQU07WUFDSCxPQUFPLEVBQUUsQ0FBQTtTQUNaO0lBQ0wsQ0FBQztJQUVELGVBQWU7UUFDWCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDbkIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFBO1NBQzNCO1FBRUQsTUFBTSxrQkFBa0IsR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO1FBQ3ZFLElBQUksa0JBQWtCLEVBQUU7WUFDcEIsT0FBTyxrQkFBa0IsQ0FBQTtTQUM1QjthQUFNO1lBQ0gsT0FBTyxFQUFFLENBQUE7U0FDWjtJQUNMLENBQUM7SUFFRCxLQUFLO1FBQ0QsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUE7UUFDckIsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUE7UUFDdEIsWUFBWSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtRQUM5QyxZQUFZLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO0lBQ25ELENBQUM7K0dBL0NRLFlBQVk7bUhBQVosWUFBWSxjQUZULE1BQU07OzRGQUVULFlBQVk7a0JBSHhCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFRva2VuU2VydmljZSB7XG4gICAgcHJpdmF0ZSBhY2Nlc3NUb2tlbiA9ICcnXG4gICAgcHJpdmF0ZSByZWZyZXNoVG9rZW4gPSAnJ1xuXG4gICAgcHJpdmF0ZSBsc0FjY2Vzc1Rva2VuS2V5ID0gJ3Byb2dhbGF4eWFwaV9hY2Nlc3NfdG9rZW4nXG4gICAgcHJpdmF0ZSBsc1JlZnJlc2hUb2tlbktleSA9ICdwcm9nYWxheHlhcGlfcmVmcmVzaF90b2tlbidcblxuICAgIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgICBzZXRUb2tlbnMoYWNjZXNzVG9rZW46IHN0cmluZywgcmVmcmVzaFRva2VuOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5hY2Nlc3NUb2tlbiA9IGFjY2Vzc1Rva2VuXG4gICAgICAgIHRoaXMucmVmcmVzaFRva2VuID0gcmVmcmVzaFRva2VuXG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMubHNBY2Nlc3NUb2tlbktleSwgYWNjZXNzVG9rZW4pXG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMubHNSZWZyZXNoVG9rZW5LZXksIHJlZnJlc2hUb2tlbilcbiAgICB9XG5cbiAgICBnZXRBY2Nlc3NUb2tlbigpIHtcbiAgICAgICAgaWYgKHRoaXMuYWNjZXNzVG9rZW4pIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmFjY2Vzc1Rva2VuXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzdG9yZWRBY2Nlc3NUb2tlbiA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMubHNBY2Nlc3NUb2tlbktleSlcbiAgICAgICAgaWYgKHN0b3JlZEFjY2Vzc1Rva2VuKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RvcmVkQWNjZXNzVG9rZW5cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiAnJ1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0UmVmcmVzaFRva2VuKCkge1xuICAgICAgICBpZiAodGhpcy5yZWZyZXNoVG9rZW4pIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnJlZnJlc2hUb2tlblxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc3RvcmVkUmVmcmVzaFRva2VuID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5sc1JlZnJlc2hUb2tlbktleSlcbiAgICAgICAgaWYgKHN0b3JlZFJlZnJlc2hUb2tlbikge1xuICAgICAgICAgICAgcmV0dXJuIHN0b3JlZFJlZnJlc2hUb2tlblxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuICcnXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjbGVhcigpIHtcbiAgICAgICAgdGhpcy5hY2Nlc3NUb2tlbiA9ICcnXG4gICAgICAgIHRoaXMucmVmcmVzaFRva2VuID0gJydcbiAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0odGhpcy5sc0FjY2Vzc1Rva2VuS2V5KVxuICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSh0aGlzLmxzUmVmcmVzaFRva2VuS2V5KVxuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ2FsYXh5ZWxhYnMtbmd4LXN0b25lc2NyaXB0cGhwLWNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL25neC1zdG9uZXNjcmlwdHBocC1jbGllbnQvcHJvamVjdHMvcHJvZ2FsYXh5LWNsaWVudC1jb21tb24vc3JjL3Byb2dhbGF4eWVsYWJzLW5neC1zdG9uZXNjcmlwdHBocC1jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
@@ -0,0 +1,12 @@
1
+ /*
2
+ * Public API Surface of progalaxy-client-common
3
+ */
4
+ export * from './lib/api-connection.service';
5
+ export * from './lib/auth.service';
6
+ export * from './lib/db.service';
7
+ export * from './lib/signin-status.service';
8
+ export * from './lib/token.service';
9
+ export * from './lib/api-response.model';
10
+ export * from './lib/my-environment.model';
11
+ export * from './lib/progalaxy-client-common/progalaxy-client-common.module';
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL25neC1zdG9uZXNjcmlwdHBocC1jbGllbnQvcHJvamVjdHMvcHJvZ2FsYXh5LWNsaWVudC1jb21tb24vc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsOERBQThELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIHByb2dhbGF4eS1jbGllbnQtY29tbW9uXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBpLWNvbm5lY3Rpb24uc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hdXRoLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGIuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaWduaW4tc3RhdHVzLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdG9rZW4uc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcGktcmVzcG9uc2UubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbXktZW52aXJvbm1lbnQubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcHJvZ2FsYXh5LWNsaWVudC1jb21tb24vcHJvZ2FsYXh5LWNsaWVudC1jb21tb24ubW9kdWxlJztcbiJdfQ==
@@ -0,0 +1,343 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Injectable, NgModule } from '@angular/core';
3
+ import { BehaviorSubject } from 'rxjs';
4
+ import { CommonModule } from '@angular/common';
5
+
6
+ class ApiResponse {
7
+ constructor(status, data = {}, message = '') {
8
+ this.status = status;
9
+ this.data = data;
10
+ this.message = message;
11
+ }
12
+ onOk(callback) {
13
+ if (this.status === 'ok') {
14
+ callback(this.data);
15
+ }
16
+ return this;
17
+ }
18
+ onNotOk(callback) {
19
+ if (this.status === 'not ok') {
20
+ callback(this.message, this.data);
21
+ }
22
+ return this;
23
+ }
24
+ onError(callback) {
25
+ if (this.status === 'error') {
26
+ callback();
27
+ }
28
+ return this;
29
+ }
30
+ }
31
+
32
+ class TokenService {
33
+ constructor() {
34
+ this.accessToken = '';
35
+ this.refreshToken = '';
36
+ this.lsAccessTokenKey = 'progalaxyapi_access_token';
37
+ this.lsRefreshTokenKey = 'progalaxyapi_refresh_token';
38
+ }
39
+ setTokens(accessToken, refreshToken) {
40
+ this.accessToken = accessToken;
41
+ this.refreshToken = refreshToken;
42
+ localStorage.setItem(this.lsAccessTokenKey, accessToken);
43
+ localStorage.setItem(this.lsRefreshTokenKey, refreshToken);
44
+ }
45
+ getAccessToken() {
46
+ if (this.accessToken) {
47
+ return this.accessToken;
48
+ }
49
+ const storedAccessToken = localStorage.getItem(this.lsAccessTokenKey);
50
+ if (storedAccessToken) {
51
+ return storedAccessToken;
52
+ }
53
+ else {
54
+ return '';
55
+ }
56
+ }
57
+ getRefreshToken() {
58
+ if (this.refreshToken) {
59
+ return this.refreshToken;
60
+ }
61
+ const storedRefreshToken = localStorage.getItem(this.lsRefreshTokenKey);
62
+ if (storedRefreshToken) {
63
+ return storedRefreshToken;
64
+ }
65
+ else {
66
+ return '';
67
+ }
68
+ }
69
+ clear() {
70
+ this.accessToken = '';
71
+ this.refreshToken = '';
72
+ localStorage.removeItem(this.lsAccessTokenKey);
73
+ localStorage.removeItem(this.lsRefreshTokenKey);
74
+ }
75
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TokenService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
76
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TokenService, providedIn: 'root' }); }
77
+ }
78
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TokenService, decorators: [{
79
+ type: Injectable,
80
+ args: [{
81
+ providedIn: 'root'
82
+ }]
83
+ }], ctorParameters: function () { return []; } });
84
+
85
+ class SigninStatusService {
86
+ constructor() {
87
+ this.status = new BehaviorSubject(false);
88
+ }
89
+ signedOut() {
90
+ this.status.next(false);
91
+ }
92
+ signedIn() {
93
+ this.status.next(true);
94
+ }
95
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SigninStatusService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
96
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SigninStatusService, providedIn: 'root' }); }
97
+ }
98
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SigninStatusService, decorators: [{
99
+ type: Injectable,
100
+ args: [{
101
+ providedIn: 'root'
102
+ }]
103
+ }], ctorParameters: function () { return []; } });
104
+
105
+ class MyEnvironmentModel {
106
+ constructor() {
107
+ this.production = true;
108
+ this.firebase = {
109
+ projectId: '',
110
+ appId: '',
111
+ databaseURL: '',
112
+ storageBucket: '',
113
+ locationId: '',
114
+ apiKey: '',
115
+ authDomain: '',
116
+ messagingSenderId: '',
117
+ measurementId: ''
118
+ };
119
+ this.apiServer = { host: '' };
120
+ this.chatServer = { host: '' };
121
+ }
122
+ }
123
+
124
+ class ApiConnectionService {
125
+ constructor(tokens, signinStatus, environment) {
126
+ this.tokens = tokens;
127
+ this.signinStatus = signinStatus;
128
+ this.environment = environment;
129
+ this.host = ''; // contains trailing slash
130
+ this.accessToken = '';
131
+ this.host = environment.apiServer.host;
132
+ }
133
+ async request(url, options, data) {
134
+ try {
135
+ if (data !== null) {
136
+ const body = JSON.stringify(data);
137
+ if (body) {
138
+ options.body = body;
139
+ }
140
+ else {
141
+ options.body = {};
142
+ }
143
+ }
144
+ const accessTokenIncluded = this.includeAccessToken(options);
145
+ let response = await fetch(url, options);
146
+ if ((response.status === 401) && accessTokenIncluded) {
147
+ response = await this.refreshAccessTokenAndRetry(url, options, response);
148
+ }
149
+ if (response.ok) {
150
+ const json = await (response.json());
151
+ return (new ApiResponse(json.status, json.data, json.message));
152
+ }
153
+ if (response.status === 401) {
154
+ this.signinStatus.signedOut();
155
+ }
156
+ return this.handleError(response);
157
+ }
158
+ catch (error) {
159
+ return this.handleError(error);
160
+ }
161
+ }
162
+ handleError(error) {
163
+ console.error(`Backend returned code ${error.status}, ` +
164
+ `full error: `, error);
165
+ return new ApiResponse('error');
166
+ }
167
+ async get(endpoint, queryParamsObj) {
168
+ const url = this.host + endpoint.replace(/^\/+/, '') + this.buildQueryString(queryParamsObj);
169
+ const fetchOptions = {
170
+ mode: 'cors',
171
+ redirect: 'error'
172
+ };
173
+ return this.request(url, fetchOptions, null);
174
+ }
175
+ async post(pathWithQueryParams, data) {
176
+ const url = this.host + pathWithQueryParams.replace(/^\/+/, '');
177
+ const fetchOptions = {
178
+ method: 'POST',
179
+ mode: 'cors',
180
+ redirect: 'error',
181
+ headers: {
182
+ 'Content-Type': 'application/json'
183
+ },
184
+ body: JSON.stringify(data)
185
+ };
186
+ return this.request(url, fetchOptions, data);
187
+ }
188
+ // async postFormWithFiles(pathWithQueryParams: string, formData: FormData): Promise<ApiResponse | null> {
189
+ // const url = this.host + pathWithQueryParams.replace(/^\/+/, '')
190
+ // try {
191
+ // const fetchOptions: RequestInit = {
192
+ // method: 'POST',
193
+ // mode: 'cors',
194
+ // redirect: 'error',
195
+ // body: formData
196
+ // }
197
+ // const accessTokenIncluded = this.includeAccessToken(fetchOptions)
198
+ // let response: Response = await fetch(url, fetchOptions)
199
+ // if ((response.status === 401) && accessTokenIncluded) {
200
+ // response = await this.refreshAccessTokenAndRetry(url, fetchOptions, response)
201
+ // }
202
+ // if (response.ok) {
203
+ // return ((await (response.json()) as ApiResponse))
204
+ // }
205
+ // return this.handleError(response)
206
+ // } catch (error) {
207
+ // return this.handleError(error)
208
+ // }
209
+ // }
210
+ includeAccessToken(options) {
211
+ this.accessToken = this.tokens.getAccessToken();
212
+ if (!this.accessToken) {
213
+ return false;
214
+ }
215
+ if (!options.headers) {
216
+ options.headers = {};
217
+ }
218
+ options.headers['Authorization'] = 'Bearer ' + this.accessToken;
219
+ return true;
220
+ }
221
+ async refreshAccessTokenAndRetry(url, fetchOptions, response) {
222
+ const refreshStatusOk = await this.refreshAccessToken();
223
+ if (!refreshStatusOk) {
224
+ return response;
225
+ }
226
+ fetchOptions.headers['Authorization'] = 'Bearer ' + this.accessToken;
227
+ response = await fetch(url, fetchOptions);
228
+ return response;
229
+ }
230
+ async refreshAccessToken() {
231
+ const refreshToken = this.tokens.getRefreshToken();
232
+ if (!refreshToken) {
233
+ return false;
234
+ }
235
+ const refreshTokenUrl = this.host + 'user/refresh_access';
236
+ let refreshTokenResponse = await fetch(refreshTokenUrl, {
237
+ method: 'POST',
238
+ mode: 'cors',
239
+ redirect: 'error',
240
+ headers: {
241
+ 'Content-Type': 'application/json'
242
+ },
243
+ body: JSON.stringify({
244
+ access_token: this.accessToken,
245
+ refresh_token: refreshToken
246
+ })
247
+ });
248
+ if (!refreshTokenResponse.ok) {
249
+ this.accessToken = '';
250
+ this.tokens.clear();
251
+ return false;
252
+ }
253
+ let refreshAccessData = await refreshTokenResponse.json();
254
+ if (!refreshAccessData) {
255
+ return false;
256
+ }
257
+ this.tokens.setTokens(refreshAccessData.data.access_token, refreshToken);
258
+ this.accessToken = refreshAccessData.data.access_token;
259
+ return true;
260
+ }
261
+ buildQueryString(options) {
262
+ if (options === undefined) {
263
+ return '';
264
+ }
265
+ const array = [];
266
+ for (let key in options) {
267
+ if (options.hasOwnProperty(key) && (options[key] !== null) && (options[key] !== undefined)) {
268
+ array.push(encodeURIComponent(key) + "=" + encodeURIComponent(options[key]));
269
+ }
270
+ }
271
+ const str = array.join('&');
272
+ if (str !== '') {
273
+ return '?' + str;
274
+ }
275
+ return '';
276
+ }
277
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ApiConnectionService, deps: [{ token: TokenService }, { token: SigninStatusService }, { token: MyEnvironmentModel }], target: i0.ɵɵFactoryTarget.Injectable }); }
278
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ApiConnectionService, providedIn: 'root' }); }
279
+ }
280
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ApiConnectionService, decorators: [{
281
+ type: Injectable,
282
+ args: [{
283
+ providedIn: 'root'
284
+ }]
285
+ }], ctorParameters: function () { return [{ type: TokenService }, { type: SigninStatusService }, { type: MyEnvironmentModel }]; } });
286
+
287
+ class AuthService {
288
+ constructor() { }
289
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AuthService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
290
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AuthService, providedIn: 'root' }); }
291
+ }
292
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AuthService, decorators: [{
293
+ type: Injectable,
294
+ args: [{
295
+ providedIn: 'root'
296
+ }]
297
+ }], ctorParameters: function () { return []; } });
298
+
299
+ class DbService {
300
+ constructor() { }
301
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
302
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbService, providedIn: 'root' }); }
303
+ }
304
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbService, decorators: [{
305
+ type: Injectable,
306
+ args: [{
307
+ providedIn: 'root'
308
+ }]
309
+ }], ctorParameters: function () { return []; } });
310
+
311
+ class ProgalaxyClientCommonModule {
312
+ static forRoot(environment) {
313
+ return {
314
+ ngModule: ProgalaxyClientCommonModule,
315
+ providers: [
316
+ { provide: MyEnvironmentModel, useValue: environment }
317
+ ]
318
+ };
319
+ }
320
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ProgalaxyClientCommonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
321
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: ProgalaxyClientCommonModule, imports: [CommonModule] }); }
322
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ProgalaxyClientCommonModule, imports: [CommonModule] }); }
323
+ }
324
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ProgalaxyClientCommonModule, decorators: [{
325
+ type: NgModule,
326
+ args: [{
327
+ declarations: [],
328
+ imports: [
329
+ CommonModule
330
+ ]
331
+ }]
332
+ }] });
333
+
334
+ /*
335
+ * Public API Surface of progalaxy-client-common
336
+ */
337
+
338
+ /**
339
+ * Generated bundle index. Do not edit.
340
+ */
341
+
342
+ export { ApiConnectionService, ApiResponse, AuthService, DbService, MyEnvironmentModel, ProgalaxyClientCommonModule, SigninStatusService, TokenService };
343
+ //# sourceMappingURL=progalaxyelabs-ngx-stonescriptphp-client.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"progalaxyelabs-ngx-stonescriptphp-client.mjs","sources":["../../ngx-stonescriptphp-client/projects/progalaxy-client-common/src/lib/api-response.model.ts","../../ngx-stonescriptphp-client/projects/progalaxy-client-common/src/lib/token.service.ts","../../ngx-stonescriptphp-client/projects/progalaxy-client-common/src/lib/signin-status.service.ts","../../ngx-stonescriptphp-client/projects/progalaxy-client-common/src/lib/my-environment.model.ts","../../ngx-stonescriptphp-client/projects/progalaxy-client-common/src/lib/api-connection.service.ts","../../ngx-stonescriptphp-client/projects/progalaxy-client-common/src/lib/auth.service.ts","../../ngx-stonescriptphp-client/projects/progalaxy-client-common/src/lib/db.service.ts","../../ngx-stonescriptphp-client/projects/progalaxy-client-common/src/lib/progalaxy-client-common/progalaxy-client-common.module.ts","../../ngx-stonescriptphp-client/projects/progalaxy-client-common/src/public-api.ts","../../ngx-stonescriptphp-client/projects/progalaxy-client-common/src/progalaxyelabs-ngx-stonescriptphp-client.ts"],"sourcesContent":["export class ApiResponse<DataType> {\n private status: string\n private data: any\n private message: string\n\n constructor(status: string, data: any = {}, message: string = '') {\n this.status = status\n this.data = data\n this.message = message\n }\n\n onOk(callback: (data: DataType) => void): ApiResponse<DataType> {\n if (this.status === 'ok') {\n callback(this.data)\n }\n return this\n }\n\n onNotOk(callback: (message: string, data: DataType) => void): ApiResponse<DataType> {\n if (this.status === 'not ok') {\n callback(this.message, this.data)\n }\n return this\n }\n\n onError(callback: () => void): ApiResponse<DataType> {\n if (this.status === 'error') {\n callback()\n }\n return this\n }\n}","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TokenService {\n private accessToken = ''\n private refreshToken = ''\n\n private lsAccessTokenKey = 'progalaxyapi_access_token'\n private lsRefreshTokenKey = 'progalaxyapi_refresh_token'\n\n constructor() { }\n\n setTokens(accessToken: string, refreshToken: string) {\n this.accessToken = accessToken\n this.refreshToken = refreshToken\n localStorage.setItem(this.lsAccessTokenKey, accessToken)\n localStorage.setItem(this.lsRefreshTokenKey, refreshToken)\n }\n\n getAccessToken() {\n if (this.accessToken) {\n return this.accessToken\n }\n\n const storedAccessToken = localStorage.getItem(this.lsAccessTokenKey)\n if (storedAccessToken) {\n return storedAccessToken\n } else {\n return ''\n }\n }\n\n getRefreshToken() {\n if (this.refreshToken) {\n return this.refreshToken\n }\n\n const storedRefreshToken = localStorage.getItem(this.lsRefreshTokenKey)\n if (storedRefreshToken) {\n return storedRefreshToken\n } else {\n return ''\n }\n }\n\n clear() {\n this.accessToken = ''\n this.refreshToken = ''\n localStorage.removeItem(this.lsAccessTokenKey)\n localStorage.removeItem(this.lsRefreshTokenKey)\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SigninStatusService {\n public status: BehaviorSubject<boolean>\n\n constructor() {\n this.status = new BehaviorSubject<boolean>(false)\n }\n\n signedOut(): void {\n this.status.next(false)\n }\n\n signedIn(): void {\n this.status.next(true)\n }\n}\n","export class MyEnvironmentModel {\n production: boolean = true\n firebase: {\n projectId: string\n appId: string\n databaseURL: string\n storageBucket: string\n locationId: string\n apiKey: string\n authDomain: string\n messagingSenderId: string\n measurementId: string\n } = {\n projectId: '',\n appId: '',\n databaseURL: '',\n storageBucket: '',\n locationId: '',\n apiKey: '',\n authDomain: '',\n messagingSenderId: '',\n measurementId: ''\n }\n apiServer: {\n host: string\n } = { host: '' }\n chatServer: {\n host: string\n } = { host: '' };\n}","import { Injectable } from '@angular/core';\nimport { TokenService } from './token.service';\nimport { SigninStatusService } from './signin-status.service';\nimport { ApiResponse } from './api-response.model';\nimport { MyEnvironmentModel } from './my-environment.model';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiConnectionService {\n\n private host = '' // contains trailing slash\n\n private accessToken = ''\n\n constructor(\n private tokens: TokenService,\n private signinStatus: SigninStatusService,\n private environment: MyEnvironmentModel\n ) {\n this.host = environment.apiServer.host\n }\n\n\n private async request<DataType>(url: string, options: any, data: any | null): Promise<ApiResponse<DataType>> {\n try {\n \n if(data !== null) {\n const body = JSON.stringify(data)\n if(body) {\n options.body = body\n } else {\n options.body = {}\n }\n }\n\n const accessTokenIncluded = this.includeAccessToken(options)\n\n let response: Response = await fetch(url, options)\n\n if ((response.status === 401) && accessTokenIncluded) {\n response = await this.refreshAccessTokenAndRetry(url, options, response)\n }\n\n if (response.ok) {\n const json = await (response.json())\n return (new ApiResponse<DataType>(json.status, json.data, json.message))\n }\n\n if (response.status === 401) {\n this.signinStatus.signedOut()\n }\n\n return this.handleError<DataType>(response)\n } catch (error) {\n return this.handleError<DataType>(error)\n }\n }\n\n private handleError<DataType>(error: any): ApiResponse<DataType> {\n console.error(\n `Backend returned code ${error.status}, ` +\n `full error: `, error);\n return new ApiResponse<DataType>('error')\n }\n\n async get<DataType>(endpoint: string, queryParamsObj?: any ): Promise<ApiResponse<DataType>> {\n const url = this.host + endpoint.replace(/^\\/+/, '') + this.buildQueryString(queryParamsObj)\n const fetchOptions: RequestInit = {\n mode: 'cors',\n redirect: 'error'\n }\n return this.request(url, fetchOptions, null)\n }\n\n async post<DataType>(pathWithQueryParams: string, data: any): Promise<ApiResponse<DataType>> {\n const url = this.host + pathWithQueryParams.replace(/^\\/+/, '')\n const fetchOptions: RequestInit = {\n method: 'POST',\n mode: 'cors',\n redirect: 'error',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(data)\n }\n return this.request(url, fetchOptions, data) \n }\n\n // async postFormWithFiles(pathWithQueryParams: string, formData: FormData): Promise<ApiResponse | null> {\n // const url = this.host + pathWithQueryParams.replace(/^\\/+/, '')\n // try {\n // const fetchOptions: RequestInit = {\n // method: 'POST',\n // mode: 'cors',\n // redirect: 'error',\n // body: formData\n // }\n\n // const accessTokenIncluded = this.includeAccessToken(fetchOptions)\n\n // let response: Response = await fetch(url, fetchOptions)\n\n // if ((response.status === 401) && accessTokenIncluded) {\n // response = await this.refreshAccessTokenAndRetry(url, fetchOptions, response)\n // }\n\n // if (response.ok) {\n // return ((await (response.json()) as ApiResponse))\n // }\n\n // return this.handleError(response)\n // } catch (error) {\n // return this.handleError(error)\n // }\n // }\n\n private includeAccessToken(options: any): boolean {\n this.accessToken = this.tokens.getAccessToken()\n if (!this.accessToken) {\n return false\n }\n\n if (!options.headers) {\n options.headers = {}\n }\n options.headers['Authorization'] = 'Bearer ' + this.accessToken\n return true\n }\n\n private async refreshAccessTokenAndRetry(url: string, fetchOptions: any, response: Response): Promise<Response> {\n\n const refreshStatusOk = await this.refreshAccessToken()\n if (!refreshStatusOk) {\n return response\n }\n\n fetchOptions.headers['Authorization'] = 'Bearer ' + this.accessToken\n response = await fetch(url, fetchOptions)\n return response\n }\n\n async refreshAccessToken(): Promise<boolean> {\n const refreshToken = this.tokens.getRefreshToken()\n if (!refreshToken) {\n return false\n }\n\n const refreshTokenUrl = this.host + 'user/refresh_access'\n let refreshTokenResponse = await fetch(refreshTokenUrl, {\n method: 'POST',\n mode: 'cors',\n redirect: 'error',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n access_token: this.accessToken,\n refresh_token: refreshToken\n })\n })\n if (!refreshTokenResponse.ok) {\n this.accessToken = ''\n this.tokens.clear()\n return false\n }\n\n let refreshAccessData = await refreshTokenResponse.json()\n if (!refreshAccessData) {\n return false\n }\n this.tokens.setTokens(refreshAccessData.data.access_token, refreshToken)\n this.accessToken = refreshAccessData.data.access_token\n\n return true\n }\n\n buildQueryString(options?: any): string {\n if (options === undefined) {\n return ''\n }\n\n const array = []\n for (let key in options) {\n if (options.hasOwnProperty(key) && (options[key] !== null) && (options[key] !== undefined)) {\n array.push(encodeURIComponent(key) + \"=\" + encodeURIComponent(options[key]))\n }\n }\n const str = array.join('&')\n if (str !== '') {\n return '?' + str\n }\n\n return ''\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthService {\n\n constructor() { }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DbService {\n\n constructor() { }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MyEnvironmentModel } from '../my-environment.model';\n\n\n\n@NgModule({\n declarations: [],\n imports: [\n CommonModule\n ]\n})\nexport class ProgalaxyClientCommonModule {\n public static forRoot(environment: MyEnvironmentModel): ModuleWithProviders<ProgalaxyClientCommonModule> {\n return {\n ngModule: ProgalaxyClientCommonModule,\n providers: [\n { provide: MyEnvironmentModel, useValue: environment }\n ]\n }\n }\n}\n","/*\n * Public API Surface of progalaxy-client-common\n */\n\nexport * from './lib/api-connection.service';\nexport * from './lib/auth.service';\nexport * from './lib/db.service';\nexport * from './lib/signin-status.service';\nexport * from './lib/token.service';\nexport * from './lib/api-response.model';\nexport * from './lib/my-environment.model';\nexport * from './lib/progalaxy-client-common/progalaxy-client-common.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.TokenService","i2.SigninStatusService","i3.MyEnvironmentModel"],"mappings":"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"}
package/index.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@progalaxyelabs/ngx-stonescriptphp-client" />
5
+ export * from './public-api';
@@ -0,0 +1,23 @@
1
+ import { TokenService } from './token.service';
2
+ import { SigninStatusService } from './signin-status.service';
3
+ import { ApiResponse } from './api-response.model';
4
+ import { MyEnvironmentModel } from './my-environment.model';
5
+ import * as i0 from "@angular/core";
6
+ export declare class ApiConnectionService {
7
+ private tokens;
8
+ private signinStatus;
9
+ private environment;
10
+ private host;
11
+ private accessToken;
12
+ constructor(tokens: TokenService, signinStatus: SigninStatusService, environment: MyEnvironmentModel);
13
+ private request;
14
+ private handleError;
15
+ get<DataType>(endpoint: string, queryParamsObj?: any): Promise<ApiResponse<DataType>>;
16
+ post<DataType>(pathWithQueryParams: string, data: any): Promise<ApiResponse<DataType>>;
17
+ private includeAccessToken;
18
+ private refreshAccessTokenAndRetry;
19
+ refreshAccessToken(): Promise<boolean>;
20
+ buildQueryString(options?: any): string;
21
+ static ɵfac: i0.ɵɵFactoryDeclaration<ApiConnectionService, never>;
22
+ static ɵprov: i0.ɵɵInjectableDeclaration<ApiConnectionService>;
23
+ }
@@ -0,0 +1,9 @@
1
+ export declare class ApiResponse<DataType> {
2
+ private status;
3
+ private data;
4
+ private message;
5
+ constructor(status: string, data?: any, message?: string);
6
+ onOk(callback: (data: DataType) => void): ApiResponse<DataType>;
7
+ onNotOk(callback: (message: string, data: DataType) => void): ApiResponse<DataType>;
8
+ onError(callback: () => void): ApiResponse<DataType>;
9
+ }
@@ -0,0 +1,6 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class AuthService {
3
+ constructor();
4
+ static ɵfac: i0.ɵɵFactoryDeclaration<AuthService, never>;
5
+ static ɵprov: i0.ɵɵInjectableDeclaration<AuthService>;
6
+ }
@@ -0,0 +1,6 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class DbService {
3
+ constructor();
4
+ static ɵfac: i0.ɵɵFactoryDeclaration<DbService, never>;
5
+ static ɵprov: i0.ɵɵInjectableDeclaration<DbService>;
6
+ }
@@ -0,0 +1,20 @@
1
+ export declare class MyEnvironmentModel {
2
+ production: boolean;
3
+ firebase: {
4
+ projectId: string;
5
+ appId: string;
6
+ databaseURL: string;
7
+ storageBucket: string;
8
+ locationId: string;
9
+ apiKey: string;
10
+ authDomain: string;
11
+ messagingSenderId: string;
12
+ measurementId: string;
13
+ };
14
+ apiServer: {
15
+ host: string;
16
+ };
17
+ chatServer: {
18
+ host: string;
19
+ };
20
+ }
@@ -0,0 +1,10 @@
1
+ import { ModuleWithProviders } from '@angular/core';
2
+ import { MyEnvironmentModel } from '../my-environment.model';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ export declare class ProgalaxyClientCommonModule {
6
+ static forRoot(environment: MyEnvironmentModel): ModuleWithProviders<ProgalaxyClientCommonModule>;
7
+ static ɵfac: i0.ɵɵFactoryDeclaration<ProgalaxyClientCommonModule, never>;
8
+ static ɵmod: i0.ɵɵNgModuleDeclaration<ProgalaxyClientCommonModule, never, [typeof i1.CommonModule], never>;
9
+ static ɵinj: i0.ɵɵInjectorDeclaration<ProgalaxyClientCommonModule>;
10
+ }
@@ -0,0 +1,10 @@
1
+ import { BehaviorSubject } from 'rxjs';
2
+ import * as i0 from "@angular/core";
3
+ export declare class SigninStatusService {
4
+ status: BehaviorSubject<boolean>;
5
+ constructor();
6
+ signedOut(): void;
7
+ signedIn(): void;
8
+ static ɵfac: i0.ɵɵFactoryDeclaration<SigninStatusService, never>;
9
+ static ɵprov: i0.ɵɵInjectableDeclaration<SigninStatusService>;
10
+ }
@@ -0,0 +1,14 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class TokenService {
3
+ private accessToken;
4
+ private refreshToken;
5
+ private lsAccessTokenKey;
6
+ private lsRefreshTokenKey;
7
+ constructor();
8
+ setTokens(accessToken: string, refreshToken: string): void;
9
+ getAccessToken(): string;
10
+ getRefreshToken(): string;
11
+ clear(): void;
12
+ static ɵfac: i0.ɵɵFactoryDeclaration<TokenService, never>;
13
+ static ɵprov: i0.ɵɵInjectableDeclaration<TokenService>;
14
+ }
package/package.json ADDED
@@ -0,0 +1,25 @@
1
+ {
2
+ "name": "@progalaxyelabs/ngx-stonescriptphp-client",
3
+ "version": "0.0.5",
4
+ "peerDependencies": {
5
+ "@angular/common": "^16.2.0",
6
+ "@angular/core": "^16.2.0"
7
+ },
8
+ "dependencies": {
9
+ "tslib": "^2.3.0"
10
+ },
11
+ "sideEffects": false,
12
+ "module": "fesm2022/progalaxyelabs-ngx-stonescriptphp-client.mjs",
13
+ "typings": "index.d.ts",
14
+ "exports": {
15
+ "./package.json": {
16
+ "default": "./package.json"
17
+ },
18
+ ".": {
19
+ "types": "./index.d.ts",
20
+ "esm2022": "./esm2022/progalaxyelabs-ngx-stonescriptphp-client.mjs",
21
+ "esm": "./esm2022/progalaxyelabs-ngx-stonescriptphp-client.mjs",
22
+ "default": "./fesm2022/progalaxyelabs-ngx-stonescriptphp-client.mjs"
23
+ }
24
+ }
25
+ }
@@ -0,0 +1,8 @@
1
+ export * from './lib/api-connection.service';
2
+ export * from './lib/auth.service';
3
+ export * from './lib/db.service';
4
+ export * from './lib/signin-status.service';
5
+ export * from './lib/token.service';
6
+ export * from './lib/api-response.model';
7
+ export * from './lib/my-environment.model';
8
+ export * from './lib/progalaxy-client-common/progalaxy-client-common.module';