@explorins/pers-shared 2.1.125 → 2.1.127

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 (89) hide show
  1. package/dist/cjs/shared-lib/dto/business/business-filter-query.dto.d.ts +25 -0
  2. package/dist/cjs/shared-lib/dto/business/business-filter-query.dto.d.ts.map +1 -0
  3. package/dist/cjs/shared-lib/dto/business/business-filter-query.dto.js +139 -0
  4. package/dist/cjs/shared-lib/dto/business/business-filter-query.dto.js.map +1 -0
  5. package/dist/cjs/shared-lib/dto/business/index.d.ts +1 -0
  6. package/dist/cjs/shared-lib/dto/business/index.d.ts.map +1 -1
  7. package/dist/cjs/shared-lib/dto/business/index.js +1 -0
  8. package/dist/cjs/shared-lib/dto/business/index.js.map +1 -1
  9. package/dist/cjs/shared-lib/dto/campaign/campaign-filter-query.dto.d.ts +27 -0
  10. package/dist/cjs/shared-lib/dto/campaign/campaign-filter-query.dto.d.ts.map +1 -0
  11. package/dist/cjs/shared-lib/dto/campaign/campaign-filter-query.dto.js +158 -0
  12. package/dist/cjs/shared-lib/dto/campaign/campaign-filter-query.dto.js.map +1 -0
  13. package/dist/cjs/shared-lib/dto/campaign/index.d.ts +12 -0
  14. package/dist/cjs/shared-lib/dto/campaign/index.d.ts.map +1 -0
  15. package/dist/cjs/shared-lib/dto/campaign/index.js +29 -0
  16. package/dist/cjs/shared-lib/dto/campaign/index.js.map +1 -0
  17. package/dist/cjs/shared-lib/dto/index.d.ts +1 -10
  18. package/dist/cjs/shared-lib/dto/index.d.ts.map +1 -1
  19. package/dist/cjs/shared-lib/dto/index.js +1 -10
  20. package/dist/cjs/shared-lib/dto/index.js.map +1 -1
  21. package/dist/cjs/shared-lib/dto/redemption/index.d.ts +1 -0
  22. package/dist/cjs/shared-lib/dto/redemption/index.d.ts.map +1 -1
  23. package/dist/cjs/shared-lib/dto/redemption/index.js +1 -0
  24. package/dist/cjs/shared-lib/dto/redemption/index.js.map +1 -1
  25. package/dist/cjs/shared-lib/dto/redemption/redemption-filter-query.dto.d.ts +26 -0
  26. package/dist/cjs/shared-lib/dto/redemption/redemption-filter-query.dto.d.ts.map +1 -0
  27. package/dist/cjs/shared-lib/dto/redemption/redemption-filter-query.dto.js +148 -0
  28. package/dist/cjs/shared-lib/dto/redemption/redemption-filter-query.dto.js.map +1 -0
  29. package/dist/cjs/shared-lib/dto/redemption/redemptionCreate.request.dto.d.ts +1 -0
  30. package/dist/cjs/shared-lib/dto/redemption/redemptionCreate.request.dto.d.ts.map +1 -1
  31. package/dist/cjs/shared-lib/dto/redemption/redemptionCreate.request.dto.js +11 -0
  32. package/dist/cjs/shared-lib/dto/redemption/redemptionCreate.request.dto.js.map +1 -1
  33. package/dist/cjs/shared-lib/dto/token/token-metadata.dto.d.ts +1 -0
  34. package/dist/cjs/shared-lib/dto/token/token-metadata.dto.d.ts.map +1 -1
  35. package/dist/cjs/shared-lib/dto/token/token-metadata.dto.js +11 -0
  36. package/dist/cjs/shared-lib/dto/token/token-metadata.dto.js.map +1 -1
  37. package/dist/cjs/shared-lib/types/filter-options.type.d.ts +86 -0
  38. package/dist/cjs/shared-lib/types/filter-options.type.d.ts.map +1 -0
  39. package/dist/cjs/shared-lib/types/filter-options.type.js +23 -0
  40. package/dist/cjs/shared-lib/types/filter-options.type.js.map +1 -0
  41. package/dist/cjs/shared-lib/types/index.d.ts +1 -0
  42. package/dist/cjs/shared-lib/types/index.d.ts.map +1 -1
  43. package/dist/cjs/shared-lib/types/index.js +1 -0
  44. package/dist/cjs/shared-lib/types/index.js.map +1 -1
  45. package/dist/esm/shared-lib/dto/business/business-filter-query.dto.d.ts +25 -0
  46. package/dist/esm/shared-lib/dto/business/business-filter-query.dto.d.ts.map +1 -0
  47. package/dist/esm/shared-lib/dto/business/business-filter-query.dto.js +124 -0
  48. package/dist/esm/shared-lib/dto/business/business-filter-query.dto.js.map +1 -0
  49. package/dist/esm/shared-lib/dto/business/index.d.ts +1 -0
  50. package/dist/esm/shared-lib/dto/business/index.d.ts.map +1 -1
  51. package/dist/esm/shared-lib/dto/business/index.js +1 -0
  52. package/dist/esm/shared-lib/dto/business/index.js.map +1 -1
  53. package/dist/esm/shared-lib/dto/campaign/campaign-filter-query.dto.d.ts +27 -0
  54. package/dist/esm/shared-lib/dto/campaign/campaign-filter-query.dto.d.ts.map +1 -0
  55. package/dist/esm/shared-lib/dto/campaign/campaign-filter-query.dto.js +141 -0
  56. package/dist/esm/shared-lib/dto/campaign/campaign-filter-query.dto.js.map +1 -0
  57. package/dist/esm/shared-lib/dto/campaign/index.d.ts +12 -0
  58. package/dist/esm/shared-lib/dto/campaign/index.d.ts.map +1 -0
  59. package/dist/esm/shared-lib/dto/campaign/index.js +13 -0
  60. package/dist/esm/shared-lib/dto/campaign/index.js.map +1 -0
  61. package/dist/esm/shared-lib/dto/index.d.ts +1 -10
  62. package/dist/esm/shared-lib/dto/index.d.ts.map +1 -1
  63. package/dist/esm/shared-lib/dto/index.js +1 -10
  64. package/dist/esm/shared-lib/dto/index.js.map +1 -1
  65. package/dist/esm/shared-lib/dto/redemption/index.d.ts +1 -0
  66. package/dist/esm/shared-lib/dto/redemption/index.d.ts.map +1 -1
  67. package/dist/esm/shared-lib/dto/redemption/index.js +1 -0
  68. package/dist/esm/shared-lib/dto/redemption/index.js.map +1 -1
  69. package/dist/esm/shared-lib/dto/redemption/redemption-filter-query.dto.d.ts +26 -0
  70. package/dist/esm/shared-lib/dto/redemption/redemption-filter-query.dto.d.ts.map +1 -0
  71. package/dist/esm/shared-lib/dto/redemption/redemption-filter-query.dto.js +132 -0
  72. package/dist/esm/shared-lib/dto/redemption/redemption-filter-query.dto.js.map +1 -0
  73. package/dist/esm/shared-lib/dto/redemption/redemptionCreate.request.dto.d.ts +1 -0
  74. package/dist/esm/shared-lib/dto/redemption/redemptionCreate.request.dto.d.ts.map +1 -1
  75. package/dist/esm/shared-lib/dto/redemption/redemptionCreate.request.dto.js +11 -1
  76. package/dist/esm/shared-lib/dto/redemption/redemptionCreate.request.dto.js.map +1 -1
  77. package/dist/esm/shared-lib/dto/token/token-metadata.dto.d.ts +1 -0
  78. package/dist/esm/shared-lib/dto/token/token-metadata.dto.d.ts.map +1 -1
  79. package/dist/esm/shared-lib/dto/token/token-metadata.dto.js +11 -1
  80. package/dist/esm/shared-lib/dto/token/token-metadata.dto.js.map +1 -1
  81. package/dist/esm/shared-lib/types/filter-options.type.d.ts +86 -0
  82. package/dist/esm/shared-lib/types/filter-options.type.d.ts.map +1 -0
  83. package/dist/esm/shared-lib/types/filter-options.type.js +20 -0
  84. package/dist/esm/shared-lib/types/filter-options.type.js.map +1 -0
  85. package/dist/esm/shared-lib/types/index.d.ts +1 -0
  86. package/dist/esm/shared-lib/types/index.d.ts.map +1 -1
  87. package/dist/esm/shared-lib/types/index.js +1 -0
  88. package/dist/esm/shared-lib/types/index.js.map +1 -1
  89. package/package.json +1 -1
