@23blocks/angular 1.0.3 → 1.1.1

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 (43) hide show
  1. package/dist/lib/assets/assets.service.js +43 -30
  2. package/dist/lib/assets/assets.service.js.map +1 -1
  3. package/dist/lib/authentication/authentication.service.js +49 -32
  4. package/dist/lib/authentication/authentication.service.js.map +1 -1
  5. package/dist/lib/campaigns/campaigns.service.js +51 -38
  6. package/dist/lib/campaigns/campaigns.service.js.map +1 -1
  7. package/dist/lib/company/company.service.js +50 -37
  8. package/dist/lib/company/company.service.js.map +1 -1
  9. package/dist/lib/content/content.service.js +52 -39
  10. package/dist/lib/content/content.service.js.map +1 -1
  11. package/dist/lib/conversations/conversations.service.js +59 -46
  12. package/dist/lib/conversations/conversations.service.js.map +1 -1
  13. package/dist/lib/crm/crm.service.js +69 -56
  14. package/dist/lib/crm/crm.service.js.map +1 -1
  15. package/dist/lib/files/files.service.js +42 -29
  16. package/dist/lib/files/files.service.js.map +1 -1
  17. package/dist/lib/forms/forms.service.js +45 -32
  18. package/dist/lib/forms/forms.service.js.map +1 -1
  19. package/dist/lib/geolocation/geolocation.service.js +78 -65
  20. package/dist/lib/geolocation/geolocation.service.js.map +1 -1
  21. package/dist/lib/index.js +4 -1
  22. package/dist/lib/index.js.map +1 -1
  23. package/dist/lib/jarvis/jarvis.service.js +54 -41
  24. package/dist/lib/jarvis/jarvis.service.js.map +1 -1
  25. package/dist/lib/onboarding/onboarding.service.js +45 -32
  26. package/dist/lib/onboarding/onboarding.service.js.map +1 -1
  27. package/dist/lib/products/products.service.js +80 -67
  28. package/dist/lib/products/products.service.js.map +1 -1
  29. package/dist/lib/rewards/rewards.service.js +47 -34
  30. package/dist/lib/rewards/rewards.service.js.map +1 -1
  31. package/dist/lib/sales/sales.service.js +47 -34
  32. package/dist/lib/sales/sales.service.js.map +1 -1
  33. package/dist/lib/search/search.service.js +31 -18
  34. package/dist/lib/search/search.service.js.map +1 -1
  35. package/dist/lib/simple-providers.js +96 -15
  36. package/dist/lib/simple-providers.js.map +1 -1
  37. package/dist/lib/tokens.js +26 -1
  38. package/dist/lib/tokens.js.map +1 -1
  39. package/dist/lib/university/university.service.js +58 -45
  40. package/dist/lib/university/university.service.js.map +1 -1
  41. package/dist/lib/wallet/wallet.service.js +39 -26
  42. package/dist/lib/wallet/wallet.service.js.map +1 -1
  43. package/package.json +1 -1
@@ -1,100 +1,108 @@
1
1
  import { _ as _ts_decorate } from "@swc/helpers/_/_ts_decorate";
2
2
  import { _ as _ts_metadata } from "@swc/helpers/_/_ts_metadata";
3
3
  import { _ as _ts_param } from "@swc/helpers/_/_ts_param";
4
- import { Injectable, Inject } from '@angular/core';
4
+ import { Injectable, Inject, Optional } from '@angular/core';
5
5
  import { from } from 'rxjs';
6
6
  import { createRewardsBlock } from '@23blocks/block-rewards';
