@elevasis/ui 2.72.0 → 2.74.0
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/index.js +3 -3
- package/dist/app/index.d.ts +172 -20
- package/dist/app/index.js +9 -10
- package/dist/auth/index.js +5 -6
- package/dist/charts/index.js +5 -6
- package/dist/chunk-2GIJBHZT.js +60 -0
- package/dist/{chunk-2454MK7P.js → chunk-2MRRDF32.js} +115 -8
- package/dist/chunk-3LOKYZJC.js +231 -0
- package/dist/chunk-3QHX4ZKV.js +224 -0
- package/dist/chunk-43LC6XAX.js +69 -0
- package/dist/chunk-4M2BSHVT.js +116 -0
- package/dist/{chunk-SV4M2BUI.js → chunk-4MXNHJTA.js} +111 -46
- package/dist/{chunk-LEQGGX2U.js → chunk-5A6KCFS5.js} +36 -43
- package/dist/{chunk-KIDZXZM5.js → chunk-6JN2TLV2.js} +1480 -4200
- package/dist/{chunk-UZ5JO5TK.js → chunk-7ARBBELS.js} +1 -1
- package/dist/{chunk-DJWIIPKW.js → chunk-7RJ7P6S6.js} +6 -3
- package/dist/chunk-ARAFQBNI.js +515 -0
- package/dist/{chunk-DKVGO6RJ.js → chunk-BA3AZJUR.js} +1 -1
- package/dist/chunk-BRTGCFBH.js +305 -0
- package/dist/{chunk-7ESZKTQG.js → chunk-CQPULKKL.js} +5 -3
- package/dist/chunk-CRA7WQZH.js +49 -0
- package/dist/{chunk-XZIOCB5D.js → chunk-DCQKTDIG.js} +2 -52
- package/dist/{chunk-A3JHFZDP.js → chunk-E6YGA5WH.js} +1 -1
- package/dist/chunk-FA7LMNQO.js +439 -0
- package/dist/chunk-FZSG6M6W.js +45 -0
- package/dist/chunk-GDOR57D7.js +165 -0
- package/dist/{chunk-RRS2QR3W.js → chunk-GO4XJ5D4.js} +1 -1
- package/dist/chunk-GPQQGQGT.js +645 -0
- package/dist/chunk-HYQOGRWG.js +54 -0
- package/dist/{chunk-LCHL5SM2.js → chunk-LN4UW6S4.js} +1 -1
- package/dist/chunk-N6K2Q5BM.js +393 -0
- package/dist/{chunk-Z2W5VNN3.js → chunk-O32UQ26A.js} +3 -2
- package/dist/{chunk-M7WWRZ5Z.js → chunk-QFGNRKIE.js} +1 -78
- package/dist/{chunk-Q3O3WY7Q.js → chunk-R5UGIFYU.js} +74 -18
- package/dist/{chunk-753MKWFV.js → chunk-RFNJ2PTO.js} +1 -1
- package/dist/chunk-VM2OWOXL.js +24 -0
- package/dist/{chunk-ZBXCEWKF.js → chunk-W2QRBQQA.js} +5 -3
- package/dist/chunk-WDBNW44Z.js +49 -0
- package/dist/{chunk-IXBRUIYI.js → chunk-WZU3MCKI.js} +1 -1
- package/dist/chunk-YQQ5GRUR.js +21 -0
- package/dist/{chunk-IMZTRDY2.js → chunk-ZFA56VSR.js} +2 -2
- package/dist/{chunk-AFBFSXP3.js → chunk-ZWI62BQ6.js} +7 -4
- package/dist/chunk-ZYNVCWDZ.js +286 -0
- package/dist/components/index.d.ts +490 -22
- package/dist/components/index.js +335 -35
- package/dist/components/navigation/index.js +6 -7
- package/dist/features/auth/index.d.ts +154 -2
- package/dist/features/auth/index.js +18 -9
- package/dist/features/clients/index.js +7 -7
- package/dist/features/content/index.d.ts +718 -34
- package/dist/features/content/index.js +1345 -51
- package/dist/features/crm/index.d.ts +172 -20
- package/dist/features/crm/index.js +10 -8
- package/dist/features/dashboard/index.d.ts +19 -10
- package/dist/features/dashboard/index.js +9 -8
- package/dist/features/delivery/index.d.ts +134 -0
- package/dist/features/delivery/index.js +23 -7
- package/dist/features/knowledge/index.js +5 -6
- package/dist/features/lead-gen/index.d.ts +47 -35
- package/dist/features/lead-gen/index.js +12 -8
- package/dist/features/monitoring/index.js +11 -9
- package/dist/features/monitoring/requests/index.js +8 -7
- package/dist/features/operations/index.d.ts +38 -20
- package/dist/features/operations/index.js +15 -11
- package/dist/features/public-agent-chat/index.js +3 -1
- package/dist/features/settings/index.d.ts +134 -0
- package/dist/features/settings/index.js +9 -8
- package/dist/hooks/access/index.js +5 -6
- package/dist/hooks/delivery/index.d.ts +134 -0
- package/dist/hooks/delivery/index.js +3 -2
- package/dist/hooks/operations/command-view/utils/transformCommandViewData.d.ts +20 -11
- package/dist/hooks/published.d.ts +1421 -29
- package/dist/hooks/published.js +22 -6
- package/dist/initialization/index.d.ts +134 -0
- package/dist/knowledge/index.d.ts +38 -20
- package/dist/knowledge/index.js +167 -11
- package/dist/{knowledge-search-index-RZLIVWPJ.js → knowledge-search-index-6GQK55IQ.js} +1 -1
- package/dist/layout/index.js +8 -9
- package/dist/profile/index.d.ts +134 -0
- package/dist/provider/index.d.ts +191 -21
- package/dist/provider/index.js +5 -6
- package/dist/provider/published.d.ts +219 -21
- package/dist/provider/published.js +5 -6
- package/dist/test-utils/index.d.ts +16 -5
- package/dist/test-utils/index.js +17 -18
- package/dist/types/index.d.ts +184 -14
- package/dist/utils/index.d.ts +102 -13
- package/dist/utils/index.js +1 -1
- package/package.json +7 -6
- package/dist/chunk-6M6OLGQY.js +0 -36
- package/dist/chunk-MKH2KOAO.js +0 -39
- package/dist/hooks/index.css +0 -659
- package/dist/hooks/index.d.ts +0 -12853
- package/dist/hooks/index.js +0 -27
- package/dist/supabase/index.d.ts +0 -6969
- package/dist/supabase/index.js +0 -3
- package/dist/typeform/index.d.ts +0 -462
- package/dist/typeform/index.js +0 -2051
- package/dist/typeform/schemas.d.ts +0 -67
- package/dist/typeform/schemas.js +0 -2
|
@@ -1683,6 +1683,64 @@ type Database = {
|
|
|
1683
1683
|
}
|
|
1684
1684
|
];
|
|
1685
1685
|
};
|
|
1686
|
+
content_distribution_metrics: {
|
|
1687
|
+
Row: {
|
|
1688
|
+
captured_at: string;
|
|
1689
|
+
created_at: string;
|
|
1690
|
+
distribution_id: string;
|
|
1691
|
+
id: string;
|
|
1692
|
+
metrics: Json;
|
|
1693
|
+
organization_id: string;
|
|
1694
|
+
raw: Json;
|
|
1695
|
+
source: string;
|
|
1696
|
+
source_execution_id: string | null;
|
|
1697
|
+
};
|
|
1698
|
+
Insert: {
|
|
1699
|
+
captured_at?: string;
|
|
1700
|
+
created_at?: string;
|
|
1701
|
+
distribution_id: string;
|
|
1702
|
+
id?: string;
|
|
1703
|
+
metrics?: Json;
|
|
1704
|
+
organization_id: string;
|
|
1705
|
+
raw?: Json;
|
|
1706
|
+
source: string;
|
|
1707
|
+
source_execution_id?: string | null;
|
|
1708
|
+
};
|
|
1709
|
+
Update: {
|
|
1710
|
+
captured_at?: string;
|
|
1711
|
+
created_at?: string;
|
|
1712
|
+
distribution_id?: string;
|
|
1713
|
+
id?: string;
|
|
1714
|
+
metrics?: Json;
|
|
1715
|
+
organization_id?: string;
|
|
1716
|
+
raw?: Json;
|
|
1717
|
+
source?: string;
|
|
1718
|
+
source_execution_id?: string | null;
|
|
1719
|
+
};
|
|
1720
|
+
Relationships: [
|
|
1721
|
+
{
|
|
1722
|
+
foreignKeyName: "content_distribution_metrics_distribution_fkey";
|
|
1723
|
+
columns: ["distribution_id", "organization_id"];
|
|
1724
|
+
isOneToOne: false;
|
|
1725
|
+
referencedRelation: "content_distributions";
|
|
1726
|
+
referencedColumns: ["id", "organization_id"];
|
|
1727
|
+
},
|
|
1728
|
+
{
|
|
1729
|
+
foreignKeyName: "content_distribution_metrics_organization_id_fkey";
|
|
1730
|
+
columns: ["organization_id"];
|
|
1731
|
+
isOneToOne: false;
|
|
1732
|
+
referencedRelation: "organizations";
|
|
1733
|
+
referencedColumns: ["id"];
|
|
1734
|
+
},
|
|
1735
|
+
{
|
|
1736
|
+
foreignKeyName: "content_distribution_metrics_source_execution_id_fkey";
|
|
1737
|
+
columns: ["source_execution_id"];
|
|
1738
|
+
isOneToOne: false;
|
|
1739
|
+
referencedRelation: "execution_logs";
|
|
1740
|
+
referencedColumns: ["execution_id"];
|
|
1741
|
+
}
|
|
1742
|
+
];
|
|
1743
|
+
};
|
|
1686
1744
|
content_distributions: {
|
|
1687
1745
|
Row: {
|
|
1688
1746
|
adapted_body: string | null;
|
|
@@ -1832,6 +1890,63 @@ type Database = {
|
|
|
1832
1890
|
}
|
|
1833
1891
|
];
|
|
1834
1892
|
};
|
|
1893
|
+
content_item_source_assets: {
|
|
1894
|
+
Row: {
|
|
1895
|
+
alt_text: string | null;
|
|
1896
|
+
content_item_id: string;
|
|
1897
|
+
created_at: string;
|
|
1898
|
+
crop: Json | null;
|
|
1899
|
+
derivative_crop: Json | null;
|
|
1900
|
+
derivative_path: string | null;
|
|
1901
|
+
derivative_rendered_at: string | null;
|
|
1902
|
+
id: string;
|
|
1903
|
+
organization_id: string;
|
|
1904
|
+
position: number;
|
|
1905
|
+
source_asset_id: string;
|
|
1906
|
+
};
|
|
1907
|
+
Insert: {
|
|
1908
|
+
alt_text?: string | null;
|
|
1909
|
+
content_item_id: string;
|
|
1910
|
+
created_at?: string;
|
|
1911
|
+
crop?: Json | null;
|
|
1912
|
+
derivative_crop?: Json | null;
|
|
1913
|
+
derivative_path?: string | null;
|
|
1914
|
+
derivative_rendered_at?: string | null;
|
|
1915
|
+
id?: string;
|
|
1916
|
+
organization_id: string;
|
|
1917
|
+
position: number;
|
|
1918
|
+
source_asset_id: string;
|
|
1919
|
+
};
|
|
1920
|
+
Update: {
|
|
1921
|
+
alt_text?: string | null;
|
|
1922
|
+
content_item_id?: string;
|
|
1923
|
+
created_at?: string;
|
|
1924
|
+
crop?: Json | null;
|
|
1925
|
+
derivative_crop?: Json | null;
|
|
1926
|
+
derivative_path?: string | null;
|
|
1927
|
+
derivative_rendered_at?: string | null;
|
|
1928
|
+
id?: string;
|
|
1929
|
+
organization_id?: string;
|
|
1930
|
+
position?: number;
|
|
1931
|
+
source_asset_id?: string;
|
|
1932
|
+
};
|
|
1933
|
+
Relationships: [
|
|
1934
|
+
{
|
|
1935
|
+
foreignKeyName: "content_item_source_assets_asset_fkey";
|
|
1936
|
+
columns: ["source_asset_id", "organization_id"];
|
|
1937
|
+
isOneToOne: false;
|
|
1938
|
+
referencedRelation: "content_source_assets";
|
|
1939
|
+
referencedColumns: ["id", "organization_id"];
|
|
1940
|
+
},
|
|
1941
|
+
{
|
|
1942
|
+
foreignKeyName: "content_item_source_assets_item_fkey";
|
|
1943
|
+
columns: ["content_item_id", "organization_id"];
|
|
1944
|
+
isOneToOne: false;
|
|
1945
|
+
referencedRelation: "content_items";
|
|
1946
|
+
referencedColumns: ["id", "organization_id"];
|
|
1947
|
+
}
|
|
1948
|
+
];
|
|
1949
|
+
};
|
|
1835
1950
|
content_items: {
|
|
1836
1951
|
Row: {
|
|
1837
1952
|
body: string | null;
|
|
@@ -3587,6 +3702,25 @@ type Database = {
|
|
|
3587
3702
|
};
|
|
3588
3703
|
Returns: Json;
|
|
3589
3704
|
};
|
|
3705
|
+
activate_deployment_atomic: {
|
|
3706
|
+
Args: {
|
|
3707
|
+
p_deployment_id: string;
|
|
3708
|
+
p_organization_id: string;
|
|
3709
|
+
};
|
|
3710
|
+
Returns: {
|
|
3711
|
+
created_at: string;
|
|
3712
|
+
deployment_version: string | null;
|
|
3713
|
+
error_message: string | null;
|
|
3714
|
+
id: string;
|
|
3715
|
+
organization_id: string;
|
|
3716
|
+
pid: number | null;
|
|
3717
|
+
port: number | null;
|
|
3718
|
+
sdk_version: string;
|
|
3719
|
+
status: string;
|
|
3720
|
+
tarball_path: string | null;
|
|
3721
|
+
updated_at: string;
|
|
3722
|
+
};
|
|
3723
|
+
};
|
|
3590
3724
|
append_deal_activity: {
|
|
3591
3725
|
Args: {
|
|
3592
3726
|
p_activity: Json;
|
|
@@ -3828,7 +3962,9 @@ declare const OntologyScopeSchema: z.ZodDefault<z.ZodObject<{
|
|
|
3828
3962
|
aliases: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
3829
3963
|
properties: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
3830
3964
|
storage: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
3831
|
-
|
|
3965
|
+
rowSchema: z.ZodOptional<z.ZodString>;
|
|
3966
|
+
stateCatalogId: z.ZodOptional<z.ZodString>;
|
|
3967
|
+
}, z.core.$strict>>>>;
|
|
3832
3968
|
linkTypes: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
3833
3969
|
id: z.ZodString;
|
|
3834
3970
|
label: z.ZodOptional<z.ZodString>;
|
|
@@ -3839,7 +3975,7 @@ declare const OntologyScopeSchema: z.ZodDefault<z.ZodObject<{
|
|
|
3839
3975
|
to: z.ZodString;
|
|
3840
3976
|
cardinality: z.ZodOptional<z.ZodString>;
|
|
3841
3977
|
via: z.ZodOptional<z.ZodString>;
|
|
3842
|
-
}, z.core.$
|
|
3978
|
+
}, z.core.$strict>>>>;
|
|
3843
3979
|
actionTypes: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
3844
3980
|
id: z.ZodString;
|
|
3845
3981
|
label: z.ZodOptional<z.ZodString>;
|
|
@@ -3849,7 +3985,11 @@ declare const OntologyScopeSchema: z.ZodDefault<z.ZodObject<{
|
|
|
3849
3985
|
actsOn: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodString>>>;
|
|
3850
3986
|
input: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
3851
3987
|
effects: z.ZodOptional<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
3852
|
-
|
|
3988
|
+
resourceId: z.ZodOptional<z.ZodString>;
|
|
3989
|
+
invocations: z.ZodOptional<z.ZodArray<z.ZodUnknown>>;
|
|
3990
|
+
lifecycle: z.ZodOptional<z.ZodString>;
|
|
3991
|
+
legacyActionId: z.ZodOptional<z.ZodString>;
|
|
3992
|
+
}, z.core.$strict>>>>;
|
|
3853
3993
|
catalogTypes: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
3854
3994
|
id: z.ZodString;
|
|
3855
3995
|
label: z.ZodOptional<z.ZodString>;
|
|
@@ -3859,7 +3999,10 @@ declare const OntologyScopeSchema: z.ZodDefault<z.ZodObject<{
|
|
|
3859
3999
|
kind: z.ZodOptional<z.ZodString>;
|
|
3860
4000
|
appliesTo: z.ZodOptional<z.ZodString>;
|
|
3861
4001
|
entries: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
3862
|
-
|
|
4002
|
+
legacyCatalogKey: z.ZodOptional<z.ZodString>;
|
|
4003
|
+
legacyPipelineKey: z.ZodOptional<z.ZodString>;
|
|
4004
|
+
legacyEntityKey: z.ZodOptional<z.ZodString>;
|
|
4005
|
+
}, z.core.$strict>>>>;
|
|
3863
4006
|
eventTypes: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
3864
4007
|
id: z.ZodString;
|
|
3865
4008
|
label: z.ZodOptional<z.ZodString>;
|
|
@@ -3867,7 +4010,7 @@ declare const OntologyScopeSchema: z.ZodDefault<z.ZodObject<{
|
|
|
3867
4010
|
ownerSystemId: z.ZodOptional<z.ZodString>;
|
|
3868
4011
|
aliases: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
3869
4012
|
payload: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
3870
|
-
}, z.core.$
|
|
4013
|
+
}, z.core.$strict>>>>;
|
|
3871
4014
|
interfaceTypes: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
3872
4015
|
id: z.ZodString;
|
|
3873
4016
|
label: z.ZodOptional<z.ZodString>;
|
|
@@ -3875,7 +4018,7 @@ declare const OntologyScopeSchema: z.ZodDefault<z.ZodObject<{
|
|
|
3875
4018
|
ownerSystemId: z.ZodOptional<z.ZodString>;
|
|
3876
4019
|
aliases: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
3877
4020
|
properties: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
3878
|
-
}, z.core.$
|
|
4021
|
+
}, z.core.$strict>>>>;
|
|
3879
4022
|
valueTypes: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
3880
4023
|
id: z.ZodString;
|
|
3881
4024
|
label: z.ZodOptional<z.ZodString>;
|
|
@@ -3883,7 +4026,7 @@ declare const OntologyScopeSchema: z.ZodDefault<z.ZodObject<{
|
|
|
3883
4026
|
ownerSystemId: z.ZodOptional<z.ZodString>;
|
|
3884
4027
|
aliases: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
3885
4028
|
primitive: z.ZodOptional<z.ZodString>;
|
|
3886
|
-
}, z.core.$
|
|
4029
|
+
}, z.core.$strict>>>>;
|
|
3887
4030
|
sharedProperties: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
3888
4031
|
id: z.ZodString;
|
|
3889
4032
|
label: z.ZodOptional<z.ZodString>;
|
|
@@ -3893,7 +4036,7 @@ declare const OntologyScopeSchema: z.ZodDefault<z.ZodObject<{
|
|
|
3893
4036
|
valueType: z.ZodOptional<z.ZodString>;
|
|
3894
4037
|
searchable: z.ZodOptional<z.ZodBoolean>;
|
|
3895
4038
|
pii: z.ZodOptional<z.ZodBoolean>;
|
|
3896
|
-
}, z.core.$
|
|
4039
|
+
}, z.core.$strict>>>>;
|
|
3897
4040
|
groups: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
3898
4041
|
id: z.ZodString;
|
|
3899
4042
|
label: z.ZodOptional<z.ZodString>;
|
|
@@ -3901,7 +4044,7 @@ declare const OntologyScopeSchema: z.ZodDefault<z.ZodObject<{
|
|
|
3901
4044
|
ownerSystemId: z.ZodOptional<z.ZodString>;
|
|
3902
4045
|
aliases: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
3903
4046
|
members: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodString>>>;
|
|
3904
|
-
}, z.core.$
|
|
4047
|
+
}, z.core.$strict>>>>;
|
|
3905
4048
|
endpoints: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
3906
4049
|
id: z.ZodString;
|
|
3907
4050
|
label: z.ZodOptional<z.ZodString>;
|
|
@@ -3909,7 +4052,7 @@ declare const OntologyScopeSchema: z.ZodDefault<z.ZodObject<{
|
|
|
3909
4052
|
ownerSystemId: z.ZodOptional<z.ZodString>;
|
|
3910
4053
|
aliases: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
3911
4054
|
route: z.ZodOptional<z.ZodString>;
|
|
3912
|
-
}, z.core.$
|
|
4055
|
+
}, z.core.$strict>>>>;
|
|
3913
4056
|
}, z.core.$strict>>;
|
|
3914
4057
|
type OntologyScope = z.infer<typeof OntologyScopeSchema>;
|
|
3915
4058
|
|
|
@@ -5363,6 +5506,126 @@ declare const ContentPipelineIdSchema: z.ZodString;
|
|
|
5363
5506
|
declare const ContentItemStatusSchema: z.ZodString;
|
|
5364
5507
|
/** `content:catalog/pillar` entries. */
|
|
5365
5508
|
declare const ContentPillarSchema: z.ZodString;
|
|
5509
|
+
/** Response-side crop: unknown keys are stripped, not rejected, like every other response schema here. */
|
|
5510
|
+
declare const ContentAssetCropSchema: z.ZodObject<{
|
|
5511
|
+
x: z.ZodNumber;
|
|
5512
|
+
y: z.ZodNumber;
|
|
5513
|
+
width: z.ZodNumber;
|
|
5514
|
+
height: z.ZodNumber;
|
|
5515
|
+
}, z.core.$strip>;
|
|
5516
|
+
/** Request-side crop: `.strict()`, the same mass-assignment guard every request schema in this file uses. */
|
|
5517
|
+
declare const ContentAssetCropInputSchema: z.ZodObject<{
|
|
5518
|
+
x: z.ZodNumber;
|
|
5519
|
+
y: z.ZodNumber;
|
|
5520
|
+
width: z.ZodNumber;
|
|
5521
|
+
height: z.ZodNumber;
|
|
5522
|
+
}, z.core.$strict>;
|
|
5523
|
+
declare const ContentItemSourceAssetResponseSchema: z.ZodObject<{
|
|
5524
|
+
id: z.ZodString;
|
|
5525
|
+
organizationId: z.ZodString;
|
|
5526
|
+
contentItemId: z.ZodString;
|
|
5527
|
+
sourceAssetId: z.ZodString;
|
|
5528
|
+
position: z.ZodNumber;
|
|
5529
|
+
crop: z.ZodNullable<z.ZodObject<{
|
|
5530
|
+
x: z.ZodNumber;
|
|
5531
|
+
y: z.ZodNumber;
|
|
5532
|
+
width: z.ZodNumber;
|
|
5533
|
+
height: z.ZodNumber;
|
|
5534
|
+
}, z.core.$strip>>;
|
|
5535
|
+
altText: z.ZodNullable<z.ZodString>;
|
|
5536
|
+
derivativePath: z.ZodNullable<z.ZodString>;
|
|
5537
|
+
derivativeCrop: z.ZodNullable<z.ZodObject<{
|
|
5538
|
+
x: z.ZodNumber;
|
|
5539
|
+
y: z.ZodNumber;
|
|
5540
|
+
width: z.ZodNumber;
|
|
5541
|
+
height: z.ZodNumber;
|
|
5542
|
+
}, z.core.$strip>>;
|
|
5543
|
+
derivativeRenderedAt: z.ZodNullable<z.ZodString>;
|
|
5544
|
+
createdAt: z.ZodString;
|
|
5545
|
+
}, z.core.$strip>;
|
|
5546
|
+
declare const ContentItemSourceAssetListResponseSchema: z.ZodObject<{
|
|
5547
|
+
data: z.ZodArray<z.ZodObject<{
|
|
5548
|
+
id: z.ZodString;
|
|
5549
|
+
organizationId: z.ZodString;
|
|
5550
|
+
contentItemId: z.ZodString;
|
|
5551
|
+
sourceAssetId: z.ZodString;
|
|
5552
|
+
position: z.ZodNumber;
|
|
5553
|
+
crop: z.ZodNullable<z.ZodObject<{
|
|
5554
|
+
x: z.ZodNumber;
|
|
5555
|
+
y: z.ZodNumber;
|
|
5556
|
+
width: z.ZodNumber;
|
|
5557
|
+
height: z.ZodNumber;
|
|
5558
|
+
}, z.core.$strip>>;
|
|
5559
|
+
altText: z.ZodNullable<z.ZodString>;
|
|
5560
|
+
derivativePath: z.ZodNullable<z.ZodString>;
|
|
5561
|
+
derivativeCrop: z.ZodNullable<z.ZodObject<{
|
|
5562
|
+
x: z.ZodNumber;
|
|
5563
|
+
y: z.ZodNumber;
|
|
5564
|
+
width: z.ZodNumber;
|
|
5565
|
+
height: z.ZodNumber;
|
|
5566
|
+
}, z.core.$strip>>;
|
|
5567
|
+
derivativeRenderedAt: z.ZodNullable<z.ZodString>;
|
|
5568
|
+
createdAt: z.ZodString;
|
|
5569
|
+
}, z.core.$strip>>;
|
|
5570
|
+
}, z.core.$strip>;
|
|
5571
|
+
/**
|
|
5572
|
+
* One membership as a caller supplies it. Two callers share it:
|
|
5573
|
+
* `CreateContentItemRequestSchema.sourceAssets` (the ordered set a carousel is
|
|
5574
|
+
* created with, in one transaction) and the body of the `addItemSourceAsset`
|
|
5575
|
+
* write, whose `itemId` arrives as a path param rather than in the body.
|
|
5576
|
+
*/
|
|
5577
|
+
declare const ContentItemSourceAssetInputSchema: z.ZodObject<{
|
|
5578
|
+
sourceAssetId: z.ZodString;
|
|
5579
|
+
position: z.ZodNumber;
|
|
5580
|
+
crop: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
5581
|
+
x: z.ZodNumber;
|
|
5582
|
+
y: z.ZodNumber;
|
|
5583
|
+
width: z.ZodNumber;
|
|
5584
|
+
height: z.ZodNumber;
|
|
5585
|
+
}, z.core.$strict>>>;
|
|
5586
|
+
altText: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
5587
|
+
}, z.core.$strict>;
|
|
5588
|
+
/**
|
|
5589
|
+
* Patches one membership's per-slide attributes. `position` is deliberately
|
|
5590
|
+
* absent: moving a slide is a reorder of the whole set (below), because a
|
|
5591
|
+
* single-row position write only makes sense inside the transaction that fixes
|
|
5592
|
+
* up its neighbours. `sourceAssetId` is immutable — swapping the asset is a
|
|
5593
|
+
* remove plus an add.
|
|
5594
|
+
*
|
|
5595
|
+
* `derivativeRenderedAt` is likewise absent, and deliberately: the server stamps
|
|
5596
|
+
* it whenever `derivativePath` is written, because a client clock is not evidence
|
|
5597
|
+
* of when a server-side row changed.
|
|
5598
|
+
*/
|
|
5599
|
+
declare const UpdateContentItemSourceAssetRequestSchema: z.ZodObject<{
|
|
5600
|
+
crop: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
5601
|
+
x: z.ZodNumber;
|
|
5602
|
+
y: z.ZodNumber;
|
|
5603
|
+
width: z.ZodNumber;
|
|
5604
|
+
height: z.ZodNumber;
|
|
5605
|
+
}, z.core.$strict>>>;
|
|
5606
|
+
altText: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
5607
|
+
derivativePath: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
5608
|
+
derivativeCrop: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
5609
|
+
x: z.ZodNumber;
|
|
5610
|
+
y: z.ZodNumber;
|
|
5611
|
+
width: z.ZodNumber;
|
|
5612
|
+
height: z.ZodNumber;
|
|
5613
|
+
}, z.core.$strict>>>;
|
|
5614
|
+
}, z.core.$strict>;
|
|
5615
|
+
/**
|
|
5616
|
+
* The item's complete membership set in its new order — index becomes
|
|
5617
|
+
* `position`, so index 0 is the new cover. Wholesale rather than per-row
|
|
5618
|
+
* because `UNIQUE (content_item_id, position)` is DEFERRABLE INITIALLY
|
|
5619
|
+
* DEFERRED: the writer issues plain per-row updates inside one transaction and
|
|
5620
|
+
* the constraint is checked at COMMIT. An implementation that shuffles through
|
|
5621
|
+
* a temporary offset is a sign the deferrable constraint was not used.
|
|
5622
|
+
*
|
|
5623
|
+
* The service rejects a list that does not name exactly the item's current
|
|
5624
|
+
* memberships — this schema can only check shape, not membership.
|
|
5625
|
+
*/
|
|
5626
|
+
declare const ReorderContentItemSourceAssetsRequestSchema: z.ZodObject<{
|
|
5627
|
+
orderedAssetIds: z.ZodArray<z.ZodString>;
|
|
5628
|
+
}, z.core.$strict>;
|
|
5366
5629
|
declare const ListContentItemsQuerySchema: z.ZodObject<{
|
|
5367
5630
|
status: z.ZodOptional<z.ZodString>;
|
|
5368
5631
|
pillar: z.ZodOptional<z.ZodString>;
|
|
@@ -5384,6 +5647,29 @@ declare const ContentItemResponseSchema: z.ZodObject<{
|
|
|
5384
5647
|
pipelineId: z.ZodNullable<z.ZodString>;
|
|
5385
5648
|
clientId: z.ZodNullable<z.ZodString>;
|
|
5386
5649
|
sourceAssetId: z.ZodNullable<z.ZodString>;
|
|
5650
|
+
sourceAssets: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
5651
|
+
id: z.ZodString;
|
|
5652
|
+
organizationId: z.ZodString;
|
|
5653
|
+
contentItemId: z.ZodString;
|
|
5654
|
+
sourceAssetId: z.ZodString;
|
|
5655
|
+
position: z.ZodNumber;
|
|
5656
|
+
crop: z.ZodNullable<z.ZodObject<{
|
|
5657
|
+
x: z.ZodNumber;
|
|
5658
|
+
y: z.ZodNumber;
|
|
5659
|
+
width: z.ZodNumber;
|
|
5660
|
+
height: z.ZodNumber;
|
|
5661
|
+
}, z.core.$strip>>;
|
|
5662
|
+
altText: z.ZodNullable<z.ZodString>;
|
|
5663
|
+
derivativePath: z.ZodNullable<z.ZodString>;
|
|
5664
|
+
derivativeCrop: z.ZodNullable<z.ZodObject<{
|
|
5665
|
+
x: z.ZodNumber;
|
|
5666
|
+
y: z.ZodNumber;
|
|
5667
|
+
width: z.ZodNumber;
|
|
5668
|
+
height: z.ZodNumber;
|
|
5669
|
+
}, z.core.$strip>>;
|
|
5670
|
+
derivativeRenderedAt: z.ZodNullable<z.ZodString>;
|
|
5671
|
+
createdAt: z.ZodString;
|
|
5672
|
+
}, z.core.$strip>>>;
|
|
5387
5673
|
processingState: z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
5388
5674
|
status: z.ZodEnum<{
|
|
5389
5675
|
error: "error";
|
|
@@ -5418,6 +5704,29 @@ declare const ContentItemListResponseSchema: z.ZodObject<{
|
|
|
5418
5704
|
pipelineId: z.ZodNullable<z.ZodString>;
|
|
5419
5705
|
clientId: z.ZodNullable<z.ZodString>;
|
|
5420
5706
|
sourceAssetId: z.ZodNullable<z.ZodString>;
|
|
5707
|
+
sourceAssets: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
5708
|
+
id: z.ZodString;
|
|
5709
|
+
organizationId: z.ZodString;
|
|
5710
|
+
contentItemId: z.ZodString;
|
|
5711
|
+
sourceAssetId: z.ZodString;
|
|
5712
|
+
position: z.ZodNumber;
|
|
5713
|
+
crop: z.ZodNullable<z.ZodObject<{
|
|
5714
|
+
x: z.ZodNumber;
|
|
5715
|
+
y: z.ZodNumber;
|
|
5716
|
+
width: z.ZodNumber;
|
|
5717
|
+
height: z.ZodNumber;
|
|
5718
|
+
}, z.core.$strip>>;
|
|
5719
|
+
altText: z.ZodNullable<z.ZodString>;
|
|
5720
|
+
derivativePath: z.ZodNullable<z.ZodString>;
|
|
5721
|
+
derivativeCrop: z.ZodNullable<z.ZodObject<{
|
|
5722
|
+
x: z.ZodNumber;
|
|
5723
|
+
y: z.ZodNumber;
|
|
5724
|
+
width: z.ZodNumber;
|
|
5725
|
+
height: z.ZodNumber;
|
|
5726
|
+
}, z.core.$strip>>;
|
|
5727
|
+
derivativeRenderedAt: z.ZodNullable<z.ZodString>;
|
|
5728
|
+
createdAt: z.ZodString;
|
|
5729
|
+
}, z.core.$strip>>>;
|
|
5421
5730
|
processingState: z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
5422
5731
|
status: z.ZodEnum<{
|
|
5423
5732
|
error: "error";
|
|
@@ -5444,6 +5753,14 @@ declare const ContentItemListResponseSchema: z.ZodObject<{
|
|
|
5444
5753
|
limit: z.ZodNumber;
|
|
5445
5754
|
offset: z.ZodNumber;
|
|
5446
5755
|
}, z.core.$strip>;
|
|
5756
|
+
/**
|
|
5757
|
+
* Membership is deliberately absent here (Open Decision 11, 2026-08-17). A
|
|
5758
|
+
* wholesale-replace `sourceAssets` array would force every partial item update
|
|
5759
|
+
* to say something about the asset list, and once omission means "leave alone"
|
|
5760
|
+
* there is no longer any way to clear membership at all. Use
|
|
5761
|
+
* `addItemSourceAsset` / `removeItemSourceAsset` / `reorderItemSourceAssets` /
|
|
5762
|
+
* `updateItemSourceAsset` instead. Do not "complete" this schema by adding it.
|
|
5763
|
+
*/
|
|
5447
5764
|
declare const UpdateContentItemRequestSchema: z.ZodObject<{
|
|
5448
5765
|
title: z.ZodOptional<z.ZodString>;
|
|
5449
5766
|
body: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
@@ -5585,7 +5902,14 @@ declare const ContentDistributionResponseSchema: z.ZodObject<{
|
|
|
5585
5902
|
adaptedBody: z.ZodNullable<z.ZodString>;
|
|
5586
5903
|
platformContent: z.ZodNullable<z.ZodUnknown>;
|
|
5587
5904
|
checklist: z.ZodNullable<z.ZodUnknown>;
|
|
5588
|
-
mediaUrls: z.ZodArray<z.
|
|
5905
|
+
mediaUrls: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
5906
|
+
kind: z.ZodLiteral<"storage">;
|
|
5907
|
+
bucket: z.ZodString;
|
|
5908
|
+
path: z.ZodString;
|
|
5909
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
5910
|
+
kind: z.ZodLiteral<"url">;
|
|
5911
|
+
url: z.ZodString;
|
|
5912
|
+
}, z.core.$strict>], "kind">>;
|
|
5589
5913
|
processingState: z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
5590
5914
|
status: z.ZodEnum<{
|
|
5591
5915
|
error: "error";
|
|
@@ -5619,7 +5943,14 @@ declare const ContentDistributionListResponseSchema: z.ZodObject<{
|
|
|
5619
5943
|
adaptedBody: z.ZodNullable<z.ZodString>;
|
|
5620
5944
|
platformContent: z.ZodNullable<z.ZodUnknown>;
|
|
5621
5945
|
checklist: z.ZodNullable<z.ZodUnknown>;
|
|
5622
|
-
mediaUrls: z.ZodArray<z.
|
|
5946
|
+
mediaUrls: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
5947
|
+
kind: z.ZodLiteral<"storage">;
|
|
5948
|
+
bucket: z.ZodString;
|
|
5949
|
+
path: z.ZodString;
|
|
5950
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
5951
|
+
kind: z.ZodLiteral<"url">;
|
|
5952
|
+
url: z.ZodString;
|
|
5953
|
+
}, z.core.$strict>], "kind">>;
|
|
5623
5954
|
processingState: z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
5624
5955
|
status: z.ZodEnum<{
|
|
5625
5956
|
error: "error";
|
|
@@ -5643,6 +5974,23 @@ declare const ContentDistributionListResponseSchema: z.ZodObject<{
|
|
|
5643
5974
|
updatedAt: z.ZodString;
|
|
5644
5975
|
}, z.core.$strip>>;
|
|
5645
5976
|
}, z.core.$strip>;
|
|
5977
|
+
declare const CreateContentDistributionRequestSchema: z.ZodObject<{
|
|
5978
|
+
contentItemId: z.ZodString;
|
|
5979
|
+
platform: z.ZodString;
|
|
5980
|
+
format: z.ZodString;
|
|
5981
|
+
status: z.ZodOptional<z.ZodString>;
|
|
5982
|
+
adaptedBody: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
5983
|
+
platformContent: z.ZodOptional<z.ZodNullable<z.ZodUnknown>>;
|
|
5984
|
+
checklist: z.ZodOptional<z.ZodNullable<z.ZodUnknown>>;
|
|
5985
|
+
mediaUrls: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
5986
|
+
kind: z.ZodLiteral<"storage">;
|
|
5987
|
+
bucket: z.ZodString;
|
|
5988
|
+
path: z.ZodString;
|
|
5989
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
5990
|
+
kind: z.ZodLiteral<"url">;
|
|
5991
|
+
url: z.ZodString;
|
|
5992
|
+
}, z.core.$strict>], "kind">>>;
|
|
5993
|
+
}, z.core.$strict>;
|
|
5646
5994
|
/**
|
|
5647
5995
|
* `publishMethod` is where D7's manual-publish state becomes visible: a row
|
|
5648
5996
|
* with `publishedAt` set and no `platformPostId`.
|
|
@@ -5652,7 +6000,14 @@ declare const UpdateContentDistributionRequestSchema: z.ZodObject<{
|
|
|
5652
6000
|
adaptedBody: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
5653
6001
|
platformContent: z.ZodOptional<z.ZodNullable<z.ZodUnknown>>;
|
|
5654
6002
|
checklist: z.ZodOptional<z.ZodNullable<z.ZodUnknown>>;
|
|
5655
|
-
mediaUrls: z.ZodOptional<z.ZodArray<z.
|
|
6003
|
+
mediaUrls: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
6004
|
+
kind: z.ZodLiteral<"storage">;
|
|
6005
|
+
bucket: z.ZodString;
|
|
6006
|
+
path: z.ZodString;
|
|
6007
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
6008
|
+
kind: z.ZodLiteral<"url">;
|
|
6009
|
+
url: z.ZodString;
|
|
6010
|
+
}, z.core.$strict>], "kind">>>;
|
|
5656
6011
|
publishMethod: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
5657
6012
|
publishedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
5658
6013
|
platformPostId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
@@ -5660,9 +6015,90 @@ declare const UpdateContentDistributionRequestSchema: z.ZodObject<{
|
|
|
5660
6015
|
metrics: z.ZodOptional<z.ZodUnknown>;
|
|
5661
6016
|
metricsUpdatedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
5662
6017
|
}, z.core.$strict>;
|
|
6018
|
+
/**
|
|
6019
|
+
* The cross-platform vocabulary. One name per concept, shared by every
|
|
6020
|
+
* platform, so a chart can put Instagram and TikTok on the same axis.
|
|
6021
|
+
*
|
|
6022
|
+
* Each key is optional and its ABSENCE MEANS UNSUPPORTED, not zero -- a FEED
|
|
6023
|
+
* carousel reports no `clicks` at all, which is a different fact from clicks
|
|
6024
|
+
* being zero. Readers must distinguish the two.
|
|
6025
|
+
*
|
|
6026
|
+
* Strict on purpose: this object is the gate the database deliberately does not
|
|
6027
|
+
* enforce (a CHECK on JSON keys would need a migration per platform). A source
|
|
6028
|
+
* returning a name outside this list is a mapping that has not been written
|
|
6029
|
+
* yet, and the verbatim `raw` alongside it means nothing is lost meanwhile.
|
|
6030
|
+
*/
|
|
6031
|
+
declare const ContentDistributionMetricsSchema: z.ZodObject<{
|
|
6032
|
+
views: z.ZodOptional<z.ZodNumber>;
|
|
6033
|
+
reach: z.ZodOptional<z.ZodNumber>;
|
|
6034
|
+
likes: z.ZodOptional<z.ZodNumber>;
|
|
6035
|
+
comments: z.ZodOptional<z.ZodNumber>;
|
|
6036
|
+
shares: z.ZodOptional<z.ZodNumber>;
|
|
6037
|
+
saves: z.ZodOptional<z.ZodNumber>;
|
|
6038
|
+
engagements: z.ZodOptional<z.ZodNumber>;
|
|
6039
|
+
profile_visits: z.ZodOptional<z.ZodNumber>;
|
|
6040
|
+
profile_activity: z.ZodOptional<z.ZodNumber>;
|
|
6041
|
+
follows: z.ZodOptional<z.ZodNumber>;
|
|
6042
|
+
clicks: z.ZodOptional<z.ZodNumber>;
|
|
6043
|
+
}, z.core.$strict>;
|
|
6044
|
+
declare const ContentDistributionMetricsResponseSchema: z.ZodObject<{
|
|
6045
|
+
id: z.ZodString;
|
|
6046
|
+
organizationId: z.ZodString;
|
|
6047
|
+
distributionId: z.ZodString;
|
|
6048
|
+
capturedAt: z.ZodString;
|
|
6049
|
+
source: z.ZodString;
|
|
6050
|
+
metrics: z.ZodObject<{
|
|
6051
|
+
views: z.ZodOptional<z.ZodNumber>;
|
|
6052
|
+
reach: z.ZodOptional<z.ZodNumber>;
|
|
6053
|
+
likes: z.ZodOptional<z.ZodNumber>;
|
|
6054
|
+
comments: z.ZodOptional<z.ZodNumber>;
|
|
6055
|
+
shares: z.ZodOptional<z.ZodNumber>;
|
|
6056
|
+
saves: z.ZodOptional<z.ZodNumber>;
|
|
6057
|
+
engagements: z.ZodOptional<z.ZodNumber>;
|
|
6058
|
+
profile_visits: z.ZodOptional<z.ZodNumber>;
|
|
6059
|
+
profile_activity: z.ZodOptional<z.ZodNumber>;
|
|
6060
|
+
follows: z.ZodOptional<z.ZodNumber>;
|
|
6061
|
+
clicks: z.ZodOptional<z.ZodNumber>;
|
|
6062
|
+
}, z.core.$strict>;
|
|
6063
|
+
raw: z.ZodUnknown;
|
|
6064
|
+
sourceExecutionId: z.ZodNullable<z.ZodString>;
|
|
6065
|
+
createdAt: z.ZodString;
|
|
6066
|
+
}, z.core.$strip>;
|
|
6067
|
+
declare const ContentDistributionMetricsListResponseSchema: z.ZodObject<{
|
|
6068
|
+
data: z.ZodArray<z.ZodObject<{
|
|
6069
|
+
id: z.ZodString;
|
|
6070
|
+
organizationId: z.ZodString;
|
|
6071
|
+
distributionId: z.ZodString;
|
|
6072
|
+
capturedAt: z.ZodString;
|
|
6073
|
+
source: z.ZodString;
|
|
6074
|
+
metrics: z.ZodObject<{
|
|
6075
|
+
views: z.ZodOptional<z.ZodNumber>;
|
|
6076
|
+
reach: z.ZodOptional<z.ZodNumber>;
|
|
6077
|
+
likes: z.ZodOptional<z.ZodNumber>;
|
|
6078
|
+
comments: z.ZodOptional<z.ZodNumber>;
|
|
6079
|
+
shares: z.ZodOptional<z.ZodNumber>;
|
|
6080
|
+
saves: z.ZodOptional<z.ZodNumber>;
|
|
6081
|
+
engagements: z.ZodOptional<z.ZodNumber>;
|
|
6082
|
+
profile_visits: z.ZodOptional<z.ZodNumber>;
|
|
6083
|
+
profile_activity: z.ZodOptional<z.ZodNumber>;
|
|
6084
|
+
follows: z.ZodOptional<z.ZodNumber>;
|
|
6085
|
+
clicks: z.ZodOptional<z.ZodNumber>;
|
|
6086
|
+
}, z.core.$strict>;
|
|
6087
|
+
raw: z.ZodUnknown;
|
|
6088
|
+
sourceExecutionId: z.ZodNullable<z.ZodString>;
|
|
6089
|
+
createdAt: z.ZodString;
|
|
6090
|
+
}, z.core.$strip>>;
|
|
6091
|
+
}, z.core.$strip>;
|
|
5663
6092
|
type ContentPipelineId = z.infer<typeof ContentPipelineIdSchema>;
|
|
5664
6093
|
type ContentItemStatus = z.infer<typeof ContentItemStatusSchema>;
|
|
5665
6094
|
type ContentPillar = z.infer<typeof ContentPillarSchema>;
|
|
6095
|
+
type ContentAssetCrop = z.infer<typeof ContentAssetCropSchema>;
|
|
6096
|
+
type ContentAssetCropInput = z.infer<typeof ContentAssetCropInputSchema>;
|
|
6097
|
+
type ContentItemSourceAssetResponse = z.infer<typeof ContentItemSourceAssetResponseSchema>;
|
|
6098
|
+
type ContentItemSourceAssetListResponse = z.infer<typeof ContentItemSourceAssetListResponseSchema>;
|
|
6099
|
+
type ContentItemSourceAssetInput = z.infer<typeof ContentItemSourceAssetInputSchema>;
|
|
6100
|
+
type UpdateContentItemSourceAssetRequest = z.infer<typeof UpdateContentItemSourceAssetRequestSchema>;
|
|
6101
|
+
type ReorderContentItemSourceAssetsRequest = z.infer<typeof ReorderContentItemSourceAssetsRequestSchema>;
|
|
5666
6102
|
type ListContentItemsQuery = z.infer<typeof ListContentItemsQuerySchema>;
|
|
5667
6103
|
type ContentItemResponse = z.infer<typeof ContentItemResponseSchema>;
|
|
5668
6104
|
type ContentItemListResponse = z.infer<typeof ContentItemListResponseSchema>;
|
|
@@ -5678,7 +6114,11 @@ type UpdateContentSourceAssetRequest = z.infer<typeof UpdateContentSourceAssetRe
|
|
|
5678
6114
|
type ListContentDistributionsQuery = z.infer<typeof ListContentDistributionsQuerySchema>;
|
|
5679
6115
|
type ContentDistributionResponse = z.infer<typeof ContentDistributionResponseSchema>;
|
|
5680
6116
|
type ContentDistributionListResponse = z.infer<typeof ContentDistributionListResponseSchema>;
|
|
6117
|
+
type CreateContentDistributionRequest = z.infer<typeof CreateContentDistributionRequestSchema>;
|
|
5681
6118
|
type UpdateContentDistributionRequest = z.infer<typeof UpdateContentDistributionRequestSchema>;
|
|
6119
|
+
type ContentDistributionMetrics = z.infer<typeof ContentDistributionMetricsSchema>;
|
|
6120
|
+
type ContentDistributionMetricsResponse = z.infer<typeof ContentDistributionMetricsResponseSchema>;
|
|
6121
|
+
type ContentDistributionMetricsListResponse = z.infer<typeof ContentDistributionMetricsListResponseSchema>;
|
|
5682
6122
|
|
|
5683
6123
|
/**
|
|
5684
6124
|
* Time range selector for dashboard metrics
|
|
@@ -6110,7 +6550,7 @@ type AIResourceDefinition = SerializedWorkflowDefinition | SerializedAgentDefini
|
|
|
6110
6550
|
* Note: Concrete adapter implementations are deferred until needed.
|
|
6111
6551
|
* This type provides compile-time safety and auto-completion for tool definitions.
|
|
6112
6552
|
*/
|
|
6113
|
-
type IntegrationType = 'gmail' | 'google-sheets' | 'slack' | 'github' | 'linear' | 'attio' | 'airtable' | 'salesforce' | 'hubspot' | 'stripe' | 'twilio' | 'sendgrid' | 'mailgun' | 'zapier' | 'webhook' | 'apify' | 'instantly' | 'resend' | 'signature-api' | 'dropbox' | 'anymailfinder' | 'tomba' | 'millionverifier';
|
|
6553
|
+
type IntegrationType = 'gmail' | 'google-sheets' | 'slack' | 'github' | 'linear' | 'attio' | 'airtable' | 'salesforce' | 'hubspot' | 'stripe' | 'twilio' | 'sendgrid' | 'mailgun' | 'zapier' | 'webhook' | 'apify' | 'instantly' | 'resend' | 'signature-api' | 'dropbox' | 'anymailfinder' | 'tomba' | 'millionverifier' | 'instagram';
|
|
6114
6554
|
|
|
6115
6555
|
/**
|
|
6116
6556
|
* Resource Registry type definitions
|
|
@@ -6888,7 +7328,9 @@ declare const OrganizationModelSchema: z.ZodObject<{
|
|
|
6888
7328
|
aliases: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
6889
7329
|
properties: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
6890
7330
|
storage: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
6891
|
-
|
|
7331
|
+
rowSchema: z.ZodOptional<z.ZodString>;
|
|
7332
|
+
stateCatalogId: z.ZodOptional<z.ZodString>;
|
|
7333
|
+
}, z.core.$strict>>>>;
|
|
6892
7334
|
linkTypes: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
6893
7335
|
id: z.ZodString;
|
|
6894
7336
|
label: z.ZodOptional<z.ZodString>;
|
|
@@ -6899,7 +7341,7 @@ declare const OrganizationModelSchema: z.ZodObject<{
|
|
|
6899
7341
|
to: z.ZodString;
|
|
6900
7342
|
cardinality: z.ZodOptional<z.ZodString>;
|
|
6901
7343
|
via: z.ZodOptional<z.ZodString>;
|
|
6902
|
-
}, z.core.$
|
|
7344
|
+
}, z.core.$strict>>>>;
|
|
6903
7345
|
actionTypes: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
6904
7346
|
id: z.ZodString;
|
|
6905
7347
|
label: z.ZodOptional<z.ZodString>;
|
|
@@ -6909,7 +7351,11 @@ declare const OrganizationModelSchema: z.ZodObject<{
|
|
|
6909
7351
|
actsOn: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodString>>>;
|
|
6910
7352
|
input: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
6911
7353
|
effects: z.ZodOptional<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
6912
|
-
|
|
7354
|
+
resourceId: z.ZodOptional<z.ZodString>;
|
|
7355
|
+
invocations: z.ZodOptional<z.ZodArray<z.ZodUnknown>>;
|
|
7356
|
+
lifecycle: z.ZodOptional<z.ZodString>;
|
|
7357
|
+
legacyActionId: z.ZodOptional<z.ZodString>;
|
|
7358
|
+
}, z.core.$strict>>>>;
|
|
6913
7359
|
catalogTypes: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
6914
7360
|
id: z.ZodString;
|
|
6915
7361
|
label: z.ZodOptional<z.ZodString>;
|
|
@@ -6919,7 +7365,10 @@ declare const OrganizationModelSchema: z.ZodObject<{
|
|
|
6919
7365
|
kind: z.ZodOptional<z.ZodString>;
|
|
6920
7366
|
appliesTo: z.ZodOptional<z.ZodString>;
|
|
6921
7367
|
entries: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
6922
|
-
|
|
7368
|
+
legacyCatalogKey: z.ZodOptional<z.ZodString>;
|
|
7369
|
+
legacyPipelineKey: z.ZodOptional<z.ZodString>;
|
|
7370
|
+
legacyEntityKey: z.ZodOptional<z.ZodString>;
|
|
7371
|
+
}, z.core.$strict>>>>;
|
|
6923
7372
|
eventTypes: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
6924
7373
|
id: z.ZodString;
|
|
6925
7374
|
label: z.ZodOptional<z.ZodString>;
|
|
@@ -6927,7 +7376,7 @@ declare const OrganizationModelSchema: z.ZodObject<{
|
|
|
6927
7376
|
ownerSystemId: z.ZodOptional<z.ZodString>;
|
|
6928
7377
|
aliases: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
6929
7378
|
payload: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
6930
|
-
}, z.core.$
|
|
7379
|
+
}, z.core.$strict>>>>;
|
|
6931
7380
|
interfaceTypes: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
6932
7381
|
id: z.ZodString;
|
|
6933
7382
|
label: z.ZodOptional<z.ZodString>;
|
|
@@ -6935,7 +7384,7 @@ declare const OrganizationModelSchema: z.ZodObject<{
|
|
|
6935
7384
|
ownerSystemId: z.ZodOptional<z.ZodString>;
|
|
6936
7385
|
aliases: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
6937
7386
|
properties: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
6938
|
-
}, z.core.$
|
|
7387
|
+
}, z.core.$strict>>>>;
|
|
6939
7388
|
valueTypes: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
6940
7389
|
id: z.ZodString;
|
|
6941
7390
|
label: z.ZodOptional<z.ZodString>;
|
|
@@ -6943,7 +7392,7 @@ declare const OrganizationModelSchema: z.ZodObject<{
|
|
|
6943
7392
|
ownerSystemId: z.ZodOptional<z.ZodString>;
|
|
6944
7393
|
aliases: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
6945
7394
|
primitive: z.ZodOptional<z.ZodString>;
|
|
6946
|
-
}, z.core.$
|
|
7395
|
+
}, z.core.$strict>>>>;
|
|
6947
7396
|
sharedProperties: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
6948
7397
|
id: z.ZodString;
|
|
6949
7398
|
label: z.ZodOptional<z.ZodString>;
|
|
@@ -6953,7 +7402,7 @@ declare const OrganizationModelSchema: z.ZodObject<{
|
|
|
6953
7402
|
valueType: z.ZodOptional<z.ZodString>;
|
|
6954
7403
|
searchable: z.ZodOptional<z.ZodBoolean>;
|
|
6955
7404
|
pii: z.ZodOptional<z.ZodBoolean>;
|
|
6956
|
-
}, z.core.$
|
|
7405
|
+
}, z.core.$strict>>>>;
|
|
6957
7406
|
groups: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
6958
7407
|
id: z.ZodString;
|
|
6959
7408
|
label: z.ZodOptional<z.ZodString>;
|
|
@@ -6961,7 +7410,7 @@ declare const OrganizationModelSchema: z.ZodObject<{
|
|
|
6961
7410
|
ownerSystemId: z.ZodOptional<z.ZodString>;
|
|
6962
7411
|
aliases: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
6963
7412
|
members: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodString>>>;
|
|
6964
|
-
}, z.core.$
|
|
7413
|
+
}, z.core.$strict>>>>;
|
|
6965
7414
|
endpoints: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
6966
7415
|
id: z.ZodString;
|
|
6967
7416
|
label: z.ZodOptional<z.ZodString>;
|
|
@@ -6969,7 +7418,7 @@ declare const OrganizationModelSchema: z.ZodObject<{
|
|
|
6969
7418
|
ownerSystemId: z.ZodOptional<z.ZodString>;
|
|
6970
7419
|
aliases: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
6971
7420
|
route: z.ZodOptional<z.ZodString>;
|
|
6972
|
-
}, z.core.$
|
|
7421
|
+
}, z.core.$strict>>>>;
|
|
6973
7422
|
}, z.core.$strict>>>;
|
|
6974
7423
|
resources: z.ZodDefault<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
6975
7424
|
id: z.ZodString;
|
|
@@ -7922,6 +8371,50 @@ declare const ListCredentialsResponseSchema: z.ZodObject<{
|
|
|
7922
8371
|
/** API response type for a single credential list item */
|
|
7923
8372
|
type CredentialListItem = z.infer<typeof ListCredentialsResponseSchema>['credentials'][number];
|
|
7924
8373
|
|
|
8374
|
+
/**
|
|
8375
|
+
* Storage-neutral file descriptor.
|
|
8376
|
+
*
|
|
8377
|
+
* Dropbox and Google Drive (the foreseeable second provider) both ship
|
|
8378
|
+
* their own file/metadata shapes. Consumers on both sides of the wire —
|
|
8379
|
+
* a UI file browser and the API route that talks to the provider — need
|
|
8380
|
+
* to agree on one normalized shape, which is why it lives here instead
|
|
8381
|
+
* of being duplicated in each consumer.
|
|
8382
|
+
*
|
|
8383
|
+
* Adapters (`createDropboxAdapter`, a future Drive adapter) stay concrete
|
|
8384
|
+
* and keep their own provider-shaped responses. Normalization into this
|
|
8385
|
+
* type happens at the route/hook boundary — a few lines per provider,
|
|
8386
|
+
* not behind a shared `CloudStorageAdapter` interface.
|
|
8387
|
+
*/
|
|
8388
|
+
interface CloudStorageFile {
|
|
8389
|
+
id: string;
|
|
8390
|
+
name: string;
|
|
8391
|
+
kind: 'file' | 'folder';
|
|
8392
|
+
path?: string;
|
|
8393
|
+
mimeType?: string;
|
|
8394
|
+
sizeBytes?: number;
|
|
8395
|
+
width?: number;
|
|
8396
|
+
height?: number;
|
|
8397
|
+
/** ISO 8601 timestamp the asset was captured (e.g. photo EXIF date), when the provider exposes one. */
|
|
8398
|
+
capturedAt?: string;
|
|
8399
|
+
/**
|
|
8400
|
+
* Optional on purpose. Dropbox does not produce a thumbnail for HEIC or
|
|
8401
|
+
* for anything over 20 MB — "no thumbnail" is a normal state a consumer
|
|
8402
|
+
* renders a fallback for, not an error.
|
|
8403
|
+
*/
|
|
8404
|
+
thumbnailUrl?: string;
|
|
8405
|
+
}
|
|
8406
|
+
/**
|
|
8407
|
+
* Paginated list of storage-neutral file descriptors.
|
|
8408
|
+
*
|
|
8409
|
+
* `nextCursor` deliberately covers both Dropbox's cursor and Google
|
|
8410
|
+
* Drive's `pageToken` — one field, not a provider-specific pagination
|
|
8411
|
+
* field per provider.
|
|
8412
|
+
*/
|
|
8413
|
+
interface CloudStorageListResult {
|
|
8414
|
+
files: CloudStorageFile[];
|
|
8415
|
+
nextCursor?: string;
|
|
8416
|
+
}
|
|
8417
|
+
|
|
7925
8418
|
/**
|
|
7926
8419
|
* Query key factory for executions TanStack Query hooks.
|
|
7927
8420
|
* Uses organization UUID (not name) for cache isolation.
|
|
@@ -9575,6 +10068,21 @@ declare const contentKeys: {
|
|
|
9575
10068
|
}, "limit" | "offset" | "search" | "status" | "pillar" | "clientId" | "pipelineId" | "reviewedBy">>];
|
|
9576
10069
|
itemDetail: (organizationId: WorkOsOrgId | null | undefined, itemId: string | undefined) => readonly ["content", "items", "detail", WorkOsOrgId | null | undefined, string | undefined];
|
|
9577
10070
|
itemAttempts: (organizationId: WorkOsOrgId | null | undefined, itemId: string | undefined) => readonly ["content", "items", "attempts", WorkOsOrgId | null | undefined, string | undefined];
|
|
10071
|
+
/**
|
|
10072
|
+
* One item's ordered source-asset membership (`content_item_source_assets`).
|
|
10073
|
+
*
|
|
10074
|
+
* Nested under `items()` on purpose, matching `itemAttempts`: membership is a
|
|
10075
|
+
* property of the item, and every item read that expands `sourceAssets` goes
|
|
10076
|
+
* stale for exactly the same writes. That makes `contentKeys.items()` a
|
|
10077
|
+
* prefix that reaches this key, the item list, and the item detail in one
|
|
10078
|
+
* invalidation -- which is why the membership mutations invalidate both this
|
|
10079
|
+
* key (the direct read) and `items()` (every reader carrying the expansion).
|
|
10080
|
+
*
|
|
10081
|
+
* Distinct from `sourceAssets()` below, which keys the assets themselves.
|
|
10082
|
+
* A membership row carries `sourceAssetId` and no display fields, so the two
|
|
10083
|
+
* caches are never interchangeable.
|
|
10084
|
+
*/
|
|
10085
|
+
itemSourceAssets: (organizationId: WorkOsOrgId | null | undefined, itemId: string | undefined) => readonly ["content", "items", "source-assets", WorkOsOrgId | null | undefined, string | undefined];
|
|
9578
10086
|
distributions: () => readonly ["content", "distributions"];
|
|
9579
10087
|
distributionsList: (organizationId: WorkOsOrgId | null | undefined, filters: ContentDistributionsListFilters) => readonly ["content", "distributions", "list", WorkOsOrgId | null | undefined, Partial<Pick<{
|
|
9580
10088
|
limit: number;
|
|
@@ -9584,6 +10092,12 @@ declare const contentKeys: {
|
|
|
9584
10092
|
status?: string | undefined;
|
|
9585
10093
|
}, "limit" | "offset" | "platform" | "status" | "contentItemId">>];
|
|
9586
10094
|
distributionDetail: (organizationId: WorkOsOrgId | null | undefined, distributionId: string | undefined) => readonly ["content", "distributions", "detail", WorkOsOrgId | null | undefined, string | undefined];
|
|
10095
|
+
/**
|
|
10096
|
+
* One distribution's `content_distribution_metrics` capture history, newest first. Nested
|
|
10097
|
+
* under `distributions()` like `distributionDetail`, matching `itemAttempts`' precedent for
|
|
10098
|
+
* a child history table keyed by its parent.
|
|
10099
|
+
*/
|
|
10100
|
+
distributionMetrics: (organizationId: WorkOsOrgId | null | undefined, distributionId: string | undefined) => readonly ["content", "distributions", "metrics", WorkOsOrgId | null | undefined, string | undefined];
|
|
9587
10101
|
sourceAssets: () => readonly ["content", "source-assets"];
|
|
9588
10102
|
sourceAssetsList: (organizationId: WorkOsOrgId | null | undefined, filters: ContentSourceAssetsListFilters) => readonly ["content", "source-assets", "list", WorkOsOrgId | null | undefined, Partial<{
|
|
9589
10103
|
kind: string;
|
|
@@ -9621,6 +10135,29 @@ declare function useContentItems(filters?: ContentItemsListFilters): _tanstack_r
|
|
|
9621
10135
|
updatedBy: string | null;
|
|
9622
10136
|
createdAt: string;
|
|
9623
10137
|
updatedAt: string;
|
|
10138
|
+
sourceAssets?: {
|
|
10139
|
+
id: string;
|
|
10140
|
+
organizationId: string;
|
|
10141
|
+
contentItemId: string;
|
|
10142
|
+
sourceAssetId: string;
|
|
10143
|
+
position: number;
|
|
10144
|
+
crop: {
|
|
10145
|
+
x: number;
|
|
10146
|
+
y: number;
|
|
10147
|
+
width: number;
|
|
10148
|
+
height: number;
|
|
10149
|
+
} | null;
|
|
10150
|
+
altText: string | null;
|
|
10151
|
+
derivativePath: string | null;
|
|
10152
|
+
derivativeCrop: {
|
|
10153
|
+
x: number;
|
|
10154
|
+
y: number;
|
|
10155
|
+
width: number;
|
|
10156
|
+
height: number;
|
|
10157
|
+
} | null;
|
|
10158
|
+
derivativeRenderedAt: string | null;
|
|
10159
|
+
createdAt: string;
|
|
10160
|
+
}[] | undefined;
|
|
9624
10161
|
}[];
|
|
9625
10162
|
total: number;
|
|
9626
10163
|
limit: number;
|
|
@@ -9654,6 +10191,29 @@ declare function useContentItem(itemId: string | undefined): _tanstack_react_que
|
|
|
9654
10191
|
updatedBy: string | null;
|
|
9655
10192
|
createdAt: string;
|
|
9656
10193
|
updatedAt: string;
|
|
10194
|
+
sourceAssets?: {
|
|
10195
|
+
id: string;
|
|
10196
|
+
organizationId: string;
|
|
10197
|
+
contentItemId: string;
|
|
10198
|
+
sourceAssetId: string;
|
|
10199
|
+
position: number;
|
|
10200
|
+
crop: {
|
|
10201
|
+
x: number;
|
|
10202
|
+
y: number;
|
|
10203
|
+
width: number;
|
|
10204
|
+
height: number;
|
|
10205
|
+
} | null;
|
|
10206
|
+
altText: string | null;
|
|
10207
|
+
derivativePath: string | null;
|
|
10208
|
+
derivativeCrop: {
|
|
10209
|
+
x: number;
|
|
10210
|
+
y: number;
|
|
10211
|
+
width: number;
|
|
10212
|
+
height: number;
|
|
10213
|
+
} | null;
|
|
10214
|
+
derivativeRenderedAt: string | null;
|
|
10215
|
+
createdAt: string;
|
|
10216
|
+
}[] | undefined;
|
|
9657
10217
|
}, Error>;
|
|
9658
10218
|
|
|
9659
10219
|
/**
|
|
@@ -9695,7 +10255,14 @@ declare function useContentDistributions(filters?: ContentDistributionsListFilte
|
|
|
9695
10255
|
adaptedBody: string | null;
|
|
9696
10256
|
platformContent: unknown;
|
|
9697
10257
|
checklist: unknown;
|
|
9698
|
-
mediaUrls:
|
|
10258
|
+
mediaUrls: ({
|
|
10259
|
+
kind: "storage";
|
|
10260
|
+
bucket: string;
|
|
10261
|
+
path: string;
|
|
10262
|
+
} | {
|
|
10263
|
+
kind: "url";
|
|
10264
|
+
url: string;
|
|
10265
|
+
})[];
|
|
9699
10266
|
processingState: Record<string, {
|
|
9700
10267
|
[x: string]: unknown;
|
|
9701
10268
|
status: "error" | "success" | "running" | "no_result" | "skipped";
|
|
@@ -9730,7 +10297,14 @@ declare function useContentDistribution(distributionId: string | undefined): _ta
|
|
|
9730
10297
|
adaptedBody: string | null;
|
|
9731
10298
|
platformContent: unknown;
|
|
9732
10299
|
checklist: unknown;
|
|
9733
|
-
mediaUrls:
|
|
10300
|
+
mediaUrls: ({
|
|
10301
|
+
kind: "storage";
|
|
10302
|
+
bucket: string;
|
|
10303
|
+
path: string;
|
|
10304
|
+
} | {
|
|
10305
|
+
kind: "url";
|
|
10306
|
+
url: string;
|
|
10307
|
+
})[];
|
|
9734
10308
|
processingState: Record<string, {
|
|
9735
10309
|
[x: string]: unknown;
|
|
9736
10310
|
status: "error" | "success" | "running" | "no_result" | "skipped";
|
|
@@ -9749,6 +10323,37 @@ declare function useContentDistribution(distributionId: string | undefined): _ta
|
|
|
9749
10323
|
updatedAt: string;
|
|
9750
10324
|
}, Error>;
|
|
9751
10325
|
|
|
10326
|
+
/**
|
|
10327
|
+
* Capture history for one distribution, newest first. Mirrors `useContentDistribution` --
|
|
10328
|
+
* `distributionId` from the path, gated the same way -- and reads
|
|
10329
|
+
* `GET /content/distributions/:distributionId/metrics`, the route this hook exists to consume.
|
|
10330
|
+
*/
|
|
10331
|
+
declare function useContentDistributionMetrics(distributionId: string | undefined): _tanstack_react_query.UseQueryResult<{
|
|
10332
|
+
data: {
|
|
10333
|
+
id: string;
|
|
10334
|
+
organizationId: string;
|
|
10335
|
+
distributionId: string;
|
|
10336
|
+
capturedAt: string;
|
|
10337
|
+
source: string;
|
|
10338
|
+
metrics: {
|
|
10339
|
+
views?: number | undefined;
|
|
10340
|
+
reach?: number | undefined;
|
|
10341
|
+
likes?: number | undefined;
|
|
10342
|
+
comments?: number | undefined;
|
|
10343
|
+
shares?: number | undefined;
|
|
10344
|
+
saves?: number | undefined;
|
|
10345
|
+
engagements?: number | undefined;
|
|
10346
|
+
profile_visits?: number | undefined;
|
|
10347
|
+
profile_activity?: number | undefined;
|
|
10348
|
+
follows?: number | undefined;
|
|
10349
|
+
clicks?: number | undefined;
|
|
10350
|
+
};
|
|
10351
|
+
raw: unknown;
|
|
10352
|
+
sourceExecutionId: string | null;
|
|
10353
|
+
createdAt: string;
|
|
10354
|
+
}[];
|
|
10355
|
+
}, Error>;
|
|
10356
|
+
|
|
9752
10357
|
interface UpdateContentItemParams {
|
|
9753
10358
|
itemId: string;
|
|
9754
10359
|
updates: UpdateContentItemRequest;
|
|
@@ -9781,8 +10386,101 @@ declare function useUpdateContentItem(): _tanstack_react_query.UseMutationResult
|
|
|
9781
10386
|
updatedBy: string | null;
|
|
9782
10387
|
createdAt: string;
|
|
9783
10388
|
updatedAt: string;
|
|
10389
|
+
sourceAssets?: {
|
|
10390
|
+
id: string;
|
|
10391
|
+
organizationId: string;
|
|
10392
|
+
contentItemId: string;
|
|
10393
|
+
sourceAssetId: string;
|
|
10394
|
+
position: number;
|
|
10395
|
+
crop: {
|
|
10396
|
+
x: number;
|
|
10397
|
+
y: number;
|
|
10398
|
+
width: number;
|
|
10399
|
+
height: number;
|
|
10400
|
+
} | null;
|
|
10401
|
+
altText: string | null;
|
|
10402
|
+
derivativePath: string | null;
|
|
10403
|
+
derivativeCrop: {
|
|
10404
|
+
x: number;
|
|
10405
|
+
y: number;
|
|
10406
|
+
width: number;
|
|
10407
|
+
height: number;
|
|
10408
|
+
} | null;
|
|
10409
|
+
derivativeRenderedAt: string | null;
|
|
10410
|
+
createdAt: string;
|
|
10411
|
+
}[] | undefined;
|
|
9784
10412
|
}, Error, UpdateContentItemParams, unknown>;
|
|
9785
10413
|
|
|
10414
|
+
/**
|
|
10415
|
+
* POST `/content/distributions` -- open the record of one item going out on one
|
|
10416
|
+
* platform. `organizationId` is never sent; the route takes it from authenticated
|
|
10417
|
+
* context.
|
|
10418
|
+
*
|
|
10419
|
+
* **A `mediaUrls` entry names its own kind** (`ContentMediaEntrySchema`): either a
|
|
10420
|
+
* `storage` object carrying its bucket and path, or an already-fetchable `url`.
|
|
10421
|
+
* Derivatives are the first kind, because they live in a private, RLS-gated bucket --
|
|
10422
|
+
* the only URL that would fetch one is a signed URL that expires, and a stored URL
|
|
10423
|
+
* that expires is a row that is correct when written and silently wrong later. The
|
|
10424
|
+
* path is the durable fact; `useStorageSignedUrls` turns it into a URL at the moment
|
|
10425
|
+
* something renders it. Storing paths is also what makes the distribution an honest
|
|
10426
|
+
* record of which files went out: re-cropping a slide afterwards replaces that
|
|
10427
|
+
* object, but the row still names exactly the slides that were posted.
|
|
10428
|
+
*
|
|
10429
|
+
* The manual-publish path is already designed into the update schema: a row with
|
|
10430
|
+
* `publishedAt` set and no `platformPostId` is a post someone made by hand.
|
|
10431
|
+
*/
|
|
10432
|
+
declare function useCreateContentDistribution(): _tanstack_react_query.UseMutationResult<{
|
|
10433
|
+
id: string;
|
|
10434
|
+
organizationId: string;
|
|
10435
|
+
contentItemId: string;
|
|
10436
|
+
platform: string;
|
|
10437
|
+
format: string;
|
|
10438
|
+
status: string;
|
|
10439
|
+
adaptedBody: string | null;
|
|
10440
|
+
platformContent: unknown;
|
|
10441
|
+
checklist: unknown;
|
|
10442
|
+
mediaUrls: ({
|
|
10443
|
+
kind: "storage";
|
|
10444
|
+
bucket: string;
|
|
10445
|
+
path: string;
|
|
10446
|
+
} | {
|
|
10447
|
+
kind: "url";
|
|
10448
|
+
url: string;
|
|
10449
|
+
})[];
|
|
10450
|
+
processingState: Record<string, {
|
|
10451
|
+
[x: string]: unknown;
|
|
10452
|
+
status: "error" | "success" | "running" | "no_result" | "skipped";
|
|
10453
|
+
attemptId: string;
|
|
10454
|
+
executionId: string | null;
|
|
10455
|
+
attemptedAt: string;
|
|
10456
|
+
data?: unknown;
|
|
10457
|
+
}>;
|
|
10458
|
+
publishMethod: string | null;
|
|
10459
|
+
publishedAt: string | null;
|
|
10460
|
+
platformPostId: string | null;
|
|
10461
|
+
platformUrl: string | null;
|
|
10462
|
+
metrics: unknown;
|
|
10463
|
+
metricsUpdatedAt: string | null;
|
|
10464
|
+
createdAt: string;
|
|
10465
|
+
updatedAt: string;
|
|
10466
|
+
}, Error, {
|
|
10467
|
+
contentItemId: string;
|
|
10468
|
+
platform: string;
|
|
10469
|
+
format: string;
|
|
10470
|
+
status?: string | undefined;
|
|
10471
|
+
adaptedBody?: string | null | undefined;
|
|
10472
|
+
platformContent?: unknown;
|
|
10473
|
+
checklist?: unknown;
|
|
10474
|
+
mediaUrls?: ({
|
|
10475
|
+
kind: "storage";
|
|
10476
|
+
bucket: string;
|
|
10477
|
+
path: string;
|
|
10478
|
+
} | {
|
|
10479
|
+
kind: "url";
|
|
10480
|
+
url: string;
|
|
10481
|
+
})[] | undefined;
|
|
10482
|
+
}, unknown>;
|
|
10483
|
+
|
|
9786
10484
|
interface UpdateContentDistributionParams {
|
|
9787
10485
|
distributionId: string;
|
|
9788
10486
|
updates: UpdateContentDistributionRequest;
|
|
@@ -9805,7 +10503,14 @@ declare function useUpdateContentDistribution(): _tanstack_react_query.UseMutati
|
|
|
9805
10503
|
adaptedBody: string | null;
|
|
9806
10504
|
platformContent: unknown;
|
|
9807
10505
|
checklist: unknown;
|
|
9808
|
-
mediaUrls:
|
|
10506
|
+
mediaUrls: ({
|
|
10507
|
+
kind: "storage";
|
|
10508
|
+
bucket: string;
|
|
10509
|
+
path: string;
|
|
10510
|
+
} | {
|
|
10511
|
+
kind: "url";
|
|
10512
|
+
url: string;
|
|
10513
|
+
})[];
|
|
9809
10514
|
processingState: Record<string, {
|
|
9810
10515
|
[x: string]: unknown;
|
|
9811
10516
|
status: "error" | "success" | "running" | "no_result" | "skipped";
|
|
@@ -9859,6 +10564,29 @@ declare function useReviewContentItem(): _tanstack_react_query.UseMutationResult
|
|
|
9859
10564
|
updatedBy: string | null;
|
|
9860
10565
|
createdAt: string;
|
|
9861
10566
|
updatedAt: string;
|
|
10567
|
+
sourceAssets?: {
|
|
10568
|
+
id: string;
|
|
10569
|
+
organizationId: string;
|
|
10570
|
+
contentItemId: string;
|
|
10571
|
+
sourceAssetId: string;
|
|
10572
|
+
position: number;
|
|
10573
|
+
crop: {
|
|
10574
|
+
x: number;
|
|
10575
|
+
y: number;
|
|
10576
|
+
width: number;
|
|
10577
|
+
height: number;
|
|
10578
|
+
} | null;
|
|
10579
|
+
altText: string | null;
|
|
10580
|
+
derivativePath: string | null;
|
|
10581
|
+
derivativeCrop: {
|
|
10582
|
+
x: number;
|
|
10583
|
+
y: number;
|
|
10584
|
+
width: number;
|
|
10585
|
+
height: number;
|
|
10586
|
+
} | null;
|
|
10587
|
+
derivativeRenderedAt: string | null;
|
|
10588
|
+
createdAt: string;
|
|
10589
|
+
}[] | undefined;
|
|
9862
10590
|
}, Error, ReviewContentItemParams, unknown>;
|
|
9863
10591
|
|
|
9864
10592
|
/**
|
|
@@ -9899,6 +10627,89 @@ declare function useContentSourceAsset(sourceAssetId: string | undefined): _tans
|
|
|
9899
10627
|
updatedAt: string;
|
|
9900
10628
|
}, Error>;
|
|
9901
10629
|
|
|
10630
|
+
/**
|
|
10631
|
+
* POST `/content/items` -- creates one content item. `organizationId` is never
|
|
10632
|
+
* sent; it is injected server-side from the authenticated context.
|
|
10633
|
+
*
|
|
10634
|
+
* `sourceAssets` carries the ordered membership a carousel is created with, in
|
|
10635
|
+
* the same request (Open Decision 11). That write is NOT atomic -- `apps/api`
|
|
10636
|
+
* does a bulk insert plus a compensating delete, because `@supabase/supabase-js`
|
|
10637
|
+
* has no transaction primitive -- so a mid-write failure yields an item with no
|
|
10638
|
+
* memberships rather than a half-built carousel. Callers that must know either
|
|
10639
|
+
* way should re-read the item, not assume the array they sent.
|
|
10640
|
+
*/
|
|
10641
|
+
declare function useCreateContentItem(): _tanstack_react_query.UseMutationResult<{
|
|
10642
|
+
id: string;
|
|
10643
|
+
organizationId: string;
|
|
10644
|
+
title: string;
|
|
10645
|
+
body: string | null;
|
|
10646
|
+
payload: unknown;
|
|
10647
|
+
status: string;
|
|
10648
|
+
pillar: string | null;
|
|
10649
|
+
pipelineId: string | null;
|
|
10650
|
+
clientId: string | null;
|
|
10651
|
+
sourceAssetId: string | null;
|
|
10652
|
+
processingState: Record<string, {
|
|
10653
|
+
[x: string]: unknown;
|
|
10654
|
+
status: "error" | "success" | "running" | "no_result" | "skipped";
|
|
10655
|
+
attemptId: string;
|
|
10656
|
+
executionId: string | null;
|
|
10657
|
+
attemptedAt: string;
|
|
10658
|
+
data?: unknown;
|
|
10659
|
+
}>;
|
|
10660
|
+
reviewedAt: string | null;
|
|
10661
|
+
reviewedBy: string | null;
|
|
10662
|
+
reviewerFeedback: string | null;
|
|
10663
|
+
rejectReason: string | null;
|
|
10664
|
+
createdBy: string | null;
|
|
10665
|
+
updatedBy: string | null;
|
|
10666
|
+
createdAt: string;
|
|
10667
|
+
updatedAt: string;
|
|
10668
|
+
sourceAssets?: {
|
|
10669
|
+
id: string;
|
|
10670
|
+
organizationId: string;
|
|
10671
|
+
contentItemId: string;
|
|
10672
|
+
sourceAssetId: string;
|
|
10673
|
+
position: number;
|
|
10674
|
+
crop: {
|
|
10675
|
+
x: number;
|
|
10676
|
+
y: number;
|
|
10677
|
+
width: number;
|
|
10678
|
+
height: number;
|
|
10679
|
+
} | null;
|
|
10680
|
+
altText: string | null;
|
|
10681
|
+
derivativePath: string | null;
|
|
10682
|
+
derivativeCrop: {
|
|
10683
|
+
x: number;
|
|
10684
|
+
y: number;
|
|
10685
|
+
width: number;
|
|
10686
|
+
height: number;
|
|
10687
|
+
} | null;
|
|
10688
|
+
derivativeRenderedAt: string | null;
|
|
10689
|
+
createdAt: string;
|
|
10690
|
+
}[] | undefined;
|
|
10691
|
+
}, Error, {
|
|
10692
|
+
title: string;
|
|
10693
|
+
body?: string | null | undefined;
|
|
10694
|
+
payload?: Record<string, unknown> | undefined;
|
|
10695
|
+
status?: string | undefined;
|
|
10696
|
+
pillar?: string | null | undefined;
|
|
10697
|
+
pipelineId?: string | null | undefined;
|
|
10698
|
+
clientId?: string | null | undefined;
|
|
10699
|
+
sourceAssetId?: string | null | undefined;
|
|
10700
|
+
sourceAssets?: {
|
|
10701
|
+
sourceAssetId: string;
|
|
10702
|
+
position: number;
|
|
10703
|
+
crop?: {
|
|
10704
|
+
x: number;
|
|
10705
|
+
y: number;
|
|
10706
|
+
width: number;
|
|
10707
|
+
height: number;
|
|
10708
|
+
} | null | undefined;
|
|
10709
|
+
altText?: string | null | undefined;
|
|
10710
|
+
}[] | undefined;
|
|
10711
|
+
}, unknown>;
|
|
10712
|
+
|
|
9902
10713
|
/**
|
|
9903
10714
|
* POST `/content/source-assets` -- `kind` and `title` are the only required fields;
|
|
9904
10715
|
* `organizationId` is never sent, it is injected server-side from the authenticated
|
|
@@ -9961,6 +10772,302 @@ declare function useUpdateContentSourceAsset(): _tanstack_react_query.UseMutatio
|
|
|
9961
10772
|
updatedAt: string;
|
|
9962
10773
|
}, Error, UpdateContentSourceAssetParams, unknown>;
|
|
9963
10774
|
|
|
10775
|
+
/**
|
|
10776
|
+
* GET `/content/items/:itemId/source-assets` -- one item's ordered source-asset
|
|
10777
|
+
* membership, ascending by `position`. `position` 0 is the cover.
|
|
10778
|
+
*
|
|
10779
|
+
* The membership row does NOT embed the `content_source_assets` row it points at:
|
|
10780
|
+
* it carries `sourceAssetId` and no title, URL, or dimensions. A caller that needs
|
|
10781
|
+
* display fields resolves them through `useContentSourceAsset` /
|
|
10782
|
+
* `useContentSourceAssets`, or uses `useContentItemSourceAssetDetails`, which does
|
|
10783
|
+
* that join and shares the same per-asset cache entries.
|
|
10784
|
+
*
|
|
10785
|
+
* Read-open, like every other content GET -- only the writes sit behind
|
|
10786
|
+
* `content.manage`.
|
|
10787
|
+
*/
|
|
10788
|
+
declare function useContentItemSourceAssets(itemId: string | undefined): _tanstack_react_query.UseQueryResult<{
|
|
10789
|
+
data: {
|
|
10790
|
+
id: string;
|
|
10791
|
+
organizationId: string;
|
|
10792
|
+
contentItemId: string;
|
|
10793
|
+
sourceAssetId: string;
|
|
10794
|
+
position: number;
|
|
10795
|
+
crop: {
|
|
10796
|
+
x: number;
|
|
10797
|
+
y: number;
|
|
10798
|
+
width: number;
|
|
10799
|
+
height: number;
|
|
10800
|
+
} | null;
|
|
10801
|
+
altText: string | null;
|
|
10802
|
+
derivativePath: string | null;
|
|
10803
|
+
derivativeCrop: {
|
|
10804
|
+
x: number;
|
|
10805
|
+
y: number;
|
|
10806
|
+
width: number;
|
|
10807
|
+
height: number;
|
|
10808
|
+
} | null;
|
|
10809
|
+
derivativeRenderedAt: string | null;
|
|
10810
|
+
createdAt: string;
|
|
10811
|
+
}[];
|
|
10812
|
+
}, Error>;
|
|
10813
|
+
/**
|
|
10814
|
+
* The two states `ContentItemResponse.sourceAssets` can be in, made explicit so a
|
|
10815
|
+
* renderer cannot lose the difference.
|
|
10816
|
+
*
|
|
10817
|
+
* `expanded: false` means the reader did not expand membership -- say nothing about
|
|
10818
|
+
* the asset list and fetch it with `useContentItemSourceAssets` if it is needed.
|
|
10819
|
+
* `expanded: true` with an empty array means the item genuinely has no source assets.
|
|
10820
|
+
*
|
|
10821
|
+
* Defaulting the absent case to `[]` erases that distinction and renders "no photos"
|
|
10822
|
+
* over an item that may well have twenty.
|
|
10823
|
+
*/
|
|
10824
|
+
type ContentItemSourceAssetExpansion = {
|
|
10825
|
+
expanded: false;
|
|
10826
|
+
sourceAssets: undefined;
|
|
10827
|
+
} | {
|
|
10828
|
+
expanded: true;
|
|
10829
|
+
sourceAssets: ContentItemSourceAssetResponse[];
|
|
10830
|
+
};
|
|
10831
|
+
/**
|
|
10832
|
+
* Narrows `ContentItemResponse.sourceAssets` into `ContentItemSourceAssetExpansion`.
|
|
10833
|
+
*
|
|
10834
|
+
* Which reads expand, as of the routes landed 2026-08-17: single-item reads
|
|
10835
|
+
* (`getItem`, `updateItem`, `reviewItem`) always expand, and the session
|
|
10836
|
+
* `GET /content/items` list route expands too. Only the unbounded analytics readers
|
|
10837
|
+
* leave it absent, so `expanded: false` is a real state a shared component can be
|
|
10838
|
+
* handed -- it is not dead code.
|
|
10839
|
+
*
|
|
10840
|
+
* A `null` or `undefined` item is `expanded: false`: nothing has been read yet, which
|
|
10841
|
+
* is the same "say nothing" case.
|
|
10842
|
+
*/
|
|
10843
|
+
declare function readItemSourceAssets(item: Pick<ContentItemResponse, 'sourceAssets'> | null | undefined): ContentItemSourceAssetExpansion;
|
|
10844
|
+
/**
|
|
10845
|
+
* The cover membership -- the lowest `position` in the set, or `undefined` for an
|
|
10846
|
+
* empty set.
|
|
10847
|
+
*
|
|
10848
|
+
* `position` 0 is the cover by contract, and a reorder always writes contiguous
|
|
10849
|
+
* indices from 0. But the column only requires uniqueness within an item, not
|
|
10850
|
+
* contiguity and not a zero, so an item assembled by individual `addItemSourceAsset`
|
|
10851
|
+
* calls can legally have no `position` 0 at all. Taking the minimum agrees with the
|
|
10852
|
+
* contract whenever 0 is present and still yields a cover when it is not; a literal
|
|
10853
|
+
* `position === 0` lookup would silently return nothing.
|
|
10854
|
+
*
|
|
10855
|
+
* This adds no contiguity rule -- it never renumbers, and gaps stay legal.
|
|
10856
|
+
*/
|
|
10857
|
+
declare function pickCoverSourceAsset(memberships: readonly ContentItemSourceAssetResponse[] | undefined): ContentItemSourceAssetResponse | undefined;
|
|
10858
|
+
|
|
10859
|
+
/**
|
|
10860
|
+
* One membership paired with the source-asset row it points at.
|
|
10861
|
+
*
|
|
10862
|
+
* `asset` is `undefined` while its own query is still in flight or has failed --
|
|
10863
|
+
* never a fabricated placeholder. A renderer shows the membership (position, crop,
|
|
10864
|
+
* alt text) immediately and fills in the title/URL when it lands.
|
|
10865
|
+
*/
|
|
10866
|
+
interface ContentItemSourceAssetDetail {
|
|
10867
|
+
membership: ContentItemSourceAssetResponse;
|
|
10868
|
+
asset: ContentSourceAssetResponse | undefined;
|
|
10869
|
+
}
|
|
10870
|
+
interface ContentItemSourceAssetDetailsResult {
|
|
10871
|
+
/** Ascending by `position`, exactly the order the membership route returned. */
|
|
10872
|
+
memberships: ContentItemSourceAssetDetail[];
|
|
10873
|
+
/** True while the membership list or any asset lookup is still loading. */
|
|
10874
|
+
isLoading: boolean;
|
|
10875
|
+
/** True once the membership list has loaded, whatever the asset lookups did. */
|
|
10876
|
+
isMembershipLoaded: boolean;
|
|
10877
|
+
}
|
|
10878
|
+
/**
|
|
10879
|
+
* Pairs memberships with resolved assets, positionally by `sourceAssetId`.
|
|
10880
|
+
* Exported standalone so the join is testable without a QueryClient.
|
|
10881
|
+
*/
|
|
10882
|
+
declare function joinSourceAssetDetails(memberships: readonly ContentItemSourceAssetResponse[], assets: readonly (ContentSourceAssetResponse | undefined)[]): ContentItemSourceAssetDetail[];
|
|
10883
|
+
/**
|
|
10884
|
+
* The membership list plus the display fields it deliberately does not carry.
|
|
10885
|
+
*
|
|
10886
|
+
* `content_item_source_assets` rows hold `sourceAssetId`, `position`, `crop`, and
|
|
10887
|
+
* `altText` and nothing else -- no title, no URL, no dimensions -- because embedding
|
|
10888
|
+
* the asset would double the payload of every item list read. Resolving those fields
|
|
10889
|
+
* is therefore a second query, and this hook is that second query so each carousel
|
|
10890
|
+
* surface does not rebuild it.
|
|
10891
|
+
*
|
|
10892
|
+
* One `GET /content/source-assets/:id` per membership, each on the SAME
|
|
10893
|
+
* `contentKeys.sourceAssetDetail` key `useContentSourceAsset` uses. Two consequences
|
|
10894
|
+
* worth relying on: an asset shared by several items is fetched once, and
|
|
10895
|
+
* `useUpdateContentSourceAsset`'s existing invalidation already refreshes what this
|
|
10896
|
+
* hook renders. Per-asset rather than one list read because the list route filters
|
|
10897
|
+
* only by `kind`/`limit`/`offset` -- it has no id filter, so a list call would
|
|
10898
|
+
* over-fetch and still risk missing an asset past the page boundary.
|
|
10899
|
+
*
|
|
10900
|
+
* The transport caps membership at 50 per item, so this is a bounded fan-out.
|
|
10901
|
+
*/
|
|
10902
|
+
declare function useContentItemSourceAssetDetails(itemId: string | undefined): ContentItemSourceAssetDetailsResult;
|
|
10903
|
+
|
|
10904
|
+
interface AddContentItemSourceAssetParams {
|
|
10905
|
+
itemId: string;
|
|
10906
|
+
membership: ContentItemSourceAssetInput;
|
|
10907
|
+
}
|
|
10908
|
+
/**
|
|
10909
|
+
* POST `/content/items/:itemId/source-assets` (201) -- links one source asset into an
|
|
10910
|
+
* item at a `position`.
|
|
10911
|
+
*
|
|
10912
|
+
* `position` 0 is the cover. Positions must be unique within the item but need not be
|
|
10913
|
+
* contiguous, so there is deliberately no client-side renumbering here: use
|
|
10914
|
+
* `useReorderContentItemSourceAssets` when the whole order changes.
|
|
10915
|
+
*
|
|
10916
|
+
* `crop` is normalized fractions of the source (`x`, `y`, `width`, `height`, each
|
|
10917
|
+
* 0-1, with `x + width <= 1` and `y + height <= 1`), never pixels -- one crop then
|
|
10918
|
+
* survives a resized derivative. `organizationId` is never sent; it comes from the
|
|
10919
|
+
* authenticated context server-side, and composite foreign keys make a cross-org link
|
|
10920
|
+
* impossible at the database level.
|
|
10921
|
+
*
|
|
10922
|
+
* Behind `content.manage`.
|
|
10923
|
+
*/
|
|
10924
|
+
declare function useAddContentItemSourceAsset(): _tanstack_react_query.UseMutationResult<{
|
|
10925
|
+
id: string;
|
|
10926
|
+
organizationId: string;
|
|
10927
|
+
contentItemId: string;
|
|
10928
|
+
sourceAssetId: string;
|
|
10929
|
+
position: number;
|
|
10930
|
+
crop: {
|
|
10931
|
+
x: number;
|
|
10932
|
+
y: number;
|
|
10933
|
+
width: number;
|
|
10934
|
+
height: number;
|
|
10935
|
+
} | null;
|
|
10936
|
+
altText: string | null;
|
|
10937
|
+
derivativePath: string | null;
|
|
10938
|
+
derivativeCrop: {
|
|
10939
|
+
x: number;
|
|
10940
|
+
y: number;
|
|
10941
|
+
width: number;
|
|
10942
|
+
height: number;
|
|
10943
|
+
} | null;
|
|
10944
|
+
derivativeRenderedAt: string | null;
|
|
10945
|
+
createdAt: string;
|
|
10946
|
+
}, Error, AddContentItemSourceAssetParams, unknown>;
|
|
10947
|
+
|
|
10948
|
+
interface RemoveContentItemSourceAssetParams {
|
|
10949
|
+
itemId: string;
|
|
10950
|
+
sourceAssetId: string;
|
|
10951
|
+
}
|
|
10952
|
+
/**
|
|
10953
|
+
* DELETE `/content/items/:itemId/source-assets/:sourceAssetId` (204, no body) --
|
|
10954
|
+
* unlinks one source asset from one item.
|
|
10955
|
+
*
|
|
10956
|
+
* Unlinks the membership only: the `content_source_assets` row survives and stays
|
|
10957
|
+
* usable by other items, so the source-asset caches are untouched.
|
|
10958
|
+
*
|
|
10959
|
+
* The remaining memberships keep their positions -- removing the middle of a set
|
|
10960
|
+
* leaves a gap, which is legal (`position` is unique per item, not contiguous).
|
|
10961
|
+
* Follow with `useReorderContentItemSourceAssets` only if the caller actually wants
|
|
10962
|
+
* renumbering.
|
|
10963
|
+
*
|
|
10964
|
+
* Behind `content.manage`.
|
|
10965
|
+
*/
|
|
10966
|
+
declare function useRemoveContentItemSourceAsset(): _tanstack_react_query.UseMutationResult<void, Error, RemoveContentItemSourceAssetParams, unknown>;
|
|
10967
|
+
|
|
10968
|
+
interface ReorderContentItemSourceAssetsParams {
|
|
10969
|
+
itemId: string;
|
|
10970
|
+
/**
|
|
10971
|
+
* The item's COMPLETE membership set in its new order -- index becomes `position`,
|
|
10972
|
+
* so index 0 is the new cover.
|
|
10973
|
+
*/
|
|
10974
|
+
orderedAssetIds: string[];
|
|
10975
|
+
}
|
|
10976
|
+
/**
|
|
10977
|
+
* POST `/content/items/:itemId/source-assets/reorder` -- rewrites the whole slide
|
|
10978
|
+
* order in one transaction.
|
|
10979
|
+
*
|
|
10980
|
+
* Wholesale rather than per-row: `UNIQUE (content_item_id, position)` is DEFERRABLE
|
|
10981
|
+
* INITIALLY DEFERRED, so the server issues plain per-row updates inside one
|
|
10982
|
+
* transaction and the constraint is checked at COMMIT. There is no per-membership
|
|
10983
|
+
* position write, and none is wanted -- moving one slide is a reorder of the set.
|
|
10984
|
+
*
|
|
10985
|
+
* The server rejects a list that does not name EXACTLY the item's current membership,
|
|
10986
|
+
* and its message names both directions (`missing:` for memberships the list omits,
|
|
10987
|
+
* `not linked to this item:` for ids that are not members). That message is surfaced
|
|
10988
|
+
* through `showApiErrorNotification` rather than replaced with a generic one -- it is
|
|
10989
|
+
* the only thing that tells an operator which side of the mismatch to fix. A caller
|
|
10990
|
+
* that wants it inline reads `mutation.error` too.
|
|
10991
|
+
*
|
|
10992
|
+
* Deliberately no client-side pre-check of the id set against a cached membership
|
|
10993
|
+
* list: the cache can be stale, and a stale-cache false negative would block a
|
|
10994
|
+
* legitimate reorder the server would have accepted.
|
|
10995
|
+
*
|
|
10996
|
+
* Behind `content.manage`. Returns the reordered set, ascending by `position`.
|
|
10997
|
+
*/
|
|
10998
|
+
declare function useReorderContentItemSourceAssets(): _tanstack_react_query.UseMutationResult<{
|
|
10999
|
+
data: {
|
|
11000
|
+
id: string;
|
|
11001
|
+
organizationId: string;
|
|
11002
|
+
contentItemId: string;
|
|
11003
|
+
sourceAssetId: string;
|
|
11004
|
+
position: number;
|
|
11005
|
+
crop: {
|
|
11006
|
+
x: number;
|
|
11007
|
+
y: number;
|
|
11008
|
+
width: number;
|
|
11009
|
+
height: number;
|
|
11010
|
+
} | null;
|
|
11011
|
+
altText: string | null;
|
|
11012
|
+
derivativePath: string | null;
|
|
11013
|
+
derivativeCrop: {
|
|
11014
|
+
x: number;
|
|
11015
|
+
y: number;
|
|
11016
|
+
width: number;
|
|
11017
|
+
height: number;
|
|
11018
|
+
} | null;
|
|
11019
|
+
derivativeRenderedAt: string | null;
|
|
11020
|
+
createdAt: string;
|
|
11021
|
+
}[];
|
|
11022
|
+
}, Error, ReorderContentItemSourceAssetsParams, unknown>;
|
|
11023
|
+
|
|
11024
|
+
interface UpdateContentItemSourceAssetParams {
|
|
11025
|
+
itemId: string;
|
|
11026
|
+
sourceAssetId: string;
|
|
11027
|
+
updates: UpdateContentItemSourceAssetRequest;
|
|
11028
|
+
}
|
|
11029
|
+
/**
|
|
11030
|
+
* PATCH `/content/items/:itemId/source-assets/:sourceAssetId` -- patches ONE
|
|
11031
|
+
* membership's per-slide attributes: `crop` and `altText`. At least one must be
|
|
11032
|
+
* present.
|
|
11033
|
+
*
|
|
11034
|
+
* Both are per-membership, not per-asset: the same photo is cropped 4:5 in one
|
|
11035
|
+
* carousel and square in another, so this never touches the
|
|
11036
|
+
* `content_source_assets` row and never invalidates the source-asset caches.
|
|
11037
|
+
*
|
|
11038
|
+
* `position` is deliberately not patchable here -- use
|
|
11039
|
+
* `useReorderContentItemSourceAssets`. `sourceAssetId` is immutable; swapping the
|
|
11040
|
+
* asset is a remove plus an add.
|
|
11041
|
+
*
|
|
11042
|
+
* `crop` is normalized fractions of the source (0-1), not pixels, and `null` clears
|
|
11043
|
+
* it. `altText` is likewise nullable to clear.
|
|
11044
|
+
*
|
|
11045
|
+
* Behind `content.manage`.
|
|
11046
|
+
*/
|
|
11047
|
+
declare function useUpdateContentItemSourceAsset(): _tanstack_react_query.UseMutationResult<{
|
|
11048
|
+
id: string;
|
|
11049
|
+
organizationId: string;
|
|
11050
|
+
contentItemId: string;
|
|
11051
|
+
sourceAssetId: string;
|
|
11052
|
+
position: number;
|
|
11053
|
+
crop: {
|
|
11054
|
+
x: number;
|
|
11055
|
+
y: number;
|
|
11056
|
+
width: number;
|
|
11057
|
+
height: number;
|
|
11058
|
+
} | null;
|
|
11059
|
+
altText: string | null;
|
|
11060
|
+
derivativePath: string | null;
|
|
11061
|
+
derivativeCrop: {
|
|
11062
|
+
x: number;
|
|
11063
|
+
y: number;
|
|
11064
|
+
width: number;
|
|
11065
|
+
height: number;
|
|
11066
|
+
} | null;
|
|
11067
|
+
derivativeRenderedAt: string | null;
|
|
11068
|
+
createdAt: string;
|
|
11069
|
+
}, Error, UpdateContentItemSourceAssetParams, unknown>;
|
|
11070
|
+
|
|
9964
11071
|
interface ContentPipelineSummary {
|
|
9965
11072
|
/** Item count per declared status key. */
|
|
9966
11073
|
countsByStatus: Record<string, number>;
|
|
@@ -9995,6 +11102,291 @@ declare function pickLatestRunAt(latestExecutions: (APIExecutionSummary | undefi
|
|
|
9995
11102
|
*/
|
|
9996
11103
|
declare function useContentPipelineSummary(pipelineId: string | undefined, statusKeys: string[], stepResourceIds: string[]): ContentPipelineSummary;
|
|
9997
11104
|
|
|
11105
|
+
/**
|
|
11106
|
+
* Filters that identify one folder listing. `credentialName` selects which connected
|
|
11107
|
+
* cloud-storage credential to read from (resolved org-scoped server-side); `cursor`
|
|
11108
|
+
* threads a previous page's `CloudStorageListResult.nextCursor` back in for the next
|
|
11109
|
+
* page, so it is part of the key -- a different cursor is a different page, not a
|
|
11110
|
+
* refetch of the same one.
|
|
11111
|
+
*/
|
|
11112
|
+
interface CloudStorageFolderFilters {
|
|
11113
|
+
credentialName: string;
|
|
11114
|
+
folderPath?: string;
|
|
11115
|
+
cursor?: string;
|
|
11116
|
+
}
|
|
11117
|
+
declare const cloudStorageKeys: {
|
|
11118
|
+
all: readonly ["cloud-storage"];
|
|
11119
|
+
folders: () => readonly ["cloud-storage", "folders"];
|
|
11120
|
+
folder: (organizationId: WorkOsOrgId | null | undefined, filters: CloudStorageFolderFilters) => readonly ["cloud-storage", "folders", WorkOsOrgId | null | undefined, CloudStorageFolderFilters];
|
|
11121
|
+
thumbnails: () => readonly ["cloud-storage", "thumbnails"];
|
|
11122
|
+
/**
|
|
11123
|
+
* One key per resolved batch (at most `THUMBNAIL_BATCH_SIZE` ids) -- `useQueries`
|
|
11124
|
+
* issues one query per batch, so the batch's own id list is part of its key.
|
|
11125
|
+
*/
|
|
11126
|
+
thumbnailBatch: (organizationId: WorkOsOrgId | null | undefined, credentialName: string, batchFileIds: string[]) => readonly ["cloud-storage", "thumbnails", WorkOsOrgId | null | undefined, string, string[]];
|
|
11127
|
+
temporaryLinks: () => readonly ["cloud-storage", "temporary-links"];
|
|
11128
|
+
/**
|
|
11129
|
+
* Keyed per file. Shared by every consumer that needs the original's bytes --
|
|
11130
|
+
* measuring, cropping, and previewing all read this one key, so a selected
|
|
11131
|
+
* image resolves one link and downloads once rather than three times.
|
|
11132
|
+
*/
|
|
11133
|
+
temporaryLinkFor: (organizationId: WorkOsOrgId | null | undefined, credentialName: string, fileId: string) => readonly ["cloud-storage", "temporary-links", WorkOsOrgId | null | undefined, string, string];
|
|
11134
|
+
imageDimensions: () => readonly ["cloud-storage", "image-dimensions"];
|
|
11135
|
+
/**
|
|
11136
|
+
* Keyed per file rather than per set -- dimensions are measured one file at a time
|
|
11137
|
+
* and a measured file stays measured no matter what else is selected alongside it.
|
|
11138
|
+
*/
|
|
11139
|
+
imageDimensionsFor: (organizationId: WorkOsOrgId | null | undefined, credentialName: string, fileId: string) => readonly ["cloud-storage", "image-dimensions", WorkOsOrgId | null | undefined, string, string];
|
|
11140
|
+
};
|
|
11141
|
+
|
|
11142
|
+
type CloudStorageFolderParams = CloudStorageFolderFilters;
|
|
11143
|
+
/**
|
|
11144
|
+
* `CloudStorageListResult` plus the `connected` flag the route surfaces when the named
|
|
11145
|
+
* credential does not exist for this org yet. Matches the google-calendar
|
|
11146
|
+
* `{ connected: false, events: [] }`-with-HTTP-200 convention
|
|
11147
|
+
* (`apps/api/src/integrations/google-calendar/handlers.ts`) -- "not connected" is a
|
|
11148
|
+
* normal query result the caller renders a connect-prompt for, never a thrown error.
|
|
11149
|
+
*/
|
|
11150
|
+
interface CloudStorageFolderResponse extends CloudStorageListResult {
|
|
11151
|
+
connected: boolean;
|
|
11152
|
+
}
|
|
11153
|
+
/**
|
|
11154
|
+
* GET `/integrations/dropbox/files` -- lists one folder's contents, normalized to
|
|
11155
|
+
* `CloudStorageFile` at the route boundary (never a Dropbox-shaped payload here).
|
|
11156
|
+
*
|
|
11157
|
+
* `cursor` threads a previous page's `nextCursor` back in; pass the response's
|
|
11158
|
+
* `nextCursor` on the next call to page forward. `nextCursor` is `undefined` on the
|
|
11159
|
+
* last page.
|
|
11160
|
+
*/
|
|
11161
|
+
declare function useCloudStorageFolder(params: CloudStorageFolderParams): _tanstack_react_query.UseQueryResult<CloudStorageFolderResponse, Error>;
|
|
11162
|
+
|
|
11163
|
+
/**
|
|
11164
|
+
* Dropbox's thumbnail batch endpoint caps a single request at 25 files, and the core
|
|
11165
|
+
* adapter enforces that cap with a thrown error rather than paging internally --
|
|
11166
|
+
* paging lives here instead.
|
|
11167
|
+
*/
|
|
11168
|
+
declare const THUMBNAIL_BATCH_SIZE = 25;
|
|
11169
|
+
/**
|
|
11170
|
+
* Splits `items` into fixed-size batches of at most `size`, preserving order.
|
|
11171
|
+
* Exported standalone so the 25-file cap is testable without a QueryClient.
|
|
11172
|
+
*/
|
|
11173
|
+
declare function chunkIntoBatches<T>(items: T[], size: number): T[][];
|
|
11174
|
+
/**
|
|
11175
|
+
* One entry per requested file id. `null` means the file exists but Dropbox produced
|
|
11176
|
+
* no thumbnail for it -- HEIC/unsupported formats, or an original over 20MB -- which
|
|
11177
|
+
* is a normal value the card renders a fallback from, never an error. A key absent
|
|
11178
|
+
* from the map means its batch has not resolved yet.
|
|
11179
|
+
*/
|
|
11180
|
+
type CloudStorageThumbnailMap = Record<string, string | null>;
|
|
11181
|
+
interface CloudStorageThumbnailBatchResponse {
|
|
11182
|
+
connected: boolean;
|
|
11183
|
+
thumbnails: CloudStorageThumbnailMap;
|
|
11184
|
+
}
|
|
11185
|
+
/**
|
|
11186
|
+
* Merges one `{connected, thumbnails}` response per resolved batch into a single map.
|
|
11187
|
+
* `connected` is true as soon as any batch reports connected -- one credential backs
|
|
11188
|
+
* every batch, so a mixed result should not occur, but this stays conservative rather
|
|
11189
|
+
* than assuming `true` before any batch has resolved.
|
|
11190
|
+
* Exported standalone so batch-merge behavior is testable without a QueryClient.
|
|
11191
|
+
*/
|
|
11192
|
+
declare function mergeThumbnailBatches(batches: (CloudStorageThumbnailBatchResponse | undefined)[]): {
|
|
11193
|
+
thumbnails: CloudStorageThumbnailMap;
|
|
11194
|
+
connected: boolean;
|
|
11195
|
+
};
|
|
11196
|
+
interface CloudStorageThumbnailsResult {
|
|
11197
|
+
/** fileId -> thumbnail URL, or `null` when Dropbox produced no thumbnail for that file. */
|
|
11198
|
+
thumbnails: CloudStorageThumbnailMap;
|
|
11199
|
+
connected: boolean;
|
|
11200
|
+
isLoading: boolean;
|
|
11201
|
+
}
|
|
11202
|
+
/**
|
|
11203
|
+
* GET `/integrations/dropbox/thumbnails` -- resolves thumbnail URLs for a set of
|
|
11204
|
+
* `CloudStorageFile` ids, chunked into batches of at most `THUMBNAIL_BATCH_SIZE`
|
|
11205
|
+
* (Dropbox's server-side cap). Each batch is its own TanStack Query so batches
|
|
11206
|
+
* resolve and cache independently -- a slow batch does not block the rest.
|
|
11207
|
+
*/
|
|
11208
|
+
declare function useCloudStorageThumbnails(credentialName: string, fileIds: string[]): CloudStorageThumbnailsResult;
|
|
11209
|
+
|
|
11210
|
+
/**
|
|
11211
|
+
* Pixel dimensions of one original, or `null` when they could not be read.
|
|
11212
|
+
*
|
|
11213
|
+
* `null` is a normal value, not an error: the file may not be an image, the
|
|
11214
|
+
* temporary link may have failed, or the browser may have declined to decode it.
|
|
11215
|
+
* Callers should treat an absent measurement as "unknown", never as "too small".
|
|
11216
|
+
*/
|
|
11217
|
+
type CloudStorageDimensions = {
|
|
11218
|
+
width: number;
|
|
11219
|
+
height: number;
|
|
11220
|
+
} | null;
|
|
11221
|
+
/** One entry per requested file id. A key absent from the map has not resolved yet. */
|
|
11222
|
+
type CloudStorageDimensionMap = Record<string, CloudStorageDimensions>;
|
|
11223
|
+
/**
|
|
11224
|
+
* Decode an image far enough to read its intrinsic size, then discard it.
|
|
11225
|
+
*
|
|
11226
|
+
* The browser is the only source that answers for **every** format. Dropbox's
|
|
11227
|
+
* `include_media_info` populates `dimensions` for JPEG and returns no `media_info`
|
|
11228
|
+
* at all for PNG and GIF, so asking the provider would silently cover some images
|
|
11229
|
+
* and skip others -- confirmed against a real account on 2026-08-18, where a JPEG
|
|
11230
|
+
* reported 352x400 and a PNG reported nothing.
|
|
11231
|
+
*
|
|
11232
|
+
* Resolves `null` rather than rejecting: a failed measurement means the caller
|
|
11233
|
+
* knows nothing about the size, which is exactly what an unmeasured file means.
|
|
11234
|
+
* Exported standalone so the decode path is testable without a QueryClient.
|
|
11235
|
+
*/
|
|
11236
|
+
declare function measureImageDimensions(url: string): Promise<CloudStorageDimensions>;
|
|
11237
|
+
interface CloudStorageImageDimensionsResult {
|
|
11238
|
+
/** fileId -> measured dimensions, or `null` when they could not be read. */
|
|
11239
|
+
dimensions: CloudStorageDimensionMap;
|
|
11240
|
+
isLoading: boolean;
|
|
11241
|
+
}
|
|
11242
|
+
/**
|
|
11243
|
+
* Resolve a temporary link per file and measure the original's dimensions from it.
|
|
11244
|
+
*
|
|
11245
|
+
* **Call this with the files a person actually chose, not a whole folder listing.**
|
|
11246
|
+
* Each id costs one `/temporary-link` round trip plus a full-size image download, so
|
|
11247
|
+
* running it over a browse grid would fetch every original to render a label. Doing
|
|
11248
|
+
* it on selection puts the cost where the value is, and it is the same load a crop
|
|
11249
|
+
* step performs anyway.
|
|
11250
|
+
*
|
|
11251
|
+
* One TanStack Query per file, so each resolves and caches on its own -- a slow or
|
|
11252
|
+
* failing file does not hold up the rest.
|
|
11253
|
+
*/
|
|
11254
|
+
declare function useCloudStorageImageDimensions(credentialName: string, fileIds: string[]): CloudStorageImageDimensionsResult;
|
|
11255
|
+
|
|
11256
|
+
/** One file's full-resolution URL, or `null` when the provider would not issue one. */
|
|
11257
|
+
type CloudStorageTemporaryLink = string | null;
|
|
11258
|
+
/** One entry per requested file id. A key absent from the map has not resolved yet. */
|
|
11259
|
+
type CloudStorageTemporaryLinkMap = Record<string, CloudStorageTemporaryLink>;
|
|
11260
|
+
/**
|
|
11261
|
+
* How long a resolved link is treated as fresh. Dropbox's own links last four
|
|
11262
|
+
* hours and return 410 Gone after that, so this is deliberately shorter -- a
|
|
11263
|
+
* link that expires while a crop editor still holds it produces a broken image
|
|
11264
|
+
* with no way to tell it apart from a bad file.
|
|
11265
|
+
*/
|
|
11266
|
+
declare const TEMPORARY_LINK_STALE_MS: number;
|
|
11267
|
+
interface CloudStorageTemporaryLinksResult {
|
|
11268
|
+
/** fileId -> full-resolution URL, or `null` when none could be issued. */
|
|
11269
|
+
links: CloudStorageTemporaryLinkMap;
|
|
11270
|
+
isLoading: boolean;
|
|
11271
|
+
}
|
|
11272
|
+
/**
|
|
11273
|
+
* Resolve a short-lived, publicly-fetchable URL for each requested file.
|
|
11274
|
+
*
|
|
11275
|
+
* This is the full original, not a thumbnail -- it is what a crop editor and a
|
|
11276
|
+
* post preview have to render, because a crop expressed as fractions of the
|
|
11277
|
+
* source is meaningless against a downsampled copy.
|
|
11278
|
+
*
|
|
11279
|
+
* **Call it with the files a person actually chose.** Every id is one round
|
|
11280
|
+
* trip, and every URL a consumer renders is a full-size download. Running it
|
|
11281
|
+
* over a browse grid would fetch every original in the folder.
|
|
11282
|
+
*
|
|
11283
|
+
* One TanStack Query per file, so each resolves and caches on its own and a
|
|
11284
|
+
* failing file does not hold up the rest. The key is shared with
|
|
11285
|
+
* `useCloudStorageImageDimensions`, which measures from this same link rather
|
|
11286
|
+
* than resolving a second one -- that is what keeps a selected image to a
|
|
11287
|
+
* single download across measuring, cropping, and previewing.
|
|
11288
|
+
*/
|
|
11289
|
+
declare function useCloudStorageTemporaryLinks(credentialName: string, fileIds: string[]): CloudStorageTemporaryLinksResult;
|
|
11290
|
+
|
|
11291
|
+
declare const storageKeys: {
|
|
11292
|
+
all: readonly ["storage"];
|
|
11293
|
+
signedUrls: () => readonly ["storage", "signed-urls"];
|
|
11294
|
+
/**
|
|
11295
|
+
* Keyed per object rather than per set, so a path already signed stays signed no
|
|
11296
|
+
* matter what else is requested alongside it -- the same reason
|
|
11297
|
+
* `cloudStorageKeys.temporaryLinkFor` is per file.
|
|
11298
|
+
*/
|
|
11299
|
+
signedUrlFor: (organizationId: WorkOsOrgId | null | undefined, bucket: string, path: string) => readonly ["storage", "signed-urls", WorkOsOrgId | null | undefined, string, string];
|
|
11300
|
+
};
|
|
11301
|
+
|
|
11302
|
+
/** What the caller supplies. `organizationId` is never sent -- the route reads it from authenticated context. */
|
|
11303
|
+
interface UploadStorageFileParams {
|
|
11304
|
+
/** Bucket id, e.g. `content-derivatives`. */
|
|
11305
|
+
bucket: string;
|
|
11306
|
+
/**
|
|
11307
|
+
* Object key WITHOUT the `{organizationId}/` prefix. `StorageService.buildPath`
|
|
11308
|
+
* prepends it server-side, and the `storage.objects` policies read the org back
|
|
11309
|
+
* out of that prefix -- so a caller that adds one itself writes to a path no
|
|
11310
|
+
* policy will match.
|
|
11311
|
+
*/
|
|
11312
|
+
path: string;
|
|
11313
|
+
/** The bytes to store. */
|
|
11314
|
+
file: Blob;
|
|
11315
|
+
/** Content type recorded on the object. Defaults to the blob's own `type`. */
|
|
11316
|
+
contentType?: string;
|
|
11317
|
+
/** Replace an object already at `path`. Default false, which makes a re-upload fail. */
|
|
11318
|
+
upsert?: boolean;
|
|
11319
|
+
}
|
|
11320
|
+
interface UploadStorageFileResult {
|
|
11321
|
+
success: boolean;
|
|
11322
|
+
/** The key as supplied, without the org prefix. This is what a row stores. */
|
|
11323
|
+
path: string;
|
|
11324
|
+
/** The key the object actually lives at, org prefix included. Diagnostic -- do not store it. */
|
|
11325
|
+
fullPath: string;
|
|
11326
|
+
size?: number;
|
|
11327
|
+
}
|
|
11328
|
+
/**
|
|
11329
|
+
* POST `/storage/upload` -- store a file in a Supabase bucket through the API.
|
|
11330
|
+
*
|
|
11331
|
+
* The transport is base64 in a JSON body, which inflates the payload by about a
|
|
11332
|
+
* third. That is acceptable for what this is used for -- a cropped, downsized
|
|
11333
|
+
* derivative of roughly 100 KB -- and it is not a free choice: `@fastify/multipart`
|
|
11334
|
+
* is registered only inside the deployments plugin scope, so the storage routes
|
|
11335
|
+
* cannot take a multipart body without widening that registration.
|
|
11336
|
+
*
|
|
11337
|
+
* Nothing is invalidated on success. Storage objects are not a query cache in this
|
|
11338
|
+
* package; what a caller usually needs to invalidate afterwards is the ROW that
|
|
11339
|
+
* now points at the object, which belongs to that row's own hook.
|
|
11340
|
+
*
|
|
11341
|
+
* The route runs on `request.userClient`, so `storage.objects` RLS applies -- an
|
|
11342
|
+
* upload into a bucket the member lacks the permission for fails at the database,
|
|
11343
|
+
* not at a check in this hook.
|
|
11344
|
+
*/
|
|
11345
|
+
declare function useUploadStorageFile(): _tanstack_react_query.UseMutationResult<UploadStorageFileResult, Error, UploadStorageFileParams, unknown>;
|
|
11346
|
+
|
|
11347
|
+
/** One object in a bucket. Callers hold these; they do not hold URLs. */
|
|
11348
|
+
interface StorageObjectRef {
|
|
11349
|
+
bucket: string;
|
|
11350
|
+
path: string;
|
|
11351
|
+
}
|
|
11352
|
+
/**
|
|
11353
|
+
* How a ref indexes into the returned map. Bucket and path together, because the
|
|
11354
|
+
* same path can exist in two buckets and a path-only key would collide.
|
|
11355
|
+
*/
|
|
11356
|
+
declare function storageObjectRefKey(ref: StorageObjectRef): string;
|
|
11357
|
+
/** One entry per requested ref, keyed by `storageObjectRefKey`. Absent = not resolved yet. */
|
|
11358
|
+
type StorageSignedUrlMap = Record<string, string>;
|
|
11359
|
+
interface StorageSignedUrlsResult {
|
|
11360
|
+
/** ref key -> a URL that fetches the object, valid for `SIGNED_URL_EXPIRES_IN_SECONDS`. */
|
|
11361
|
+
urls: StorageSignedUrlMap;
|
|
11362
|
+
isLoading: boolean;
|
|
11363
|
+
}
|
|
11364
|
+
/** How long a minted URL is valid for. */
|
|
11365
|
+
declare const SIGNED_URL_EXPIRES_IN_SECONDS: number;
|
|
11366
|
+
/**
|
|
11367
|
+
* POST `/storage/signed-url` per path -- resolve private storage objects into URLs
|
|
11368
|
+
* a browser can actually fetch.
|
|
11369
|
+
*
|
|
11370
|
+
* **Sign at read; never store the result.** A signed URL expires, so persisting one
|
|
11371
|
+
* produces a row that is correct when written and silently wrong later. What gets
|
|
11372
|
+
* stored is the path (`content_item_source_assets.derivative_path`,
|
|
11373
|
+
* `content_distributions.media_urls`), and this hook turns it into a URL at the
|
|
11374
|
+
* moment something renders it. Same rule as
|
|
11375
|
+
* `acq_deals.proposal_data.proposalPdfPath`.
|
|
11376
|
+
*
|
|
11377
|
+
* One query per ref, so each resolves and caches on its own and one unreadable
|
|
11378
|
+
* object does not hold up the rest.
|
|
11379
|
+
*
|
|
11380
|
+
* Each ref carries its own bucket rather than the caller passing one for the whole
|
|
11381
|
+
* batch: a stored entry names where it lives, so nothing here has to know which
|
|
11382
|
+
* bucket a given record's objects happen to be in.
|
|
11383
|
+
*
|
|
11384
|
+
* The route runs on `request.userClient`, so `storage.objects` RLS decides whether
|
|
11385
|
+
* a URL can be minted at all -- a member of another organization gets an error
|
|
11386
|
+
* here, not a URL that fails later.
|
|
11387
|
+
*/
|
|
11388
|
+
declare function useStorageSignedUrls(refs: StorageObjectRef[]): StorageSignedUrlsResult;
|
|
11389
|
+
|
|
9998
11390
|
/**
|
|
9999
11391
|
* Query key factories for Operations TanStack Query hooks.
|
|
10000
11392
|
*
|
|
@@ -12849,5 +14241,5 @@ declare function useCreateNote(): _tanstack_react_query.UseMutationResult<{
|
|
|
12849
14241
|
type?: string;
|
|
12850
14242
|
}, "organization_id">, unknown>;
|
|
12851
14243
|
|
|
12852
|
-
export { AccessKeys, ApiKeyService, CredentialService, DeploymentService, OperationsService, OrganizationMembershipService, REFETCH_INTERVAL_RUNNING, WS_MAX_RETRIES_BEFORE_ERROR, WS_RECONNECT_BASE_DELAY, WS_RECONNECT_MAX_DELAY, WebhookEndpointService, acquisitionListKeys, clientsKeys, collectResourceFilterFacets, companyKeys, contactKeys, contentKeys, dealKeys, dealNoteKeys, dealTaskKeys, executionsKeys, filterByDomainFilters, getResourceFilterFacetIds, isSessionCapable, labelResourceFilterFacet, leadGenArtifactKeys, leadGenListCompanyKeys, leadGenListMemberKeys, mergeSessionMessages, milestoneKeys, noteKeys, observabilityKeys, operationsKeys, pickLatestRunAt, projectActivityKeys, projectKeys, requestsKeys, scheduleKeys, sessionsKeys, sortData, sumStatusCounts, taskKeys, useAccess, useActivateDeployment, useActivities, useActivitiesRealtime, useActivityFilters, useActivityTrend, useAddCompaniesToList, useAddContactsToList, useArchiveSession, useArchivedLogs, useArtifacts, useAssignRole, useBatchDelete, useBatchTelemetry, useBatchedResourcesHealth, useBulkDeleteExecutions, useBusinessImpact, useCancelExecution, useCancelSchedule, useCheckpointTasks, useClient, useClientStatus, useClients, useCommandQueue, useCommandQueueTask, useCommandQueueTotals, useCommandViewData, useCommandViewDomainFilters, useCommandViewStats, useCommandViewStore, useCompanies, useCompany, useCompanyFacets, useCompleteDealTask, useContact, useContacts, useContentDistribution, useContentDistributions, useContentItem, useContentItemAttempts, useContentItems, useContentPipelineSummary, useContentSourceAsset, useContentSourceAssets, useCostBreakdown, useCostByModel, useCostSummary, useCostTrends, useCreateApiKey, useCreateArtifact, useCreateClient, useCreateCompany, useCreateContact, useCreateContentSourceAsset, useCreateCredential, useCreateDealNote, useCreateDealTask, useCreateProject as useCreateDeliveryProject, useCreateList, useCreateMilestone, useCreateNote, useCreateOrgRole, useCreateSchedule, useCreateSession, useCreateTask, useCreateWebhookEndpoint, useCredentials, useDashboardMetrics, useDeactivateDeployment, useDeactivateMembership, useDealDetail, useDealNotes, useDealTasks, useDealTasksDue, useDeals, useDealsLookup, useDealsSummary, useDeleteApiKey, useDeleteClient, useDeleteCompanies, useDeleteContacts, useDeleteCredential, useDeleteDeal, useDeleteProject as useDeleteDeliveryProject, useDeleteTask as useDeleteDeliveryTask, useDeleteDeployment, useDeleteExecution, useDeleteList, useDeleteMilestone, useDeleteOrgRole, useDeleteRequest, useDeleteSchedule, useDeleteSession, useDeleteTask$1 as useDeleteTask, useDeleteWebhookEndpoint, useDeriveActions, useEffectivePermissions, useEndSession, useErrorAnalysis, useErrorDetail, useErrorDetails, useErrorDistribution, useErrorNotification, useErrorTrends, useExecuteAction, useExecuteAsync, useExecuteResource, useExecution, useExecutionHealth, useExecutionLogSSE, useExecutionLogs, useExecutionLogsFilters, useExecutionPanelState, useExecutionSSE, useExecutions, useGetExecutionHistory, useGetSchedule, useInFlightExecutions, useList, useListApiKeys, useListDeployments, useListExecutions, useListMember, useListMembers, useListProgress, useListRecords, useListSchedules, useListWebhookEndpoints, useLists, useListsTelemetry, useMarkAllAsRead, useMarkAsRead, useMergedExecution, useMilestones, useNotificationCount as useNotificationCountSSE, useNotifications, useOrgRoles, useOrganizationMembers, useOrganizationModelDrift, usePaginationState, usePatchTask, usePauseSchedule, usePermissionCatalog, useProject, useProjectActivities, useProjectMilestones, useProjectNotes, useProjectRealtime, useProjectTasks, useProjects, useReactivateMembership, useRecentExecutionsByResource, useRemoveCompaniesFromList, useRequest, useRequestsList, useResolveAllErrors, useResolveError, useResolveErrorsByExecution, useResourceDefinition, useResourceErrors, useResourceExecutions, useResourceSearch, useResources, useResourcesDomainFilters, useResourcesHealth, useResumeSchedule, useRetryExecution, useReviewContentItem, useRevokeRole, useSSEConnection, useScheduledTasks, useSession, useSessionExecution, useSessionExecutions, useSessionMessages, useSessionWebSocket, useSessions, useSortedData, useStatusFilter, useSubmitAction, useSubmitRequest, useSuccessNotification, useSystemHealth, useTableSelection, useTableSort, useTasks, useTestNotification, useTimeRangeDates, useTopFailingResources, useTransitionItem, useTransitionListCompany, useTransitionListMember, useTransitionState, useUnresolveError, useUnresolvedErrors, useUpdateAnchor, useUpdateApiKey, useUpdateClient, useUpdateCompany, useUpdateContact, useUpdateContentDistribution, useUpdateContentItem, useUpdateContentSourceAsset, useUpdateCredential, useUpdateProject as useUpdateDeliveryProject, useUpdateList, useUpdateListConfig, useUpdateListStatus, useUpdateMilestone, useUpdateOrgRole, useUpdateRequestStatus, useUpdateSchedule, useUpdateTask, useUpdateWebhookEndpoint, useUserMemberships, useVerifyCredential, useVisibleResources, useWarningNotification, useWorkflowExecution };
|
|
12853
|
-
export type { AccessKeyInput, AcqCompanyWithCount, AcqContactWithCompany, AcqDealNote, AcqDealTask, AcqDealTaskKind, ActivityFilters, ActivityTrendResponse, AddCompaniesToListResult, AddContactsToListResult, AssignRoleInput, BulkDeleteExecutionsParams, BulkDeleteExecutionsResult, BusinessImpactMetrics, CancelExecutionParams, CancelExecutionResult, ChatMessage, ClientDetailResponse, ClientResponse, ClientStatus, ClientStatusResponse, ClientsListFilters, ContentDistributionListResponse, ContentDistributionResponse, ContentDistributionsListFilters, ContentItemAttemptListResponse, ContentItemAttemptResponse, ContentItemListResponse, ContentItemResponse, ContentItemReviewDecision, ContentItemStatus, ContentItemsListFilters, ContentPillar, ContentPipelineId, ContentPipelineSummary, ContentSourceAssetKind, ContentSourceAssetListResponse, ContentSourceAssetResponse, ContentSourceAssetsListFilters, CreateApiKeyRequest, CreateApiKeyResponse, CreateClientRequest, CreateContentSourceAssetRequest, CreateCredentialRequest, CreateCredentialResponse, CreateOrgRoleInput, CreateScheduleInput, CreateSessionResponse, CredentialListItem, DealDetail, DealLookupFilters, DealLookupItem, DealSummaryStageItem, DealsSummaryResponse, DeleteExecutionParams, Deployment, ErrorDistributionItem, ErrorDistributionParams, ErrorFilters, ErrorTrendsParams, ExecuteActionInput, ExecuteAsyncParams, ExecuteAsyncResult, ExecutionErrorDetails, ExecutionHistoryItem, ExecutionHistoryResponse, ExecutionLogsFilters, ExecutionLogsPageResponse, FailingResource, GetMessagesResponse, ListActivitiesResponse, ListApiKeysResponse, ListCredentialsResponse, ListExecutionsFilters, ListRecordsFilters, ListSchedulesFilters, ListSchedulesResponse, ListWebhookEndpointsResponse, MessageEvent, MessageType, OrgRole, OrganizationModelDriftState, RemoveCompaniesFromListResult, RequestRow, RequestSeverity, RequestType, RequestsListFilters, ResourceFilterFacet, ResourcesResponse, RetryExecutionParams, ReviewContentItemRequest, RevokeRoleInput, SessionDTO, SessionExecution, SessionExecutionsResponse, SessionListItem, SessionTokenUsage, SortDirection, SortState, StaleDealSummaryItem, StatefulItem, StatusFilter, SubmitActionRequest, SubmitActionResponse, SubmitRequestInput, SystemHealthExecutionSummary, SystemHealthResponse, TaskSchedule, TopFailingResourcesParams, TransitionItemInput, TransitionListCompanyInput, TransitionListMemberInput, TransitionStateInput, UpdateClientRequest, UpdateContentItemRequest, UpdateContentSourceAssetRequest, UpdateListStatusInput, UpdateOrgRoleInput, UpdateScheduleInput, UseAccessResult, UseActivitiesParams, UseActivityTrendParams, UseArtifactsParams, UseBatchedResourcesHealthParams, UseExecuteResourceOptions, UseExecutionHealthParams, UseExecutionLogsParams, UseExecutionPanelStateOptions, UseExecutionPanelStateReturn, UseExecutionSSEOptions, UseExecutionSSEResult, UseInFlightExecutionsOptions, UseListProgressOptions, UseNotificationCountArgs, UseResourcesHealthParams, UseSSEConnectionOptions, UseScheduledTasksOptions, UseSystemHealthParams, UseWorkflowExecutionOptions, UseWorkflowExecutionResult, VerifyCredentialResponse, WebSocketState, WorkflowExecutionTriggerParams };
|
|
14244
|
+
export { AccessKeys, ApiKeyService, CredentialService, DeploymentService, OperationsService, OrganizationMembershipService, REFETCH_INTERVAL_RUNNING, SIGNED_URL_EXPIRES_IN_SECONDS, TEMPORARY_LINK_STALE_MS, THUMBNAIL_BATCH_SIZE, WS_MAX_RETRIES_BEFORE_ERROR, WS_RECONNECT_BASE_DELAY, WS_RECONNECT_MAX_DELAY, WebhookEndpointService, acquisitionListKeys, chunkIntoBatches, clientsKeys, cloudStorageKeys, collectResourceFilterFacets, companyKeys, contactKeys, contentKeys, dealKeys, dealNoteKeys, dealTaskKeys, executionsKeys, filterByDomainFilters, getResourceFilterFacetIds, isSessionCapable, joinSourceAssetDetails, labelResourceFilterFacet, leadGenArtifactKeys, leadGenListCompanyKeys, leadGenListMemberKeys, measureImageDimensions, mergeSessionMessages, mergeThumbnailBatches, milestoneKeys, noteKeys, observabilityKeys, operationsKeys, pickCoverSourceAsset, pickLatestRunAt, projectActivityKeys, projectKeys, readItemSourceAssets, requestsKeys, scheduleKeys, sessionsKeys, sortData, storageKeys, storageObjectRefKey, sumStatusCounts, taskKeys, useAccess, useActivateDeployment, useActivities, useActivitiesRealtime, useActivityFilters, useActivityTrend, useAddCompaniesToList, useAddContactsToList, useAddContentItemSourceAsset, useArchiveSession, useArchivedLogs, useArtifacts, useAssignRole, useBatchDelete, useBatchTelemetry, useBatchedResourcesHealth, useBulkDeleteExecutions, useBusinessImpact, useCancelExecution, useCancelSchedule, useCheckpointTasks, useClient, useClientStatus, useClients, useCloudStorageFolder, useCloudStorageImageDimensions, useCloudStorageTemporaryLinks, useCloudStorageThumbnails, useCommandQueue, useCommandQueueTask, useCommandQueueTotals, useCommandViewData, useCommandViewDomainFilters, useCommandViewStats, useCommandViewStore, useCompanies, useCompany, useCompanyFacets, useCompleteDealTask, useContact, useContacts, useContentDistribution, useContentDistributionMetrics, useContentDistributions, useContentItem, useContentItemAttempts, useContentItemSourceAssetDetails, useContentItemSourceAssets, useContentItems, useContentPipelineSummary, useContentSourceAsset, useContentSourceAssets, useCostBreakdown, useCostByModel, useCostSummary, useCostTrends, useCreateApiKey, useCreateArtifact, useCreateClient, useCreateCompany, useCreateContact, useCreateContentDistribution, useCreateContentItem, useCreateContentSourceAsset, useCreateCredential, useCreateDealNote, useCreateDealTask, useCreateProject as useCreateDeliveryProject, useCreateList, useCreateMilestone, useCreateNote, useCreateOrgRole, useCreateSchedule, useCreateSession, useCreateTask, useCreateWebhookEndpoint, useCredentials, useDashboardMetrics, useDeactivateDeployment, useDeactivateMembership, useDealDetail, useDealNotes, useDealTasks, useDealTasksDue, useDeals, useDealsLookup, useDealsSummary, useDeleteApiKey, useDeleteClient, useDeleteCompanies, useDeleteContacts, useDeleteCredential, useDeleteDeal, useDeleteProject as useDeleteDeliveryProject, useDeleteTask as useDeleteDeliveryTask, useDeleteDeployment, useDeleteExecution, useDeleteList, useDeleteMilestone, useDeleteOrgRole, useDeleteRequest, useDeleteSchedule, useDeleteSession, useDeleteTask$1 as useDeleteTask, useDeleteWebhookEndpoint, useDeriveActions, useEffectivePermissions, useEndSession, useErrorAnalysis, useErrorDetail, useErrorDetails, useErrorDistribution, useErrorNotification, useErrorTrends, useExecuteAction, useExecuteAsync, useExecuteResource, useExecution, useExecutionHealth, useExecutionLogSSE, useExecutionLogs, useExecutionLogsFilters, useExecutionPanelState, useExecutionSSE, useExecutions, useGetExecutionHistory, useGetSchedule, useInFlightExecutions, useList, useListApiKeys, useListDeployments, useListExecutions, useListMember, useListMembers, useListProgress, useListRecords, useListSchedules, useListWebhookEndpoints, useLists, useListsTelemetry, useMarkAllAsRead, useMarkAsRead, useMergedExecution, useMilestones, useNotificationCount as useNotificationCountSSE, useNotifications, useOrgRoles, useOrganizationMembers, useOrganizationModelDrift, usePaginationState, usePatchTask, usePauseSchedule, usePermissionCatalog, useProject, useProjectActivities, useProjectMilestones, useProjectNotes, useProjectRealtime, useProjectTasks, useProjects, useReactivateMembership, useRecentExecutionsByResource, useRemoveCompaniesFromList, useRemoveContentItemSourceAsset, useReorderContentItemSourceAssets, useRequest, useRequestsList, useResolveAllErrors, useResolveError, useResolveErrorsByExecution, useResourceDefinition, useResourceErrors, useResourceExecutions, useResourceSearch, useResources, useResourcesDomainFilters, useResourcesHealth, useResumeSchedule, useRetryExecution, useReviewContentItem, useRevokeRole, useSSEConnection, useScheduledTasks, useSession, useSessionExecution, useSessionExecutions, useSessionMessages, useSessionWebSocket, useSessions, useSortedData, useStatusFilter, useStorageSignedUrls, useSubmitAction, useSubmitRequest, useSuccessNotification, useSystemHealth, useTableSelection, useTableSort, useTasks, useTestNotification, useTimeRangeDates, useTopFailingResources, useTransitionItem, useTransitionListCompany, useTransitionListMember, useTransitionState, useUnresolveError, useUnresolvedErrors, useUpdateAnchor, useUpdateApiKey, useUpdateClient, useUpdateCompany, useUpdateContact, useUpdateContentDistribution, useUpdateContentItem, useUpdateContentItemSourceAsset, useUpdateContentSourceAsset, useUpdateCredential, useUpdateProject as useUpdateDeliveryProject, useUpdateList, useUpdateListConfig, useUpdateListStatus, useUpdateMilestone, useUpdateOrgRole, useUpdateRequestStatus, useUpdateSchedule, useUpdateTask, useUpdateWebhookEndpoint, useUploadStorageFile, useUserMemberships, useVerifyCredential, useVisibleResources, useWarningNotification, useWorkflowExecution };
|
|
14245
|
+
export type { AccessKeyInput, AcqCompanyWithCount, AcqContactWithCompany, AcqDealNote, AcqDealTask, AcqDealTaskKind, ActivityFilters, ActivityTrendResponse, AddCompaniesToListResult, AddContactsToListResult, AssignRoleInput, BulkDeleteExecutionsParams, BulkDeleteExecutionsResult, BusinessImpactMetrics, CancelExecutionParams, CancelExecutionResult, ChatMessage, ClientDetailResponse, ClientResponse, ClientStatus, ClientStatusResponse, ClientsListFilters, CloudStorageDimensionMap, CloudStorageDimensions, CloudStorageFolderFilters, CloudStorageFolderParams, CloudStorageFolderResponse, CloudStorageImageDimensionsResult, CloudStorageTemporaryLink, CloudStorageTemporaryLinkMap, CloudStorageTemporaryLinksResult, CloudStorageThumbnailMap, CloudStorageThumbnailsResult, ContentAssetCrop, ContentAssetCropInput, ContentDistributionListResponse, ContentDistributionMetrics, ContentDistributionMetricsListResponse, ContentDistributionMetricsResponse, ContentDistributionResponse, ContentDistributionsListFilters, ContentItemAttemptListResponse, ContentItemAttemptResponse, ContentItemListResponse, ContentItemResponse, ContentItemReviewDecision, ContentItemSourceAssetDetail, ContentItemSourceAssetDetailsResult, ContentItemSourceAssetExpansion, ContentItemSourceAssetInput, ContentItemSourceAssetListResponse, ContentItemSourceAssetResponse, ContentItemStatus, ContentItemsListFilters, ContentPillar, ContentPipelineId, ContentPipelineSummary, ContentSourceAssetKind, ContentSourceAssetListResponse, ContentSourceAssetResponse, ContentSourceAssetsListFilters, CreateApiKeyRequest, CreateApiKeyResponse, CreateClientRequest, CreateContentDistributionRequest, CreateContentSourceAssetRequest, CreateCredentialRequest, CreateCredentialResponse, CreateOrgRoleInput, CreateScheduleInput, CreateSessionResponse, CredentialListItem, DealDetail, DealLookupFilters, DealLookupItem, DealSummaryStageItem, DealsSummaryResponse, DeleteExecutionParams, Deployment, ErrorDistributionItem, ErrorDistributionParams, ErrorFilters, ErrorTrendsParams, ExecuteActionInput, ExecuteAsyncParams, ExecuteAsyncResult, ExecutionErrorDetails, ExecutionHistoryItem, ExecutionHistoryResponse, ExecutionLogsFilters, ExecutionLogsPageResponse, FailingResource, GetMessagesResponse, ListActivitiesResponse, ListApiKeysResponse, ListCredentialsResponse, ListExecutionsFilters, ListRecordsFilters, ListSchedulesFilters, ListSchedulesResponse, ListWebhookEndpointsResponse, MessageEvent, MessageType, OrgRole, OrganizationModelDriftState, RemoveCompaniesFromListResult, ReorderContentItemSourceAssetsRequest, RequestRow, RequestSeverity, RequestType, RequestsListFilters, ResourceFilterFacet, ResourcesResponse, RetryExecutionParams, ReviewContentItemRequest, RevokeRoleInput, SessionDTO, SessionExecution, SessionExecutionsResponse, SessionListItem, SessionTokenUsage, SortDirection, SortState, StaleDealSummaryItem, StatefulItem, StatusFilter, StorageObjectRef, StorageSignedUrlMap, StorageSignedUrlsResult, SubmitActionRequest, SubmitActionResponse, SubmitRequestInput, SystemHealthExecutionSummary, SystemHealthResponse, TaskSchedule, TopFailingResourcesParams, TransitionItemInput, TransitionListCompanyInput, TransitionListMemberInput, TransitionStateInput, UpdateClientRequest, UpdateContentDistributionRequest, UpdateContentItemRequest, UpdateContentItemSourceAssetRequest, UpdateContentSourceAssetRequest, UpdateListStatusInput, UpdateOrgRoleInput, UpdateScheduleInput, UploadStorageFileParams, UploadStorageFileResult, UseAccessResult, UseActivitiesParams, UseActivityTrendParams, UseArtifactsParams, UseBatchedResourcesHealthParams, UseExecuteResourceOptions, UseExecutionHealthParams, UseExecutionLogsParams, UseExecutionPanelStateOptions, UseExecutionPanelStateReturn, UseExecutionSSEOptions, UseExecutionSSEResult, UseInFlightExecutionsOptions, UseListProgressOptions, UseNotificationCountArgs, UseResourcesHealthParams, UseSSEConnectionOptions, UseScheduledTasksOptions, UseSystemHealthParams, UseWorkflowExecutionOptions, UseWorkflowExecutionResult, VerifyCredentialResponse, WebSocketState, WorkflowExecutionTriggerParams };
|