@@ -0,0 +1,86 @@
1
+ import { BasePaginationQuery } from '../interfaces/base-pagination.interface';
2
+ import { SortOrder } from '../enum';
3
+ /**
4
+ * Base filter options shared across all list endpoints.
5
+ * Extends BasePaginationQuery for pagination/sorting.
6
+ *
7
+ * @example
8
+ * { active: true, tags: ['sports', 'outdoor'], search: 'coffee' }
9
+ */
10
+ export interface BaseFilterOptions extends BasePaginationQuery {
11
+ /** Filter by active status */
12
+ active?: boolean;
13
+ /** @deprecated Use `active` instead */
14
+ isActive?: boolean;
15
+ /** Filter by tag(s) - single tag or array for OR match */
16
+ tags?: string | string[];
17
+ /** Free text search */
18
+ search?: string;
19
+ /** @deprecated Use `sortBy` instead */
20
+ sort?: string;
21
+ /** @deprecated Use `sortOrder` instead */
22
+ order?: SortOrder;
23
+ }
24
+ /**
25
+ * Filter options with date range support.
26
+ * Used by entities with start/end dates (campaigns, redemptions).
27
+ */
28
+ export interface DateRangeFilterOptions extends BaseFilterOptions {
29
+ /** Filter items starting on or after this date */
30
+ startDate?: Date | string;
31
+ /** Filter items ending on or before this date */
32
+ endDate?: Date | string;
33
+ /** Override sortBy with date-aware fields */
34
+ sortBy?: 'name' | 'createdAt' | 'startDate';
35
+ /** @deprecated Use `sortBy` instead */
36
+ sort?: 'name' | 'createdAt' | 'startDate';
37
+ }
38
+ /**
39
+ * Campaign filter options for API and SDK.
40
+ *
41
+ * @example
42
+ * // Filter by business and date range
43
+ * { businessId: 'uuid', startDate: '2026-01-01', tags: 'sports' }
44
+ */
45
+ export interface CampaignFilterOptions extends DateRangeFilterOptions {
46
+ /** Filter by business engagement */
47
+ businessId?: string;
48
+ }
49
+ /**
50
+ * Redemption filter options for API and SDK.
51
+ *
52
+ * @example
53
+ * { active: true, tags: 'voucher', startDate: '2026-01-01' }
54
+ */
55
+ export interface RedemptionFilterOptions extends DateRangeFilterOptions {
56
+ }
57
+ /**
58
+ * Business filter options for API and SDK.
59
+ *
60
+ * @example
61
+ * { active: true, tags: ['restaurant', 'cafe'], search: 'coffee' }
62
+ */
63
+ export interface BusinessFilterOptions extends BaseFilterOptions {
64
+ /** Sanitize user models (admin only) */
65
+ sanitize?: 'soft' | 'hard';
66
+ /** Override sortBy with business-specific fields */
67
+ sortBy?: 'name' | 'createdAt' | 'businessLegalName';
68
+ }
69
+ /**
70
+ * Normalizes filter options to use new field names while accepting deprecated ones.
71
+ * Use at controller level to support both old and new API contracts.
72
+ *
73
+ * @example
74
+ * // In controller
75
+ * const filters = normalizeFilters({ isActive: true, sort: 'name' });
76
+ * // Result: { active: true, sortBy: 'name', isActive: true, sort: 'name' }
77
+ */
78
+ export declare function normalizeFilters<T extends {
79
+ active?: boolean;
80
+ isActive?: boolean;
81
+ sortBy?: string;
82
+ sort?: string;
83
+ sortOrder?: SortOrder;
84
+ order?: SortOrder;
85
+ }>(filters?: T): T | undefined;
86
+ //# sourceMappingURL=filter-options.type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filter-options.type.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/types/filter-options.type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAC;AAC9E,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpC;;;;;;GAMG;AACH,MAAM,WAAW,iBAAkB,SAAQ,mBAAmB;IAC5D,8BAA8B;IAC9B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,uCAAuC;IACvC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,0DAA0D;IAC1D,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACzB,uBAAuB;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uCAAuC;IACvC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,0CAA0C;IAC1C,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAuB,SAAQ,iBAAiB;IAC/D,kDAAkD;IAClD,SAAS,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;IAC1B,iDAAiD;IACjD,OAAO,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;IACxB,6CAA6C;IAC7C,MAAM,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,WAAW,CAAC;IAC5C,uCAAuC;IACvC,IAAI,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,WAAW,CAAC;CAC3C;AAED;;;;;;GAMG;AACH,MAAM,WAAW,qBAAsB,SAAQ,sBAAsB;IACnE,oCAAoC;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;GAKG;AACH,MAAM,WAAW,uBAAwB,SAAQ,sBAAsB;CAAG;AAE1E;;;;;GAKG;AACH,MAAM,WAAW,qBAAsB,SAAQ,iBAAiB;IAC9D,wCAAwC;IACxC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,oDAAoD;IACpD,MAAM,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,mBAAmB,CAAC;CACrD;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS;IACzC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,KAAK,CAAC,EAAE,SAAS,CAAA;CAClB,EAAE,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS,CAS7B"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Normalizes filter options to use new field names while accepting deprecated ones.
3
+ * Use at controller level to support both old and new API contracts.
4
+ *
5
+ * @example
6
+ * // In controller
7
+ * const filters = normalizeFilters({ isActive: true, sort: 'name' });
8
+ * // Result: { active: true, sortBy: 'name', isActive: true, sort: 'name' }
9
+ */
10
+ export function normalizeFilters(filters) {
11
+ if (!filters)
12
+ return undefined;
13
+ return {
14
+ ...filters,
15
+ active: filters.active ?? filters.isActive,
16
+ sortBy: filters.sortBy ?? filters.sort,
17
+ sortOrder: filters.sortOrder ?? filters.order,
18
+ };
19
+ }
20
+ //# sourceMappingURL=filter-options.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filter-options.type.js","sourceRoot":"","sources":["../../../../src/shared-lib/types/filter-options.type.ts"],"names":[],"mappings":"AAyEA;;;;;;;;GAQG;AACH,MAAM,UAAU,gBAAgB,CAO7B,OAAW;IACZ,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAE/B,OAAO;QACL,GAAG,OAAO;QACV,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,QAAQ;QAC1C,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,IAAI;QACtC,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,KAAK;KACzC,CAAC;AACT,CAAC"}
@@ -14,4 +14,5 @@ export * from './redemption-include-relation.type';
14
14
  export * from './redemption-redeem-include-relation.type';
