@thinkerchain/flipper-entities 2.7.0 → 2.7.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/package.json +39 -39
- package/utilities/package.json +5 -5
- package/dist/enums/marketplace.d.ts +0 -16
- package/dist/enums/marketplace.d.ts.map +0 -1
- package/dist/enums/marketplace.js +0 -23
- package/dist/enums/marketplace.js.map +0 -1
- package/dist/index.d.ts +0 -29
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -24
- package/dist/index.js.map +0 -1
- package/dist/types/banned-seller.types.d.ts +0 -26
- package/dist/types/banned-seller.types.d.ts.map +0 -1
- package/dist/types/banned-seller.types.js +0 -3
- package/dist/types/banned-seller.types.js.map +0 -1
- package/dist/types/billing-options.types.d.ts +0 -14
- package/dist/types/billing-options.types.d.ts.map +0 -1
- package/dist/types/billing-options.types.js +0 -3
- package/dist/types/billing-options.types.js.map +0 -1
- package/dist/types/core-options.types.d.ts +0 -98
- package/dist/types/core-options.types.d.ts.map +0 -1
- package/dist/types/core-options.types.js +0 -3
- package/dist/types/core-options.types.js.map +0 -1
- package/dist/types/engine.types.d.ts +0 -68
- package/dist/types/engine.types.d.ts.map +0 -1
- package/dist/types/engine.types.js +0 -3
- package/dist/types/engine.types.js.map +0 -1
- package/dist/types/item-check.types.d.ts +0 -15
- package/dist/types/item-check.types.d.ts.map +0 -1
- package/dist/types/item-check.types.js +0 -3
- package/dist/types/item-check.types.js.map +0 -1
- package/dist/types/item-filter.types.d.ts +0 -30
- package/dist/types/item-filter.types.d.ts.map +0 -1
- package/dist/types/item-filter.types.js +0 -3
- package/dist/types/item-filter.types.js.map +0 -1
- package/dist/types/item.types.d.ts +0 -40
- package/dist/types/item.types.d.ts.map +0 -1
- package/dist/types/item.types.js +0 -3
- package/dist/types/item.types.js.map +0 -1
- package/dist/types/option.types.d.ts +0 -13
- package/dist/types/option.types.d.ts.map +0 -1
- package/dist/types/option.types.js +0 -3
- package/dist/types/option.types.js.map +0 -1
- package/dist/types/product.types.d.ts +0 -81
- package/dist/types/product.types.d.ts.map +0 -1
- package/dist/types/product.types.js +0 -3
- package/dist/types/product.types.js.map +0 -1
- package/dist/types/scrape.types.d.ts +0 -42
- package/dist/types/scrape.types.d.ts.map +0 -1
- package/dist/types/scrape.types.js +0 -3
- package/dist/types/scrape.types.js.map +0 -1
- package/dist/types/search-jsonb.types.d.ts +0 -96
- package/dist/types/search-jsonb.types.d.ts.map +0 -1
- package/dist/types/search-jsonb.types.js +0 -3
- package/dist/types/search-jsonb.types.js.map +0 -1
- package/dist/types/search.types.d.ts +0 -32
- package/dist/types/search.types.d.ts.map +0 -1
- package/dist/types/search.types.js +0 -3
- package/dist/types/search.types.js.map +0 -1
- package/dist/types/seller-snapshot.types.d.ts +0 -53
- package/dist/types/seller-snapshot.types.d.ts.map +0 -1
- package/dist/types/seller-snapshot.types.js +0 -3
- package/dist/types/seller-snapshot.types.js.map +0 -1
- package/dist/types/seller-summary.types.d.ts +0 -35
- package/dist/types/seller-summary.types.d.ts.map +0 -1
- package/dist/types/seller-summary.types.js +0 -3
- package/dist/types/seller-summary.types.js.map +0 -1
- package/dist/types/subscription.types.d.ts +0 -96
- package/dist/types/subscription.types.d.ts.map +0 -1
- package/dist/types/subscription.types.js +0 -3
- package/dist/types/subscription.types.js.map +0 -1
- package/dist/types/usage.types.d.ts +0 -33
- package/dist/types/usage.types.d.ts.map +0 -1
- package/dist/types/usage.types.js +0 -3
- package/dist/types/usage.types.js.map +0 -1
- package/dist/types/user-channel.types.d.ts +0 -28
- package/dist/types/user-channel.types.d.ts.map +0 -1
- package/dist/types/user-channel.types.js +0 -3
- package/dist/types/user-channel.types.js.map +0 -1
- package/dist/types/user-item.types.d.ts +0 -15
- package/dist/types/user-item.types.d.ts.map +0 -1
- package/dist/types/user-item.types.js +0 -3
- package/dist/types/user-item.types.js.map +0 -1
- package/dist/types/user.types.d.ts +0 -25
- package/dist/types/user.types.d.ts.map +0 -1
- package/dist/types/user.types.js +0 -3
- package/dist/types/user.types.js.map +0 -1
- package/dist/utilities/index.d.ts +0 -9
- package/dist/utilities/index.d.ts.map +0 -1
- package/dist/utilities/index.js +0 -21
- package/dist/utilities/index.js.map +0 -1
- package/dist/utilities/scalar.d.ts +0 -12
- package/dist/utilities/scalar.d.ts.map +0 -1
- package/dist/utilities/scalar.js +0 -45
- package/dist/utilities/scalar.js.map +0 -1
- package/dist/utilities/seller-snapshot.d.ts +0 -41
- package/dist/utilities/seller-snapshot.d.ts.map +0 -1
- package/dist/utilities/seller-snapshot.js +0 -126
- package/dist/utilities/seller-snapshot.js.map +0 -1
- package/dist/utilities/seller-summary.d.ts +0 -22
- package/dist/utilities/seller-summary.d.ts.map +0 -1
- package/dist/utilities/seller-summary.js +0 -85
- package/dist/utilities/seller-summary.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"user-item.types.js","sourceRoot":"","sources":["../../src/types/user-item.types.ts"],"names":[],"mappings":""}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import type { BannedSellerEntity } from './banned-seller.types';
|
|
2
|
-
import type { UserChannelEntity } from './user-channel.types';
|
|
3
|
-
/** Representasi tabel `User`. */
|
|
4
|
-
export type UserEntity = {
|
|
5
|
-
id: number;
|
|
6
|
-
username: string;
|
|
7
|
-
name: string | null;
|
|
8
|
-
email: string | null;
|
|
9
|
-
password: string;
|
|
10
|
-
isEmailValid: boolean;
|
|
11
|
-
roles: string[];
|
|
12
|
-
option: Record<string, unknown> | null;
|
|
13
|
-
deleted: boolean;
|
|
14
|
-
createdAt: string;
|
|
15
|
-
createdBy: string | null;
|
|
16
|
-
updatedAt: string;
|
|
17
|
-
updatedBy: string | null;
|
|
18
|
-
};
|
|
19
|
-
/** User + channel + ban seller: payload `search.user` dari orchestrator ke engine. */
|
|
20
|
-
export type UserWithRelations = UserEntity & {
|
|
21
|
-
userChannels: UserChannelEntity[];
|
|
22
|
-
/** Banned seller milik user ini; diisi orchestrator sekali per siklus. */
|
|
23
|
-
bans?: BannedSellerEntity[];
|
|
24
|
-
};
|
|
25
|
-
//# sourceMappingURL=user.types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"user.types.d.ts","sourceRoot":"","sources":["../../src/types/user.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,iCAAiC;AACjC,MAAM,MAAM,UAAU,GAAG;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,OAAO,CAAC;IACtB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACvC,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,sFAAsF;AACtF,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG;IAC3C,YAAY,EAAE,iBAAiB,EAAE,CAAC;IAClC,0EAA0E;IAC1E,IAAI,CAAC,EAAE,kBAAkB,EAAE,CAAC;CAC7B,CAAC"}
|
package/dist/types/user.types.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"user.types.js","sourceRoot":"","sources":["../../src/types/user.types.ts"],"names":[],"mappings":""}
|
|
@@ -1,9 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
package/dist/utilities/index.js
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,12 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
package/dist/utilities/scalar.js
DELETED
|
@@ -1,45 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,41 +0,0 @@
|
|
|
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 dengan HANYA property
|
|
5
|
-
* penting (bentuk ternormalisasi, sama untuk semua marketplace): identitas
|
|
6
|
-
* matching ban (`id`, `user_id`, `marketplace_user_profile.id`), nama, avatar,
|
|
7
|
-
* join, rating, verified, orders. Varian gambar, `__typename`, dan nesting
|
|
8
|
-
* mentah rating dibuang.
|
|
9
|
-
* Null kalau marketplace tidak mengirim objek (kadang null/string).
|
|
10
|
-
* ponytail: versi ini menulis v1; tambahkan cabang kalau v2 muncul.
|
|
11
|
-
*/
|
|
12
|
-
export declare function createSellerSnapshot(source: string, seller: unknown): SellerSnapshotJSONB | null;
|
|
13
|
-
/**
|
|
14
|
-
* Baca snapshot dari DB/IPC. Null kalau bentuknya tidak dikenal (mis. versi
|
|
15
|
-
* lebih baru) — pemanggil fail-open, bukan throw. Ini SATU-SATUNYA cabang
|
|
16
|
-
* versi snapshot; semua service lain lewat sini.
|
|
17
|
-
*/
|
|
18
|
-
export declare function parseSellerSnapshot(value: unknown): SellerSnapshotJSONB | null;
|
|
19
|
-
/**
|
|
20
|
-
* Nilai identitas seller untuk matching ban. Nilai duplikat (FB sering mengisi
|
|
21
|
-
* `id` = `user_id`) dibuang, property pertama yang menang.
|
|
22
|
-
*/
|
|
23
|
-
export declare function toSellerIdentities(snapshot: SellerSnapshotJSONB | null | undefined): SellerIdentity[];
|
|
24
|
-
/**
|
|
25
|
-
* Mekanisme matching ban. Dipilih MURNI dari ada/tidaknya kolom
|
|
26
|
-
* `sellerSnapshot` pada BARIS BAN — bukan dari isi item:
|
|
27
|
-
* - `snapshot`: ban punya snapshot → cocokkan nilai identitas snapshot.
|
|
28
|
-
* - `legacy`: ban lama tanpa snapshot → cocokkan kolom `sellerId` BAN
|
|
29
|
-
* (nilai pfbid lama) dengan `id`/`user_id` snapshot ITEM (nilai pfbid
|
|
30
|
-
* yang sama), bukan dengan kolom `sellerId` item (kini berisi
|
|
31
|
-
* `marketplace_user_profile.id`, ruang id berbeda).
|
|
32
|
-
* Prefix key menjaga dua mekanisme itu tidak pernah saling cocok.
|
|
33
|
-
*/
|
|
34
|
-
export type SellerMatchMechanism = 'snapshot' | 'legacy';
|
|
35
|
-
/**
|
|
36
|
-
* Key pencocokan ban: `${prefix mekanisme}:${marketplace huruf kecil}:${value}`.
|
|
37
|
-
* Sengaja tidak dipisah per property di dalam mekanisme `snapshot`, karena
|
|
38
|
-
* matching lintas property diinginkan (mis. `id` listing vs `user_id` ban).
|
|
39
|
-
*/
|
|
40
|
-
export declare function toSellerMatchKey(marketplace: string, value: string, mechanism: SellerMatchMechanism): string;
|
|
41
|
-
//# sourceMappingURL=seller-snapshot.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
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;AAIxC,eAAO,MAAM,uBAAuB,IAAI,CAAC;AAkBzC;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,OAAO,GACd,mBAAmB,GAAG,IAAI,CAwB5B;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;;;;;;;;;GASG;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,126 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"seller-snapshot.js","sourceRoot":"","sources":["../../src/utilities/seller-snapshot.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,22 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,85 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"seller-summary.js","sourceRoot":"","sources":["../../src/utilities/seller-summary.ts"],"names":[],"mappings":"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"}
|