@transcend-io/cli 8.38.1 → 8.38.2
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/{api-keys-y8Txn6tT.cjs → api-keys-DMPYZTne.cjs} +2 -2
- package/dist/{api-keys-y8Txn6tT.cjs.map → api-keys-DMPYZTne.cjs.map} +1 -1
- package/dist/{app-_ZoYl64o.cjs → app-bPlpZQj_.cjs} +18 -18
- package/dist/{app-_ZoYl64o.cjs.map → app-bPlpZQj_.cjs.map} +1 -1
- package/dist/bin/bash-complete.cjs +1 -1
- package/dist/bin/cli.cjs +1 -1
- package/dist/bin/deprecated-command.cjs +1 -1
- package/dist/{code-scanning-ByZQgqip.cjs → code-scanning-D6YstOWo.cjs} +2 -2
- package/dist/{code-scanning-ByZQgqip.cjs.map → code-scanning-D6YstOWo.cjs.map} +1 -1
- package/dist/{command-CLULRNcd.cjs → command-C39HGpGR.cjs} +2 -2
- package/dist/{command-CLULRNcd.cjs.map → command-C39HGpGR.cjs.map} +1 -1
- package/dist/{consent-manager-CJZ5GTmv.cjs → consent-manager-C3UVAKd_.cjs} +2 -2
- package/dist/{consent-manager-CJZ5GTmv.cjs.map → consent-manager-C3UVAKd_.cjs.map} +1 -1
- package/dist/{constants-CzmvL6Mw.cjs → constants-gJm1eQH0.cjs} +2 -2
- package/dist/{constants-CzmvL6Mw.cjs.map → constants-gJm1eQH0.cjs.map} +1 -1
- package/dist/{cron-Ts7kHP6_.cjs → cron-NLlyCiml.cjs} +2 -2
- package/dist/{cron-Ts7kHP6_.cjs.map → cron-NLlyCiml.cjs.map} +1 -1
- package/dist/{data-inventory-D0Tt_vAm.cjs → data-inventory-a9Nz9lUO.cjs} +2 -2
- package/dist/{data-inventory-D0Tt_vAm.cjs.map → data-inventory-a9Nz9lUO.cjs.map} +1 -1
- package/dist/{dataFlowsToDataSilos-B7nTxawV.cjs → dataFlowsToDataSilos-BJh0hzJI.cjs} +2 -2
- package/dist/{dataFlowsToDataSilos-B7nTxawV.cjs.map → dataFlowsToDataSilos-BJh0hzJI.cjs.map} +1 -1
- package/dist/{impl-_wktLwfn.cjs → impl--RUTvJko.cjs} +2 -2
- package/dist/{impl-_wktLwfn.cjs.map → impl--RUTvJko.cjs.map} +1 -1
- package/dist/{impl-CujcX7vE.cjs → impl-6vrF2_M3.cjs} +2 -2
- package/dist/{impl-CujcX7vE.cjs.map → impl-6vrF2_M3.cjs.map} +1 -1
- package/dist/{impl-8HXqFDdD.cjs → impl-BAZ34gSp.cjs} +2 -2
- package/dist/{impl-8HXqFDdD.cjs.map → impl-BAZ34gSp.cjs.map} +1 -1
- package/dist/{impl-BvrbCovf.cjs → impl-BAs-7neS.cjs} +2 -2
- package/dist/{impl-BvrbCovf.cjs.map → impl-BAs-7neS.cjs.map} +1 -1
- package/dist/{impl-CrieEyzk.cjs → impl-BF44h4oH.cjs} +2 -2
- package/dist/{impl-CrieEyzk.cjs.map → impl-BF44h4oH.cjs.map} +1 -1
- package/dist/{impl-1qwMfsU4.cjs → impl-BKXkRTVx.cjs} +2 -2
- package/dist/{impl-1qwMfsU4.cjs.map → impl-BKXkRTVx.cjs.map} +1 -1
- package/dist/{impl-ChHjX-p0.cjs → impl-BN8N7BHo.cjs} +2 -2
- package/dist/{impl-ChHjX-p0.cjs.map → impl-BN8N7BHo.cjs.map} +1 -1
- package/dist/{impl-B8rg6CMv.cjs → impl-BO1fP5DL.cjs} +2 -2
- package/dist/{impl-B8rg6CMv.cjs.map → impl-BO1fP5DL.cjs.map} +1 -1
- package/dist/{impl-DkyT66jZ.cjs → impl-BRAiiMt3.cjs} +2 -2
- package/dist/{impl-DkyT66jZ.cjs.map → impl-BRAiiMt3.cjs.map} +1 -1
- package/dist/{impl-C6Vv_fyU.cjs → impl-BRNha4nQ.cjs} +2 -2
- package/dist/{impl-C6Vv_fyU.cjs.map → impl-BRNha4nQ.cjs.map} +1 -1
- package/dist/{impl-BPxZw3LN.cjs → impl-Ba1d91O1.cjs} +2 -2
- package/dist/{impl-BPxZw3LN.cjs.map → impl-Ba1d91O1.cjs.map} +1 -1
- package/dist/{impl-Bhv353rp.cjs → impl-Bgp_TuxN.cjs} +2 -2
- package/dist/{impl-Bhv353rp.cjs.map → impl-Bgp_TuxN.cjs.map} +1 -1
- package/dist/{impl-DpkTAuVd.cjs → impl-BreaZGaV.cjs} +2 -2
- package/dist/{impl-DpkTAuVd.cjs.map → impl-BreaZGaV.cjs.map} +1 -1
- package/dist/{impl-zSp6Nypz.cjs → impl-BzAwMfNS.cjs} +2 -2
- package/dist/{impl-zSp6Nypz.cjs.map → impl-BzAwMfNS.cjs.map} +1 -1
- package/dist/{impl-DvFcMtV7.cjs → impl-C0eKnbO8.cjs} +2 -2
- package/dist/{impl-DvFcMtV7.cjs.map → impl-C0eKnbO8.cjs.map} +1 -1
- package/dist/{impl-BxKSXO7j.cjs → impl-C2kTLgRr.cjs} +2 -2
- package/dist/{impl-BxKSXO7j.cjs.map → impl-C2kTLgRr.cjs.map} +1 -1
- package/dist/{impl-BIjDq-3S.cjs → impl-CA7X_TDD.cjs} +2 -2
- package/dist/{impl-BIjDq-3S.cjs.map → impl-CA7X_TDD.cjs.map} +1 -1
- package/dist/{impl-DYHQz-Wu.cjs → impl-CC0T0jNd.cjs} +2 -2
- package/dist/{impl-DYHQz-Wu.cjs.map → impl-CC0T0jNd.cjs.map} +1 -1
- package/dist/{impl-B61wd2KQ.cjs → impl-CJT35FpG.cjs} +2 -2
- package/dist/{impl-B61wd2KQ.cjs.map → impl-CJT35FpG.cjs.map} +1 -1
- package/dist/{impl-Dzi2-R-5.cjs → impl-CTXPMoXc.cjs} +2 -2
- package/dist/{impl-Dzi2-R-5.cjs.map → impl-CTXPMoXc.cjs.map} +1 -1
- package/dist/{impl-Dzyo_6if.cjs → impl-CUScCLAS.cjs} +2 -2
- package/dist/{impl-Dzyo_6if.cjs.map → impl-CUScCLAS.cjs.map} +1 -1
- package/dist/{impl-DhKyE3ja.cjs → impl-CYmPZogW.cjs} +2 -2
- package/dist/{impl-DhKyE3ja.cjs.map → impl-CYmPZogW.cjs.map} +1 -1
- package/dist/{impl-BczOEWXK.cjs → impl-Ccd0FaOU.cjs} +2 -2
- package/dist/{impl-BczOEWXK.cjs.map → impl-Ccd0FaOU.cjs.map} +1 -1
- package/dist/{impl-BeUsmMIp.cjs → impl-CmKWcYiV.cjs} +2 -2
- package/dist/{impl-BeUsmMIp.cjs.map → impl-CmKWcYiV.cjs.map} +1 -1
- package/dist/{impl-brt-L_kS.cjs → impl-CqshC7my.cjs} +2 -2
- package/dist/{impl-brt-L_kS.cjs.map → impl-CqshC7my.cjs.map} +1 -1
- package/dist/{impl-DHIiB7cV.cjs → impl-Cypfgm4t.cjs} +2 -2
- package/dist/{impl-DHIiB7cV.cjs.map → impl-Cypfgm4t.cjs.map} +1 -1
- package/dist/{impl-D_tCWU8I.cjs → impl-D2SWeIGe.cjs} +2 -2
- package/dist/{impl-D_tCWU8I.cjs.map → impl-D2SWeIGe.cjs.map} +1 -1
- package/dist/{impl-DCKUxoWY.cjs → impl-DLwIQVA6.cjs} +2 -2
- package/dist/{impl-DCKUxoWY.cjs.map → impl-DLwIQVA6.cjs.map} +1 -1
- package/dist/{impl-AZPWCkCp.cjs → impl-DMm4lt-A.cjs} +2 -2
- package/dist/{impl-AZPWCkCp.cjs.map → impl-DMm4lt-A.cjs.map} +1 -1
- package/dist/{impl-iuvcsdad.cjs → impl-DRsuGuRx.cjs} +2 -2
- package/dist/{impl-iuvcsdad.cjs.map → impl-DRsuGuRx.cjs.map} +1 -1
- package/dist/{impl-D9OOb2JE.cjs → impl-DSrvfkVp.cjs} +2 -2
- package/dist/{impl-D9OOb2JE.cjs.map → impl-DSrvfkVp.cjs.map} +1 -1
- package/dist/{impl-JgMjiEBD.cjs → impl-DZMWJNLE.cjs} +2 -2
- package/dist/{impl-JgMjiEBD.cjs.map → impl-DZMWJNLE.cjs.map} +1 -1
- package/dist/{impl-CGSBsFc7.cjs → impl-DbqAvW7X.cjs} +2 -2
- package/dist/{impl-CGSBsFc7.cjs.map → impl-DbqAvW7X.cjs.map} +1 -1
- package/dist/{impl-kmDIC1No.cjs → impl-Dl78xJu6.cjs} +2 -2
- package/dist/{impl-kmDIC1No.cjs.map → impl-Dl78xJu6.cjs.map} +1 -1
- package/dist/{impl-ChqwjO34.cjs → impl-Dvpc-Qa5.cjs} +2 -2
- package/dist/{impl-ChqwjO34.cjs.map → impl-Dvpc-Qa5.cjs.map} +1 -1
- package/dist/{impl-DG_MFWMU.cjs → impl-DySeNL1m.cjs} +2 -2
- package/dist/{impl-DG_MFWMU.cjs.map → impl-DySeNL1m.cjs.map} +1 -1
- package/dist/{impl-D_4LdDL9.cjs → impl-Fj-Esff-.cjs} +2 -2
- package/dist/{impl-D_4LdDL9.cjs.map → impl-Fj-Esff-.cjs.map} +1 -1
- package/dist/{impl-afJ-fKK4.cjs → impl-W6tVmm8N.cjs} +2 -2
- package/dist/{impl-afJ-fKK4.cjs.map → impl-W6tVmm8N.cjs.map} +1 -1
- package/dist/{impl-BiPKUZQ2.cjs → impl-WphnR0cX.cjs} +2 -2
- package/dist/{impl-BiPKUZQ2.cjs.map → impl-WphnR0cX.cjs.map} +1 -1
- package/dist/{impl-ByavdlGX.cjs → impl-YNAicr-z.cjs} +2 -2
- package/dist/{impl-ByavdlGX.cjs.map → impl-YNAicr-z.cjs.map} +1 -1
- package/dist/{impl-HogBsNBk.cjs → impl-jEpWgC2N.cjs} +2 -2
- package/dist/{impl-HogBsNBk.cjs.map → impl-jEpWgC2N.cjs.map} +1 -1
- package/dist/{impl-JkHt--m4.cjs → impl-x2P-_Pk2.cjs} +2 -2
- package/dist/{impl-JkHt--m4.cjs.map → impl-x2P-_Pk2.cjs.map} +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +58 -55
- package/dist/{manual-enrichment-CW8iihdb.cjs → manual-enrichment-DTVJo7hP.cjs} +2 -2
- package/dist/{manual-enrichment-CW8iihdb.cjs.map → manual-enrichment-DTVJo7hP.cjs.map} +1 -1
- package/dist/{pooling-Dw0a42I_.cjs → pooling-C-TYBnHI.cjs} +2 -2
- package/dist/{pooling-Dw0a42I_.cjs.map → pooling-C-TYBnHI.cjs.map} +1 -1
- package/dist/{preference-management-CkmW6Z91.cjs → preference-management-Ch77Yxod.cjs} +2 -2
- package/dist/{preference-management-CkmW6Z91.cjs.map → preference-management-Ch77Yxod.cjs.map} +1 -1
- package/dist/{syncConfigurationToTranscend-DkeLrq-I.cjs → syncConfigurationToTranscend-s-cjtUI3.cjs} +5 -4
- package/dist/syncConfigurationToTranscend-s-cjtUI3.cjs.map +1 -0
- package/dist/{uploadConsents-zr1Hg-JE.cjs → uploadConsents-CDkk_sWY.cjs} +2 -2
- package/dist/{uploadConsents-zr1Hg-JE.cjs.map → uploadConsents-CDkk_sWY.cjs.map} +1 -1
- package/package.json +1 -1
- package/dist/syncConfigurationToTranscend-DkeLrq-I.cjs.map +0 -1
package/dist/index.d.cts
CHANGED
|
@@ -5676,8 +5676,6 @@ declare const ProcessingPurposePreviewInput: t.IntersectionC<[t.TypeC<{
|
|
|
5676
5676
|
/** The parent purpose */
|
|
5677
5677
|
purpose: t.KeyofC<{
|
|
5678
5678
|
HR: unknown;
|
|
5679
|
-
OTHER: unknown;
|
|
5680
|
-
UNSPECIFIED: unknown;
|
|
5681
5679
|
ESSENTIAL: unknown;
|
|
5682
5680
|
ADDITIONAL_FUNCTIONALITY: unknown;
|
|
5683
5681
|
ADVERTISING: unknown;
|
|
@@ -5688,6 +5686,8 @@ declare const ProcessingPurposePreviewInput: t.IntersectionC<[t.TypeC<{
|
|
|
5688
5686
|
LEGAL: unknown;
|
|
5689
5687
|
TRANSFER: unknown;
|
|
5690
5688
|
SALE: unknown;
|
|
5689
|
+
OTHER: unknown;
|
|
5690
|
+
UNSPECIFIED: unknown;
|
|
5691
5691
|
}>;
|
|
5692
5692
|
}>, t.PartialC<{
|
|
5693
5693
|
/** User-defined name for this processing purpose sub category */
|
|
@@ -5702,6 +5702,8 @@ declare const DataCategoryPreviewInput: t.IntersectionC<[t.TypeC<{
|
|
|
5702
5702
|
/** The parent category */
|
|
5703
5703
|
category: t.KeyofC<{
|
|
5704
5704
|
ID: unknown;
|
|
5705
|
+
OTHER: unknown;
|
|
5706
|
+
UNSPECIFIED: unknown;
|
|
5705
5707
|
FINANCIAL: unknown;
|
|
5706
5708
|
HEALTH: unknown;
|
|
5707
5709
|
CONTACT: unknown;
|
|
@@ -5714,8 +5716,6 @@ declare const DataCategoryPreviewInput: t.IntersectionC<[t.TypeC<{
|
|
|
5714
5716
|
TRACKING: unknown;
|
|
5715
5717
|
DEVICE: unknown;
|
|
5716
5718
|
SURVEY: unknown;
|
|
5717
|
-
OTHER: unknown;
|
|
5718
|
-
UNSPECIFIED: unknown;
|
|
5719
5719
|
NOT_PERSONAL_DATA: unknown;
|
|
5720
5720
|
INTEGRATION_IDENTIFIER: unknown;
|
|
5721
5721
|
}>;
|
|
@@ -5734,6 +5734,8 @@ declare const DataCategoryGuessInput: t.IntersectionC<[t.TypeC<{
|
|
|
5734
5734
|
/** The parent category */
|
|
5735
5735
|
category: t.KeyofC<{
|
|
5736
5736
|
ID: unknown;
|
|
5737
|
+
OTHER: unknown;
|
|
5738
|
+
UNSPECIFIED: unknown;
|
|
5737
5739
|
FINANCIAL: unknown;
|
|
5738
5740
|
HEALTH: unknown;
|
|
5739
5741
|
CONTACT: unknown;
|
|
@@ -5746,8 +5748,6 @@ declare const DataCategoryGuessInput: t.IntersectionC<[t.TypeC<{
|
|
|
5746
5748
|
TRACKING: unknown;
|
|
5747
5749
|
DEVICE: unknown;
|
|
5748
5750
|
SURVEY: unknown;
|
|
5749
|
-
OTHER: unknown;
|
|
5750
|
-
UNSPECIFIED: unknown;
|
|
5751
5751
|
NOT_PERSONAL_DATA: unknown;
|
|
5752
5752
|
INTEGRATION_IDENTIFIER: unknown;
|
|
5753
5753
|
}>;
|
|
@@ -5778,6 +5778,8 @@ declare const DataCategoryRecommendationInput: t.IntersectionC<[t.TypeC<{
|
|
|
5778
5778
|
/** The parent category */
|
|
5779
5779
|
category: t.KeyofC<{
|
|
5780
5780
|
ID: unknown;
|
|
5781
|
+
OTHER: unknown;
|
|
5782
|
+
UNSPECIFIED: unknown;
|
|
5781
5783
|
FINANCIAL: unknown;
|
|
5782
5784
|
HEALTH: unknown;
|
|
5783
5785
|
CONTACT: unknown;
|
|
@@ -5790,8 +5792,6 @@ declare const DataCategoryRecommendationInput: t.IntersectionC<[t.TypeC<{
|
|
|
5790
5792
|
TRACKING: unknown;
|
|
5791
5793
|
DEVICE: unknown;
|
|
5792
5794
|
SURVEY: unknown;
|
|
5793
|
-
OTHER: unknown;
|
|
5794
|
-
UNSPECIFIED: unknown;
|
|
5795
5795
|
NOT_PERSONAL_DATA: unknown;
|
|
5796
5796
|
INTEGRATION_IDENTIFIER: unknown;
|
|
5797
5797
|
}>;
|
|
@@ -11435,6 +11435,8 @@ declare const DataCategoryInput: t.IntersectionC<[t.TypeC<{
|
|
|
11435
11435
|
/** Type of data category */
|
|
11436
11436
|
category: t.KeyofC<{
|
|
11437
11437
|
ID: unknown;
|
|
11438
|
+
OTHER: unknown;
|
|
11439
|
+
UNSPECIFIED: unknown;
|
|
11438
11440
|
FINANCIAL: unknown;
|
|
11439
11441
|
HEALTH: unknown;
|
|
11440
11442
|
CONTACT: unknown;
|
|
@@ -11447,8 +11449,6 @@ declare const DataCategoryInput: t.IntersectionC<[t.TypeC<{
|
|
|
11447
11449
|
TRACKING: unknown;
|
|
11448
11450
|
DEVICE: unknown;
|
|
11449
11451
|
SURVEY: unknown;
|
|
11450
|
-
OTHER: unknown;
|
|
11451
|
-
UNSPECIFIED: unknown;
|
|
11452
11452
|
NOT_PERSONAL_DATA: unknown;
|
|
11453
11453
|
INTEGRATION_IDENTIFIER: unknown;
|
|
11454
11454
|
}>;
|
|
@@ -11493,8 +11493,6 @@ declare const ProcessingPurposeInput: t.IntersectionC<[t.TypeC<{
|
|
|
11493
11493
|
/** Type of processing purpose */
|
|
11494
11494
|
purpose: t.KeyofC<{
|
|
11495
11495
|
HR: unknown;
|
|
11496
|
-
OTHER: unknown;
|
|
11497
|
-
UNSPECIFIED: unknown;
|
|
11498
11496
|
ESSENTIAL: unknown;
|
|
11499
11497
|
ADDITIONAL_FUNCTIONALITY: unknown;
|
|
11500
11498
|
ADVERTISING: unknown;
|
|
@@ -11505,6 +11503,8 @@ declare const ProcessingPurposeInput: t.IntersectionC<[t.TypeC<{
|
|
|
11505
11503
|
LEGAL: unknown;
|
|
11506
11504
|
TRANSFER: unknown;
|
|
11507
11505
|
SALE: unknown;
|
|
11506
|
+
OTHER: unknown;
|
|
11507
|
+
UNSPECIFIED: unknown;
|
|
11508
11508
|
}>;
|
|
11509
11509
|
}>, t.PartialC<{
|
|
11510
11510
|
/** Description of processing purpose */
|
|
@@ -11598,8 +11598,6 @@ declare const FieldInput: t.IntersectionC<[t.TypeC<{
|
|
|
11598
11598
|
/** The parent purpose */
|
|
11599
11599
|
purpose: t.KeyofC<{
|
|
11600
11600
|
HR: unknown;
|
|
11601
|
-
OTHER: unknown;
|
|
11602
|
-
UNSPECIFIED: unknown;
|
|
11603
11601
|
ESSENTIAL: unknown;
|
|
11604
11602
|
ADDITIONAL_FUNCTIONALITY: unknown;
|
|
11605
11603
|
ADVERTISING: unknown;
|
|
@@ -11610,6 +11608,8 @@ declare const FieldInput: t.IntersectionC<[t.TypeC<{
|
|
|
11610
11608
|
LEGAL: unknown;
|
|
11611
11609
|
TRANSFER: unknown;
|
|
11612
11610
|
SALE: unknown;
|
|
11611
|
+
OTHER: unknown;
|
|
11612
|
+
UNSPECIFIED: unknown;
|
|
11613
11613
|
}>;
|
|
11614
11614
|
}>, t.PartialC<{
|
|
11615
11615
|
/** User-defined name for this processing purpose sub category */
|
|
@@ -11624,6 +11624,8 @@ declare const FieldInput: t.IntersectionC<[t.TypeC<{
|
|
|
11624
11624
|
/** The parent category */
|
|
11625
11625
|
category: t.KeyofC<{
|
|
11626
11626
|
ID: unknown;
|
|
11627
|
+
OTHER: unknown;
|
|
11628
|
+
UNSPECIFIED: unknown;
|
|
11627
11629
|
FINANCIAL: unknown;
|
|
11628
11630
|
HEALTH: unknown;
|
|
11629
11631
|
CONTACT: unknown;
|
|
@@ -11636,8 +11638,6 @@ declare const FieldInput: t.IntersectionC<[t.TypeC<{
|
|
|
11636
11638
|
TRACKING: unknown;
|
|
11637
11639
|
DEVICE: unknown;
|
|
11638
11640
|
SURVEY: unknown;
|
|
11639
|
-
OTHER: unknown;
|
|
11640
|
-
UNSPECIFIED: unknown;
|
|
11641
11641
|
NOT_PERSONAL_DATA: unknown;
|
|
11642
11642
|
INTEGRATION_IDENTIFIER: unknown;
|
|
11643
11643
|
}>;
|
|
@@ -11656,6 +11656,8 @@ declare const FieldInput: t.IntersectionC<[t.TypeC<{
|
|
|
11656
11656
|
/** The parent category */
|
|
11657
11657
|
category: t.KeyofC<{
|
|
11658
11658
|
ID: unknown;
|
|
11659
|
+
OTHER: unknown;
|
|
11660
|
+
UNSPECIFIED: unknown;
|
|
11659
11661
|
FINANCIAL: unknown;
|
|
11660
11662
|
HEALTH: unknown;
|
|
11661
11663
|
CONTACT: unknown;
|
|
@@ -11668,8 +11670,6 @@ declare const FieldInput: t.IntersectionC<[t.TypeC<{
|
|
|
11668
11670
|
TRACKING: unknown;
|
|
11669
11671
|
DEVICE: unknown;
|
|
11670
11672
|
SURVEY: unknown;
|
|
11671
|
-
OTHER: unknown;
|
|
11672
|
-
UNSPECIFIED: unknown;
|
|
11673
11673
|
NOT_PERSONAL_DATA: unknown;
|
|
11674
11674
|
INTEGRATION_IDENTIFIER: unknown;
|
|
11675
11675
|
}>;
|
|
@@ -11817,8 +11817,6 @@ declare const DatapointInput: t.IntersectionC<[t.TypeC<{
|
|
|
11817
11817
|
/** The parent purpose */
|
|
11818
11818
|
purpose: t.KeyofC<{
|
|
11819
11819
|
HR: unknown;
|
|
11820
|
-
OTHER: unknown;
|
|
11821
|
-
UNSPECIFIED: unknown;
|
|
11822
11820
|
ESSENTIAL: unknown;
|
|
11823
11821
|
ADDITIONAL_FUNCTIONALITY: unknown;
|
|
11824
11822
|
ADVERTISING: unknown;
|
|
@@ -11829,6 +11827,8 @@ declare const DatapointInput: t.IntersectionC<[t.TypeC<{
|
|
|
11829
11827
|
LEGAL: unknown;
|
|
11830
11828
|
TRANSFER: unknown;
|
|
11831
11829
|
SALE: unknown;
|
|
11830
|
+
OTHER: unknown;
|
|
11831
|
+
UNSPECIFIED: unknown;
|
|
11832
11832
|
}>;
|
|
11833
11833
|
}>, t.PartialC<{
|
|
11834
11834
|
/** User-defined name for this processing purpose sub category */
|
|
@@ -11843,6 +11843,8 @@ declare const DatapointInput: t.IntersectionC<[t.TypeC<{
|
|
|
11843
11843
|
/** The parent category */
|
|
11844
11844
|
category: t.KeyofC<{
|
|
11845
11845
|
ID: unknown;
|
|
11846
|
+
OTHER: unknown;
|
|
11847
|
+
UNSPECIFIED: unknown;
|
|
11846
11848
|
FINANCIAL: unknown;
|
|
11847
11849
|
HEALTH: unknown;
|
|
11848
11850
|
CONTACT: unknown;
|
|
@@ -11855,8 +11857,6 @@ declare const DatapointInput: t.IntersectionC<[t.TypeC<{
|
|
|
11855
11857
|
TRACKING: unknown;
|
|
11856
11858
|
DEVICE: unknown;
|
|
11857
11859
|
SURVEY: unknown;
|
|
11858
|
-
OTHER: unknown;
|
|
11859
|
-
UNSPECIFIED: unknown;
|
|
11860
11860
|
NOT_PERSONAL_DATA: unknown;
|
|
11861
11861
|
INTEGRATION_IDENTIFIER: unknown;
|
|
11862
11862
|
}>;
|
|
@@ -11875,6 +11875,8 @@ declare const DatapointInput: t.IntersectionC<[t.TypeC<{
|
|
|
11875
11875
|
/** The parent category */
|
|
11876
11876
|
category: t.KeyofC<{
|
|
11877
11877
|
ID: unknown;
|
|
11878
|
+
OTHER: unknown;
|
|
11879
|
+
UNSPECIFIED: unknown;
|
|
11878
11880
|
FINANCIAL: unknown;
|
|
11879
11881
|
HEALTH: unknown;
|
|
11880
11882
|
CONTACT: unknown;
|
|
@@ -11887,8 +11889,6 @@ declare const DatapointInput: t.IntersectionC<[t.TypeC<{
|
|
|
11887
11889
|
TRACKING: unknown;
|
|
11888
11890
|
DEVICE: unknown;
|
|
11889
11891
|
SURVEY: unknown;
|
|
11890
|
-
OTHER: unknown;
|
|
11891
|
-
UNSPECIFIED: unknown;
|
|
11892
11892
|
NOT_PERSONAL_DATA: unknown;
|
|
11893
11893
|
INTEGRATION_IDENTIFIER: unknown;
|
|
11894
11894
|
}>;
|
|
@@ -33663,8 +33663,6 @@ declare const ProcessingActivityInput: t.IntersectionC<[t.TypeC<{
|
|
|
33663
33663
|
/** The parent purpose */
|
|
33664
33664
|
purpose: t.KeyofC<{
|
|
33665
33665
|
HR: unknown;
|
|
33666
|
-
OTHER: unknown;
|
|
33667
|
-
UNSPECIFIED: unknown;
|
|
33668
33666
|
ESSENTIAL: unknown;
|
|
33669
33667
|
ADDITIONAL_FUNCTIONALITY: unknown;
|
|
33670
33668
|
ADVERTISING: unknown;
|
|
@@ -33675,6 +33673,8 @@ declare const ProcessingActivityInput: t.IntersectionC<[t.TypeC<{
|
|
|
33675
33673
|
LEGAL: unknown;
|
|
33676
33674
|
TRANSFER: unknown;
|
|
33677
33675
|
SALE: unknown;
|
|
33676
|
+
OTHER: unknown;
|
|
33677
|
+
UNSPECIFIED: unknown;
|
|
33678
33678
|
}>;
|
|
33679
33679
|
}>, t.PartialC<{
|
|
33680
33680
|
/** User-defined name for this processing purpose sub category */
|
|
@@ -33689,6 +33689,8 @@ declare const ProcessingActivityInput: t.IntersectionC<[t.TypeC<{
|
|
|
33689
33689
|
/** The parent category */
|
|
33690
33690
|
category: t.KeyofC<{
|
|
33691
33691
|
ID: unknown;
|
|
33692
|
+
OTHER: unknown;
|
|
33693
|
+
UNSPECIFIED: unknown;
|
|
33692
33694
|
FINANCIAL: unknown;
|
|
33693
33695
|
HEALTH: unknown;
|
|
33694
33696
|
CONTACT: unknown;
|
|
@@ -33701,8 +33703,6 @@ declare const ProcessingActivityInput: t.IntersectionC<[t.TypeC<{
|
|
|
33701
33703
|
TRACKING: unknown;
|
|
33702
33704
|
DEVICE: unknown;
|
|
33703
33705
|
SURVEY: unknown;
|
|
33704
|
-
OTHER: unknown;
|
|
33705
|
-
UNSPECIFIED: unknown;
|
|
33706
33706
|
NOT_PERSONAL_DATA: unknown;
|
|
33707
33707
|
INTEGRATION_IDENTIFIER: unknown;
|
|
33708
33708
|
}>;
|
|
@@ -50292,7 +50292,6 @@ declare const ConsentManageExperienceInput: t.IntersectionC<[t.TypeC<{
|
|
|
50292
50292
|
* Browser languages that define this regional experience
|
|
50293
50293
|
*/
|
|
50294
50294
|
browserLanguages: t.ArrayC<t.KeyofC<{
|
|
50295
|
-
no: unknown;
|
|
50296
50295
|
om: unknown;
|
|
50297
50296
|
ab: unknown;
|
|
50298
50297
|
aa: unknown;
|
|
@@ -50484,6 +50483,7 @@ declare const ConsentManageExperienceInput: t.IntersectionC<[t.TypeC<{
|
|
|
50484
50483
|
ne: unknown;
|
|
50485
50484
|
nd: unknown;
|
|
50486
50485
|
ns: unknown;
|
|
50486
|
+
no: unknown;
|
|
50487
50487
|
"no-NO": unknown;
|
|
50488
50488
|
nb: unknown;
|
|
50489
50489
|
"nb-NO": unknown;
|
|
@@ -51081,8 +51081,8 @@ declare const ConsentManagerInput: t.PartialC<{
|
|
|
51081
51081
|
}>;
|
|
51082
51082
|
/** Whether the site owner has signed the IAB agreement */
|
|
51083
51083
|
signedIabAgreement: t.KeyofC<{
|
|
51084
|
-
yes: unknown;
|
|
51085
51084
|
no: unknown;
|
|
51085
|
+
yes: unknown;
|
|
51086
51086
|
unknown: unknown;
|
|
51087
51087
|
}>;
|
|
51088
51088
|
/** Regional experience configurations */
|
|
@@ -56534,7 +56534,6 @@ declare const ConsentManagerInput: t.PartialC<{
|
|
|
56534
56534
|
* Browser languages that define this regional experience
|
|
56535
56535
|
*/
|
|
56536
56536
|
browserLanguages: t.ArrayC<t.KeyofC<{
|
|
56537
|
-
no: unknown;
|
|
56538
56537
|
om: unknown;
|
|
56539
56538
|
ab: unknown;
|
|
56540
56539
|
aa: unknown;
|
|
@@ -56726,6 +56725,7 @@ declare const ConsentManagerInput: t.PartialC<{
|
|
|
56726
56725
|
ne: unknown;
|
|
56727
56726
|
nd: unknown;
|
|
56728
56727
|
ns: unknown;
|
|
56728
|
+
no: unknown;
|
|
56729
56729
|
"no-NO": unknown;
|
|
56730
56730
|
nb: unknown;
|
|
56731
56731
|
"nb-NO": unknown;
|
|
@@ -58368,8 +58368,6 @@ declare const DataSiloInput: t.IntersectionC<[t.TypeC<{
|
|
|
58368
58368
|
/** The parent purpose */
|
|
58369
58369
|
purpose: t.KeyofC<{
|
|
58370
58370
|
HR: unknown;
|
|
58371
|
-
OTHER: unknown;
|
|
58372
|
-
UNSPECIFIED: unknown;
|
|
58373
58371
|
ESSENTIAL: unknown;
|
|
58374
58372
|
ADDITIONAL_FUNCTIONALITY: unknown;
|
|
58375
58373
|
ADVERTISING: unknown;
|
|
@@ -58380,6 +58378,8 @@ declare const DataSiloInput: t.IntersectionC<[t.TypeC<{
|
|
|
58380
58378
|
LEGAL: unknown;
|
|
58381
58379
|
TRANSFER: unknown;
|
|
58382
58380
|
SALE: unknown;
|
|
58381
|
+
OTHER: unknown;
|
|
58382
|
+
UNSPECIFIED: unknown;
|
|
58383
58383
|
}>;
|
|
58384
58384
|
}>, t.PartialC<{
|
|
58385
58385
|
/** User-defined name for this processing purpose sub category */
|
|
@@ -58394,6 +58394,8 @@ declare const DataSiloInput: t.IntersectionC<[t.TypeC<{
|
|
|
58394
58394
|
/** The parent category */
|
|
58395
58395
|
category: t.KeyofC<{
|
|
58396
58396
|
ID: unknown;
|
|
58397
|
+
OTHER: unknown;
|
|
58398
|
+
UNSPECIFIED: unknown;
|
|
58397
58399
|
FINANCIAL: unknown;
|
|
58398
58400
|
HEALTH: unknown;
|
|
58399
58401
|
CONTACT: unknown;
|
|
@@ -58406,8 +58408,6 @@ declare const DataSiloInput: t.IntersectionC<[t.TypeC<{
|
|
|
58406
58408
|
TRACKING: unknown;
|
|
58407
58409
|
DEVICE: unknown;
|
|
58408
58410
|
SURVEY: unknown;
|
|
58409
|
-
OTHER: unknown;
|
|
58410
|
-
UNSPECIFIED: unknown;
|
|
58411
58411
|
NOT_PERSONAL_DATA: unknown;
|
|
58412
58412
|
INTEGRATION_IDENTIFIER: unknown;
|
|
58413
58413
|
}>;
|
|
@@ -58426,6 +58426,8 @@ declare const DataSiloInput: t.IntersectionC<[t.TypeC<{
|
|
|
58426
58426
|
/** The parent category */
|
|
58427
58427
|
category: t.KeyofC<{
|
|
58428
58428
|
ID: unknown;
|
|
58429
|
+
OTHER: unknown;
|
|
58430
|
+
UNSPECIFIED: unknown;
|
|
58429
58431
|
FINANCIAL: unknown;
|
|
58430
58432
|
HEALTH: unknown;
|
|
58431
58433
|
CONTACT: unknown;
|
|
@@ -58438,8 +58440,6 @@ declare const DataSiloInput: t.IntersectionC<[t.TypeC<{
|
|
|
58438
58440
|
TRACKING: unknown;
|
|
58439
58441
|
DEVICE: unknown;
|
|
58440
58442
|
SURVEY: unknown;
|
|
58441
|
-
OTHER: unknown;
|
|
58442
|
-
UNSPECIFIED: unknown;
|
|
58443
58443
|
NOT_PERSONAL_DATA: unknown;
|
|
58444
58444
|
INTEGRATION_IDENTIFIER: unknown;
|
|
58445
58445
|
}>;
|
|
@@ -87502,6 +87502,8 @@ declare const TranscendInput: t.PartialC<{
|
|
|
87502
87502
|
/** Type of data category */
|
|
87503
87503
|
category: t.KeyofC<{
|
|
87504
87504
|
ID: unknown;
|
|
87505
|
+
OTHER: unknown;
|
|
87506
|
+
UNSPECIFIED: unknown;
|
|
87505
87507
|
FINANCIAL: unknown;
|
|
87506
87508
|
HEALTH: unknown;
|
|
87507
87509
|
CONTACT: unknown;
|
|
@@ -87514,8 +87516,6 @@ declare const TranscendInput: t.PartialC<{
|
|
|
87514
87516
|
TRACKING: unknown;
|
|
87515
87517
|
DEVICE: unknown;
|
|
87516
87518
|
SURVEY: unknown;
|
|
87517
|
-
OTHER: unknown;
|
|
87518
|
-
UNSPECIFIED: unknown;
|
|
87519
87519
|
NOT_PERSONAL_DATA: unknown;
|
|
87520
87520
|
INTEGRATION_IDENTIFIER: unknown;
|
|
87521
87521
|
}>;
|
|
@@ -87556,8 +87556,6 @@ declare const TranscendInput: t.PartialC<{
|
|
|
87556
87556
|
/** Type of processing purpose */
|
|
87557
87557
|
purpose: t.KeyofC<{
|
|
87558
87558
|
HR: unknown;
|
|
87559
|
-
OTHER: unknown;
|
|
87560
|
-
UNSPECIFIED: unknown;
|
|
87561
87559
|
ESSENTIAL: unknown;
|
|
87562
87560
|
ADDITIONAL_FUNCTIONALITY: unknown;
|
|
87563
87561
|
ADVERTISING: unknown;
|
|
@@ -87568,6 +87566,8 @@ declare const TranscendInput: t.PartialC<{
|
|
|
87568
87566
|
LEGAL: unknown;
|
|
87569
87567
|
TRANSFER: unknown;
|
|
87570
87568
|
SALE: unknown;
|
|
87569
|
+
OTHER: unknown;
|
|
87570
|
+
UNSPECIFIED: unknown;
|
|
87571
87571
|
}>;
|
|
87572
87572
|
}>, t.PartialC<{
|
|
87573
87573
|
/** Description of processing purpose */
|
|
@@ -98663,8 +98663,6 @@ declare const TranscendInput: t.PartialC<{
|
|
|
98663
98663
|
/** The parent purpose */
|
|
98664
98664
|
purpose: t.KeyofC<{
|
|
98665
98665
|
HR: unknown;
|
|
98666
|
-
OTHER: unknown;
|
|
98667
|
-
UNSPECIFIED: unknown;
|
|
98668
98666
|
ESSENTIAL: unknown;
|
|
98669
98667
|
ADDITIONAL_FUNCTIONALITY: unknown;
|
|
98670
98668
|
ADVERTISING: unknown;
|
|
@@ -98675,6 +98673,8 @@ declare const TranscendInput: t.PartialC<{
|
|
|
98675
98673
|
LEGAL: unknown;
|
|
98676
98674
|
TRANSFER: unknown;
|
|
98677
98675
|
SALE: unknown;
|
|
98676
|
+
OTHER: unknown;
|
|
98677
|
+
UNSPECIFIED: unknown;
|
|
98678
98678
|
}>;
|
|
98679
98679
|
}>, t.PartialC<{
|
|
98680
98680
|
/** User-defined name for this processing purpose sub category */
|
|
@@ -98689,6 +98689,8 @@ declare const TranscendInput: t.PartialC<{
|
|
|
98689
98689
|
/** The parent category */
|
|
98690
98690
|
category: t.KeyofC<{
|
|
98691
98691
|
ID: unknown;
|
|
98692
|
+
OTHER: unknown;
|
|
98693
|
+
UNSPECIFIED: unknown;
|
|
98692
98694
|
FINANCIAL: unknown;
|
|
98693
98695
|
HEALTH: unknown;
|
|
98694
98696
|
CONTACT: unknown;
|
|
@@ -98701,8 +98703,6 @@ declare const TranscendInput: t.PartialC<{
|
|
|
98701
98703
|
TRACKING: unknown;
|
|
98702
98704
|
DEVICE: unknown;
|
|
98703
98705
|
SURVEY: unknown;
|
|
98704
|
-
OTHER: unknown;
|
|
98705
|
-
UNSPECIFIED: unknown;
|
|
98706
98706
|
NOT_PERSONAL_DATA: unknown;
|
|
98707
98707
|
INTEGRATION_IDENTIFIER: unknown;
|
|
98708
98708
|
}>;
|
|
@@ -98721,6 +98721,8 @@ declare const TranscendInput: t.PartialC<{
|
|
|
98721
98721
|
/** The parent category */
|
|
98722
98722
|
category: t.KeyofC<{
|
|
98723
98723
|
ID: unknown;
|
|
98724
|
+
OTHER: unknown;
|
|
98725
|
+
UNSPECIFIED: unknown;
|
|
98724
98726
|
FINANCIAL: unknown;
|
|
98725
98727
|
HEALTH: unknown;
|
|
98726
98728
|
CONTACT: unknown;
|
|
@@ -98733,8 +98735,6 @@ declare const TranscendInput: t.PartialC<{
|
|
|
98733
98735
|
TRACKING: unknown;
|
|
98734
98736
|
DEVICE: unknown;
|
|
98735
98737
|
SURVEY: unknown;
|
|
98736
|
-
OTHER: unknown;
|
|
98737
|
-
UNSPECIFIED: unknown;
|
|
98738
98738
|
NOT_PERSONAL_DATA: unknown;
|
|
98739
98739
|
INTEGRATION_IDENTIFIER: unknown;
|
|
98740
98740
|
}>;
|
|
@@ -104370,8 +104370,8 @@ declare const TranscendInput: t.PartialC<{
|
|
|
104370
104370
|
}>;
|
|
104371
104371
|
/** Whether the site owner has signed the IAB agreement */
|
|
104372
104372
|
signedIabAgreement: t.KeyofC<{
|
|
104373
|
-
yes: unknown;
|
|
104374
104373
|
no: unknown;
|
|
104374
|
+
yes: unknown;
|
|
104375
104375
|
unknown: unknown;
|
|
104376
104376
|
}>;
|
|
104377
104377
|
/** Regional experience configurations */
|
|
@@ -109823,7 +109823,6 @@ declare const TranscendInput: t.PartialC<{
|
|
|
109823
109823
|
* Browser languages that define this regional experience
|
|
109824
109824
|
*/
|
|
109825
109825
|
browserLanguages: t.ArrayC<t.KeyofC<{
|
|
109826
|
-
no: unknown;
|
|
109827
109826
|
om: unknown;
|
|
109828
109827
|
ab: unknown;
|
|
109829
109828
|
aa: unknown;
|
|
@@ -110015,6 +110014,7 @@ declare const TranscendInput: t.PartialC<{
|
|
|
110015
110014
|
ne: unknown;
|
|
110016
110015
|
nd: unknown;
|
|
110017
110016
|
ns: unknown;
|
|
110017
|
+
no: unknown;
|
|
110018
110018
|
"no-NO": unknown;
|
|
110019
110019
|
nb: unknown;
|
|
110020
110020
|
"nb-NO": unknown;
|
|
@@ -123120,8 +123120,6 @@ declare const TranscendInput: t.PartialC<{
|
|
|
123120
123120
|
/** The parent purpose */
|
|
123121
123121
|
purpose: t.KeyofC<{
|
|
123122
123122
|
HR: unknown;
|
|
123123
|
-
OTHER: unknown;
|
|
123124
|
-
UNSPECIFIED: unknown;
|
|
123125
123123
|
ESSENTIAL: unknown;
|
|
123126
123124
|
ADDITIONAL_FUNCTIONALITY: unknown;
|
|
123127
123125
|
ADVERTISING: unknown;
|
|
@@ -123132,6 +123130,8 @@ declare const TranscendInput: t.PartialC<{
|
|
|
123132
123130
|
LEGAL: unknown;
|
|
123133
123131
|
TRANSFER: unknown;
|
|
123134
123132
|
SALE: unknown;
|
|
123133
|
+
OTHER: unknown;
|
|
123134
|
+
UNSPECIFIED: unknown;
|
|
123135
123135
|
}>;
|
|
123136
123136
|
}>, t.PartialC<{
|
|
123137
123137
|
/** User-defined name for this processing purpose sub category */
|
|
@@ -123146,6 +123146,8 @@ declare const TranscendInput: t.PartialC<{
|
|
|
123146
123146
|
/** The parent category */
|
|
123147
123147
|
category: t.KeyofC<{
|
|
123148
123148
|
ID: unknown;
|
|
123149
|
+
OTHER: unknown;
|
|
123150
|
+
UNSPECIFIED: unknown;
|
|
123149
123151
|
FINANCIAL: unknown;
|
|
123150
123152
|
HEALTH: unknown;
|
|
123151
123153
|
CONTACT: unknown;
|
|
@@ -123158,8 +123160,6 @@ declare const TranscendInput: t.PartialC<{
|
|
|
123158
123160
|
TRACKING: unknown;
|
|
123159
123161
|
DEVICE: unknown;
|
|
123160
123162
|
SURVEY: unknown;
|
|
123161
|
-
OTHER: unknown;
|
|
123162
|
-
UNSPECIFIED: unknown;
|
|
123163
123163
|
NOT_PERSONAL_DATA: unknown;
|
|
123164
123164
|
INTEGRATION_IDENTIFIER: unknown;
|
|
123165
123165
|
}>;
|
|
@@ -136831,9 +136831,9 @@ declare const RequestIdentifier: t.TypeC<{
|
|
|
136831
136831
|
value: t.StringC;
|
|
136832
136832
|
/** Type of identifier */
|
|
136833
136833
|
type: t.KeyofC<{
|
|
136834
|
-
transcend: unknown;
|
|
136835
136834
|
email: unknown;
|
|
136836
136835
|
phone: unknown;
|
|
136836
|
+
transcend: unknown;
|
|
136837
136837
|
coreIdentifier: unknown;
|
|
136838
136838
|
custom: unknown;
|
|
136839
136839
|
gaid: unknown;
|
|
@@ -136877,9 +136877,9 @@ declare const RequestIdentifiersResponse: t.TypeC<{
|
|
|
136877
136877
|
value: t.StringC;
|
|
136878
136878
|
/** Type of identifier */
|
|
136879
136879
|
type: t.KeyofC<{
|
|
136880
|
-
transcend: unknown;
|
|
136881
136880
|
email: unknown;
|
|
136882
136881
|
phone: unknown;
|
|
136882
|
+
transcend: unknown;
|
|
136883
136883
|
coreIdentifier: unknown;
|
|
136884
136884
|
custom: unknown;
|
|
136885
136885
|
gaid: unknown;
|
|
@@ -142635,6 +142635,8 @@ declare const PrivacyRequest: t.IntersectionC<[t.TypeC<{
|
|
|
142635
142635
|
}>, t.PartialC<{
|
|
142636
142636
|
/** Days remaining until expired */
|
|
142637
142637
|
daysRemaining: t.UnionC<[t.NullC, t.NumberC]>;
|
|
142638
|
+
/** Time when request was successfully completed */
|
|
142639
|
+
successfullyCompletedAt: t.UnionC<[t.NullC, t.StringC]>;
|
|
142638
142640
|
/** Purpose */
|
|
142639
142641
|
purpose: t.TypeC<{
|
|
142640
142642
|
title: t.StringC;
|
|
@@ -156868,6 +156870,7 @@ declare function formatRequestForCsv({
|
|
|
156868
156870
|
subjectType,
|
|
156869
156871
|
details,
|
|
156870
156872
|
createdAt,
|
|
156873
|
+
successfullyCompletedAt,
|
|
156871
156874
|
country,
|
|
156872
156875
|
locale,
|
|
156873
156876
|
origin,
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const e=require(`./chunk-Bmb41Sf3.cjs`),t=require(`./constants-
|
|
2
|
-
//# sourceMappingURL=manual-enrichment-
|
|
1
|
+
const e=require(`./chunk-Bmb41Sf3.cjs`),t=require(`./constants-gJm1eQH0.cjs`),n=require(`./syncConfigurationToTranscend-s-cjtUI3.cjs`),r=require(`./logger-DQwEYtSS.cjs`);let i=require(`@transcend-io/privacy-types`),a=require(`colors`);a=e.t(a);let o=require(`io-ts`);o=e.t(o);async function s({file:e,auth:o,sombraAuth:s,requestActions:c=[],concurrency:l=100,transcendUrl:u=t.a}){let d=n.ai(u,o),f=await n.ii(u,o,s);r.t.info(a.default.magenta(`Pulling manual enrichment requests, filtered for actions: ${c.join(`,`)}`));let p=await n.mr(d,{actions:c,statuses:[i.RequestStatus.Enriching]});await n.vr(d);let m=[];await n.As(p,async e=>{let t=await n.br(d,{requestId:e.id});if(t.filter(({status:e})=>e===`ACTION_REQUIRED`)){let r=await n._r(d,f,{requestId:e.id,skipSombraCheck:!0});m.push({...e,requestIdentifiers:r,requestEnrichers:t})}},{concurrency:l});let h=m.map(({attributeValues:e,requestIdentifiers:t,requestEnrichers:r,...i})=>({...i,...Object.entries(n.Fs(t,`name`)).reduce((e,[t,n])=>Object.assign(e,{[t]:n.map(({value:e})=>e).join(`,`)}),{}),...Object.entries(n.Fs(e,`attributeKey.name`)).reduce((e,[t,n])=>Object.assign(e,{[t]:n.map(({name:e})=>e).join(`,`)}),{})}));return await n.l(e,h,n.Ms(h.map(e=>Object.keys(e)).flat())),r.t.info(a.default.green(`Successfully wrote ${m.length} requests to file "${e}"`)),m}const c=`https://app.transcend.io/privacy-requests/incoming-requests/`,l=o.record(o.string,o.string);async function u(e,{id:t,...i},o,s){if(!t){let e=`Request ID must be provided to enricher request.${s?` Found error in row: ${s}`:``}`;throw r.t.error(a.default.red(e)),Error(e)}let l=t.toLowerCase(),u=Object.entries(i).reduce((e,[t,r])=>n.Ms(n.pi(r)).length===0?e:Object.assign(e,{[t]:n.Ms(n.pi(r)).map(e=>({value:t===`email`?e.toLowerCase():e}))}),{});try{return await e.post(`v1/enrich-identifiers`,{headers:{"x-transcend-request-id":l,"x-transcend-enricher-id":o},json:{enrichedIdentifiers:u}}).json(),r.t.error(a.default.green(`Successfully enriched request: ${c}${l}`)),!0}catch(e){if(typeof e.response.body==`string`&&e.response.body.includes(`Cannot update a resolved RequestEnricher`))return r.t.warn(a.default.magenta(`Skipped enrichment for request: ${c}${l}, request is no longer in the enriching phase.`)),!1;throw r.t.error(a.default.red(`Failed to enricher identifiers for request with id: ${c}${l} - ${e.message} - ${e.response.body}`)),e}}async function d({file:e,auth:i,sombraAuth:o,enricherId:s,markSilent:c,concurrency:d=100,transcendUrl:f=t.a}){let p=await n.ii(f,i,o),m=n.ai(f,i);r.t.info(a.default.magenta(`Reading "${e}" from disk`));let h=n.ui(e,l);r.t.info(a.default.magenta(`Enriching "${h.length}" privacy requests.`));let g=0,_=0,v=0;if(await n.As(h,async(e,t)=>{try{c&&(await n.i(m,n.Fo,{input:{id:e.id,isSilent:!0}}),r.t.info(a.default.magenta(`Mark request as silent mode - ${e.id}`))),await u(p,e,s,t)?g+=1:_+=1}catch{v+=1}},{concurrency:d}),r.t.info(a.default.green(`Successfully notified Transcend! \n Success count: ${g}.`)),_>0&&r.t.info(a.default.magenta(`Skipped count: ${_}.`)),v>0)throw r.t.info(a.default.red(`Error Count: ${v}.`)),Error(`Failed to enrich: ${v} requests.`);return h.length}Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return d}});
|
|
2
|
+
//# sourceMappingURL=manual-enrichment-DTVJo7hP.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manual-enrichment-CW8iihdb.cjs","names":["DEFAULT_TRANSCEND_API","buildTranscendGraphQLClient","createSombraGotInstance","fetchAllRequests","RequestStatus","validateSombraVersion","map","fetchAllRequestEnrichers","fetchAllRequestIdentifiers","groupBy","writeCsv","uniq","t","uniq","splitCsvToList","DEFAULT_TRANSCEND_API","createSombraGotInstance","buildTranscendGraphQLClient","readCsv","map","makeGraphQLRequest","UPDATE_PRIVACY_REQUEST"],"sources":["../src/lib/manual-enrichment/pullManualEnrichmentIdentifiersToCsv.ts","../src/lib/manual-enrichment/enrichPrivacyRequest.ts","../src/lib/manual-enrichment/pushManualEnrichmentIdentifiersFromCsv.ts"],"sourcesContent":["import { RequestAction, RequestStatus } from '@transcend-io/privacy-types';\nimport { map } from '../bluebird';\nimport colors from 'colors';\nimport { groupBy, uniq } from 'lodash-es';\nimport { DEFAULT_TRANSCEND_API } from '../../constants';\nimport { writeCsv } from '../helpers/writeCsv';\nimport {\n PrivacyRequest,\n RequestEnricher,\n RequestIdentifier,\n buildTranscendGraphQLClient,\n createSombraGotInstance,\n fetchAllRequestEnrichers,\n fetchAllRequestIdentifiers,\n fetchAllRequests,\n validateSombraVersion,\n} from '../graphql';\nimport { logger } from '../../logger';\n\nexport interface PrivacyRequestWithIdentifiers extends PrivacyRequest {\n /** Request Enrichers */\n requestEnrichers: RequestEnricher[];\n /** Request Identifiers */\n requestIdentifiers: RequestIdentifier[];\n}\n\n/**\n * Pull the set of manual enrichment jobs to CSV\n *\n * @param options - Options\n * @returns List of requests with identifiers\n */\nexport async function pullManualEnrichmentIdentifiersToCsv({\n file,\n auth,\n sombraAuth,\n requestActions = [],\n concurrency = 100,\n transcendUrl = DEFAULT_TRANSCEND_API,\n}: {\n /** CSV file path */\n file: string;\n /** Transcend API key authentication */\n auth: string;\n /** Sombra API key */\n sombraAuth?: string;\n /** Concurrency */\n concurrency?: number;\n /** The request actions to fetch */\n requestActions?: RequestAction[];\n /** API URL for Transcend backend */\n transcendUrl?: string;\n}): Promise<PrivacyRequestWithIdentifiers[]> {\n // Find all requests made before createdAt that are in a removing data state\n const client = buildTranscendGraphQLClient(transcendUrl, auth);\n const sombra = await createSombraGotInstance(transcendUrl, auth, sombraAuth);\n\n logger.info(\n colors.magenta(\n `Pulling manual enrichment requests, filtered for actions: ${requestActions.join(\n ',',\n )}`,\n ),\n );\n\n // Pull all privacy requests\n const allRequests = await fetchAllRequests(client, {\n actions: requestActions,\n statuses: [RequestStatus.Enriching],\n });\n\n await validateSombraVersion(client);\n\n // Requests to save\n const savedRequests: PrivacyRequestWithIdentifiers[] = [];\n\n // Filter down requests to what is needed\n await map(\n allRequests,\n async (request) => {\n // Fetch enrichers\n const requestEnrichers = await fetchAllRequestEnrichers(client, {\n requestId: request.id,\n });\n\n // Check if manual enrichment exists for that request\n const hasManualEnrichment = requestEnrichers.filter(\n ({ status }) => status === 'ACTION_REQUIRED',\n );\n\n // Save request to queue\n if (hasManualEnrichment) {\n const requestIdentifiers = await fetchAllRequestIdentifiers(\n client,\n sombra,\n {\n requestId: request.id,\n skipSombraCheck: true,\n },\n );\n savedRequests.push({\n ...request,\n requestIdentifiers,\n requestEnrichers,\n });\n }\n },\n {\n concurrency,\n },\n );\n\n const data = savedRequests.map(\n ({\n attributeValues,\n requestIdentifiers,\n requestEnrichers, // eslint-disable-line @typescript-eslint/no-unused-vars\n ...request\n }) => ({\n ...request,\n // flatten identifiers\n ...Object.entries(groupBy(requestIdentifiers, 'name')).reduce(\n (acc, [key, values]) =>\n Object.assign(acc, {\n [key]: values.map(({ value }) => value).join(','),\n }),\n {},\n ),\n // flatten attributes\n ...Object.entries(groupBy(attributeValues, 'attributeKey.name')).reduce(\n (acc, [key, values]) =>\n Object.assign(acc, {\n [key]: values.map(({ name }) => name).join(','),\n }),\n {},\n ),\n }),\n );\n\n // Write out to CSV\n const headers = uniq(data.map((d) => Object.keys(d)).flat());\n await writeCsv(file, data, headers);\n\n logger.info(\n colors.green(\n `Successfully wrote ${savedRequests.length} requests to file \"${file}\"`,\n ),\n );\n\n return savedRequests;\n}\n","import type { Got } from 'got';\nimport * as t from 'io-ts';\nimport { logger } from '../../logger';\nimport { uniq } from 'lodash-es';\nimport colors from 'colors';\nimport { splitCsvToList } from '../requests/splitCsvToList';\n\nconst ADMIN_URL =\n 'https://app.transcend.io/privacy-requests/incoming-requests/';\n/**\n * Minimal set required to mark as completed\n */\nexport const EnrichPrivacyRequest = t.record(t.string, t.string);\n\n/** Type override */\nexport type EnrichPrivacyRequest = t.TypeOf<typeof EnrichPrivacyRequest>;\n\n/**\n * Upload identifiers to a privacy request or mark request as\n *\n * @param sombra - Sombra instance configured to make requests\n * @param request - Request to enricher\n * @param enricherId - The ID of the enricher being uploaded to\n * @param index - Index of request ID\n * @returns True if enriched successfully, false if skipped, throws error if failed\n */\nexport async function enrichPrivacyRequest(\n sombra: Got,\n { id: rawId, ...rest }: EnrichPrivacyRequest,\n enricherId: string,\n index?: number,\n): Promise<boolean> {\n if (!rawId) {\n // error\n const msg = `Request ID must be provided to enricher request.${\n index ? ` Found error in row: ${index}` : ''\n }`;\n logger.error(colors.red(msg));\n throw new Error(msg);\n }\n\n const id = rawId.toLowerCase();\n\n // Pull out the identifiers\n const enrichedIdentifiers = Object.entries(rest).reduce(\n (acc, [key, value]) => {\n const values = uniq(splitCsvToList(value));\n return values.length === 0\n ? acc\n : Object.assign(acc, {\n [key]: uniq(splitCsvToList(value)).map((val) => ({\n value: key === 'email' ? val.toLowerCase() : val,\n })),\n });\n },\n {} as Record<string, string[]>,\n );\n\n // Make the GraphQL request\n try {\n await sombra\n .post('v1/enrich-identifiers', {\n headers: {\n 'x-transcend-request-id': id,\n 'x-transcend-enricher-id': enricherId,\n },\n json: {\n enrichedIdentifiers,\n },\n })\n .json();\n\n logger.error(\n colors.green(`Successfully enriched request: ${ADMIN_URL}${id}`),\n );\n return true;\n } catch (err) {\n // skip if already enriched\n if (\n typeof err.response.body === 'string' &&\n err.response.body.includes('Cannot update a resolved RequestEnricher')\n ) {\n logger.warn(\n colors.magenta(\n `Skipped enrichment for request: ${ADMIN_URL}${id}, request is no longer in the enriching phase.`,\n ),\n );\n return false;\n }\n\n // error\n logger.error(\n colors.red(\n `Failed to enricher identifiers for request with id: ${ADMIN_URL}${id} - ${err.message} - ${err.response.body}`,\n ),\n );\n throw err;\n }\n}\n","import colors from 'colors';\nimport { map } from '../bluebird';\nimport { logger } from '../../logger';\nimport {\n UPDATE_PRIVACY_REQUEST,\n buildTranscendGraphQLClient,\n createSombraGotInstance,\n makeGraphQLRequest,\n} from '../graphql';\nimport {\n enrichPrivacyRequest,\n EnrichPrivacyRequest,\n} from './enrichPrivacyRequest';\nimport { readCsv } from '../requests';\nimport { DEFAULT_TRANSCEND_API } from '../../constants';\n\n/**\n * Push a CSV of enriched requests back into Transcend\n *\n * @param options - Options\n * @returns Number of items processed\n */\nexport async function pushManualEnrichmentIdentifiersFromCsv({\n file,\n auth,\n sombraAuth,\n enricherId,\n markSilent,\n concurrency = 100,\n transcendUrl = DEFAULT_TRANSCEND_API,\n}: {\n /** CSV file path */\n file: string;\n /** Transcend API key authentication */\n auth: string;\n /** ID of enricher being uploaded to */\n enricherId: string;\n /** Sombra API key authentication */\n sombraAuth?: string;\n /** Concurrency */\n concurrency?: number;\n /** API URL for Transcend backend */\n transcendUrl?: string;\n /** Mark requests in silent mode before enriching */\n markSilent?: boolean;\n}): Promise<number> {\n // Create sombra instance to communicate with\n const sombra = await createSombraGotInstance(transcendUrl, auth, sombraAuth);\n const client = buildTranscendGraphQLClient(transcendUrl, auth);\n\n // Read from CSV\n logger.info(colors.magenta(`Reading \"${file}\" from disk`));\n const activeResults = readCsv(file, EnrichPrivacyRequest);\n\n // Notify Transcend\n logger.info(\n colors.magenta(`Enriching \"${activeResults.length}\" privacy requests.`),\n );\n\n let successCount = 0;\n let skippedCount = 0;\n let errorCount = 0;\n\n await map(\n activeResults,\n async (request, index) => {\n try {\n // Mark requests in silent mode before a certain date\n if (markSilent) {\n await makeGraphQLRequest(client, UPDATE_PRIVACY_REQUEST, {\n input: {\n id: request.id,\n isSilent: true,\n },\n });\n\n logger.info(\n colors.magenta(`Mark request as silent mode - ${request.id}`),\n );\n }\n\n const result = await enrichPrivacyRequest(\n sombra,\n request,\n enricherId,\n index,\n );\n if (result) {\n successCount += 1;\n } else {\n skippedCount += 1;\n }\n } catch (err) {\n errorCount += 1;\n }\n },\n { concurrency },\n );\n\n logger.info(\n colors.green(\n `Successfully notified Transcend! \\n Success count: ${successCount}.`,\n ),\n );\n\n if (skippedCount > 0) {\n logger.info(colors.magenta(`Skipped count: ${skippedCount}.`));\n }\n\n if (errorCount > 0) {\n logger.info(colors.red(`Error Count: ${errorCount}.`));\n throw new Error(`Failed to enrich: ${errorCount} requests.`);\n }\n\n return activeResults.length;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"manual-enrichment-DTVJo7hP.cjs","names":["DEFAULT_TRANSCEND_API","buildTranscendGraphQLClient","createSombraGotInstance","fetchAllRequests","RequestStatus","validateSombraVersion","map","fetchAllRequestEnrichers","fetchAllRequestIdentifiers","groupBy","writeCsv","uniq","t","uniq","splitCsvToList","DEFAULT_TRANSCEND_API","createSombraGotInstance","buildTranscendGraphQLClient","readCsv","map","makeGraphQLRequest","UPDATE_PRIVACY_REQUEST"],"sources":["../src/lib/manual-enrichment/pullManualEnrichmentIdentifiersToCsv.ts","../src/lib/manual-enrichment/enrichPrivacyRequest.ts","../src/lib/manual-enrichment/pushManualEnrichmentIdentifiersFromCsv.ts"],"sourcesContent":["import { RequestAction, RequestStatus } from '@transcend-io/privacy-types';\nimport { map } from '../bluebird';\nimport colors from 'colors';\nimport { groupBy, uniq } from 'lodash-es';\nimport { DEFAULT_TRANSCEND_API } from '../../constants';\nimport { writeCsv } from '../helpers/writeCsv';\nimport {\n PrivacyRequest,\n RequestEnricher,\n RequestIdentifier,\n buildTranscendGraphQLClient,\n createSombraGotInstance,\n fetchAllRequestEnrichers,\n fetchAllRequestIdentifiers,\n fetchAllRequests,\n validateSombraVersion,\n} from '../graphql';\nimport { logger } from '../../logger';\n\nexport interface PrivacyRequestWithIdentifiers extends PrivacyRequest {\n /** Request Enrichers */\n requestEnrichers: RequestEnricher[];\n /** Request Identifiers */\n requestIdentifiers: RequestIdentifier[];\n}\n\n/**\n * Pull the set of manual enrichment jobs to CSV\n *\n * @param options - Options\n * @returns List of requests with identifiers\n */\nexport async function pullManualEnrichmentIdentifiersToCsv({\n file,\n auth,\n sombraAuth,\n requestActions = [],\n concurrency = 100,\n transcendUrl = DEFAULT_TRANSCEND_API,\n}: {\n /** CSV file path */\n file: string;\n /** Transcend API key authentication */\n auth: string;\n /** Sombra API key */\n sombraAuth?: string;\n /** Concurrency */\n concurrency?: number;\n /** The request actions to fetch */\n requestActions?: RequestAction[];\n /** API URL for Transcend backend */\n transcendUrl?: string;\n}): Promise<PrivacyRequestWithIdentifiers[]> {\n // Find all requests made before createdAt that are in a removing data state\n const client = buildTranscendGraphQLClient(transcendUrl, auth);\n const sombra = await createSombraGotInstance(transcendUrl, auth, sombraAuth);\n\n logger.info(\n colors.magenta(\n `Pulling manual enrichment requests, filtered for actions: ${requestActions.join(\n ',',\n )}`,\n ),\n );\n\n // Pull all privacy requests\n const allRequests = await fetchAllRequests(client, {\n actions: requestActions,\n statuses: [RequestStatus.Enriching],\n });\n\n await validateSombraVersion(client);\n\n // Requests to save\n const savedRequests: PrivacyRequestWithIdentifiers[] = [];\n\n // Filter down requests to what is needed\n await map(\n allRequests,\n async (request) => {\n // Fetch enrichers\n const requestEnrichers = await fetchAllRequestEnrichers(client, {\n requestId: request.id,\n });\n\n // Check if manual enrichment exists for that request\n const hasManualEnrichment = requestEnrichers.filter(\n ({ status }) => status === 'ACTION_REQUIRED',\n );\n\n // Save request to queue\n if (hasManualEnrichment) {\n const requestIdentifiers = await fetchAllRequestIdentifiers(\n client,\n sombra,\n {\n requestId: request.id,\n skipSombraCheck: true,\n },\n );\n savedRequests.push({\n ...request,\n requestIdentifiers,\n requestEnrichers,\n });\n }\n },\n {\n concurrency,\n },\n );\n\n const data = savedRequests.map(\n ({\n attributeValues,\n requestIdentifiers,\n requestEnrichers, // eslint-disable-line @typescript-eslint/no-unused-vars\n ...request\n }) => ({\n ...request,\n // flatten identifiers\n ...Object.entries(groupBy(requestIdentifiers, 'name')).reduce(\n (acc, [key, values]) =>\n Object.assign(acc, {\n [key]: values.map(({ value }) => value).join(','),\n }),\n {},\n ),\n // flatten attributes\n ...Object.entries(groupBy(attributeValues, 'attributeKey.name')).reduce(\n (acc, [key, values]) =>\n Object.assign(acc, {\n [key]: values.map(({ name }) => name).join(','),\n }),\n {},\n ),\n }),\n );\n\n // Write out to CSV\n const headers = uniq(data.map((d) => Object.keys(d)).flat());\n await writeCsv(file, data, headers);\n\n logger.info(\n colors.green(\n `Successfully wrote ${savedRequests.length} requests to file \"${file}\"`,\n ),\n );\n\n return savedRequests;\n}\n","import type { Got } from 'got';\nimport * as t from 'io-ts';\nimport { logger } from '../../logger';\nimport { uniq } from 'lodash-es';\nimport colors from 'colors';\nimport { splitCsvToList } from '../requests/splitCsvToList';\n\nconst ADMIN_URL =\n 'https://app.transcend.io/privacy-requests/incoming-requests/';\n/**\n * Minimal set required to mark as completed\n */\nexport const EnrichPrivacyRequest = t.record(t.string, t.string);\n\n/** Type override */\nexport type EnrichPrivacyRequest = t.TypeOf<typeof EnrichPrivacyRequest>;\n\n/**\n * Upload identifiers to a privacy request or mark request as\n *\n * @param sombra - Sombra instance configured to make requests\n * @param request - Request to enricher\n * @param enricherId - The ID of the enricher being uploaded to\n * @param index - Index of request ID\n * @returns True if enriched successfully, false if skipped, throws error if failed\n */\nexport async function enrichPrivacyRequest(\n sombra: Got,\n { id: rawId, ...rest }: EnrichPrivacyRequest,\n enricherId: string,\n index?: number,\n): Promise<boolean> {\n if (!rawId) {\n // error\n const msg = `Request ID must be provided to enricher request.${\n index ? ` Found error in row: ${index}` : ''\n }`;\n logger.error(colors.red(msg));\n throw new Error(msg);\n }\n\n const id = rawId.toLowerCase();\n\n // Pull out the identifiers\n const enrichedIdentifiers = Object.entries(rest).reduce(\n (acc, [key, value]) => {\n const values = uniq(splitCsvToList(value));\n return values.length === 0\n ? acc\n : Object.assign(acc, {\n [key]: uniq(splitCsvToList(value)).map((val) => ({\n value: key === 'email' ? val.toLowerCase() : val,\n })),\n });\n },\n {} as Record<string, string[]>,\n );\n\n // Make the GraphQL request\n try {\n await sombra\n .post('v1/enrich-identifiers', {\n headers: {\n 'x-transcend-request-id': id,\n 'x-transcend-enricher-id': enricherId,\n },\n json: {\n enrichedIdentifiers,\n },\n })\n .json();\n\n logger.error(\n colors.green(`Successfully enriched request: ${ADMIN_URL}${id}`),\n );\n return true;\n } catch (err) {\n // skip if already enriched\n if (\n typeof err.response.body === 'string' &&\n err.response.body.includes('Cannot update a resolved RequestEnricher')\n ) {\n logger.warn(\n colors.magenta(\n `Skipped enrichment for request: ${ADMIN_URL}${id}, request is no longer in the enriching phase.`,\n ),\n );\n return false;\n }\n\n // error\n logger.error(\n colors.red(\n `Failed to enricher identifiers for request with id: ${ADMIN_URL}${id} - ${err.message} - ${err.response.body}`,\n ),\n );\n throw err;\n }\n}\n","import colors from 'colors';\nimport { map } from '../bluebird';\nimport { logger } from '../../logger';\nimport {\n UPDATE_PRIVACY_REQUEST,\n buildTranscendGraphQLClient,\n createSombraGotInstance,\n makeGraphQLRequest,\n} from '../graphql';\nimport {\n enrichPrivacyRequest,\n EnrichPrivacyRequest,\n} from './enrichPrivacyRequest';\nimport { readCsv } from '../requests';\nimport { DEFAULT_TRANSCEND_API } from '../../constants';\n\n/**\n * Push a CSV of enriched requests back into Transcend\n *\n * @param options - Options\n * @returns Number of items processed\n */\nexport async function pushManualEnrichmentIdentifiersFromCsv({\n file,\n auth,\n sombraAuth,\n enricherId,\n markSilent,\n concurrency = 100,\n transcendUrl = DEFAULT_TRANSCEND_API,\n}: {\n /** CSV file path */\n file: string;\n /** Transcend API key authentication */\n auth: string;\n /** ID of enricher being uploaded to */\n enricherId: string;\n /** Sombra API key authentication */\n sombraAuth?: string;\n /** Concurrency */\n concurrency?: number;\n /** API URL for Transcend backend */\n transcendUrl?: string;\n /** Mark requests in silent mode before enriching */\n markSilent?: boolean;\n}): Promise<number> {\n // Create sombra instance to communicate with\n const sombra = await createSombraGotInstance(transcendUrl, auth, sombraAuth);\n const client = buildTranscendGraphQLClient(transcendUrl, auth);\n\n // Read from CSV\n logger.info(colors.magenta(`Reading \"${file}\" from disk`));\n const activeResults = readCsv(file, EnrichPrivacyRequest);\n\n // Notify Transcend\n logger.info(\n colors.magenta(`Enriching \"${activeResults.length}\" privacy requests.`),\n );\n\n let successCount = 0;\n let skippedCount = 0;\n let errorCount = 0;\n\n await map(\n activeResults,\n async (request, index) => {\n try {\n // Mark requests in silent mode before a certain date\n if (markSilent) {\n await makeGraphQLRequest(client, UPDATE_PRIVACY_REQUEST, {\n input: {\n id: request.id,\n isSilent: true,\n },\n });\n\n logger.info(\n colors.magenta(`Mark request as silent mode - ${request.id}`),\n );\n }\n\n const result = await enrichPrivacyRequest(\n sombra,\n request,\n enricherId,\n index,\n );\n if (result) {\n successCount += 1;\n } else {\n skippedCount += 1;\n }\n } catch (err) {\n errorCount += 1;\n }\n },\n { concurrency },\n );\n\n logger.info(\n colors.green(\n `Successfully notified Transcend! \\n Success count: ${successCount}.`,\n ),\n );\n\n if (skippedCount > 0) {\n logger.info(colors.magenta(`Skipped count: ${skippedCount}.`));\n }\n\n if (errorCount > 0) {\n logger.info(colors.red(`Error Count: ${errorCount}.`));\n throw new Error(`Failed to enrich: ${errorCount} requests.`);\n }\n\n return activeResults.length;\n}\n"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const e=require(`./chunk-Bmb41Sf3.cjs`),t=require(`./constants-
|
|
1
|
+
const e=require(`./chunk-Bmb41Sf3.cjs`),t=require(`./constants-gJm1eQH0.cjs`),n=require(`./syncConfigurationToTranscend-s-cjtUI3.cjs`),r=require(`./logger-DQwEYtSS.cjs`);let i=require(`node:fs`),a=require(`node:os`),o=require(`node:path`),s=require(`colors`);s=e.t(s);let c=require(`node:child_process`),l=require(`node:readline`);l=e.t(l);function u(e,t){let n=Math.max(1,a.availableParallelism?.()??1);return{poolSize:typeof e==`number`&&e>0?Math.min(e,t):Math.min(n,t),cpuCount:n}}function d(e){return`'${String(e).replace(/'/g,`'\\''`)}'`}function f(e,t,n=!1){if(n)return;let i=(0,a.platform)();try{if(i===`darwin`){(0,c.spawn)(`osascript`,[`-e`,`
|
|
2
2
|
tell application "Terminal"
|
|
3
3
|
activate
|
|
4
4
|
do script "printf '\\e]0;${t}\\a'; tail -n +1 -f ${e.map(d).join(` -f `)}"
|
|
@@ -20,4 +20,4 @@ Stopping workers...
|
|
|
20
20
|
`))}process.stdin.resume()}H=k({workers:w,onAttach:G,onDetach:K,onCtrlC:W,getLogPaths:e=>N(e,w,E),replayBytes:200*1024,replayWhich:[`out`,`err`],onEnterAttachScreen:G}),e.extraKeyHandler&&(z=e.extraKeyHandler({logsBySlot:E,repaint:()=>B(),setPaused:e=>{R=e}}),process.stdin.on(`data`,z))}await new Promise(e=>{let t=setInterval(async()=>{if(M===0){if(clearInterval(t),I&&clearInterval(I),H(),z)try{process.stdin.off(`data`,z)}catch{}U();let n=Date.now();try{await l.postProcess?.({slots:T,totals:j,logDir:y,logsBySlot:E,startedAt:v,finishedAt:n,viewerMode:f,getLogPathsForSlot:e=>N(e,w,E)})}catch(e){let t=e?.stack??String(e);process.stdout.write(s.default.red(`postProcess error: ${t}\n`))}e()}},300)})}function B(e){let{logsBySlot:t,repaint:n,setPaused:r,exportMgr:i,exportStatus:a,custom:o}=e,s=e=>{process.stdout.write(`${e}\n`)},c=(e,t)=>{let r=Date.now(),i=a?.[e]??{path:t};a&&(a[e]={path:t||i.path,savedAt:r,exported:!0},n())},l=!1,u=(e,i)=>{l||(l=!0,r(!0),process.stdout.write(`\x1B[2J\x1B[H`),process.stdout.write(`Combined logs viewer (press Esc or Ctrl+] to return)
|
|
21
21
|
|
|
22
22
|
`),(async()=>{try{await w(t,e,i)}catch{l=!1,r(!1),n()}})())},d=(e,n)=>{if(i)try{let r=i.exportCombinedLogs(t,e);s(`\nWrote combined ${n} logs to: ${r}`),c(e,r)}catch{s(`\nFailed to write combined ${n} logs`)}};return e=>{let t=e.toString(`utf8`);if(t===`e`){u([`err`],`error`);return}if(t===`w`){u([`warn`,`err`],`warn`);return}if(t===`i`){u([`info`],`all`);return}if(t===`l`){u([`out`,`err`,`structured`],`all`);return}if(t===`E`){d(`error`,`error`);return}if(t===`W`){d(`warn`,`warn`);return}if(t===`I`){d(`info`,`info`);return}if(t===`A`){d(`all`,`ALL`);return}let i=o?.[t];if(i){i({noteExport:c,say:s});return}(t===`\x1B`||t===``)&&(l=!1,r(!1),n())}}Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return R}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return z}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return L}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return B}});
|
|
23
|
-
//# sourceMappingURL=pooling-
|
|
23
|
+
//# sourceMappingURL=pooling-C-TYBnHI.cjs.map
|