@thinkerchain/flipper-entities 2.4.0 → 2.5.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.
- package/dist/enums/marketplace.d.ts +16 -0
- package/dist/enums/marketplace.d.ts.map +1 -0
- package/dist/enums/marketplace.js +23 -0
- package/dist/enums/marketplace.js.map +1 -0
- package/dist/index.d.ts +10 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +21 -8
- package/dist/index.js.map +1 -1
- package/dist/types/banned-seller.types.d.ts +3 -0
- package/dist/types/banned-seller.types.d.ts.map +1 -1
- package/dist/types/item-filter.types.d.ts +6 -3
- package/dist/types/item-filter.types.d.ts.map +1 -1
- package/dist/types/item.types.d.ts +3 -0
- package/dist/types/item.types.d.ts.map +1 -1
- package/dist/types/scrape.types.d.ts +3 -0
- package/dist/types/scrape.types.d.ts.map +1 -1
- package/dist/types/seller-summary.types.d.ts +36 -0
- package/dist/types/seller-summary.types.d.ts.map +1 -0
- package/dist/types/{plan.types.js → seller-summary.types.js} +1 -1
- package/dist/types/seller-summary.types.js.map +1 -0
- package/dist/types/user-item.types.d.ts +5 -0
- package/dist/types/user-item.types.d.ts.map +1 -1
- package/dist/utilities/index.d.ts +9 -0
- package/dist/utilities/index.d.ts.map +1 -0
- package/dist/utilities/index.js +21 -0
- package/dist/utilities/index.js.map +1 -0
- package/dist/utilities/scalar.d.ts +12 -0
- package/dist/utilities/scalar.d.ts.map +1 -0
- package/dist/utilities/scalar.js +45 -0
- package/dist/utilities/scalar.js.map +1 -0
- package/dist/utilities/seller-snapshot.d.ts +34 -0
- package/dist/utilities/seller-snapshot.d.ts.map +1 -0
- package/dist/{seller-snapshot.js → utilities/seller-snapshot.js} +16 -19
- package/dist/utilities/seller-snapshot.js.map +1 -0
- package/dist/utilities/seller-summary.d.ts +11 -0
- package/dist/utilities/seller-summary.d.ts.map +1 -0
- package/dist/utilities/seller-summary.js +62 -0
- package/dist/utilities/seller-summary.js.map +1 -0
- package/package.json +39 -22
- package/utilities/package.json +5 -0
- package/dist/seller-snapshot.d.ts +0 -25
- package/dist/seller-snapshot.d.ts.map +0 -1
- package/dist/seller-snapshot.js.map +0 -1
- package/dist/types/plan.types.d.ts +0 -47
- package/dist/types/plan.types.d.ts.map +0 -1
- package/dist/types/plan.types.js.map +0 -1
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SSOT marketplace yang didukung. Nilainya yang dipakai di DB, RMQ/IPC, dan UI
|
|
3
|
+
* (huruf kecil). Jangan menulis literal `'facebook'` di service lain — impor
|
|
4
|
+
* dari sini supaya penambahan marketplace cukup satu tempat.
|
|
5
|
+
*/
|
|
6
|
+
export declare enum MarketplaceEnum {
|
|
7
|
+
FACEBOOK = "facebook",
|
|
8
|
+
TOKOPEDIA = "tokopedia",
|
|
9
|
+
OLX = "olx"
|
|
10
|
+
}
|
|
11
|
+
export type Marketplace = MarketplaceEnum;
|
|
12
|
+
/** Daftar marketplace untuk validasi/iterasi (mis. dropdown, DTO). */
|
|
13
|
+
export declare const MARKETPLACES: readonly MarketplaceEnum[];
|
|
14
|
+
/** Type guard marketplace yang dikenal. */
|
|
15
|
+
export declare function isMarketplace(value: unknown): value is MarketplaceEnum;
|
|
16
|
+
//# sourceMappingURL=marketplace.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"marketplace.d.ts","sourceRoot":"","sources":["../../src/enums/marketplace.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,oBAAY,eAAe;IACzB,QAAQ,aAAa;IACrB,SAAS,cAAc;IACvB,GAAG,QAAQ;CACZ;AAED,MAAM,MAAM,WAAW,GAAG,eAAe,CAAC;AAE1C,sEAAsE;AACtE,eAAO,MAAM,YAAY,EAAE,SAAS,eAAe,EAElD,CAAC;AAEF,2CAA2C;AAC3C,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,eAAe,CAKtE"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MARKETPLACES = exports.MarketplaceEnum = void 0;
|
|
4
|
+
exports.isMarketplace = isMarketplace;
|
|
5
|
+
/**
|
|
6
|
+
* SSOT marketplace yang didukung. Nilainya yang dipakai di DB, RMQ/IPC, dan UI
|
|
7
|
+
* (huruf kecil). Jangan menulis literal `'facebook'` di service lain — impor
|
|
8
|
+
* dari sini supaya penambahan marketplace cukup satu tempat.
|
|
9
|
+
*/
|
|
10
|
+
var MarketplaceEnum;
|
|
11
|
+
(function (MarketplaceEnum) {
|
|
12
|
+
MarketplaceEnum["FACEBOOK"] = "facebook";
|
|
13
|
+
MarketplaceEnum["TOKOPEDIA"] = "tokopedia";
|
|
14
|
+
MarketplaceEnum["OLX"] = "olx";
|
|
15
|
+
})(MarketplaceEnum || (exports.MarketplaceEnum = MarketplaceEnum = {}));
|
|
16
|
+
/** Daftar marketplace untuk validasi/iterasi (mis. dropdown, DTO). */
|
|
17
|
+
exports.MARKETPLACES = Object.values(MarketplaceEnum);
|
|
18
|
+
/** Type guard marketplace yang dikenal. */
|
|
19
|
+
function isMarketplace(value) {
|
|
20
|
+
return (typeof value === 'string' &&
|
|
21
|
+
exports.MARKETPLACES.includes(value));
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=marketplace.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"marketplace.js","sourceRoot":"","sources":["../../src/enums/marketplace.ts"],"names":[],"mappings":";;;AAmBA,sCAKC;AAxBD;;;;GAIG;AACH,IAAY,eAIX;AAJD,WAAY,eAAe;IACzB,wCAAqB,CAAA;IACrB,0CAAuB,CAAA;IACvB,8BAAW,CAAA;AACb,CAAC,EAJW,eAAe,+BAAf,eAAe,QAI1B;AAID,sEAAsE;AACzD,QAAA,YAAY,GAA+B,MAAM,CAAC,MAAM,CACnE,eAAe,CAChB,CAAC;AAEF,2CAA2C;AAC3C,SAAgB,aAAa,CAAC,KAAc;IAC1C,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACxB,oBAAkC,CAAC,QAAQ,CAAC,KAAK,CAAC,CACpD,CAAC;AACJ,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -4,7 +4,16 @@ export type { ScrapedItem, SearchWithItems } from './types/scrape.types';
|
|
|
4
4
|
export type { ItemFilterKey, InvalidFilterReason, ItemCheckStatus, CheckItemsRequest, } from './types/item-check.types';
|
|
5
5
|
export type { ItemFilterResult, ItemFilterContext, BannedSellerMatch, } from './types/item-filter.types';
|
|
6
6
|
export type { SellerIdentityProperty, SellerIdentity, FacebookSellerV1, SellerSnapshotV1, SellerSnapshotJSONB, } from './types/seller-snapshot.types';
|
|
7
|
-
export {
|
|
7
|
+
export type { SellerRating, SellerSummary, SellerSummaryJSONB, } from './types/seller-summary.types';
|
|
8
|
+
export { MarketplaceEnum, MARKETPLACES, isMarketplace, } from './enums/marketplace';
|
|
9
|
+
export type { Marketplace } from './enums/marketplace';
|
|
10
|
+
/**
|
|
11
|
+
* Helper runtime juga tersedia lewat subpath
|
|
12
|
+
* `@thinkerchain/flipper-entities/utilities`; re-export di sini untuk
|
|
13
|
+
* kompatibilitas pemanggil lama.
|
|
14
|
+
*/
|
|
15
|
+
export { SELLER_SNAPSHOT_VERSION, createSellerSnapshot, parseSellerSnapshot, toSellerIdentities, toSellerMatchKey, toSellerSummary, isRecord, toIsoString, toNumberValue, toStringValue, } from './utilities';
|
|
16
|
+
export type { SellerMatchMechanism } from './utilities';
|
|
8
17
|
export type { UserItemEntity, RichNoteJSONB } from './types/user-item.types';
|
|
9
18
|
export type { BannedSellerEntity } from './types/banned-seller.types';
|
|
10
19
|
export type { SearchEntity, SearchWithUser } from './types/search.types';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAExE,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAErE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEzE,YAAY,EACV,aAAa,EACb,mBAAmB,EACnB,eAAe,EACf,iBAAiB,GAClB,MAAM,0BAA0B,CAAC;AAElC,YAAY,EACV,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,2BAA2B,CAAC;AAEnC,YAAY,EACV,sBAAsB,EACtB,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EACL
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAExE,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAErE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEzE,YAAY,EACV,aAAa,EACb,mBAAmB,EACnB,eAAe,EACf,iBAAiB,GAClB,MAAM,0BAA0B,CAAC;AAElC,YAAY,EACV,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,2BAA2B,CAAC;AAEnC,YAAY,EACV,sBAAsB,EACtB,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,+BAA+B,CAAC;AAEvC,YAAY,EACV,YAAY,EACZ,aAAa,EACb,kBAAkB,GACnB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EACL,eAAe,EACf,YAAY,EACZ,aAAa,GACd,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD;;;;GAIG;AACH,OAAO,EACL,uBAAuB,EACvB,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,QAAQ,EACR,WAAW,EACX,aAAa,EACb,aAAa,GACd,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAExD,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE7E,YAAY,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEtE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEzE,YAAY,EACV,mBAAmB,EACnB,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,sBAAsB,CAAC;AAE9B,YAAY,EACV,aAAa,EACb,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,4BAA4B,CAAC;AAEpC,YAAY,EACV,UAAU,EACV,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,uBAAuB,EACvB,qBAAqB,EACrB,6BAA6B,EAC7B,YAAY,EACZ,aAAa,EACb,mBAAmB,EACnB,YAAY,GACb,MAAM,4BAA4B,CAAC;AAEpC,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD,YAAY,EACV,WAAW,EACX,cAAc,EACd,0BAA0B,EAC1B,2BAA2B,EAC3B,gCAAgC,EAChC,aAAa,GACd,MAAM,uBAAuB,CAAC;AAE/B,YAAY,EACV,kBAAkB,EAClB,kBAAkB,EAClB,uBAAuB,EACvB,+BAA+B,EAC/B,gCAAgC,EAChC,qCAAqC,EACrC,2BAA2B,EAC3B,oBAAoB,EACpB,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,4BAA4B,CAAC;AAEpC,YAAY,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAEvE,YAAY,EACV,kBAAkB,EAClB,WAAW,EACX,wBAAwB,GACzB,MAAM,qBAAqB,CAAC;AAE7B,YAAY,EACV,aAAa,EACb,oBAAoB,EACpB,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,cAAc,EACd,qBAAqB,EACrB,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,cAAc,GACf,MAAM,4BAA4B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,11 +1,24 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.toSellerMatchKey = exports.toSellerIdentities = exports.parseSellerSnapshot = exports.createSellerSnapshot = exports.SELLER_SNAPSHOT_VERSION = exports.
|
|
4
|
-
var
|
|
5
|
-
Object.defineProperty(exports, "
|
|
6
|
-
Object.defineProperty(exports, "
|
|
7
|
-
Object.defineProperty(exports, "
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
3
|
+
exports.toStringValue = exports.toNumberValue = exports.toIsoString = exports.isRecord = exports.toSellerSummary = exports.toSellerMatchKey = exports.toSellerIdentities = exports.parseSellerSnapshot = exports.createSellerSnapshot = exports.SELLER_SNAPSHOT_VERSION = exports.isMarketplace = exports.MARKETPLACES = exports.MarketplaceEnum = void 0;
|
|
4
|
+
var marketplace_1 = require("./enums/marketplace");
|
|
5
|
+
Object.defineProperty(exports, "MarketplaceEnum", { enumerable: true, get: function () { return marketplace_1.MarketplaceEnum; } });
|
|
6
|
+
Object.defineProperty(exports, "MARKETPLACES", { enumerable: true, get: function () { return marketplace_1.MARKETPLACES; } });
|
|
7
|
+
Object.defineProperty(exports, "isMarketplace", { enumerable: true, get: function () { return marketplace_1.isMarketplace; } });
|
|
8
|
+
/**
|
|
9
|
+
* Helper runtime juga tersedia lewat subpath
|
|
10
|
+
* `@thinkerchain/flipper-entities/utilities`; re-export di sini untuk
|
|
11
|
+
* kompatibilitas pemanggil lama.
|
|
12
|
+
*/
|
|
13
|
+
var utilities_1 = require("./utilities");
|
|
14
|
+
Object.defineProperty(exports, "SELLER_SNAPSHOT_VERSION", { enumerable: true, get: function () { return utilities_1.SELLER_SNAPSHOT_VERSION; } });
|
|
15
|
+
Object.defineProperty(exports, "createSellerSnapshot", { enumerable: true, get: function () { return utilities_1.createSellerSnapshot; } });
|
|
16
|
+
Object.defineProperty(exports, "parseSellerSnapshot", { enumerable: true, get: function () { return utilities_1.parseSellerSnapshot; } });
|
|
17
|
+
Object.defineProperty(exports, "toSellerIdentities", { enumerable: true, get: function () { return utilities_1.toSellerIdentities; } });
|
|
18
|
+
Object.defineProperty(exports, "toSellerMatchKey", { enumerable: true, get: function () { return utilities_1.toSellerMatchKey; } });
|
|
19
|
+
Object.defineProperty(exports, "toSellerSummary", { enumerable: true, get: function () { return utilities_1.toSellerSummary; } });
|
|
20
|
+
Object.defineProperty(exports, "isRecord", { enumerable: true, get: function () { return utilities_1.isRecord; } });
|
|
21
|
+
Object.defineProperty(exports, "toIsoString", { enumerable: true, get: function () { return utilities_1.toIsoString; } });
|
|
22
|
+
Object.defineProperty(exports, "toNumberValue", { enumerable: true, get: function () { return utilities_1.toNumberValue; } });
|
|
23
|
+
Object.defineProperty(exports, "toStringValue", { enumerable: true, get: function () { return utilities_1.toStringValue; } });
|
|
11
24
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAiCA,mDAI6B;AAH3B,8GAAA,eAAe,OAAA;AACf,2GAAA,YAAY,OAAA;AACZ,4GAAA,aAAa,OAAA;AAIf;;;;GAIG;AACH,yCAWqB;AAVnB,oHAAA,uBAAuB,OAAA;AACvB,iHAAA,oBAAoB,OAAA;AACpB,gHAAA,mBAAmB,OAAA;AACnB,+GAAA,kBAAkB,OAAA;AAClB,6GAAA,gBAAgB,OAAA;AAChB,4GAAA,eAAe,OAAA;AACf,qGAAA,QAAQ,OAAA;AACR,wGAAA,WAAW,OAAA;AACX,0GAAA,aAAa,OAAA;AACb,0GAAA,aAAa,OAAA"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { SellerSnapshotJSONB } from './seller-snapshot.types';
|
|
2
|
+
import type { SellerSummaryJSONB } from './seller-summary.types';
|
|
2
3
|
/** Representasi tabel `BannedSeller`. */
|
|
3
4
|
export type BannedSellerEntity = {
|
|
4
5
|
id: number;
|
|
@@ -7,6 +8,8 @@ export type BannedSellerEntity = {
|
|
|
7
8
|
sellerKey: string;
|
|
8
9
|
sellerName: string | null;
|
|
9
10
|
sellerSnapshot?: SellerSnapshotJSONB | null;
|
|
11
|
+
/** Ringkasan seller (avatar, rating, verified) — turunan `sellerSnapshot`. */
|
|
12
|
+
sellerOther?: SellerSummaryJSONB | null;
|
|
10
13
|
subscriptionId?: number | null;
|
|
11
14
|
subscriptionProfileId?: number | null;
|
|
12
15
|
isSubscriptionActive?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"banned-seller.types.d.ts","sourceRoot":"","sources":["../../src/types/banned-seller.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"banned-seller.types.d.ts","sourceRoot":"","sources":["../../src/types/banned-seller.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,yCAAyC;AACzC,MAAM,MAAM,kBAAkB,GAAG;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,cAAc,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAC5C,8EAA8E;IAC9E,WAAW,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACxC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,qBAAqB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAAC"}
|
|
@@ -11,9 +11,12 @@ export type ItemFilterResult = {
|
|
|
11
11
|
};
|
|
12
12
|
/**
|
|
13
13
|
* Satu ban yang siap dicocokkan. Map-nya ber-key
|
|
14
|
-
* `${marketplace huruf kecil}:${nilai
|
|
15
|
-
*
|
|
16
|
-
*
|
|
14
|
+
* `${prefix mekanisme}:${marketplace huruf kecil}:${nilai}` (lihat
|
|
15
|
+
* `toSellerMatchKey`) — `S` untuk ban bersnapshot, `L` untuk ban lama tanpa
|
|
16
|
+
* snapshot, supaya kedua mekanisme tidak pernah saling cocok. Di dalam
|
|
17
|
+
* mekanisme `snapshot` sengaja tidak dipisah per property, karena matching
|
|
18
|
+
* lintas property diinginkan (id listing vs `marketplace_user_profile.id` ban
|
|
19
|
+
* tetap kena).
|
|
17
20
|
*/
|
|
18
21
|
export type BannedSellerMatch = {
|
|
19
22
|
banId: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"item-filter.types.d.ts","sourceRoot":"","sources":["../../src/types/item-filter.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEtD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,EAAE,OAAO,CAAC;IACf,GAAG,CAAC,EAAE,aAAa,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF
|
|
1
|
+
{"version":3,"file":"item-filter.types.d.ts","sourceRoot":"","sources":["../../src/types/item-filter.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEtD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,EAAE,OAAO,CAAC;IACf,GAAG,CAAC,EAAE,aAAa,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,sBAAsB,CAAC;IACjC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,CAAC,EAAE,iBAAiB,CAAC;IACzB,aAAa,EAAE,WAAW,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;CACvD,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { SearchWithUser } from './search.types';
|
|
2
2
|
import type { SellerSnapshotJSONB } from './seller-snapshot.types';
|
|
3
|
+
import type { SellerSummaryJSONB } from './seller-summary.types';
|
|
3
4
|
/** Representasi tabel `Item`. */
|
|
4
5
|
export type ItemEntity = {
|
|
5
6
|
id: number;
|
|
@@ -10,6 +11,8 @@ export type ItemEntity = {
|
|
|
10
11
|
sellerKey: string | null;
|
|
11
12
|
sellerName: string | null;
|
|
12
13
|
sellerSnapshot?: SellerSnapshotJSONB | null;
|
|
14
|
+
/** Ringkasan seller (avatar, rating, verified) — turunan `sellerSnapshot`. */
|
|
15
|
+
sellerOther?: SellerSummaryJSONB | null;
|
|
13
16
|
type: string | null;
|
|
14
17
|
name: string | null;
|
|
15
18
|
image: string | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"item.types.d.ts","sourceRoot":"","sources":["../../src/types/item.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"item.types.d.ts","sourceRoot":"","sources":["../../src/types/item.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,iCAAiC;AACjC,MAAM,MAAM,UAAU,GAAG;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,cAAc,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAC5C,8EAA8E;IAC9E,WAAW,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACxC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACtC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAAC;AAEF,sDAAsD;AACtD,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG;IACxC,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC;CAC/B,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { InvalidFilterReason, ItemCheckStatus } from './item-check.types';
|
|
2
2
|
import type { SearchWithUser } from './search.types';
|
|
3
3
|
import type { SellerSnapshotJSONB } from './seller-snapshot.types';
|
|
4
|
+
import type { SellerSummaryJSONB } from './seller-summary.types';
|
|
4
5
|
/**
|
|
5
6
|
* Item hasil scrape yang belum tentu ada di DB (`id` null sampai core simpan).
|
|
6
7
|
* Satu-satunya bentuk item yang lalu-lalang di RMQ/IPC.
|
|
@@ -17,6 +18,8 @@ export type ScrapedItem = {
|
|
|
17
18
|
sellerKey?: string | null;
|
|
18
19
|
sellerName?: string | null;
|
|
19
20
|
sellerSnapshot?: SellerSnapshotJSONB | null;
|
|
21
|
+
/** Ringkasan seller (avatar, rating, verified) — turunan `sellerSnapshot`. */
|
|
22
|
+
sellerOther?: SellerSummaryJSONB | null;
|
|
20
23
|
type?: string | null;
|
|
21
24
|
name?: string | null;
|
|
22
25
|
image?: string | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scrape.types.d.ts","sourceRoot":"","sources":["../../src/types/scrape.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"scrape.types.d.ts","sourceRoot":"","sources":["../../src/types/scrape.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAEjE;;;;;;GAMG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,cAAc,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAC5C,8EAA8E;IAC9E,WAAW,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACxC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACvC,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,mBAAmB,EAAE,CAAC;CACjC,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG,cAAc,GAAG;IAC7C,KAAK,EAAE,WAAW,EAAE,CAAC;CACtB,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rating seller ternormalisasi lintas marketplace.
|
|
3
|
+
* `private` = marketplace menyembunyikan angka rating dari publik.
|
|
4
|
+
*/
|
|
5
|
+
export type SellerRating = {
|
|
6
|
+
average: number | null;
|
|
7
|
+
count: number | null;
|
|
8
|
+
private: boolean;
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* Ringkasan seller untuk kolom jsonb `sellerOther` (Item, UserItem,
|
|
12
|
+
* BannedSeller). Bentuknya netral marketplace supaya UI tidak perlu tahu
|
|
13
|
+
* struktur mentah tiap marketplace; data mentah tetap disimpan utuh di
|
|
14
|
+
* kolom `sellerSnapshot`.
|
|
15
|
+
*
|
|
16
|
+
* Index signature sengaja ada: penambahan field baru tidak memaksa perubahan
|
|
17
|
+
* bentuk, selama field lama tidak diubah artinya.
|
|
18
|
+
*/
|
|
19
|
+
export type SellerSummary = {
|
|
20
|
+
/** URL foto profil; URL marketplace bisa kedaluwarsa → display-only. */
|
|
21
|
+
avatar: string | null;
|
|
22
|
+
name: string | null;
|
|
23
|
+
/** `marketplace_user_profile.id` dari marketplace. */
|
|
24
|
+
profileId: string | null;
|
|
25
|
+
/** Waktu akun seller dibuat, ISO 8601. */
|
|
26
|
+
joinedAt: string | null;
|
|
27
|
+
rating: SellerRating | null;
|
|
28
|
+
/** Badge verified/blue dari marketplace. */
|
|
29
|
+
verified: boolean;
|
|
30
|
+
/** Jumlah order yang sudah dikirim (kalau marketplace menyediakan). */
|
|
31
|
+
ordersShipped: number | null;
|
|
32
|
+
[key: string]: unknown;
|
|
33
|
+
};
|
|
34
|
+
/** Bentuk jsonb yang disimpan; alias supaya nama kolom DB kebaca di tipe. */
|
|
35
|
+
export type SellerSummaryJSONB = SellerSummary;
|
|
36
|
+
//# sourceMappingURL=seller-summary.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seller-summary.types.d.ts","sourceRoot":"","sources":["../../src/types/seller-summary.types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,wEAAwE;IACxE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,sDAAsD;IACtD,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC;IAC5B,4CAA4C;IAC5C,QAAQ,EAAE,OAAO,CAAC;IAClB,uEAAuE;IACvE,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,CAAC;AAEF,6EAA6E;AAC7E,MAAM,MAAM,kBAAkB,GAAG,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seller-summary.types.js","sourceRoot":"","sources":["../../src/types/seller-summary.types.ts"],"names":[],"mappings":""}
|
|
@@ -6,5 +6,10 @@ export type UserItemEntity = ItemEntity & {
|
|
|
6
6
|
readedAt: string | null;
|
|
7
7
|
favoritedAt: string | null;
|
|
8
8
|
richNote: RichNoteJSONB | null;
|
|
9
|
+
/**
|
|
10
|
+
* Item ini yang jadi alasan user mem-ban penjualnya (kolom
|
|
11
|
+
* `isBannedSellerReason`). Diisi endpoint ban/unban, bukan oleh scraper.
|
|
12
|
+
*/
|
|
13
|
+
isBannedSellerReason?: boolean;
|
|
9
14
|
};
|
|
10
15
|
//# sourceMappingURL=user-item.types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user-item.types.d.ts","sourceRoot":"","sources":["../../src/types/user-item.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,uEAAuE;AACvE,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEpD,+DAA+D;AAC/D,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG;IACxC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,EAAE,aAAa,GAAG,IAAI,CAAC;CAChC,CAAC"}
|
|
1
|
+
{"version":3,"file":"user-item.types.d.ts","sourceRoot":"","sources":["../../src/types/user-item.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,uEAAuE;AACvE,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEpD,+DAA+D;AAC/D,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG;IACxC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,EAAE,aAAa,GAAG,IAAI,CAAC;IAC/B;;;OAGG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Subpath `@thinkerchain/flipper-entities/utilities` — semua helper runtime
|
|
3
|
+
* (fungsi yang jalan di service), dipisah dari root yang isinya tipe.
|
|
4
|
+
*/
|
|
5
|
+
export { isRecord, toIsoString, toNumberValue, toStringValue } from './scalar';
|
|
6
|
+
export { SELLER_SNAPSHOT_VERSION, createSellerSnapshot, parseSellerSnapshot, toSellerIdentities, toSellerMatchKey, } from './seller-snapshot';
|
|
7
|
+
export type { SellerMatchMechanism } from './seller-snapshot';
|
|
8
|
+
export { toSellerSummary } from './seller-summary';
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utilities/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE/E,OAAO,EACL,uBAAuB,EACvB,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAE9D,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.toSellerSummary = exports.toSellerMatchKey = exports.toSellerIdentities = exports.parseSellerSnapshot = exports.createSellerSnapshot = exports.SELLER_SNAPSHOT_VERSION = exports.toStringValue = exports.toNumberValue = exports.toIsoString = exports.isRecord = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Subpath `@thinkerchain/flipper-entities/utilities` — semua helper runtime
|
|
6
|
+
* (fungsi yang jalan di service), dipisah dari root yang isinya tipe.
|
|
7
|
+
*/
|
|
8
|
+
var scalar_1 = require("./scalar");
|
|
9
|
+
Object.defineProperty(exports, "isRecord", { enumerable: true, get: function () { return scalar_1.isRecord; } });
|
|
10
|
+
Object.defineProperty(exports, "toIsoString", { enumerable: true, get: function () { return scalar_1.toIsoString; } });
|
|
11
|
+
Object.defineProperty(exports, "toNumberValue", { enumerable: true, get: function () { return scalar_1.toNumberValue; } });
|
|
12
|
+
Object.defineProperty(exports, "toStringValue", { enumerable: true, get: function () { return scalar_1.toStringValue; } });
|
|
13
|
+
var seller_snapshot_1 = require("./seller-snapshot");
|
|
14
|
+
Object.defineProperty(exports, "SELLER_SNAPSHOT_VERSION", { enumerable: true, get: function () { return seller_snapshot_1.SELLER_SNAPSHOT_VERSION; } });
|
|
15
|
+
Object.defineProperty(exports, "createSellerSnapshot", { enumerable: true, get: function () { return seller_snapshot_1.createSellerSnapshot; } });
|
|
16
|
+
Object.defineProperty(exports, "parseSellerSnapshot", { enumerable: true, get: function () { return seller_snapshot_1.parseSellerSnapshot; } });
|
|
17
|
+
Object.defineProperty(exports, "toSellerIdentities", { enumerable: true, get: function () { return seller_snapshot_1.toSellerIdentities; } });
|
|
18
|
+
Object.defineProperty(exports, "toSellerMatchKey", { enumerable: true, get: function () { return seller_snapshot_1.toSellerMatchKey; } });
|
|
19
|
+
var seller_summary_1 = require("./seller-summary");
|
|
20
|
+
Object.defineProperty(exports, "toSellerSummary", { enumerable: true, get: function () { return seller_summary_1.toSellerSummary; } });
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utilities/index.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,mCAA+E;AAAtE,kGAAA,QAAQ,OAAA;AAAE,qGAAA,WAAW,OAAA;AAAE,uGAAA,aAAa,OAAA;AAAE,uGAAA,aAAa,OAAA;AAE5D,qDAM2B;AALzB,0HAAA,uBAAuB,OAAA;AACvB,uHAAA,oBAAoB,OAAA;AACpB,sHAAA,mBAAmB,OAAA;AACnB,qHAAA,kBAAkB,OAAA;AAClB,mHAAA,gBAAgB,OAAA;AAIlB,mDAAmD;AAA1C,iHAAA,eAAe,OAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/** Helper nilai mentah marketplace → tipe aman. Dipakai utilities lain. */
|
|
2
|
+
export declare function isRecord(value: unknown): value is Record<string, unknown>;
|
|
3
|
+
/** String ter-trim; angka finite jadi string (FB kadang kirim id sebagai number). */
|
|
4
|
+
export declare function toStringValue(raw: unknown): string | null;
|
|
5
|
+
/** Angka finite; string numerik diterima (marketplace sering kirim string). */
|
|
6
|
+
export declare function toNumberValue(raw: unknown): number | null;
|
|
7
|
+
/**
|
|
8
|
+
* Epoch (detik atau milidetik) → ISO 8601. Nilai <= 0 / tidak masuk akal → null.
|
|
9
|
+
* Ambang 1e11: detik saat ini ~1.7e9, milidetik ~1.7e12.
|
|
10
|
+
*/
|
|
11
|
+
export declare function toIsoString(raw: unknown): string | null;
|
|
12
|
+
//# sourceMappingURL=scalar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scalar.d.ts","sourceRoot":"","sources":["../../src/utilities/scalar.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAE3E,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEzE;AAED,qFAAqF;AACrF,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAOzD;AAED,+EAA+E;AAC/E,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CASzD;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAKvD"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/** Helper nilai mentah marketplace → tipe aman. Dipakai utilities lain. */
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.isRecord = isRecord;
|
|
5
|
+
exports.toStringValue = toStringValue;
|
|
6
|
+
exports.toNumberValue = toNumberValue;
|
|
7
|
+
exports.toIsoString = toIsoString;
|
|
8
|
+
function isRecord(value) {
|
|
9
|
+
return Boolean(value) && typeof value === 'object' && !Array.isArray(value);
|
|
10
|
+
}
|
|
11
|
+
/** String ter-trim; angka finite jadi string (FB kadang kirim id sebagai number). */
|
|
12
|
+
function toStringValue(raw) {
|
|
13
|
+
if (typeof raw === 'string') {
|
|
14
|
+
const trimmed = raw.trim();
|
|
15
|
+
return trimmed.length > 0 ? trimmed : null;
|
|
16
|
+
}
|
|
17
|
+
if (typeof raw === 'number' && Number.isFinite(raw))
|
|
18
|
+
return String(raw);
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
21
|
+
/** Angka finite; string numerik diterima (marketplace sering kirim string). */
|
|
22
|
+
function toNumberValue(raw) {
|
|
23
|
+
if (typeof raw === 'number')
|
|
24
|
+
return Number.isFinite(raw) ? raw : null;
|
|
25
|
+
if (typeof raw === 'string') {
|
|
26
|
+
const trimmed = raw.trim();
|
|
27
|
+
if (trimmed.length === 0)
|
|
28
|
+
return null;
|
|
29
|
+
const parsed = Number(trimmed);
|
|
30
|
+
return Number.isFinite(parsed) ? parsed : null;
|
|
31
|
+
}
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Epoch (detik atau milidetik) → ISO 8601. Nilai <= 0 / tidak masuk akal → null.
|
|
36
|
+
* Ambang 1e11: detik saat ini ~1.7e9, milidetik ~1.7e12.
|
|
37
|
+
*/
|
|
38
|
+
function toIsoString(raw) {
|
|
39
|
+
const value = toNumberValue(raw);
|
|
40
|
+
if (value === null || value <= 0)
|
|
41
|
+
return null;
|
|
42
|
+
const date = new Date(value > 1e11 ? value : value * 1000);
|
|
43
|
+
return Number.isNaN(date.getTime()) ? null : date.toISOString();
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=scalar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scalar.js","sourceRoot":"","sources":["../../src/utilities/scalar.ts"],"names":[],"mappings":";AAAA,2EAA2E;;AAE3E,4BAEC;AAGD,sCAOC;AAGD,sCASC;AAMD,kCAKC;AAnCD,SAAgB,QAAQ,CAAC,KAAc;IACrC,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,qFAAqF;AACrF,SAAgB,aAAa,CAAC,GAAY;IACxC,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QAC3B,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7C,CAAC;IACD,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;IACxE,OAAO,IAAI,CAAC;AACd,CAAC;AAED,+EAA+E;AAC/E,SAAgB,aAAa,CAAC,GAAY;IACxC,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;IACtE,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QAC3B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACtC,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;QAC/B,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;IACjD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,SAAgB,WAAW,CAAC,GAAY;IACtC,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9C,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;IAC3D,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;AAClE,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { SellerIdentity, SellerSnapshotJSONB } from '../types/seller-snapshot.types';
|
|
2
|
+
export declare const SELLER_SNAPSHOT_VERSION = 1;
|
|
3
|
+
/**
|
|
4
|
+
* Bungkus objek seller mentah jadi snapshot berversi.
|
|
5
|
+
* Null kalau marketplace tidak mengirim objek (kadang null/string).
|
|
6
|
+
* ponytail: versi ini menulis v1; tambahkan cabang kalau v2 muncul.
|
|
7
|
+
*/
|
|
8
|
+
export declare function createSellerSnapshot(source: string, seller: unknown): SellerSnapshotJSONB | null;
|
|
9
|
+
/**
|
|
10
|
+
* Baca snapshot dari DB/IPC. Null kalau bentuknya tidak dikenal (mis. versi
|
|
11
|
+
* lebih baru) — pemanggil fail-open, bukan throw. Ini SATU-SATUNYA cabang
|
|
12
|
+
* versi snapshot; semua service lain lewat sini.
|
|
13
|
+
*/
|
|
14
|
+
export declare function parseSellerSnapshot(value: unknown): SellerSnapshotJSONB | null;
|
|
15
|
+
/**
|
|
16
|
+
* Nilai identitas seller untuk matching ban. Nilai duplikat (FB sering mengisi
|
|
17
|
+
* `id` = `user_id`) dibuang, property pertama yang menang.
|
|
18
|
+
*/
|
|
19
|
+
export declare function toSellerIdentities(snapshot: SellerSnapshotJSONB | null | undefined): SellerIdentity[];
|
|
20
|
+
/**
|
|
21
|
+
* Mekanisme matching ban. Dipilih MURNI dari ada/tidaknya kolom
|
|
22
|
+
* `sellerSnapshot` pada BARIS BAN — bukan dari isi item:
|
|
23
|
+
* - `snapshot`: ban punya snapshot → cocokkan nilai identitas snapshot.
|
|
24
|
+
* - `legacy`: ban lama tanpa snapshot → cocokkan kolom `sellerKey`.
|
|
25
|
+
* Prefix key menjaga dua mekanisme itu tidak pernah saling cocok.
|
|
26
|
+
*/
|
|
27
|
+
export type SellerMatchMechanism = 'snapshot' | 'legacy';
|
|
28
|
+
/**
|
|
29
|
+
* Key pencocokan ban: `${prefix mekanisme}:${marketplace huruf kecil}:${value}`.
|
|
30
|
+
* Sengaja tidak dipisah per property di dalam mekanisme `snapshot`, karena
|
|
31
|
+
* matching lintas property diinginkan (mis. `id` listing vs `user_id` ban).
|
|
32
|
+
*/
|
|
33
|
+
export declare function toSellerMatchKey(marketplace: string, value: string, mechanism: SellerMatchMechanism): string;
|
|
34
|
+
//# sourceMappingURL=seller-snapshot.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seller-snapshot.d.ts","sourceRoot":"","sources":["../../src/utilities/seller-snapshot.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,mBAAmB,EACpB,MAAM,gCAAgC,CAAC;AAGxC,eAAO,MAAM,uBAAuB,IAAI,CAAC;AAEzC;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,OAAO,GACd,mBAAmB,GAAG,IAAI,CAS5B;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,OAAO,GACb,mBAAmB,GAAG,IAAI,CAc5B;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,mBAAmB,GAAG,IAAI,GAAG,SAAS,GAC/C,cAAc,EAAE,CAuBlB;AAED;;;;;;GAMG;AACH,MAAM,MAAM,oBAAoB,GAAG,UAAU,GAAG,QAAQ,CAAC;AAOzD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,oBAAoB,GAC9B,MAAM,CAER"}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SELLER_SNAPSHOT_VERSION =
|
|
3
|
+
exports.SELLER_SNAPSHOT_VERSION = void 0;
|
|
4
4
|
exports.createSellerSnapshot = createSellerSnapshot;
|
|
5
5
|
exports.parseSellerSnapshot = parseSellerSnapshot;
|
|
6
6
|
exports.toSellerIdentities = toSellerIdentities;
|
|
7
7
|
exports.toSellerMatchKey = toSellerMatchKey;
|
|
8
|
-
|
|
8
|
+
const scalar_1 = require("./scalar");
|
|
9
9
|
exports.SELLER_SNAPSHOT_VERSION = 1;
|
|
10
10
|
/**
|
|
11
11
|
* Bungkus objek seller mentah jadi snapshot berversi.
|
|
12
|
-
* Null kalau
|
|
13
|
-
* ponytail:
|
|
12
|
+
* Null kalau marketplace tidak mengirim objek (kadang null/string).
|
|
13
|
+
* ponytail: versi ini menulis v1; tambahkan cabang kalau v2 muncul.
|
|
14
14
|
*/
|
|
15
15
|
function createSellerSnapshot(source, seller) {
|
|
16
16
|
if (!seller || typeof seller !== 'object' || Array.isArray(seller)) {
|
|
@@ -24,7 +24,8 @@ function createSellerSnapshot(source, seller) {
|
|
|
24
24
|
}
|
|
25
25
|
/**
|
|
26
26
|
* Baca snapshot dari DB/IPC. Null kalau bentuknya tidak dikenal (mis. versi
|
|
27
|
-
* lebih baru) — pemanggil fail-open, bukan throw.
|
|
27
|
+
* lebih baru) — pemanggil fail-open, bukan throw. Ini SATU-SATUNYA cabang
|
|
28
|
+
* versi snapshot; semua service lain lewat sini.
|
|
28
29
|
*/
|
|
29
30
|
function parseSellerSnapshot(value) {
|
|
30
31
|
if (!value || typeof value !== 'object' || Array.isArray(value))
|
|
@@ -44,15 +45,6 @@ function parseSellerSnapshot(value) {
|
|
|
44
45
|
data: data,
|
|
45
46
|
};
|
|
46
47
|
}
|
|
47
|
-
function toIdentityValue(raw) {
|
|
48
|
-
if (typeof raw === 'string') {
|
|
49
|
-
const trimmed = raw.trim();
|
|
50
|
-
return trimmed.length > 0 ? trimmed : null;
|
|
51
|
-
}
|
|
52
|
-
if (typeof raw === 'number' && Number.isFinite(raw))
|
|
53
|
-
return String(raw);
|
|
54
|
-
return null;
|
|
55
|
-
}
|
|
56
48
|
/**
|
|
57
49
|
* Nilai identitas seller untuk matching ban. Nilai duplikat (FB sering mengisi
|
|
58
50
|
* `id` = `user_id`) dibuang, property pertama yang menang.
|
|
@@ -75,7 +67,7 @@ function toSellerIdentities(snapshot) {
|
|
|
75
67
|
const identities = [];
|
|
76
68
|
const seen = new Set();
|
|
77
69
|
for (const [property, raw] of candidates) {
|
|
78
|
-
const value =
|
|
70
|
+
const value = (0, scalar_1.toStringValue)(raw);
|
|
79
71
|
if (!value || seen.has(value))
|
|
80
72
|
continue;
|
|
81
73
|
seen.add(value);
|
|
@@ -83,11 +75,16 @@ function toSellerIdentities(snapshot) {
|
|
|
83
75
|
}
|
|
84
76
|
return identities;
|
|
85
77
|
}
|
|
78
|
+
const MECHANISM_PREFIX = {
|
|
79
|
+
snapshot: 'S',
|
|
80
|
+
legacy: 'L',
|
|
81
|
+
};
|
|
86
82
|
/**
|
|
87
|
-
* Key pencocokan ban
|
|
88
|
-
*
|
|
83
|
+
* Key pencocokan ban: `${prefix mekanisme}:${marketplace huruf kecil}:${value}`.
|
|
84
|
+
* Sengaja tidak dipisah per property di dalam mekanisme `snapshot`, karena
|
|
85
|
+
* matching lintas property diinginkan (mis. `id` listing vs `user_id` ban).
|
|
89
86
|
*/
|
|
90
|
-
function toSellerMatchKey(marketplace, value) {
|
|
91
|
-
return `${marketplace.toLowerCase()}:${value}`;
|
|
87
|
+
function toSellerMatchKey(marketplace, value, mechanism) {
|
|
88
|
+
return `${MECHANISM_PREFIX[mechanism]}:${marketplace.toLowerCase()}:${value}`;
|
|
92
89
|
}
|
|
93
90
|
//# 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,11 @@
|
|
|
1
|
+
import type { SellerSnapshotJSONB } from '../types/seller-snapshot.types';
|
|
2
|
+
import type { SellerSummaryJSONB } from '../types/seller-summary.types';
|
|
3
|
+
/**
|
|
4
|
+
* Ringkasan seller (kolom jsonb `sellerOther`) dari snapshot mentah.
|
|
5
|
+
* Null kalau tidak ada snapshot — baris legacy tidak punya ringkasan.
|
|
6
|
+
* Satu-satunya tempat derivasi `sellerOther`; dipakai core (Item/UserItem)
|
|
7
|
+
* dan be (BannedSeller). Field yang hilang → null, bukan dihilangkan, supaya
|
|
8
|
+
* bentuk barisnya stabil antar marketplace.
|
|
9
|
+
*/
|
|
10
|
+
export declare function toSellerSummary(snapshot: SellerSnapshotJSONB | null | undefined): SellerSummaryJSONB | null;
|
|
11
|
+
//# 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,EAEV,kBAAkB,EACnB,MAAM,+BAA+B,CAAC;AA6CvC;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,mBAAmB,GAAG,IAAI,GAAG,SAAS,GAC/C,kBAAkB,GAAG,IAAI,CAkB3B"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.toSellerSummary = toSellerSummary;
|
|
4
|
+
const scalar_1 = require("./scalar");
|
|
5
|
+
function pickAvatarUri(source) {
|
|
6
|
+
const candidates = [
|
|
7
|
+
(0, scalar_1.isRecord)(source.profile_picture) ? source.profile_picture.uri : null,
|
|
8
|
+
(0, scalar_1.isRecord)(source.profile_picture_160) ? source.profile_picture_160.uri : null,
|
|
9
|
+
(0, scalar_1.isRecord)(source.commerce_profile_picture_with_fallback_160)
|
|
10
|
+
? source.commerce_profile_picture_with_fallback_160.uri
|
|
11
|
+
: null,
|
|
12
|
+
];
|
|
13
|
+
for (const candidate of candidates) {
|
|
14
|
+
const value = (0, scalar_1.toStringValue)(candidate);
|
|
15
|
+
if (value)
|
|
16
|
+
return value;
|
|
17
|
+
}
|
|
18
|
+
return null;
|
|
19
|
+
}
|
|
20
|
+
function pickRating(source) {
|
|
21
|
+
const stats = (0, scalar_1.isRecord)(source.marketplace_ratings_stats_by_role_v2)
|
|
22
|
+
? source.marketplace_ratings_stats_by_role_v2
|
|
23
|
+
: null;
|
|
24
|
+
const combined = stats && (0, scalar_1.isRecord)(stats.seller_buyer_combined)
|
|
25
|
+
? stats.seller_buyer_combined
|
|
26
|
+
: null;
|
|
27
|
+
const sellerStats = stats && (0, scalar_1.isRecord)(stats.seller_stats) ? stats.seller_stats : null;
|
|
28
|
+
const primary = combined ?? sellerStats;
|
|
29
|
+
const average = (0, scalar_1.toNumberValue)(primary?.five_star_ratings_average);
|
|
30
|
+
const count = (0, scalar_1.toNumberValue)(primary?.five_star_total_rating_count_by_role);
|
|
31
|
+
const isPrivate = (stats ? stats.seller_ratings_are_private === true : false) ||
|
|
32
|
+
(combined ? combined.ratings_are_private === true : false);
|
|
33
|
+
if (average === null && count === null && !isPrivate)
|
|
34
|
+
return null;
|
|
35
|
+
return { average, count, private: isPrivate };
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Ringkasan seller (kolom jsonb `sellerOther`) dari snapshot mentah.
|
|
39
|
+
* Null kalau tidak ada snapshot — baris legacy tidak punya ringkasan.
|
|
40
|
+
* Satu-satunya tempat derivasi `sellerOther`; dipakai core (Item/UserItem)
|
|
41
|
+
* dan be (BannedSeller). Field yang hilang → null, bukan dihilangkan, supaya
|
|
42
|
+
* bentuk barisnya stabil antar marketplace.
|
|
43
|
+
*/
|
|
44
|
+
function toSellerSummary(snapshot) {
|
|
45
|
+
if (!snapshot || !(0, scalar_1.isRecord)(snapshot.data))
|
|
46
|
+
return null;
|
|
47
|
+
const data = snapshot.data;
|
|
48
|
+
const profile = (0, scalar_1.isRecord)(data.marketplace_user_profile)
|
|
49
|
+
? data.marketplace_user_profile
|
|
50
|
+
: null;
|
|
51
|
+
return {
|
|
52
|
+
avatar: pickAvatarUri(data),
|
|
53
|
+
name: (0, scalar_1.toStringValue)(data.name),
|
|
54
|
+
profileId: profile ? (0, scalar_1.toStringValue)(profile.id) : null,
|
|
55
|
+
joinedAt: (0, scalar_1.toIsoString)(data.join_time),
|
|
56
|
+
rating: pickRating(data),
|
|
57
|
+
verified: data.marketplace_should_display_verified_badge === true ||
|
|
58
|
+
data.should_display_true_blue_badge_mp === true,
|
|
59
|
+
ordersShipped: profile ? (0, scalar_1.toNumberValue)(profile.c2c_orders_shipped) : null,
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
//# 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,22 +1,39 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@thinkerchain/flipper-entities",
|
|
3
|
-
"version": "2.
|
|
4
|
-
"private": false,
|
|
5
|
-
"main": "dist/index.js",
|
|
6
|
-
"types": "dist/index.d.ts",
|
|
7
|
-
"
|
|
8
|
-
"
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
"
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
"
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
},
|
|
21
|
-
"
|
|
22
|
-
|
|
1
|
+
{
|
|
2
|
+
"name": "@thinkerchain/flipper-entities",
|
|
3
|
+
"version": "2.5.1",
|
|
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
|
+
}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import type { SellerIdentity, SellerSnapshotJSONB } from './types/seller-snapshot.types';
|
|
2
|
-
export declare const SELLER_SNAPSHOT_SOURCE_FACEBOOK = "facebook";
|
|
3
|
-
export declare const SELLER_SNAPSHOT_VERSION = 1;
|
|
4
|
-
/**
|
|
5
|
-
* Bungkus objek seller mentah jadi snapshot berversi.
|
|
6
|
-
* Null kalau FB tidak mengirim objek (kadang null/string).
|
|
7
|
-
* ponytail: vetur ini menulis v1; tambahkan cabang kalau v2 muncul.
|
|
8
|
-
*/
|
|
9
|
-
export declare function createSellerSnapshot(source: string, seller: unknown): SellerSnapshotJSONB | null;
|
|
10
|
-
/**
|
|
11
|
-
* Baca snapshot dari DB/IPC. Null kalau bentuknya tidak dikenal (mis. versi
|
|
12
|
-
* lebih baru) — pemanggil fail-open, bukan throw.
|
|
13
|
-
*/
|
|
14
|
-
export declare function parseSellerSnapshot(value: unknown): SellerSnapshotJSONB | null;
|
|
15
|
-
/**
|
|
16
|
-
* Nilai identitas seller untuk matching ban. Nilai duplikat (FB sering mengisi
|
|
17
|
-
* `id` = `user_id`) dibuang, property pertama yang menang.
|
|
18
|
-
*/
|
|
19
|
-
export declare function toSellerIdentities(snapshot: SellerSnapshotJSONB | null | undefined): SellerIdentity[];
|
|
20
|
-
/**
|
|
21
|
-
* Key pencocokan ban, format sama dengan `bannedSellerKeys` lama:
|
|
22
|
-
* `${marketplace huruf kecil}:${value}`.
|
|
23
|
-
*/
|
|
24
|
-
export declare function toSellerMatchKey(marketplace: string, value: string): string;
|
|
25
|
-
//# sourceMappingURL=seller-snapshot.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"seller-snapshot.d.ts","sourceRoot":"","sources":["../src/seller-snapshot.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,mBAAmB,EACpB,MAAM,+BAA+B,CAAC;AAEvC,eAAO,MAAM,+BAA+B,aAAa,CAAC;AAC1D,eAAO,MAAM,uBAAuB,IAAI,CAAC;AAEzC;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,OAAO,GACd,mBAAmB,GAAG,IAAI,CAS5B;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,OAAO,GACb,mBAAmB,GAAG,IAAI,CAc5B;AAWD;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,mBAAmB,GAAG,IAAI,GAAG,SAAS,GAC/C,cAAc,EAAE,CAuBlB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAE3E"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"seller-snapshot.js","sourceRoot":"","sources":["../src/seller-snapshot.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
/** Katalog plan: `base` = langganan utama, `addon` = paket tambahan (mis. Extra Search). */
|
|
2
|
-
export type PlanKind = 'base' | 'addon';
|
|
3
|
-
/** Nilai limit per plan (kolom jsonb `Plan.limits`). */
|
|
4
|
-
export interface PlanLimits {
|
|
5
|
-
/** Jumlah search aktif maksimum untuk satu langganan. */
|
|
6
|
-
maxActiveSearches: number;
|
|
7
|
-
/** Jumlah user channel maksimum untuk satu langganan. */
|
|
8
|
-
maxChannels: number;
|
|
9
|
-
/** Delay minimum antar-scrape (ms) yang boleh dipakai search plan ini. */
|
|
10
|
-
minDelayMilis: number;
|
|
11
|
-
/** Jumlah marketplace maksimum per search. */
|
|
12
|
-
maxMarketplacesPerSearch: number;
|
|
13
|
-
/** Jumlah item maksimum yang disimpan per search. */
|
|
14
|
-
maxItemsPerSearch: number;
|
|
15
|
-
/** Slot search tambahan per unit, dipakai plan `kind='addon'`. */
|
|
16
|
-
addonSearchSlots?: number;
|
|
17
|
-
/** true = limit tidak dibatasi; menang atas angka lain. */
|
|
18
|
-
isUnlimited?: boolean;
|
|
19
|
-
}
|
|
20
|
-
/** Benefit marketing untuk kartu pricing. */
|
|
21
|
-
export interface PlanFeature {
|
|
22
|
-
key: string;
|
|
23
|
-
label: string;
|
|
24
|
-
included: boolean;
|
|
25
|
-
}
|
|
26
|
-
/** Representasi tabel `Plan`. */
|
|
27
|
-
export type PlanEntity = {
|
|
28
|
-
id: number;
|
|
29
|
-
key: string;
|
|
30
|
-
name: string;
|
|
31
|
-
description: string | null;
|
|
32
|
-
kind: PlanKind;
|
|
33
|
-
priceCents: number;
|
|
34
|
-
currency: string;
|
|
35
|
-
/** 'month' | 'year' | null (null = paket sekali beli seperti addon). */
|
|
36
|
-
interval: string | null;
|
|
37
|
-
sortOrder: number;
|
|
38
|
-
isActive: boolean;
|
|
39
|
-
features: PlanFeature[] | null;
|
|
40
|
-
limits: PlanLimits;
|
|
41
|
-
deleted: boolean;
|
|
42
|
-
createdAt: string;
|
|
43
|
-
createdBy: string | null;
|
|
44
|
-
updatedAt: string;
|
|
45
|
-
updatedBy: string | null;
|
|
46
|
-
};
|
|
47
|
-
//# sourceMappingURL=plan.types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"plan.types.d.ts","sourceRoot":"","sources":["../../src/types/plan.types.ts"],"names":[],"mappings":"AAAA,4FAA4F;AAC5F,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;AAExC,wDAAwD;AACxD,MAAM,WAAW,UAAU;IACzB,yDAAyD;IACzD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,yDAAyD;IACzD,WAAW,EAAE,MAAM,CAAC;IACpB,0EAA0E;IAC1E,aAAa,EAAE,MAAM,CAAC;IACtB,8CAA8C;IAC9C,wBAAwB,EAAE,MAAM,CAAC;IACjC,qDAAqD;IACrD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kEAAkE;IAClE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,2DAA2D;IAC3D,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,6CAA6C;AAC7C,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,iCAAiC;AACjC,MAAM,MAAM,UAAU,GAAG;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,IAAI,EAAE,QAAQ,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,wEAAwE;IACxE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;IAC/B,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"plan.types.js","sourceRoot":"","sources":["../../src/types/plan.types.ts"],"names":[],"mappings":""}
|