@23blocks/block-authentication 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 +8 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/authentication.block.js +102 -0
- package/dist/lib/authentication.block.js.map +1 -0
- package/dist/lib/mappers/api-key.mapper.js +57 -0
- package/dist/lib/mappers/api-key.mapper.js.map +1 -0
- package/dist/lib/mappers/app.mapper.js +98 -0
- package/dist/lib/mappers/app.mapper.js.map +1 -0
- package/dist/lib/mappers/company.mapper.js +128 -0
- package/dist/lib/mappers/company.mapper.js.map +1 -0
- package/dist/lib/mappers/geography.mapper.js +129 -0
- package/dist/lib/mappers/geography.mapper.js.map +1 -0
- package/dist/lib/mappers/guest.mapper.js +176 -0
- package/dist/lib/mappers/guest.mapper.js.map +1 -0
- package/dist/lib/mappers/index.js +18 -0
- package/dist/lib/mappers/index.js.map +1 -0
- package/dist/lib/mappers/subscription.mapper.js +134 -0
- package/dist/lib/mappers/subscription.mapper.js.map +1 -0
- package/dist/lib/mappers/user.mapper.js +163 -0
- package/dist/lib/mappers/user.mapper.js.map +1 -0
- package/dist/lib/mappers/utils.js +54 -0
- package/dist/lib/mappers/utils.js.map +1 -0
- package/dist/lib/services/api-keys.service.js +93 -0
- package/dist/lib/services/api-keys.service.js.map +1 -0
- package/dist/lib/services/apps.service.js +139 -0
- package/dist/lib/services/apps.service.js.map +1 -0
- package/dist/lib/services/auth.service.js +147 -0
- package/dist/lib/services/auth.service.js.map +1 -0
- package/dist/lib/services/geography.service.js +151 -0
- package/dist/lib/services/geography.service.js.map +1 -0
- package/dist/lib/services/guests.service.js +219 -0
- package/dist/lib/services/guests.service.js.map +1 -0
- package/dist/lib/services/index.js +14 -0
- package/dist/lib/services/index.js.map +1 -0
- package/dist/lib/services/roles.service.js +91 -0
- package/dist/lib/services/roles.service.js.map +1 -0
- package/dist/lib/services/subscriptions.service.js +146 -0
- package/dist/lib/services/subscriptions.service.js.map +1 -0
- package/dist/lib/services/users.service.js +116 -0
- package/dist/lib/services/users.service.js.map +1 -0
- package/dist/lib/types/api-key.js +5 -0
- package/dist/lib/types/api-key.js.map +1 -0
- package/dist/lib/types/app.js +5 -0
- package/dist/lib/types/app.js.map +1 -0
- package/dist/lib/types/auth.js +5 -0
- package/dist/lib/types/auth.js.map +1 -0
- package/dist/lib/types/company.js +5 -0
- package/dist/lib/types/company.js.map +1 -0
- package/dist/lib/types/geography.js +5 -0
- package/dist/lib/types/geography.js.map +1 -0
- package/dist/lib/types/guest.js +5 -0
- package/dist/lib/types/guest.js.map +1 -0
- package/dist/lib/types/index.js +4 -0
- package/dist/lib/types/index.js.map +1 -0
- package/dist/lib/types/subscription.js +5 -0
- package/dist/lib/types/subscription.js.map +1 -0
- package/dist/lib/types/user.js +13 -0
- package/dist/lib/types/user.js.map +1 -0
- package/package.json +64 -0
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
import { _ as _extends } from "@swc/helpers/_/_extends";
|
|
2
|
+
import { decodeOne, decodeMany, decodePageResult } from '@23blocks/jsonapi-codec';
|
|
3
|
+
import { subscriptionModelMapper, userSubscriptionMapper, companySubscriptionMapper } from '../mappers/index.js';
|
|
4
|
+
/**
|
|
5
|
+
* Build filter params for list operations
|
|
6
|
+
*/ function buildListParams(params) {
|
|
7
|
+
if (!params) return {};
|
|
8
|
+
const queryParams = {};
|
|
9
|
+
if (params.page) {
|
|
10
|
+
queryParams['page[number]'] = params.page;
|
|
11
|
+
}
|
|
12
|
+
if (params.perPage) {
|
|
13
|
+
queryParams['page[size]'] = params.perPage;
|
|
14
|
+
}
|
|
15
|
+
if (params.sort) {
|
|
16
|
+
const sorts = Array.isArray(params.sort) ? params.sort : [
|
|
17
|
+
params.sort
|
|
18
|
+
];
|
|
19
|
+
queryParams['sort'] = sorts.map((s)=>s.direction === 'desc' ? `-${s.field}` : s.field).join(',');
|
|
20
|
+
}
|
|
21
|
+
if (params.filter) {
|
|
22
|
+
for (const [key, value] of Object.entries(params.filter)){
|
|
23
|
+
queryParams[`filter[${key}]`] = value;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
if (params.include) {
|
|
27
|
+
queryParams['include'] = params.include.join(',');
|
|
28
|
+
}
|
|
29
|
+
return queryParams;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Create the subscription models service
|
|
33
|
+
*/ export function createSubscriptionModelsService(transport, _config) {
|
|
34
|
+
return {
|
|
35
|
+
async list (params) {
|
|
36
|
+
const response = await transport.get('/subscription_models', {
|
|
37
|
+
params: buildListParams(params)
|
|
38
|
+
});
|
|
39
|
+
return decodePageResult(response, subscriptionModelMapper);
|
|
40
|
+
},
|
|
41
|
+
async get (id) {
|
|
42
|
+
const response = await transport.get(`/subscription_models/${id}`);
|
|
43
|
+
return decodeOne(response, subscriptionModelMapper);
|
|
44
|
+
},
|
|
45
|
+
async getByCode (code) {
|
|
46
|
+
const response = await transport.get(`/subscription_models/by_code/${code}`);
|
|
47
|
+
return decodeOne(response, subscriptionModelMapper);
|
|
48
|
+
},
|
|
49
|
+
async promotional () {
|
|
50
|
+
const response = await transport.get('/subscription_models/promotional');
|
|
51
|
+
return decodeMany(response, subscriptionModelMapper);
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Create the user subscriptions service
|
|
57
|
+
*/ export function createUserSubscriptionsService(transport, _config) {
|
|
58
|
+
return {
|
|
59
|
+
async list (params) {
|
|
60
|
+
const response = await transport.get('/user_subscriptions', {
|
|
61
|
+
params: _extends({}, buildListParams(params), {
|
|
62
|
+
include: 'subscription_model'
|
|
63
|
+
})
|
|
64
|
+
});
|
|
65
|
+
return decodePageResult(response, userSubscriptionMapper);
|
|
66
|
+
},
|
|
67
|
+
async get (id) {
|
|
68
|
+
const response = await transport.get(`/user_subscriptions/${id}`, {
|
|
69
|
+
params: {
|
|
70
|
+
include: 'subscription_model'
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
return decodeOne(response, userSubscriptionMapper);
|
|
74
|
+
},
|
|
75
|
+
async forUser (userUniqueId) {
|
|
76
|
+
const response = await transport.get(`/users/${userUniqueId}/subscriptions`, {
|
|
77
|
+
params: {
|
|
78
|
+
include: 'subscription_model'
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
return decodeMany(response, userSubscriptionMapper);
|
|
82
|
+
},
|
|
83
|
+
async subscribe (userUniqueId, request) {
|
|
84
|
+
const response = await transport.post(`/users/${userUniqueId}/subscriptions`, {
|
|
85
|
+
subscription_model_code: request.subscriptionModelCode,
|
|
86
|
+
initial_payment: request.initialPayment
|
|
87
|
+
});
|
|
88
|
+
return decodeOne(response, userSubscriptionMapper);
|
|
89
|
+
},
|
|
90
|
+
async cancel (id) {
|
|
91
|
+
const response = await transport.post(`/user_subscriptions/${id}/cancel`);
|
|
92
|
+
return decodeOne(response, userSubscriptionMapper);
|
|
93
|
+
},
|
|
94
|
+
async reactivate (id) {
|
|
95
|
+
const response = await transport.post(`/user_subscriptions/${id}/reactivate`);
|
|
96
|
+
return decodeOne(response, userSubscriptionMapper);
|
|
97
|
+
}
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Create the company subscriptions service
|
|
102
|
+
*/ export function createCompanySubscriptionsService(transport, _config) {
|
|
103
|
+
return {
|
|
104
|
+
async list (params) {
|
|
105
|
+
const response = await transport.get('/company_subscriptions', {
|
|
106
|
+
params: _extends({}, buildListParams(params), {
|
|
107
|
+
include: 'subscription_model'
|
|
108
|
+
})
|
|
109
|
+
});
|
|
110
|
+
return decodePageResult(response, companySubscriptionMapper);
|
|
111
|
+
},
|
|
112
|
+
async get (id) {
|
|
113
|
+
const response = await transport.get(`/company_subscriptions/${id}`, {
|
|
114
|
+
params: {
|
|
115
|
+
include: 'subscription_model'
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
return decodeOne(response, companySubscriptionMapper);
|
|
119
|
+
},
|
|
120
|
+
async forCompany (companyUniqueId) {
|
|
121
|
+
const response = await transport.get(`/companies/${companyUniqueId}/subscriptions`, {
|
|
122
|
+
params: {
|
|
123
|
+
include: 'subscription_model'
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
return decodeMany(response, companySubscriptionMapper);
|
|
127
|
+
},
|
|
128
|
+
async subscribe (companyUniqueId, request) {
|
|
129
|
+
const response = await transport.post(`/companies/${companyUniqueId}/subscriptions`, {
|
|
130
|
+
subscription_model_code: request.subscriptionModelCode,
|
|
131
|
+
initial_payment: request.initialPayment
|
|
132
|
+
});
|
|
133
|
+
return decodeOne(response, companySubscriptionMapper);
|
|
134
|
+
},
|
|
135
|
+
async cancel (id) {
|
|
136
|
+
const response = await transport.post(`/company_subscriptions/${id}/cancel`);
|
|
137
|
+
return decodeOne(response, companySubscriptionMapper);
|
|
138
|
+
},
|
|
139
|
+
async reactivate (id) {
|
|
140
|
+
const response = await transport.post(`/company_subscriptions/${id}/reactivate`);
|
|
141
|
+
return decodeOne(response, companySubscriptionMapper);
|
|
142
|
+
}
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
//# sourceMappingURL=subscriptions.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/services/subscriptions.service.ts"],"sourcesContent":["import type { Transport, PageResult, ListParams } from '@23blocks/contracts';\nimport type { JsonApiDocument } from '@23blocks/jsonapi-codec';\nimport { decodeOne, decodeMany, decodePageResult } from '@23blocks/jsonapi-codec';\nimport type {\n SubscriptionModel,\n UserSubscription,\n CompanySubscription,\n} from '../types/index.js';\nimport {\n subscriptionModelMapper,\n userSubscriptionMapper,\n companySubscriptionMapper,\n} from '../mappers/index.js';\nimport type { AuthenticationBlockConfig } from '../authentication.block.js';\n\n/**\n * Subscribe request\n */\nexport interface SubscribeRequest {\n subscriptionModelCode: string;\n initialPayment?: number;\n}\n\n/**\n * Subscription models service interface\n */\nexport interface SubscriptionModelsService {\n /**\n * List subscription models\n */\n list(params?: ListParams): Promise<PageResult<SubscriptionModel>>;\n\n /**\n * Get a subscription model by ID\n */\n get(id: string): Promise<SubscriptionModel>;\n\n /**\n * Get a subscription model by code\n */\n getByCode(code: string): Promise<SubscriptionModel>;\n\n /**\n * List promotional subscription models\n */\n promotional(): Promise<SubscriptionModel[]>;\n}\n\n/**\n * User subscriptions service interface\n */\nexport interface UserSubscriptionsService {\n /**\n * List user subscriptions\n */\n list(params?: ListParams): Promise<PageResult<UserSubscription>>;\n\n /**\n * Get a user subscription by ID\n */\n get(id: string): Promise<UserSubscription>;\n\n /**\n * Get subscriptions for a user\n */\n forUser(userUniqueId: string): Promise<UserSubscription[]>;\n\n /**\n * Subscribe a user to a plan\n */\n subscribe(userUniqueId: string, request: SubscribeRequest): Promise<UserSubscription>;\n\n /**\n * Cancel a subscription\n */\n cancel(id: string): Promise<UserSubscription>;\n\n /**\n * Reactivate a subscription\n */\n reactivate(id: string): Promise<UserSubscription>;\n}\n\n/**\n * Company subscriptions service interface\n */\nexport interface CompanySubscriptionsService {\n /**\n * List company subscriptions\n */\n list(params?: ListParams): Promise<PageResult<CompanySubscription>>;\n\n /**\n * Get a company subscription by ID\n */\n get(id: string): Promise<CompanySubscription>;\n\n /**\n * Get subscriptions for a company\n */\n forCompany(companyUniqueId: string): Promise<CompanySubscription[]>;\n\n /**\n * Subscribe a company to a plan\n */\n subscribe(companyUniqueId: string, request: SubscribeRequest): Promise<CompanySubscription>;\n\n /**\n * Cancel a subscription\n */\n cancel(id: string): Promise<CompanySubscription>;\n\n /**\n * Reactivate a subscription\n */\n reactivate(id: string): Promise<CompanySubscription>;\n}\n\n/**\n * Build filter params for list operations\n */\nfunction buildListParams(params?: ListParams): Record<string, string | number | boolean | string[] | undefined> {\n if (!params) return {};\n\n const queryParams: Record<string, string | number | boolean | string[] | undefined> = {};\n\n if (params.page) {\n queryParams['page[number]'] = params.page;\n }\n if (params.perPage) {\n queryParams['page[size]'] = params.perPage;\n }\n\n if (params.sort) {\n const sorts = Array.isArray(params.sort) ? params.sort : [params.sort];\n queryParams['sort'] = sorts\n .map((s) => (s.direction === 'desc' ? `-${s.field}` : s.field))\n .join(',');\n }\n\n if (params.filter) {\n for (const [key, value] of Object.entries(params.filter)) {\n queryParams[`filter[${key}]`] = value;\n }\n }\n\n if (params.include) {\n queryParams['include'] = params.include.join(',');\n }\n\n return queryParams;\n}\n\n/**\n * Create the subscription models service\n */\nexport function createSubscriptionModelsService(\n transport: Transport,\n _config: AuthenticationBlockConfig\n): SubscriptionModelsService {\n return {\n async list(params?: ListParams): Promise<PageResult<SubscriptionModel>> {\n const response = await transport.get<JsonApiDocument>(\n '/subscription_models',\n { params: buildListParams(params) }\n );\n return decodePageResult(response, subscriptionModelMapper);\n },\n\n async get(id: string): Promise<SubscriptionModel> {\n const response = await transport.get<JsonApiDocument>(\n `/subscription_models/${id}`\n );\n return decodeOne(response, subscriptionModelMapper);\n },\n\n async getByCode(code: string): Promise<SubscriptionModel> {\n const response = await transport.get<JsonApiDocument>(\n `/subscription_models/by_code/${code}`\n );\n return decodeOne(response, subscriptionModelMapper);\n },\n\n async promotional(): Promise<SubscriptionModel[]> {\n const response = await transport.get<JsonApiDocument>(\n '/subscription_models/promotional'\n );\n return decodeMany(response, subscriptionModelMapper);\n },\n };\n}\n\n/**\n * Create the user subscriptions service\n */\nexport function createUserSubscriptionsService(\n transport: Transport,\n _config: AuthenticationBlockConfig\n): UserSubscriptionsService {\n return {\n async list(params?: ListParams): Promise<PageResult<UserSubscription>> {\n const response = await transport.get<JsonApiDocument>(\n '/user_subscriptions',\n { params: { ...buildListParams(params), include: 'subscription_model' } }\n );\n return decodePageResult(response, userSubscriptionMapper);\n },\n\n async get(id: string): Promise<UserSubscription> {\n const response = await transport.get<JsonApiDocument>(\n `/user_subscriptions/${id}`,\n { params: { include: 'subscription_model' } }\n );\n return decodeOne(response, userSubscriptionMapper);\n },\n\n async forUser(userUniqueId: string): Promise<UserSubscription[]> {\n const response = await transport.get<JsonApiDocument>(\n `/users/${userUniqueId}/subscriptions`,\n { params: { include: 'subscription_model' } }\n );\n return decodeMany(response, userSubscriptionMapper);\n },\n\n async subscribe(\n userUniqueId: string,\n request: SubscribeRequest\n ): Promise<UserSubscription> {\n const response = await transport.post<JsonApiDocument>(\n `/users/${userUniqueId}/subscriptions`,\n {\n subscription_model_code: request.subscriptionModelCode,\n initial_payment: request.initialPayment,\n }\n );\n return decodeOne(response, userSubscriptionMapper);\n },\n\n async cancel(id: string): Promise<UserSubscription> {\n const response = await transport.post<JsonApiDocument>(\n `/user_subscriptions/${id}/cancel`\n );\n return decodeOne(response, userSubscriptionMapper);\n },\n\n async reactivate(id: string): Promise<UserSubscription> {\n const response = await transport.post<JsonApiDocument>(\n `/user_subscriptions/${id}/reactivate`\n );\n return decodeOne(response, userSubscriptionMapper);\n },\n };\n}\n\n/**\n * Create the company subscriptions service\n */\nexport function createCompanySubscriptionsService(\n transport: Transport,\n _config: AuthenticationBlockConfig\n): CompanySubscriptionsService {\n return {\n async list(params?: ListParams): Promise<PageResult<CompanySubscription>> {\n const response = await transport.get<JsonApiDocument>(\n '/company_subscriptions',\n { params: { ...buildListParams(params), include: 'subscription_model' } }\n );\n return decodePageResult(response, companySubscriptionMapper);\n },\n\n async get(id: string): Promise<CompanySubscription> {\n const response = await transport.get<JsonApiDocument>(\n `/company_subscriptions/${id}`,\n { params: { include: 'subscription_model' } }\n );\n return decodeOne(response, companySubscriptionMapper);\n },\n\n async forCompany(companyUniqueId: string): Promise<CompanySubscription[]> {\n const response = await transport.get<JsonApiDocument>(\n `/companies/${companyUniqueId}/subscriptions`,\n { params: { include: 'subscription_model' } }\n );\n return decodeMany(response, companySubscriptionMapper);\n },\n\n async subscribe(\n companyUniqueId: string,\n request: SubscribeRequest\n ): Promise<CompanySubscription> {\n const response = await transport.post<JsonApiDocument>(\n `/companies/${companyUniqueId}/subscriptions`,\n {\n subscription_model_code: request.subscriptionModelCode,\n initial_payment: request.initialPayment,\n }\n );\n return decodeOne(response, companySubscriptionMapper);\n },\n\n async cancel(id: string): Promise<CompanySubscription> {\n const response = await transport.post<JsonApiDocument>(\n `/company_subscriptions/${id}/cancel`\n );\n return decodeOne(response, companySubscriptionMapper);\n },\n\n async reactivate(id: string): Promise<CompanySubscription> {\n const response = await transport.post<JsonApiDocument>(\n `/company_subscriptions/${id}/reactivate`\n );\n return decodeOne(response, companySubscriptionMapper);\n },\n };\n}\n"],"names":["decodeOne","decodeMany","decodePageResult","subscriptionModelMapper","userSubscriptionMapper","companySubscriptionMapper","buildListParams","params","queryParams","page","perPage","sort","sorts","Array","isArray","map","s","direction","field","join","filter","key","value","Object","entries","include","createSubscriptionModelsService","transport","_config","list","response","get","id","getByCode","code","promotional","createUserSubscriptionsService","forUser","userUniqueId","subscribe","request","post","subscription_model_code","subscriptionModelCode","initial_payment","initialPayment","cancel","reactivate","createCompanySubscriptionsService","forCompany","companyUniqueId"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { decodeOne, decodePageResult } from '@23blocks/jsonapi-codec';
|
|
2
|
+
import { userMapper } from '../mappers/index.js';
|
|
3
|
+
/**
|
|
4
|
+
* Build filter params for list operations
|
|
5
|
+
*/ function buildListParams(params) {
|
|
6
|
+
if (!params) return {};
|
|
7
|
+
const queryParams = {};
|
|
8
|
+
if (params.page) {
|
|
9
|
+
queryParams['page[number]'] = params.page;
|
|
10
|
+
}
|
|
11
|
+
if (params.perPage) {
|
|
12
|
+
queryParams['page[size]'] = params.perPage;
|
|
13
|
+
}
|
|
14
|
+
if (params.sort) {
|
|
15
|
+
const sorts = Array.isArray(params.sort) ? params.sort : [
|
|
16
|
+
params.sort
|
|
17
|
+
];
|
|
18
|
+
queryParams['sort'] = sorts.map((s)=>s.direction === 'desc' ? `-${s.field}` : s.field).join(',');
|
|
19
|
+
}
|
|
20
|
+
if (params.filter) {
|
|
21
|
+
for (const [key, value] of Object.entries(params.filter)){
|
|
22
|
+
queryParams[`filter[${key}]`] = value;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
if (params.include) {
|
|
26
|
+
queryParams['include'] = params.include.join(',');
|
|
27
|
+
}
|
|
28
|
+
return queryParams;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Create the users service
|
|
32
|
+
*/ export function createUsersService(transport, _config) {
|
|
33
|
+
return {
|
|
34
|
+
async list (params) {
|
|
35
|
+
const response = await transport.get('/users', {
|
|
36
|
+
params: buildListParams(params)
|
|
37
|
+
});
|
|
38
|
+
return decodePageResult(response, userMapper);
|
|
39
|
+
},
|
|
40
|
+
async get (id) {
|
|
41
|
+
const response = await transport.get(`/users/${id}`, {
|
|
42
|
+
params: {
|
|
43
|
+
include: 'role,user_avatar,user_profile'
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
return decodeOne(response, userMapper);
|
|
47
|
+
},
|
|
48
|
+
async getByUniqueId (uniqueId) {
|
|
49
|
+
const response = await transport.get(`/users/by_unique_id/${uniqueId}`, {
|
|
50
|
+
params: {
|
|
51
|
+
include: 'role,user_avatar,user_profile'
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
return decodeOne(response, userMapper);
|
|
55
|
+
},
|
|
56
|
+
async update (id, request) {
|
|
57
|
+
const response = await transport.patch(`/users/${id}`, {
|
|
58
|
+
name: request.name,
|
|
59
|
+
username: request.username,
|
|
60
|
+
nickname: request.nickname,
|
|
61
|
+
bio: request.bio,
|
|
62
|
+
role_id: request.roleId,
|
|
63
|
+
status: request.status
|
|
64
|
+
});
|
|
65
|
+
return decodeOne(response, userMapper);
|
|
66
|
+
},
|
|
67
|
+
async updateProfile (userId, request) {
|
|
68
|
+
const response = await transport.patch(`/users/${userId}/profile`, {
|
|
69
|
+
first_name: request.firstName,
|
|
70
|
+
middle_name: request.middleName,
|
|
71
|
+
last_name: request.lastName,
|
|
72
|
+
gender: request.gender,
|
|
73
|
+
zipcode: request.zipcode,
|
|
74
|
+
phone_number: request.phoneNumber,
|
|
75
|
+
preferred_language: request.preferredLanguage,
|
|
76
|
+
time_zone: request.timeZone,
|
|
77
|
+
web_site: request.webSite,
|
|
78
|
+
twitter: request.twitter,
|
|
79
|
+
fb: request.fb,
|
|
80
|
+
instagram: request.instagram,
|
|
81
|
+
linkedin: request.linkedin,
|
|
82
|
+
youtube: request.youtube,
|
|
83
|
+
blog: request.blog,
|
|
84
|
+
payload: request.payload
|
|
85
|
+
});
|
|
86
|
+
return decodeOne(response, userMapper);
|
|
87
|
+
},
|
|
88
|
+
async delete (id) {
|
|
89
|
+
await transport.delete(`/users/${id}`);
|
|
90
|
+
},
|
|
91
|
+
async activate (id) {
|
|
92
|
+
const response = await transport.post(`/users/${id}/activate`);
|
|
93
|
+
return decodeOne(response, userMapper);
|
|
94
|
+
},
|
|
95
|
+
async deactivate (id) {
|
|
96
|
+
const response = await transport.post(`/users/${id}/deactivate`);
|
|
97
|
+
return decodeOne(response, userMapper);
|
|
98
|
+
},
|
|
99
|
+
async changeRole (id, roleId) {
|
|
100
|
+
const response = await transport.patch(`/users/${id}/role`, {
|
|
101
|
+
role_id: roleId
|
|
102
|
+
});
|
|
103
|
+
return decodeOne(response, userMapper);
|
|
104
|
+
},
|
|
105
|
+
async search (query, params) {
|
|
106
|
+
const queryParams = buildListParams(params);
|
|
107
|
+
queryParams['q'] = query;
|
|
108
|
+
const response = await transport.get('/users/search', {
|
|
109
|
+
params: queryParams
|
|
110
|
+
});
|
|
111
|
+
return decodePageResult(response, userMapper);
|
|
112
|
+
}
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
//# sourceMappingURL=users.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/services/users.service.ts"],"sourcesContent":["import type { Transport, PageResult, ListParams } from '@23blocks/contracts';\nimport { decodeOne, decodePageResult } from '@23blocks/jsonapi-codec';\nimport type { User, UserProfile } from '../types/index.js';\nimport { userMapper } from '../mappers/index.js';\nimport type { AuthenticationBlockConfig } from '../authentication.block.js';\n\n/**\n * User update request\n */\nexport interface UpdateUserRequest {\n name?: string;\n username?: string;\n nickname?: string;\n bio?: string;\n roleId?: string;\n status?: string;\n}\n\n/**\n * Profile update request\n */\nexport interface UpdateProfileRequest {\n firstName?: string;\n middleName?: string;\n lastName?: string;\n gender?: string;\n zipcode?: string;\n phoneNumber?: string;\n preferredLanguage?: string;\n timeZone?: string;\n webSite?: string;\n twitter?: string;\n fb?: string;\n instagram?: string;\n linkedin?: string;\n youtube?: string;\n blog?: string;\n payload?: Record<string, unknown>;\n}\n\n/**\n * Users service\n */\nexport interface UsersService {\n /**\n * List users with pagination and filtering\n */\n list(params?: ListParams): Promise<PageResult<User>>;\n\n /**\n * Get a user by ID\n */\n get(id: string): Promise<User>;\n\n /**\n * Get a user by unique ID\n */\n getByUniqueId(uniqueId: string): Promise<User>;\n\n /**\n * Update a user\n */\n update(id: string, request: UpdateUserRequest): Promise<User>;\n\n /**\n * Update user profile\n */\n updateProfile(userId: string, request: UpdateProfileRequest): Promise<User>;\n\n /**\n * Delete a user\n */\n delete(id: string): Promise<void>;\n\n /**\n * Activate a user\n */\n activate(id: string): Promise<User>;\n\n /**\n * Deactivate a user\n */\n deactivate(id: string): Promise<User>;\n\n /**\n * Change user role\n */\n changeRole(id: string, roleId: string): Promise<User>;\n\n /**\n * Search users\n */\n search(query: string, params?: ListParams): Promise<PageResult<User>>;\n}\n\n/**\n * Build filter params for list operations\n */\nfunction buildListParams(params?: ListParams): Record<string, string | number | boolean | string[] | undefined> {\n if (!params) return {};\n\n const queryParams: Record<string, string | number | boolean | string[] | undefined> = {};\n\n if (params.page) {\n queryParams['page[number]'] = params.page;\n }\n if (params.perPage) {\n queryParams['page[size]'] = params.perPage;\n }\n\n if (params.sort) {\n const sorts = Array.isArray(params.sort) ? params.sort : [params.sort];\n queryParams['sort'] = sorts\n .map((s) => (s.direction === 'desc' ? `-${s.field}` : s.field))\n .join(',');\n }\n\n if (params.filter) {\n for (const [key, value] of Object.entries(params.filter)) {\n queryParams[`filter[${key}]`] = value;\n }\n }\n\n if (params.include) {\n queryParams['include'] = params.include.join(',');\n }\n\n return queryParams;\n}\n\n/**\n * Create the users service\n */\nexport function createUsersService(\n transport: Transport,\n _config: AuthenticationBlockConfig\n): UsersService {\n return {\n async list(params?: ListParams): Promise<PageResult<User>> {\n const response = await transport.get<{ data: unknown[]; meta?: unknown }>(\n '/users',\n { params: buildListParams(params) }\n );\n return decodePageResult(response, userMapper);\n },\n\n async get(id: string): Promise<User> {\n const response = await transport.get<{ data: unknown }>(\n `/users/${id}`,\n { params: { include: 'role,user_avatar,user_profile' } }\n );\n return decodeOne(response, userMapper);\n },\n\n async getByUniqueId(uniqueId: string): Promise<User> {\n const response = await transport.get<{ data: unknown }>(\n `/users/by_unique_id/${uniqueId}`,\n { params: { include: 'role,user_avatar,user_profile' } }\n );\n return decodeOne(response, userMapper);\n },\n\n async update(id: string, request: UpdateUserRequest): Promise<User> {\n const response = await transport.patch<{ data: unknown }>(\n `/users/${id}`,\n {\n name: request.name,\n username: request.username,\n nickname: request.nickname,\n bio: request.bio,\n role_id: request.roleId,\n status: request.status,\n }\n );\n return decodeOne(response, userMapper);\n },\n\n async updateProfile(userId: string, request: UpdateProfileRequest): Promise<User> {\n const response = await transport.patch<{ data: unknown }>(\n `/users/${userId}/profile`,\n {\n first_name: request.firstName,\n middle_name: request.middleName,\n last_name: request.lastName,\n gender: request.gender,\n zipcode: request.zipcode,\n phone_number: request.phoneNumber,\n preferred_language: request.preferredLanguage,\n time_zone: request.timeZone,\n web_site: request.webSite,\n twitter: request.twitter,\n fb: request.fb,\n instagram: request.instagram,\n linkedin: request.linkedin,\n youtube: request.youtube,\n blog: request.blog,\n payload: request.payload,\n }\n );\n return decodeOne(response, userMapper);\n },\n\n async delete(id: string): Promise<void> {\n await transport.delete(`/users/${id}`);\n },\n\n async activate(id: string): Promise<User> {\n const response = await transport.post<{ data: unknown }>(\n `/users/${id}/activate`\n );\n return decodeOne(response, userMapper);\n },\n\n async deactivate(id: string): Promise<User> {\n const response = await transport.post<{ data: unknown }>(\n `/users/${id}/deactivate`\n );\n return decodeOne(response, userMapper);\n },\n\n async changeRole(id: string, roleId: string): Promise<User> {\n const response = await transport.patch<{ data: unknown }>(\n `/users/${id}/role`,\n { role_id: roleId }\n );\n return decodeOne(response, userMapper);\n },\n\n async search(query: string, params?: ListParams): Promise<PageResult<User>> {\n const queryParams = buildListParams(params);\n queryParams['q'] = query;\n\n const response = await transport.get<{ data: unknown[]; meta?: unknown }>(\n '/users/search',\n { params: queryParams }\n );\n return decodePageResult(response, userMapper);\n },\n };\n}\n"],"names":["decodeOne","decodePageResult","userMapper","buildListParams","params","queryParams","page","perPage","sort","sorts","Array","isArray","map","s","direction","field","join","filter","key","value","Object","entries","include","createUsersService","transport","_config","list","response","get","id","getByUniqueId","uniqueId","update","request","patch","name","username","nickname","bio","role_id","roleId","status","updateProfile","userId","first_name","firstName","middle_name","middleName","last_name","lastName","gender","zipcode","phone_number","phoneNumber","preferred_language","preferredLanguage","time_zone","timeZone","web_site","webSite","twitter","fb","instagram","linkedin","youtube","blog","payload","delete","activate","post","deactivate","changeRole","search","query"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/types/api-key.ts"],"sourcesContent":["import type { IdentityCore, EntityStatus } from '@23blocks/contracts';\n\n/**\n * API Key entity\n */\nexport interface ApiKey extends IdentityCore {\n keyId: string;\n name: string;\n description: string | null;\n status: EntityStatus;\n serviceAccount: boolean;\n scopes: string[];\n expiresAt: Date | null;\n rateLimitPerMinute: number | null;\n rateLimitPerHour: number | null;\n rateLimitPerDay: number | null;\n allowedOrigins: string[];\n allowedIps: string[];\n lastUsedAt: Date | null;\n usageCount: number;\n revokedAt: Date | null;\n revocationReason: string | null;\n payload: Record<string, unknown> | null;\n\n // Computed attributes\n isExpired: boolean;\n daysUntilExpiry: number | null;\n usageToday: number;\n usageThisWeek: number;\n usageThisMonth: number;\n}\n\n/**\n * API Key with secret (only returned on create)\n */\nexport interface ApiKeyWithSecret extends ApiKey {\n secretKey: string;\n}\n\n/**\n * Create API key request\n */\nexport interface CreateApiKeyRequest {\n name: string;\n description?: string;\n serviceAccount?: boolean;\n scopes?: string[];\n expiresAt?: Date | string;\n rateLimitPerMinute?: number;\n rateLimitPerHour?: number;\n rateLimitPerDay?: number;\n allowedOrigins?: string[];\n allowedIps?: string[];\n payload?: Record<string, unknown>;\n}\n\n/**\n * Update API key request\n */\nexport interface UpdateApiKeyRequest {\n name?: string;\n description?: string;\n scopes?: string[];\n rateLimitPerMinute?: number;\n rateLimitPerHour?: number;\n rateLimitPerDay?: number;\n allowedOrigins?: string[];\n allowedIps?: string[];\n payload?: Record<string, unknown>;\n}\n\n/**\n * Revoke API key request\n */\nexport interface RevokeApiKeyRequest {\n reason?: string;\n}\n"],"names":[],"rangeMappings":";;","mappings":"AAuEA;;CAEC,GACD,WAEC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/types/app.ts"],"sourcesContent":["import type { IdentityCore, EntityStatus } from '@23blocks/contracts';\n\n/**\n * Application (OAuth client)\n */\nexport interface App extends IdentityCore {\n name: string;\n description: string | null;\n appType: string;\n status: EntityStatus;\n appIcon: string | null;\n\n // OAuth settings\n oauthEnabled: boolean;\n oauthAccessTokenLifetimeHours: number;\n oauthRefreshTokenLifetimeDays: number;\n oauthRefreshTokenRotation: boolean;\n oauthMaxRefreshTokensPerDevice: number;\n oauthDeviceManagement: boolean;\n\n // Rate limiting\n rateLimitPerMinute: number | null;\n rateLimitPerHour: number | null;\n\n // Webhooks\n webhookUrl: string | null;\n webhookSecret: string | null;\n\n // Configuration\n allowedOrigins: string[];\n metadata: Record<string, unknown> | null;\n payload: Record<string, unknown> | null;\n\n // Computed\n apiKeyCount: number;\n activeApiKeyCount: number;\n}\n\n/**\n * Block (company feature subscription)\n */\nexport interface Block extends IdentityCore {\n companyUniqueId: string;\n blockUniqueId: string;\n blockCode: string;\n blockName: string;\n addedAt: Date | null;\n status: EntityStatus;\n subscriptionModel: string | null;\n subscriptionPlan: string | null;\n subscriptionFee: number | null;\n subscriptionTaxes: number | null;\n subscriptionTotal: number | null;\n lastPaymentAt: Date | null;\n nextPaymentAt: Date | null;\n payload: Record<string, unknown> | null;\n}\n\n/**\n * Service (microservice registry entry)\n */\nexport interface Service extends IdentityCore {\n name: string;\n code: string;\n description: string | null;\n homePageUrl: string | null;\n healthCheckUrl: string | null;\n statusPageUrl: string | null;\n status: EntityStatus;\n registeredAt: Date | null;\n host: string | null;\n port: number | null;\n uri: string | null;\n groupName: string | null;\n ipaddress: string | null;\n}\n\n/**\n * Create app request\n */\nexport interface CreateAppRequest {\n name: string;\n description?: string;\n appType?: string;\n oauthEnabled?: boolean;\n oauthAccessTokenLifetimeHours?: number;\n oauthRefreshTokenLifetimeDays?: number;\n rateLimitPerMinute?: number;\n rateLimitPerHour?: number;\n webhookUrl?: string;\n allowedOrigins?: string[];\n metadata?: Record<string, unknown>;\n}\n\n/**\n * Update app request\n */\nexport interface UpdateAppRequest extends Partial<CreateAppRequest> {\n status?: string;\n}\n"],"names":[],"rangeMappings":";;","mappings":"AA8FA;;CAEC,GACD,WAEC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/types/auth.ts"],"sourcesContent":["import type { User } from './user.js';\n\n/**\n * Sign in request\n */\nexport interface SignInRequest {\n email: string;\n password: string;\n}\n\n/**\n * Sign in response\n */\nexport interface SignInResponse {\n user: User;\n accessToken: string;\n refreshToken?: string;\n tokenType: string;\n expiresIn?: number;\n}\n\n/**\n * Sign up request\n */\nexport interface SignUpRequest {\n email: string;\n password: string;\n passwordConfirmation: string;\n name?: string;\n username?: string;\n roleId?: string;\n}\n\n/**\n * Sign up response\n */\nexport interface SignUpResponse {\n user: User;\n accessToken?: string;\n message?: string;\n}\n\n/**\n * Password reset request\n */\nexport interface PasswordResetRequest {\n email: string;\n redirectUrl?: string;\n}\n\n/**\n * Password update request\n */\nexport interface PasswordUpdateRequest {\n password: string;\n passwordConfirmation: string;\n resetPasswordToken?: string;\n currentPassword?: string;\n}\n\n/**\n * Token validation response\n */\nexport interface TokenValidationResponse {\n user: User;\n valid: boolean;\n}\n\n/**\n * Refresh token request\n */\nexport interface RefreshTokenRequest {\n refreshToken: string;\n}\n\n/**\n * Refresh token response\n */\nexport interface RefreshTokenResponse {\n accessToken: string;\n refreshToken?: string;\n tokenType: string;\n expiresIn?: number;\n}\n\n/**\n * OAuth sign in request\n */\nexport interface OAuthSignInRequest {\n provider: string;\n accessToken: string;\n idToken?: string;\n}\n\n/**\n * Magic link request\n */\nexport interface MagicLinkRequest {\n email: string;\n redirectUrl?: string;\n}\n\n/**\n * Magic link verification\n */\nexport interface MagicLinkVerifyRequest {\n token: string;\n}\n\n/**\n * MFA setup response\n */\nexport interface MfaSetupResponse {\n secret: string;\n qrCodeUrl: string;\n backupCodes?: string[];\n}\n\n/**\n * MFA verify request\n */\nexport interface MfaVerifyRequest {\n code: string;\n}\n\n/**\n * Invitation request\n */\nexport interface InvitationRequest {\n email: string;\n roleId?: string;\n redirectUrl?: string;\n}\n\n/**\n * Accept invitation request\n */\nexport interface AcceptInvitationRequest {\n invitationToken: string;\n password: string;\n passwordConfirmation: string;\n name?: string;\n}\n\n/**\n * Auth headers extracted from response\n */\nexport interface AuthHeaders {\n accessToken: string;\n tokenType: string;\n client: string;\n expiry: string;\n uid: string;\n}\n"],"names":[],"rangeMappings":";;","mappings":"AAgJA;;CAEC,GACD,WAMC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/types/company.ts"],"sourcesContent":["import type { IdentityCore, EntityStatus } from '@23blocks/contracts';\n\n/**\n * Company entity\n */\nexport interface Company extends IdentityCore {\n name: string;\n code: string;\n preferredLanguage: string | null;\n preferredDomain: string | null;\n apiUrl: string | null;\n apiAccessKey: string | null;\n payload: Record<string, unknown> | null;\n status: EntityStatus;\n publicStorageUrl: string | null;\n storageUrl: string | null;\n\n // Conditional attributes (admin only)\n schemaName?: string;\n urlId?: string;\n slackHook?: string;\n slackChannel?: string;\n slackUsername?: string;\n openAccess?: boolean;\n\n // Relationships\n companyDetail?: CompanyDetail | null;\n companyBlocks?: CompanyBlock[];\n companyKeys?: CompanyKey[];\n}\n\n/**\n * Company detail\n */\nexport interface CompanyDetail extends IdentityCore {\n companyUniqueId: string;\n address: string | null;\n city: string | null;\n state: string | null;\n zipcode: string | null;\n country: string | null;\n phone: string | null;\n email: string | null;\n website: string | null;\n description: string | null;\n logoUrl: string | null;\n payload: Record<string, unknown> | null;\n}\n\n/**\n * Company block (enabled features)\n */\nexport interface CompanyBlock extends IdentityCore {\n companyUniqueId: string;\n blockId: string;\n blockName: string;\n status: EntityStatus;\n payload: Record<string, unknown> | null;\n}\n\n/**\n * Company API key\n */\nexport interface CompanyKey extends IdentityCore {\n companyUniqueId: string;\n name: string;\n keyId: string;\n status: EntityStatus;\n expiresAt: Date | null;\n lastUsedAt: Date | null;\n}\n\n/**\n * Tenant context for multi-tenant operations\n */\nexport interface Tenant {\n gatewayUrl: string;\n tenantAccessKey: string;\n tenantUrlId: string;\n payload: Record<string, unknown> | null;\n}\n"],"names":[],"rangeMappings":";;","mappings":"AAwEA;;CAEC,GACD,WAKC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/types/geography.ts"],"sourcesContent":["import type { IdentityCore, EntityStatus } from '@23blocks/contracts';\n\n/**\n * Country\n */\nexport interface Country extends IdentityCore {\n countryUniqueId: string;\n name: string;\n areaCode: string | null;\n isoCode: string | null;\n capital: string | null;\n continent: string | null;\n tld: string | null;\n currencyCode: string | null;\n currencyName: string | null;\n postalCodeFormat: string | null;\n postalCodeRegex: string | null;\n status: EntityStatus;\n language: string | null;\n payload: Record<string, unknown> | null;\n}\n\n/**\n * State/Province\n */\nexport interface State extends IdentityCore {\n stateUniqueId: string;\n name: string;\n abbreviation: string | null;\n status: EntityStatus;\n language: string | null;\n countryName: string | null;\n countryId: string | null;\n payload: Record<string, unknown> | null;\n}\n\n/**\n * County\n */\nexport interface County extends IdentityCore {\n countyUniqueId: string;\n name: string;\n status: EntityStatus;\n stateName: string | null;\n stateId: string | null;\n language: string | null;\n payload: Record<string, unknown> | null;\n}\n\n/**\n * City\n */\nexport interface City extends IdentityCore {\n name: string;\n stateName: string | null;\n stateId: string | null;\n countryName: string | null;\n countryId: string | null;\n countyName: string | null;\n countyId: string | null;\n status: EntityStatus;\n language: string | null;\n payload: Record<string, unknown> | null;\n}\n\n/**\n * Currency\n */\nexport interface Currency extends IdentityCore {\n currencyUniqueId: string;\n code: string;\n name: string;\n symbol: string | null;\n status: EntityStatus;\n language: string | null;\n payload: Record<string, unknown> | null;\n}\n"],"names":[],"rangeMappings":";;","mappings":"AAiEA;;CAEC,GACD,WAQC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/types/guest.ts"],"sourcesContent":["import type { IdentityCore, EntityStatus } from '@23blocks/contracts';\n\n/**\n * Guest (anonymous/pre-registration user)\n */\nexport interface Guest extends IdentityCore {\n email: string | null;\n username: string | null;\n name: string | null;\n currentVisitingAt: Date | null;\n currentVisitingIp: string | null;\n lastVisitingAt: Date | null;\n lastVisitingIp: string | null;\n status: EntityStatus;\n registeredAt: Date | null;\n userUniqueId: string | null;\n accessToken: string | null;\n}\n\n/**\n * Magic link\n */\nexport interface MagicLink extends IdentityCore {\n userUniqueId: string;\n userName: string | null;\n userEmail: string | null;\n token: string;\n expiresAt: Date;\n targetUrl: string | null;\n expiredUrl: string | null;\n status: EntityStatus;\n validationUrl: string | null;\n description: string | null;\n thumbnailUrl: string | null;\n contentUrl: string | null;\n mediaUrl: string | null;\n imageUrl: string | null;\n payload: Record<string, unknown> | null;\n}\n\n/**\n * Refresh token\n */\nexport interface RefreshToken extends IdentityCore {\n token: string;\n expiresAt: Date;\n status: EntityStatus;\n revoked: boolean;\n scopes: string[];\n deviceId: string | null;\n userAgent: string | null;\n ipAddress: string | null;\n lastUsedAt: Date | null;\n\n // Computed\n expired: boolean;\n active: boolean;\n expiresInSeconds: number;\n daysUntilExpiry: number;\n}\n\n/**\n * User device\n */\nexport interface UserDevice extends IdentityCore {\n userUniqueId: string;\n status: EntityStatus;\n deviceType: string | null;\n pushId: string | null;\n osType: string | null;\n defaultDevice: boolean;\n locationEnabled: boolean;\n notificationsEnabled: boolean;\n}\n\n/**\n * Tenant user context\n */\nexport interface TenantUser {\n gatewayUrl: string;\n userId: string;\n userUniqueId: string;\n userEmail: string | null;\n userName: string | null;\n roleUniqueId: string | null;\n roleName: string | null;\n roleId: string | null;\n tenantId: string;\n tenantUniqueId: string;\n tenantAccessKey: string;\n tenantUrlId: string;\n payload: Record<string, unknown> | null;\n onboardingCompleted: boolean;\n purchaseCompleted: boolean;\n parentOnboardingCompleted: boolean;\n parentPurchaseCompleted: boolean;\n}\n\n/**\n * Mail template\n */\nexport interface MailTemplate extends IdentityCore {\n eventName: string;\n name: string;\n source: string | null;\n sourceAlias: string | null;\n sourceId: string | null;\n sourceType: string | null;\n templateName: string | null;\n templateHtml: string | null;\n templateText: string | null;\n fromDomain: string | null;\n fromAddress: string | null;\n fromName: string | null;\n fromSubject: string | null;\n payload: Record<string, unknown> | null;\n preferredLanguage: string | null;\n status: EntityStatus;\n provider: string | null;\n}\n\n/**\n * Create magic link request\n */\nexport interface CreateMagicLinkRequest {\n userUniqueId?: string;\n email?: string;\n targetUrl?: string;\n expiredUrl?: string;\n expiresInHours?: number;\n description?: string;\n payload?: Record<string, unknown>;\n}\n\n/**\n * Register device request\n */\nexport interface RegisterDeviceRequest {\n deviceType: string;\n pushId: string;\n osType?: string;\n defaultDevice?: boolean;\n locationEnabled?: boolean;\n notificationsEnabled?: boolean;\n}\n"],"names":[],"rangeMappings":";;","mappings":"AAsIA;;CAEC,GACD,WAOC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/types/index.ts"],"sourcesContent":["// User types\nexport {\n type User,\n type Role,\n type Permission,\n type UserAvatar,\n type UserProfile,\n getFullName,\n} from './user.js';\n\n// Company types\nexport {\n type Company,\n type CompanyDetail,\n type CompanyBlock,\n type CompanyKey,\n type Tenant,\n} from './company.js';\n\n// Auth types\nexport {\n type SignInRequest,\n type SignInResponse,\n type SignUpRequest,\n type SignUpResponse,\n type PasswordResetRequest,\n type PasswordUpdateRequest,\n type TokenValidationResponse,\n type RefreshTokenRequest,\n type RefreshTokenResponse,\n type OAuthSignInRequest,\n type MagicLinkRequest,\n type MagicLinkVerifyRequest,\n type MfaSetupResponse,\n type MfaVerifyRequest,\n type InvitationRequest,\n type AcceptInvitationRequest,\n type AuthHeaders,\n} from './auth.js';\n\n// API Key types\nexport {\n type ApiKey,\n type ApiKeyWithSecret,\n type CreateApiKeyRequest,\n type UpdateApiKeyRequest,\n type RevokeApiKeyRequest,\n} from './api-key.js';\n\n// App types\nexport {\n type App,\n type Block,\n type Service,\n type CreateAppRequest,\n type UpdateAppRequest,\n} from './app.js';\n\n// Subscription types\nexport {\n type SubscriptionModel,\n type UserSubscription,\n type CompanySubscription,\n} from './subscription.js';\n\n// Geography types\nexport {\n type Country,\n type State,\n type County,\n type City,\n type Currency,\n} from './geography.js';\n\n// Guest and related types\nexport {\n type Guest,\n type MagicLink,\n type RefreshToken,\n type UserDevice,\n type TenantUser,\n type MailTemplate,\n type CreateMagicLinkRequest,\n type RegisterDeviceRequest,\n} from './guest.js';\n"],"names":["getFullName"],"rangeMappings":";","mappings":"AAAA,aAAa;AACb,SAMEA,WAAW,QACN,YAAY"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/types/subscription.ts"],"sourcesContent":["import type { IdentityCore, EntityStatus } from '@23blocks/contracts';\n\n/**\n * Subscription model (plan definition)\n */\nexport interface SubscriptionModel extends IdentityCore {\n code: string;\n status: EntityStatus;\n description: string | null;\n promotional: boolean;\n programCode: string | null;\n duration: number | null;\n durationUnit: string | null;\n durationDescription: string | null;\n recurringPaymentFees: number | null;\n recurringPaymentAmount: number | null;\n contentLink: string | null;\n startAt: Date | null;\n endAt: Date | null;\n isChannel: boolean;\n maxTenants: number | null;\n initialPayment: number | null;\n subscriptionType: string | null;\n payments: number | null;\n payload: Record<string, unknown> | null;\n maxItems: number | null;\n}\n\n/**\n * User subscription\n */\nexport interface UserSubscription extends IdentityCore {\n code: string;\n userUniqueId: string;\n programCode: string | null;\n recurringPaymentFees: number | null;\n recurringPaymentAmount: number | null;\n subscriptionNumber: string | null;\n subscribedAt: Date | null;\n closedAt: Date | null;\n lastPaymentAt: Date | null;\n nextPaymentAt: Date | null;\n lastPayment: number | null;\n paymentsMade: number;\n status: EntityStatus;\n bankruptcy: boolean;\n initialPayment: number | null;\n subscriptionType: string | null;\n payments: number | null;\n payload: Record<string, unknown> | null;\n maxItems: number | null;\n consumption: number;\n\n // Relationship\n subscriptionModel?: SubscriptionModel | null;\n}\n\n/**\n * Company subscription\n */\nexport interface CompanySubscription extends IdentityCore {\n code: string;\n companyUniqueId: string;\n programCode: string | null;\n recurringPaymentFees: number | null;\n recurringPaymentAmount: number | null;\n subscriptionNumber: string | null;\n subscribedAt: Date | null;\n closedAt: Date | null;\n lastPaymentAt: Date | null;\n nextPaymentAt: Date | null;\n lastPayment: number | null;\n paymentsMade: number;\n status: EntityStatus;\n bankruptcy: boolean;\n initialPayment: number | null;\n subscriptionType: string | null;\n payload: Record<string, unknown> | null;\n maxItems: number | null;\n consumption: number;\n\n // Relationship\n subscriptionModel?: SubscriptionModel | null;\n}\n"],"names":[],"rangeMappings":";;","mappings":"AAyDA;;CAEC,GACD,WAuBC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Full name helper
|
|
3
|
+
*/ export function getFullName(profile) {
|
|
4
|
+
if (!profile) return '';
|
|
5
|
+
const parts = [
|
|
6
|
+
profile.firstName,
|
|
7
|
+
profile.middleName,
|
|
8
|
+
profile.lastName
|
|
9
|
+
].filter(Boolean);
|
|
10
|
+
return parts.join(' ');
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
//# sourceMappingURL=user.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/types/user.ts"],"sourcesContent":["import type { IdentityCore, EntityStatus } from '@23blocks/contracts';\n\n/**\n * User entity\n */\nexport interface User extends IdentityCore {\n email: string;\n username: string | null;\n name: string | null;\n nickname: string | null;\n bio: string | null;\n provider: string;\n uid: string;\n roleId: string | null;\n status: EntityStatus;\n mailStatus: string | null;\n phoneStatus: string | null;\n allowPasswordChange: boolean;\n lastSignInAt: Date | null;\n confirmedAt: Date | null;\n unconfirmedEmail: string | null;\n invitationSentAt: Date | null;\n invitationAcceptedAt: Date | null;\n invitationCreatedAt: Date | null;\n\n // Relationships (when included)\n role?: Role | null;\n avatar?: UserAvatar | null;\n profile?: UserProfile | null;\n}\n\n/**\n * User role\n */\nexport interface Role extends IdentityCore {\n name: string;\n code: string;\n description: string | null;\n status: EntityStatus;\n payload: Record<string, unknown> | null;\n onBoardingUniqueId: string | null;\n onBoardingUrl: string | null;\n onBoardingPayload: Record<string, unknown> | null;\n\n // Relationships\n permissions?: Permission[];\n}\n\n/**\n * Permission\n */\nexport interface Permission extends IdentityCore {\n name: string;\n level: number;\n parentId: string | null;\n description: string | null;\n status: EntityStatus;\n category: string | null;\n riskLevel: string | null;\n}\n\n/**\n * User avatar\n */\nexport interface UserAvatar extends IdentityCore {\n userUniqueId: string;\n bucket: string | null;\n originalName: string | null;\n name: string | null;\n url: string | null;\n thumbnail: string | null;\n fileType: string | null;\n fileSize: number | null;\n description: string | null;\n originalFile: string | null;\n status: EntityStatus;\n isPublic: boolean;\n}\n\n/**\n * User profile\n */\nexport interface UserProfile extends IdentityCore {\n userUniqueId: string;\n firstName: string | null;\n middleName: string | null;\n lastName: string | null;\n gender: string | null;\n ethnicity: string | null;\n zipcode: string | null;\n maritalStatus: string | null;\n birthdate: Date | null;\n hhi: string | null;\n children: number | null;\n source: string | null;\n status: EntityStatus;\n phoneNumber: string | null;\n email: string | null;\n preferredDevice: string | null;\n preferredLanguage: string | null;\n webSite: string | null;\n twitter: string | null;\n fb: string | null;\n instagram: string | null;\n linkedin: string | null;\n youtube: string | null;\n blog: string | null;\n networkA: string | null;\n networkB: string | null;\n payload: Record<string, unknown> | null;\n timeZone: string | null;\n}\n\n/**\n * Full name helper\n */\nexport function getFullName(profile: UserProfile | null | undefined): string {\n if (!profile) return '';\n const parts = [profile.firstName, profile.middleName, profile.lastName].filter(Boolean);\n return parts.join(' ');\n}\n"],"names":["getFullName","profile","parts","firstName","middleName","lastName","filter","Boolean","join"],"rangeMappings":";;;;;;;;;;","mappings":"AAiHA;;CAEC,GACD,OAAO,SAASA,YAAYC,OAAuC;IACjE,IAAI,CAACA,SAAS,OAAO;IACrB,MAAMC,QAAQ;QAACD,QAAQE,SAAS;QAAEF,QAAQG,UAAU;QAAEH,QAAQI,QAAQ;KAAC,CAACC,MAAM,CAACC;IAC/E,OAAOL,MAAMM,IAAI,CAAC;AACpB"}
|
package/package.json
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@23blocks/block-authentication",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Authentication block for 23blocks SDK - users, roles, API keys, subscriptions",
|
|
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/block-authentication"
|
|
11
|
+
},
|
|
12
|
+
"homepage": "https://github.com/23blocks-OS/frontend-sdk/tree/main/packages/block-authentication",
|
|
13
|
+
"bugs": {
|
|
14
|
+
"url": "https://github.com/23blocks-OS/frontend-sdk/issues"
|
|
15
|
+
},
|
|
16
|
+
"keywords": [
|
|
17
|
+
"23blocks",
|
|
18
|
+
"sdk",
|
|
19
|
+
"authentication",
|
|
20
|
+
"auth",
|
|
21
|
+
"users",
|
|
22
|
+
"roles",
|
|
23
|
+
"api-keys"
|
|
24
|
+
],
|
|
25
|
+
"type": "module",
|
|
26
|
+
"main": "./dist/index.js",
|
|
27
|
+
"module": "./dist/index.js",
|
|
28
|
+
"types": "./dist/index.d.ts",
|
|
29
|
+
"exports": {
|
|
30
|
+
"./package.json": "./package.json",
|
|
31
|
+
".": {
|
|
32
|
+
"types": "./dist/index.d.ts",
|
|
33
|
+
"import": "./dist/index.js",
|
|
34
|
+
"default": "./dist/index.js"
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
"files": [
|
|
38
|
+
"dist",
|
|
39
|
+
"!**/*.tsbuildinfo"
|
|
40
|
+
],
|
|
41
|
+
"nx": {
|
|
42
|
+
"sourceRoot": "packages/block-authentication/src",
|
|
43
|
+
"targets": {
|
|
44
|
+
"build": {
|
|
45
|
+
"executor": "@nx/js:swc",
|
|
46
|
+
"outputs": [
|
|
47
|
+
"{options.outputPath}"
|
|
48
|
+
],
|
|
49
|
+
"options": {
|
|
50
|
+
"outputPath": "packages/block-authentication/dist",
|
|
51
|
+
"main": "packages/block-authentication/src/index.ts",
|
|
52
|
+
"tsConfig": "packages/block-authentication/tsconfig.lib.json",
|
|
53
|
+
"skipTypeCheck": true,
|
|
54
|
+
"stripLeadingPaths": true
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
"dependencies": {
|
|
60
|
+
"@23blocks/contracts": "*",
|
|
61
|
+
"@23blocks/jsonapi-codec": "*",
|
|
62
|
+
"@swc/helpers": "~0.5.11"
|
|
63
|
+
}
|
|
64
|
+
}
|