7
- import { TRANSPORT, REWARDS_CONFIG } from '../tokens.js';
7
+ import { TRANSPORT, REWARDS_TRANSPORT, REWARDS_CONFIG } from '../tokens.js';
8
8
  export class RewardsService {
9
+ /**
10
+ * Ensure the service is configured, throw helpful error if not
11
+ */ ensureConfigured() {
12
+ if (!this.block) {
13
+ throw new Error('[23blocks] RewardsService is not configured. ' + "Add 'urls.rewards' to your provideBlocks23() configuration.");
14
+ }
15
+ return this.block;
16
+ }
9
17
  // ─────────────────────────────────────────────────────────────────────────────
10
18
  // Rewards Service
11
19
  // ─────────────────────────────────────────────────────────────────────────────
12
20
  listRewards(params) {
13
- return from(this.block.rewards.list(params));
21
+ return from(this.ensureConfigured().rewards.list(params));
14
22
  }
15
23
  getReward(uniqueId) {
16
- return from(this.block.rewards.get(uniqueId));
24
+ return from(this.ensureConfigured().rewards.get(uniqueId));
17
25
  }
18
26
  createReward(data) {
19
- return from(this.block.rewards.create(data));
27
+ return from(this.ensureConfigured().rewards.create(data));
20
28
  }
21
29
  updateReward(uniqueId, data) {
22
- return from(this.block.rewards.update(uniqueId, data));
30
+ return from(this.ensureConfigured().rewards.update(uniqueId, data));
23
31
  }
24
32
  deleteReward(uniqueId) {
25
- return from(this.block.rewards.delete(uniqueId));
33
+ return from(this.ensureConfigured().rewards.delete(uniqueId));
26
34
  }
27
35
  redeemReward(data) {
28
- return from(this.block.rewards.redeem(data));
36
+ return from(this.ensureConfigured().rewards.redeem(data));
29
37
  }
30
38
  // ─────────────────────────────────────────────────────────────────────────────
31
39
  // Coupons Service
32
40
  // ─────────────────────────────────────────────────────────────────────────────
33
41
  listCoupons(params) {
34
- return from(this.block.coupons.list(params));
42
+ return from(this.ensureConfigured().coupons.list(params));
35
43
  }
36
44
  getCoupon(uniqueId) {
37
- return from(this.block.coupons.get(uniqueId));
45
+ return from(this.ensureConfigured().coupons.get(uniqueId));
38
46
  }
39
47
  getCouponByCode(code) {
40
- return from(this.block.coupons.getByCode(code));
48
+ return from(this.ensureConfigured().coupons.getByCode(code));
41
49
  }
42
50
  createCoupon(data) {
43
- return from(this.block.coupons.create(data));
51
+ return from(this.ensureConfigured().coupons.create(data));
44
52
  }
45
53
  updateCoupon(uniqueId, data) {
46
- return from(this.block.coupons.update(uniqueId, data));
54
+ return from(this.ensureConfigured().coupons.update(uniqueId, data));
47
55
  }
48
56
  deleteCoupon(uniqueId) {
49
- return from(this.block.coupons.delete(uniqueId));
57
+ return from(this.ensureConfigured().coupons.delete(uniqueId));
50
58
  }
51
59
  validateCoupon(data) {
52
- return from(this.block.coupons.validate(data));
60
+ return from(this.ensureConfigured().coupons.validate(data));
53
61
  }
54
62
  applyCoupon(data) {
55
- return from(this.block.coupons.apply(data));
63
+ return from(this.ensureConfigured().coupons.apply(data));
56
64
  }
57
65
  // ─────────────────────────────────────────────────────────────────────────────
58
66
  // Loyalty Service
59
67
  // ─────────────────────────────────────────────────────────────────────────────
60
68
  getLoyalty(uniqueId) {
61
- return from(this.block.loyalty.get(uniqueId));
69
+ return from(this.ensureConfigured().loyalty.get(uniqueId));
62
70
  }
63
71
  getLoyaltyByUser(userUniqueId) {
64
- return from(this.block.loyalty.getByUser(userUniqueId));
72
+ return from(this.ensureConfigured().loyalty.getByUser(userUniqueId));
65
73
  }
66
74
  addPoints(data) {
67
- return from(this.block.loyalty.addPoints(data));
75
+ return from(this.ensureConfigured().loyalty.addPoints(data));
68
76
  }
69
77
  redeemPoints(data) {
70
- return from(this.block.loyalty.redeemPoints(data));
78
+ return from(this.ensureConfigured().loyalty.redeemPoints(data));
71
79
  }
72
80
  getLoyaltyHistory(userUniqueId, params) {
73
- return from(this.block.loyalty.getHistory(userUniqueId, params));
81
+ return from(this.ensureConfigured().loyalty.getHistory(userUniqueId, params));
74
82
  }
75
83
  // ─────────────────────────────────────────────────────────────────────────────
76
84
  // Badges Service
77
85
  // ─────────────────────────────────────────────────────────────────────────────
78
86
  listBadges(params) {
79
- return from(this.block.badges.list(params));
87
+ return from(this.ensureConfigured().badges.list(params));
80
88
  }
81
89
  getBadge(uniqueId) {
82
- return from(this.block.badges.get(uniqueId));
90
+ return from(this.ensureConfigured().badges.get(uniqueId));
83
91
  }
84
92
  createBadge(data) {
85
- return from(this.block.badges.create(data));
93
+ return from(this.ensureConfigured().badges.create(data));
86
94
  }
87
95
  updateBadge(uniqueId, data) {
88
- return from(this.block.badges.update(uniqueId, data));
96
+ return from(this.ensureConfigured().badges.update(uniqueId, data));
89
97
  }
90
98
  deleteBadge(uniqueId) {
91
- return from(this.block.badges.delete(uniqueId));
99
+ return from(this.ensureConfigured().badges.delete(uniqueId));
92
100
  }
93
101
  awardBadge(data) {
94
- return from(this.block.badges.award(data));
102
+ return from(this.ensureConfigured().badges.award(data));
95
103
  }
96
104
  listUserBadges(userUniqueId, params) {
97
- return from(this.block.badges.listByUser(userUniqueId, params));
105
+ return from(this.ensureConfigured().badges.listByUser(userUniqueId, params));
98
106
  }
99
107
  // ─────────────────────────────────────────────────────────────────────────────
100
108
  // Direct Block Access (for advanced usage)
@@ -103,21 +111,26 @@ export class RewardsService {
103
111
  * Access the underlying block for advanced operations
104
112
  * Use this when you need access to services not wrapped by this Angular service
105
113
  */ get rawBlock() {
106
- return this.block;
114
+ return this.ensureConfigured();
107
115
  }
108
- constructor(transport, config){
109
- this.block = createRewardsBlock(transport, config);
116
+ constructor(serviceTransport, legacyTransport, config){
117
+ const transport = serviceTransport != null ? serviceTransport : legacyTransport;
118
+ this.block = transport ? createRewardsBlock(transport, config) : null;
110
119
  }
111
120
  }
112
121
  RewardsService = _ts_decorate([
113
122
  Injectable({
114
123
  providedIn: 'root'
115
124
  }),
116
- _ts_param(0, Inject(TRANSPORT)),
117
- _ts_param(1, Inject(REWARDS_CONFIG)),
125
+ _ts_param(0, Optional()),
126
+ _ts_param(0, Inject(REWARDS_TRANSPORT)),
127
+ _ts_param(1, Optional()),
128
+ _ts_param(1, Inject(TRANSPORT)),
129
+ _ts_param(2, Inject(REWARDS_CONFIG)),
118
130
  _ts_metadata("design:type", Function),
119
131
  _ts_metadata("design:paramtypes", [
120
- typeof Transport === "undefined" ? Object : Transport,
132
+ Object,
133
+ Object,
121
134
  typeof RewardsBlockConfig === "undefined" ? Object : RewardsBlockConfig
122
135
  ])
123
136
  ], RewardsService);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/rewards/rewards.service.ts"],"sourcesContent":["import { Injectable, Inject } from '@angular/core';\nimport { Observable, from } from 'rxjs';\nimport type { Transport, PageResult } from '@23blocks/contracts';\nimport {\n createRewardsBlock,\n type RewardsBlock,\n type RewardsBlockConfig,\n type Reward,\n type RewardRedemption,\n type CreateRewardRequest,\n type UpdateRewardRequest,\n type ListRewardsParams,\n type RedeemRewardRequest,\n type Coupon,\n type CouponApplication,\n type CreateCouponRequest,\n type UpdateCouponRequest,\n type ListCouponsParams,\n type ValidateCouponRequest,\n type CouponValidationResult,\n type ApplyCouponRequest,\n type Loyalty,\n type LoyaltyTransaction,\n type AddPointsRequest,\n type RedeemPointsRequest,\n type ListTransactionsParams,\n type Badge,\n type UserBadge,\n type CreateBadgeRequest,\n type UpdateBadgeRequest,\n type ListBadgesParams,\n type AwardBadgeRequest,\n type ListUserBadgesParams,\n} from '@23blocks/block-rewards';\nimport { TRANSPORT, REWARDS_CONFIG } from '../tokens.js';\n\n/**\n * Angular service wrapping the Rewards block.\n * Converts Promise-based APIs to RxJS Observables.\n *\n * @example\n * ```typescript\n * @Component({...})\n * export class RewardsComponent {\n * constructor(private rewards: RewardsService) {}\n *\n * listRewards() {\n * this.rewards.listRewards({ status: 'active' }).subscribe({\n * next: (result) => console.log('Rewards:', result.data),\n * error: (err) => console.error('Failed:', err),\n * });\n * }\n * }\n * ```\n */\n@Injectable({ providedIn: 'root' })\nexport class RewardsService {\n private readonly block: RewardsBlock;\n\n constructor(\n @Inject(TRANSPORT) transport: Transport,\n @Inject(REWARDS_CONFIG) config: RewardsBlockConfig\n ) {\n this.block = createRewardsBlock(transport, config);\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Rewards Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listRewards(params?: ListRewardsParams): Observable<PageResult<Reward>> {\n return from(this.block.rewards.list(params));\n }\n\n getReward(uniqueId: string): Observable<Reward> {\n return from(this.block.rewards.get(uniqueId));\n }\n\n createReward(data: CreateRewardRequest): Observable<Reward> {\n return from(this.block.rewards.create(data));\n }\n\n updateReward(uniqueId: string, data: UpdateRewardRequest): Observable<Reward> {\n return from(this.block.rewards.update(uniqueId, data));\n }\n\n deleteReward(uniqueId: string): Observable<void> {\n return from(this.block.rewards.delete(uniqueId));\n }\n\n redeemReward(data: RedeemRewardRequest): Observable<RewardRedemption> {\n return from(this.block.rewards.redeem(data));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Coupons Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listCoupons(params?: ListCouponsParams): Observable<PageResult<Coupon>> {\n return from(this.block.coupons.list(params));\n }\n\n getCoupon(uniqueId: string): Observable<Coupon> {\n return from(this.block.coupons.get(uniqueId));\n }\n\n getCouponByCode(code: string): Observable<Coupon> {\n return from(this.block.coupons.getByCode(code));\n }\n\n createCoupon(data: CreateCouponRequest): Observable<Coupon> {\n return from(this.block.coupons.create(data));\n }\n\n updateCoupon(uniqueId: string, data: UpdateCouponRequest): Observable<Coupon> {\n return from(this.block.coupons.update(uniqueId, data));\n }\n\n deleteCoupon(uniqueId: string): Observable<void> {\n return from(this.block.coupons.delete(uniqueId));\n }\n\n validateCoupon(data: ValidateCouponRequest): Observable<CouponValidationResult> {\n return from(this.block.coupons.validate(data));\n }\n\n applyCoupon(data: ApplyCouponRequest): Observable<CouponApplication> {\n return from(this.block.coupons.apply(data));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Loyalty Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n getLoyalty(uniqueId: string): Observable<Loyalty> {\n return from(this.block.loyalty.get(uniqueId));\n }\n\n getLoyaltyByUser(userUniqueId: string): Observable<Loyalty> {\n return from(this.block.loyalty.getByUser(userUniqueId));\n }\n\n addPoints(data: AddPointsRequest): Observable<LoyaltyTransaction> {\n return from(this.block.loyalty.addPoints(data));\n }\n\n redeemPoints(data: RedeemPointsRequest): Observable<LoyaltyTransaction> {\n return from(this.block.loyalty.redeemPoints(data));\n }\n\n getLoyaltyHistory(userUniqueId: string, params?: ListTransactionsParams): Observable<PageResult<LoyaltyTransaction>> {\n return from(this.block.loyalty.getHistory(userUniqueId, params));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Badges Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listBadges(params?: ListBadgesParams): Observable<PageResult<Badge>> {\n return from(this.block.badges.list(params));\n }\n\n getBadge(uniqueId: string): Observable<Badge> {\n return from(this.block.badges.get(uniqueId));\n }\n\n createBadge(data: CreateBadgeRequest): Observable<Badge> {\n return from(this.block.badges.create(data));\n }\n\n updateBadge(uniqueId: string, data: UpdateBadgeRequest): Observable<Badge> {\n return from(this.block.badges.update(uniqueId, data));\n }\n\n deleteBadge(uniqueId: string): Observable<void> {\n return from(this.block.badges.delete(uniqueId));\n }\n\n awardBadge(data: AwardBadgeRequest): Observable<UserBadge> {\n return from(this.block.badges.award(data));\n }\n\n listUserBadges(userUniqueId: string, params?: ListUserBadgesParams): Observable<PageResult<UserBadge>> {\n return from(this.block.badges.listByUser(userUniqueId, params));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Direct Block Access (for advanced usage)\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * Access the underlying block for advanced operations\n * Use this when you need access to services not wrapped by this Angular service\n */\n get rawBlock(): RewardsBlock {\n return this.block;\n }\n}\n"],"names":["Injectable","Inject","from","createRewardsBlock","TRANSPORT","REWARDS_CONFIG","RewardsService","listRewards","params","block","rewards","list","getReward","uniqueId","get","createReward","data","create","updateReward","update","deleteReward","delete","redeemReward","redeem","listCoupons","coupons","getCoupon","getCouponByCode","code","getByCode","createCoupon","updateCoupon","deleteCoupon","validateCoupon","validate","applyCoupon","apply","getLoyalty","loyalty","getLoyaltyByUser","userUniqueId","getByUser","addPoints","redeemPoints","getLoyaltyHistory","getHistory","listBadges","badges","getBadge","createBadge","updateBadge","deleteBadge","awardBadge","award","listUserBadges","listByUser","rawBlock","constructor","transport","config","providedIn"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../../../src/lib/rewards/rewards.service.ts"],"sourcesContent":["import { Injectable, Inject, Optional } from '@angular/core';\nimport { Observable, from } from 'rxjs';\nimport type { Transport, PageResult } from '@23blocks/contracts';\nimport {\n createRewardsBlock,\n type RewardsBlock,\n type RewardsBlockConfig,\n type Reward,\n type RewardRedemption,\n type CreateRewardRequest,\n type UpdateRewardRequest,\n type ListRewardsParams,\n type RedeemRewardRequest,\n type Coupon,\n type CouponApplication,\n type CreateCouponRequest,\n type UpdateCouponRequest,\n type ListCouponsParams,\n type ValidateCouponRequest,\n type CouponValidationResult,\n type ApplyCouponRequest,\n type Loyalty,\n type LoyaltyTransaction,\n type AddPointsRequest,\n type RedeemPointsRequest,\n type ListTransactionsParams,\n type Badge,\n type UserBadge,\n type CreateBadgeRequest,\n type UpdateBadgeRequest,\n type ListBadgesParams,\n type AwardBadgeRequest,\n type ListUserBadgesParams,\n} from '@23blocks/block-rewards';\nimport { TRANSPORT, REWARDS_TRANSPORT, REWARDS_CONFIG } from '../tokens.js';\n\n/**\n * Angular service wrapping the Rewards block.\n * Converts Promise-based APIs to RxJS Observables.\n *\n * @example\n * ```typescript\n * @Component({...})\n * export class RewardsComponent {\n * constructor(private rewards: RewardsService) {}\n *\n * listRewards() {\n * this.rewards.listRewards({ status: 'active' }).subscribe({\n * next: (result) => console.log('Rewards:', result.data),\n * error: (err) => console.error('Failed:', err),\n * });\n * }\n * }\n * ```\n */\n@Injectable({ providedIn: 'root' })\nexport class RewardsService {\n private readonly block: RewardsBlock | null;\n\n constructor(\n @Optional() @Inject(REWARDS_TRANSPORT) serviceTransport: Transport | null,\n @Optional() @Inject(TRANSPORT) legacyTransport: Transport | null,\n @Inject(REWARDS_CONFIG) config: RewardsBlockConfig\n ) {\n const transport = serviceTransport ?? legacyTransport;\n this.block = transport ? createRewardsBlock(transport, config) : null;\n }\n\n /**\n * Ensure the service is configured, throw helpful error if not\n */\n private ensureConfigured(): RewardsBlock {\n if (!this.block) {\n throw new Error(\n '[23blocks] RewardsService is not configured. ' +\n \"Add 'urls.rewards' to your provideBlocks23() configuration.\"\n );\n }\n return this.block;\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Rewards Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listRewards(params?: ListRewardsParams): Observable<PageResult<Reward>> {\n return from(this.ensureConfigured().rewards.list(params));\n }\n\n getReward(uniqueId: string): Observable<Reward> {\n return from(this.ensureConfigured().rewards.get(uniqueId));\n }\n\n createReward(data: CreateRewardRequest): Observable<Reward> {\n return from(this.ensureConfigured().rewards.create(data));\n }\n\n updateReward(uniqueId: string, data: UpdateRewardRequest): Observable<Reward> {\n return from(this.ensureConfigured().rewards.update(uniqueId, data));\n }\n\n deleteReward(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().rewards.delete(uniqueId));\n }\n\n redeemReward(data: RedeemRewardRequest): Observable<RewardRedemption> {\n return from(this.ensureConfigured().rewards.redeem(data));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Coupons Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listCoupons(params?: ListCouponsParams): Observable<PageResult<Coupon>> {\n return from(this.ensureConfigured().coupons.list(params));\n }\n\n getCoupon(uniqueId: string): Observable<Coupon> {\n return from(this.ensureConfigured().coupons.get(uniqueId));\n }\n\n getCouponByCode(code: string): Observable<Coupon> {\n return from(this.ensureConfigured().coupons.getByCode(code));\n }\n\n createCoupon(data: CreateCouponRequest): Observable<Coupon> {\n return from(this.ensureConfigured().coupons.create(data));\n }\n\n updateCoupon(uniqueId: string, data: UpdateCouponRequest): Observable<Coupon> {\n return from(this.ensureConfigured().coupons.update(uniqueId, data));\n }\n\n deleteCoupon(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().coupons.delete(uniqueId));\n }\n\n validateCoupon(data: ValidateCouponRequest): Observable<CouponValidationResult> {\n return from(this.ensureConfigured().coupons.validate(data));\n }\n\n applyCoupon(data: ApplyCouponRequest): Observable<CouponApplication> {\n return from(this.ensureConfigured().coupons.apply(data));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Loyalty Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n getLoyalty(uniqueId: string): Observable<Loyalty> {\n return from(this.ensureConfigured().loyalty.get(uniqueId));\n }\n\n getLoyaltyByUser(userUniqueId: string): Observable<Loyalty> {\n return from(this.ensureConfigured().loyalty.getByUser(userUniqueId));\n }\n\n addPoints(data: AddPointsRequest): Observable<LoyaltyTransaction> {\n return from(this.ensureConfigured().loyalty.addPoints(data));\n }\n\n redeemPoints(data: RedeemPointsRequest): Observable<LoyaltyTransaction> {\n return from(this.ensureConfigured().loyalty.redeemPoints(data));\n }\n\n getLoyaltyHistory(userUniqueId: string, params?: ListTransactionsParams): Observable<PageResult<LoyaltyTransaction>> {\n return from(this.ensureConfigured().loyalty.getHistory(userUniqueId, params));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Badges Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listBadges(params?: ListBadgesParams): Observable<PageResult<Badge>> {\n return from(this.ensureConfigured().badges.list(params));\n }\n\n getBadge(uniqueId: string): Observable<Badge> {\n return from(this.ensureConfigured().badges.get(uniqueId));\n }\n\n createBadge(data: CreateBadgeRequest): Observable<Badge> {\n return from(this.ensureConfigured().badges.create(data));\n }\n\n updateBadge(uniqueId: string, data: UpdateBadgeRequest): Observable<Badge> {\n return from(this.ensureConfigured().badges.update(uniqueId, data));\n }\n\n deleteBadge(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().badges.delete(uniqueId));\n }\n\n awardBadge(data: AwardBadgeRequest): Observable<UserBadge> {\n return from(this.ensureConfigured().badges.award(data));\n }\n\n listUserBadges(userUniqueId: string, params?: ListUserBadgesParams): Observable<PageResult<UserBadge>> {\n return from(this.ensureConfigured().badges.listByUser(userUniqueId, params));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Direct Block Access (for advanced usage)\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * Access the underlying block for advanced operations\n * Use this when you need access to services not wrapped by this Angular service\n */\n get rawBlock(): RewardsBlock {\n return this.ensureConfigured();\n }\n}\n"],"names":["Injectable","Inject","Optional","from","createRewardsBlock","TRANSPORT","REWARDS_TRANSPORT","REWARDS_CONFIG","RewardsService","ensureConfigured","block","Error","listRewards","params","rewards","list","getReward","uniqueId","get","createReward","data","create","updateReward","update","deleteReward","delete","redeemReward","redeem","listCoupons","coupons","getCoupon","getCouponByCode","code","getByCode","createCoupon","updateCoupon","deleteCoupon","validateCoupon","validate","applyCoupon","apply","getLoyalty","loyalty","getLoyaltyByUser","userUniqueId","getByUser","addPoints","redeemPoints","getLoyaltyHistory","getHistory","listBadges","badges","getBadge","createBadge","updateBadge","deleteBadge","awardBadge","award","listUserBadges","listByUser","rawBlock","constructor","serviceTransport","legacyTransport","config","transport","providedIn"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -1,100 +1,108 @@
1
1
  import { _ as _ts_decorate } from "@swc/helpers/_/_ts_decorate";
2
2
  import { _ as _ts_metadata } from "@swc/helpers/_/_ts_metadata";
3
3
  import { _ as _ts_param } from "@swc/helpers/_/_ts_param";
4
- import { Injectable, Inject } from '@angular/core';
4
+ import { Injectable, Inject, Optional } from '@angular/core';
5
5
  import { from } from 'rxjs';
6
6
  import { createSalesBlock } from '@23blocks/block-sales';
7
- import { TRANSPORT, SALES_CONFIG } from '../tokens.js';
7
+ import { TRANSPORT, SALES_TRANSPORT, SALES_CONFIG } from '../tokens.js';
8
8
  export class SalesService {
9
+ /**
10
+ * Ensure the service is configured, throw helpful error if not
11
+ */ ensureConfigured() {
12
+ if (!this.block) {
13
+ throw new Error('[23blocks] SalesService is not configured. ' + "Add 'urls.sales' to your provideBlocks23() configuration.");
14
+ }
15
+ return this.block;
16
+ }
9
17
  // ───────────────────────────────────────────────────────────────────────────
10
18
  // Orders Service
11
19
  // ───────────────────────────────────────────────────────────────────────────
12
20
  listOrders(params) {
13
- return from(this.block.orders.list(params));
21
+ return from(this.ensureConfigured().orders.list(params));
14
22
  }
15
23
  getOrder(uniqueId) {
16
- return from(this.block.orders.get(uniqueId));
24
+ return from(this.ensureConfigured().orders.get(uniqueId));
17
25
  }
18
26
  createOrder(data) {
19
- return from(this.block.orders.create(data));
27
+ return from(this.ensureConfigured().orders.create(data));
20
28
  }
21
29
  updateOrder(uniqueId, data) {
22
- return from(this.block.orders.update(uniqueId, data));
30
+ return from(this.ensureConfigured().orders.update(uniqueId, data));
23
31
  }
24
32
  cancelOrder(uniqueId) {
25
- return from(this.block.orders.cancel(uniqueId));
33
+ return from(this.ensureConfigured().orders.cancel(uniqueId));
26
34
  }
27
35
  confirmOrder(uniqueId) {
28
- return from(this.block.orders.confirm(uniqueId));
36
+ return from(this.ensureConfigured().orders.confirm(uniqueId));
29
37
  }
30
38
  shipOrder(uniqueId, trackingNumber) {
31
- return from(this.block.orders.ship(uniqueId, trackingNumber));
39
+ return from(this.ensureConfigured().orders.ship(uniqueId, trackingNumber));
32
40
  }
33
41
  deliverOrder(uniqueId) {
34
- return from(this.block.orders.deliver(uniqueId));
42
+ return from(this.ensureConfigured().orders.deliver(uniqueId));
35
43
  }
36
44
  listOrdersByUser(userUniqueId, params) {
37
- return from(this.block.orders.listByUser(userUniqueId, params));
45
+ return from(this.ensureConfigured().orders.listByUser(userUniqueId, params));
38
46
  }
39
47
  // ───────────────────────────────────────────────────────────────────────────
40
48
  // Order Details Service
41
49
  // ───────────────────────────────────────────────────────────────────────────
42
50
  listOrderDetails() {
43
- return from(this.block.orderDetails.list());
51
+ return from(this.ensureConfigured().orderDetails.list());
44
52
  }
45
53
  getOrderDetail(uniqueId) {
46
- return from(this.block.orderDetails.get(uniqueId));
54
+ return from(this.ensureConfigured().orderDetails.get(uniqueId));
47
55
  }
48
56
  updateOrderDetail(uniqueId, data) {
49
- return from(this.block.orderDetails.update(uniqueId, data));
57
+ return from(this.ensureConfigured().orderDetails.update(uniqueId, data));
50
58
  }
51
59
  listOrderDetailsByOrder(orderUniqueId) {
52
- return from(this.block.orderDetails.listByOrder(orderUniqueId));
60
+ return from(this.ensureConfigured().orderDetails.listByOrder(orderUniqueId));
53
61
  }
54
62
  // ───────────────────────────────────────────────────────────────────────────
55
63
  // Payments Service
56
64
  // ───────────────────────────────────────────────────────────────────────────
57
65
  listPayments(params) {
58
- return from(this.block.payments.list(params));
66
+ return from(this.ensureConfigured().payments.list(params));
59
67
  }
60
68
  getPayment(uniqueId) {
61
- return from(this.block.payments.get(uniqueId));
69
+ return from(this.ensureConfigured().payments.get(uniqueId));
62
70
  }
63
71
  createPayment(data) {
64
- return from(this.block.payments.create(data));
72
+ return from(this.ensureConfigured().payments.create(data));
65
73
  }
66
74
  refundPayment(uniqueId, amount) {
67
- return from(this.block.payments.refund(uniqueId, amount));
75
+ return from(this.ensureConfigured().payments.refund(uniqueId, amount));
68
76
  }
69
77
  listPaymentsByOrder(orderUniqueId) {
70
- return from(this.block.payments.listByOrder(orderUniqueId));
78
+ return from(this.ensureConfigured().payments.listByOrder(orderUniqueId));
71
79
  }
72
80
  // ───────────────────────────────────────────────────────────────────────────
73
81
  // Subscriptions Service
74
82
  // ───────────────────────────────────────────────────────────────────────────
75
83
  listSubscriptions(params) {
76
- return from(this.block.subscriptions.list(params));
84
+ return from(this.ensureConfigured().subscriptions.list(params));
77
85
  }
78
86
  getSubscription(uniqueId) {
79
- return from(this.block.subscriptions.get(uniqueId));
87
+ return from(this.ensureConfigured().subscriptions.get(uniqueId));
80
88
  }
81
89
  createSubscription(data) {
82
- return from(this.block.subscriptions.create(data));
90
+ return from(this.ensureConfigured().subscriptions.create(data));
83
91
  }
84
92
  updateSubscription(uniqueId, data) {
85
- return from(this.block.subscriptions.update(uniqueId, data));
93
+ return from(this.ensureConfigured().subscriptions.update(uniqueId, data));
86
94
  }
87
95
  cancelSubscription(uniqueId) {
88
- return from(this.block.subscriptions.cancel(uniqueId));
96
+ return from(this.ensureConfigured().subscriptions.cancel(uniqueId));
89
97
  }
90
98
  pauseSubscription(uniqueId) {
91
- return from(this.block.subscriptions.pause(uniqueId));
99
+ return from(this.ensureConfigured().subscriptions.pause(uniqueId));
92
100
  }
93
101
  resumeSubscription(uniqueId) {
94
- return from(this.block.subscriptions.resume(uniqueId));
102
+ return from(this.ensureConfigured().subscriptions.resume(uniqueId));
95
103
  }
96
104
  listSubscriptionsByUser(userUniqueId, params) {
97
- return from(this.block.subscriptions.listByUser(userUniqueId, params));
105
+ return from(this.ensureConfigured().subscriptions.listByUser(userUniqueId, params));
98
106
  }
99
107
  // ───────────────────────────────────────────────────────────────────────────
100
108
  // Direct Block Access (for advanced usage)
@@ -103,21 +111,26 @@ export class SalesService {
103
111
  * Access the underlying block for advanced operations
104
112
  * Use this when you need access to services not wrapped by this Angular service
105
113
  */ get rawBlock() {
106
- return this.block;
114
+ return this.ensureConfigured();
107
115
  }
108
- constructor(transport, config){
109
- this.block = createSalesBlock(transport, config);
116
+ constructor(serviceTransport, legacyTransport, config){
117
+ const transport = serviceTransport != null ? serviceTransport : legacyTransport;
118
+ this.block = transport ? createSalesBlock(transport, config) : null;
110
119
  }
111
120
  }
112
121
  SalesService = _ts_decorate([
113
122
  Injectable({
114
123
  providedIn: 'root'
115
124
  }),
116
- _ts_param(0, Inject(TRANSPORT)),
117
- _ts_param(1, Inject(SALES_CONFIG)),
125
+ _ts_param(0, Optional()),
126
+ _ts_param(0, Inject(SALES_TRANSPORT)),
127
+ _ts_param(1, Optional()),
128
+ _ts_param(1, Inject(TRANSPORT)),
129
+ _ts_param(2, Inject(SALES_CONFIG)),
118
130
  _ts_metadata("design:type", Function),
119
131
  _ts_metadata("design:paramtypes", [
120
- typeof Transport === "undefined" ? Object : Transport,
132
+ Object,
133
+ Object,
121
134
  typeof SalesBlockConfig === "undefined" ? Object : SalesBlockConfig
122
135
  ])
123
136
  ], SalesService);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/sales/sales.service.ts"],"sourcesContent":["import { Injectable, Inject } from '@angular/core';\nimport { Observable, from } from 'rxjs';\nimport type { Transport, PageResult } from '@23blocks/contracts';\nimport {\n createSalesBlock,\n type SalesBlock,\n type SalesBlockConfig,\n type Order,\n type OrderStatus,\n type CreateOrderRequest,\n type UpdateOrderRequest,\n type ListOrdersParams,\n type OrderDetail,\n type UpdateOrderDetailRequest,\n type Payment,\n type PaymentStatus,\n type CreatePaymentRequest,\n type ListPaymentsParams,\n type Subscription,\n type SubscriptionInterval,\n type SubscriptionStatus,\n type CreateSubscriptionRequest,\n type UpdateSubscriptionRequest,\n type ListSubscriptionsParams,\n} from '@23blocks/block-sales';\nimport { TRANSPORT, SALES_CONFIG } from '../tokens.js';\n\n/**\n * Angular service wrapping the Sales block.\n * Converts Promise-based APIs to RxJS Observables.\n *\n * @example\n * ```typescript\n * @Component({...})\n * export class CheckoutComponent {\n * constructor(private sales: SalesService) {}\n *\n * createOrder(items: any[]) {\n * this.sales.createOrder({ userUniqueId: '123', items }).subscribe({\n * next: (order) => console.log('Order created:', order),\n * error: (err) => console.error('Failed:', err),\n * });\n * }\n * }\n * ```\n */\n@Injectable({ providedIn: 'root' })\nexport class SalesService {\n private readonly block: SalesBlock;\n\n constructor(\n @Inject(TRANSPORT) transport: Transport,\n @Inject(SALES_CONFIG) config: SalesBlockConfig\n ) {\n this.block = createSalesBlock(transport, config);\n }\n\n // ───────────────────────────────────────────────────────────────────────────\n // Orders Service\n // ───────────────────────────────────────────────────────────────────────────\n\n listOrders(params?: ListOrdersParams): Observable<PageResult<Order>> {\n return from(this.block.orders.list(params));\n }\n\n getOrder(uniqueId: string): Observable<Order> {\n return from(this.block.orders.get(uniqueId));\n }\n\n createOrder(data: CreateOrderRequest): Observable<Order> {\n return from(this.block.orders.create(data));\n }\n\n updateOrder(uniqueId: string, data: UpdateOrderRequest): Observable<Order> {\n return from(this.block.orders.update(uniqueId, data));\n }\n\n cancelOrder(uniqueId: string): Observable<Order> {\n return from(this.block.orders.cancel(uniqueId));\n }\n\n confirmOrder(uniqueId: string): Observable<Order> {\n return from(this.block.orders.confirm(uniqueId));\n }\n\n shipOrder(uniqueId: string, trackingNumber?: string): Observable<Order> {\n return from(this.block.orders.ship(uniqueId, trackingNumber));\n }\n\n deliverOrder(uniqueId: string): Observable<Order> {\n return from(this.block.orders.deliver(uniqueId));\n }\n\n listOrdersByUser(userUniqueId: string, params?: ListOrdersParams): Observable<PageResult<Order>> {\n return from(this.block.orders.listByUser(userUniqueId, params));\n }\n\n // ───────────────────────────────────────────────────────────────────────────\n // Order Details Service\n // ───────────────────────────────────────────────────────────────────────────\n\n listOrderDetails(): Observable<OrderDetail[]> {\n return from(this.block.orderDetails.list());\n }\n\n getOrderDetail(uniqueId: string): Observable<OrderDetail> {\n return from(this.block.orderDetails.get(uniqueId));\n }\n\n updateOrderDetail(uniqueId: string, data: UpdateOrderDetailRequest): Observable<OrderDetail> {\n return from(this.block.orderDetails.update(uniqueId, data));\n }\n\n listOrderDetailsByOrder(orderUniqueId: string): Observable<OrderDetail[]> {\n return from(this.block.orderDetails.listByOrder(orderUniqueId));\n }\n\n // ───────────────────────────────────────────────────────────────────────────\n // Payments Service\n // ───────────────────────────────────────────────────────────────────────────\n\n listPayments(params?: ListPaymentsParams): Observable<PageResult<Payment>> {\n return from(this.block.payments.list(params));\n }\n\n getPayment(uniqueId: string): Observable<Payment> {\n return from(this.block.payments.get(uniqueId));\n }\n\n createPayment(data: CreatePaymentRequest): Observable<Payment> {\n return from(this.block.payments.create(data));\n }\n\n refundPayment(uniqueId: string, amount?: number): Observable<Payment> {\n return from(this.block.payments.refund(uniqueId, amount));\n }\n\n listPaymentsByOrder(orderUniqueId: string): Observable<Payment[]> {\n return from(this.block.payments.listByOrder(orderUniqueId));\n }\n\n // ───────────────────────────────────────────────────────────────────────────\n // Subscriptions Service\n // ───────────────────────────────────────────────────────────────────────────\n\n listSubscriptions(params?: ListSubscriptionsParams): Observable<PageResult<Subscription>> {\n return from(this.block.subscriptions.list(params));\n }\n\n getSubscription(uniqueId: string): Observable<Subscription> {\n return from(this.block.subscriptions.get(uniqueId));\n }\n\n createSubscription(data: CreateSubscriptionRequest): Observable<Subscription> {\n return from(this.block.subscriptions.create(data));\n }\n\n updateSubscription(uniqueId: string, data: UpdateSubscriptionRequest): Observable<Subscription> {\n return from(this.block.subscriptions.update(uniqueId, data));\n }\n\n cancelSubscription(uniqueId: string): Observable<Subscription> {\n return from(this.block.subscriptions.cancel(uniqueId));\n }\n\n pauseSubscription(uniqueId: string): Observable<Subscription> {\n return from(this.block.subscriptions.pause(uniqueId));\n }\n\n resumeSubscription(uniqueId: string): Observable<Subscription> {\n return from(this.block.subscriptions.resume(uniqueId));\n }\n\n listSubscriptionsByUser(userUniqueId: string, params?: ListSubscriptionsParams): Observable<PageResult<Subscription>> {\n return from(this.block.subscriptions.listByUser(userUniqueId, params));\n }\n\n // ───────────────────────────────────────────────────────────────────────────\n // Direct Block Access (for advanced usage)\n // ───────────────────────────────────────────────────────────────────────────\n\n /**\n * Access the underlying block for advanced operations\n * Use this when you need access to services not wrapped by this Angular service\n */\n get rawBlock(): SalesBlock {\n return this.block;\n }\n}\n"],"names":["Injectable","Inject","from","createSalesBlock","TRANSPORT","SALES_CONFIG","SalesService","listOrders","params","block","orders","list","getOrder","uniqueId","get","createOrder","data","create","updateOrder","update","cancelOrder","cancel","confirmOrder","confirm","shipOrder","trackingNumber","ship","deliverOrder","deliver","listOrdersByUser","userUniqueId","listByUser","listOrderDetails","orderDetails","getOrderDetail","updateOrderDetail","listOrderDetailsByOrder","orderUniqueId","listByOrder","listPayments","payments","getPayment","createPayment","refundPayment","amount","refund","listPaymentsByOrder","listSubscriptions","subscriptions","getSubscription","createSubscription","updateSubscription","cancelSubscription","pauseSubscription","pause","resumeSubscription","resume","listSubscriptionsByUser","rawBlock","constructor","transport","config","providedIn"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../../../src/lib/sales/sales.service.ts"],"sourcesContent":["import { Injectable, Inject, Optional } from '@angular/core';\nimport { Observable, from } from 'rxjs';\nimport type { Transport, PageResult } from '@23blocks/contracts';\nimport {\n createSalesBlock,\n type SalesBlock,\n type SalesBlockConfig,\n type Order,\n type OrderStatus,\n type CreateOrderRequest,\n type UpdateOrderRequest,\n type ListOrdersParams,\n type OrderDetail,\n type UpdateOrderDetailRequest,\n type Payment,\n type PaymentStatus,\n type CreatePaymentRequest,\n type ListPaymentsParams,\n type Subscription,\n type SubscriptionInterval,\n type SubscriptionStatus,\n type CreateSubscriptionRequest,\n type UpdateSubscriptionRequest,\n type ListSubscriptionsParams,\n} from '@23blocks/block-sales';\nimport { TRANSPORT, SALES_TRANSPORT, SALES_CONFIG } from '../tokens.js';\n\n/**\n * Angular service wrapping the Sales block.\n * Converts Promise-based APIs to RxJS Observables.\n *\n * @example\n * ```typescript\n * @Component({...})\n * export class CheckoutComponent {\n * constructor(private sales: SalesService) {}\n *\n * createOrder(items: any[]) {\n * this.sales.createOrder({ userUniqueId: '123', items }).subscribe({\n * next: (order) => console.log('Order created:', order),\n * error: (err) => console.error('Failed:', err),\n * });\n * }\n * }\n * ```\n */\n@Injectable({ providedIn: 'root' })\nexport class SalesService {\n private readonly block: SalesBlock | null;\n\n constructor(\n @Optional() @Inject(SALES_TRANSPORT) serviceTransport: Transport | null,\n @Optional() @Inject(TRANSPORT) legacyTransport: Transport | null,\n @Inject(SALES_CONFIG) config: SalesBlockConfig\n ) {\n const transport = serviceTransport ?? legacyTransport;\n this.block = transport ? createSalesBlock(transport, config) : null;\n }\n\n /**\n * Ensure the service is configured, throw helpful error if not\n */\n private ensureConfigured(): SalesBlock {\n if (!this.block) {\n throw new Error(\n '[23blocks] SalesService is not configured. ' +\n \"Add 'urls.sales' to your provideBlocks23() configuration.\"\n );\n }\n return this.block;\n }\n\n // ───────────────────────────────────────────────────────────────────────────\n // Orders Service\n // ───────────────────────────────────────────────────────────────────────────\n\n listOrders(params?: ListOrdersParams): Observable<PageResult<Order>> {\n return from(this.ensureConfigured().orders.list(params));\n }\n\n getOrder(uniqueId: string): Observable<Order> {\n return from(this.ensureConfigured().orders.get(uniqueId));\n }\n\n createOrder(data: CreateOrderRequest): Observable<Order> {\n return from(this.ensureConfigured().orders.create(data));\n }\n\n updateOrder(uniqueId: string, data: UpdateOrderRequest): Observable<Order> {\n return from(this.ensureConfigured().orders.update(uniqueId, data));\n }\n\n cancelOrder(uniqueId: string): Observable<Order> {\n return from(this.ensureConfigured().orders.cancel(uniqueId));\n }\n\n confirmOrder(uniqueId: string): Observable<Order> {\n return from(this.ensureConfigured().orders.confirm(uniqueId));\n }\n\n shipOrder(uniqueId: string, trackingNumber?: string): Observable<Order> {\n return from(this.ensureConfigured().orders.ship(uniqueId, trackingNumber));\n }\n\n deliverOrder(uniqueId: string): Observable<Order> {\n return from(this.ensureConfigured().orders.deliver(uniqueId));\n }\n\n listOrdersByUser(userUniqueId: string, params?: ListOrdersParams): Observable<PageResult<Order>> {\n return from(this.ensureConfigured().orders.listByUser(userUniqueId, params));\n }\n\n // ───────────────────────────────────────────────────────────────────────────\n // Order Details Service\n // ───────────────────────────────────────────────────────────────────────────\n\n listOrderDetails(): Observable<OrderDetail[]> {\n return from(this.ensureConfigured().orderDetails.list());\n }\n\n getOrderDetail(uniqueId: string): Observable<OrderDetail> {\n return from(this.ensureConfigured().orderDetails.get(uniqueId));\n }\n\n updateOrderDetail(uniqueId: string, data: UpdateOrderDetailRequest): Observable<OrderDetail> {\n return from(this.ensureConfigured().orderDetails.update(uniqueId, data));\n }\n\n listOrderDetailsByOrder(orderUniqueId: string): Observable<OrderDetail[]> {\n return from(this.ensureConfigured().orderDetails.listByOrder(orderUniqueId));\n }\n\n // ───────────────────────────────────────────────────────────────────────────\n // Payments Service\n // ───────────────────────────────────────────────────────────────────────────\n\n listPayments(params?: ListPaymentsParams): Observable<PageResult<Payment>> {\n return from(this.ensureConfigured().payments.list(params));\n }\n\n getPayment(uniqueId: string): Observable<Payment> {\n return from(this.ensureConfigured().payments.get(uniqueId));\n }\n\n createPayment(data: CreatePaymentRequest): Observable<Payment> {\n return from(this.ensureConfigured().payments.create(data));\n }\n\n refundPayment(uniqueId: string, amount?: number): Observable<Payment> {\n return from(this.ensureConfigured().payments.refund(uniqueId, amount));\n }\n\n listPaymentsByOrder(orderUniqueId: string): Observable<Payment[]> {\n return from(this.ensureConfigured().payments.listByOrder(orderUniqueId));\n }\n\n // ───────────────────────────────────────────────────────────────────────────\n // Subscriptions Service\n // ───────────────────────────────────────────────────────────────────────────\n\n listSubscriptions(params?: ListSubscriptionsParams): Observable<PageResult<Subscription>> {\n return from(this.ensureConfigured().subscriptions.list(params));\n }\n\n getSubscription(uniqueId: string): Observable<Subscription> {\n return from(this.ensureConfigured().subscriptions.get(uniqueId));\n }\n\n createSubscription(data: CreateSubscriptionRequest): Observable<Subscription> {\n return from(this.ensureConfigured().subscriptions.create(data));\n }\n\n updateSubscription(uniqueId: string, data: UpdateSubscriptionRequest): Observable<Subscription> {\n return from(this.ensureConfigured().subscriptions.update(uniqueId, data));\n }\n\n cancelSubscription(uniqueId: string): Observable<Subscription> {\n return from(this.ensureConfigured().subscriptions.cancel(uniqueId));\n }\n\n pauseSubscription(uniqueId: string): Observable<Subscription> {\n return from(this.ensureConfigured().subscriptions.pause(uniqueId));\n }\n\n resumeSubscription(uniqueId: string): Observable<Subscription> {\n return from(this.ensureConfigured().subscriptions.resume(uniqueId));\n }\n\n listSubscriptionsByUser(userUniqueId: string, params?: ListSubscriptionsParams): Observable<PageResult<Subscription>> {\n return from(this.ensureConfigured().subscriptions.listByUser(userUniqueId, params));\n }\n\n // ───────────────────────────────────────────────────────────────────────────\n // Direct Block Access (for advanced usage)\n // ───────────────────────────────────────────────────────────────────────────\n\n /**\n * Access the underlying block for advanced operations\n * Use this when you need access to services not wrapped by this Angular service\n */\n get rawBlock(): SalesBlock {\n return this.ensureConfigured();\n }\n}\n"],"names":["Injectable","Inject","Optional","from","createSalesBlock","TRANSPORT","SALES_TRANSPORT","SALES_CONFIG","SalesService","ensureConfigured","block","Error","listOrders","params","orders","list","getOrder","uniqueId","get","createOrder","data","create","updateOrder","update","cancelOrder","cancel","confirmOrder","confirm","shipOrder","trackingNumber","ship","deliverOrder","deliver","listOrdersByUser","userUniqueId","listByUser","listOrderDetails","orderDetails","getOrderDetail","updateOrderDetail","listOrderDetailsByOrder","orderUniqueId","listByOrder","listPayments","payments","getPayment","createPayment","refundPayment","amount","refund","listPaymentsByOrder","listSubscriptions","subscriptions","getSubscription","createSubscription","updateSubscription","cancelSubscription","pauseSubscription","pause","resumeSubscription","resume","listSubscriptionsByUser","rawBlock","constructor","serviceTransport","legacyTransport","config","transport","providedIn"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -1,28 +1,36 @@
1
1
  import { _ as _ts_decorate } from "@swc/helpers/_/_ts_decorate";
2
2
  import { _ as _ts_metadata } from "@swc/helpers/_/_ts_metadata";
3
3
  import { _ as _ts_param } from "@swc/helpers/_/_ts_param";
4
- import { Injectable, Inject } from '@angular/core';
4
+ import { Injectable, Inject, Optional } from '@angular/core';
5
5
  import { from } from 'rxjs';
6
6
  import { createSearchBlock } from '@23blocks/block-search';
7
- import { TRANSPORT, SEARCH_CONFIG } from '../tokens.js';
7
+ import { TRANSPORT, SEARCH_TRANSPORT, SEARCH_CONFIG } from '../tokens.js';
8
8
  export class SearchService {
9
+ /**
10
+ * Ensure the service is configured, throw helpful error if not
11
+ */ ensureConfigured() {
12
+ if (!this.block) {
13
+ throw new Error('[23blocks] SearchService is not configured. ' + "Add 'urls.search' to your provideBlocks23() configuration.");
14
+ }
15
+ return this.block;
16
+ }
9
17
  // ─────────────────────────────────────────────────────────────────────────────
10
18
  // Search Operations
11
19
  // ─────────────────────────────────────────────────────────────────────────────
12
20
  /**
13
21
  * Perform a search query
14
22
  */ search(request) {
15
- return from(this.block.search.search(request));
23
+ return from(this.ensureConfigured().search.search(request));
16
24
  }
17
25
  /**
18
26
  * Get search suggestions for autocomplete
19
27
  */ suggest(query, limit) {
20
- return from(this.block.search.suggest(query, limit));
28
+ return from(this.ensureConfigured().search.suggest(query, limit));
21
29
  }
22
30
  /**
23
31
  * Get available entity types for filtering
24
32
  */ getEntityTypes() {
25
- return from(this.block.search.entityTypes());
33
+ return from(this.ensureConfigured().search.entityTypes());
26
34
  }
27
35
  // ─────────────────────────────────────────────────────────────────────────────
28
36
  // Search History
@@ -30,17 +38,17 @@ export class SearchService {
30
38
  /**
31
39
  * Get recent search queries
32
40
  */ getLastQueries(limit) {
33
- return from(this.block.history.getLastQueries(limit));
41
+ return from(this.ensureConfigured().history.getLastQueries(limit));
34
42
  }
35
43
  /**
36
44
  * Get the full history of search queries
37
45
  */ getQueryHistory(params) {
38
- return from(this.block.history.getHistory(params));
46
+ return from(this.ensureConfigured().history.getHistory(params));
39
47
  }
40
48
  /**
41
49
  * Clear search history
42
50
  */ clearHistory() {
43
- return from(this.block.history.clear());
51
+ return from(this.ensureConfigured().history.clear());
44
52
  }
45
53
  // ─────────────────────────────────────────────────────────────────────────────
46
54
  // Favorites
@@ -48,22 +56,22 @@ export class SearchService {
48
56
  /**
49
57
  * List user's favorite entities
50
58
  */ listFavorites() {
51
- return from(this.block.favorites.list());
59
+ return from(this.ensureConfigured().favorites.list());
52
60
  }
53
61
  /**
54
62
  * Add an entity to favorites
55
63
  */ addFavorite(request) {
56
- return from(this.block.favorites.add(request));
64
+ return from(this.ensureConfigured().favorites.add(request));
57
65
  }
58
66
  /**
59
67
  * Remove an entity from favorites
60
68
  */ removeFavorite(id) {
61
- return from(this.block.favorites.remove(id));
69
+ return from(this.ensureConfigured().favorites.remove(id));
62
70
  }
63
71
  /**
64
72
  * Check if an entity is favorited
65
73
  */ isFavorite(entityUniqueId) {
66
- return from(this.block.favorites.isFavorite(entityUniqueId));
74
+ return from(this.ensureConfigured().favorites.isFavorite(entityUniqueId));
67
75
  }
68
76
  // ─────────────────────────────────────────────────────────────────────────────
69
77
  // Direct Block Access (for advanced usage)
@@ -71,21 +79,26 @@ export class SearchService {
71
79
  /**
72
80
  * Access the underlying block for advanced operations
73
81
  */ get rawBlock() {
74
- return this.block;
82
+ return this.ensureConfigured();
75
83
  }
76
- constructor(transport, config){
77
- this.block = createSearchBlock(transport, config);
84
+ constructor(serviceTransport, legacyTransport, config){
85
+ const transport = serviceTransport != null ? serviceTransport : legacyTransport;
86
+ this.block = transport ? createSearchBlock(transport, config) : null;
78
87
  }
79
88
  }
80
89
  SearchService = _ts_decorate([
81
90
  Injectable({
82
91
  providedIn: 'root'
83
92
  }),
84
- _ts_param(0, Inject(TRANSPORT)),
85
- _ts_param(1, Inject(SEARCH_CONFIG)),
93
+ _ts_param(0, Optional()),
94
+ _ts_param(0, Inject(SEARCH_TRANSPORT)),
95
+ _ts_param(1, Optional()),
96
+ _ts_param(1, Inject(TRANSPORT)),
97
+ _ts_param(2, Inject(SEARCH_CONFIG)),
86
98
  _ts_metadata("design:type", Function),
87
99
  _ts_metadata("design:paramtypes", [
88
- typeof Transport === "undefined" ? Object : Transport,
100
+ Object,
101
+ Object,
89
102
  typeof SearchBlockConfig === "undefined" ? Object : SearchBlockConfig
90
103
  ])
91
104
  ], SearchService);