@winata/flipper-entities 0.0.0-stage → 2.7.11

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 (123) hide show
  1. package/dist/assets/logos.d.ts +14 -0
  2. package/dist/assets/logos.d.ts.map +1 -0
  3. package/dist/assets/logos.js +32 -0
  4. package/dist/assets/logos.js.map +1 -0
  5. package/dist/enums/marketplace.d.ts +16 -0
  6. package/dist/enums/marketplace.d.ts.map +1 -0
  7. package/dist/enums/marketplace.js +23 -0
  8. package/dist/enums/marketplace.js.map +1 -0
  9. package/dist/enums/notification-channel.enum.d.ts +8 -0
  10. package/dist/enums/notification-channel.enum.d.ts.map +1 -0
  11. package/dist/enums/notification-channel.enum.js +12 -0
  12. package/dist/enums/notification-channel.enum.js.map +1 -0
  13. package/dist/enums/search-type.enum.d.ts +27 -0
  14. package/dist/enums/search-type.enum.d.ts.map +1 -0
  15. package/dist/enums/search-type.enum.js +54 -0
  16. package/dist/enums/search-type.enum.js.map +1 -0
  17. package/dist/index.d.ts +35 -0
  18. package/dist/index.d.ts.map +1 -0
  19. package/dist/index.js +44 -0
  20. package/dist/index.js.map +1 -0
  21. package/dist/search-filter.policy.d.ts +19 -0
  22. package/dist/search-filter.policy.d.ts.map +1 -0
  23. package/dist/search-filter.policy.js +84 -0
  24. package/dist/search-filter.policy.js.map +1 -0
  25. package/dist/types/banned-seller.types.d.ts +26 -0
  26. package/dist/types/banned-seller.types.d.ts.map +1 -0
  27. package/dist/types/banned-seller.types.js +3 -0
  28. package/dist/types/banned-seller.types.js.map +1 -0
  29. package/dist/types/billing-options.types.d.ts +6 -0
  30. package/dist/types/billing-options.types.d.ts.map +1 -0
  31. package/dist/types/billing-options.types.js +3 -0
  32. package/dist/types/billing-options.types.js.map +1 -0
  33. package/dist/types/core-options.types.d.ts +110 -0
  34. package/dist/types/core-options.types.d.ts.map +1 -0
  35. package/dist/types/core-options.types.js +3 -0
  36. package/dist/types/core-options.types.js.map +1 -0
  37. package/dist/types/engine.types.d.ts +68 -0
  38. package/dist/types/engine.types.d.ts.map +1 -0
  39. package/dist/types/engine.types.js +3 -0
  40. package/dist/types/engine.types.js.map +1 -0
  41. package/dist/types/item-check.types.d.ts +15 -0
  42. package/dist/types/item-check.types.d.ts.map +1 -0
  43. package/dist/types/item-check.types.js +3 -0
  44. package/dist/types/item-check.types.js.map +1 -0
  45. package/dist/types/item-filter.types.d.ts +30 -0
  46. package/dist/types/item-filter.types.d.ts.map +1 -0
  47. package/dist/types/item-filter.types.js +3 -0
  48. package/dist/types/item-filter.types.js.map +1 -0
  49. package/dist/types/item.types.d.ts +41 -0
  50. package/dist/types/item.types.d.ts.map +1 -0
  51. package/dist/types/item.types.js +3 -0
  52. package/dist/types/item.types.js.map +1 -0
  53. package/dist/types/notification.types.d.ts +35 -0
  54. package/dist/types/notification.types.d.ts.map +1 -0
  55. package/dist/types/notification.types.js +3 -0
  56. package/dist/types/notification.types.js.map +1 -0
  57. package/dist/types/option.types.d.ts +13 -0
  58. package/dist/types/option.types.d.ts.map +1 -0
  59. package/dist/types/option.types.js +3 -0
  60. package/dist/types/option.types.js.map +1 -0
  61. package/dist/types/product.types.d.ts +99 -0
  62. package/dist/types/product.types.d.ts.map +1 -0
  63. package/dist/types/product.types.js +3 -0
  64. package/dist/types/product.types.js.map +1 -0
  65. package/dist/types/scrape.types.d.ts +43 -0
  66. package/dist/types/scrape.types.d.ts.map +1 -0
  67. package/dist/types/scrape.types.js +3 -0
  68. package/dist/types/scrape.types.js.map +1 -0
  69. package/dist/types/search-jsonb.types.d.ts +95 -0
  70. package/dist/types/search-jsonb.types.d.ts.map +1 -0
  71. package/dist/types/search-jsonb.types.js +3 -0
  72. package/dist/types/search-jsonb.types.js.map +1 -0
  73. package/dist/types/search.types.d.ts +47 -0
  74. package/dist/types/search.types.d.ts.map +1 -0
  75. package/dist/types/search.types.js +3 -0
  76. package/dist/types/search.types.js.map +1 -0
  77. package/dist/types/seller-snapshot.types.d.ts +53 -0
  78. package/dist/types/seller-snapshot.types.d.ts.map +1 -0
  79. package/dist/types/seller-snapshot.types.js +3 -0
  80. package/dist/types/seller-snapshot.types.js.map +1 -0
  81. package/dist/types/seller-summary.types.d.ts +35 -0
  82. package/dist/types/seller-summary.types.d.ts.map +1 -0
  83. package/dist/types/seller-summary.types.js +3 -0
  84. package/dist/types/seller-summary.types.js.map +1 -0
  85. package/dist/types/subscription.types.d.ts +120 -0
  86. package/dist/types/subscription.types.d.ts.map +1 -0
  87. package/dist/types/subscription.types.js +3 -0
  88. package/dist/types/subscription.types.js.map +1 -0
  89. package/dist/types/usage.types.d.ts +50 -0
  90. package/dist/types/usage.types.d.ts.map +1 -0
  91. package/dist/types/usage.types.js +3 -0
  92. package/dist/types/usage.types.js.map +1 -0
  93. package/dist/types/user-channel.types.d.ts +28 -0
  94. package/dist/types/user-channel.types.d.ts.map +1 -0
  95. package/dist/types/user-channel.types.js +3 -0
  96. package/dist/types/user-channel.types.js.map +1 -0
  97. package/dist/types/user-item.types.d.ts +15 -0
  98. package/dist/types/user-item.types.d.ts.map +1 -0
  99. package/dist/types/user-item.types.js +3 -0
  100. package/dist/types/user-item.types.js.map +1 -0
  101. package/dist/types/user.types.d.ts +30 -0
  102. package/dist/types/user.types.d.ts.map +1 -0
  103. package/dist/types/user.types.js +3 -0
  104. package/dist/types/user.types.js.map +1 -0
  105. package/dist/utilities/index.d.ts +9 -0
  106. package/dist/utilities/index.d.ts.map +1 -0
  107. package/dist/utilities/index.js +21 -0
  108. package/dist/utilities/index.js.map +1 -0
  109. package/dist/utilities/scalar.d.ts +12 -0
  110. package/dist/utilities/scalar.d.ts.map +1 -0
  111. package/dist/utilities/scalar.js +45 -0
  112. package/dist/utilities/scalar.js.map +1 -0
  113. package/dist/utilities/seller-snapshot.d.ts +41 -0
  114. package/dist/utilities/seller-snapshot.d.ts.map +1 -0
  115. package/dist/utilities/seller-snapshot.js +126 -0
  116. package/dist/utilities/seller-snapshot.js.map +1 -0
  117. package/dist/utilities/seller-summary.d.ts +22 -0
  118. package/dist/utilities/seller-summary.d.ts.map +1 -0
  119. package/dist/utilities/seller-summary.js +85 -0
  120. package/dist/utilities/seller-summary.js.map +1 -0
  121. package/package.json +37 -4
  122. package/utilities/package.json +5 -0
  123. package/README.md +0 -3
