@23blocks/angular 0.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/index.js +3 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/authentication/authentication.service.js +113 -0
- package/dist/lib/authentication/authentication.service.js.map +1 -0
- package/dist/lib/authentication/index.js +3 -0
- package/dist/lib/authentication/index.js.map +1 -0
- package/dist/lib/index.js +9 -0
- package/dist/lib/index.js.map +1 -0
- package/dist/lib/providers.js +92 -0
- package/dist/lib/providers.js.map +1 -0
- package/dist/lib/search/index.js +3 -0
- package/dist/lib/search/index.js.map +1 -0
- package/dist/lib/search/search.service.js +93 -0
- package/dist/lib/search/search.service.js.map +1 -0
- package/dist/lib/tokens.js +12 -0
- package/dist/lib/tokens.js.map +1 -0
- package/package.json +68 -0
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["export * from './lib/index.js';\n"],"names":[],"rangeMappings":"","mappings":"AAAA,cAAc,iBAAiB"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { _ as _ts_decorate } from "@swc/helpers/_/_ts_decorate";
|
|
2
|
+
import { _ as _ts_metadata } from "@swc/helpers/_/_ts_metadata";
|
|
3
|
+
import { _ as _ts_param } from "@swc/helpers/_/_ts_param";
|
|
4
|
+
import { Injectable, Inject } from '@angular/core';
|
|
5
|
+
import { from } from 'rxjs';
|
|
6
|
+
import { createAuthenticationBlock } from '@23blocks/block-authentication';
|
|
7
|
+
import { TRANSPORT, AUTHENTICATION_CONFIG } from '../tokens.js';
|
|
8
|
+
export class AuthenticationService {
|
|
9
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
10
|
+
// Auth Service
|
|
11
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
12
|
+
signIn(request) {
|
|
13
|
+
return from(this.block.auth.signIn(request));
|
|
14
|
+
}
|
|
15
|
+
signUp(request) {
|
|
16
|
+
return from(this.block.auth.signUp(request));
|
|
17
|
+
}
|
|
18
|
+
signOut() {
|
|
19
|
+
return from(this.block.auth.signOut());
|
|
20
|
+
}
|
|
21
|
+
requestPasswordReset(request) {
|
|
22
|
+
return from(this.block.auth.requestPasswordReset(request));
|
|
23
|
+
}
|
|
24
|
+
updatePassword(request) {
|
|
25
|
+
return from(this.block.auth.updatePassword(request));
|
|
26
|
+
}
|
|
27
|
+
validateToken(token) {
|
|
28
|
+
return from(this.block.auth.validateToken(token));
|
|
29
|
+
}
|
|
30
|
+
getCurrentUser() {
|
|
31
|
+
return from(this.block.auth.getCurrentUser());
|
|
32
|
+
}
|
|
33
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
34
|
+
// Users Service
|
|
35
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
36
|
+
listUsers(params) {
|
|
37
|
+
return from(this.block.users.list(params));
|
|
38
|
+
}
|
|
39
|
+
getUser(id) {
|
|
40
|
+
return from(this.block.users.get(id));
|
|
41
|
+
}
|
|
42
|
+
updateUser(id, request) {
|
|
43
|
+
return from(this.block.users.update(id, request));
|
|
44
|
+
}
|
|
45
|
+
deleteUser(id) {
|
|
46
|
+
return from(this.block.users.delete(id));
|
|
47
|
+
}
|
|
48
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
49
|
+
// Roles Service
|
|
50
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
51
|
+
listRoles() {
|
|
52
|
+
return from(this.block.roles.list());
|
|
53
|
+
}
|
|
54
|
+
getRole(id) {
|
|
55
|
+
return from(this.block.roles.get(id));
|
|
56
|
+
}
|
|
57
|
+
createRole(request) {
|
|
58
|
+
return from(this.block.roles.create(request));
|
|
59
|
+
}
|
|
60
|
+
updateRole(id, request) {
|
|
61
|
+
return from(this.block.roles.update(id, request));
|
|
62
|
+
}
|
|
63
|
+
deleteRole(id) {
|
|
64
|
+
return from(this.block.roles.delete(id));
|
|
65
|
+
}
|
|
66
|
+
listPermissions() {
|
|
67
|
+
return from(this.block.roles.listPermissions());
|
|
68
|
+
}
|
|
69
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
70
|
+
// API Keys Service
|
|
71
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
72
|
+
listApiKeys() {
|
|
73
|
+
return from(this.block.apiKeys.list());
|
|
74
|
+
}
|
|
75
|
+
getApiKey(id) {
|
|
76
|
+
return from(this.block.apiKeys.get(id));
|
|
77
|
+
}
|
|
78
|
+
createApiKey(request) {
|
|
79
|
+
return from(this.block.apiKeys.create(request));
|
|
80
|
+
}
|
|
81
|
+
updateApiKey(id, request) {
|
|
82
|
+
return from(this.block.apiKeys.update(id, request));
|
|
83
|
+
}
|
|
84
|
+
revokeApiKey(id) {
|
|
85
|
+
return from(this.block.apiKeys.revoke(id));
|
|
86
|
+
}
|
|
87
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
88
|
+
// Direct Block Access (for advanced usage)
|
|
89
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
90
|
+
/**
|
|
91
|
+
* Access the underlying block for advanced operations
|
|
92
|
+
* Use this when you need access to services not wrapped by this Angular service
|
|
93
|
+
*/ get rawBlock() {
|
|
94
|
+
return this.block;
|
|
95
|
+
}
|
|
96
|
+
constructor(transport, config){
|
|
97
|
+
this.block = createAuthenticationBlock(transport, config);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
AuthenticationService = _ts_decorate([
|
|
101
|
+
Injectable({
|
|
102
|
+
providedIn: 'root'
|
|
103
|
+
}),
|
|
104
|
+
_ts_param(0, Inject(TRANSPORT)),
|
|
105
|
+
_ts_param(1, Inject(AUTHENTICATION_CONFIG)),
|
|
106
|
+
_ts_metadata("design:type", Function),
|
|
107
|
+
_ts_metadata("design:paramtypes", [
|
|
108
|
+
typeof Transport === "undefined" ? Object : Transport,
|
|
109
|
+
typeof AuthenticationBlockConfig === "undefined" ? Object : AuthenticationBlockConfig
|
|
110
|
+
])
|
|
111
|
+
], AuthenticationService);
|
|
112
|
+
|
|
113
|
+
//# sourceMappingURL=authentication.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/authentication/authentication.service.ts"],"sourcesContent":["import { Injectable, Inject } from '@angular/core';\nimport { Observable, from } from 'rxjs';\nimport type { Transport } from '@23blocks/contracts';\nimport {\n createAuthenticationBlock,\n type AuthenticationBlock,\n type AuthenticationBlockConfig,\n type User,\n type Role,\n type Permission,\n type SignInRequest,\n type SignInResponse,\n type SignUpRequest,\n type SignUpResponse,\n type PasswordResetRequest,\n type PasswordUpdateRequest,\n type TokenValidationResponse,\n type ApiKey,\n type ApiKeyWithSecret,\n type CreateApiKeyRequest,\n type UpdateApiKeyRequest,\n type UpdateUserRequest,\n type CreateRoleRequest,\n type UpdateRoleRequest,\n} from '@23blocks/block-authentication';\nimport { TRANSPORT, AUTHENTICATION_CONFIG } from '../tokens.js';\n\n/**\n * Angular service wrapping the Authentication block.\n * Converts Promise-based APIs to RxJS Observables.\n *\n * @example\n * ```typescript\n * @Component({...})\n * export class LoginComponent {\n * constructor(private auth: AuthenticationService) {}\n *\n * login(email: string, password: string) {\n * this.auth.signIn({ email, password }).subscribe({\n * next: (response) => console.log('Signed in:', response.user),\n * error: (err) => console.error('Failed:', err),\n * });\n * }\n * }\n * ```\n */\n@Injectable({ providedIn: 'root' })\nexport class AuthenticationService {\n private readonly block: AuthenticationBlock;\n\n constructor(\n @Inject(TRANSPORT) transport: Transport,\n @Inject(AUTHENTICATION_CONFIG) config: AuthenticationBlockConfig\n ) {\n this.block = createAuthenticationBlock(transport, config);\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Auth Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n signIn(request: SignInRequest): Observable<SignInResponse> {\n return from(this.block.auth.signIn(request));\n }\n\n signUp(request: SignUpRequest): Observable<SignUpResponse> {\n return from(this.block.auth.signUp(request));\n }\n\n signOut(): Observable<void> {\n return from(this.block.auth.signOut());\n }\n\n requestPasswordReset(request: PasswordResetRequest): Observable<void> {\n return from(this.block.auth.requestPasswordReset(request));\n }\n\n updatePassword(request: PasswordUpdateRequest): Observable<void> {\n return from(this.block.auth.updatePassword(request));\n }\n\n validateToken(token: string): Observable<TokenValidationResponse> {\n return from(this.block.auth.validateToken(token));\n }\n\n getCurrentUser(): Observable<User | null> {\n return from(this.block.auth.getCurrentUser());\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Users Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listUsers(params?: { page?: number; perPage?: number }): Observable<User[]> {\n return from(this.block.users.list(params));\n }\n\n getUser(id: string): Observable<User> {\n return from(this.block.users.get(id));\n }\n\n updateUser(id: string, request: UpdateUserRequest): Observable<User> {\n return from(this.block.users.update(id, request));\n }\n\n deleteUser(id: string): Observable<void> {\n return from(this.block.users.delete(id));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Roles Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listRoles(): Observable<Role[]> {\n return from(this.block.roles.list());\n }\n\n getRole(id: string): Observable<Role> {\n return from(this.block.roles.get(id));\n }\n\n createRole(request: CreateRoleRequest): Observable<Role> {\n return from(this.block.roles.create(request));\n }\n\n updateRole(id: string, request: UpdateRoleRequest): Observable<Role> {\n return from(this.block.roles.update(id, request));\n }\n\n deleteRole(id: string): Observable<void> {\n return from(this.block.roles.delete(id));\n }\n\n listPermissions(): Observable<Permission[]> {\n return from(this.block.roles.listPermissions());\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // API Keys Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listApiKeys(): Observable<ApiKey[]> {\n return from(this.block.apiKeys.list());\n }\n\n getApiKey(id: string): Observable<ApiKey> {\n return from(this.block.apiKeys.get(id));\n }\n\n createApiKey(request: CreateApiKeyRequest): Observable<ApiKeyWithSecret> {\n return from(this.block.apiKeys.create(request));\n }\n\n updateApiKey(id: string, request: UpdateApiKeyRequest): Observable<ApiKey> {\n return from(this.block.apiKeys.update(id, request));\n }\n\n revokeApiKey(id: string): Observable<void> {\n return from(this.block.apiKeys.revoke(id));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Direct Block Access (for advanced usage)\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * Access the underlying block for advanced operations\n * Use this when you need access to services not wrapped by this Angular service\n */\n get rawBlock(): AuthenticationBlock {\n return this.block;\n }\n}\n"],"names":["Injectable","Inject","from","createAuthenticationBlock","TRANSPORT","AUTHENTICATION_CONFIG","AuthenticationService","signIn","request","block","auth","signUp","signOut","requestPasswordReset","updatePassword","validateToken","token","getCurrentUser","listUsers","params","users","list","getUser","id","get","updateUser","update","deleteUser","delete","listRoles","roles","getRole","createRole","create","updateRole","deleteRole","listPermissions","listApiKeys","apiKeys","getApiKey","createApiKey","updateApiKey","revokeApiKey","revoke","rawBlock","constructor","transport","config","providedIn"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/authentication/index.ts"],"sourcesContent":["export { AuthenticationService } from './authentication.service.js';\n"],"names":["AuthenticationService"],"rangeMappings":"","mappings":"AAAA,SAASA,qBAAqB,QAAQ,8BAA8B"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
// Tokens
|
|
2
|
+
export { TRANSPORT, AUTHENTICATION_CONFIG, SEARCH_CONFIG } from './tokens.js';
|
|
3
|
+
// Provider functions
|
|
4
|
+
export { provide23Blocks, get23BlocksProviders } from './providers.js';
|
|
5
|
+
// Services
|
|
6
|
+
export { AuthenticationService } from './authentication/index.js';
|
|
7
|
+
export { SearchService } from './search/index.js';
|
|
8
|
+
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/lib/index.ts"],"sourcesContent":["// Tokens\nexport { TRANSPORT, AUTHENTICATION_CONFIG, SEARCH_CONFIG } from './tokens.js';\n\n// Provider functions\nexport { provide23Blocks, get23BlocksProviders, type Provide23BlocksConfig } from './providers.js';\n\n// Services\nexport { AuthenticationService } from './authentication/index.js';\nexport { SearchService } from './search/index.js';\n"],"names":["TRANSPORT","AUTHENTICATION_CONFIG","SEARCH_CONFIG","provide23Blocks","get23BlocksProviders","AuthenticationService","SearchService"],"rangeMappings":";;;;;;","mappings":"AAAA,SAAS;AACT,SAASA,SAAS,EAAEC,qBAAqB,EAAEC,aAAa,QAAQ,cAAc;AAE9E,qBAAqB;AACrB,SAASC,eAAe,EAAEC,oBAAoB,QAAoC,iBAAiB;AAEnG,WAAW;AACX,SAASC,qBAAqB,QAAQ,4BAA4B;AAClE,SAASC,aAAa,QAAQ,oBAAoB"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { makeEnvironmentProviders } from '@angular/core';
|
|
2
|
+
import { TRANSPORT, AUTHENTICATION_CONFIG, SEARCH_CONFIG } from './tokens.js';
|
|
3
|
+
/**
|
|
4
|
+
* Provide 23blocks services for standalone Angular applications.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```typescript
|
|
8
|
+
* // app.config.ts
|
|
9
|
+
* import { ApplicationConfig } from '@angular/core';
|
|
10
|
+
* import { provide23Blocks } from '@23blocks/angular';
|
|
11
|
+
* import { createHttpTransport } from '@23blocks/transport-http';
|
|
12
|
+
*
|
|
13
|
+
* const transport = createHttpTransport({
|
|
14
|
+
* baseUrl: 'https://api.example.com',
|
|
15
|
+
* headers: () => ({
|
|
16
|
+
* 'Authorization': `Bearer ${localStorage.getItem('token')}`,
|
|
17
|
+
* }),
|
|
18
|
+
* });
|
|
19
|
+
*
|
|
20
|
+
* export const appConfig: ApplicationConfig = {
|
|
21
|
+
* providers: [
|
|
22
|
+
* provide23Blocks({
|
|
23
|
+
* transport,
|
|
24
|
+
* authentication: { appId: 'my-app' },
|
|
25
|
+
* search: { appId: 'my-app' },
|
|
26
|
+
* }),
|
|
27
|
+
* ],
|
|
28
|
+
* };
|
|
29
|
+
* ```
|
|
30
|
+
*/ export function provide23Blocks(config) {
|
|
31
|
+
const providers = [
|
|
32
|
+
{
|
|
33
|
+
provide: TRANSPORT,
|
|
34
|
+
useValue: config.transport
|
|
35
|
+
}
|
|
36
|
+
];
|
|
37
|
+
if (config.authentication) {
|
|
38
|
+
providers.push({
|
|
39
|
+
provide: AUTHENTICATION_CONFIG,
|
|
40
|
+
useValue: config.authentication
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
if (config.search) {
|
|
44
|
+
providers.push({
|
|
45
|
+
provide: SEARCH_CONFIG,
|
|
46
|
+
useValue: config.search
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
return makeEnvironmentProviders(providers);
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Get providers array for NgModule-based applications.
|
|
53
|
+
*
|
|
54
|
+
* @example
|
|
55
|
+
* ```typescript
|
|
56
|
+
* // app.module.ts
|
|
57
|
+
* import { NgModule } from '@angular/core';
|
|
58
|
+
* import { get23BlocksProviders } from '@23blocks/angular';
|
|
59
|
+
*
|
|
60
|
+
* @NgModule({
|
|
61
|
+
* providers: [
|
|
62
|
+
* ...get23BlocksProviders({
|
|
63
|
+
* transport,
|
|
64
|
+
* authentication: { appId: 'my-app' },
|
|
65
|
+
* }),
|
|
66
|
+
* ],
|
|
67
|
+
* })
|
|
68
|
+
* export class AppModule {}
|
|
69
|
+
* ```
|
|
70
|
+
*/ export function get23BlocksProviders(config) {
|
|
71
|
+
const providers = [
|
|
72
|
+
{
|
|
73
|
+
provide: TRANSPORT,
|
|
74
|
+
useValue: config.transport
|
|
75
|
+
}
|
|
76
|
+
];
|
|
77
|
+
if (config.authentication) {
|
|
78
|
+
providers.push({
|
|
79
|
+
provide: AUTHENTICATION_CONFIG,
|
|
80
|
+
useValue: config.authentication
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
if (config.search) {
|
|
84
|
+
providers.push({
|
|
85
|
+
provide: SEARCH_CONFIG,
|
|
86
|
+
useValue: config.search
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
return providers;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
//# sourceMappingURL=providers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/lib/providers.ts"],"sourcesContent":["import type { Provider, EnvironmentProviders } from '@angular/core';\nimport { makeEnvironmentProviders } from '@angular/core';\nimport type { Transport } from '@23blocks/contracts';\nimport type { AuthenticationBlockConfig } from '@23blocks/block-authentication';\nimport type { SearchBlockConfig } from '@23blocks/block-search';\nimport { TRANSPORT, AUTHENTICATION_CONFIG, SEARCH_CONFIG } from './tokens.js';\n\n/**\n * Configuration for providing 23blocks services\n */\nexport interface Provide23BlocksConfig {\n /**\n * The transport instance (e.g., from createHttpTransport)\n */\n transport: Transport;\n\n /**\n * Authentication block configuration (optional)\n */\n authentication?: AuthenticationBlockConfig;\n\n /**\n * Search block configuration (optional)\n */\n search?: SearchBlockConfig;\n}\n\n/**\n * Provide 23blocks services for standalone Angular applications.\n *\n * @example\n * ```typescript\n * // app.config.ts\n * import { ApplicationConfig } from '@angular/core';\n * import { provide23Blocks } from '@23blocks/angular';\n * import { createHttpTransport } from '@23blocks/transport-http';\n *\n * const transport = createHttpTransport({\n * baseUrl: 'https://api.example.com',\n * headers: () => ({\n * 'Authorization': `Bearer ${localStorage.getItem('token')}`,\n * }),\n * });\n *\n * export const appConfig: ApplicationConfig = {\n * providers: [\n * provide23Blocks({\n * transport,\n * authentication: { appId: 'my-app' },\n * search: { appId: 'my-app' },\n * }),\n * ],\n * };\n * ```\n */\nexport function provide23Blocks(config: Provide23BlocksConfig): EnvironmentProviders {\n const providers: Provider[] = [\n { provide: TRANSPORT, useValue: config.transport },\n ];\n\n if (config.authentication) {\n providers.push({\n provide: AUTHENTICATION_CONFIG,\n useValue: config.authentication,\n });\n }\n\n if (config.search) {\n providers.push({\n provide: SEARCH_CONFIG,\n useValue: config.search,\n });\n }\n\n return makeEnvironmentProviders(providers);\n}\n\n/**\n * Get providers array for NgModule-based applications.\n *\n * @example\n * ```typescript\n * // app.module.ts\n * import { NgModule } from '@angular/core';\n * import { get23BlocksProviders } from '@23blocks/angular';\n *\n * @NgModule({\n * providers: [\n * ...get23BlocksProviders({\n * transport,\n * authentication: { appId: 'my-app' },\n * }),\n * ],\n * })\n * export class AppModule {}\n * ```\n */\nexport function get23BlocksProviders(config: Provide23BlocksConfig): Provider[] {\n const providers: Provider[] = [\n { provide: TRANSPORT, useValue: config.transport },\n ];\n\n if (config.authentication) {\n providers.push({\n provide: AUTHENTICATION_CONFIG,\n useValue: config.authentication,\n });\n }\n\n if (config.search) {\n providers.push({\n provide: SEARCH_CONFIG,\n useValue: config.search,\n });\n }\n\n return providers;\n}\n"],"names":["makeEnvironmentProviders","TRANSPORT","AUTHENTICATION_CONFIG","SEARCH_CONFIG","provide23Blocks","config","providers","provide","useValue","transport","authentication","push","search","get23BlocksProviders"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AACA,SAASA,wBAAwB,QAAQ,gBAAgB;AAIzD,SAASC,SAAS,EAAEC,qBAAqB,EAAEC,aAAa,QAAQ,cAAc;AAsB9E;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2BC,GACD,OAAO,SAASC,gBAAgBC,MAA6B;IAC3D,MAAMC,YAAwB;QAC5B;YAAEC,SAASN;YAAWO,UAAUH,OAAOI,SAAS;QAAC;KAClD;IAED,IAAIJ,OAAOK,cAAc,EAAE;QACzBJ,UAAUK,IAAI,CAAC;YACbJ,SAASL;YACTM,UAAUH,OAAOK,cAAc;QACjC;IACF;IAEA,IAAIL,OAAOO,MAAM,EAAE;QACjBN,UAAUK,IAAI,CAAC;YACbJ,SAASJ;YACTK,UAAUH,OAAOO,MAAM;QACzB;IACF;IAEA,OAAOZ,yBAAyBM;AAClC;AAEA;;;;;;;;;;;;;;;;;;;CAmBC,GACD,OAAO,SAASO,qBAAqBR,MAA6B;IAChE,MAAMC,YAAwB;QAC5B;YAAEC,SAASN;YAAWO,UAAUH,OAAOI,SAAS;QAAC;KAClD;IAED,IAAIJ,OAAOK,cAAc,EAAE;QACzBJ,UAAUK,IAAI,CAAC;YACbJ,SAASL;YACTM,UAAUH,OAAOK,cAAc;QACjC;IACF;IAEA,IAAIL,OAAOO,MAAM,EAAE;QACjBN,UAAUK,IAAI,CAAC;YACbJ,SAASJ;YACTK,UAAUH,OAAOO,MAAM;QACzB;IACF;IAEA,OAAON;AACT"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/search/index.ts"],"sourcesContent":["export { SearchService } from './search.service.js';\n"],"names":["SearchService"],"rangeMappings":"","mappings":"AAAA,SAASA,aAAa,QAAQ,sBAAsB"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { _ as _ts_decorate } from "@swc/helpers/_/_ts_decorate";
|
|
2
|
+
import { _ as _ts_metadata } from "@swc/helpers/_/_ts_metadata";
|
|
3
|
+
import { _ as _ts_param } from "@swc/helpers/_/_ts_param";
|
|
4
|
+
import { Injectable, Inject } from '@angular/core';
|
|
5
|
+
import { from } from 'rxjs';
|
|
6
|
+
import { createSearchBlock } from '@23blocks/block-search';
|
|
7
|
+
import { TRANSPORT, SEARCH_CONFIG } from '../tokens.js';
|
|
8
|
+
export class SearchService {
|
|
9
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
10
|
+
// Search Operations
|
|
11
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
12
|
+
/**
|
|
13
|
+
* Perform a search query
|
|
14
|
+
*/ search(request) {
|
|
15
|
+
return from(this.block.search.search(request));
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Get search suggestions for autocomplete
|
|
19
|
+
*/ suggest(query, limit) {
|
|
20
|
+
return from(this.block.search.suggest(query, limit));
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Get available entity types for filtering
|
|
24
|
+
*/ getEntityTypes() {
|
|
25
|
+
return from(this.block.search.entityTypes());
|
|
26
|
+
}
|
|
27
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
28
|
+
// Search History
|
|
29
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
30
|
+
/**
|
|
31
|
+
* Get recent search queries
|
|
32
|
+
*/ getLastQueries(limit) {
|
|
33
|
+
return from(this.block.history.getLastQueries(limit));
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Get the full history of search queries
|
|
37
|
+
*/ getQueryHistory(params) {
|
|
38
|
+
return from(this.block.history.getHistory(params));
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Clear search history
|
|
42
|
+
*/ clearHistory() {
|
|
43
|
+
return from(this.block.history.clear());
|
|
44
|
+
}
|
|
45
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
46
|
+
// Favorites
|
|
47
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
48
|
+
/**
|
|
49
|
+
* List user's favorite entities
|
|
50
|
+
*/ listFavorites() {
|
|
51
|
+
return from(this.block.favorites.list());
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Add an entity to favorites
|
|
55
|
+
*/ addFavorite(request) {
|
|
56
|
+
return from(this.block.favorites.add(request));
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Remove an entity from favorites
|
|
60
|
+
*/ removeFavorite(id) {
|
|
61
|
+
return from(this.block.favorites.remove(id));
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Check if an entity is favorited
|
|
65
|
+
*/ isFavorite(entityUniqueId) {
|
|
66
|
+
return from(this.block.favorites.isFavorite(entityUniqueId));
|
|
67
|
+
}
|
|
68
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
69
|
+
// Direct Block Access (for advanced usage)
|
|
70
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
71
|
+
/**
|
|
72
|
+
* Access the underlying block for advanced operations
|
|
73
|
+
*/ get rawBlock() {
|
|
74
|
+
return this.block;
|
|
75
|
+
}
|
|
76
|
+
constructor(transport, config){
|
|
77
|
+
this.block = createSearchBlock(transport, config);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
SearchService = _ts_decorate([
|
|
81
|
+
Injectable({
|
|
82
|
+
providedIn: 'root'
|
|
83
|
+
}),
|
|
84
|
+
_ts_param(0, Inject(TRANSPORT)),
|
|
85
|
+
_ts_param(1, Inject(SEARCH_CONFIG)),
|
|
86
|
+
_ts_metadata("design:type", Function),
|
|
87
|
+
_ts_metadata("design:paramtypes", [
|
|
88
|
+
typeof Transport === "undefined" ? Object : Transport,
|
|
89
|
+
typeof SearchBlockConfig === "undefined" ? Object : SearchBlockConfig
|
|
90
|
+
])
|
|
91
|
+
], SearchService);
|
|
92
|
+
|
|
93
|
+
//# sourceMappingURL=search.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/search/search.service.ts"],"sourcesContent":["import { Injectable, Inject } from '@angular/core';\nimport { Observable, from } from 'rxjs';\nimport type { Transport } from '@23blocks/contracts';\nimport {\n createSearchBlock,\n type SearchBlock,\n type SearchBlockConfig,\n type SearchResult,\n type SearchQuery,\n type LastQuery,\n type FavoriteEntity,\n type EntityType,\n type SearchRequest,\n type SearchResponse,\n type AddFavoriteRequest,\n} from '@23blocks/block-search';\nimport { TRANSPORT, SEARCH_CONFIG } from '../tokens.js';\n\n/**\n * Angular service wrapping the Search block.\n * Converts Promise-based APIs to RxJS Observables.\n *\n * @example\n * ```typescript\n * @Component({...})\n * export class SearchComponent {\n * results$ = new BehaviorSubject<SearchResult[]>([]);\n *\n * constructor(private searchService: SearchService) {}\n *\n * onSearch(query: string) {\n * this.searchService.search({ query }).subscribe({\n * next: (response) => this.results$.next(response.results),\n * error: (err) => console.error('Search failed:', err),\n * });\n * }\n * }\n * ```\n */\n@Injectable({ providedIn: 'root' })\nexport class SearchService {\n private readonly block: SearchBlock;\n\n constructor(\n @Inject(TRANSPORT) transport: Transport,\n @Inject(SEARCH_CONFIG) config: SearchBlockConfig\n ) {\n this.block = createSearchBlock(transport, config);\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Search Operations\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * Perform a search query\n */\n search(request: SearchRequest): Observable<SearchResponse> {\n return from(this.block.search.search(request));\n }\n\n /**\n * Get search suggestions for autocomplete\n */\n suggest(query: string, limit?: number): Observable<SearchResult[]> {\n return from(this.block.search.suggest(query, limit));\n }\n\n /**\n * Get available entity types for filtering\n */\n getEntityTypes(): Observable<EntityType[]> {\n return from(this.block.search.entityTypes());\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Search History\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * Get recent search queries\n */\n getLastQueries(limit?: number): Observable<LastQuery[]> {\n return from(this.block.history.getLastQueries(limit));\n }\n\n /**\n * Get the full history of search queries\n */\n getQueryHistory(params?: { page?: number; perPage?: number }): Observable<SearchQuery[]> {\n return from(this.block.history.getHistory(params));\n }\n\n /**\n * Clear search history\n */\n clearHistory(): Observable<void> {\n return from(this.block.history.clear());\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Favorites\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * List user's favorite entities\n */\n listFavorites(): Observable<FavoriteEntity[]> {\n return from(this.block.favorites.list());\n }\n\n /**\n * Add an entity to favorites\n */\n addFavorite(request: AddFavoriteRequest): Observable<FavoriteEntity> {\n return from(this.block.favorites.add(request));\n }\n\n /**\n * Remove an entity from favorites\n */\n removeFavorite(id: string): Observable<void> {\n return from(this.block.favorites.remove(id));\n }\n\n /**\n * Check if an entity is favorited\n */\n isFavorite(entityUniqueId: string): Observable<boolean> {\n return from(this.block.favorites.isFavorite(entityUniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Direct Block Access (for advanced usage)\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * Access the underlying block for advanced operations\n */\n get rawBlock(): SearchBlock {\n return this.block;\n }\n}\n"],"names":["Injectable","Inject","from","createSearchBlock","TRANSPORT","SEARCH_CONFIG","SearchService","search","request","block","suggest","query","limit","getEntityTypes","entityTypes","getLastQueries","history","getQueryHistory","params","getHistory","clearHistory","clear","listFavorites","favorites","list","addFavorite","add","removeFavorite","id","remove","isFavorite","entityUniqueId","rawBlock","constructor","transport","config","providedIn"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;AAAA,SAASA,UAAU,EAAEC,MAAM,QAAQ,gBAAgB;AACnD,SAAqBC,IAAI,QAAQ,OAAO;AAExC,SACEC,iBAAiB,QAWZ,yBAAyB;AAChC,SAASC,SAAS,EAAEC,aAAa,QAAQ,eAAe;AAwBxD,OAAO,MAAMC;IAUX,gFAAgF;IAChF,oBAAoB;IACpB,gFAAgF;IAEhF;;GAEC,GACDC,OAAOC,OAAsB,EAA8B;QACzD,OAAON,KAAK,IAAI,CAACO,KAAK,CAACF,MAAM,CAACA,MAAM,CAACC;IACvC;IAEA;;GAEC,GACDE,QAAQC,KAAa,EAAEC,KAAc,EAA8B;QACjE,OAAOV,KAAK,IAAI,CAACO,KAAK,CAACF,MAAM,CAACG,OAAO,CAACC,OAAOC;IAC/C;IAEA;;GAEC,GACDC,iBAA2C;QACzC,OAAOX,KAAK,IAAI,CAACO,KAAK,CAACF,MAAM,CAACO,WAAW;IAC3C;IAEA,gFAAgF;IAChF,iBAAiB;IACjB,gFAAgF;IAEhF;;GAEC,GACDC,eAAeH,KAAc,EAA2B;QACtD,OAAOV,KAAK,IAAI,CAACO,KAAK,CAACO,OAAO,CAACD,cAAc,CAACH;IAChD;IAEA;;GAEC,GACDK,gBAAgBC,MAA4C,EAA6B;QACvF,OAAOhB,KAAK,IAAI,CAACO,KAAK,CAACO,OAAO,CAACG,UAAU,CAACD;IAC5C;IAEA;;GAEC,GACDE,eAAiC;QAC/B,OAAOlB,KAAK,IAAI,CAACO,KAAK,CAACO,OAAO,CAACK,KAAK;IACtC;IAEA,gFAAgF;IAChF,YAAY;IACZ,gFAAgF;IAEhF;;GAEC,GACDC,gBAA8C;QAC5C,OAAOpB,KAAK,IAAI,CAACO,KAAK,CAACc,SAAS,CAACC,IAAI;IACvC;IAEA;;GAEC,GACDC,YAAYjB,OAA2B,EAA8B;QACnE,OAAON,KAAK,IAAI,CAACO,KAAK,CAACc,SAAS,CAACG,GAAG,CAAClB;IACvC;IAEA;;GAEC,GACDmB,eAAeC,EAAU,EAAoB;QAC3C,OAAO1B,KAAK,IAAI,CAACO,KAAK,CAACc,SAAS,CAACM,MAAM,CAACD;IAC1C;IAEA;;GAEC,GACDE,WAAWC,cAAsB,EAAuB;QACtD,OAAO7B,KAAK,IAAI,CAACO,KAAK,CAACc,SAAS,CAACO,UAAU,CAACC;IAC9C;IAEA,gFAAgF;IAChF,2CAA2C;IAC3C,gFAAgF;IAEhF;;GAEC,GACD,IAAIC,WAAwB;QAC1B,OAAO,IAAI,CAACvB,KAAK;IACnB;IAlGAwB,YACE,AAAmBC,SAAoB,EACvC,AAAuBC,MAAyB,CAChD;QACA,IAAI,CAAC1B,KAAK,GAAGN,kBAAkB+B,WAAWC;IAC5C;AA8FF;AAtGa7B;IADZN,WAAW;QAAEoC,YAAY;IAAO;IAK5BnC,aAAAA,OAAOG;IACPH,aAAAA,OAAOI;;;eADsB,qCAAA;eACC,6CAAA;;GALtBC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
|
2
|
+
/**
|
|
3
|
+
* Injection token for the Transport instance
|
|
4
|
+
*/ export const TRANSPORT = new InjectionToken('23blocks.transport');
|
|
5
|
+
/**
|
|
6
|
+
* Injection token for Authentication block configuration
|
|
7
|
+
*/ export const AUTHENTICATION_CONFIG = new InjectionToken('23blocks.authentication.config');
|
|
8
|
+
/**
|
|
9
|
+
* Injection token for Search block configuration
|
|
10
|
+
*/ export const SEARCH_CONFIG = new InjectionToken('23blocks.search.config');
|
|
11
|
+
|
|
12
|
+
//# sourceMappingURL=tokens.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/lib/tokens.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport type { Transport } from '@23blocks/contracts';\nimport type { AuthenticationBlockConfig } from '@23blocks/block-authentication';\nimport type { SearchBlockConfig } from '@23blocks/block-search';\n\n/**\n * Injection token for the Transport instance\n */\nexport const TRANSPORT = new InjectionToken<Transport>('23blocks.transport');\n\n/**\n * Injection token for Authentication block configuration\n */\nexport const AUTHENTICATION_CONFIG = new InjectionToken<AuthenticationBlockConfig>(\n '23blocks.authentication.config'\n);\n\n/**\n * Injection token for Search block configuration\n */\nexport const SEARCH_CONFIG = new InjectionToken<SearchBlockConfig>(\n '23blocks.search.config'\n);\n"],"names":["InjectionToken","TRANSPORT","AUTHENTICATION_CONFIG","SEARCH_CONFIG"],"rangeMappings":";;;;;;;;;","mappings":"AAAA,SAASA,cAAc,QAAQ,gBAAgB;AAK/C;;CAEC,GACD,OAAO,MAAMC,YAAY,IAAID,eAA0B,sBAAsB;AAE7E;;CAEC,GACD,OAAO,MAAME,wBAAwB,IAAIF,eACvC,kCACA;AAEF;;CAEC,GACD,OAAO,MAAMG,gBAAgB,IAAIH,eAC/B,0BACA"}
|
package/package.json
ADDED
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@23blocks/angular",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Angular bindings for 23blocks SDK - Injectable services with RxJS Observables",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"author": "23blocks <hello@23blocks.com>",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "https://github.com/23blocks-OS/frontend-sdk.git",
|
|
10
|
+
"directory": "packages/angular"
|
|
11
|
+
},
|
|
12
|
+
"homepage": "https://github.com/23blocks-OS/frontend-sdk/tree/main/packages/angular",
|
|
13
|
+
"bugs": {
|
|
14
|
+
"url": "https://github.com/23blocks-OS/frontend-sdk/issues"
|
|
15
|
+
},
|
|
16
|
+
"keywords": [
|
|
17
|
+
"23blocks",
|
|
18
|
+
"sdk",
|
|
19
|
+
"angular",
|
|
20
|
+
"rxjs",
|
|
21
|
+
"observable",
|
|
22
|
+
"injectable"
|
|
23
|
+
],
|
|
24
|
+
"type": "module",
|
|
25
|
+
"main": "./dist/index.js",
|
|
26
|
+
"module": "./dist/index.js",
|
|
27
|
+
"types": "./dist/index.d.ts",
|
|
28
|
+
"exports": {
|
|
29
|
+
"./package.json": "./package.json",
|
|
30
|
+
".": {
|
|
31
|
+
"types": "./dist/index.d.ts",
|
|
32
|
+
"import": "./dist/index.js",
|
|
33
|
+
"default": "./dist/index.js"
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
"files": [
|
|
37
|
+
"dist",
|
|
38
|
+
"!**/*.tsbuildinfo"
|
|
39
|
+
],
|
|
40
|
+
"nx": {
|
|
41
|
+
"sourceRoot": "packages/angular/src",
|
|
42
|
+
"targets": {
|
|
43
|
+
"build": {
|
|
44
|
+
"executor": "@nx/js:swc",
|
|
45
|
+
"outputs": [
|
|
46
|
+
"{options.outputPath}"
|
|
47
|
+
],
|
|
48
|
+
"options": {
|
|
49
|
+
"outputPath": "packages/angular/dist",
|
|
50
|
+
"main": "packages/angular/src/index.ts",
|
|
51
|
+
"tsConfig": "packages/angular/tsconfig.lib.json",
|
|
52
|
+
"skipTypeCheck": true,
|
|
53
|
+
"stripLeadingPaths": true
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
"dependencies": {
|
|
59
|
+
"@23blocks/contracts": "*",
|
|
60
|
+
"@23blocks/block-authentication": "*",
|
|
61
|
+
"@23blocks/block-search": "*",
|
|
62
|
+
"@swc/helpers": "~0.5.11"
|
|
63
|
+
},
|
|
64
|
+
"peerDependencies": {
|
|
65
|
+
"@angular/core": ">=17.0.0",
|
|
66
|
+
"rxjs": ">=7.0.0"
|
|
67
|
+
}
|
|
68
|
+
}
|