@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.
Files changed (59) hide show
  1. package/dist/index.js +8 -0
  2. package/dist/index.js.map +1 -0
  3. package/dist/lib/authentication.block.js +102 -0
  4. package/dist/lib/authentication.block.js.map +1 -0
  5. package/dist/lib/mappers/api-key.mapper.js +57 -0
  6. package/dist/lib/mappers/api-key.mapper.js.map +1 -0
  7. package/dist/lib/mappers/app.mapper.js +98 -0
  8. package/dist/lib/mappers/app.mapper.js.map +1 -0
  9. package/dist/lib/mappers/company.mapper.js +128 -0
  10. package/dist/lib/mappers/company.mapper.js.map +1 -0
  11. package/dist/lib/mappers/geography.mapper.js +129 -0
  12. package/dist/lib/mappers/geography.mapper.js.map +1 -0
  13. package/dist/lib/mappers/guest.mapper.js +176 -0
  14. package/dist/lib/mappers/guest.mapper.js.map +1 -0
  15. package/dist/lib/mappers/index.js +18 -0
  16. package/dist/lib/mappers/index.js.map +1 -0
  17. package/dist/lib/mappers/subscription.mapper.js +134 -0
  18. package/dist/lib/mappers/subscription.mapper.js.map +1 -0
  19. package/dist/lib/mappers/user.mapper.js +163 -0
  20. package/dist/lib/mappers/user.mapper.js.map +1 -0
  21. package/dist/lib/mappers/utils.js +54 -0
  22. package/dist/lib/mappers/utils.js.map +1 -0
  23. package/dist/lib/services/api-keys.service.js +93 -0
  24. package/dist/lib/services/api-keys.service.js.map +1 -0
  25. package/dist/lib/services/apps.service.js +139 -0
  26. package/dist/lib/services/apps.service.js.map +1 -0
  27. package/dist/lib/services/auth.service.js +147 -0
  28. package/dist/lib/services/auth.service.js.map +1 -0
  29. package/dist/lib/services/geography.service.js +151 -0
  30. package/dist/lib/services/geography.service.js.map +1 -0
  31. package/dist/lib/services/guests.service.js +219 -0
  32. package/dist/lib/services/guests.service.js.map +1 -0
  33. package/dist/lib/services/index.js +14 -0
  34. package/dist/lib/services/index.js.map +1 -0
  35. package/dist/lib/services/roles.service.js +91 -0
  36. package/dist/lib/services/roles.service.js.map +1 -0
  37. package/dist/lib/services/subscriptions.service.js +146 -0
  38. package/dist/lib/services/subscriptions.service.js.map +1 -0
  39. package/dist/lib/services/users.service.js +116 -0
  40. package/dist/lib/services/users.service.js.map +1 -0
  41. package/dist/lib/types/api-key.js +5 -0
  42. package/dist/lib/types/api-key.js.map +1 -0
  43. package/dist/lib/types/app.js +5 -0
  44. package/dist/lib/types/app.js.map +1 -0
  45. package/dist/lib/types/auth.js +5 -0
  46. package/dist/lib/types/auth.js.map +1 -0
  47. package/dist/lib/types/company.js +5 -0
  48. package/dist/lib/types/company.js.map +1 -0
  49. package/dist/lib/types/geography.js +5 -0
  50. package/dist/lib/types/geography.js.map +1 -0
  51. package/dist/lib/types/guest.js +5 -0
  52. package/dist/lib/types/guest.js.map +1 -0
  53. package/dist/lib/types/index.js +4 -0
  54. package/dist/lib/types/index.js.map +1 -0
  55. package/dist/lib/types/subscription.js +5 -0
  56. package/dist/lib/types/subscription.js.map +1 -0
  57. package/dist/lib/types/user.js +13 -0
  58. package/dist/lib/types/user.js.map +1 -0
  59. package/package.json +64 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/mappers/geography.mapper.ts"],"sourcesContent":["import type { ResourceMapper, IncludedMap, JsonApiResource } from '@23blocks/jsonapi-codec';\nimport type { EntityStatus } from '@23blocks/contracts';\nimport type { Country, State, County, City, Currency } from '../types/index.js';\nimport { parseString, parseDate } from './utils.js';\n\n/**\n * Mapper for Country resources\n */\nexport const countryMapper: ResourceMapper<Country> = {\n type: 'countries',\n\n map(resource: JsonApiResource, _included: IncludedMap): Country {\n const attrs = resource.attributes ?? {};\n\n return {\n id: resource.id,\n uniqueId: parseString(attrs.unique_id) ?? resource.id,\n createdAt: parseDate(attrs.created_at) ?? new Date(),\n updatedAt: parseDate(attrs.updated_at) ?? new Date(),\n countryUniqueId: String(attrs.country_unique_id ?? resource.id),\n name: String(attrs.name ?? ''),\n areaCode: parseString(attrs.area_code),\n isoCode: parseString(attrs.iso_code),\n capital: parseString(attrs.capital),\n continent: parseString(attrs.continent),\n tld: parseString(attrs.tld),\n currencyCode: parseString(attrs.currency_code),\n currencyName: parseString(attrs.currency_name),\n postalCodeFormat: parseString(attrs.postal_code_format),\n postalCodeRegex: parseString(attrs.postal_code_regex),\n status: (parseString(attrs.status) ?? 'active') as EntityStatus,\n language: parseString(attrs.language),\n payload: attrs.payload as Record<string, unknown> | null,\n };\n },\n};\n\n/**\n * Mapper for State resources\n */\nexport const stateMapper: ResourceMapper<State> = {\n type: 'states',\n\n map(resource: JsonApiResource, _included: IncludedMap): State {\n const attrs = resource.attributes ?? {};\n\n return {\n id: resource.id,\n uniqueId: parseString(attrs.unique_id) ?? resource.id,\n createdAt: parseDate(attrs.created_at) ?? new Date(),\n updatedAt: parseDate(attrs.updated_at) ?? new Date(),\n stateUniqueId: String(attrs.state_unique_id ?? resource.id),\n name: String(attrs.name ?? ''),\n abbreviation: parseString(attrs.abbreviation),\n status: (parseString(attrs.status) ?? 'active') as EntityStatus,\n language: parseString(attrs.language),\n countryName: parseString(attrs.country_name),\n countryId: parseString(attrs.country_id),\n payload: attrs.payload as Record<string, unknown> | null,\n };\n },\n};\n\n/**\n * Mapper for County resources\n */\nexport const countyMapper: ResourceMapper<County> = {\n type: 'counties',\n\n map(resource: JsonApiResource, _included: IncludedMap): County {\n const attrs = resource.attributes ?? {};\n\n return {\n id: resource.id,\n uniqueId: parseString(attrs.unique_id) ?? resource.id,\n createdAt: parseDate(attrs.created_at) ?? new Date(),\n updatedAt: parseDate(attrs.updated_at) ?? new Date(),\n countyUniqueId: String(attrs.county_unique_id ?? resource.id),\n name: String(attrs.name ?? ''),\n status: (parseString(attrs.status) ?? 'active') as EntityStatus,\n stateName: parseString(attrs.state_name),\n stateId: parseString(attrs.state_id),\n language: parseString(attrs.language),\n payload: attrs.payload as Record<string, unknown> | null,\n };\n },\n};\n\n/**\n * Mapper for City resources\n */\nexport const cityMapper: ResourceMapper<City> = {\n type: 'cities',\n\n map(resource: JsonApiResource, _included: IncludedMap): City {\n const attrs = resource.attributes ?? {};\n\n return {\n id: resource.id,\n uniqueId: parseString(attrs.unique_id) ?? resource.id,\n createdAt: parseDate(attrs.created_at) ?? new Date(),\n updatedAt: parseDate(attrs.updated_at) ?? new Date(),\n name: String(attrs.name ?? ''),\n stateName: parseString(attrs.state_name),\n stateId: parseString(attrs.state_id),\n countryName: parseString(attrs.country_name),\n countryId: parseString(attrs.country_id),\n countyName: parseString(attrs.county_name),\n countyId: parseString(attrs.county_id),\n status: (parseString(attrs.status) ?? 'active') as EntityStatus,\n language: parseString(attrs.language),\n payload: attrs.payload as Record<string, unknown> | null,\n };\n },\n};\n\n/**\n * Mapper for Currency resources\n */\nexport const currencyMapper: ResourceMapper<Currency> = {\n type: 'currencies',\n\n map(resource: JsonApiResource, _included: IncludedMap): Currency {\n const attrs = resource.attributes ?? {};\n\n return {\n id: resource.id,\n uniqueId: parseString(attrs.unique_id) ?? resource.id,\n createdAt: parseDate(attrs.created_at) ?? new Date(),\n updatedAt: parseDate(attrs.updated_at) ?? new Date(),\n currencyUniqueId: String(attrs.currency_unique_id ?? resource.id),\n code: String(attrs.code ?? ''),\n name: String(attrs.name ?? ''),\n symbol: parseString(attrs.symbol),\n status: (parseString(attrs.status) ?? 'active') as EntityStatus,\n language: parseString(attrs.language),\n payload: attrs.payload as Record<string, unknown> | null,\n };\n },\n};\n"],"names":["parseString","parseDate","countryMapper","type","map","resource","_included","attrs","attributes","id","uniqueId","unique_id","createdAt","created_at","Date","updatedAt","updated_at","countryUniqueId","String","country_unique_id","name","areaCode","area_code","isoCode","iso_code","capital","continent","tld","currencyCode","currency_code","currencyName","currency_name","postalCodeFormat","postal_code_format","postalCodeRegex","postal_code_regex","status","language","payload","stateMapper","stateUniqueId","state_unique_id","abbreviation","countryName","country_name","countryId","country_id","countyMapper","countyUniqueId","county_unique_id","stateName","state_name","stateId","state_id","cityMapper","countyName","county_name","countyId","county_id","currencyMapper","currencyUniqueId","currency_unique_id","code","symbol"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -0,0 +1,176 @@
