@levo-so/core 0.1.36 → 0.1.37
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/client.d.ts +11 -2
- package/dist/control/audience.d.ts +12 -3
- package/dist/control/audience.d.ts.map +1 -1
- package/dist/index.js +121 -49
- package/dist/types/audience.d.ts +35 -2
- package/dist/types/audience.d.ts.map +1 -1
- package/dist/utils/listToX.d.ts +3 -0
- package/dist/utils/listToX.d.ts.map +1 -0
- package/dist/utils/lock.d.ts.map +1 -1
- package/package.json +3 -3
package/dist/client.d.ts
CHANGED
|
@@ -11,9 +11,18 @@ export declare const createLevoClient: (options: ILevoClientOptions) => {
|
|
|
11
11
|
readonly workspace: `W${string}` | null;
|
|
12
12
|
readonly audience: {
|
|
13
13
|
readonly instance: import("analytics").AnalyticsInstance | null;
|
|
14
|
+
readonly is_identified: boolean;
|
|
15
|
+
storage_keys: {
|
|
16
|
+
identify: string;
|
|
17
|
+
open_tabs: string;
|
|
18
|
+
current_tab: string;
|
|
19
|
+
all_tabs: string;
|
|
20
|
+
};
|
|
14
21
|
initiate: (properties: import("./types").ILevoAudience.Properties) => Promise<any>;
|
|
15
|
-
identify: (
|
|
16
|
-
|
|
22
|
+
identify: (options?: {
|
|
23
|
+
withLock?: boolean;
|
|
24
|
+
}) => Promise<void>;
|
|
25
|
+
track: <T extends import("./types").ILevoAudience.Properties>(event: import("./types").AnalyticsEventType, properties: T & import("./types").ILevoAudience.Properties) => Promise<any>;
|
|
17
26
|
bounce: (properties: import("./types").ILevoAudience.Properties) => Promise<void>;
|
|
18
27
|
};
|
|
19
28
|
readonly blog: {
|
|
@@ -1,12 +1,21 @@
|
|
|
1
1
|
import { type AnalyticsInstance } from "analytics";
|
|
2
|
-
import type { ILevoAudience } from "../types/audience";
|
|
2
|
+
import type { AnalyticsEventType, ILevoAudience } from "../types/audience";
|
|
3
3
|
import { IHttpClient } from "../httpClient";
|
|
4
4
|
import { ILevoControl } from ".";
|
|
5
5
|
export declare const createLevoAudienceModule: (core: ILevoControl, httpClient: IHttpClient) => {
|
|
6
6
|
readonly instance: AnalyticsInstance | null;
|
|
7
|
+
readonly is_identified: boolean;
|
|
8
|
+
storage_keys: {
|
|
9
|
+
identify: string;
|
|
10
|
+
open_tabs: string;
|
|
11
|
+
current_tab: string;
|
|
12
|
+
all_tabs: string;
|
|
13
|
+
};
|
|
7
14
|
initiate: (properties: ILevoAudience.Properties) => Promise<any>;
|
|
8
|
-
identify: (
|
|
9
|
-
|
|
15
|
+
identify: (options?: {
|
|
16
|
+
withLock?: boolean;
|
|
17
|
+
}) => Promise<void>;
|
|
18
|
+
track: <T extends ILevoAudience.Properties>(event: AnalyticsEventType, properties: T & ILevoAudience.Properties) => Promise<any>;
|
|
10
19
|
bounce: (properties: ILevoAudience.Properties) => Promise<void>;
|
|
11
20
|
};
|
|
12
21
|
export type ILevoAudienceModule = ReturnType<typeof createLevoAudienceModule>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audience.d.ts","sourceRoot":"","sources":["../../src/control/audience.ts"],"names":[],"mappings":"AAEA,OAAO,EAAa,KAAK,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAM9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"audience.d.ts","sourceRoot":"","sources":["../../src/control/audience.ts"],"names":[],"mappings":"AAEA,OAAO,EAAa,KAAK,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAM9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EAAE,YAAY,EAAE,MAAM,GAAG,CAAC;AAEjC,eAAO,MAAM,wBAAwB,SAC7B,YAAY,cACN,WAAW;;;;;;;;;2BAgLa,aAAa,CAAC,UAAU;yBAtC1B;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE;YA0OnC,CAAC,SAAS,aAAa,CAAC,UAAU,SAC9C,kBAAkB,cACb,CAAC,GAAG,aAAa,CAAC,UAAU;yBAhBR,aAAa,CAAC,UAAU;CAkE3D,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,UAAU,CAAC,OAAO,wBAAwB,CAAC,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -311,7 +311,7 @@ var getLevoError = (error) => {
|
|
|
311
311
|
var LocalStorageLock = class {
|
|
312
312
|
key;
|
|
313
313
|
constructor(lockKey) {
|
|
314
|
-
this.key =
|
|
314
|
+
this.key = lockKey;
|
|
315
315
|
}
|
|
316
316
|
acquireLock(expiryMs = 5e3) {
|
|
317
317
|
const now = Date.now();
|
|
@@ -323,6 +323,11 @@ var LocalStorageLock = class {
|
|
|
323
323
|
}
|
|
324
324
|
}
|
|
325
325
|
localStorage.setItem(this.key, now.toString());
|
|
326
|
+
setTimeout(() => {
|
|
327
|
+
if (this.isLocked(expiryMs)) {
|
|
328
|
+
this.releaseLock();
|
|
329
|
+
}
|
|
330
|
+
}, expiryMs);
|
|
326
331
|
return true;
|
|
327
332
|
}
|
|
328
333
|
releaseLock() {
|
|
@@ -330,7 +335,9 @@ var LocalStorageLock = class {
|
|
|
330
335
|
}
|
|
331
336
|
isLocked(expiryMs = 5e3) {
|
|
332
337
|
const lockValue = localStorage.getItem(this.key);
|
|
333
|
-
if (!lockValue)
|
|
338
|
+
if (!lockValue) {
|
|
339
|
+
return false;
|
|
340
|
+
}
|
|
334
341
|
const timestamp = Number(lockValue);
|
|
335
342
|
return Date.now() - timestamp < expiryMs;
|
|
336
343
|
}
|
|
@@ -342,19 +349,16 @@ var createLevoAudienceModule = (core, httpClient) => {
|
|
|
342
349
|
const _IDLE_TIMEOUT = 60 * 1e3;
|
|
343
350
|
let instance = null;
|
|
344
351
|
let idle_listener = null;
|
|
352
|
+
const storage_keys = {
|
|
353
|
+
identify: "lock:lv_aud_identify",
|
|
354
|
+
open_tabs: "lv_insights_ot",
|
|
355
|
+
current_tab: "lv_insights_ct",
|
|
356
|
+
all_tabs: "lv_insights_at"
|
|
357
|
+
};
|
|
345
358
|
let _session = "";
|
|
346
359
|
let _device = "";
|
|
347
|
-
let
|
|
360
|
+
let is_identified = false;
|
|
348
361
|
let _batch = [];
|
|
349
|
-
const request = (url, data) => {
|
|
350
|
-
const headers = {
|
|
351
|
-
Accept: "application/json",
|
|
352
|
-
"Content-Type": "application/json"
|
|
353
|
-
};
|
|
354
|
-
return httpClient.instance.url(core?.insightsUrl, true).url(url).options({
|
|
355
|
-
keepAlive: true
|
|
356
|
-
}).headers(headers).post(data).json();
|
|
357
|
-
};
|
|
358
362
|
const getReferrer = () => {
|
|
359
363
|
if (typeof document === "undefined") {
|
|
360
364
|
return {};
|
|
@@ -381,7 +385,7 @@ var createLevoAudienceModule = (core, httpClient) => {
|
|
|
381
385
|
if (typeof window === "undefined" || !("sessionStorage" in window)) {
|
|
382
386
|
return "";
|
|
383
387
|
}
|
|
384
|
-
const CURRENT_TAB_LOCAL_STORAGE_KEY =
|
|
388
|
+
const CURRENT_TAB_LOCAL_STORAGE_KEY = storage_keys.current_tab;
|
|
385
389
|
return window.sessionStorage.getItem(CURRENT_TAB_LOCAL_STORAGE_KEY) || "";
|
|
386
390
|
} catch (_) {
|
|
387
391
|
return "";
|
|
@@ -392,31 +396,12 @@ var createLevoAudienceModule = (core, httpClient) => {
|
|
|
392
396
|
if (typeof window === "undefined" || !("localStorage" in window)) {
|
|
393
397
|
return 0;
|
|
394
398
|
}
|
|
395
|
-
const OT_LOCAL_STORAGE_KEY =
|
|
399
|
+
const OT_LOCAL_STORAGE_KEY = storage_keys.open_tabs;
|
|
396
400
|
return Number(window.localStorage.getItem(OT_LOCAL_STORAGE_KEY)) || 0;
|
|
397
401
|
} catch (_) {
|
|
398
402
|
return 0;
|
|
399
403
|
}
|
|
400
404
|
};
|
|
401
|
-
const startActivityListener = () => {
|
|
402
|
-
if (typeof document !== "undefined" && !idle_listener) {
|
|
403
|
-
idle_listener = onUserActivity({
|
|
404
|
-
timeout: _IDLE_TIMEOUT,
|
|
405
|
-
throttle: _IDLE_THROTTLE,
|
|
406
|
-
onIdle: (activeForSeconds) => {
|
|
407
|
-
track("user.idle", {
|
|
408
|
-
seconds_active: activeForSeconds
|
|
409
|
-
});
|
|
410
|
-
},
|
|
411
|
-
onWakeUp: (idleForSeconds) => {
|
|
412
|
-
track("user.active", {
|
|
413
|
-
seconds_idle: idleForSeconds
|
|
414
|
-
});
|
|
415
|
-
}
|
|
416
|
-
});
|
|
417
|
-
}
|
|
418
|
-
return null;
|
|
419
|
-
};
|
|
420
405
|
const getActivityStatus = () => {
|
|
421
406
|
const status = idle_listener?.getStatus();
|
|
422
407
|
if (!status) {
|
|
@@ -427,6 +412,28 @@ var createLevoAudienceModule = (core, httpClient) => {
|
|
|
427
412
|
seconds: status.isIdle ? status.idle : status.active
|
|
428
413
|
};
|
|
429
414
|
};
|
|
415
|
+
const identify = async (options) => {
|
|
416
|
+
if (!instance) {
|
|
417
|
+
return;
|
|
418
|
+
}
|
|
419
|
+
const withLock = options?.withLock ?? true;
|
|
420
|
+
const referrer = getReferrer();
|
|
421
|
+
const traits = await getUserProperties();
|
|
422
|
+
await instance.identify("", {
|
|
423
|
+
...traits,
|
|
424
|
+
referrer,
|
|
425
|
+
withLock
|
|
426
|
+
});
|
|
427
|
+
};
|
|
428
|
+
const request = (url, data) => {
|
|
429
|
+
const headers = {
|
|
430
|
+
Accept: "application/json",
|
|
431
|
+
"Content-Type": "application/json"
|
|
432
|
+
};
|
|
433
|
+
return httpClient.instance.url(core?.insightsUrl, true).url(url).options({
|
|
434
|
+
keepAlive: true
|
|
435
|
+
}).headers(headers).post(data).json();
|
|
436
|
+
};
|
|
430
437
|
const initiate = async (properties) => {
|
|
431
438
|
if (core.NODE_ENV === "development") {
|
|
432
439
|
return;
|
|
@@ -495,6 +502,7 @@ var createLevoAudienceModule = (core, httpClient) => {
|
|
|
495
502
|
if (!core?.insightsUrl || !core.workspace) {
|
|
496
503
|
return;
|
|
497
504
|
}
|
|
505
|
+
const withLock = payload?.traits?.withLock ?? true;
|
|
498
506
|
const welcomeInput = {
|
|
499
507
|
private_mode: payload.traits.private_mode,
|
|
500
508
|
dark_mode: payload.traits.dark_mode,
|
|
@@ -511,10 +519,13 @@ var createLevoAudienceModule = (core, httpClient) => {
|
|
|
511
519
|
tab_id: getCurrentTabId(),
|
|
512
520
|
tab_count: getTabCount()
|
|
513
521
|
};
|
|
514
|
-
|
|
515
|
-
if (
|
|
522
|
+
let identifyLock = null;
|
|
523
|
+
if (withLock) {
|
|
524
|
+
identifyLock = new LocalStorageLock(storage_keys.identify);
|
|
525
|
+
}
|
|
526
|
+
if (!identifyLock || identifyLock.acquireLock()) {
|
|
516
527
|
request(`/v1/insights/event/welcome`, welcomeInput).then((data) => {
|
|
517
|
-
|
|
528
|
+
is_identified = true;
|
|
518
529
|
_session = data.content.data.session;
|
|
519
530
|
_device = data.content.data.device;
|
|
520
531
|
let isQueued = false;
|
|
@@ -529,9 +540,9 @@ var createLevoAudienceModule = (core, httpClient) => {
|
|
|
529
540
|
request("/v1/insights/event/bulk", _batch);
|
|
530
541
|
}
|
|
531
542
|
_batch = [];
|
|
532
|
-
identifyLock
|
|
543
|
+
identifyLock?.releaseLock();
|
|
533
544
|
}).catch((e) => {
|
|
534
|
-
identifyLock
|
|
545
|
+
identifyLock?.releaseLock();
|
|
535
546
|
return getLevoError(e);
|
|
536
547
|
});
|
|
537
548
|
}
|
|
@@ -548,16 +559,24 @@ var createLevoAudienceModule = (core, httpClient) => {
|
|
|
548
559
|
identifier: properties.id
|
|
549
560
|
});
|
|
550
561
|
};
|
|
551
|
-
const
|
|
552
|
-
if (!
|
|
553
|
-
|
|
562
|
+
const startActivityListener = () => {
|
|
563
|
+
if (typeof document !== "undefined" && !idle_listener) {
|
|
564
|
+
idle_listener = onUserActivity({
|
|
565
|
+
timeout: _IDLE_TIMEOUT,
|
|
566
|
+
throttle: _IDLE_THROTTLE,
|
|
567
|
+
onIdle: (activeForSeconds) => {
|
|
568
|
+
track("user.idle", {
|
|
569
|
+
seconds_active: activeForSeconds
|
|
570
|
+
});
|
|
571
|
+
},
|
|
572
|
+
onWakeUp: (idleForSeconds) => {
|
|
573
|
+
track("user.active", {
|
|
574
|
+
seconds_idle: idleForSeconds
|
|
575
|
+
});
|
|
576
|
+
}
|
|
577
|
+
});
|
|
554
578
|
}
|
|
555
|
-
|
|
556
|
-
const traits = await getUserProperties();
|
|
557
|
-
await instance.identify("", {
|
|
558
|
-
...traits,
|
|
559
|
-
referrer
|
|
560
|
-
});
|
|
579
|
+
return null;
|
|
561
580
|
};
|
|
562
581
|
const bounce = async (properties) => {
|
|
563
582
|
const activity_status = getActivityStatus();
|
|
@@ -574,7 +593,7 @@ var createLevoAudienceModule = (core, httpClient) => {
|
|
|
574
593
|
if (!core.workspace) {
|
|
575
594
|
return;
|
|
576
595
|
}
|
|
577
|
-
if (instance &&
|
|
596
|
+
if (instance && is_identified) {
|
|
578
597
|
return instance.track(event, properties);
|
|
579
598
|
}
|
|
580
599
|
return _batch.push({
|
|
@@ -607,6 +626,10 @@ var createLevoAudienceModule = (core, httpClient) => {
|
|
|
607
626
|
get instance() {
|
|
608
627
|
return instance;
|
|
609
628
|
},
|
|
629
|
+
get is_identified() {
|
|
630
|
+
return is_identified;
|
|
631
|
+
},
|
|
632
|
+
storage_keys,
|
|
610
633
|
initiate,
|
|
611
634
|
identify,
|
|
612
635
|
track,
|
|
@@ -1142,6 +1165,55 @@ var createLevoClient = (options) => {
|
|
|
1142
1165
|
};
|
|
1143
1166
|
};
|
|
1144
1167
|
|
|
1168
|
+
// src/utils/listToX.ts
|
|
1169
|
+
var listToRecord = (columns) => {
|
|
1170
|
+
return columns.reduce((prev, current) => {
|
|
1171
|
+
prev[current] = current;
|
|
1172
|
+
return prev;
|
|
1173
|
+
}, {});
|
|
1174
|
+
};
|
|
1175
|
+
|
|
1176
|
+
// src/types/audience.ts
|
|
1177
|
+
var AnalyticsEventsList = [
|
|
1178
|
+
// Bevy Events
|
|
1179
|
+
"bevy.collection.filled",
|
|
1180
|
+
"bevy.collection.submitted",
|
|
1181
|
+
"bevy.collection.view",
|
|
1182
|
+
// Block Events
|
|
1183
|
+
"block.view",
|
|
1184
|
+
// Blog Events
|
|
1185
|
+
"blog.post.view",
|
|
1186
|
+
// Event Events
|
|
1187
|
+
"event.booking.confirmed",
|
|
1188
|
+
"event.booking.initiated",
|
|
1189
|
+
"event.booking.pending",
|
|
1190
|
+
"event.coupon.applied",
|
|
1191
|
+
"event.event.view",
|
|
1192
|
+
// Form Events
|
|
1193
|
+
"form.change",
|
|
1194
|
+
"form.submit",
|
|
1195
|
+
// Membership Events
|
|
1196
|
+
"membership.account.signin",
|
|
1197
|
+
"membership.account.signout",
|
|
1198
|
+
"membership.account.signup",
|
|
1199
|
+
// UI Events
|
|
1200
|
+
"button.click",
|
|
1201
|
+
"page.bounce",
|
|
1202
|
+
"page.click",
|
|
1203
|
+
"page.copy",
|
|
1204
|
+
"page.impression",
|
|
1205
|
+
"page.scroll",
|
|
1206
|
+
"page.view",
|
|
1207
|
+
"page.metrics",
|
|
1208
|
+
"page.selection",
|
|
1209
|
+
"page.speedtest",
|
|
1210
|
+
// User Activity Events
|
|
1211
|
+
"user.active",
|
|
1212
|
+
"user.speedtest",
|
|
1213
|
+
"user.idle"
|
|
1214
|
+
];
|
|
1215
|
+
var AnalyticsEvents = listToRecord(AnalyticsEventsList);
|
|
1216
|
+
|
|
1145
1217
|
// src/constants/collection/fieldInterfaceFormat.ts
|
|
1146
1218
|
var formatsByInterface = {
|
|
1147
1219
|
ArrayWidget: [],
|
|
@@ -1351,4 +1423,4 @@ var formatImagePath = (string) => {
|
|
|
1351
1423
|
return "";
|
|
1352
1424
|
};
|
|
1353
1425
|
|
|
1354
|
-
export { FieldInterfaces, FieldInterfacesList, FieldKind, FieldKindList, LevoError, LevoOAuthProviderList, LocalStorageLock, MediaKind, MediaKindList, createLevoClient, defaultByKinds, formatImagePath, formatsByInterface, getLevoError, interfaceKinds };
|
|
1426
|
+
export { AnalyticsEvents, AnalyticsEventsList, FieldInterfaces, FieldInterfacesList, FieldKind, FieldKindList, LevoError, LevoOAuthProviderList, LocalStorageLock, MediaKind, MediaKindList, createLevoClient, defaultByKinds, formatImagePath, formatsByInterface, getLevoError, interfaceKinds };
|
package/dist/types/audience.d.ts
CHANGED
|
@@ -1,3 +1,35 @@
|
|
|
1
|
+
export declare const AnalyticsEventsList: readonly ["bevy.collection.filled", "bevy.collection.submitted", "bevy.collection.view", "block.view", "blog.post.view", "event.booking.confirmed", "event.booking.initiated", "event.booking.pending", "event.coupon.applied", "event.event.view", "form.change", "form.submit", "membership.account.signin", "membership.account.signout", "membership.account.signup", "button.click", "page.bounce", "page.click", "page.copy", "page.impression", "page.scroll", "page.view", "page.metrics", "page.selection", "page.speedtest", "user.active", "user.speedtest", "user.idle"];
|
|
2
|
+
export type AnalyticsEventType = (typeof AnalyticsEventsList)[number];
|
|
3
|
+
export declare const AnalyticsEvents: {
|
|
4
|
+
"bevy.collection.filled": "bevy.collection.filled";
|
|
5
|
+
"bevy.collection.submitted": "bevy.collection.submitted";
|
|
6
|
+
"bevy.collection.view": "bevy.collection.view";
|
|
7
|
+
"block.view": "block.view";
|
|
8
|
+
"blog.post.view": "blog.post.view";
|
|
9
|
+
"event.booking.confirmed": "event.booking.confirmed";
|
|
10
|
+
"event.booking.initiated": "event.booking.initiated";
|
|
11
|
+
"event.booking.pending": "event.booking.pending";
|
|
12
|
+
"event.coupon.applied": "event.coupon.applied";
|
|
13
|
+
"event.event.view": "event.event.view";
|
|
14
|
+
"form.change": "form.change";
|
|
15
|
+
"form.submit": "form.submit";
|
|
16
|
+
"membership.account.signin": "membership.account.signin";
|
|
17
|
+
"membership.account.signout": "membership.account.signout";
|
|
18
|
+
"membership.account.signup": "membership.account.signup";
|
|
19
|
+
"button.click": "button.click";
|
|
20
|
+
"page.bounce": "page.bounce";
|
|
21
|
+
"page.click": "page.click";
|
|
22
|
+
"page.copy": "page.copy";
|
|
23
|
+
"page.impression": "page.impression";
|
|
24
|
+
"page.scroll": "page.scroll";
|
|
25
|
+
"page.view": "page.view";
|
|
26
|
+
"page.metrics": "page.metrics";
|
|
27
|
+
"page.selection": "page.selection";
|
|
28
|
+
"page.speedtest": "page.speedtest";
|
|
29
|
+
"user.active": "user.active";
|
|
30
|
+
"user.speedtest": "user.speedtest";
|
|
31
|
+
"user.idle": "user.idle";
|
|
32
|
+
};
|
|
1
33
|
export declare namespace ILevoAudience {
|
|
2
34
|
interface Traits {
|
|
3
35
|
private_mode: boolean;
|
|
@@ -10,6 +42,7 @@ export declare namespace ILevoAudience {
|
|
|
10
42
|
data: Record<string, string>;
|
|
11
43
|
};
|
|
12
44
|
properties: Record<string, any>;
|
|
45
|
+
withLock?: boolean;
|
|
13
46
|
}
|
|
14
47
|
type BaseProperties = Traits & {
|
|
15
48
|
resource: string;
|
|
@@ -29,7 +62,7 @@ export declare namespace ILevoAudience {
|
|
|
29
62
|
type EventProperties = {
|
|
30
63
|
properties: Properties;
|
|
31
64
|
traits: Traits;
|
|
32
|
-
event:
|
|
65
|
+
event: AnalyticsEventType;
|
|
33
66
|
type: "track" | "page" | "identify";
|
|
34
67
|
userId: string | null;
|
|
35
68
|
};
|
|
@@ -51,7 +84,7 @@ export declare namespace ILevoAudience {
|
|
|
51
84
|
type CollectInput = BaseInput & {
|
|
52
85
|
session_id?: string;
|
|
53
86
|
device_id?: string;
|
|
54
|
-
event:
|
|
87
|
+
event: AnalyticsEventType;
|
|
55
88
|
version?: number;
|
|
56
89
|
properties: Properties;
|
|
57
90
|
resource: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audience.d.ts","sourceRoot":"","sources":["../../src/types/audience.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"audience.d.ts","sourceRoot":"","sources":["../../src/types/audience.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,mBAAmB,sjBA4CtB,CAAC;AAEX,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEtE,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAC2B,CAAC;AAGxD,yBAAiB,aAAa,CAAC;IAC7B,UAAiB,MAAM;QACrB,YAAY,EAAE,OAAO,CAAC;QACtB,SAAS,EAAE,OAAO,CAAC;QACnB,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE;YACR,IAAI,EAAE,MAAM,CAAC;YACb,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACjC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;SAC9B,CAAC;QACF,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAEhC,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB;IAED,KAAY,cAAc,GAAG,MAAM,GAAG;QACpC,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IAEF,UAAiB,eAAe;QAC9B,EAAE,EAAE,MAAM,CAAC;KACZ;IAED,UAAiB,kBAAkB;QACjC,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB;IAED,UAAiB,gBAAgB;QAC/B,OAAO,EAAE,MAAM,CAAC;KACjB;IAED,KAAY,UAAU,GAAG,OAAO,CAC9B,cAAc,GAAG,eAAe,GAAG,kBAAkB,GAAG,gBAAgB,CACzE,GACC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,GAAG,WAAW,GAAG,QAAQ,CAAC,CAAC,GACjE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAEtB,KAAY,eAAe,GAAG;QAC5B,UAAU,EAAE,UAAU,CAAC;QACvB,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,kBAAkB,CAAC;QAC1B,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,UAAU,CAAC;QACpC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;KACvB,CAAC;IAEF,KAAY,SAAS,GAAG;QACtB,YAAY,EAAE,MAAM,CAAC;QACrB,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,GAAG,EAAE,MAAM,CAAC;QACZ,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IAEF,KAAY,YAAY,GAAG,MAAM,GAAG,SAAS,CAAC;IAE9C,KAAY,eAAe,GAAG;QAC5B,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IAEF,KAAY,YAAY,GAAG,SAAS,GAAG;QACrC,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,KAAK,EAAE,kBAAkB,CAAC;QAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,UAAU,CAAC;QACvB,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;KAChC,CAAC;IAEF,KAAY,cAAc,GAAG;QAC3B,MAAM,EAAE,OAAO,CAAC;QAChB,UAAU,EAAE,OAAO,CAAC;QACpB,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACH"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"listToX.d.ts","sourceRoot":"","sources":["../../src/utils/listToX.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,MAAM,WAClC,SAAS,MAAM,EAAE,KACzB,MAAM,CAAC,CAAC,EAAE,MAAM,CAOlB,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,MAAM,WAClC,SAAS,MAAM,EAAE,KACzB,GACA,CAAM,IAAD,CAAC,GAAG,CAAC,GAUZ,CAAC"}
|
package/dist/utils/lock.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lock.d.ts","sourceRoot":"","sources":["../../src/utils/lock.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,GAAG,CAAS;gBAER,OAAO,EAAE,MAAM;IAI3B,WAAW,CAAC,QAAQ,GAAE,MAAa,GAAG,OAAO;
|
|
1
|
+
{"version":3,"file":"lock.d.ts","sourceRoot":"","sources":["../../src/utils/lock.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,GAAG,CAAS;gBAER,OAAO,EAAE,MAAM;IAI3B,WAAW,CAAC,QAAQ,GAAE,MAAa,GAAG,OAAO;IAuB7C,WAAW;IAIX,QAAQ,CAAC,QAAQ,GAAE,MAAa,GAAG,OAAO;CAS3C"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@levo-so/core",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.37",
|
|
4
4
|
"author": "Levo Engineering <devs@theinternetfolks.com>",
|
|
5
5
|
"description": "Levo common utilities",
|
|
6
6
|
"type": "module",
|
|
@@ -25,8 +25,8 @@
|
|
|
25
25
|
"@types/lodash-es": "4.17.12",
|
|
26
26
|
"tsup": "8.2.4",
|
|
27
27
|
"typescript": "5.5.4",
|
|
28
|
-
"@levo/
|
|
29
|
-
"@levo/
|
|
28
|
+
"@levo/ts-config": "0.0.0",
|
|
29
|
+
"@levo/eslint-config": "0.0.0"
|
|
30
30
|
},
|
|
31
31
|
"main": "./dist/index.js",
|
|
32
32
|
"module": "./dist/index.js",
|