@@ -0,0 +1,126 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SELLER_SNAPSHOT_VERSION = void 0;
4
+ exports.createSellerSnapshot = createSellerSnapshot;
5
+ exports.parseSellerSnapshot = parseSellerSnapshot;
6
+ exports.toSellerIdentities = toSellerIdentities;
7
+ exports.toSellerMatchKey = toSellerMatchKey;
8
+ const scalar_1 = require("./scalar");
9
+ const seller_summary_1 = require("./seller-summary");
10
+ exports.SELLER_SNAPSHOT_VERSION = 1;
11
+ /** Key gambar seller, prioritas pertama yang berisi URI. */
12
+ const PICTURE_KEYS = [
13
+ 'profile_picture',
14
+ 'profile_picture_160',
15
+ 'commerce_profile_picture_with_fallback_160',
16
+ ];
17
+ function pickPicture(seller) {
18
+ for (const key of PICTURE_KEYS) {
19
+ const picture = seller[key];
20
+ const uri = (0, scalar_1.isRecord)(picture) ? (0, scalar_1.toStringValue)(picture.uri) : null;
21
+ if (uri)
22
+ return { uri };
23
+ }
24
+ return null;
25
+ }
26
+ /**
27
+ * Bungkus objek seller mentah jadi snapshot berversi dengan HANYA property
28
+ * penting (bentuk ternormalisasi, sama untuk semua marketplace): identitas
29
+ * matching ban (`id`, `user_id`, `marketplace_user_profile.id`), nama, avatar,
30
+ * join, rating, verified, orders. Varian gambar, `__typename`, dan nesting
31
+ * mentah rating dibuang.
32
+ * Null kalau marketplace tidak mengirim objek (kadang null/string).
33
+ * ponytail: versi ini menulis v1; tambahkan cabang kalau v2 muncul.
34
+ */
35
+ function createSellerSnapshot(source, seller) {
36
+ if (!(0, scalar_1.isRecord)(seller))
37
+ return null;
38
+ const profile = (0, scalar_1.isRecord)(seller.marketplace_user_profile)
39
+ ? seller.marketplace_user_profile
40
+ : null;
41
+ return {
42
+ source,
43
+ version: exports.SELLER_SNAPSHOT_VERSION,
44
+ data: {
45
+ id: (0, scalar_1.toStringValue)(seller.id),
46
+ user_id: (0, scalar_1.toStringValue)(seller.user_id),
47
+ name: (0, scalar_1.toStringValue)(seller.name),
48
+ join_time: (0, scalar_1.toNumberValue)(seller.join_time),
49
+ marketplace_user_profile: profile
50
+ ? {
51
+ id: (0, scalar_1.toStringValue)(profile.id),
52
+ c2c_orders_shipped: (0, scalar_1.toNumberValue)(profile.c2c_orders_shipped),
53
+ }
54
+ : null,
55
+ profile_picture: pickPicture(seller),
56
+ rating: (0, seller_summary_1.readSellerRating)(seller),
57
+ verified: (0, seller_summary_1.readSellerVerified)(seller),
58
+ },
59
+ };
60
+ }
61
+ /**
62
+ * Baca snapshot dari DB/IPC. Null kalau bentuknya tidak dikenal (mis. versi
63
+ * lebih baru) — pemanggil fail-open, bukan throw. Ini SATU-SATUNYA cabang
64
+ * versi snapshot; semua service lain lewat sini.
65
+ */
66
+ function parseSellerSnapshot(value) {
67
+ if (!value || typeof value !== 'object' || Array.isArray(value))
68
+ return null;
69
+ const snapshot = value;
70
+ if (snapshot.version !== exports.SELLER_SNAPSHOT_VERSION)
71
+ return null;
72
+ if (typeof snapshot.source !== 'string' || snapshot.source.length === 0) {
73
+ return null;
74
+ }
75
+ const data = snapshot.data;
76
+ if (!data || typeof data !== 'object' || Array.isArray(data))
77
+ return null;
78
+ return {
79
+ source: snapshot.source,
80
+ version: exports.SELLER_SNAPSHOT_VERSION,
81
+ data: data,
82
+ };
83
+ }
84
+ /**
85
+ * Nilai identitas seller untuk matching ban. Nilai duplikat (FB sering mengisi
86
+ * `id` = `user_id`) dibuang, property pertama yang menang.
87
+ */
88
+ function toSellerIdentities(snapshot) {
89
+ const data = snapshot?.data;
90
+ if (!data)
91
+ return [];
92
+ const profile = data.marketplace_user_profile;
93
+ const candidates = [
94
+ ['id', data.id],
95
+ ['user_id', data.user_id],
96
+ [
97
+ 'marketplace_user_profile.id',
98
+ profile && typeof profile === 'object' && !Array.isArray(profile)
99
+ ? profile.id
100
+ : null,
101
+ ],
102
+ ];
103
+ const identities = [];
104
+ const seen = new Set();
105
+ for (const [property, raw] of candidates) {
106
+ const value = (0, scalar_1.toStringValue)(raw);
107
+ if (!value || seen.has(value))
108
+ continue;
109
+ seen.add(value);
110
+ identities.push({ property, value });
111
+ }
112
+ return identities;
113
+ }
114
+ const MECHANISM_PREFIX = {
115
+ snapshot: 'S',
116
+ legacy: 'L',
117
+ };
118
+ /**
119
+ * Key pencocokan ban: `${prefix mekanisme}:${marketplace huruf kecil}:${value}`.
120
+ * Sengaja tidak dipisah per property di dalam mekanisme `snapshot`, karena
121
+ * matching lintas property diinginkan (mis. `id` listing vs `user_id` ban).
122
+ */
123
+ function toSellerMatchKey(marketplace, value, mechanism) {
124
+ return `${MECHANISM_PREFIX[mechanism]}:${marketplace.toLowerCase()}:${value}`;
125
+ }
126
+ //# sourceMappingURL=seller-snapshot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seller-snapshot.js","sourceRoot":"","sources":["../../src/utilities/seller-snapshot.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import type { SellerSnapshotJSONB } from '../types/seller-snapshot.types';
2
+ import type { SellerRating, SellerSummaryJSONB } from '../types/seller-summary.types';
3
+ /**
4
+ * Rating seller dari dua bentuk: ternormalisasi (`rating`, tulisan
5
+ * `createSellerSnapshot`) atau nesting mentah marketplace (baris lama).
6
+ * Null kalau marketplace tidak punya angka apa pun.
7
+ */
8
+ export declare function readSellerRating(source: Record<string, unknown>): SellerRating | null;
9
+ /**
10
+ * Badge verified dari bentuk ternormalisasi (`verified`) atau badge mentah
11
+ * (baris lama).
12
+ */
13
+ export declare function readSellerVerified(source: Record<string, unknown>): boolean;
14
+ /**
15
+ * Ringkasan seller (avatar, nama, profileId, rating, verified, orders) dari
16
+ * snapshot. TIDAK disimpan sebagai kolom: dipakai be saat menyusun response
17
+ * dan fe saat render. Null kalau tidak ada snapshot — baris legacy tidak punya
18
+ * ringkasan. Field yang hilang → null, bukan dihilangkan, supaya bentuk
19
+ * barisnya stabil antar marketplace.
20
+ */
21
+ export declare function toSellerSummary(snapshot: SellerSnapshotJSONB | null | undefined): SellerSummaryJSONB | null;
22
+ //# sourceMappingURL=seller-summary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seller-summary.d.ts","sourceRoot":"","sources":["../../src/utilities/seller-summary.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,KAAK,EACV,YAAY,EACZ,kBAAkB,EACnB,MAAM,+BAA+B,CAAC;AAuBvC;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,YAAY,GAAG,IAAI,CA2BrB;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAM3E;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,mBAAmB,GAAG,IAAI,GAAG,SAAS,GAC/C,kBAAkB,GAAG,IAAI,CAgB3B"}
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.readSellerRating = readSellerRating;
4
+ exports.readSellerVerified = readSellerVerified;
5
+ exports.toSellerSummary = toSellerSummary;
6
+ const scalar_1 = require("./scalar");
7
+ function pickAvatarUri(source) {
8
+ const candidates = [
9
+ (0, scalar_1.isRecord)(source.profile_picture) ? source.profile_picture.uri : null,
10
+ (0, scalar_1.isRecord)(source.profile_picture_160) ? source.profile_picture_160.uri : null,
11
+ (0, scalar_1.isRecord)(source.commerce_profile_picture_with_fallback_160)
12
+ ? source.commerce_profile_picture_with_fallback_160.uri
13
+ : null,
14
+ ];
15
+ for (const candidate of candidates) {
16
+ const value = (0, scalar_1.toStringValue)(candidate);
17
+ if (value)
18
+ return value;
19
+ }
20
+ return null;
21
+ }
22
+ /**
23
+ * Rating seller dari dua bentuk: ternormalisasi (`rating`, tulisan
24
+ * `createSellerSnapshot`) atau nesting mentah marketplace (baris lama).
25
+ * Null kalau marketplace tidak punya angka apa pun.
26
+ */
27
+ function readSellerRating(source) {
28
+ if ((0, scalar_1.isRecord)(source.rating)) {
29
+ const average = (0, scalar_1.toNumberValue)(source.rating.average);
30
+ const count = (0, scalar_1.toNumberValue)(source.rating.count);
31
+ const isPrivate = source.rating.private === true;
32
+ if (average === null && count === null && !isPrivate)
33
+ return null;
34
+ return { average, count, private: isPrivate };
35
+ }
36
+ const stats = (0, scalar_1.isRecord)(source.marketplace_ratings_stats_by_role_v2)
37
+ ? source.marketplace_ratings_stats_by_role_v2
38
+ : null;
39
+ const combined = stats && (0, scalar_1.isRecord)(stats.seller_buyer_combined)
40
+ ? stats.seller_buyer_combined
41
+ : null;
42
+ const sellerStats = stats && (0, scalar_1.isRecord)(stats.seller_stats) ? stats.seller_stats : null;
43
+ const primary = combined ?? sellerStats;
44
+ const average = (0, scalar_1.toNumberValue)(primary?.five_star_ratings_average);
45
+ const count = (0, scalar_1.toNumberValue)(primary?.five_star_total_rating_count_by_role);
46
+ const isPrivate = (stats ? stats.seller_ratings_are_private === true : false) ||
47
+ (combined ? combined.ratings_are_private === true : false);
48
+ if (average === null && count === null && !isPrivate)
49
+ return null;
50
+ return { average, count, private: isPrivate };
51
+ }
52
+ /**
53
+ * Badge verified dari bentuk ternormalisasi (`verified`) atau badge mentah
54
+ * (baris lama).
55
+ */
56
+ function readSellerVerified(source) {
57
+ return (source.verified === true ||
58
+ source.marketplace_should_display_verified_badge === true ||
59
+ source.should_display_true_blue_badge_mp === true);
60
+ }
61
+ /**
62
+ * Ringkasan seller (avatar, nama, profileId, rating, verified, orders) dari
63
+ * snapshot. TIDAK disimpan sebagai kolom: dipakai be saat menyusun response
64
+ * dan fe saat render. Null kalau tidak ada snapshot — baris legacy tidak punya
65
+ * ringkasan. Field yang hilang → null, bukan dihilangkan, supaya bentuk
66
+ * barisnya stabil antar marketplace.
67
+ */
68
+ function toSellerSummary(snapshot) {
69
+ if (!snapshot || !(0, scalar_1.isRecord)(snapshot.data))
70
+ return null;
71
+ const data = snapshot.data;
72
+ const profile = (0, scalar_1.isRecord)(data.marketplace_user_profile)
73
+ ? data.marketplace_user_profile
74
+ : null;
75
+ return {
76
+ avatar: pickAvatarUri(data),
77
+ name: (0, scalar_1.toStringValue)(data.name),
78
+ profileId: profile ? (0, scalar_1.toStringValue)(profile.id) : null,
79
+ joinedAt: (0, scalar_1.toIsoString)(data.join_time),
80
+ rating: readSellerRating(data),
81
+ verified: readSellerVerified(data),
82
+ ordersShipped: profile ? (0, scalar_1.toNumberValue)(profile.c2c_orders_shipped) : null,
83
+ };
84
+ }
85
+ //# sourceMappingURL=seller-summary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seller-summary.js","sourceRoot":"","sources":["../../src/utilities/seller-summary.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,39 @@
1
1
  {
2
2
  "name": "@winata/flipper-entities",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
3
+ "version": "2.7.11",
4
+ "private": false,
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "exports": {
8
+ ".": {
9
+ "types": "./dist/index.d.ts",
10
+ "default": "./dist/index.js"
11
+ },
12
+ "./utilities": {
13
+ "types": "./dist/utilities/index.d.ts",
14
+ "default": "./dist/utilities/index.js"
15
+ },
16
+ "./utilities/*": {
17
+ "types": "./dist/utilities/*.d.ts",
18
+ "default": "./dist/utilities/*.js"
19
+ }
20
+ },
21
+ "files": [
22
+ "dist",
23
+ "utilities",
24
+ "README.md"
25
+ ],
26
+ "scripts": {
27
+ "prebuild": "node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\"",
28
+ "build": "tsc",
29
+ "test": "bun test src",
30
+ "prepublishOnly": "bun run build"
31
+ },
32
+ "publishConfig": {
33
+ "access": "public"
34
+ },
35
+ "devDependencies": {
36
+ "typescript": "^5.0.0"
37
+ },
38
+ "license": "UNLICENSED"
39
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "comment": "Passthrough subpath untuk resolver lama (node10/CommonJS: be, core, engine) yang mengabaikan field `exports`. Jangan dihapus.",
3
+ "main": "../dist/utilities/index.js",
4
+ "types": "../dist/utilities/index.d.ts"
5
+ }
package/README.md DELETED
@@ -1,3 +0,0 @@
1
- # Temporary Holding Version
2
-
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.