@hasna/experts 0.0.7 → 0.0.8
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/cli/index.js +353 -81
- package/dist/contacts.d.ts +15 -1
- package/dist/contacts.d.ts.map +1 -1
- package/dist/crawl.d.ts.map +1 -1
- package/dist/crypto.d.ts +6 -0
- package/dist/crypto.d.ts.map +1 -0
- package/dist/db.d.ts +16 -4
- package/dist/db.d.ts.map +1 -1
- package/dist/embed.d.ts +20 -2
- package/dist/embed.d.ts.map +1 -1
- package/dist/index.d.ts +4 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +302 -67
- package/dist/score.d.ts +28 -0
- package/dist/score.d.ts.map +1 -1
- package/dist/sdk.js +1 -0
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +218 -68
- package/dist/sources/mentorcruise.d.ts +26 -23
- package/dist/sources/mentorcruise.d.ts.map +1 -1
- package/dist/types.d.ts +2 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +5 -2
package/dist/contacts.d.ts
CHANGED
|
@@ -18,8 +18,19 @@ export interface ContactProvider {
|
|
|
18
18
|
export declare function normalizeEmail(v: string): string;
|
|
19
19
|
/** Best-effort E.164 normalization: keep leading +, strip separators. */
|
|
20
20
|
export declare function normalizePhone(v: string): string;
|
|
21
|
-
/**
|
|
21
|
+
/** Detect obviously-fake numbers (all-same digit, trivial sequences, repeats). */
|
|
22
|
+
export declare function looksFakePhone(v: string): boolean;
|
|
23
|
+
/** A phone is "valid" if it's plausibly E.164 (7–15 digits) and not obviously fake. */
|
|
22
24
|
export declare function validatePhone(v: string): "valid" | "invalid";
|
|
25
|
+
/** Map an SMTP RCPT-TO response code to a validation verdict. Pure + tested. */
|
|
26
|
+
export declare function interpretRcptCode(code: number): "valid" | "invalid" | "unknown";
|
|
27
|
+
export type SmtpProber = (email: string, mxHost: string) => Promise<"valid" | "invalid" | "unknown">;
|
|
28
|
+
/**
|
|
29
|
+
* Real SMTP RCPT probe over node:net (HELO/MAIL FROM/RCPT TO). Many networks
|
|
30
|
+
* block outbound port 25, so this returns "unknown" on any connection/timeout
|
|
31
|
+
* failure and callers fall back to the MX verdict. Injectable for tests.
|
|
32
|
+
*/
|
|
33
|
+
export declare function smtpProbe(email: string, mxHost: string): Promise<"valid" | "invalid" | "unknown">;
|
|
23
34
|
export type MxResolver = (domain: string) => Promise<{
|
|
24
35
|
exchange: string;
|
|
25
36
|
}[]>;
|
|
@@ -83,6 +94,9 @@ export interface VerifyOptions {
|
|
|
83
94
|
max?: number;
|
|
84
95
|
delayMs?: number;
|
|
85
96
|
resolver?: MxResolver;
|
|
97
|
+
/** Opt-in SMTP RCPT probe to refine MX-valid emails (port 25 often blocked). */
|
|
98
|
+
smtp?: boolean;
|
|
99
|
+
prober?: SmtpProber;
|
|
86
100
|
onLog?: (m: string) => void;
|
|
87
101
|
}
|
|
88
102
|
export interface VerifyResult {
|
package/dist/contacts.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contacts.d.ts","sourceRoot":"","sources":["../src/contacts.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AACtC,OAAO,KAAK,EAAW,MAAM,EAAE,MAAM,SAAS,CAAC;AAI/C,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,oDAAoD;AACpD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,iBAAiB,EAAE,CAAC;QAAC,WAAW,CAAC,EAAE,OAAO,CAAC;QAAC,cAAc,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CACnH;AAMD,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED,yEAAyE;AACzE,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAIhD;AAED,
|
|
1
|
+
{"version":3,"file":"contacts.d.ts","sourceRoot":"","sources":["../src/contacts.ts"],"names":[],"mappings":"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"}
|
package/dist/crawl.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crawl.d.ts","sourceRoot":"","sources":["../src/crawl.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAEjC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAElD,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACxC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAsB,WAAW,CAC/B,EAAE,EAAE,SAAS,EACb,UAAU,EAAE,MAAM,EAClB,IAAI,GAAE,kBAAuB,GAC5B,OAAO,CAAC,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"crawl.d.ts","sourceRoot":"","sources":["../src/crawl.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAEjC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAElD,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACxC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAsB,WAAW,CAC/B,EAAE,EAAE,SAAS,EACb,UAAU,EAAE,MAAM,EAClB,IAAI,GAAE,kBAAuB,GAC5B,OAAO,CAAC,WAAW,CAAC,CAqCtB"}
|
package/dist/crypto.d.ts
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare function encryptionEnabled(): boolean;
|
|
2
|
+
/** Encrypt a value if a key is configured; otherwise return it unchanged. */
|
|
3
|
+
export declare function maybeEncrypt(plaintext: string): string;
|
|
4
|
+
/** Decrypt a value produced by maybeEncrypt; passes through plaintext. */
|
|
5
|
+
export declare function maybeDecrypt(stored: string): string;
|
|
6
|
+
//# sourceMappingURL=crypto.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crypto.d.ts","sourceRoot":"","sources":["../src/crypto.ts"],"names":[],"mappings":"AA0BA,wBAAgB,iBAAiB,IAAI,OAAO,CAE3C;AAED,6EAA6E;AAC7E,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAStD;AAED,0EAA0E;AAC1E,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAWnD"}
|
package/dist/db.d.ts
CHANGED
|
@@ -114,7 +114,7 @@ export declare class ExpertsDB {
|
|
|
114
114
|
setAvatarLocal(source: string, sourceId: string, path: string): void;
|
|
115
115
|
upsertXProfile(p: XProfile): void;
|
|
116
116
|
getXProfile(source: string, sourceId: string): XProfile | null;
|
|
117
|
-
/** Replace an expert's stored tweets
|
|
117
|
+
/** Replace an expert's stored tweets, de-duplicating near-identical text. */
|
|
118
118
|
replaceTweets(source: string, sourceId: string, tweets: Tweet[]): void;
|
|
119
119
|
recentTweets(source: string, sourceId: string, limit?: number): Tweet[];
|
|
120
120
|
/**
|
|
@@ -158,20 +158,32 @@ export declare class ExpertsDB {
|
|
|
158
158
|
persons: any;
|
|
159
159
|
duplicated: number;
|
|
160
160
|
};
|
|
161
|
-
/**
|
|
161
|
+
/**
|
|
162
|
+
* Embed experts and store vectors. Incremental by default: skips experts whose
|
|
163
|
+
* embed-text hash + embedder already match (set `force` to re-embed all).
|
|
164
|
+
* Returns the number actually embedded.
|
|
165
|
+
*/
|
|
162
166
|
buildEmbeddings(embedder: Embedder, opts?: {
|
|
163
167
|
source?: string;
|
|
164
168
|
batch?: number;
|
|
169
|
+
force?: boolean;
|
|
165
170
|
onLog?: (m: string) => void;
|
|
166
171
|
}): Promise<number>;
|
|
167
172
|
vectorCount(): number;
|
|
168
|
-
/**
|
|
173
|
+
/**
|
|
174
|
+
* Rank experts against a query vector. By default the score blends semantic
|
|
175
|
+
* similarity with the expert's authority (so a strong text match from an
|
|
176
|
+
* unrated advisor doesn't outrank a verified top expert); `blend: false`
|
|
177
|
+
* returns pure cosine. The raw `semantic` score is always included.
|
|
178
|
+
*/
|
|
169
179
|
semanticSearch(queryVec: number[], opts?: {
|
|
170
180
|
source?: string;
|
|
171
181
|
limit?: number;
|
|
182
|
+
blend?: boolean;
|
|
172
183
|
}): {
|
|
173
184
|
expert: Expert;
|
|
174
185
|
score: number;
|
|
186
|
+
semantic: number;
|
|
175
187
|
}[];
|
|
176
188
|
upsertExt(source: string, sourceId: string, kind: string, data: Record<string, unknown>): void;
|
|
177
189
|
getExt(source: string, sourceId: string, kind: string): Record<string, unknown> | null;
|
|
@@ -192,7 +204,7 @@ export declare class ExpertsDB {
|
|
|
192
204
|
}): Expert[];
|
|
193
205
|
/** Insert or update a contact (keyed by source+expert+type+value). */
|
|
194
206
|
upsertContact(c: Contact): void;
|
|
195
|
-
/** Update only the validation status of a contact. */
|
|
207
|
+
/** Update only the validation status of a contact (value is plaintext). */
|
|
196
208
|
setContactStatus(source: string, sourceId: string, type: string, value: string, status: Contact["status"]): void;
|
|
197
209
|
contacts(source: string, sourceId: string): Contact[];
|
|
198
210
|
/** Contacts needing validation (status = unverified). */
|
package/dist/db.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAItC,OAAO,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAG9E,OAAO,EAAE,KAAK,QAAQ,EAAqD,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"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"}
|
package/dist/embed.d.ts
CHANGED
|
@@ -38,8 +38,26 @@ export declare class OpenAIEmbedder implements Embedder {
|
|
|
38
38
|
constructor(opts?: OpenAIEmbedderOptions);
|
|
39
39
|
embed(texts: string[]): Promise<number[][]>;
|
|
40
40
|
}
|
|
41
|
-
/**
|
|
42
|
-
|
|
41
|
+
/**
|
|
42
|
+
* Local sentence-transformer embedder (all-MiniLM-L6-v2) via @huggingface/
|
|
43
|
+
* transformers. Real semantics, offline, no API/quota. The dependency is
|
|
44
|
+
* optional and the model is lazy-loaded on first use; if either is unavailable
|
|
45
|
+
* the caller falls back to hashing.
|
|
46
|
+
*/
|
|
47
|
+
export declare class TransformersEmbedder implements Embedder {
|
|
48
|
+
readonly id = "minilm-l6-v2";
|
|
49
|
+
readonly dim = 384;
|
|
50
|
+
private model;
|
|
51
|
+
private extractor;
|
|
52
|
+
private ensure;
|
|
53
|
+
embed(texts: string[]): Promise<number[][]>;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Choose an embedder. `EXPERTS_EMBEDDER` forces one: `openai` | `local` | `hash`.
|
|
57
|
+
* Default tries the local MiniLM model and falls back to hashing if the optional
|
|
58
|
+
* dependency/model can't load. Async because availability is probed by import.
|
|
59
|
+
*/
|
|
60
|
+
export declare function getEmbedder(): Promise<Embedder>;
|
|
43
61
|
/** Cosine similarity of two equal-length vectors (assumes roughly normalized). */
|
|
44
62
|
export declare function cosine(a: number[], b: number[]): number;
|
|
45
63
|
/** Pack/unpack Float32 vectors for SQLite BLOB storage. */
|
package/dist/embed.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"embed.d.ts","sourceRoot":"","sources":["../src/embed.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;CAC7C;AAOD,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAM/C;AAYD,4EAA4E;AAC5E,qBAAa,eAAgB,YAAW,QAAQ;IAC9C,QAAQ,CAAC,EAAE,aAAa;IACxB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;gBACT,GAAG,SAAM;IAGrB,OAAO,CAAC,GAAG;IAeL,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;CAGlD;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;CACxB;AAED,qBAAa,cAAe,YAAW,QAAQ;IAC7C,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,GAAG,QAAQ;IACpB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,OAAO,CAAe;gBAClB,IAAI,GAAE,qBAA0B;IAMtC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;CAUlD;AAED,
|
|
1
|
+
{"version":3,"file":"embed.d.ts","sourceRoot":"","sources":["../src/embed.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;CAC7C;AAOD,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAM/C;AAYD,4EAA4E;AAC5E,qBAAa,eAAgB,YAAW,QAAQ;IAC9C,QAAQ,CAAC,EAAE,aAAa;IACxB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;gBACT,GAAG,SAAM;IAGrB,OAAO,CAAC,GAAG;IAeL,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;CAGlD;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;CACxB;AAED,qBAAa,cAAe,YAAW,QAAQ;IAC7C,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,GAAG,QAAQ;IACpB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,OAAO,CAAe;gBAClB,IAAI,GAAE,qBAA0B;IAMtC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;CAUlD;AAED;;;;;GAKG;AACH,qBAAa,oBAAqB,YAAW,QAAQ;IACnD,QAAQ,CAAC,EAAE,kBAAkB;IAC7B,QAAQ,CAAC,GAAG,OAAO;IACnB,OAAO,CAAC,KAAK,CAAgE;IAC7E,OAAO,CAAC,SAAS,CAAoB;YAEvB,MAAM;IAMd,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;CASlD;AAED;;;;GAIG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,QAAQ,CAAC,CAWrD;AAED,kFAAkF;AAClF,wBAAgB,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAYvD;AAED,2DAA2D;AAC3D,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,UAAU,CAGlD;AACD,wBAAgB,YAAY,CAAC,GAAG,EAAE,UAAU,GAAG,WAAW,GAAG,MAAM,EAAE,CAGpE;AAED,uCAAuC;AACvC,wBAAgB,eAAe,CAAC,CAAC,EAAE;IACjC,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAC;CAClG,GAAG,MAAM,CAIT"}
|
package/dist/index.d.ts
CHANGED
|
@@ -12,11 +12,12 @@ export { IntroClient } from "./sources/intro-api";
|
|
|
12
12
|
export { normalizeIntroExpert, slugFromUrl } from "./sources/intro";
|
|
13
13
|
export { enrichX, enrichExpert, backfillAvatars, enrichYouTube, liveTweets, enrichLinkedIn, enrichSite, linkedinHandle, htmlToText, downloadAvatar, avatarBasename, handleFromSocial, type EnrichOptions, type EnrichResult, type AvatarBackfillResult, type YouTubeEnrichResult, type ExtEnrichResult } from "./enrich";
|
|
14
14
|
export { ConnectorsClient, CredentialPool, defaultRunner, extractJson, type ConnectorRunner, type ConnectorResult, type CredentialSet } from "./connectors";
|
|
15
|
-
export { discoverContacts, verifyContacts, validateEmail, validatePhone, normalizeEmail, normalizePhone, ExaWebsetsProvider, extractExaContacts, type ContactProvider, type DiscoveredContact, type DiscoverResult, type VerifyResult, } from "./contacts";
|
|
15
|
+
export { discoverContacts, verifyContacts, validateEmail, validatePhone, looksFakePhone, interpretRcptCode, smtpProbe, normalizeEmail, normalizePhone, ExaWebsetsProvider, extractExaContacts, type ContactProvider, type DiscoveredContact, type DiscoverResult, type VerifyResult, type SmtpProber, } from "./contacts";
|
|
16
16
|
export { inferTags, expertText } from "./graph";
|
|
17
|
-
export { authorityScore, DEFAULT_WEIGHTS, type ScoreWeights, type ScoreInputs } from "./score";
|
|
18
|
-
export { getEmbedder, HashingEmbedder, OpenAIEmbedder, cosine, tokenize, expertEmbedText, type Embedder } from "./embed";
|
|
17
|
+
export { authorityScore, blendScore, explainMatch, pricePerHour, DEFAULT_WEIGHTS, DEFAULT_BLEND, type ScoreWeights, type ScoreInputs, type BlendWeights } from "./score";
|
|
18
|
+
export { getEmbedder, HashingEmbedder, OpenAIEmbedder, TransformersEmbedder, cosine, tokenize, expertEmbedText, type Embedder } from "./embed";
|
|
19
19
|
export { normalizeName, socialHandles, samePerson, clusterPersons } from "./identity";
|
|
20
20
|
export { syncContacts, expertToContactRecord, JsonSink, CliSink, type ContactRecord, type ContactSink } from "./sync";
|
|
21
|
+
export { maybeEncrypt, maybeDecrypt, encryptionEnabled } from "./crypto";
|
|
21
22
|
export * as format from "./format";
|
|
22
23
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,KAAK,WAAW,EAAE,MAAM,MAAM,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,KAAK,WAAW,EAAE,MAAM,SAAS,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAChF,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,UAAU,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc,EAAE,gBAAgB,EAAE,KAAK,aAAa,EAAE,KAAK,YAAY,EAAE,KAAK,oBAAoB,EAAE,KAAK,mBAAmB,EAAE,KAAK,eAAe,EAAE,MAAM,UAAU,CAAC;AACzT,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,aAAa,EAAE,WAAW,EAAE,KAAK,eAAe,EAAE,KAAK,eAAe,EAAE,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAC5J,OAAO,EACL,gBAAgB,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,KAAK,WAAW,EAAE,MAAM,MAAM,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,KAAK,WAAW,EAAE,MAAM,SAAS,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAChF,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,UAAU,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc,EAAE,gBAAgB,EAAE,KAAK,aAAa,EAAE,KAAK,YAAY,EAAE,KAAK,oBAAoB,EAAE,KAAK,mBAAmB,EAAE,KAAK,eAAe,EAAE,MAAM,UAAU,CAAC;AACzT,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,aAAa,EAAE,WAAW,EAAE,KAAK,eAAe,EAAE,KAAK,eAAe,EAAE,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAC5J,OAAO,EACL,gBAAgB,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAC9E,iBAAiB,EAAE,SAAS,EAAE,cAAc,EAAE,cAAc,EAC5D,kBAAkB,EAAE,kBAAkB,EACtC,KAAK,eAAe,EAAE,KAAK,iBAAiB,EAAE,KAAK,cAAc,EAAE,KAAK,YAAY,EAAE,KAAK,UAAU,GACtG,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,KAAK,YAAY,EAAE,MAAM,SAAS,CAAC;AACzK,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,KAAK,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC/I,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACtF,OAAO,EAAE,YAAY,EAAE,qBAAqB,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,WAAW,EAAE,MAAM,QAAQ,CAAC;AACtH,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AACzE,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC"}
|