1
+ import { parseString, parseDate, parseNumber, parseBoolean, parseStringArray } from './utils.js';
2
+ /**
3
+ * Mapper for Guest resources
4
+ */ export const guestMapper = {
5
+ type: 'guests',
6
+ map (resource, _included) {
7
+ var _resource_attributes;
8
+ const attrs = (_resource_attributes = resource.attributes) != null ? _resource_attributes : {};
9
+ var _parseString, _parseDate, _parseDate1, _parseString1;
10
+ return {
11
+ id: resource.id,
12
+ uniqueId: (_parseString = parseString(attrs.unique_id)) != null ? _parseString : resource.id,
13
+ createdAt: (_parseDate = parseDate(attrs.created_at)) != null ? _parseDate : new Date(),
14
+ updatedAt: (_parseDate1 = parseDate(attrs.updated_at)) != null ? _parseDate1 : new Date(),
15
+ email: parseString(attrs.email),
16
+ username: parseString(attrs.username),
17
+ name: parseString(attrs.name),
18
+ currentVisitingAt: parseDate(attrs.current_visiting_at),
19
+ currentVisitingIp: parseString(attrs.current_visiting_ip),
20
+ lastVisitingAt: parseDate(attrs.last_visiting_at),
21
+ lastVisitingIp: parseString(attrs.last_visiting_ip),
22
+ status: (_parseString1 = parseString(attrs.status)) != null ? _parseString1 : 'active',
23
+ registeredAt: parseDate(attrs.registered_at),
24
+ userUniqueId: parseString(attrs.user_unique_id),
25
+ accessToken: parseString(attrs.access_token)
26
+ };
27
+ }
28
+ };
29
+ /**
30
+ * Mapper for MagicLink resources
31
+ */ export const magicLinkMapper = {
32
+ type: 'magic_links',
33
+ map (resource, _included) {
34
+ var _resource_attributes;
35
+ const attrs = (_resource_attributes = resource.attributes) != null ? _resource_attributes : {};
36
+ var _parseString, _parseDate, _parseDate1, _attrs_user_unique_id, _attrs_token, _parseDate2, _parseString1;
37
+ return {
38
+ id: resource.id,
39
+ uniqueId: (_parseString = parseString(attrs.unique_id)) != null ? _parseString : resource.id,
40
+ createdAt: (_parseDate = parseDate(attrs.created_at)) != null ? _parseDate : new Date(),
41
+ updatedAt: (_parseDate1 = parseDate(attrs.updated_at)) != null ? _parseDate1 : new Date(),
42
+ userUniqueId: String((_attrs_user_unique_id = attrs.user_unique_id) != null ? _attrs_user_unique_id : ''),
43
+ userName: parseString(attrs.user_name),
44
+ userEmail: parseString(attrs.user_email),
45
+ token: String((_attrs_token = attrs.token) != null ? _attrs_token : ''),
46
+ expiresAt: (_parseDate2 = parseDate(attrs.expires_at)) != null ? _parseDate2 : new Date(),
47
+ targetUrl: parseString(attrs.target_url),
48
+ expiredUrl: parseString(attrs.expired_url),
49
+ status: (_parseString1 = parseString(attrs.status)) != null ? _parseString1 : 'active',
50
+ validationUrl: parseString(attrs.validation_url),
51
+ description: parseString(attrs.description),
52
+ thumbnailUrl: parseString(attrs.thumbnail_url),
53
+ contentUrl: parseString(attrs.content_url),
54
+ mediaUrl: parseString(attrs.media_url),
55
+ imageUrl: parseString(attrs.image_url),
56
+ payload: attrs.payload
57
+ };
58
+ }
59
+ };
60
+ /**
61
+ * Mapper for RefreshToken resources
62
+ */ export const refreshTokenMapper = {
63
+ type: 'refresh_tokens',
64
+ map (resource, _included) {
65
+ var _resource_attributes;
66
+ const attrs = (_resource_attributes = resource.attributes) != null ? _resource_attributes : {};
67
+ var _parseString, _parseDate, _parseDate1, _attrs_token, _parseDate2, _parseString1, _parseNumber, _parseNumber1;
68
+ return {
69
+ id: resource.id,
70
+ uniqueId: (_parseString = parseString(attrs.unique_id)) != null ? _parseString : resource.id,
71
+ createdAt: (_parseDate = parseDate(attrs.created_at)) != null ? _parseDate : new Date(),
72
+ updatedAt: (_parseDate1 = parseDate(attrs.updated_at)) != null ? _parseDate1 : new Date(),
73
+ token: String((_attrs_token = attrs.token) != null ? _attrs_token : ''),
74
+ expiresAt: (_parseDate2 = parseDate(attrs.expires_at)) != null ? _parseDate2 : new Date(),
75
+ status: (_parseString1 = parseString(attrs.status)) != null ? _parseString1 : 'active',
76
+ revoked: parseBoolean(attrs.revoked),
77
+ scopes: parseStringArray(attrs.scopes),
78
+ deviceId: parseString(attrs.device_id),
79
+ userAgent: parseString(attrs.user_agent),
80
+ ipAddress: parseString(attrs.ip_address),
81
+ lastUsedAt: parseDate(attrs.last_used_at),
82
+ expired: parseBoolean(attrs.expired),
83
+ active: parseBoolean(attrs.active),
84
+ expiresInSeconds: (_parseNumber = parseNumber(attrs.expires_in_seconds)) != null ? _parseNumber : 0,
85
+ daysUntilExpiry: (_parseNumber1 = parseNumber(attrs.days_until_expiry)) != null ? _parseNumber1 : 0
86
+ };
87
+ }
88
+ };
89
+ /**
90
+ * Mapper for UserDevice resources
91
+ */ export const userDeviceMapper = {
92
+ type: 'user_devices',
93
+ map (resource, _included) {
94
+ var _resource_attributes;
95
+ const attrs = (_resource_attributes = resource.attributes) != null ? _resource_attributes : {};
96
+ var _parseString, _parseDate, _parseDate1, _attrs_user_unique_id, _parseString1;
97
+ return {
98
+ id: resource.id,
99
+ uniqueId: (_parseString = parseString(attrs.unique_id)) != null ? _parseString : resource.id,
100
+ createdAt: (_parseDate = parseDate(attrs.created_at)) != null ? _parseDate : new Date(),
101
+ updatedAt: (_parseDate1 = parseDate(attrs.updated_at)) != null ? _parseDate1 : new Date(),
102
+ userUniqueId: String((_attrs_user_unique_id = attrs.user_unique_id) != null ? _attrs_user_unique_id : ''),
103
+ status: (_parseString1 = parseString(attrs.status)) != null ? _parseString1 : 'active',
104
+ deviceType: parseString(attrs.device_type),
105
+ pushId: parseString(attrs.push_id),
106
+ osType: parseString(attrs.os_type),
107
+ defaultDevice: parseBoolean(attrs.default_device),
108
+ locationEnabled: parseBoolean(attrs.location_enabled),
109
+ notificationsEnabled: parseBoolean(attrs.notifications_enabled)
110
+ };
111
+ }
112
+ };
113
+ /**
114
+ * Mapper for TenantUser resources (not a standard REST resource)
115
+ */ export const tenantUserMapper = {
116
+ type: 'tenant_users',
117
+ map (resource, _included) {
118
+ var _resource_attributes;
119
+ const attrs = (_resource_attributes = resource.attributes) != null ? _resource_attributes : {};
120
+ var _attrs_gateway_url, _attrs_user_id, _attrs_user_unique_id, _attrs_tenant_id, _attrs_tenant_unique_id, _attrs_tenant_access_key, _attrs_tenant_url_id;
121
+ return {
122
+ gatewayUrl: String((_attrs_gateway_url = attrs.gateway_url) != null ? _attrs_gateway_url : ''),
123
+ userId: String((_attrs_user_id = attrs.user_id) != null ? _attrs_user_id : ''),
124
+ userUniqueId: String((_attrs_user_unique_id = attrs.user_unique_id) != null ? _attrs_user_unique_id : ''),
125
+ userEmail: parseString(attrs.user_email),
126
+ userName: parseString(attrs.user_name),
127
+ roleUniqueId: parseString(attrs.role_unique_id),
128
+ roleName: parseString(attrs.role_name),
129
+ roleId: parseString(attrs.role_id),
130
+ tenantId: String((_attrs_tenant_id = attrs.tenant_id) != null ? _attrs_tenant_id : ''),
131
+ tenantUniqueId: String((_attrs_tenant_unique_id = attrs.tenant_unique_id) != null ? _attrs_tenant_unique_id : ''),
132
+ tenantAccessKey: String((_attrs_tenant_access_key = attrs.tenant_access_key) != null ? _attrs_tenant_access_key : ''),
133
+ tenantUrlId: String((_attrs_tenant_url_id = attrs.tenant_url_id) != null ? _attrs_tenant_url_id : ''),
134
+ payload: attrs.payload,
135
+ onboardingCompleted: parseBoolean(attrs.onboarding_completed),
136
+ purchaseCompleted: parseBoolean(attrs.purchase_completed),
137
+ parentOnboardingCompleted: parseBoolean(attrs.parent_onboarding_completed),
138
+ parentPurchaseCompleted: parseBoolean(attrs.parent_purchase_completed)
139
+ };
140
+ }
141
+ };
142
+ /**
143
+ * Mapper for MailTemplate resources
144
+ */ export const mailTemplateMapper = {
145
+ type: 'mail_templates',
146
+ map (resource, _included) {
147
+ var _resource_attributes;
148
+ const attrs = (_resource_attributes = resource.attributes) != null ? _resource_attributes : {};
149
+ var _parseString, _parseDate, _parseDate1, _attrs_event_name, _attrs_name, _parseString1;
150
+ return {
151
+ id: resource.id,
152
+ uniqueId: (_parseString = parseString(attrs.unique_id)) != null ? _parseString : resource.id,
153
+ createdAt: (_parseDate = parseDate(attrs.created_at)) != null ? _parseDate : new Date(),
154
+ updatedAt: (_parseDate1 = parseDate(attrs.updated_at)) != null ? _parseDate1 : new Date(),
155
+ eventName: String((_attrs_event_name = attrs.event_name) != null ? _attrs_event_name : ''),
156
+ name: String((_attrs_name = attrs.name) != null ? _attrs_name : ''),
157
+ source: parseString(attrs.source),
158
+ sourceAlias: parseString(attrs.source_alias),
159
+ sourceId: parseString(attrs.source_id),
160
+ sourceType: parseString(attrs.source_type),
161
+ templateName: parseString(attrs.template_name),
162
+ templateHtml: parseString(attrs.template_html),
163
+ templateText: parseString(attrs.template_text),
164
+ fromDomain: parseString(attrs.from_domain),
165
+ fromAddress: parseString(attrs.from_address),
166
+ fromName: parseString(attrs.from_name),
167
+ fromSubject: parseString(attrs.from_subject),
168
+ payload: attrs.payload,
169
+ preferredLanguage: parseString(attrs.preferred_language),
170
+ status: (_parseString1 = parseString(attrs.status)) != null ? _parseString1 : 'active',
171
+ provider: parseString(attrs.provider)
172
+ };
173
+ }
174
+ };
175
+
176
+ //# sourceMappingURL=guest.mapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/mappers/guest.mapper.ts"],"sourcesContent":["import type { ResourceMapper, IncludedMap, JsonApiResource } from '@23blocks/jsonapi-codec';\nimport type { EntityStatus } from '@23blocks/contracts';\nimport type {\n Guest,\n MagicLink,\n RefreshToken,\n UserDevice,\n TenantUser,\n MailTemplate,\n} from '../types/index.js';\nimport {\n parseString,\n parseDate,\n parseNumber,\n parseBoolean,\n parseStringArray,\n} from './utils.js';\n\n/**\n * Mapper for Guest resources\n */\nexport const guestMapper: ResourceMapper<Guest> = {\n type: 'guests',\n\n map(resource: JsonApiResource, _included: IncludedMap): Guest {\n const attrs = resource.attributes ?? {};\n\n return {\n id: resource.id,\n uniqueId: parseString(attrs.unique_id) ?? resource.id,\n createdAt: parseDate(attrs.created_at) ?? new Date(),\n updatedAt: parseDate(attrs.updated_at) ?? new Date(),\n email: parseString(attrs.email),\n username: parseString(attrs.username),\n name: parseString(attrs.name),\n currentVisitingAt: parseDate(attrs.current_visiting_at),\n currentVisitingIp: parseString(attrs.current_visiting_ip),\n lastVisitingAt: parseDate(attrs.last_visiting_at),\n lastVisitingIp: parseString(attrs.last_visiting_ip),\n status: (parseString(attrs.status) ?? 'active') as EntityStatus,\n registeredAt: parseDate(attrs.registered_at),\n userUniqueId: parseString(attrs.user_unique_id),\n accessToken: parseString(attrs.access_token),\n };\n },\n};\n\n/**\n * Mapper for MagicLink resources\n */\nexport const magicLinkMapper: ResourceMapper<MagicLink> = {\n type: 'magic_links',\n\n map(resource: JsonApiResource, _included: IncludedMap): MagicLink {\n const attrs = resource.attributes ?? {};\n\n return {\n id: resource.id,\n uniqueId: parseString(attrs.unique_id) ?? resource.id,\n createdAt: parseDate(attrs.created_at) ?? new Date(),\n updatedAt: parseDate(attrs.updated_at) ?? new Date(),\n userUniqueId: String(attrs.user_unique_id ?? ''),\n userName: parseString(attrs.user_name),\n userEmail: parseString(attrs.user_email),\n token: String(attrs.token ?? ''),\n expiresAt: parseDate(attrs.expires_at) ?? new Date(),\n targetUrl: parseString(attrs.target_url),\n expiredUrl: parseString(attrs.expired_url),\n status: (parseString(attrs.status) ?? 'active') as EntityStatus,\n validationUrl: parseString(attrs.validation_url),\n description: parseString(attrs.description),\n thumbnailUrl: parseString(attrs.thumbnail_url),\n contentUrl: parseString(attrs.content_url),\n mediaUrl: parseString(attrs.media_url),\n imageUrl: parseString(attrs.image_url),\n payload: attrs.payload as Record<string, unknown> | null,\n };\n },\n};\n\n/**\n * Mapper for RefreshToken resources\n */\nexport const refreshTokenMapper: ResourceMapper<RefreshToken> = {\n type: 'refresh_tokens',\n\n map(resource: JsonApiResource, _included: IncludedMap): RefreshToken {\n const attrs = resource.attributes ?? {};\n\n return {\n id: resource.id,\n uniqueId: parseString(attrs.unique_id) ?? resource.id,\n createdAt: parseDate(attrs.created_at) ?? new Date(),\n updatedAt: parseDate(attrs.updated_at) ?? new Date(),\n token: String(attrs.token ?? ''),\n expiresAt: parseDate(attrs.expires_at) ?? new Date(),\n status: (parseString(attrs.status) ?? 'active') as EntityStatus,\n revoked: parseBoolean(attrs.revoked),\n scopes: parseStringArray(attrs.scopes),\n deviceId: parseString(attrs.device_id),\n userAgent: parseString(attrs.user_agent),\n ipAddress: parseString(attrs.ip_address),\n lastUsedAt: parseDate(attrs.last_used_at),\n expired: parseBoolean(attrs.expired),\n active: parseBoolean(attrs.active),\n expiresInSeconds: parseNumber(attrs.expires_in_seconds) ?? 0,\n daysUntilExpiry: parseNumber(attrs.days_until_expiry) ?? 0,\n };\n },\n};\n\n/**\n * Mapper for UserDevice resources\n */\nexport const userDeviceMapper: ResourceMapper<UserDevice> = {\n type: 'user_devices',\n\n map(resource: JsonApiResource, _included: IncludedMap): UserDevice {\n const attrs = resource.attributes ?? {};\n\n return {\n id: resource.id,\n uniqueId: parseString(attrs.unique_id) ?? resource.id,\n createdAt: parseDate(attrs.created_at) ?? new Date(),\n updatedAt: parseDate(attrs.updated_at) ?? new Date(),\n userUniqueId: String(attrs.user_unique_id ?? ''),\n status: (parseString(attrs.status) ?? 'active') as EntityStatus,\n deviceType: parseString(attrs.device_type),\n pushId: parseString(attrs.push_id),\n osType: parseString(attrs.os_type),\n defaultDevice: parseBoolean(attrs.default_device),\n locationEnabled: parseBoolean(attrs.location_enabled),\n notificationsEnabled: parseBoolean(attrs.notifications_enabled),\n };\n },\n};\n\n/**\n * Mapper for TenantUser resources (not a standard REST resource)\n */\nexport const tenantUserMapper: ResourceMapper<TenantUser> = {\n type: 'tenant_users',\n\n map(resource: JsonApiResource, _included: IncludedMap): TenantUser {\n const attrs = resource.attributes ?? {};\n\n return {\n gatewayUrl: String(attrs.gateway_url ?? ''),\n userId: String(attrs.user_id ?? ''),\n userUniqueId: String(attrs.user_unique_id ?? ''),\n userEmail: parseString(attrs.user_email),\n userName: parseString(attrs.user_name),\n roleUniqueId: parseString(attrs.role_unique_id),\n roleName: parseString(attrs.role_name),\n roleId: parseString(attrs.role_id),\n tenantId: String(attrs.tenant_id ?? ''),\n tenantUniqueId: String(attrs.tenant_unique_id ?? ''),\n tenantAccessKey: String(attrs.tenant_access_key ?? ''),\n tenantUrlId: String(attrs.tenant_url_id ?? ''),\n payload: attrs.payload as Record<string, unknown> | null,\n onboardingCompleted: parseBoolean(attrs.onboarding_completed),\n purchaseCompleted: parseBoolean(attrs.purchase_completed),\n parentOnboardingCompleted: parseBoolean(attrs.parent_onboarding_completed),\n parentPurchaseCompleted: parseBoolean(attrs.parent_purchase_completed),\n };\n },\n};\n\n/**\n * Mapper for MailTemplate resources\n */\nexport const mailTemplateMapper: ResourceMapper<MailTemplate> = {\n type: 'mail_templates',\n\n map(resource: JsonApiResource, _included: IncludedMap): MailTemplate {\n const attrs = resource.attributes ?? {};\n\n return {\n id: resource.id,\n uniqueId: parseString(attrs.unique_id) ?? resource.id,\n createdAt: parseDate(attrs.created_at) ?? new Date(),\n updatedAt: parseDate(attrs.updated_at) ?? new Date(),\n eventName: String(attrs.event_name ?? ''),\n name: String(attrs.name ?? ''),\n source: parseString(attrs.source),\n sourceAlias: parseString(attrs.source_alias),\n sourceId: parseString(attrs.source_id),\n sourceType: parseString(attrs.source_type),\n templateName: parseString(attrs.template_name),\n templateHtml: parseString(attrs.template_html),\n templateText: parseString(attrs.template_text),\n fromDomain: parseString(attrs.from_domain),\n fromAddress: parseString(attrs.from_address),\n fromName: parseString(attrs.from_name),\n fromSubject: parseString(attrs.from_subject),\n payload: attrs.payload as Record<string, unknown> | null,\n preferredLanguage: parseString(attrs.preferred_language),\n status: (parseString(attrs.status) ?? 'active') as EntityStatus,\n provider: parseString(attrs.provider),\n };\n },\n};\n"],"names":["parseString","parseDate","parseNumber","parseBoolean","parseStringArray","guestMapper","type","map","resource","_included","attrs","attributes","id","uniqueId","unique_id","createdAt","created_at","Date","updatedAt","updated_at","email","username","name","currentVisitingAt","current_visiting_at","currentVisitingIp","current_visiting_ip","lastVisitingAt","last_visiting_at","lastVisitingIp","last_visiting_ip","status","registeredAt","registered_at","userUniqueId","user_unique_id","accessToken","access_token","magicLinkMapper","String","userName","user_name","userEmail","user_email","token","expiresAt","expires_at","targetUrl","target_url","expiredUrl","expired_url","validationUrl","validation_url","description","thumbnailUrl","thumbnail_url","contentUrl","content_url","mediaUrl","media_url","imageUrl","image_url","payload","refreshTokenMapper","revoked","scopes","deviceId","device_id","userAgent","user_agent","ipAddress","ip_address","lastUsedAt","last_used_at","expired","active","expiresInSeconds","expires_in_seconds","daysUntilExpiry","days_until_expiry","userDeviceMapper","deviceType","device_type","pushId","push_id","osType","os_type","defaultDevice","default_device","locationEnabled","location_enabled","notificationsEnabled","notifications_enabled","tenantUserMapper","gatewayUrl","gateway_url","userId","user_id","roleUniqueId","role_unique_id","roleName","role_name","roleId","role_id","tenantId","tenant_id","tenantUniqueId","tenant_unique_id","tenantAccessKey","tenant_access_key","tenantUrlId","tenant_url_id","onboardingCompleted","onboarding_completed","purchaseCompleted","purchase_completed","parentOnboardingCompleted","parent_onboarding_completed","parentPurchaseCompleted","parent_purchase_completed","mailTemplateMapper","eventName","event_name","source","sourceAlias","source_alias","sourceId","source_id","sourceType","source_type","templateName","template_name","templateHtml","template_html","templateText","template_text","fromDomain","from_domain","fromAddress","from_address","fromName","from_name","fromSubject","from_subject","preferredLanguage","preferred_language","provider"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -0,0 +1,18 @@
1
+ // User mappers
2
+ export { userMapper, roleMapper, permissionMapper, userAvatarMapper, userProfileMapper } from './user.mapper.js';
3
+ // Company mappers
4
+ export { companyMapper, companyDetailMapper, companyBlockMapper, companyKeyMapper, tenantMapper } from './company.mapper.js';
5
+ // API Key mappers
6
+ export { apiKeyMapper, apiKeyWithSecretMapper } from './api-key.mapper.js';
7
+ // App mappers
8
+ export { appMapper, blockMapper, serviceMapper } from './app.mapper.js';
9
+ // Subscription mappers
10
+ export { subscriptionModelMapper, userSubscriptionMapper, companySubscriptionMapper } from './subscription.mapper.js';
11
+ // Geography mappers
12
+ export { countryMapper, stateMapper, countyMapper, cityMapper, currencyMapper } from './geography.mapper.js';
13
+ // Guest and related mappers
14
+ export { guestMapper, magicLinkMapper, refreshTokenMapper, userDeviceMapper, tenantUserMapper, mailTemplateMapper } from './guest.mapper.js';
15
+ // Utilities
16
+ export { parseString, parseDate, parseBoolean, parseNumber, parseStringArray } from './utils.js';
17
+
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/mappers/index.ts"],"sourcesContent":["// User mappers\nexport { userMapper, roleMapper, permissionMapper, userAvatarMapper, userProfileMapper } from './user.mapper.js';\n\n// Company mappers\nexport { companyMapper, companyDetailMapper, companyBlockMapper, companyKeyMapper, tenantMapper } from './company.mapper.js';\n\n// API Key mappers\nexport { apiKeyMapper, apiKeyWithSecretMapper } from './api-key.mapper.js';\n\n// App mappers\nexport { appMapper, blockMapper, serviceMapper } from './app.mapper.js';\n\n// Subscription mappers\nexport { subscriptionModelMapper, userSubscriptionMapper, companySubscriptionMapper } from './subscription.mapper.js';\n\n// Geography mappers\nexport { countryMapper, stateMapper, countyMapper, cityMapper, currencyMapper } from './geography.mapper.js';\n\n// Guest and related mappers\nexport {\n guestMapper,\n magicLinkMapper,\n refreshTokenMapper,\n userDeviceMapper,\n tenantUserMapper,\n mailTemplateMapper,\n} from './guest.mapper.js';\n\n// Utilities\nexport { parseString, parseDate, parseBoolean, parseNumber, parseStringArray } from './utils.js';\n"],"names":["userMapper","roleMapper","permissionMapper","userAvatarMapper","userProfileMapper","companyMapper","companyDetailMapper","companyBlockMapper","companyKeyMapper","tenantMapper","apiKeyMapper","apiKeyWithSecretMapper","appMapper","blockMapper","serviceMapper","subscriptionModelMapper","userSubscriptionMapper","companySubscriptionMapper","countryMapper","stateMapper","countyMapper","cityMapper","currencyMapper","guestMapper","magicLinkMapper","refreshTokenMapper","userDeviceMapper","tenantUserMapper","mailTemplateMapper","parseString","parseDate","parseBoolean","parseNumber","parseStringArray"],"rangeMappings":";;;;;;;;;;;;;;;","mappings":"AAAA,eAAe;AACf,SAASA,UAAU,EAAEC,UAAU,EAAEC,gBAAgB,EAAEC,gBAAgB,EAAEC,iBAAiB,QAAQ,mBAAmB;AAEjH,kBAAkB;AAClB,SAASC,aAAa,EAAEC,mBAAmB,EAAEC,kBAAkB,EAAEC,gBAAgB,EAAEC,YAAY,QAAQ,sBAAsB;AAE7H,kBAAkB;AAClB,SAASC,YAAY,EAAEC,sBAAsB,QAAQ,sBAAsB;AAE3E,cAAc;AACd,SAASC,SAAS,EAAEC,WAAW,EAAEC,aAAa,QAAQ,kBAAkB;AAExE,uBAAuB;AACvB,SAASC,uBAAuB,EAAEC,sBAAsB,EAAEC,yBAAyB,QAAQ,2BAA2B;AAEtH,oBAAoB;AACpB,SAASC,aAAa,EAAEC,WAAW,EAAEC,YAAY,EAAEC,UAAU,EAAEC,cAAc,QAAQ,wBAAwB;AAE7G,4BAA4B;AAC5B,SACEC,WAAW,EACXC,eAAe,EACfC,kBAAkB,EAClBC,gBAAgB,EAChBC,gBAAgB,EAChBC,kBAAkB,QACb,oBAAoB;AAE3B,YAAY;AACZ,SAASC,WAAW,EAAEC,SAAS,EAAEC,YAAY,EAAEC,WAAW,EAAEC,gBAAgB,QAAQ,aAAa"}
@@ -0,0 +1,134 @@
1
+ import { parseString, parseDate, parseNumber, parseBoolean } from './utils.js';
2
+ /**
3
+ * Mapper for SubscriptionModel resources
4
+ */ export const subscriptionModelMapper = {
5
+ type: 'subscription_models',
6
+ map (resource, _included) {
7
+ var _resource_attributes;
8
+ const attrs = (_resource_attributes = resource.attributes) != null ? _resource_attributes : {};
9
+ var _parseString, _parseDate, _parseDate1, _attrs_code, _parseString1;
10
+ return {
11
+ id: resource.id,
12
+ uniqueId: (_parseString = parseString(attrs.unique_id)) != null ? _parseString : resource.id,
13
+ createdAt: (_parseDate = parseDate(attrs.created_at)) != null ? _parseDate : new Date(),
14
+ updatedAt: (_parseDate1 = parseDate(attrs.updated_at)) != null ? _parseDate1 : new Date(),
15
+ code: String((_attrs_code = attrs.code) != null ? _attrs_code : ''),
16
+ status: (_parseString1 = parseString(attrs.status)) != null ? _parseString1 : 'active',
17
+ description: parseString(attrs.description),
18
+ promotional: parseBoolean(attrs.promotional),
19
+ programCode: parseString(attrs.program_code),
20
+ duration: parseNumber(attrs.duration),
21
+ durationUnit: parseString(attrs.duration_unit),
22
+ durationDescription: parseString(attrs.duration_description),
23
+ recurringPaymentFees: parseNumber(attrs.recurring_payment_fees),
24
+ recurringPaymentAmount: parseNumber(attrs.recurring_payment_amount),
25
+ contentLink: parseString(attrs.content_link),
26
+ startAt: parseDate(attrs.start_at),
27
+ endAt: parseDate(attrs.end_at),
28
+ isChannel: parseBoolean(attrs.is_channel),
29
+ maxTenants: parseNumber(attrs.max_tenants),
30
+ initialPayment: parseNumber(attrs.initial_payment),
31
+ subscriptionType: parseString(attrs.subscription_type),
32
+ payments: parseNumber(attrs.payments),
33
+ payload: attrs.payload,
34
+ maxItems: parseNumber(attrs.max_items)
35
+ };
36
+ }
37
+ };
38
+ /**
39
+ * Mapper for UserSubscription resources
40
+ */ export const userSubscriptionMapper = {
41
+ type: 'user_subscriptions',
42
+ map (resource, included) {
43
+ var _resource_relationships_subscription_model, _resource_relationships;
44
+ var _resource_attributes;
45
+ const attrs = (_resource_attributes = resource.attributes) != null ? _resource_attributes : {};
46
+ var _parseString, _parseDate, _parseDate1, _attrs_code, _attrs_user_unique_id, _parseNumber, _parseString1, _parseNumber1;
47
+ const subscription = {
48
+ id: resource.id,
49
+ uniqueId: (_parseString = parseString(attrs.unique_id)) != null ? _parseString : resource.id,
50
+ createdAt: (_parseDate = parseDate(attrs.created_at)) != null ? _parseDate : new Date(),
51
+ updatedAt: (_parseDate1 = parseDate(attrs.updated_at)) != null ? _parseDate1 : new Date(),
52
+ code: String((_attrs_code = attrs.code) != null ? _attrs_code : ''),
53
+ userUniqueId: String((_attrs_user_unique_id = attrs.user_unique_id) != null ? _attrs_user_unique_id : ''),
54
+ programCode: parseString(attrs.program_code),
55
+ recurringPaymentFees: parseNumber(attrs.recurring_payment_fees),
56
+ recurringPaymentAmount: parseNumber(attrs.recurring_payment_amount),
57
+ subscriptionNumber: parseString(attrs.subscription_number),
58
+ subscribedAt: parseDate(attrs.subscribed_at),
59
+ closedAt: parseDate(attrs.closed_at),
60
+ lastPaymentAt: parseDate(attrs.last_payment_at),
61
+ nextPaymentAt: parseDate(attrs.next_payment_at),
62
+ lastPayment: parseNumber(attrs.last_payment),
63
+ paymentsMade: (_parseNumber = parseNumber(attrs.payments_made)) != null ? _parseNumber : 0,
64
+ status: (_parseString1 = parseString(attrs.status)) != null ? _parseString1 : 'active',
65
+ bankruptcy: parseBoolean(attrs.bankruptcy),
66
+ initialPayment: parseNumber(attrs.initial_payment),
67
+ subscriptionType: parseString(attrs.subscription_type),
68
+ payments: parseNumber(attrs.payments),
69
+ payload: attrs.payload,
70
+ maxItems: parseNumber(attrs.max_items),
71
+ consumption: (_parseNumber1 = parseNumber(attrs.consumption)) != null ? _parseNumber1 : 0
72
+ };
73
+ // Resolve subscription_model relationship if included
74
+ if (included && ((_resource_relationships = resource.relationships) == null ? void 0 : (_resource_relationships_subscription_model = _resource_relationships.subscription_model) == null ? void 0 : _resource_relationships_subscription_model.data)) {
75
+ const relData = resource.relationships.subscription_model.data;
76
+ if (!Array.isArray(relData)) {
77
+ const modelResource = included.get(`${relData.type}:${relData.id}`);
78
+ if (modelResource) {
79
+ subscription.subscriptionModel = subscriptionModelMapper.map(modelResource, included);
80
+ }
81
+ }
82
+ }
83
+ return subscription;
84
+ }
85
+ };
86
+ /**
87
+ * Mapper for CompanySubscription resources
88
+ */ export const companySubscriptionMapper = {
89
+ type: 'company_subscriptions',
90
+ map (resource, included) {
91
+ var _resource_relationships_subscription_model, _resource_relationships;
92
+ var _resource_attributes;
93
+ const attrs = (_resource_attributes = resource.attributes) != null ? _resource_attributes : {};
94
+ var _parseString, _parseDate, _parseDate1, _attrs_code, _attrs_company_unique_id, _parseNumber, _parseString1, _parseNumber1;
95
+ const subscription = {
96
+ id: resource.id,
97
+ uniqueId: (_parseString = parseString(attrs.unique_id)) != null ? _parseString : resource.id,
98
+ createdAt: (_parseDate = parseDate(attrs.created_at)) != null ? _parseDate : new Date(),
99
+ updatedAt: (_parseDate1 = parseDate(attrs.updated_at)) != null ? _parseDate1 : new Date(),
100
+ code: String((_attrs_code = attrs.code) != null ? _attrs_code : ''),
101
+ companyUniqueId: String((_attrs_company_unique_id = attrs.company_unique_id) != null ? _attrs_company_unique_id : ''),
102
+ programCode: parseString(attrs.program_code),
103
+ recurringPaymentFees: parseNumber(attrs.recurring_payment_fees),
104
+ recurringPaymentAmount: parseNumber(attrs.recurring_payment_amount),
105
+ subscriptionNumber: parseString(attrs.subscription_number),
106
+ subscribedAt: parseDate(attrs.subscribed_at),
107
+ closedAt: parseDate(attrs.closed_at),
108
+ lastPaymentAt: parseDate(attrs.last_payment_at),
109
+ nextPaymentAt: parseDate(attrs.next_payment_at),
110
+ lastPayment: parseNumber(attrs.last_payment),
111
+ paymentsMade: (_parseNumber = parseNumber(attrs.payments_made)) != null ? _parseNumber : 0,
112
+ status: (_parseString1 = parseString(attrs.status)) != null ? _parseString1 : 'active',
113
+ bankruptcy: parseBoolean(attrs.bankruptcy),
114
+ initialPayment: parseNumber(attrs.initial_payment),
115
+ subscriptionType: parseString(attrs.subscription_type),
116
+ payload: attrs.payload,
117
+ maxItems: parseNumber(attrs.max_items),
118
+ consumption: (_parseNumber1 = parseNumber(attrs.consumption)) != null ? _parseNumber1 : 0
119
+ };
120
+ // Resolve subscription_model relationship if included
121
+ if (included && ((_resource_relationships = resource.relationships) == null ? void 0 : (_resource_relationships_subscription_model = _resource_relationships.subscription_model) == null ? void 0 : _resource_relationships_subscription_model.data)) {
122
+ const relData = resource.relationships.subscription_model.data;
123
+ if (!Array.isArray(relData)) {
124
+ const modelResource = included.get(`${relData.type}:${relData.id}`);
125
+ if (modelResource) {
126
+ subscription.subscriptionModel = subscriptionModelMapper.map(modelResource, included);
127
+ }
128
+ }
129
+ }
130
+ return subscription;
131
+ }
132
+ };
133
+
134
+ //# sourceMappingURL=subscription.mapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/mappers/subscription.mapper.ts"],"sourcesContent":["import type { ResourceMapper, IncludedMap, JsonApiResource } from '@23blocks/jsonapi-codec';\nimport type { EntityStatus } from '@23blocks/contracts';\nimport type {\n SubscriptionModel,\n UserSubscription,\n CompanySubscription,\n} from '../types/index.js';\nimport { parseString, parseDate, parseNumber, parseBoolean } from './utils.js';\n\n/**\n * Mapper for SubscriptionModel resources\n */\nexport const subscriptionModelMapper: ResourceMapper<SubscriptionModel> = {\n type: 'subscription_models',\n\n map(resource: JsonApiResource, _included: IncludedMap): SubscriptionModel {\n const attrs = resource.attributes ?? {};\n\n return {\n id: resource.id,\n uniqueId: parseString(attrs.unique_id) ?? resource.id,\n createdAt: parseDate(attrs.created_at) ?? new Date(),\n updatedAt: parseDate(attrs.updated_at) ?? new Date(),\n code: String(attrs.code ?? ''),\n status: (parseString(attrs.status) ?? 'active') as EntityStatus,\n description: parseString(attrs.description),\n promotional: parseBoolean(attrs.promotional),\n programCode: parseString(attrs.program_code),\n duration: parseNumber(attrs.duration),\n durationUnit: parseString(attrs.duration_unit),\n durationDescription: parseString(attrs.duration_description),\n recurringPaymentFees: parseNumber(attrs.recurring_payment_fees),\n recurringPaymentAmount: parseNumber(attrs.recurring_payment_amount),\n contentLink: parseString(attrs.content_link),\n startAt: parseDate(attrs.start_at),\n endAt: parseDate(attrs.end_at),\n isChannel: parseBoolean(attrs.is_channel),\n maxTenants: parseNumber(attrs.max_tenants),\n initialPayment: parseNumber(attrs.initial_payment),\n subscriptionType: parseString(attrs.subscription_type),\n payments: parseNumber(attrs.payments),\n payload: attrs.payload as Record<string, unknown> | null,\n maxItems: parseNumber(attrs.max_items),\n };\n },\n};\n\n/**\n * Mapper for UserSubscription resources\n */\nexport const userSubscriptionMapper: ResourceMapper<UserSubscription> = {\n type: 'user_subscriptions',\n\n map(resource: JsonApiResource, included: IncludedMap): UserSubscription {\n const attrs = resource.attributes ?? {};\n\n const subscription: UserSubscription = {\n id: resource.id,\n uniqueId: parseString(attrs.unique_id) ?? resource.id,\n createdAt: parseDate(attrs.created_at) ?? new Date(),\n updatedAt: parseDate(attrs.updated_at) ?? new Date(),\n code: String(attrs.code ?? ''),\n userUniqueId: String(attrs.user_unique_id ?? ''),\n programCode: parseString(attrs.program_code),\n recurringPaymentFees: parseNumber(attrs.recurring_payment_fees),\n recurringPaymentAmount: parseNumber(attrs.recurring_payment_amount),\n subscriptionNumber: parseString(attrs.subscription_number),\n subscribedAt: parseDate(attrs.subscribed_at),\n closedAt: parseDate(attrs.closed_at),\n lastPaymentAt: parseDate(attrs.last_payment_at),\n nextPaymentAt: parseDate(attrs.next_payment_at),\n lastPayment: parseNumber(attrs.last_payment),\n paymentsMade: parseNumber(attrs.payments_made) ?? 0,\n status: (parseString(attrs.status) ?? 'active') as EntityStatus,\n bankruptcy: parseBoolean(attrs.bankruptcy),\n initialPayment: parseNumber(attrs.initial_payment),\n subscriptionType: parseString(attrs.subscription_type),\n payments: parseNumber(attrs.payments),\n payload: attrs.payload as Record<string, unknown> | null,\n maxItems: parseNumber(attrs.max_items),\n consumption: parseNumber(attrs.consumption) ?? 0,\n };\n\n // Resolve subscription_model relationship if included\n if (included && resource.relationships?.subscription_model?.data) {\n const relData = resource.relationships.subscription_model.data;\n if (!Array.isArray(relData)) {\n const modelResource = included.get(`${relData.type}:${relData.id}`);\n if (modelResource) {\n subscription.subscriptionModel = subscriptionModelMapper.map(modelResource, included);\n }\n }\n }\n\n return subscription;\n },\n};\n\n/**\n * Mapper for CompanySubscription resources\n */\nexport const companySubscriptionMapper: ResourceMapper<CompanySubscription> = {\n type: 'company_subscriptions',\n\n map(resource: JsonApiResource, included: IncludedMap): CompanySubscription {\n const attrs = resource.attributes ?? {};\n\n const subscription: CompanySubscription = {\n id: resource.id,\n uniqueId: parseString(attrs.unique_id) ?? resource.id,\n createdAt: parseDate(attrs.created_at) ?? new Date(),\n updatedAt: parseDate(attrs.updated_at) ?? new Date(),\n code: String(attrs.code ?? ''),\n companyUniqueId: String(attrs.company_unique_id ?? ''),\n programCode: parseString(attrs.program_code),\n recurringPaymentFees: parseNumber(attrs.recurring_payment_fees),\n recurringPaymentAmount: parseNumber(attrs.recurring_payment_amount),\n subscriptionNumber: parseString(attrs.subscription_number),\n subscribedAt: parseDate(attrs.subscribed_at),\n closedAt: parseDate(attrs.closed_at),\n lastPaymentAt: parseDate(attrs.last_payment_at),\n nextPaymentAt: parseDate(attrs.next_payment_at),\n lastPayment: parseNumber(attrs.last_payment),\n paymentsMade: parseNumber(attrs.payments_made) ?? 0,\n status: (parseString(attrs.status) ?? 'active') as EntityStatus,\n bankruptcy: parseBoolean(attrs.bankruptcy),\n initialPayment: parseNumber(attrs.initial_payment),\n subscriptionType: parseString(attrs.subscription_type),\n payload: attrs.payload as Record<string, unknown> | null,\n maxItems: parseNumber(attrs.max_items),\n consumption: parseNumber(attrs.consumption) ?? 0,\n };\n\n // Resolve subscription_model relationship if included\n if (included && resource.relationships?.subscription_model?.data) {\n const relData = resource.relationships.subscription_model.data;\n if (!Array.isArray(relData)) {\n const modelResource = included.get(`${relData.type}:${relData.id}`);\n if (modelResource) {\n subscription.subscriptionModel = subscriptionModelMapper.map(modelResource, included);\n }\n }\n }\n\n return subscription;\n },\n};\n"],"names":["parseString","parseDate","parseNumber","parseBoolean","subscriptionModelMapper","type","map","resource","_included","attrs","attributes","id","uniqueId","unique_id","createdAt","created_at","Date","updatedAt","updated_at","code","String","status","description","promotional","programCode","program_code","duration","durationUnit","duration_unit","durationDescription","duration_description","recurringPaymentFees","recurring_payment_fees","recurringPaymentAmount","recurring_payment_amount","contentLink","content_link","startAt","start_at","endAt","end_at","isChannel","is_channel","maxTenants","max_tenants","initialPayment","initial_payment","subscriptionType","subscription_type","payments","payload","maxItems","max_items","userSubscriptionMapper","included","subscription","userUniqueId","user_unique_id","subscriptionNumber","subscription_number","subscribedAt","subscribed_at","closedAt","closed_at","lastPaymentAt","last_payment_at","nextPaymentAt","next_payment_at","lastPayment","last_payment","paymentsMade","payments_made","bankruptcy","consumption","relationships","subscription_model","data","relData","Array","isArray","modelResource","get","subscriptionModel","companySubscriptionMapper","companyUniqueId","company_unique_id"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -0,0 +1,163 @@
1
+ import { resolveRelationship } from '@23blocks/jsonapi-codec';
2
+ import { parseDate, parseBoolean, parseString } from './utils.js';
3
+ /**
4
+ * Permission mapper
5
+ */ export const permissionMapper = {
6
+ type: 'permission',
7
+ map (resource, _included) {
8
+ var _resource_attributes;
9
+ const attrs = (_resource_attributes = resource.attributes) != null ? _resource_attributes : {};
10
+ var _attrs_status, _parseDate, _parseDate1;
11
+ return {
12
+ id: resource.id,
13
+ uniqueId: parseString(attrs.unique_id),
14
+ name: parseString(attrs.name),
15
+ level: Number(attrs.level) || 0,
16
+ parentId: parseString(attrs.parent_id),
17
+ description: parseString(attrs.description),
18
+ status: (_attrs_status = attrs.status) != null ? _attrs_status : 'active',
19
+ category: parseString(attrs.category),
20
+ riskLevel: parseString(attrs.risk_level),
21
+ createdAt: (_parseDate = parseDate(attrs.created_at)) != null ? _parseDate : new Date(),
22
+ updatedAt: (_parseDate1 = parseDate(attrs.updated_at)) != null ? _parseDate1 : new Date()
23
+ };
24
+ }
25
+ };
26
+ /**
27
+ * Role mapper
28
+ */ export const roleMapper = {
29
+ type: 'role',
30
+ map (resource, _included) {
31
+ var _resource_attributes;
32
+ const attrs = (_resource_attributes = resource.attributes) != null ? _resource_attributes : {};
33
+ var _attrs_status, _parseDate, _parseDate1;
34
+ return {
35
+ id: resource.id,
36
+ uniqueId: parseString(attrs.unique_id),
37
+ name: parseString(attrs.name),
38
+ code: parseString(attrs.code),
39
+ description: parseString(attrs.description),
40
+ status: (_attrs_status = attrs.status) != null ? _attrs_status : 'active',
41
+ payload: attrs.payload,
42
+ onBoardingUniqueId: parseString(attrs.on_boarding_unique_id),
43
+ onBoardingUrl: parseString(attrs.on_boarding_url),
44
+ onBoardingPayload: attrs.on_boarding_payload,
45
+ createdAt: (_parseDate = parseDate(attrs.created_at)) != null ? _parseDate : new Date(),
46
+ updatedAt: (_parseDate1 = parseDate(attrs.updated_at)) != null ? _parseDate1 : new Date(),
47
+ // Note: permissions are typically not included in role responses
48
+ permissions: []
49
+ };
50
+ }
51
+ };
52
+ /**
53
+ * User avatar mapper
54
+ */ export const userAvatarMapper = {
55
+ type: 'UserAvatar',
56
+ map (resource, _included) {
57
+ var _resource_attributes;
58
+ const attrs = (_resource_attributes = resource.attributes) != null ? _resource_attributes : {};
59
+ var _attrs_status, _parseDate, _parseDate1;
60
+ return {
61
+ id: resource.id,
62
+ uniqueId: parseString(attrs.unique_id),
63
+ userUniqueId: parseString(attrs.user_unique_id),
64
+ bucket: parseString(attrs.bucket),
65
+ originalName: parseString(attrs.original_name),
66
+ name: parseString(attrs.name),
67
+ url: parseString(attrs.url),
68
+ thumbnail: parseString(attrs.thumbnail),
69
+ fileType: parseString(attrs.file_type),
70
+ fileSize: attrs.file_size != null ? Number(attrs.file_size) : null,
71
+ description: parseString(attrs.description),
72
+ originalFile: parseString(attrs.original_file),
73
+ status: (_attrs_status = attrs.status) != null ? _attrs_status : 'active',
74
+ isPublic: parseBoolean(attrs.is_public),
75
+ createdAt: (_parseDate = parseDate(attrs.created_at)) != null ? _parseDate : new Date(),
76
+ updatedAt: (_parseDate1 = parseDate(attrs.updated_at)) != null ? _parseDate1 : new Date()
77
+ };
78
+ }
79
+ };
80
+ /**
81
+ * User profile mapper
82
+ */ export const userProfileMapper = {
83
+ type: 'UserProfile',
84
+ map (resource, _included) {
85
+ var _resource_attributes;
86
+ const attrs = (_resource_attributes = resource.attributes) != null ? _resource_attributes : {};
87
+ var _attrs_status, _parseDate, _parseDate1;
88
+ return {
89
+ id: resource.id,
90
+ uniqueId: parseString(attrs.unique_id),
91
+ userUniqueId: parseString(attrs.user_unique_id),
92
+ firstName: parseString(attrs.first_name),
93
+ middleName: parseString(attrs.middle_name),
94
+ lastName: parseString(attrs.last_name),
95
+ gender: parseString(attrs.gender),
96
+ ethnicity: parseString(attrs.ethnicity),
97
+ zipcode: parseString(attrs.zipcode),
98
+ maritalStatus: parseString(attrs.marital_status),
99
+ birthdate: parseDate(attrs.birthdate),
100
+ hhi: parseString(attrs.hhi),
101
+ children: attrs.children != null ? Number(attrs.children) : null,
102
+ source: parseString(attrs.source),
103
+ status: (_attrs_status = attrs.status) != null ? _attrs_status : 'active',
104
+ phoneNumber: parseString(attrs.phone_number),
105
+ email: parseString(attrs.email),
106
+ preferredDevice: parseString(attrs.preferred_device),
107
+ preferredLanguage: parseString(attrs.preferred_language),
108
+ webSite: parseString(attrs.web_site),
109
+ twitter: parseString(attrs.twitter),
110
+ fb: parseString(attrs.fb),
111
+ instagram: parseString(attrs.instagram),
112
+ linkedin: parseString(attrs.linkedin),
113
+ youtube: parseString(attrs.youtube),
114
+ blog: parseString(attrs.blog),
115
+ networkA: parseString(attrs.network_a),
116
+ networkB: parseString(attrs.network_b),
117
+ payload: attrs.payload,
118
+ timeZone: parseString(attrs.time_zone),
119
+ createdAt: (_parseDate = parseDate(attrs.created_at)) != null ? _parseDate : new Date(),
120
+ updatedAt: (_parseDate1 = parseDate(attrs.updated_at)) != null ? _parseDate1 : new Date()
121
+ };
122
+ }
123
+ };
124
+ /**
125
+ * User mapper
126
+ */ export const userMapper = {
127
+ type: 'User',
128
+ map (resource, included) {
129
+ var _resource_attributes;
130
+ const attrs = (_resource_attributes = resource.attributes) != null ? _resource_attributes : {};
131
+ var _parseString, _parseString1, _attrs_status, _parseDate, _parseDate1;
132
+ return {
133
+ id: resource.id,
134
+ uniqueId: parseString(attrs.unique_id),
135
+ email: parseString(attrs.email),
136
+ username: parseString(attrs.username),
137
+ name: parseString(attrs.name),
138
+ nickname: parseString(attrs.nickname),
139
+ bio: parseString(attrs.bio),
140
+ provider: (_parseString = parseString(attrs.provider)) != null ? _parseString : 'email',
141
+ uid: (_parseString1 = parseString(attrs.uid)) != null ? _parseString1 : attrs.email,
142
+ roleId: parseString(attrs.role_id),
143
+ status: (_attrs_status = attrs.status) != null ? _attrs_status : 'active',
144
+ mailStatus: parseString(attrs.mail_status),
145
+ phoneStatus: parseString(attrs.phone_status),
146
+ allowPasswordChange: parseBoolean(attrs.allow_password_change),
147
+ lastSignInAt: parseDate(attrs.last_sign_in_at),
148
+ confirmedAt: parseDate(attrs.confirmed_at),
149
+ unconfirmedEmail: parseString(attrs.unconfirmed_email),
150
+ invitationSentAt: parseDate(attrs.invitation_sent_at),
151
+ invitationAcceptedAt: parseDate(attrs.invitation_accepted_at),
152
+ invitationCreatedAt: parseDate(attrs.invitation_created_at),
153
+ createdAt: (_parseDate = parseDate(attrs.created_at)) != null ? _parseDate : new Date(),
154
+ updatedAt: (_parseDate1 = parseDate(attrs.updated_at)) != null ? _parseDate1 : new Date(),
155
+ // Resolve relationships from included resources
156
+ role: resolveRelationship(resource, 'role', included, roleMapper),
157
+ avatar: resolveRelationship(resource, 'user_avatar', included, userAvatarMapper),
158
+ profile: resolveRelationship(resource, 'user_profile', included, userProfileMapper)
159
+ };
160
+ }
161
+ };
162
+
163
+ //# sourceMappingURL=user.mapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/mappers/user.mapper.ts"],"sourcesContent":["import type { ResourceMapper, IncludedMap, JsonApiResource } from '@23blocks/jsonapi-codec';\nimport { resolveRelationship } from '@23blocks/jsonapi-codec';\nimport type { User, Role, UserAvatar, UserProfile, Permission } from '../types/index.js';\nimport { parseDate, parseBoolean, parseString } from './utils.js';\n\n/**\n * Permission mapper\n */\nexport const permissionMapper: ResourceMapper<Permission> = {\n type: 'permission',\n\n map(resource: JsonApiResource, _included: IncludedMap): Permission {\n const attrs = resource.attributes ?? {};\n\n return {\n id: resource.id,\n uniqueId: parseString(attrs.unique_id),\n name: parseString(attrs.name),\n level: Number(attrs.level) || 0,\n parentId: parseString(attrs.parent_id),\n description: parseString(attrs.description),\n status: (attrs.status as Permission['status']) ?? 'active',\n category: parseString(attrs.category),\n riskLevel: parseString(attrs.risk_level),\n createdAt: parseDate(attrs.created_at) ?? new Date(),\n updatedAt: parseDate(attrs.updated_at) ?? new Date(),\n };\n },\n};\n\n/**\n * Role mapper\n */\nexport const roleMapper: ResourceMapper<Role> = {\n type: 'role',\n\n map(resource: JsonApiResource, _included: IncludedMap): Role {\n const attrs = resource.attributes ?? {};\n\n return {\n id: resource.id,\n uniqueId: parseString(attrs.unique_id),\n name: parseString(attrs.name),\n code: parseString(attrs.code),\n description: parseString(attrs.description),\n status: (attrs.status as Role['status']) ?? 'active',\n payload: attrs.payload as Record<string, unknown> | null,\n onBoardingUniqueId: parseString(attrs.on_boarding_unique_id),\n onBoardingUrl: parseString(attrs.on_boarding_url),\n onBoardingPayload: attrs.on_boarding_payload as Record<string, unknown> | null,\n createdAt: parseDate(attrs.created_at) ?? new Date(),\n updatedAt: parseDate(attrs.updated_at) ?? new Date(),\n // Note: permissions are typically not included in role responses\n permissions: [],\n };\n },\n};\n\n/**\n * User avatar mapper\n */\nexport const userAvatarMapper: ResourceMapper<UserAvatar> = {\n type: 'UserAvatar',\n\n map(resource: JsonApiResource, _included: IncludedMap): UserAvatar {\n const attrs = resource.attributes ?? {};\n\n return {\n id: resource.id,\n uniqueId: parseString(attrs.unique_id),\n userUniqueId: parseString(attrs.user_unique_id),\n bucket: parseString(attrs.bucket),\n originalName: parseString(attrs.original_name),\n name: parseString(attrs.name),\n url: parseString(attrs.url),\n thumbnail: parseString(attrs.thumbnail),\n fileType: parseString(attrs.file_type),\n fileSize: attrs.file_size != null ? Number(attrs.file_size) : null,\n description: parseString(attrs.description),\n originalFile: parseString(attrs.original_file),\n status: (attrs.status as UserAvatar['status']) ?? 'active',\n isPublic: parseBoolean(attrs.is_public),\n createdAt: parseDate(attrs.created_at) ?? new Date(),\n updatedAt: parseDate(attrs.updated_at) ?? new Date(),\n };\n },\n};\n\n/**\n * User profile mapper\n */\nexport const userProfileMapper: ResourceMapper<UserProfile> = {\n type: 'UserProfile',\n\n map(resource: JsonApiResource, _included: IncludedMap): UserProfile {\n const attrs = resource.attributes ?? {};\n\n return {\n id: resource.id,\n uniqueId: parseString(attrs.unique_id),\n userUniqueId: parseString(attrs.user_unique_id),\n firstName: parseString(attrs.first_name),\n middleName: parseString(attrs.middle_name),\n lastName: parseString(attrs.last_name),\n gender: parseString(attrs.gender),\n ethnicity: parseString(attrs.ethnicity),\n zipcode: parseString(attrs.zipcode),\n maritalStatus: parseString(attrs.marital_status),\n birthdate: parseDate(attrs.birthdate),\n hhi: parseString(attrs.hhi),\n children: attrs.children != null ? Number(attrs.children) : null,\n source: parseString(attrs.source),\n status: (attrs.status as UserProfile['status']) ?? 'active',\n phoneNumber: parseString(attrs.phone_number),\n email: parseString(attrs.email),\n preferredDevice: parseString(attrs.preferred_device),\n preferredLanguage: parseString(attrs.preferred_language),\n webSite: parseString(attrs.web_site),\n twitter: parseString(attrs.twitter),\n fb: parseString(attrs.fb),\n instagram: parseString(attrs.instagram),\n linkedin: parseString(attrs.linkedin),\n youtube: parseString(attrs.youtube),\n blog: parseString(attrs.blog),\n networkA: parseString(attrs.network_a),\n networkB: parseString(attrs.network_b),\n payload: attrs.payload as Record<string, unknown> | null,\n timeZone: parseString(attrs.time_zone),\n createdAt: parseDate(attrs.created_at) ?? new Date(),\n updatedAt: parseDate(attrs.updated_at) ?? new Date(),\n };\n },\n};\n\n/**\n * User mapper\n */\nexport const userMapper: ResourceMapper<User> = {\n type: 'User',\n\n map(resource: JsonApiResource, included: IncludedMap): User {\n const attrs = resource.attributes ?? {};\n\n return {\n id: resource.id,\n uniqueId: parseString(attrs.unique_id),\n email: parseString(attrs.email),\n username: parseString(attrs.username),\n name: parseString(attrs.name),\n nickname: parseString(attrs.nickname),\n bio: parseString(attrs.bio),\n provider: parseString(attrs.provider) ?? 'email',\n uid: parseString(attrs.uid) ?? attrs.email as string,\n roleId: parseString(attrs.role_id),\n status: (attrs.status as User['status']) ?? 'active',\n mailStatus: parseString(attrs.mail_status),\n phoneStatus: parseString(attrs.phone_status),\n allowPasswordChange: parseBoolean(attrs.allow_password_change),\n lastSignInAt: parseDate(attrs.last_sign_in_at),\n confirmedAt: parseDate(attrs.confirmed_at),\n unconfirmedEmail: parseString(attrs.unconfirmed_email),\n invitationSentAt: parseDate(attrs.invitation_sent_at),\n invitationAcceptedAt: parseDate(attrs.invitation_accepted_at),\n invitationCreatedAt: parseDate(attrs.invitation_created_at),\n createdAt: parseDate(attrs.created_at) ?? new Date(),\n updatedAt: parseDate(attrs.updated_at) ?? new Date(),\n\n // Resolve relationships from included resources\n role: resolveRelationship(resource, 'role', included, roleMapper),\n avatar: resolveRelationship(resource, 'user_avatar', included, userAvatarMapper),\n profile: resolveRelationship(resource, 'user_profile', included, userProfileMapper),\n };\n },\n};\n"],"names":["resolveRelationship","parseDate","parseBoolean","parseString","permissionMapper","type","map","resource","_included","attrs","attributes","id","uniqueId","unique_id","name","level","Number","parentId","parent_id","description","status","category","riskLevel","risk_level","createdAt","created_at","Date","updatedAt","updated_at","roleMapper","code","payload","onBoardingUniqueId","on_boarding_unique_id","onBoardingUrl","on_boarding_url","onBoardingPayload","on_boarding_payload","permissions","userAvatarMapper","userUniqueId","user_unique_id","bucket","originalName","original_name","url","thumbnail","fileType","file_type","fileSize","file_size","originalFile","original_file","isPublic","is_public","userProfileMapper","firstName","first_name","middleName","middle_name","lastName","last_name","gender","ethnicity","zipcode","maritalStatus","marital_status","birthdate","hhi","children","source","phoneNumber","phone_number","email","preferredDevice","preferred_device","preferredLanguage","preferred_language","webSite","web_site","twitter","fb","instagram","linkedin","youtube","blog","networkA","network_a","networkB","network_b","timeZone","time_zone","userMapper","included","username","nickname","bio","provider","uid","roleId","role_id","mailStatus","mail_status","phoneStatus","phone_status","allowPasswordChange","allow_password_change","lastSignInAt","last_sign_in_at","confirmedAt","confirmed_at","unconfirmedEmail","unconfirmed_email","invitationSentAt","invitation_sent_at","invitationAcceptedAt","invitation_accepted_at","invitationCreatedAt","invitation_created_at","role","avatar","profile"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}