15
15
  export * from './business-membership-include-relation.type';
16
16
  export * from './user-include-relation.type';
17
+ export * from './filter-options.type';
17
18
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/types/index.ts"],"names":[],"mappings":"AACA,cAAc,kBAAkB,CAAC;AACjC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,WAAW,CAAC;AAC1B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qCAAqC,CAAC;AACpD,cAAc,kCAAkC,CAAC;AACjD,cAAc,wCAAwC,CAAC;AACvD,cAAc,oCAAoC,CAAC;AACnD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,6CAA6C,CAAC;AAC5D,cAAc,8BAA8B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/types/index.ts"],"names":[],"mappings":"AACA,cAAc,kBAAkB,CAAC;AACjC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,WAAW,CAAC;AAC1B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qCAAqC,CAAC;AACpD,cAAc,kCAAkC,CAAC;AACjD,cAAc,wCAAwC,CAAC;AACvD,cAAc,oCAAoC,CAAC;AACnD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,6CAA6C,CAAC;AAC5D,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC"}
@@ -15,4 +15,5 @@ export * from './redemption-include-relation.type.js';
15
15
  export * from './redemption-redeem-include-relation.type.js';
16
16
  export * from './business-membership-include-relation.type.js';
17
17
  export * from './user-include-relation.type.js';
