deepline 0.3.371 → 0.3.373
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/bundling-sources/sdk/src/release.ts +1 -1
- package/dist/bundling-sources/shared_libs/plays/email-status.ts +95 -0
- package/dist/bundling-sources/shared_libs/plays/extractor-targets.ts +14 -0
- package/dist/bundling-sources/shared_libs/plays/field-catalog.ts +253 -0
- package/dist/bundling-sources/shared_libs/plays/tool-result-types.ts +2 -0
- package/dist/bundling-sources/shared_libs/product-notifications/catalog.ts +15 -3
- package/dist/cli/{auth-LCSEXQA2.mjs → auth-7BMCDCRH.mjs} +4 -4
- package/dist/cli/auth-BWCNRUG3.js +33 -0
- package/dist/cli/{billing-KISDL67A.js → billing-GKI7B4JF.js} +73 -73
- package/dist/cli/{billing-Z7PLJC5C.mjs → billing-RZEHHMPU.mjs} +4 -4
- package/dist/cli/{chunk-E5UD3JDQ.js → chunk-3VN4FTE3.js} +289 -5
- package/dist/cli/{chunk-SEDS6ZVR.mjs → chunk-6JCVL7CE.mjs} +2 -2
- package/dist/cli/{chunk-DPVBWLBF.js → chunk-BM47AKUZ.js} +266 -254
- package/dist/cli/{chunk-NMDNUOVI.js → chunk-CLEB5KUZ.js} +1 -1
- package/dist/cli/{chunk-C3IPN4E6.js → chunk-D2CZ4Y5G.js} +15 -15
- package/dist/cli/{chunk-3GK3SH3G.mjs → chunk-E6BZWURC.mjs} +200 -13
- package/dist/cli/{chunk-44SHFHA3.js → chunk-E7MGPPM5.js} +9 -9
- package/dist/cli/{chunk-KGRAQ4OR.mjs → chunk-ECA6NQYL.mjs} +4 -4
- package/dist/cli/{chunk-5Z7JFUNX.js → chunk-EYXSAB7O.js} +26 -26
- package/dist/cli/{chunk-DOXAN2I7.mjs → chunk-HNLXC5BP.mjs} +1 -1
- package/dist/cli/{chunk-N34UX4TW.js → chunk-IHQQNWU4.js} +2 -2
- package/dist/cli/{chunk-KKRRIFR3.mjs → chunk-IUYKSTWB.mjs} +1 -1
- package/dist/cli/{chunk-BO3ADIBV.js → chunk-JHUMUIU6.js} +6 -6
- package/dist/cli/{chunk-IWY7T6MR.mjs → chunk-JP2YA3AV.mjs} +1 -1
- package/dist/cli/{chunk-A7X7KFXX.js → chunk-ND4BVWWZ.js} +4 -4
- package/dist/cli/{chunk-5BCVKWLV.js → chunk-NVZAZGHA.js} +8 -8
- package/dist/cli/{chunk-TT2YWFYW.js → chunk-ORBVXCTL.js} +50 -50
- package/dist/cli/{chunk-YYFLULK7.mjs → chunk-P5JPGZNI.mjs} +1 -1
- package/dist/cli/{chunk-73NIXYKH.mjs → chunk-PZ26EKNC.mjs} +319 -115
- package/dist/cli/{chunk-2L6LBJVC.mjs → chunk-QSV76EMO.mjs} +27 -15
- package/dist/cli/{chunk-AIZKDTFF.mjs → chunk-R6TPSZLN.mjs} +2 -2
- package/dist/cli/{chunk-C553OZGG.js → chunk-S5OTS6H5.js} +8 -8
- package/dist/cli/{chunk-5S525TQV.mjs → chunk-TB73PXE3.mjs} +2 -2
- package/dist/cli/{chunk-YENBXYUH.js → chunk-W3H422KP.js} +60 -60
- package/dist/cli/{chunk-DQMTJXLK.js → chunk-XJYUQBHY.js} +390 -186
- package/dist/cli/{chunk-3FTYFVYN.mjs → chunk-XMME4SCK.mjs} +2 -2
- package/dist/cli/{chunk-KBJO7HIF.mjs → chunk-Y32GUTEN.mjs} +1 -1
- package/dist/cli/{chunk-JB6ERQUV.mjs → chunk-Y6VOGHF2.mjs} +284 -0
- package/dist/cli/{chunk-SENW5J4O.mjs → chunk-YHHY2YHK.mjs} +3 -3
- package/dist/cli/{chunk-2JRRXXTA.js → chunk-YPVTQRUM.js} +201 -14
- package/dist/cli/{client-Z3Z5EDDJ.mjs → client-FO6LMHT4.mjs} +3 -3
- package/dist/cli/client-KAWK7FJR.js +20 -0
- package/dist/cli/{csv-TEVHLGGA.mjs → csv-3FNCVMWA.mjs} +3 -3
- package/dist/cli/{csv-XGFXV7JE.js → csv-NFQYQWWO.js} +12 -12
- package/dist/cli/{db-LLZJ7UH5.js → db-CTLGRV3X.js} +29 -29
- package/dist/cli/{db-OB7PMWSZ.mjs → db-VA7HULGR.mjs} +4 -4
- package/dist/cli/{describe-GZIRANUZ.mjs → describe-GXGRMP2M.mjs} +46 -17
- package/dist/cli/{describe-NWU7LI3I.js → describe-IUHOEPKY.js} +61 -32
- package/dist/cli/{executions-64YZGSOW.js → executions-DSK3HRPU.js} +6 -6
- package/dist/cli/{executions-7UZ3ZGJ3.mjs → executions-OZQDZQIK.mjs} +4 -4
- package/dist/cli/{feedback-MN5CXULH.js → feedback-KTMLMWKV.js} +7 -7
- package/dist/cli/{feedback-2WRQRW3U.mjs → feedback-ZOY7R4JD.mjs} +3 -3
- package/dist/cli/git-5P5FLEUC.js +23 -0
- package/dist/cli/{git-BPYVLLTY.mjs → git-FIOI4IA2.mjs} +4 -4
- package/dist/cli/index.js +81 -81
- package/dist/cli/index.mjs +32 -32
- package/dist/cli/{legacy-noops-ZRPWEPX6.mjs → legacy-noops-KQZWSABN.mjs} +4 -4
- package/dist/cli/{legacy-noops-VMXJPLMW.js → legacy-noops-WXAYRQMQ.js} +7 -7
- package/dist/cli/{monitors-OQSI2VOL.js → monitors-LPUCHRNJ.js} +85 -85
- package/dist/cli/{monitors-5BRTBL7E.mjs → monitors-VHNWIF4V.mjs} +4 -4
- package/dist/cli/{org-F5QS3HG4.js → org-GWHWBCMD.js} +64 -64
- package/dist/cli/{org-SMZ7AGR3.mjs → org-UW7NPGEY.mjs} +4 -4
- package/dist/cli/play-EVBIC7Z5.js +155 -0
- package/dist/cli/{play-CJZNLQL7.mjs → play-FNM2E66T.mjs} +8 -8
- package/dist/cli/{providers-SH2HYOVR.js → providers-6D6R3PWX.js} +7 -7
- package/dist/cli/{providers-CBWXJRDG.mjs → providers-XAZMYDWS.mjs} +4 -4
- package/dist/cli/{quickstart-B6EL7WDG.js → quickstart-HBUWBVH6.js} +5 -5
- package/dist/cli/{quickstart-342ENF6Q.mjs → quickstart-OK65PGZL.mjs} +3 -3
- package/dist/cli/search-6ZY2XWP2.js +26 -0
- package/dist/cli/{search-E7DKH3SI.mjs → search-XY6JOTS2.mjs} +5 -5
- package/dist/cli/{secrets-M2AW5RGE.js → secrets-6CYCPK7T.js} +13 -13
- package/dist/cli/{secrets-FSYIPRVS.mjs → secrets-W2LDLU2W.mjs} +4 -4
- package/dist/cli/{sessions-AFE4C3FQ.js → sessions-GOYEKNTJ.js} +5 -5
- package/dist/cli/{sessions-DJPGWPNA.mjs → sessions-JAX7PGXU.mjs} +4 -4
- package/dist/cli/{settings-KLN2A3PQ.mjs → settings-OACUQOCM.mjs} +7 -7
- package/dist/cli/{settings-VUWBNATC.js → settings-QMFYFCT7.js} +74 -74
- package/dist/cli/{setup-BE6N5YV6.mjs → setup-2KA5TZBZ.mjs} +6 -6
- package/dist/cli/{setup-I5IMTQCX.js → setup-36VOOGVA.js} +41 -41
- package/dist/cli/skills-6GPIEPTP.js +28 -0
- package/dist/cli/{skills-GSNPQDUG.mjs → skills-QY4BX5ZX.mjs} +4 -4
- package/dist/cli/tools-RTECP4WT.js +40 -0
- package/dist/cli/{tools-ORCGHV4P.mjs → tools-UCB2QRVC.mjs} +8 -8
- package/dist/cli/{update-UXEUWVWS.mjs → update-327MHUO4.mjs} +6 -6
- package/dist/cli/update-WR65EHBN.js +28 -0
- package/dist/cli/{workflow-R7SDICTU.js → workflow-G7BU54KW.js} +15 -15
- package/dist/cli/{workflow-JBQY7JJN.mjs → workflow-HJN4GA5A.mjs} +5 -5
- package/dist/{client-CZFMQEgO.d.mts → client-Cn-txrXv.d.mts} +3 -2
- package/dist/{client-CgSwpnb-.d.ts → client-fPoIN-3V.d.ts} +3 -2
- package/dist/{compiler-manifest-DgdW0q0b.d.ts → compiler-manifest-CY2v8ab0.d.mts} +2 -0
- package/dist/{compiler-manifest-DgdW0q0b.d.mts → compiler-manifest-CY2v8ab0.d.ts} +2 -0
- package/dist/{index-C3nQQTI-.d.mts → index-B9fBZH1g.d.mts} +1 -1
- package/dist/{index-CEYQAfS0.d.ts → index-BZ6uzZJl.d.ts} +1 -1
- package/dist/index.d.mts +5 -5
- package/dist/index.d.ts +5 -5
- package/dist/index.js +79 -249
- package/dist/index.mjs +10 -180
- package/dist/install-integrity.json +85 -84
- package/dist/plays/bundle-play-file.d.mts +3 -3
- package/dist/plays/bundle-play-file.d.ts +3 -3
- package/dist/plays/run-request.d.mts +2 -2
- package/dist/plays/run-request.d.ts +2 -2
- package/dist/release.d.mts +1 -1
- package/dist/release.d.ts +1 -1
- package/dist/release.js +2 -2
- package/dist/release.mjs +1 -1
- package/package.json +1 -1
- package/dist/cli/auth-DQVK3ZI6.js +0 -33
- package/dist/cli/client-JFSRNUVD.js +0 -20
- package/dist/cli/git-TJIPVSAE.js +0 -23
- package/dist/cli/play-K7HE4LBB.js +0 -155
- package/dist/cli/search-SEEYCQED.js +0 -26
- package/dist/cli/skills-7XH5GMZB.js +0 -28
- package/dist/cli/tools-JCL4ABAF.js +0 -40
- package/dist/cli/update-YNZOS77Z.js +0 -28
|
@@ -1,4 +1,280 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }//
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }// ../plays/email-status.ts
|
|
2
|
+
var nullable = (type) => ({ type: [type, "null"] });
|
|
3
|
+
var oneOf = (values) => ({ type: "string", enum: values });
|
|
4
|
+
var EMAIL_STATUS_JSON_SCHEMA = {
|
|
5
|
+
type: "object",
|
|
6
|
+
required: [
|
|
7
|
+
"verdict",
|
|
8
|
+
"status",
|
|
9
|
+
"verified",
|
|
10
|
+
"confidence",
|
|
11
|
+
"reasons",
|
|
12
|
+
"signals",
|
|
13
|
+
"provider"
|
|
14
|
+
],
|
|
15
|
+
properties: {
|
|
16
|
+
verdict: oneOf([
|
|
17
|
+
"send",
|
|
18
|
+
"send_with_caution",
|
|
19
|
+
"verify_next",
|
|
20
|
+
"hold",
|
|
21
|
+
"drop"
|
|
22
|
+
]),
|
|
23
|
+
status: oneOf([
|
|
24
|
+
"valid",
|
|
25
|
+
"invalid",
|
|
26
|
+
"catch_all",
|
|
27
|
+
"valid_catch_all",
|
|
28
|
+
"unknown",
|
|
29
|
+
"do_not_mail",
|
|
30
|
+
"spamtrap",
|
|
31
|
+
"abuse",
|
|
32
|
+
"disposable"
|
|
33
|
+
]),
|
|
34
|
+
verified: { type: "boolean" },
|
|
35
|
+
confidence: nullable("number"),
|
|
36
|
+
reasons: { type: "array", items: { type: "string" } },
|
|
37
|
+
signals: {
|
|
38
|
+
type: "object",
|
|
39
|
+
required: [
|
|
40
|
+
"catch_all",
|
|
41
|
+
"deliverability",
|
|
42
|
+
"mx_class",
|
|
43
|
+
"mx_provider",
|
|
44
|
+
"mx_record",
|
|
45
|
+
"fraud_score",
|
|
46
|
+
"disposable",
|
|
47
|
+
"role_based",
|
|
48
|
+
"free_email",
|
|
49
|
+
"abuse",
|
|
50
|
+
"spamtrap",
|
|
51
|
+
"suspect",
|
|
52
|
+
"valid"
|
|
53
|
+
],
|
|
54
|
+
properties: {
|
|
55
|
+
catch_all: nullable("boolean"),
|
|
56
|
+
deliverability: oneOf([
|
|
57
|
+
"high",
|
|
58
|
+
"medium",
|
|
59
|
+
"low",
|
|
60
|
+
"unknown"
|
|
61
|
+
]),
|
|
62
|
+
mx_class: oneOf([
|
|
63
|
+
"consumer_mailbox",
|
|
64
|
+
"workspace_mailbox",
|
|
65
|
+
"security_gateway",
|
|
66
|
+
"on_prem",
|
|
67
|
+
"unknown"
|
|
68
|
+
]),
|
|
69
|
+
mx_provider: nullable("string"),
|
|
70
|
+
mx_record: nullable("string"),
|
|
71
|
+
fraud_score: nullable("number"),
|
|
72
|
+
disposable: nullable("boolean"),
|
|
73
|
+
role_based: nullable("boolean"),
|
|
74
|
+
free_email: nullable("boolean"),
|
|
75
|
+
abuse: nullable("boolean"),
|
|
76
|
+
spamtrap: nullable("boolean"),
|
|
77
|
+
suspect: nullable("boolean"),
|
|
78
|
+
valid: nullable("boolean")
|
|
79
|
+
}
|
|
80
|
+
},
|
|
81
|
+
provider: {
|
|
82
|
+
type: "object",
|
|
83
|
+
required: ["name", "raw_status", "raw_score"],
|
|
84
|
+
properties: {
|
|
85
|
+
name: { type: "string" },
|
|
86
|
+
raw_status: { type: ["string", "boolean", "number", "null"] },
|
|
87
|
+
raw_score: nullable("number")
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
function normalizeKey(value) {
|
|
93
|
+
if (value == null) return null;
|
|
94
|
+
if (typeof value === "boolean") return String(value);
|
|
95
|
+
const normalized = String(value).trim().toLowerCase().replace(/\s+/g, "_");
|
|
96
|
+
return normalized || null;
|
|
97
|
+
}
|
|
98
|
+
function boolish(value) {
|
|
99
|
+
if (typeof value === "boolean") return value;
|
|
100
|
+
if (typeof value === "number")
|
|
101
|
+
return value === 1 ? true : value === 0 ? false : null;
|
|
102
|
+
if (typeof value !== "string") return null;
|
|
103
|
+
const normalized = value.trim().toLowerCase();
|
|
104
|
+
if (["true", "yes", "y", "1"].includes(normalized)) return true;
|
|
105
|
+
if (["false", "no", "n", "0"].includes(normalized)) return false;
|
|
106
|
+
return null;
|
|
107
|
+
}
|
|
108
|
+
function numberish(value) {
|
|
109
|
+
if (typeof value === "number" && Number.isFinite(value)) return value;
|
|
110
|
+
if (typeof value !== "string" || value.trim() === "") return null;
|
|
111
|
+
const parsed = Number(value);
|
|
112
|
+
return Number.isFinite(parsed) ? parsed : null;
|
|
113
|
+
}
|
|
114
|
+
function stringish(value) {
|
|
115
|
+
return typeof value === "string" && value.trim() ? value.trim() : null;
|
|
116
|
+
}
|
|
117
|
+
function deliverability(value) {
|
|
118
|
+
const normalized = normalizeKey(value);
|
|
119
|
+
return normalized === "high" || normalized === "medium" || normalized === "low" ? normalized : "unknown";
|
|
120
|
+
}
|
|
121
|
+
function mxClass(mxProvider, mxRecord) {
|
|
122
|
+
const haystack = `${_nullishCoalesce(stringish(mxProvider), () => ( ""))} ${_nullishCoalesce(stringish(mxRecord), () => ( ""))}`.toLowerCase();
|
|
123
|
+
if (!haystack.trim()) return "unknown";
|
|
124
|
+
if (/proofpoint|pphosted|mimecast|barracuda|ess\.barracudanetworks|ironport|cisco|iphmx|messagelabs|symantec/.test(
|
|
125
|
+
haystack
|
|
126
|
+
)) {
|
|
127
|
+
return "security_gateway";
|
|
128
|
+
}
|
|
129
|
+
if (/aspmx\.l\.google|google|g-suite|google workspace/.test(haystack)) {
|
|
130
|
+
return "workspace_mailbox";
|
|
131
|
+
}
|
|
132
|
+
if (/protection\.outlook|office365|microsoft|outlook|exchange online/.test(
|
|
133
|
+
haystack
|
|
134
|
+
)) {
|
|
135
|
+
return "workspace_mailbox";
|
|
136
|
+
}
|
|
137
|
+
if (/gmail|yahoo|icloud|aol|hotmail/.test(haystack))
|
|
138
|
+
return "consumer_mailbox";
|
|
139
|
+
if (/postfix|exim|sendmail|zimbra|plesk|cpanel|mail\./.test(haystack))
|
|
140
|
+
return "on_prem";
|
|
141
|
+
return "unknown";
|
|
142
|
+
}
|
|
143
|
+
function entryForStatus(key, map) {
|
|
144
|
+
if (!key) return null;
|
|
145
|
+
return _nullishCoalesce(_optionalChain([map, 'optionalAccess', _ => _[key]]), () => ( null));
|
|
146
|
+
}
|
|
147
|
+
function read(values, name) {
|
|
148
|
+
return values[name];
|
|
149
|
+
}
|
|
150
|
+
function matchesRule(rule, values) {
|
|
151
|
+
return Object.entries(rule.when).every(([key, expected]) => {
|
|
152
|
+
const actual = read(values, key);
|
|
153
|
+
if (key.endsWith("Lt")) {
|
|
154
|
+
const source = numberish(read(values, key.slice(0, -2)));
|
|
155
|
+
return typeof expected === "number" && source != null && source < expected;
|
|
156
|
+
}
|
|
157
|
+
if (typeof expected === "boolean") return boolish(actual) === expected;
|
|
158
|
+
if (typeof expected === "number") return numberish(actual) === expected;
|
|
159
|
+
return normalizeKey(actual) === normalizeKey(expected);
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
function buildEmailStatus({
|
|
163
|
+
config,
|
|
164
|
+
values
|
|
165
|
+
}) {
|
|
166
|
+
const rawStatus = read(values, "rawStatus");
|
|
167
|
+
const rawScore = numberish(read(values, "rawScore"));
|
|
168
|
+
const valid = boolish(read(values, "valid"));
|
|
169
|
+
const catchAll = boolish(read(values, "catchAll"));
|
|
170
|
+
const disposable = boolish(read(values, "disposable"));
|
|
171
|
+
const abuse = boolish(read(values, "abuse"));
|
|
172
|
+
const spamtrap = boolish(read(values, "spamtrap"));
|
|
173
|
+
const suspect = boolish(read(values, "suspect"));
|
|
174
|
+
const rawKey = normalizeKey(rawStatus);
|
|
175
|
+
const mapped = _nullishCoalesce(_nullishCoalesce(_optionalChain([config, 'access', _2 => _2.rules, 'optionalAccess', _3 => _3.find, 'call', _4 => _4((rule) => matchesRule(rule, values))]), () => ( entryForStatus(rawKey, config.statusMap))), () => ( entryForStatus(valid == null ? null : String(valid), config.statusMap)));
|
|
176
|
+
const status = _nullishCoalesce(_optionalChain([mapped, 'optionalAccess', _5 => _5.status]), () => ( (disposable ? "disposable" : abuse ? "abuse" : spamtrap ? "spamtrap" : catchAll ? "catch_all" : valid === true ? "valid" : valid === false ? "invalid" : "unknown")));
|
|
177
|
+
const defaultVerdict = status === "valid" ? "send" : status === "valid_catch_all" ? "send_with_caution" : status === "catch_all" ? "verify_next" : status === "unknown" ? "hold" : "drop";
|
|
178
|
+
const verdict = _nullishCoalesce(_optionalChain([mapped, 'optionalAccess', _6 => _6.verdict]), () => ( defaultVerdict));
|
|
179
|
+
const verified = _nullishCoalesce(_optionalChain([mapped, 'optionalAccess', _7 => _7.verified]), () => ( (status === "valid" || status === "valid_catch_all" || verdict === "send")));
|
|
180
|
+
const reasons = [
|
|
181
|
+
_optionalChain([mapped, 'optionalAccess', _8 => _8.reason]),
|
|
182
|
+
catchAll ? "catch_all_domain" : null,
|
|
183
|
+
mxClass(read(values, "mxProvider"), read(values, "mxRecord")) === "security_gateway" ? "security_gateway_mx" : null,
|
|
184
|
+
suspect ? "provider_marked_suspect" : null
|
|
185
|
+
].filter((reason) => typeof reason === "string");
|
|
186
|
+
return {
|
|
187
|
+
verdict,
|
|
188
|
+
status,
|
|
189
|
+
verified,
|
|
190
|
+
confidence: rawScore,
|
|
191
|
+
reasons,
|
|
192
|
+
signals: {
|
|
193
|
+
catch_all: catchAll,
|
|
194
|
+
deliverability: deliverability(read(values, "deliverability")),
|
|
195
|
+
mx_class: mxClass(read(values, "mxProvider"), read(values, "mxRecord")),
|
|
196
|
+
mx_provider: stringish(read(values, "mxProvider")),
|
|
197
|
+
mx_record: stringish(read(values, "mxRecord")),
|
|
198
|
+
fraud_score: numberish(read(values, "fraudScore")),
|
|
199
|
+
disposable,
|
|
200
|
+
role_based: boolish(read(values, "roleBased")),
|
|
201
|
+
free_email: boolish(read(values, "freeEmail")),
|
|
202
|
+
abuse,
|
|
203
|
+
spamtrap,
|
|
204
|
+
suspect,
|
|
205
|
+
valid
|
|
206
|
+
},
|
|
207
|
+
provider: {
|
|
208
|
+
name: config.provider,
|
|
209
|
+
raw_status: typeof rawStatus === "string" || typeof rawStatus === "boolean" || typeof rawStatus === "number" ? rawStatus : null,
|
|
210
|
+
raw_score: rawScore
|
|
211
|
+
}
|
|
212
|
+
};
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
// ../plays/extractor-targets.ts
|
|
216
|
+
var JOB_CHANGE_STATUS_VALUES = [
|
|
217
|
+
"moved",
|
|
218
|
+
"no_change",
|
|
219
|
+
"left_company",
|
|
220
|
+
"unknown",
|
|
221
|
+
"profile_unavailable",
|
|
222
|
+
"no_new_company"
|
|
223
|
+
];
|
|
224
|
+
var JOB_CHANGE_JSON_SCHEMA = {
|
|
225
|
+
type: "object",
|
|
226
|
+
required: ["status", "date", "new_company", "new_title"],
|
|
227
|
+
properties: {
|
|
228
|
+
status: { type: "string", enum: JOB_CHANGE_STATUS_VALUES },
|
|
229
|
+
date: { type: ["string", "null"] },
|
|
230
|
+
new_company: { type: ["string", "null"] },
|
|
231
|
+
new_title: { type: ["string", "null"] }
|
|
232
|
+
}
|
|
233
|
+
};
|
|
234
|
+
var PHONE_STATUS_VALUES = ["valid", "invalid", "unknown"];
|
|
235
|
+
var DEEPLINE_EXTRACTOR_TARGET_DEFINITIONS = {
|
|
236
|
+
id: { identity: true, valueKind: "string" },
|
|
237
|
+
name: { identity: true, valueKind: "string" },
|
|
238
|
+
email: { identity: true, valueKind: "string" },
|
|
239
|
+
personal_email: { identity: true, valueKind: "string" },
|
|
240
|
+
phone: { identity: true, valueKind: "string" },
|
|
241
|
+
linkedin: { identity: true, valueKind: "string" },
|
|
242
|
+
linkedin_url: { identity: true, valueKind: "string" },
|
|
243
|
+
domain: { identity: true, valueKind: "string" },
|
|
244
|
+
website: { identity: true, valueKind: "string" },
|
|
245
|
+
first_name: { identity: true, valueKind: "string" },
|
|
246
|
+
last_name: { identity: true, valueKind: "string" },
|
|
247
|
+
full_name: { identity: true, valueKind: "string" },
|
|
248
|
+
company: { identity: true, valueKind: "string" },
|
|
249
|
+
company_name: { identity: true, valueKind: "string" },
|
|
250
|
+
organization_name: { identity: true, valueKind: "string" },
|
|
251
|
+
company_domain: { identity: true, valueKind: "string" },
|
|
252
|
+
company_website: { identity: true, valueKind: "string" },
|
|
253
|
+
company_linkedin_url: { identity: true, valueKind: "string" },
|
|
254
|
+
title: { identity: false, valueKind: "string" },
|
|
255
|
+
industry: { identity: false, valueKind: "string" },
|
|
256
|
+
status: { identity: false, valueKind: "string" },
|
|
257
|
+
job_change: { identity: false, valueKind: "job_change" },
|
|
258
|
+
job_change_status: {
|
|
259
|
+
identity: false,
|
|
260
|
+
valueKind: "job_change_status",
|
|
261
|
+
enum: JOB_CHANGE_STATUS_VALUES
|
|
262
|
+
},
|
|
263
|
+
email_status: { identity: false, valueKind: "email_status" },
|
|
264
|
+
phone_status: {
|
|
265
|
+
identity: false,
|
|
266
|
+
valueKind: "phone_status",
|
|
267
|
+
enum: PHONE_STATUS_VALUES
|
|
268
|
+
}
|
|
269
|
+
};
|
|
270
|
+
var DEEPLINE_EXTRACTOR_TARGETS = Object.keys(
|
|
271
|
+
DEEPLINE_EXTRACTOR_TARGET_DEFINITIONS
|
|
272
|
+
);
|
|
273
|
+
function isDeeplineExtractorTarget(value) {
|
|
274
|
+
return value in DEEPLINE_EXTRACTOR_TARGET_DEFINITIONS;
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
// src/tool-output.ts
|
|
2
278
|
|
|
3
279
|
|
|
4
280
|
|
|
@@ -71,7 +347,7 @@ function candidateRoots(payload) {
|
|
|
71
347
|
function findBestArrayCandidate(value, pathPrefix = "", depth = 0) {
|
|
72
348
|
if (depth > 5) return null;
|
|
73
349
|
const directRows = normalizeRows(value);
|
|
74
|
-
const hasObjectRow = _nullishCoalesce(_optionalChain([directRows, 'optionalAccess',
|
|
350
|
+
const hasObjectRow = _nullishCoalesce(_optionalChain([directRows, 'optionalAccess', _9 => _9.some, 'call', _10 => _10(
|
|
75
351
|
(row) => Object.keys(row).some((key) => key !== "value")
|
|
76
352
|
)]), () => ( false));
|
|
77
353
|
let best = directRows && directRows.length > 0 && hasObjectRow ? { path: pathPrefix, rows: directRows } : null;
|
|
@@ -89,7 +365,7 @@ function findBestArrayCandidate(value, pathPrefix = "", depth = 0) {
|
|
|
89
365
|
return best;
|
|
90
366
|
}
|
|
91
367
|
function tryConvertToList(payload, options) {
|
|
92
|
-
const listExtractorPaths = Array.isArray(_optionalChain([options, 'optionalAccess',
|
|
368
|
+
const listExtractorPaths = Array.isArray(_optionalChain([options, 'optionalAccess', _11 => _11.listExtractorPaths])) ? _optionalChain([options, 'optionalAccess', _12 => _12.listExtractorPaths, 'access', _13 => _13.filter, 'call', _14 => _14(
|
|
93
369
|
(entry) => typeof entry === "string" && entry.trim().length > 0
|
|
94
370
|
)]) : [];
|
|
95
371
|
if (listExtractorPaths.length > 0) {
|
|
@@ -147,7 +423,7 @@ function writeJsonOutputFile(payload, stem) {
|
|
|
147
423
|
return outputPath;
|
|
148
424
|
}
|
|
149
425
|
function writeCsvOutputFile(rows, stem, options) {
|
|
150
|
-
const outputPath = _optionalChain([options, 'optionalAccess',
|
|
426
|
+
const outputPath = _optionalChain([options, 'optionalAccess', _15 => _15.outPath]) ? options.outPath : _path.join.call(void 0, ensureOutputDir(), `${stem}_${Date.now()}.csv`);
|
|
151
427
|
_fs.mkdirSync.call(void 0, _path.dirname.call(void 0, outputPath), { recursive: true });
|
|
152
428
|
const columns = columnsForRows(rows);
|
|
153
429
|
const escapeCell = (value) => {
|
|
@@ -388,4 +664,12 @@ function normalizeTableNamespace(value) {
|
|
|
388
664
|
|
|
389
665
|
|
|
390
666
|
|
|
391
|
-
|
|
667
|
+
|
|
668
|
+
|
|
669
|
+
|
|
670
|
+
|
|
671
|
+
|
|
672
|
+
|
|
673
|
+
|
|
674
|
+
|
|
675
|
+
exports.EMAIL_STATUS_JSON_SCHEMA = EMAIL_STATUS_JSON_SCHEMA; exports.buildEmailStatus = buildEmailStatus; exports.JOB_CHANGE_STATUS_VALUES = JOB_CHANGE_STATUS_VALUES; exports.JOB_CHANGE_JSON_SCHEMA = JOB_CHANGE_JSON_SCHEMA; exports.PHONE_STATUS_VALUES = PHONE_STATUS_VALUES; exports.DEEPLINE_EXTRACTOR_TARGET_DEFINITIONS = DEEPLINE_EXTRACTOR_TARGET_DEFINITIONS; exports.DEEPLINE_EXTRACTOR_TARGETS = DEEPLINE_EXTRACTOR_TARGETS; exports.isDeeplineExtractorTarget = isDeeplineExtractorTarget; exports.stableStringify = stableStringify; exports.sha256Hex = sha256Hex; exports.normalizeTableNamespace = normalizeTableNamespace; exports.tryConvertToList = tryConvertToList; exports.projectRowOutput = projectRowOutput; exports.writeJsonOutputFile = writeJsonOutputFile; exports.writeCsvOutputFile = writeCsvOutputFile; exports.extractSummaryFields = extractSummaryFields;
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
} from "./chunk-GAMFK2ZP.mjs";
|
|
4
4
|
import {
|
|
5
5
|
printCommandEnvelope
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-HNLXC5BP.mjs";
|
|
7
7
|
import {
|
|
8
8
|
DEFAULT_SKILL_AGENTS,
|
|
9
9
|
KNOWN_SKILL_AGENTS,
|
|
@@ -22,7 +22,7 @@ import {
|
|
|
22
22
|
sdkCliStateDirPath,
|
|
23
23
|
skillsAgentPathSegment,
|
|
24
24
|
writeSdkSkillsLocalVersion
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-IUYKSTWB.mjs";
|
|
26
26
|
import {
|
|
27
27
|
DeeplineError
|
|
28
28
|
} from "./chunk-NXGCO4JB.mjs";
|