@progalaxyelabs/ngx-stonescriptphp-client 1.0.4 → 1.1.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.
- package/dist/api-connection.service.d.ts +35 -0
- package/dist/api-connection.service.d.ts.map +1 -0
- package/dist/api-connection.service.js +314 -0
- package/dist/api-connection.service.js.map +1 -0
- package/dist/api-response.model.d.ts +16 -0
- package/dist/api-response.model.d.ts.map +1 -0
- package/dist/api-response.model.js +51 -0
- package/dist/api-response.model.js.map +1 -0
- package/dist/auth.service.d.ts +4 -0
- package/dist/auth.service.d.ts.map +1 -0
- package/dist/auth.service.js +16 -0
- package/dist/auth.service.js.map +1 -0
- package/dist/csrf.service.d.ts +22 -0
- package/dist/csrf.service.d.ts.map +1 -0
- package/dist/csrf.service.js +47 -0
- package/dist/csrf.service.js.map +1 -0
- package/dist/db.service.d.ts +4 -0
- package/dist/db.service.d.ts.map +1 -0
- package/dist/db.service.js +16 -0
- package/dist/db.service.js.map +1 -0
- package/dist/{ngx-stonescriptphp-client/fesm2022/progalaxyelabs-ngx-stonescriptphp-client.mjs → esm/api-connection.service.js} +27 -275
- package/dist/esm/api-connection.service.js.map +1 -0
- package/dist/esm/api-response.model.js +47 -0
- package/dist/esm/api-response.model.js.map +1 -0
- package/dist/esm/auth.service.js +13 -0
- package/dist/esm/auth.service.js.map +1 -0
- package/dist/esm/csrf.service.js +44 -0
- package/dist/esm/csrf.service.js.map +1 -0
- package/dist/esm/db.service.js +13 -0
- package/dist/esm/db.service.js.map +1 -0
- package/dist/esm/index.js +13 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/my-environment.model.js +29 -0
- package/dist/esm/my-environment.model.js.map +1 -0
- package/dist/esm/ngx-stonescriptphp-client.module.js +25 -0
- package/dist/esm/ngx-stonescriptphp-client.module.js.map +1 -0
- package/dist/esm/signin-status.service.js +23 -0
- package/dist/esm/signin-status.service.js.map +1 -0
- package/dist/esm/token.service.js +61 -0
- package/dist/esm/token.service.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +16 -0
- package/dist/index.js.map +1 -0
- package/dist/my-environment.model.d.ts +61 -0
- package/dist/my-environment.model.d.ts.map +1 -0
- package/dist/my-environment.model.js +33 -0
- package/dist/my-environment.model.js.map +1 -0
- package/dist/ngx-stonescriptphp-client.module.d.ts +6 -0
- package/dist/ngx-stonescriptphp-client.module.d.ts.map +1 -0
- package/dist/ngx-stonescriptphp-client.module.js +28 -0
- package/dist/ngx-stonescriptphp-client.module.js.map +1 -0
- package/dist/signin-status.service.d.ts +8 -0
- package/dist/signin-status.service.d.ts.map +1 -0
- package/dist/signin-status.service.js +26 -0
- package/dist/signin-status.service.js.map +1 -0
- package/dist/token.service.d.ts +14 -0
- package/dist/token.service.d.ts.map +1 -0
- package/dist/token.service.js +64 -0
- package/dist/token.service.js.map +1 -0
- package/package.json +18 -34
- package/dist/ngx-stonescriptphp-client/README.md +0 -186
- package/dist/ngx-stonescriptphp-client/fesm2022/progalaxyelabs-ngx-stonescriptphp-client.mjs.map +0 -1
- package/dist/ngx-stonescriptphp-client/index.d.ts +0 -184
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export * from './api-connection.service';
|
|
2
|
+
export * from './auth.service';
|
|
3
|
+
export * from './db.service';
|
|
4
|
+
export * from './signin-status.service';
|
|
5
|
+
export * from './token.service';
|
|
6
|
+
export * from './csrf.service';
|
|
7
|
+
export * from './api-response.model';
|
|
8
|
+
export * from './my-environment.model';
|
|
9
|
+
export * from './ngx-stonescriptphp-client.module';
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,0BAA0B,CAAC;AACzC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oCAAoC,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Public API Surface of ngx-stonescriptphp-client
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const tslib_1 = require("tslib");
|
|
7
|
+
tslib_1.__exportStar(require("./api-connection.service"), exports);
|
|
8
|
+
tslib_1.__exportStar(require("./auth.service"), exports);
|
|
9
|
+
tslib_1.__exportStar(require("./db.service"), exports);
|
|
10
|
+
tslib_1.__exportStar(require("./signin-status.service"), exports);
|
|
11
|
+
tslib_1.__exportStar(require("./token.service"), exports);
|
|
12
|
+
tslib_1.__exportStar(require("./csrf.service"), exports);
|
|
13
|
+
tslib_1.__exportStar(require("./api-response.model"), exports);
|
|
14
|
+
tslib_1.__exportStar(require("./my-environment.model"), exports);
|
|
15
|
+
tslib_1.__exportStar(require("./ngx-stonescriptphp-client.module"), exports);
|
|
16
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,mEAAyC;AACzC,yDAA+B;AAC/B,uDAA6B;AAC7B,kEAAwC;AACxC,0DAAgC;AAChC,yDAA+B;AAC/B,+DAAqC;AACrC,iEAAuC;AACvC,6EAAmD"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
export type AuthMode = 'cookie' | 'body' | 'none';
|
|
2
|
+
export interface AuthConfig {
|
|
3
|
+
/**
|
|
4
|
+
* Authentication mode:
|
|
5
|
+
* - 'cookie': Use httpOnly cookies + CSRF tokens (recommended, matches StoneScriptPHP v2.1.x)
|
|
6
|
+
* - 'body': Send tokens in request body (legacy mode)
|
|
7
|
+
* - 'none': No automatic token refresh
|
|
8
|
+
*/
|
|
9
|
+
mode: AuthMode;
|
|
10
|
+
/**
|
|
11
|
+
* Token refresh endpoint path
|
|
12
|
+
* @default '/auth/refresh' for cookie mode, '/user/refresh_access' for body mode
|
|
13
|
+
*/
|
|
14
|
+
refreshEndpoint?: string;
|
|
15
|
+
/**
|
|
16
|
+
* Enable CSRF token support (required for cookie mode)
|
|
17
|
+
* @default true for cookie mode, false for body mode
|
|
18
|
+
*/
|
|
19
|
+
useCsrf?: boolean;
|
|
20
|
+
/**
|
|
21
|
+
* Cookie name for refresh token
|
|
22
|
+
* @default 'refresh_token'
|
|
23
|
+
*/
|
|
24
|
+
refreshTokenCookieName?: string;
|
|
25
|
+
/**
|
|
26
|
+
* Cookie name for CSRF token
|
|
27
|
+
* @default 'csrf_token'
|
|
28
|
+
*/
|
|
29
|
+
csrfTokenCookieName?: string;
|
|
30
|
+
/**
|
|
31
|
+
* CSRF header name
|
|
32
|
+
* @default 'X-CSRF-Token'
|
|
33
|
+
*/
|
|
34
|
+
csrfHeaderName?: string;
|
|
35
|
+
}
|
|
36
|
+
export declare class MyEnvironmentModel {
|
|
37
|
+
production: boolean;
|
|
38
|
+
firebase: {
|
|
39
|
+
projectId: string;
|
|
40
|
+
appId: string;
|
|
41
|
+
databaseURL: string;
|
|
42
|
+
storageBucket: string;
|
|
43
|
+
locationId: string;
|
|
44
|
+
apiKey: string;
|
|
45
|
+
authDomain: string;
|
|
46
|
+
messagingSenderId: string;
|
|
47
|
+
measurementId: string;
|
|
48
|
+
};
|
|
49
|
+
apiServer: {
|
|
50
|
+
host: string;
|
|
51
|
+
};
|
|
52
|
+
chatServer: {
|
|
53
|
+
host: string;
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* Authentication configuration
|
|
57
|
+
* @default { mode: 'cookie', refreshEndpoint: '/auth/refresh', useCsrf: true }
|
|
58
|
+
*/
|
|
59
|
+
auth?: AuthConfig;
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=my-environment.model.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"my-environment.model.d.ts","sourceRoot":"","sources":["../src/my-environment.model.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;AAElD,MAAM,WAAW,UAAU;IACvB;;;;;OAKG;IACH,IAAI,EAAE,QAAQ,CAAC;IAEf;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;OAGG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAEhC;;;OAGG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,qBAAa,kBAAkB;IAC3B,UAAU,EAAE,OAAO,CAAO;IAC1B,QAAQ,EAAE;QACN,SAAS,EAAE,MAAM,CAAA;QACjB,KAAK,EAAE,MAAM,CAAA;QACb,WAAW,EAAE,MAAM,CAAA;QACnB,aAAa,EAAE,MAAM,CAAA;QACrB,UAAU,EAAE,MAAM,CAAA;QAClB,MAAM,EAAE,MAAM,CAAA;QACd,UAAU,EAAE,MAAM,CAAA;QAClB,iBAAiB,EAAE,MAAM,CAAA;QACzB,aAAa,EAAE,MAAM,CAAA;KACxB,CAUI;IACL,SAAS,EAAE;QACP,IAAI,EAAE,MAAM,CAAA;KACf,CAAe;IAChB,UAAU,EAAE;QACR,IAAI,EAAE,MAAM,CAAA;KACf,CAAe;IAEhB;;;OAGG;IACH,IAAI,CAAC,EAAE,UAAU,CAOf;CACL"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MyEnvironmentModel = void 0;
|
|
4
|
+
class MyEnvironmentModel {
|
|
5
|
+
production = true;
|
|
6
|
+
firebase = {
|
|
7
|
+
projectId: '',
|
|
8
|
+
appId: '',
|
|
9
|
+
databaseURL: '',
|
|
10
|
+
storageBucket: '',
|
|
11
|
+
locationId: '',
|
|
12
|
+
apiKey: '',
|
|
13
|
+
authDomain: '',
|
|
14
|
+
messagingSenderId: '',
|
|
15
|
+
measurementId: ''
|
|
16
|
+
};
|
|
17
|
+
apiServer = { host: '' };
|
|
18
|
+
chatServer = { host: '' };
|
|
19
|
+
/**
|
|
20
|
+
* Authentication configuration
|
|
21
|
+
* @default { mode: 'cookie', refreshEndpoint: '/auth/refresh', useCsrf: true }
|
|
22
|
+
*/
|
|
23
|
+
auth = {
|
|
24
|
+
mode: 'cookie',
|
|
25
|
+
refreshEndpoint: '/auth/refresh',
|
|
26
|
+
useCsrf: true,
|
|
27
|
+
refreshTokenCookieName: 'refresh_token',
|
|
28
|
+
csrfTokenCookieName: 'csrf_token',
|
|
29
|
+
csrfHeaderName: 'X-CSRF-Token'
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
exports.MyEnvironmentModel = MyEnvironmentModel;
|
|
33
|
+
//# sourceMappingURL=my-environment.model.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"my-environment.model.js","sourceRoot":"","sources":["../src/my-environment.model.ts"],"names":[],"mappings":";;;AA0CA,MAAa,kBAAkB;IAC3B,UAAU,GAAY,IAAI,CAAA;IAC1B,QAAQ,GAUJ;QACI,SAAS,EAAE,EAAE;QACb,KAAK,EAAE,EAAE;QACT,WAAW,EAAE,EAAE;QACf,aAAa,EAAE,EAAE;QACjB,UAAU,EAAE,EAAE;QACd,MAAM,EAAE,EAAE;QACV,UAAU,EAAE,EAAE;QACd,iBAAiB,EAAE,EAAE;QACrB,aAAa,EAAE,EAAE;KACpB,CAAA;IACL,SAAS,GAEL,EAAE,IAAI,EAAE,EAAE,EAAE,CAAA;IAChB,UAAU,GAEN,EAAE,IAAI,EAAE,EAAE,EAAE,CAAA;IAEhB;;;OAGG;IACH,IAAI,GAAgB;QAChB,IAAI,EAAE,QAAQ;QACd,eAAe,EAAE,eAAe;QAChC,OAAO,EAAE,IAAI;QACb,sBAAsB,EAAE,eAAe;QACvC,mBAAmB,EAAE,YAAY;QACjC,cAAc,EAAE,cAAc;KACjC,CAAC;CACL;AA1CD,gDA0CC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { ModuleWithProviders } from '@angular/core';
|
|
2
|
+
import { MyEnvironmentModel } from './my-environment.model';
|
|
3
|
+
export declare class NgxStoneScriptPhpClientModule {
|
|
4
|
+
static forRoot(environment: MyEnvironmentModel): ModuleWithProviders<NgxStoneScriptPhpClientModule>;
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=ngx-stonescriptphp-client.module.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ngx-stonescriptphp-client.module.d.ts","sourceRoot":"","sources":["../src/ngx-stonescriptphp-client.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAY,MAAM,eAAe,CAAC;AAE9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAI5D,qBAMa,6BAA6B;WACxB,OAAO,CAAC,WAAW,EAAE,kBAAkB,GAAG,mBAAmB,CAAC,6BAA6B,CAAC;CAQ7G"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var NgxStoneScriptPhpClientModule_1;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.NgxStoneScriptPhpClientModule = void 0;
|
|
5
|
+
const tslib_1 = require("tslib");
|
|
6
|
+
const core_1 = require("@angular/core");
|
|
7
|
+
const common_1 = require("@angular/common");
|
|
8
|
+
const my_environment_model_1 = require("./my-environment.model");
|
|
9
|
+
let NgxStoneScriptPhpClientModule = NgxStoneScriptPhpClientModule_1 = class NgxStoneScriptPhpClientModule {
|
|
10
|
+
static forRoot(environment) {
|
|
11
|
+
return {
|
|
12
|
+
ngModule: NgxStoneScriptPhpClientModule_1,
|
|
13
|
+
providers: [
|
|
14
|
+
{ provide: my_environment_model_1.MyEnvironmentModel, useValue: environment }
|
|
15
|
+
]
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
exports.NgxStoneScriptPhpClientModule = NgxStoneScriptPhpClientModule;
|
|
20
|
+
exports.NgxStoneScriptPhpClientModule = NgxStoneScriptPhpClientModule = NgxStoneScriptPhpClientModule_1 = tslib_1.__decorate([
|
|
21
|
+
(0, core_1.NgModule)({
|
|
22
|
+
declarations: [],
|
|
23
|
+
imports: [
|
|
24
|
+
common_1.CommonModule
|
|
25
|
+
]
|
|
26
|
+
})
|
|
27
|
+
], NgxStoneScriptPhpClientModule);
|
|
28
|
+
//# sourceMappingURL=ngx-stonescriptphp-client.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ngx-stonescriptphp-client.module.js","sourceRoot":"","sources":["../src/ngx-stonescriptphp-client.module.ts"],"names":[],"mappings":";;;;;AAAA,wCAA8D;AAC9D,4CAA+C;AAC/C,iEAA4D;AAUrD,IAAM,6BAA6B,qCAAnC,MAAM,6BAA6B;IAC/B,MAAM,CAAC,OAAO,CAAC,WAA+B;QACjD,OAAO;YACH,QAAQ,EAAE,+BAA6B;YACvC,SAAS,EAAE;gBACP,EAAE,OAAO,EAAE,yCAAkB,EAAE,QAAQ,EAAE,WAAW,EAAE;aACzD;SACJ,CAAA;IACL,CAAC;CACJ,CAAA;AATY,sEAA6B;wCAA7B,6BAA6B;IANzC,IAAA,eAAQ,EAAC;QACN,YAAY,EAAE,EAAE;QAChB,OAAO,EAAE;YACL,qBAAY;SACf;KACJ,CAAC;GACW,6BAA6B,CASzC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signin-status.service.d.ts","sourceRoot":"","sources":["../src/signin-status.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AAEvC,qBAGa,mBAAmB;IACrB,MAAM,EAAE,eAAe,CAAC,OAAO,CAAC,CAAA;;IAMvC,SAAS,IAAI,IAAI;IAIjB,QAAQ,IAAI,IAAI;CAGnB"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SigninStatusService = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const core_1 = require("@angular/core");
|
|
6
|
+
const rxjs_1 = require("rxjs");
|
|
7
|
+
let SigninStatusService = class SigninStatusService {
|
|
8
|
+
status;
|
|
9
|
+
constructor() {
|
|
10
|
+
this.status = new rxjs_1.BehaviorSubject(false);
|
|
11
|
+
}
|
|
12
|
+
signedOut() {
|
|
13
|
+
this.status.next(false);
|
|
14
|
+
}
|
|
15
|
+
signedIn() {
|
|
16
|
+
this.status.next(true);
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
exports.SigninStatusService = SigninStatusService;
|
|
20
|
+
exports.SigninStatusService = SigninStatusService = tslib_1.__decorate([
|
|
21
|
+
(0, core_1.Injectable)({
|
|
22
|
+
providedIn: 'root'
|
|
23
|
+
}),
|
|
24
|
+
tslib_1.__metadata("design:paramtypes", [])
|
|
25
|
+
], SigninStatusService);
|
|
26
|
+
//# sourceMappingURL=signin-status.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signin-status.service.js","sourceRoot":"","sources":["../src/signin-status.service.ts"],"names":[],"mappings":";;;;AAAA,wCAA2C;AAC3C,+BAAuC;AAKhC,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IACrB,MAAM,CAA0B;IAEvC;QACI,IAAI,CAAC,MAAM,GAAG,IAAI,sBAAe,CAAU,KAAK,CAAC,CAAA;IACrD,CAAC;IAED,SAAS;QACL,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC3B,CAAC;IAED,QAAQ;QACJ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC1B,CAAC;CACJ,CAAA;AAdY,kDAAmB;8BAAnB,mBAAmB;IAH/B,IAAA,iBAAU,EAAC;QACR,UAAU,EAAE,MAAM;KACrB,CAAC;;GACW,mBAAmB,CAc/B"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export declare class TokenService {
|
|
2
|
+
private accessToken;
|
|
3
|
+
private refreshToken;
|
|
4
|
+
private lsAccessTokenKey;
|
|
5
|
+
private lsRefreshTokenKey;
|
|
6
|
+
constructor();
|
|
7
|
+
setTokens(accessToken: string, refreshToken: string): void;
|
|
8
|
+
setAccessToken(accessToken: string): void;
|
|
9
|
+
setRefreshToken(refreshToken: string): void;
|
|
10
|
+
getAccessToken(): string;
|
|
11
|
+
getRefreshToken(): string;
|
|
12
|
+
clear(): void;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=token.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token.service.d.ts","sourceRoot":"","sources":["../src/token.service.ts"],"names":[],"mappings":"AAEA,qBAGa,YAAY;IACrB,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,YAAY,CAAK;IAEzB,OAAO,CAAC,gBAAgB,CAA8B;IACtD,OAAO,CAAC,iBAAiB,CAA+B;;IAIxD,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM;IAOnD,cAAc,CAAC,WAAW,EAAE,MAAM;IAKlC,eAAe,CAAC,YAAY,EAAE,MAAM;IAKpC,cAAc;IAad,eAAe;IAaf,KAAK;CAMR"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TokenService = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const core_1 = require("@angular/core");
|
|
6
|
+
let TokenService = class TokenService {
|
|
7
|
+
accessToken = '';
|
|
8
|
+
refreshToken = '';
|
|
9
|
+
lsAccessTokenKey = 'progalaxyapi_access_token';
|
|
10
|
+
lsRefreshTokenKey = 'progalaxyapi_refresh_token';
|
|
11
|
+
constructor() { }
|
|
12
|
+
setTokens(accessToken, refreshToken) {
|
|
13
|
+
this.accessToken = accessToken;
|
|
14
|
+
this.refreshToken = refreshToken;
|
|
15
|
+
localStorage.setItem(this.lsAccessTokenKey, accessToken);
|
|
16
|
+
localStorage.setItem(this.lsRefreshTokenKey, refreshToken);
|
|
17
|
+
}
|
|
18
|
+
setAccessToken(accessToken) {
|
|
19
|
+
this.accessToken = accessToken;
|
|
20
|
+
localStorage.setItem(this.lsAccessTokenKey, accessToken);
|
|
21
|
+
}
|
|
22
|
+
setRefreshToken(refreshToken) {
|
|
23
|
+
this.refreshToken = refreshToken;
|
|
24
|
+
localStorage.setItem(this.lsRefreshTokenKey, refreshToken);
|
|
25
|
+
}
|
|
26
|
+
getAccessToken() {
|
|
27
|
+
if (this.accessToken) {
|
|
28
|
+
return this.accessToken;
|
|
29
|
+
}
|
|
30
|
+
const storedAccessToken = localStorage.getItem(this.lsAccessTokenKey);
|
|
31
|
+
if (storedAccessToken) {
|
|
32
|
+
return storedAccessToken;
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
return '';
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
getRefreshToken() {
|
|
39
|
+
if (this.refreshToken) {
|
|
40
|
+
return this.refreshToken;
|
|
41
|
+
}
|
|
42
|
+
const storedRefreshToken = localStorage.getItem(this.lsRefreshTokenKey);
|
|
43
|
+
if (storedRefreshToken) {
|
|
44
|
+
return storedRefreshToken;
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
return '';
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
clear() {
|
|
51
|
+
this.accessToken = '';
|
|
52
|
+
this.refreshToken = '';
|
|
53
|
+
localStorage.removeItem(this.lsAccessTokenKey);
|
|
54
|
+
localStorage.removeItem(this.lsRefreshTokenKey);
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
exports.TokenService = TokenService;
|
|
58
|
+
exports.TokenService = TokenService = tslib_1.__decorate([
|
|
59
|
+
(0, core_1.Injectable)({
|
|
60
|
+
providedIn: 'root'
|
|
61
|
+
}),
|
|
62
|
+
tslib_1.__metadata("design:paramtypes", [])
|
|
63
|
+
], TokenService);
|
|
64
|
+
//# sourceMappingURL=token.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token.service.js","sourceRoot":"","sources":["../src/token.service.ts"],"names":[],"mappings":";;;;AAAA,wCAA2C;AAKpC,IAAM,YAAY,GAAlB,MAAM,YAAY;IACb,WAAW,GAAG,EAAE,CAAA;IAChB,YAAY,GAAG,EAAE,CAAA;IAEjB,gBAAgB,GAAG,2BAA2B,CAAA;IAC9C,iBAAiB,GAAG,4BAA4B,CAAA;IAExD,gBAAgB,CAAC;IAEjB,SAAS,CAAC,WAAmB,EAAE,YAAoB;QAC/C,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;QAC9B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;QAChC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAA;QACxD,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAA;IAC9D,CAAC;IAED,cAAc,CAAC,WAAmB;QAC9B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;QAC9B,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAA;IAC5D,CAAC;IAED,eAAe,CAAC,YAAoB;QAChC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;QAChC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAA;IAC9D,CAAC;IAED,cAAc;QACV,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,OAAO,IAAI,CAAC,WAAW,CAAA;QAC3B,CAAC;QAED,MAAM,iBAAiB,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;QACrE,IAAI,iBAAiB,EAAE,CAAC;YACpB,OAAO,iBAAiB,CAAA;QAC5B,CAAC;aAAM,CAAC;YACJ,OAAO,EAAE,CAAA;QACb,CAAC;IACL,CAAC;IAED,eAAe;QACX,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC,YAAY,CAAA;QAC5B,CAAC;QAED,MAAM,kBAAkB,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;QACvE,IAAI,kBAAkB,EAAE,CAAC;YACrB,OAAO,kBAAkB,CAAA;QAC7B,CAAC;aAAM,CAAC;YACJ,OAAO,EAAE,CAAA;QACb,CAAC;IACL,CAAC;IAED,KAAK;QACD,IAAI,CAAC,WAAW,GAAG,EAAE,CAAA;QACrB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAA;QACtB,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;QAC9C,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;IACnD,CAAC;CACJ,CAAA;AA1DY,oCAAY;uBAAZ,YAAY;IAHxB,IAAA,iBAAU,EAAC;QACR,UAAU,EAAE,MAAM;KACrB,CAAC;;GACW,YAAY,CA0DxB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@progalaxyelabs/ngx-stonescriptphp-client",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "Angular client library for StoneScriptPHP backend framework",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"angular",
|
|
@@ -24,7 +24,15 @@
|
|
|
24
24
|
"url": "https://stonescriptphp.org"
|
|
25
25
|
},
|
|
26
26
|
"main": "dist/index.js",
|
|
27
|
+
"module": "dist/esm/index.js",
|
|
27
28
|
"types": "dist/index.d.ts",
|
|
29
|
+
"exports": {
|
|
30
|
+
".": {
|
|
31
|
+
"types": "./dist/index.d.ts",
|
|
32
|
+
"import": "./dist/esm/index.js",
|
|
33
|
+
"require": "./dist/index.js"
|
|
34
|
+
}
|
|
35
|
+
},
|
|
28
36
|
"files": [
|
|
29
37
|
"dist",
|
|
30
38
|
"README.md",
|
|
@@ -33,50 +41,26 @@
|
|
|
33
41
|
"docs"
|
|
34
42
|
],
|
|
35
43
|
"scripts": {
|
|
36
|
-
"
|
|
37
|
-
"
|
|
38
|
-
"
|
|
39
|
-
"build": "ng build",
|
|
40
|
-
"watch": "ng build --watch --configuration development",
|
|
41
|
-
"test": "ng test",
|
|
44
|
+
"build": "rm -rf dist && tsc && tsc -p tsconfig.esm.json",
|
|
45
|
+
"prepublishOnly": "npm run build",
|
|
46
|
+
"test": "echo \"No tests configured\"",
|
|
42
47
|
"publish:npm": "npm publish --access public"
|
|
43
48
|
},
|
|
44
49
|
"private": false,
|
|
45
50
|
"peerDependencies": {
|
|
46
51
|
"@angular/common": "^19.0.0 || ^20.0.0",
|
|
47
|
-
"@angular/core": "^19.0.0 || ^20.0.0"
|
|
48
|
-
"rxjs": "^7.8.0"
|
|
52
|
+
"@angular/core": "^19.0.0 || ^20.0.0"
|
|
49
53
|
},
|
|
50
54
|
"dependencies": {
|
|
51
|
-
"
|
|
52
|
-
"@angular/animations": "^20.0.0",
|
|
53
|
-
"@angular/common": "^20.0.0",
|
|
54
|
-
"@angular/compiler": "^20.0.0",
|
|
55
|
-
"@angular/core": "^20.0.0",
|
|
56
|
-
"@angular/forms": "^20.0.0",
|
|
57
|
-
"@angular/platform-browser": "^20.0.0",
|
|
58
|
-
"@angular/platform-browser-dynamic": "^20.0.0",
|
|
59
|
-
"@angular/router": "^20.0.0",
|
|
60
|
-
"rxjs": "~7.8.0",
|
|
61
|
-
"tslib": "^2.8.0",
|
|
62
|
-
"zone.js": "~0.15.0"
|
|
55
|
+
"tslib": "^2.8.0"
|
|
63
56
|
},
|
|
64
57
|
"devDependencies": {
|
|
65
|
-
"@angular
|
|
66
|
-
"@angular/
|
|
67
|
-
"@angular/compiler-cli": "^20.0.0",
|
|
68
|
-
"@schematics/angular": "^20.0.0",
|
|
69
|
-
"@types/jasmine": "~5.1.0",
|
|
70
|
-
"jasmine-core": "~5.5.0",
|
|
71
|
-
"karma": "~6.4.0",
|
|
72
|
-
"karma-chrome-launcher": "~3.2.0",
|
|
73
|
-
"karma-coverage": "~2.2.0",
|
|
74
|
-
"karma-jasmine": "~5.1.0",
|
|
75
|
-
"karma-jasmine-html-reporter": "~2.1.0",
|
|
76
|
-
"ng-packagr": "^20.0.0",
|
|
58
|
+
"@angular/common": "^20.0.0",
|
|
59
|
+
"@angular/core": "^20.0.0",
|
|
77
60
|
"typescript": "~5.8.0"
|
|
78
61
|
},
|
|
79
62
|
"publishConfig": {
|
|
80
63
|
"access": "public"
|
|
81
|
-
}
|
|
64
|
+
},
|
|
65
|
+
"sideEffects": false
|
|
82
66
|
}
|
|
@@ -1,186 +0,0 @@
|
|
|
1
|
-
# ngx-stonescriptphp-client
|
|
2
|
-
|
|
3
|
-
> Official Angular client library for StoneScriptPHP backend framework
|
|
4
|
-
|
|
5
|
-
[](https://www.npmjs.com/package/@progalaxyelabs/ngx-stonescriptphp-client)
|
|
6
|
-
[](https://opensource.org/licenses/MIT)
|
|
7
|
-
|
|
8
|
-
**Note:** While published as `@progalaxyelabs/ngx-stonescriptphp-client`, this is the official client for [StoneScriptPHP](https://stonescriptphp.org). Future versions will migrate to the `@stonescriptphp` namespace.
|
|
9
|
-
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
## What is this?
|
|
13
|
-
|
|
14
|
-
The Angular HTTP client library for **StoneScriptPHP** - a modern PHP backend framework that auto-generates TypeScript clients from your backend DTOs and contracts.
|
|
15
|
-
|
|
16
|
-
When you build APIs with StoneScriptPHP, you define:
|
|
17
|
-
- Request DTOs (TypeScript interfaces)
|
|
18
|
-
- Response DTOs (TypeScript interfaces)
|
|
19
|
-
- Route contracts (interfaces)
|
|
20
|
-
|
|
21
|
-
This library provides the HTTP client that consumes those contracts, giving you **100% type-safe** API calls with zero manual typing.
|
|
22
|
-
|
|
23
|
-
## Features
|
|
24
|
-
|
|
25
|
-
- ✅ **Type-safe HTTP calls** - Full TypeScript support from backend DTOs
|
|
26
|
-
- ✅ **Auto-generated clients** - StoneScriptPHP generates TypeScript from PHP
|
|
27
|
-
- ✅ **RxJS observables** - Native Angular integration
|
|
28
|
-
- ✅ **Error handling** - Consistent error responses
|
|
29
|
-
- ✅ **Interceptors ready** - Add auth, logging, retry logic
|
|
30
|
-
- ✅ **Angular 19+** - Modern Angular standalone components
|
|
31
|
-
|
|
32
|
-
## Installation
|
|
33
|
-
|
|
34
|
-
```bash
|
|
35
|
-
npm install @progalaxyelabs/ngx-stonescriptphp-client
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
## Quick Start
|
|
39
|
-
|
|
40
|
-
### 1. Generate TypeScript Client from Backend
|
|
41
|
-
|
|
42
|
-
In your StoneScriptPHP project:
|
|
43
|
-
|
|
44
|
-
```bash
|
|
45
|
-
php stone generate typescript-client
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
This generates TypeScript interfaces from your PHP DTOs.
|
|
49
|
-
|
|
50
|
-
### 2. Use in Angular
|
|
51
|
-
|
|
52
|
-
```typescript
|
|
53
|
-
import { Component } from '@angular/core';
|
|
54
|
-
import { HttpClient } from '@angular/common/http';
|
|
55
|
-
import { Observable } from 'rxjs';
|
|
56
|
-
|
|
57
|
-
// Auto-generated from StoneScriptPHP backend
|
|
58
|
-
interface ProductRequest {
|
|
59
|
-
name: string;
|
|
60
|
-
price: number;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
interface ProductResponse {
|
|
64
|
-
productId: number;
|
|
65
|
-
status: string;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
@Component({
|
|
69
|
-
selector: 'app-products',
|
|
70
|
-
standalone: true,
|
|
71
|
-
template: `<button (click)="createProduct()">Create Product</button>`
|
|
72
|
-
})
|
|
73
|
-
export class ProductsComponent {
|
|
74
|
-
constructor(private http: HttpClient) {}
|
|
75
|
-
|
|
76
|
-
createProduct(): void {
|
|
77
|
-
const request: ProductRequest = {
|
|
78
|
-
name: 'Widget',
|
|
79
|
-
price: 99.99
|
|
80
|
-
};
|
|
81
|
-
|
|
82
|
-
this.http.post<ProductResponse>('http://localhost:9100/products', request)
|
|
83
|
-
.subscribe(response => {
|
|
84
|
-
console.log('Product created:', response.productId);
|
|
85
|
-
});
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
```
|
|
89
|
-
|
|
90
|
-
## How it Works
|
|
91
|
-
|
|
92
|
-
StoneScriptPHP follows a **contract-first** approach:
|
|
93
|
-
|
|
94
|
-
```
|
|
95
|
-
PHP Backend (StoneScriptPHP) Angular Frontend
|
|
96
|
-
┌─────────────────────────┐ ┌──────────────────────┐
|
|
97
|
-
│ ProductRequest DTO │ ──────> │ ProductRequest.ts │
|
|
98
|
-
│ ProductResponse DTO │ ──────> │ ProductResponse.ts │
|
|
99
|
-
│ IProductRoute contract │ ──────> │ Type-safe HTTP calls │
|
|
100
|
-
└─────────────────────────┘ └──────────────────────┘
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
1. Define DTOs in PHP
|
|
104
|
-
2. Run `php stone generate typescript-client`
|
|
105
|
-
3. Import generated TypeScript interfaces in Angular
|
|
106
|
-
4. Make type-safe HTTP calls
|
|
107
|
-
|
|
108
|
-
## Advanced Usage
|
|
109
|
-
|
|
110
|
-
### With Interceptors
|
|
111
|
-
|
|
112
|
-
```typescript
|
|
113
|
-
import { HttpInterceptor, HttpRequest, HttpHandler } from '@angular/common/http';
|
|
114
|
-
|
|
115
|
-
export class AuthInterceptor implements HttpInterceptor {
|
|
116
|
-
intercept(req: HttpRequest<any>, next: HttpHandler) {
|
|
117
|
-
const authReq = req.clone({
|
|
118
|
-
headers: req.headers.set('Authorization', 'Bearer ' + getToken())
|
|
119
|
-
});
|
|
120
|
-
return next.handle(authReq);
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
### With Error Handling
|
|
126
|
-
|
|
127
|
-
```typescript
|
|
128
|
-
this.http.post<ProductResponse>('/products', request)
|
|
129
|
-
.pipe(
|
|
130
|
-
catchError(error => {
|
|
131
|
-
console.error('API Error:', error);
|
|
132
|
-
return throwError(() => error);
|
|
133
|
-
})
|
|
134
|
-
)
|
|
135
|
-
.subscribe(response => {
|
|
136
|
-
// Handle success
|
|
137
|
-
});
|
|
138
|
-
```
|
|
139
|
-
|
|
140
|
-
## API Response Format
|
|
141
|
-
|
|
142
|
-
StoneScriptPHP responses follow this structure:
|
|
143
|
-
|
|
144
|
-
```typescript
|
|
145
|
-
{
|
|
146
|
-
"status": "ok" | "error",
|
|
147
|
-
"message": "Success message",
|
|
148
|
-
"data": { /* Your DTO */ }
|
|
149
|
-
}
|
|
150
|
-
```
|
|
151
|
-
|
|
152
|
-
## Requirements
|
|
153
|
-
|
|
154
|
-
- Angular >= 19.0.0
|
|
155
|
-
- RxJS >= 7.8.0
|
|
156
|
-
- TypeScript >= 5.8.0
|
|
157
|
-
|
|
158
|
-
## Documentation
|
|
159
|
-
|
|
160
|
-
- **Framework Docs:** [stonescriptphp.org](https://stonescriptphp.org)
|
|
161
|
-
- **Getting Started:** [stonescriptphp.org/docs/getting-started](https://stonescriptphp.org/docs/getting-started)
|
|
162
|
-
- **TypeScript Client Guide:** [stonescriptphp.org/docs/typescript-client](https://stonescriptphp.org/docs/typescript-client)
|
|
163
|
-
|
|
164
|
-
## Example Projects
|
|
165
|
-
|
|
166
|
-
Check out the [StoneScriptPHP examples repository](https://github.com/progalaxyelabs/StoneScriptPHP/tree/main/examples) for full-stack example apps.
|
|
167
|
-
|
|
168
|
-
## Contributing
|
|
169
|
-
|
|
170
|
-
This is part of the StoneScriptPHP ecosystem. Contributions welcome!
|
|
171
|
-
|
|
172
|
-
- Report issues: [GitHub Issues](https://github.com/progalaxyelabs/ngx-stonescriptphp-client/issues)
|
|
173
|
-
- Framework repo: [StoneScriptPHP](https://github.com/progalaxyelabs/StoneScriptPHP)
|
|
174
|
-
|
|
175
|
-
## License
|
|
176
|
-
|
|
177
|
-
MIT
|
|
178
|
-
|
|
179
|
-
## Related Projects
|
|
180
|
-
|
|
181
|
-
- [StoneScriptPHP](https://github.com/progalaxyelabs/StoneScriptPHP) - The PHP backend framework
|
|
182
|
-
- [sunbird-garden](https://github.com/progalaxyelabs/sunbird-garden) - Reference implementation
|
|
183
|
-
|
|
184
|
-
---
|
|
185
|
-
|
|
186
|
-
**Made with ❤️ by the StoneScriptPHP team**
|