18
+ export * from './filter-options.type.js';
18
19
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/shared-lib/types/index.ts"],"names":[],"mappings":"AAAA,mDAAmD;AACnD,cAAc,kBAAkB,CAAC;AACjC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,WAAW,CAAC;AAC1B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qCAAqC,CAAC;AACpD,cAAc,kCAAkC,CAAC;AACjD,cAAc,wCAAwC,CAAC;AACvD,cAAc,oCAAoC,CAAC;AACnD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,6CAA6C,CAAC;AAC5D,cAAc,8BAA8B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/shared-lib/types/index.ts"],"names":[],"mappings":"AAAA,mDAAmD;AACnD,cAAc,kBAAkB,CAAC;AACjC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,WAAW,CAAC;AAC1B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qCAAqC,CAAC;AACpD,cAAc,kCAAkC,CAAC;AACjD,cAAc,wCAAwC,CAAC;AACvD,cAAc,oCAAoC,CAAC;AACnD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,6CAA6C,CAAC;AAC5D,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@explorins/pers-shared",
3
- "version": "2.1.125",
3
+ "version": "2.1.127",
4
4
  "scripts": {
5
5
  "clean": "find dist -type f -delete 2>/dev/null || true",
6
6
  "build:esm": "tsc -p tsconfig.esm.json && node scripts/add-js-extensions.js",