@keboola/api-client 24.0.0 → 27.0.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/AGENTS.md +489 -0
- package/API-SURFACE.md +129 -57
- package/README.md +29 -25
- package/dist/{ManagementClientAuthError-C7q1Jd9I.d.ts → ManagementClientAuthError-4J0S5tV-.d.ts} +1 -1
- package/dist/{ManagementClientAuthError-BuqHAOBO.d.cts → ManagementClientAuthError-CyDpa4NS.d.cts} +1 -1
- package/dist/{adminRoles-Cil1lavB.d.cts → adminRoles-BSUPLfNf.d.cts} +1 -7
- package/dist/{adminRoles-Cil1lavB.d.ts → adminRoles-BSUPLfNf.d.ts} +1 -7
- package/dist/ai/index.cjs +4 -4
- package/dist/ai/index.d.cts +6 -3
- package/dist/ai/index.d.ts +6 -3
- package/dist/ai/index.js +3 -3
- package/dist/ai/types.d.cts +2 -2
- package/dist/ai/types.d.ts +2 -2
- package/dist/appLogs-BbgAJ5I8.d.cts +7 -0
- package/dist/appLogs-BbgAJ5I8.d.ts +7 -0
- package/dist/apps/index.cjs +16 -0
- package/dist/apps/index.cjs.map +1 -0
- package/dist/apps/index.d.cts +249 -0
- package/dist/apps/index.d.ts +249 -0
- package/dist/apps/index.js +7 -0
- package/dist/apps/index.js.map +1 -0
- package/dist/apps/types.cjs +4 -0
- package/dist/apps/types.cjs.map +1 -0
- package/dist/apps/types.d.cts +3 -0
- package/dist/apps/types.d.ts +3 -0
- package/dist/apps/types.js +3 -0
- package/dist/apps/types.js.map +1 -0
- package/dist/assets/index.cjs +2 -2
- package/dist/assets/index.d.cts +1 -1
- package/dist/assets/index.d.ts +1 -1
- package/dist/assets/index.js +1 -1
- package/dist/auth/index.cjs +17 -13
- package/dist/auth/index.d.cts +19 -6
- package/dist/auth/index.d.ts +19 -6
- package/dist/auth/index.js +2 -2
- package/dist/auth/types.d.cts +3 -3
- package/dist/auth/types.d.ts +3 -3
- package/dist/backends-UNp_e5y9.d.cts +7 -0
- package/dist/backends-UNp_e5y9.d.ts +7 -0
- package/dist/chat/index.cjs +4 -4
- package/dist/chat/index.d.cts +6 -3
- package/dist/chat/index.d.ts +6 -3
- package/dist/chat/index.js +3 -3
- package/dist/chat/types.d.cts +2 -2
- package/dist/chat/types.d.ts +2 -2
- package/dist/{chunk-LD3JERYP.js → chunk-24YVNNAG.js} +10 -4
- package/dist/chunk-24YVNNAG.js.map +1 -0
- package/dist/{chunk-CV2JGHBN.js → chunk-255CHZ3U.js} +23 -6
- package/dist/chunk-255CHZ3U.js.map +1 -0
- package/dist/{chunk-S4JK7DKM.js → chunk-2BCH2U57.js} +11 -5
- package/dist/chunk-2BCH2U57.js.map +1 -0
- package/dist/{chunk-XHDYLUM4.js → chunk-2BQBKU6E.js} +15 -13
- package/dist/chunk-2BQBKU6E.js.map +1 -0
- package/dist/{chunk-NVQ6LGDO.cjs → chunk-2JKTV7UG.cjs} +6 -6
- package/dist/{chunk-NVQ6LGDO.cjs.map → chunk-2JKTV7UG.cjs.map} +1 -1
- package/dist/chunk-3UBGQFBU.js +29 -0
- package/dist/chunk-3UBGQFBU.js.map +1 -0
- package/dist/chunk-57Q4CY4H.js +190 -0
- package/dist/chunk-57Q4CY4H.js.map +1 -0
- package/dist/{chunk-EDX5D6UY.js → chunk-5A3AQIXR.js} +3 -3
- package/dist/{chunk-EDX5D6UY.js.map → chunk-5A3AQIXR.js.map} +1 -1
- package/dist/{chunk-UABYNGBZ.js → chunk-5HEIR4DC.js} +4 -4
- package/dist/chunk-5HEIR4DC.js.map +1 -0
- package/dist/chunk-5SR2L35Y.cjs +1828 -0
- package/dist/chunk-5SR2L35Y.cjs.map +1 -0
- package/dist/{chunk-OUSPQ55W.js → chunk-62LG5KPI.js} +29 -7
- package/dist/chunk-62LG5KPI.js.map +1 -0
- package/dist/{chunk-HMCZUHR7.js → chunk-67P5UI6H.js} +9 -4
- package/dist/{chunk-2CFM7K4U.cjs.map → chunk-67P5UI6H.js.map} +1 -1
- package/dist/{chunk-HY7J3OD3.cjs → chunk-6PVEHUJL.cjs} +39 -29
- package/dist/chunk-6PVEHUJL.cjs.map +1 -0
- package/dist/chunk-6XFXU5N4.js +119 -0
- package/dist/chunk-6XFXU5N4.js.map +1 -0
- package/dist/chunk-6ZQBFK2Y.js +24 -0
- package/dist/chunk-6ZQBFK2Y.js.map +1 -0
- package/dist/{chunk-AFJGNBVM.cjs → chunk-AJ3SCWUB.cjs} +14 -8
- package/dist/chunk-AJ3SCWUB.cjs.map +1 -0
- package/dist/{chunk-GF4XZK5N.cjs → chunk-AXYNFDUI.cjs} +4 -4
- package/dist/chunk-AXYNFDUI.cjs.map +1 -0
- package/dist/{chunk-UP5SEEYZ.js → chunk-B45B4AYG.js} +61 -7
- package/dist/chunk-B45B4AYG.js.map +1 -0
- package/dist/{chunk-4VVF2PIX.js → chunk-B4T4QCLB.js} +10 -4
- package/dist/chunk-B4T4QCLB.js.map +1 -0
- package/dist/{chunk-XIIER7QQ.js → chunk-BGJWHTBJ.js} +10 -4
- package/dist/chunk-BGJWHTBJ.js.map +1 -0
- package/dist/chunk-BVRPZKRE.cjs +147 -0
- package/dist/chunk-BVRPZKRE.cjs.map +1 -0
- package/dist/chunk-BZB4UVQA.cjs +192 -0
- package/dist/chunk-BZB4UVQA.cjs.map +1 -0
- package/dist/{chunk-D3ZZQIY2.cjs → chunk-CHRBWCL7.cjs} +8 -8
- package/dist/chunk-CHRBWCL7.cjs.map +1 -0
- package/dist/{chunk-3PVERYSF.js → chunk-CPZME73I.js} +3 -3
- package/dist/{chunk-3PVERYSF.js.map → chunk-CPZME73I.js.map} +1 -1
- package/dist/{chunk-D6O5C67S.js → chunk-DVV35AIS.js} +7 -7
- package/dist/chunk-DVV35AIS.js.map +1 -0
- package/dist/{chunk-CWUQ6ZAO.cjs → chunk-E7GGDLAH.cjs} +25 -8
- package/dist/chunk-E7GGDLAH.cjs.map +1 -0
- package/dist/{chunk-J3NLKXQ5.cjs → chunk-EQPBR3BE.cjs} +15 -9
- package/dist/chunk-EQPBR3BE.cjs.map +1 -0
- package/dist/{chunk-SJZ66FD5.js → chunk-ERZEQ5JR.js} +8 -3
- package/dist/chunk-ERZEQ5JR.js.map +1 -0
- package/dist/{chunk-CWCUQACX.cjs → chunk-ES3ADC2G.cjs} +4 -4
- package/dist/{chunk-CWCUQACX.cjs.map → chunk-ES3ADC2G.cjs.map} +1 -1
- package/dist/{chunk-2CFM7K4U.cjs → chunk-FEAE6L3K.cjs} +13 -8
- package/dist/chunk-FEAE6L3K.cjs.map +1 -0
- package/dist/{chunk-IDWGBCSB.cjs → chunk-FVU7WU2H.cjs} +11 -6
- package/dist/chunk-FVU7WU2H.cjs.map +1 -0
- package/dist/{chunk-3BFPNM2J.js → chunk-FW5GBBKL.js} +11 -5
- package/dist/chunk-FW5GBBKL.js.map +1 -0
- package/dist/chunk-G2SWCC3X.js +90 -0
- package/dist/chunk-G2SWCC3X.js.map +1 -0
- package/dist/{chunk-KUYVBCUM.cjs → chunk-G3JHVIDZ.cjs} +63 -8
- package/dist/chunk-G3JHVIDZ.cjs.map +1 -0
- package/dist/{chunk-KH6BHTXN.js → chunk-HGKDXF35.js} +59 -108
- package/dist/chunk-HGKDXF35.js.map +1 -0
- package/dist/chunk-HITKHHWN.cjs +174 -0
- package/dist/chunk-HITKHHWN.cjs.map +1 -0
- package/dist/chunk-HQO572JW.cjs +34 -0
- package/dist/chunk-HQO572JW.cjs.map +1 -0
- package/dist/{chunk-MMOAH3EH.cjs → chunk-HUQ5ATIL.cjs} +15 -13
- package/dist/chunk-HUQ5ATIL.cjs.map +1 -0
- package/dist/{chunk-XKIENBIE.js → chunk-HZDVMHU6.js} +10 -4
- package/dist/chunk-HZDVMHU6.js.map +1 -0
- package/dist/{chunk-7R22VKV7.cjs → chunk-ICWUR5WA.cjs} +13 -7
- package/dist/chunk-ICWUR5WA.cjs.map +1 -0
- package/dist/{chunk-BR6WZE3O.cjs → chunk-IQFNHQWP.cjs} +9 -4
- package/dist/chunk-IQFNHQWP.cjs.map +1 -0
- package/dist/{chunk-7Z4MU7ZB.js → chunk-IZ4QM7O4.js} +32 -22
- package/dist/chunk-IZ4QM7O4.js.map +1 -0
- package/dist/{chunk-UWQUHP3T.cjs → chunk-J5JCXSAS.cjs} +11 -6
- package/dist/chunk-J5JCXSAS.cjs.map +1 -0
- package/dist/{chunk-LIXSIM3H.cjs → chunk-JI7HLIDL.cjs} +12 -6
- package/dist/chunk-JI7HLIDL.cjs.map +1 -0
- package/dist/chunk-JWISA775.cjs +92 -0
- package/dist/chunk-JWISA775.cjs.map +1 -0
- package/dist/chunk-K3BLXPLA.cjs +16 -0
- package/dist/{chunk-7RO6PKZ4.cjs.map → chunk-K3BLXPLA.cjs.map} +1 -1
- package/dist/{chunk-BZA3FGO6.js → chunk-KATUDT3E.js} +8 -3
- package/dist/chunk-KATUDT3E.js.map +1 -0
- package/dist/chunk-KGBWWS6I.js +32 -0
- package/dist/chunk-KGBWWS6I.js.map +1 -0
- package/dist/chunk-KQENBXPS.cjs +34 -0
- package/dist/chunk-KQENBXPS.cjs.map +1 -0
- package/dist/chunk-KTKJD4DM.js +60 -0
- package/dist/chunk-KTKJD4DM.js.map +1 -0
- package/dist/chunk-LNZP2O4P.js +169 -0
- package/dist/chunk-LNZP2O4P.js.map +1 -0
- package/dist/{chunk-2BOG5U7C.js → chunk-LWQP7OWA.js} +3 -3
- package/dist/{chunk-2BOG5U7C.js.map → chunk-LWQP7OWA.js.map} +1 -1
- package/dist/chunk-N4COL54U.cjs +22 -0
- package/dist/chunk-N4COL54U.cjs.map +1 -0
- package/dist/chunk-NFJKJGXR.js +397 -0
- package/dist/chunk-NFJKJGXR.js.map +1 -0
- package/dist/chunk-NH2TQGRL.cjs +28 -0
- package/dist/chunk-NH2TQGRL.cjs.map +1 -0
- package/dist/{chunk-XMC355U2.js → chunk-NHYL5QPM.js} +17 -3
- package/dist/chunk-NHYL5QPM.js.map +1 -0
- package/dist/{chunk-WFXW4XU3.js → chunk-ON4ILCHP.js} +899 -555
- package/dist/chunk-ON4ILCHP.js.map +1 -0
- package/dist/{chunk-T242YFMT.cjs → chunk-PLF4JX5B.cjs} +12 -7
- package/dist/chunk-PLF4JX5B.cjs.map +1 -0
- package/dist/{chunk-77LILJYX.js → chunk-QNF3L4B7.js} +9 -4
- package/dist/chunk-QNF3L4B7.js.map +1 -0
- package/dist/{chunk-NVRVPWNY.js → chunk-RBN3ITTM.js} +9 -4
- package/dist/chunk-RBN3ITTM.js.map +1 -0
- package/dist/{chunk-DRNOCC6W.cjs → chunk-RXYT7EMN.cjs} +31 -8
- package/dist/chunk-RXYT7EMN.cjs.map +1 -0
- package/dist/chunk-S46FMY4G.cjs +64 -0
- package/dist/chunk-S46FMY4G.cjs.map +1 -0
- package/dist/chunk-S6BWQKHJ.cjs +116 -0
- package/dist/chunk-S6BWQKHJ.cjs.map +1 -0
- package/dist/{chunk-3YWQQ3OG.cjs → chunk-SFTI6QFB.cjs} +13 -7
- package/dist/chunk-SFTI6QFB.cjs.map +1 -0
- package/dist/{chunk-7YXL4FKN.cjs → chunk-SNP577FA.cjs} +12 -6
- package/dist/chunk-SNP577FA.cjs.map +1 -0
- package/dist/{chunk-PPQF7LTS.cjs → chunk-SUVM3S2T.cjs} +15 -9
- package/dist/chunk-SUVM3S2T.cjs.map +1 -0
- package/dist/chunk-SYZ5OFNT.js +114 -0
- package/dist/chunk-SYZ5OFNT.js.map +1 -0
- package/dist/{chunk-FRLSKIUI.cjs → chunk-SZBW4EE2.cjs} +6 -6
- package/dist/{chunk-FRLSKIUI.cjs.map → chunk-SZBW4EE2.cjs.map} +1 -1
- package/dist/{chunk-G66EP527.js → chunk-TBHJQCAE.js} +9 -4
- package/dist/chunk-TBHJQCAE.js.map +1 -0
- package/dist/{chunk-EYIPM2XB.cjs → chunk-U3E5YMLO.cjs} +4 -4
- package/dist/{chunk-EYIPM2XB.cjs.map → chunk-U3E5YMLO.cjs.map} +1 -1
- package/dist/{chunk-34GM6NXB.js → chunk-UVX733BX.js} +10 -4
- package/dist/chunk-UVX733BX.js.map +1 -0
- package/dist/{chunk-FMS5PNM2.cjs → chunk-V6FT3RTU.cjs} +8 -3
- package/dist/chunk-V6FT3RTU.cjs.map +1 -0
- package/dist/{chunk-35MODDCL.cjs → chunk-VB56OVFM.cjs} +59 -111
- package/dist/chunk-VB56OVFM.cjs.map +1 -0
- package/dist/{chunk-5XWVWFTC.js → chunk-WQ7NNIJ3.js} +4 -4
- package/dist/{chunk-5XWVWFTC.js.map → chunk-WQ7NNIJ3.js.map} +1 -1
- package/dist/{chunk-DHOVQ2TW.js → chunk-WUFODWZV.js} +3 -3
- package/dist/{chunk-DHOVQ2TW.js.map → chunk-WUFODWZV.js.map} +1 -1
- package/dist/{chunk-3KEVPUSX.cjs → chunk-WUJ53PP7.cjs} +17 -3
- package/dist/chunk-WUJ53PP7.cjs.map +1 -0
- package/dist/chunk-YDOSWWE4.cjs +419 -0
- package/dist/chunk-YDOSWWE4.cjs.map +1 -0
- package/dist/chunk-YGEJDWGG.js +19 -0
- package/dist/chunk-YGEJDWGG.js.map +1 -0
- package/dist/constants/index.cjs +16 -164
- package/dist/constants/index.cjs.map +1 -1
- package/dist/constants/index.d.cts +14 -1
- package/dist/constants/index.d.ts +14 -1
- package/dist/constants/index.js +2 -163
- package/dist/constants/index.js.map +1 -1
- package/dist/createFetchClient-BHAsPDgF.d.cts +86 -0
- package/dist/createFetchClient-CFIwc6Lh.d.ts +86 -0
- package/dist/{createGenericFetchClient-Df_wFqT8.d.cts → createGenericFetchClient-JcbIIqwF.d.cts} +1 -1
- package/dist/{createGenericFetchClient-Sl1DH71J.d.ts → createGenericFetchClient-ZGG5wbAC.d.ts} +1 -1
- package/dist/{createOpenapiFetchClient-GZxZgYHd.d.cts → createOpenapiFetchClient-CduEua6F.d.cts} +2 -2
- package/dist/{createOpenapiFetchClient-BSy6dVM5.d.ts → createOpenapiFetchClient-wLlVgp3k.d.ts} +2 -2
- package/dist/dataScience/index.cjs +6 -5
- package/dist/dataScience/index.d.cts +8 -6
- package/dist/dataScience/index.d.ts +8 -6
- package/dist/dataScience/index.js +4 -3
- package/dist/dataScience/types.d.cts +2172 -2
- package/dist/dataScience/types.d.ts +2172 -2
- package/dist/domain/permissions/index.cjs +3 -3
- package/dist/domain/permissions/index.d.cts +5 -4
- package/dist/domain/permissions/index.d.ts +5 -4
- package/dist/domain/permissions/index.js +1 -1
- package/dist/editor/index.cjs +4 -4
- package/dist/editor/index.d.cts +6 -3
- package/dist/editor/index.d.ts +6 -3
- package/dist/editor/index.js +3 -3
- package/dist/editor/types.d.cts +2 -2
- package/dist/editor/types.d.ts +2 -2
- package/dist/encryption/index.cjs +3 -3
- package/dist/encryption/index.d.cts +6 -4
- package/dist/encryption/index.d.ts +6 -4
- package/dist/encryption/index.js +2 -2
- package/dist/encryption/types.d.cts +4 -3
- package/dist/encryption/types.d.ts +4 -3
- package/dist/import/index.cjs +4 -4
- package/dist/import/index.d.cts +6 -3
- package/dist/import/index.d.ts +6 -3
- package/dist/import/index.js +3 -3
- package/dist/index.cjs +228 -135
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +952 -463
- package/dist/index.d.ts +952 -463
- package/dist/index.js +98 -46
- package/dist/index.js.map +1 -1
- package/dist/management/index.cjs +5 -5
- package/dist/management/index.d.cts +62 -69
- package/dist/management/index.d.ts +62 -69
- package/dist/management/index.js +3 -3
- package/dist/management/types.d.cts +3 -3
- package/dist/management/types.d.ts +3 -3
- package/dist/metastore/index.cjs +4 -4
- package/dist/metastore/index.d.cts +6 -7
- package/dist/metastore/index.d.ts +6 -7
- package/dist/metastore/index.js +3 -3
- package/dist/metastore/types.d.cts +2 -2
- package/dist/metastore/types.d.ts +2 -2
- package/dist/notifications/index.cjs +5 -5
- package/dist/notifications/index.d.cts +4 -3
- package/dist/notifications/index.d.ts +4 -3
- package/dist/notifications/index.js +4 -4
- package/dist/notifications/types.d.cts +2 -2
- package/dist/notifications/types.d.ts +2 -2
- package/dist/oauth/index.cjs +4 -4
- package/dist/oauth/index.d.cts +3 -2
- package/dist/oauth/index.d.ts +3 -2
- package/dist/oauth/index.js +3 -3
- package/dist/oauth/types.d.cts +1 -1
- package/dist/oauth/types.d.ts +1 -1
- package/dist/omnisearch/index.cjs +14 -0
- package/dist/omnisearch/index.cjs.map +1 -0
- package/dist/omnisearch/index.d.cts +32 -0
- package/dist/omnisearch/index.d.ts +32 -0
- package/dist/omnisearch/index.js +5 -0
- package/dist/omnisearch/index.js.map +1 -0
- package/dist/omnisearch/types.cjs +4 -0
- package/dist/omnisearch/types.cjs.map +1 -0
- package/dist/omnisearch/types.d.cts +3 -0
- package/dist/omnisearch/types.d.ts +3 -0
- package/dist/omnisearch/types.js +3 -0
- package/dist/omnisearch/types.js.map +1 -0
- package/dist/{project-DmC8vKnh.d.ts → project-Dmr-zrQG.d.ts} +2 -2
- package/dist/{project-CSJzVylj.d.cts → project-DstzWVMN.d.cts} +2 -2
- package/dist/queryService/index.cjs +4 -4
- package/dist/queryService/index.d.cts +4 -3
- package/dist/queryService/index.d.ts +4 -3
- package/dist/queryService/index.js +3 -3
- package/dist/queryService/types.d.cts +2 -2
- package/dist/queryService/types.d.ts +2 -2
- package/dist/queue/index.cjs +4 -4
- package/dist/queue/index.d.cts +9 -3
- package/dist/queue/index.d.ts +9 -3
- package/dist/queue/index.js +3 -3
- package/dist/queue/types.d.cts +2 -2
- package/dist/queue/types.d.ts +2 -2
- package/dist/scheduler/index.cjs +5 -5
- package/dist/scheduler/index.d.cts +3 -2
- package/dist/scheduler/index.d.ts +3 -2
- package/dist/scheduler/index.js +4 -4
- package/dist/scheduler/types.d.cts +3 -3
- package/dist/scheduler/types.d.ts +3 -3
- package/dist/sdk/configurations/index.cjs +3 -3
- package/dist/sdk/configurations/index.d.cts +9 -8
- package/dist/sdk/configurations/index.d.ts +9 -8
- package/dist/sdk/configurations/index.js +2 -2
- package/dist/sdk/queryService/index.cjs +16 -0
- package/dist/sdk/queryService/index.cjs.map +1 -0
- package/dist/sdk/queryService/index.d.cts +35 -0
- package/dist/sdk/queryService/index.d.ts +35 -0
- package/dist/sdk/queryService/index.js +7 -0
- package/dist/sdk/queryService/index.js.map +1 -0
- package/dist/sdk/semanticLayer/index.cjs +18 -14
- package/dist/sdk/semanticLayer/index.d.cts +26 -11
- package/dist/sdk/semanticLayer/index.d.ts +26 -11
- package/dist/sdk/semanticLayer/index.js +2 -2
- package/dist/sdk/semanticLayer/types.d.cts +26 -6
- package/dist/sdk/semanticLayer/types.d.ts +26 -6
- package/dist/sdk/storage/index.cjs +12 -11
- package/dist/sdk/storage/index.d.cts +9 -8
- package/dist/sdk/storage/index.d.ts +9 -8
- package/dist/sdk/storage/index.js +2 -1
- package/dist/sdk/tag/index.cjs +3 -3
- package/dist/sdk/tag/index.d.cts +4 -4
- package/dist/sdk/tag/index.d.ts +4 -4
- package/dist/sdk/tag/index.js +2 -2
- package/dist/sdk/tag/types.d.cts +11 -5
- package/dist/sdk/tag/types.d.ts +11 -5
- package/dist/sdk/vault/index.cjs +8 -8
- package/dist/sdk/vault/index.d.cts +6 -5
- package/dist/sdk/vault/index.d.ts +6 -5
- package/dist/sdk/vault/index.js +2 -2
- package/dist/status/index.cjs +2 -2
- package/dist/status/index.d.cts +1 -1
- package/dist/status/index.d.ts +1 -1
- package/dist/status/index.js +1 -1
- package/dist/storage/index.cjs +59 -12
- package/dist/storage/index.d.cts +21 -22
- package/dist/storage/index.d.ts +21 -22
- package/dist/storage/index.js +8 -5
- package/dist/storage/types.d.cts +741 -390
- package/dist/storage/types.d.ts +741 -390
- package/dist/{storageClient-B4OooGB9.d.ts → storageClient-BAid0vi2.d.cts} +482 -250
- package/dist/{storageClient-CdFqTbn3.d.cts → storageClient-BX50Attd.d.ts} +482 -250
- package/dist/{storageSdk-DA7U-1Hy.d.ts → storageSdk-BS5982c_.d.cts} +23 -16
- package/dist/{storageSdk-U45zMbUb.d.cts → storageSdk-BeJcnEIO.d.ts} +23 -16
- package/dist/stream/index.cjs +4 -4
- package/dist/stream/index.d.cts +4 -3
- package/dist/stream/index.d.ts +4 -3
- package/dist/stream/index.js +3 -3
- package/dist/stream/types.d.cts +2 -2
- package/dist/stream/types.d.ts +2 -2
- package/dist/syncActions/index.cjs +9 -4
- package/dist/syncActions/index.d.cts +55 -80
- package/dist/syncActions/index.d.ts +55 -80
- package/dist/syncActions/index.js +8 -3
- package/dist/syncActions/types.d.cts +387 -25
- package/dist/syncActions/types.d.ts +387 -25
- package/dist/telemetry/index.cjs +4 -4
- package/dist/telemetry/index.d.cts +2 -2
- package/dist/telemetry/index.d.ts +2 -2
- package/dist/telemetry/index.js +3 -3
- package/dist/{types-DbAO-Tgk.d.ts → types-BALUbGA5.d.ts} +10 -2
- package/dist/{types-B30y9Lhc.d.ts → types-BCBF_5cU.d.cts} +186 -4
- package/dist/{types-B-vmDlWB.d.cts → types-BPKQRahf.d.cts} +3 -3
- package/dist/types-BcaALDYY.d.cts +2130 -0
- package/dist/{types-BfuVN8Pk.d.cts → types-Bom93Zx2.d.cts} +3 -3
- package/dist/types-Bp8d9PJf.d.cts +607 -0
- package/dist/types-BsejtGjZ.d.ts +2130 -0
- package/dist/{types-DeoA45gz.d.cts → types-BuEkMmKT.d.ts} +491 -308
- package/dist/{types-WGZN6XLN.d.cts → types-C5DdOzx8.d.cts} +1 -1
- package/dist/{types-D-MuJHwl.d.cts → types-CFeOCzzg.d.cts} +3 -2
- package/dist/{types-DpUcInCX.d.ts → types-COti0FGo.d.ts} +3 -3
- package/dist/{types-Brc6lq7i.d.ts → types-C_jxWM7A.d.ts} +1 -1
- package/dist/{types-CM1zHzgm.d.ts → types-Cffam0Nw.d.ts} +856 -36
- package/dist/{types-BieLFMW1.d.cts → types-CfzHhZVG.d.ts} +3 -3
- package/dist/{types-DYnHIm7m.d.cts → types-CniF_D1P.d.cts} +3 -3
- package/dist/{types-BEnE7LHB.d.cts → types-CwAYn1EJ.d.cts} +10 -2
- package/dist/{types-DgSyBwP3.d.cts → types-CxAH36ip.d.cts} +3 -3
- package/dist/{types-DwMezEHT.d.ts → types-D2qGShlS.d.ts} +15 -3
- package/dist/{types-CSZoV4lM.d.cts → types-D6dnnju2.d.ts} +186 -4
- package/dist/{types-CrLjE5xf.d.ts → types-DM1glEQI.d.ts} +3 -3
- package/dist/{types-Hj1CaKtV.d.ts → types-DNyZ0z3L.d.cts} +491 -308
- package/dist/types-DOc5_aYZ.d.ts +607 -0
- package/dist/{types-DHXZZKb3.d.ts → types-Dpwb4dD0.d.ts} +3 -3
- package/dist/{types-YzkNUuYo.d.ts → types-DrGnvgkB.d.ts} +3 -3
- package/dist/{types-BhlJw2f2.d.ts → types-EZBBpiFU.d.ts} +886 -114
- package/dist/{types-DNg4M5JV.d.cts → types-UwuKN9Kx.d.cts} +1 -1
- package/dist/{types-DNg4M5JV.d.ts → types-UwuKN9Kx.d.ts} +1 -1
- package/dist/{types-BX1xr4CX.d.cts → types-Y1ynT2PH.d.cts} +15 -3
- package/dist/{types-DVhcwrwN.d.cts → types-cxk-0ftN.d.cts} +886 -114
- package/dist/{types-DeS-oVdn.d.ts → types-ebolWqn1.d.ts} +3 -2
- package/dist/{types-gcShAmmi.d.cts → types-f8dUjMX4.d.cts} +1 -1
- package/dist/{types-gcShAmmi.d.ts → types-f8dUjMX4.d.ts} +1 -1
- package/dist/{types-CiJ5ULtS.d.ts → types-nt7I4XNc.d.cts} +3 -3
- package/dist/{types-Cgh3jqrV.d.cts → types-qvle4Ydu.d.cts} +856 -36
- package/dist/vault/index.cjs +4 -4
- package/dist/vault/index.d.cts +3 -2
- package/dist/vault/index.d.ts +3 -2
- package/dist/vault/index.js +3 -3
- package/dist/vault/types.d.cts +3 -3
- package/dist/vault/types.d.ts +3 -3
- package/package.json +71 -3
- package/surface/ai.md +1 -0
- package/surface/apps.md +32 -0
- package/surface/auth.md +6 -4
- package/surface/chat.md +2 -1
- package/surface/dataScience.md +1 -0
- package/surface/editor.md +1 -0
- package/surface/encryption.md +1 -0
- package/surface/import.md +1 -0
- package/surface/kaiAgent.md +2 -1
- package/surface/management.md +17 -16
- package/surface/metastore.md +2 -1
- package/surface/notifications.md +1 -0
- package/surface/oauth.md +1 -0
- package/surface/omnisearch.md +9 -0
- package/surface/queryService.md +1 -0
- package/surface/queue.md +8 -7
- package/surface/scheduler.md +1 -0
- package/surface/sdk.md +17 -17
- package/surface/storage.md +125 -88
- package/surface/stream.md +1 -0
- package/surface/syncActions.md +19 -7
- package/surface/vault.md +1 -0
- package/dist/chunk-34GM6NXB.js.map +0 -1
- package/dist/chunk-35MODDCL.cjs.map +0 -1
- package/dist/chunk-3BFPNM2J.js.map +0 -1
- package/dist/chunk-3FZHFTLG.cjs +0 -12
- package/dist/chunk-3FZHFTLG.cjs.map +0 -1
- package/dist/chunk-3KEVPUSX.cjs.map +0 -1
- package/dist/chunk-3MTY6I2W.js +0 -192
- package/dist/chunk-3MTY6I2W.js.map +0 -1
- package/dist/chunk-3YWQQ3OG.cjs.map +0 -1
- package/dist/chunk-4VVF2PIX.js.map +0 -1
- package/dist/chunk-77LILJYX.js.map +0 -1
- package/dist/chunk-7R22VKV7.cjs.map +0 -1
- package/dist/chunk-7RO6PKZ4.cjs +0 -16
- package/dist/chunk-7YXL4FKN.cjs.map +0 -1
- package/dist/chunk-7Z4MU7ZB.js.map +0 -1
- package/dist/chunk-AFJGNBVM.cjs.map +0 -1
- package/dist/chunk-AXEANGGK.js +0 -226
- package/dist/chunk-AXEANGGK.js.map +0 -1
- package/dist/chunk-BR6WZE3O.cjs.map +0 -1
- package/dist/chunk-BZA3FGO6.js.map +0 -1
- package/dist/chunk-CV2JGHBN.js.map +0 -1
- package/dist/chunk-CWUQ6ZAO.cjs.map +0 -1
- package/dist/chunk-D3ZZQIY2.cjs.map +0 -1
- package/dist/chunk-D6O5C67S.js.map +0 -1
- package/dist/chunk-DRNOCC6W.cjs.map +0 -1
- package/dist/chunk-FMS5PNM2.cjs.map +0 -1
- package/dist/chunk-G66EP527.js.map +0 -1
- package/dist/chunk-GF4XZK5N.cjs.map +0 -1
- package/dist/chunk-GM3AKU5T.js +0 -10
- package/dist/chunk-GM3AKU5T.js.map +0 -1
- package/dist/chunk-HMCZUHR7.js.map +0 -1
- package/dist/chunk-HY7J3OD3.cjs.map +0 -1
- package/dist/chunk-IDWGBCSB.cjs.map +0 -1
- package/dist/chunk-J3NLKXQ5.cjs.map +0 -1
- package/dist/chunk-KH6BHTXN.js.map +0 -1
- package/dist/chunk-KUYVBCUM.cjs.map +0 -1
- package/dist/chunk-L262THNK.cjs +0 -253
- package/dist/chunk-L262THNK.cjs.map +0 -1
- package/dist/chunk-LD3JERYP.js.map +0 -1
- package/dist/chunk-LIXSIM3H.cjs.map +0 -1
- package/dist/chunk-MMOAH3EH.cjs.map +0 -1
- package/dist/chunk-NVRVPWNY.js.map +0 -1
- package/dist/chunk-OUSPQ55W.js.map +0 -1
- package/dist/chunk-PPQF7LTS.cjs.map +0 -1
- package/dist/chunk-QZKDBVAU.cjs +0 -1482
- package/dist/chunk-QZKDBVAU.cjs.map +0 -1
- package/dist/chunk-S4JK7DKM.js.map +0 -1
- package/dist/chunk-SJZ66FD5.js.map +0 -1
- package/dist/chunk-T242YFMT.cjs.map +0 -1
- package/dist/chunk-UABYNGBZ.js.map +0 -1
- package/dist/chunk-UP5SEEYZ.js.map +0 -1
- package/dist/chunk-UWQUHP3T.cjs.map +0 -1
- package/dist/chunk-WFXW4XU3.js.map +0 -1
- package/dist/chunk-XHDYLUM4.js.map +0 -1
- package/dist/chunk-XIIER7QQ.js.map +0 -1
- package/dist/chunk-XKIENBIE.js.map +0 -1
- package/dist/chunk-XMC355U2.js.map +0 -1
- package/dist/chunk-Y44G2VDC.cjs +0 -214
- package/dist/chunk-Y44G2VDC.cjs.map +0 -1
- package/dist/utils-B_SOM1XR.d.ts +0 -3051
- package/dist/utils-DK7uJcmR.d.cts +0 -3051
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { poll, PollException } from './chunk-KTKJD4DM.js';
|
|
2
|
+
import { QueryJobTimeoutError, QueryJobError } from './chunk-3UBGQFBU.js';
|
|
3
|
+
import { ValidationError } from './chunk-6ZQBFK2Y.js';
|
|
4
|
+
|
|
5
|
+
// src/sdks/queryService/queryServiceSdk.ts
|
|
6
|
+
var DEFAULT_WAIT_FOR_JOB_INTERVAL = 500;
|
|
7
|
+
var DEFAULT_MAX_WAIT_TIME = 3e5;
|
|
8
|
+
var DEFAULT_EXECUTE_QUERY_PAGE_SIZE = 5e3;
|
|
9
|
+
var assertPositiveInteger = (name, value) => {
|
|
10
|
+
if (!Number.isInteger(value) || value <= 0) {
|
|
11
|
+
throw new ValidationError(`${name} must be a positive integer, got ${value}`);
|
|
12
|
+
}
|
|
13
|
+
};
|
|
14
|
+
var createQueryServiceSdk = ({ queryServiceClient }) => {
|
|
15
|
+
const waitForJob = async (queryJobId, {
|
|
16
|
+
interval = DEFAULT_WAIT_FOR_JOB_INTERVAL,
|
|
17
|
+
maxWaitTime = DEFAULT_MAX_WAIT_TIME,
|
|
18
|
+
signal
|
|
19
|
+
} = {}) => {
|
|
20
|
+
assertPositiveInteger("interval", interval);
|
|
21
|
+
assertPositiveInteger("maxWaitTime", maxWaitTime);
|
|
22
|
+
let result;
|
|
23
|
+
try {
|
|
24
|
+
result = await poll({
|
|
25
|
+
pollFn: () => queryServiceClient.getQueryJob(queryJobId),
|
|
26
|
+
isDone: (status2) => status2.status === "completed" || status2.status === "failed" || status2.status === "canceled",
|
|
27
|
+
interval,
|
|
28
|
+
maxAttempts: Math.max(1, Math.ceil(maxWaitTime / interval)),
|
|
29
|
+
abortSignal: signal
|
|
30
|
+
});
|
|
31
|
+
} catch (error) {
|
|
32
|
+
if (error instanceof PollException && error.message === "PollTimeoutError") {
|
|
33
|
+
throw new QueryJobTimeoutError(`Job did not complete within ${maxWaitTime}ms`, queryJobId);
|
|
34
|
+
}
|
|
35
|
+
throw error;
|
|
36
|
+
}
|
|
37
|
+
const status = result.data;
|
|
38
|
+
if (status.status === "failed") {
|
|
39
|
+
const failedStatements = status.statements.filter((statement) => statement.status === "failed").map((statement) => ({ id: statement.id, error: statement.error }));
|
|
40
|
+
throw new QueryJobError(failedStatements[0]?.error ?? "Job failed", queryJobId, {
|
|
41
|
+
failedStatements
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
return status;
|
|
45
|
+
};
|
|
46
|
+
const fetchAllResultPages = async (queryJobId, statementId, pageSize, maxRows) => {
|
|
47
|
+
const allData = [];
|
|
48
|
+
let offset = 0;
|
|
49
|
+
let firstPage;
|
|
50
|
+
while (true) {
|
|
51
|
+
const remaining = maxRows !== void 0 ? maxRows - allData.length : void 0;
|
|
52
|
+
if (remaining !== void 0 && remaining <= 0) break;
|
|
53
|
+
const currentPageSize = remaining !== void 0 ? Math.min(pageSize, remaining) : pageSize;
|
|
54
|
+
const page = await queryServiceClient.getQueryResults(queryJobId, statementId, {
|
|
55
|
+
offset,
|
|
56
|
+
pageSize: currentPageSize
|
|
57
|
+
});
|
|
58
|
+
firstPage ??= page;
|
|
59
|
+
const pageData = page.data ?? [];
|
|
60
|
+
allData.push(...pageData);
|
|
61
|
+
if (pageData.length < currentPageSize) break;
|
|
62
|
+
offset += pageData.length;
|
|
63
|
+
if (firstPage.numberOfRows !== void 0 && allData.length >= firstPage.numberOfRows) break;
|
|
64
|
+
}
|
|
65
|
+
if (!firstPage) {
|
|
66
|
+
throw new Error(`No result pages returned for statement ${statementId}`);
|
|
67
|
+
}
|
|
68
|
+
return { ...firstPage, data: allData };
|
|
69
|
+
};
|
|
70
|
+
const executeQuery = async (branchId, workspaceId, body, options = {}) => {
|
|
71
|
+
const { pageSize = DEFAULT_EXECUTE_QUERY_PAGE_SIZE, maxRows, ...waitOptions } = options;
|
|
72
|
+
assertPositiveInteger("pageSize", pageSize);
|
|
73
|
+
if (maxRows !== void 0) assertPositiveInteger("maxRows", maxRows);
|
|
74
|
+
const { queryJobId } = await queryServiceClient.createQueryJob(branchId, workspaceId, body);
|
|
75
|
+
const status = await waitForJob(queryJobId, waitOptions);
|
|
76
|
+
const results = [];
|
|
77
|
+
for (const statement of status.statements) {
|
|
78
|
+
results.push(await fetchAllResultPages(queryJobId, statement.id, pageSize, maxRows));
|
|
79
|
+
}
|
|
80
|
+
return results;
|
|
81
|
+
};
|
|
82
|
+
return {
|
|
83
|
+
waitForJob,
|
|
84
|
+
executeQuery
|
|
85
|
+
};
|
|
86
|
+
};
|
|
87
|
+
|
|
88
|
+
export { createQueryServiceSdk };
|
|
89
|
+
//# sourceMappingURL=chunk-G2SWCC3X.js.map
|
|
90
|
+
//# sourceMappingURL=chunk-G2SWCC3X.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/sdks/queryService/queryServiceSdk.ts"],"names":["status"],"mappings":"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","file":"chunk-G2SWCC3X.js","sourcesContent":["import type { createQueryServiceClient } from '../../clients/queryService';\nimport type {\n GetQueryJobPath,\n JobStatusResponse,\n PostQueryBody,\n PostQueryPath,\n QueryResult,\n} from '../../clients/queryService/types';\nimport { QueryJobError, QueryJobTimeoutError, ValidationError } from '../../errors';\nimport { poll, PollException } from '../../utils/async';\n\nconst DEFAULT_WAIT_FOR_JOB_INTERVAL = 500; // ms\nconst DEFAULT_MAX_WAIT_TIME = 300_000; // 5 minutes\nconst DEFAULT_EXECUTE_QUERY_PAGE_SIZE = 5000;\n\nconst assertPositiveInteger = (name: string, value: number) => {\n if (!Number.isInteger(value) || value <= 0) {\n throw new ValidationError(`${name} must be a positive integer, got ${value}`);\n }\n};\n\nexport type WaitForJobOptions = {\n /** Poll interval in ms. Default: 500. */\n interval?: number;\n /** Give up and throw {@link QueryJobTimeoutError} after this many ms. Default: 300_000 (5 min). */\n maxWaitTime?: number;\n signal?: AbortSignal;\n};\n\nexport type ExecuteQueryOptions = WaitForJobOptions & {\n /** Page size used internally while auto-paginating each statement's results. Default: 5000. */\n pageSize?: number;\n /**\n * Caps the number of rows fetched per statement. Pagination stops once this many rows have been\n * collected. Default: unlimited (fetch every row).\n */\n maxRows?: number;\n};\n\ntype QueryServiceSdkOptions = {\n queryServiceClient: ReturnType<typeof createQueryServiceClient>;\n};\n\n/**\n * Higher-level SDK composing queryService client calls with job polling and result-page\n * auto-pagination for orchestrated workflows — mirrors sdks/storage's `createStorageSdk`.\n */\nexport const createQueryServiceSdk = ({ queryServiceClient }: QueryServiceSdkOptions) => {\n /**\n * Polls a job until it reaches a terminal state (`completed`, `failed`, `canceled`).\n * Throws {@link QueryJobError} if the job fails, {@link QueryJobTimeoutError} if it doesn't reach\n * a terminal state within `maxWaitTime`.\n */\n const waitForJob = async (\n queryJobId: GetQueryJobPath['queryJobId'],\n {\n interval = DEFAULT_WAIT_FOR_JOB_INTERVAL,\n maxWaitTime = DEFAULT_MAX_WAIT_TIME,\n signal,\n }: WaitForJobOptions = {},\n ): Promise<JobStatusResponse> => {\n assertPositiveInteger('interval', interval);\n assertPositiveInteger('maxWaitTime', maxWaitTime);\n\n let result;\n try {\n result = await poll({\n pollFn: () => queryServiceClient.getQueryJob(queryJobId),\n isDone: (status) =>\n status.status === 'completed' ||\n status.status === 'failed' ||\n status.status === 'canceled',\n interval,\n maxAttempts: Math.max(1, Math.ceil(maxWaitTime / interval)),\n abortSignal: signal,\n });\n } catch (error) {\n if (error instanceof PollException && error.message === 'PollTimeoutError') {\n throw new QueryJobTimeoutError(`Job did not complete within ${maxWaitTime}ms`, queryJobId);\n }\n throw error;\n }\n\n const status = result.data;\n if (status.status === 'failed') {\n const failedStatements = status.statements\n .filter((statement) => statement.status === 'failed')\n .map((statement) => ({ id: statement.id, error: statement.error }));\n\n throw new QueryJobError(failedStatements[0]?.error ?? 'Job failed', queryJobId, {\n failedStatements,\n });\n }\n\n return status;\n };\n\n /** Fetches every page of a statement's results, merging them into a single {@link QueryResult}. */\n const fetchAllResultPages = async (\n queryJobId: string,\n statementId: string,\n pageSize: number,\n maxRows: number | undefined,\n ): Promise<QueryResult> => {\n const allData: NonNullable<QueryResult['data']> = [];\n let offset = 0;\n let firstPage: QueryResult | undefined;\n\n while (true) {\n const remaining = maxRows !== undefined ? maxRows - allData.length : undefined;\n if (remaining !== undefined && remaining <= 0) break;\n\n const currentPageSize = remaining !== undefined ? Math.min(pageSize, remaining) : pageSize;\n\n const page = await queryServiceClient.getQueryResults(queryJobId, statementId, {\n offset,\n pageSize: currentPageSize,\n });\n firstPage ??= page;\n\n const pageData = page.data ?? [];\n allData.push(...pageData);\n\n // Stop once a page is shorter than requested (end of the result set, or a statement like DDL\n // that has no rows at all) or once `numberOfRows` — known from the first page — is reached.\n if (pageData.length < currentPageSize) break;\n offset += pageData.length;\n if (firstPage.numberOfRows !== undefined && allData.length >= firstPage.numberOfRows) break;\n }\n\n if (!firstPage) {\n // Unreachable: the loop always issues at least one request (pageSize/maxRows are validated as\n // positive integers by executeQuery), assigning firstPage on the first iteration.\n throw new Error(`No result pages returned for statement ${statementId}`);\n }\n\n return { ...firstPage, data: allData };\n };\n\n /**\n * Submits a query job, waits for completion, and fetches results for every statement —\n * auto-paginating each statement's results so sets larger than `pageSize` come back in full\n * instead of being truncated at the API's default page size.\n */\n const executeQuery = async (\n branchId: PostQueryPath['branchId'],\n workspaceId: PostQueryPath['workspaceId'],\n body: PostQueryBody,\n options: ExecuteQueryOptions = {},\n ): Promise<QueryResult[]> => {\n const { pageSize = DEFAULT_EXECUTE_QUERY_PAGE_SIZE, maxRows, ...waitOptions } = options;\n assertPositiveInteger('pageSize', pageSize);\n if (maxRows !== undefined) assertPositiveInteger('maxRows', maxRows);\n\n const { queryJobId } = await queryServiceClient.createQueryJob(branchId, workspaceId, body);\n const status = await waitForJob(queryJobId, waitOptions);\n\n const results: QueryResult[] = [];\n for (const statement of status.statements) {\n results.push(await fetchAllResultPages(queryJobId, statement.id, pageSize, maxRows));\n }\n\n return results;\n };\n\n return {\n waitForJob,\n executeQuery,\n };\n};\n"]}
|
|
@@ -1,10 +1,30 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var chunkEWMXK3EI_cjs = require('./chunk-EWMXK3EI.cjs');
|
|
4
|
-
var
|
|
4
|
+
var chunkV6FT3RTU_cjs = require('./chunk-V6FT3RTU.cjs');
|
|
5
5
|
var zod = require('zod');
|
|
6
6
|
|
|
7
7
|
// src/sdks/semanticLayer/semanticLayerSdk.ts
|
|
8
|
+
var SemanticLayerCascadeDeleteError = class extends AggregateError {
|
|
9
|
+
modelUUID;
|
|
10
|
+
deletedChildren;
|
|
11
|
+
failedChildren;
|
|
12
|
+
constructor({
|
|
13
|
+
modelUUID,
|
|
14
|
+
deletedChildren,
|
|
15
|
+
failedChildren
|
|
16
|
+
}) {
|
|
17
|
+
const total = deletedChildren.length + failedChildren.length;
|
|
18
|
+
super(
|
|
19
|
+
failedChildren.map((failure) => failure.error),
|
|
20
|
+
`The model was kept because ${failedChildren.length} of its ${total} child objects could not be deleted (${deletedChildren.length} deleted).`
|
|
21
|
+
);
|
|
22
|
+
this.name = "SemanticLayerCascadeDeleteError";
|
|
23
|
+
this.modelUUID = modelUUID;
|
|
24
|
+
this.deletedChildren = deletedChildren;
|
|
25
|
+
this.failedChildren = failedChildren;
|
|
26
|
+
}
|
|
27
|
+
};
|
|
8
28
|
var SEMANTIC_OBJECT_TYPE = {
|
|
9
29
|
MODEL: "semantic-model",
|
|
10
30
|
DATASET: "semantic-dataset",
|
|
@@ -94,7 +114,7 @@ var createSemanticLayerSdk = ({ metastoreClient }) => {
|
|
|
94
114
|
});
|
|
95
115
|
return mapObject(response.data);
|
|
96
116
|
};
|
|
97
|
-
const createObjects = async (objectType, items, meta = {}) =>
|
|
117
|
+
const createObjects = async (objectType, items, meta = {}) => chunkV6FT3RTU_cjs.concurrent({
|
|
98
118
|
items,
|
|
99
119
|
process: async (data) => createObject(objectType, data, meta),
|
|
100
120
|
concurrency: WRITE_CONCURRENCY
|
|
@@ -110,7 +130,7 @@ var createSemanticLayerSdk = ({ metastoreClient }) => {
|
|
|
110
130
|
}
|
|
111
131
|
}))
|
|
112
132
|
);
|
|
113
|
-
const createdChildren = await
|
|
133
|
+
const createdChildren = await chunkV6FT3RTU_cjs.concurrent({
|
|
114
134
|
items,
|
|
115
135
|
process: async ({ objectType, data }) => createObject(objectType, data, meta),
|
|
116
136
|
concurrency: WRITE_CONCURRENCY
|
|
@@ -150,16 +170,47 @@ var createSemanticLayerSdk = ({ metastoreClient }) => {
|
|
|
150
170
|
};
|
|
151
171
|
const deleteModel = async (modelUUID) => {
|
|
152
172
|
const children = await listModelChildren(modelUUID);
|
|
153
|
-
await
|
|
173
|
+
const outcomes = await chunkV6FT3RTU_cjs.concurrent({
|
|
154
174
|
items: children,
|
|
155
|
-
process: async (
|
|
175
|
+
process: async (child) => {
|
|
176
|
+
try {
|
|
177
|
+
await deleteObject(child.objectType, child.objectUUID);
|
|
178
|
+
return { ok: true, child };
|
|
179
|
+
} catch (error) {
|
|
180
|
+
return { ok: false, child, error };
|
|
181
|
+
}
|
|
182
|
+
},
|
|
156
183
|
concurrency: WRITE_CONCURRENCY
|
|
157
184
|
});
|
|
185
|
+
const deletedChildren = [];
|
|
186
|
+
const failedChildren = [];
|
|
187
|
+
for (const outcome of outcomes) {
|
|
188
|
+
if (outcome.ok) deletedChildren.push(outcome.child);
|
|
189
|
+
else failedChildren.push({ ...outcome.child, error: outcome.error });
|
|
190
|
+
}
|
|
191
|
+
if (failedChildren.length > 0) {
|
|
192
|
+
throw new SemanticLayerCascadeDeleteError({ modelUUID, deletedChildren, failedChildren });
|
|
193
|
+
}
|
|
158
194
|
await metastoreClient.repository.deleteMetaObject({
|
|
159
195
|
objectType: SEMANTIC_OBJECT_TYPE.MODEL,
|
|
160
196
|
UUID: modelUUID
|
|
161
197
|
});
|
|
162
198
|
};
|
|
199
|
+
const replaceTargetProjects = async (objectType, objectUUID, targetProjectIds) => {
|
|
200
|
+
await metastoreClient.repository.replaceTargetProjects({
|
|
201
|
+
objectType,
|
|
202
|
+
UUID: objectUUID,
|
|
203
|
+
targetProjectIds
|
|
204
|
+
});
|
|
205
|
+
};
|
|
206
|
+
const promoteToOrganizationScope = async (objectType, objectUUID) => {
|
|
207
|
+
const response = await metastoreClient.repository.updateMetaObject({
|
|
208
|
+
objectType,
|
|
209
|
+
UUID: objectUUID,
|
|
210
|
+
scope: "organization"
|
|
211
|
+
});
|
|
212
|
+
return mapObject(response.data);
|
|
213
|
+
};
|
|
163
214
|
return {
|
|
164
215
|
// models
|
|
165
216
|
listModels,
|
|
@@ -174,7 +225,10 @@ var createSemanticLayerSdk = ({ metastoreClient }) => {
|
|
|
174
225
|
createObjects,
|
|
175
226
|
createModelTree,
|
|
176
227
|
updateObject,
|
|
177
|
-
deleteObject
|
|
228
|
+
deleteObject,
|
|
229
|
+
// scoping / sharing
|
|
230
|
+
replaceTargetProjects,
|
|
231
|
+
promoteToOrganizationScope
|
|
178
232
|
};
|
|
179
233
|
};
|
|
180
234
|
|
|
@@ -220,6 +274,7 @@ exports.MODEL_CHILD_OBJECT_TYPES = MODEL_CHILD_OBJECT_TYPES;
|
|
|
220
274
|
exports.SEMANTIC_CHILD_OBJECT_SCHEMAS = SEMANTIC_CHILD_OBJECT_SCHEMAS;
|
|
221
275
|
exports.SEMANTIC_OBJECT_TYPE = SEMANTIC_OBJECT_TYPE;
|
|
222
276
|
exports.SQL_DIALECTS = SQL_DIALECTS;
|
|
277
|
+
exports.SemanticLayerCascadeDeleteError = SemanticLayerCascadeDeleteError;
|
|
223
278
|
exports.createSemanticLayerSdk = createSemanticLayerSdk;
|
|
224
279
|
exports.semanticConstraintSchema = semanticConstraintSchema;
|
|
225
280
|
exports.semanticDatasetSchema = semanticDatasetSchema;
|
|
@@ -227,5 +282,5 @@ exports.semanticGlossarySchema = semanticGlossarySchema;
|
|
|
227
282
|
exports.semanticMetricSchema = semanticMetricSchema;
|
|
228
283
|
exports.semanticModelSchema = semanticModelSchema;
|
|
229
284
|
exports.semanticRelationshipSchema = semanticRelationshipSchema;
|
|
230
|
-
//# sourceMappingURL=chunk-
|
|
231
|
-
//# sourceMappingURL=chunk-
|
|
285
|
+
//# sourceMappingURL=chunk-G3JHVIDZ.cjs.map
|
|
286
|
+
//# sourceMappingURL=chunk-G3JHVIDZ.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/sdks/semanticLayer/semanticLayerSdk.ts","../src/sdks/semanticLayer/schemas.ts"],"names":["generateUUID","concurrent","z"],"mappings":"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","file":"chunk-G3JHVIDZ.cjs","sourcesContent":["import { concurrent, generateUUID } from '../../utils';\n\nimport type {\n CreateSemanticObjectMeta,\n MetastoreClient,\n SemanticChildObjectDataMap,\n SemanticChildObjectType,\n SemanticConstraintType,\n SemanticModelChildDeleteFailure,\n SemanticModelChildRef,\n SemanticModelData,\n SemanticObject,\n SemanticObjectMeta,\n SemanticObjectType,\n UpdateSemanticObjectMeta,\n} from './types';\n\n/**\n * Thrown by `deleteModel` when the child cascade partially fails. Every child delete has\n * settled by the time this is thrown — nothing keeps deleting in the background — and the\n * model itself was kept, so the exact remaining state is knowable: `deletedChildren` are gone,\n * `failedChildren` (and the model) still exist. `errors` carries the per-child rejection\n * reasons, AggregateError-style.\n */\nexport class SemanticLayerCascadeDeleteError extends AggregateError {\n readonly modelUUID: string;\n readonly deletedChildren: SemanticModelChildRef[];\n readonly failedChildren: SemanticModelChildDeleteFailure[];\n\n constructor({\n modelUUID,\n deletedChildren,\n failedChildren,\n }: {\n modelUUID: string;\n deletedChildren: SemanticModelChildRef[];\n failedChildren: SemanticModelChildDeleteFailure[];\n }) {\n const total = deletedChildren.length + failedChildren.length;\n super(\n failedChildren.map((failure) => failure.error),\n `The model was kept because ${failedChildren.length} of its ${total} child objects ` +\n `could not be deleted (${deletedChildren.length} deleted).`,\n );\n this.name = 'SemanticLayerCascadeDeleteError';\n this.modelUUID = modelUUID;\n this.deletedChildren = deletedChildren;\n this.failedChildren = failedChildren;\n }\n}\n\nexport const SEMANTIC_OBJECT_TYPE = {\n MODEL: 'semantic-model',\n DATASET: 'semantic-dataset',\n METRIC: 'semantic-metric',\n RELATIONSHIP: 'semantic-relationship',\n GLOSSARY: 'semantic-glossary',\n CONSTRAINT: 'semantic-constraint',\n} as const satisfies Record<string, SemanticObjectType>;\n\n/**\n * `readonly` because this drives `createModelTree`, `listModelChildren` and `deleteModel` —\n * a consumer-side `.push()` would silently change what a cascade delete touches.\n */\nexport const MODEL_CHILD_OBJECT_TYPES: readonly SemanticChildObjectType[] = [\n SEMANTIC_OBJECT_TYPE.DATASET,\n SEMANTIC_OBJECT_TYPE.METRIC,\n SEMANTIC_OBJECT_TYPE.RELATIONSHIP,\n SEMANTIC_OBJECT_TYPE.GLOSSARY,\n SEMANTIC_OBJECT_TYPE.CONSTRAINT,\n] as const;\n\n/**\n * The dialects the metastore accepts, exactly as it spells them. A lowercase value is\n * rejected with `422 value must be one of 'Snowflake', 'BigQuery'`, which surfaces only as a\n * generic \"Validation failed\" — so callers need the real set rather than a bare `string`.\n *\n * `SemanticModelData.sql_dialect` stays `string` for now: narrowing it would break any caller\n * passing a `string` variable, which is a major bump. Validate against this instead.\n */\nexport const SQL_DIALECTS = ['Snowflake', 'BigQuery'] as const;\n\n/** The metastore's constraint kinds. Runtime counterpart to `SemanticConstraintType`. */\nexport const CONSTRAINT_TYPES = [\n 'inequality',\n 'equality',\n 'range',\n 'composition',\n 'exclusion',\n 'temporal',\n 'conditional',\n] as const satisfies readonly SemanticConstraintType[];\n\nconst DEFAULT_BRANCH = 'main';\n\n// The metastore has no bulk endpoint; large semantic-layer inits are written as\n// concurrent single POSTs (the same approach the ai-kit sl-toolkit importer uses).\nconst WRITE_CONCURRENCY = 5;\n\n// The live metastore envelope: `attributes` carries the object's data payload directly,\n// the UUID is the top-level `id`, and revision/branch/audit fields live in `meta`. The\n// legacy wrapper types in clients/metastore/repository/types.ts do not match this shape.\ntype RawSemanticObject<TData> = {\n type: string;\n id: string;\n attributes: TData;\n meta: SemanticObjectMeta;\n};\n\nconst mapObject = <TData>(item: RawSemanticObject<TData>): SemanticObject<TData> => ({\n uuid: item.id,\n data: item.attributes,\n meta: item.meta,\n});\n\nconst deriveOptionalObjectName = (data: Record<string, unknown>): string | undefined => {\n if (typeof data.name === 'string') return data.name;\n if (typeof data.term === 'string') return data.term;\n return undefined;\n};\n\nconst deriveObjectName = (data: Record<string, unknown>) =>\n deriveOptionalObjectName(data) ?? generateUUID();\n\n/**\n * The label a UI shows for an object, as opposed to the identifier it is addressed by.\n *\n * Constraints carry an optional `displayName`; kbc-ui's constraint tables already render\n * `displayName ?? name`, so a confirmation listing what a cascade delete would destroy has to\n * agree with them or it names objects the user can't find on screen.\n *\n * Deliberately **not** used for lookup: `displayName` is optional and not unique, so matching on\n * it would make `findObjectsByName` ambiguous for callers that resolve a write target by name.\n */\nconst deriveObjectLabel = (data: Record<string, unknown>): string | undefined => {\n if (typeof data.displayName === 'string' && data.displayName !== '') return data.displayName;\n return deriveOptionalObjectName(data);\n};\n\ntype Options = {\n metastoreClient: MetastoreClient;\n};\n\nexport const createSemanticLayerSdk = ({ metastoreClient }: Options) => {\n const _listObjects = async <TData extends Record<string, unknown>>(\n objectType: SemanticObjectType,\n signal?: AbortSignal,\n ) => {\n const response = await metastoreClient.repository.getMetaObjects<TData>({ objectType }, signal);\n return (response.data as unknown as RawSemanticObject<TData>[]).map(mapObject);\n };\n\n const listModels = async (signal?: AbortSignal) =>\n _listObjects<SemanticModelData>(SEMANTIC_OBJECT_TYPE.MODEL, signal);\n\n const createModel = async (data: SemanticModelData, meta: CreateSemanticObjectMeta = {}) => {\n const response = await metastoreClient.repository.createMetaObject<SemanticModelData>({\n objectType: SEMANTIC_OBJECT_TYPE.MODEL,\n data,\n branch: DEFAULT_BRANCH,\n ...meta,\n // Derived name wins over meta so the metastore name stays in sync with the payload.\n name: data.name,\n });\n\n return mapObject(response.data as unknown as RawSemanticObject<SemanticModelData>);\n };\n\n const updateModel = async (\n modelUUID: string,\n data: Partial<SemanticModelData>,\n meta: UpdateSemanticObjectMeta = {},\n ) => {\n const response = await metastoreClient.repository.updateMetaObject<SemanticModelData>({\n objectType: SEMANTIC_OBJECT_TYPE.MODEL,\n UUID: modelUUID,\n data,\n ...meta,\n // Derived rename wins over meta so the metastore name stays in sync with the payload.\n ...(data.name ? { name: data.name } : {}),\n });\n\n return mapObject(response.data as unknown as RawSemanticObject<SemanticModelData>);\n };\n\n const listObjects = async <T extends SemanticChildObjectType>(\n objectType: T,\n modelUUID: string,\n signal?: AbortSignal,\n ) => {\n const objects = await _listObjects<SemanticChildObjectDataMap[T]>(objectType, signal);\n return objects.filter((object) => object.data.modelUUID === modelUUID);\n };\n\n /**\n * Find a model's child objects by their user-facing name.\n *\n * Returns every match rather than resolving to one, because a name is not unique: the caller\n * decides whether that's an error (an agent needs an unambiguous target) or a choice to offer\n * (a UI can render a picker). Glossary entries key on `term`, so both are matched.\n */\n const findObjectsByName = async <T extends SemanticChildObjectType>(\n objectType: T,\n name: string,\n modelUUID: string,\n signal?: AbortSignal,\n ) => {\n const objects = await listObjects(objectType, modelUUID, signal);\n return objects.filter((object) => deriveOptionalObjectName(object.data) === name);\n };\n\n const createObject = async <T extends SemanticChildObjectType>(\n objectType: T,\n data: SemanticChildObjectDataMap[T],\n meta: CreateSemanticObjectMeta = {},\n ) => {\n const response = await metastoreClient.repository.createMetaObject<\n SemanticChildObjectDataMap[T]\n >({\n objectType,\n data,\n branch: DEFAULT_BRANCH,\n ...meta,\n // Derived name wins over meta so the metastore name stays in sync with the payload.\n name: deriveObjectName(data),\n });\n\n return mapObject(response.data as unknown as RawSemanticObject<SemanticChildObjectDataMap[T]>);\n };\n\n const createObjects = async <T extends SemanticChildObjectType>(\n objectType: T,\n items: SemanticChildObjectDataMap[T][],\n meta: CreateSemanticObjectMeta = {},\n ) =>\n concurrent({\n items,\n process: async (data) => createObject(objectType, data, meta),\n concurrency: WRITE_CONCURRENCY,\n });\n\n // Create a model and all its child objects in one call: the model first (so its\n // UUID exists), then every child concurrently with the modelUUID injected.\n const createModelTree = async (\n model: SemanticModelData,\n children: Partial<{\n [T in SemanticChildObjectType]: Omit<SemanticChildObjectDataMap[T], 'modelUUID'>[];\n }>,\n meta: CreateSemanticObjectMeta = {},\n ) => {\n const createdModel = await createModel(model, meta);\n\n const items = MODEL_CHILD_OBJECT_TYPES.flatMap((objectType) =>\n (children[objectType] ?? []).map((data) => ({\n objectType,\n data: {\n ...data,\n modelUUID: createdModel.uuid,\n } satisfies SemanticChildObjectDataMap[typeof objectType],\n })),\n );\n\n const createdChildren = await concurrent({\n items,\n process: async ({ objectType, data }) => createObject(objectType, data, meta),\n concurrency: WRITE_CONCURRENCY,\n });\n\n return { model: createdModel, children: createdChildren };\n };\n\n const updateObject = async <T extends SemanticChildObjectType>(\n objectType: T,\n objectUUID: string,\n data: Partial<SemanticChildObjectDataMap[T]>,\n meta: UpdateSemanticObjectMeta = {},\n ) => {\n const name = deriveOptionalObjectName(data);\n const response = await metastoreClient.repository.updateMetaObject<\n SemanticChildObjectDataMap[T]\n >({\n objectType,\n UUID: objectUUID,\n data,\n ...meta,\n // Derived rename wins over meta so the metastore name stays in sync with the payload.\n ...(name ? { name } : {}),\n });\n\n return mapObject(response.data as unknown as RawSemanticObject<SemanticChildObjectDataMap[T]>);\n };\n\n const deleteObject = async (objectType: SemanticChildObjectType, objectUUID: string) => {\n await metastoreClient.repository.deleteMetaObject({\n objectType,\n UUID: objectUUID,\n });\n };\n\n /**\n * Every child object of a model, across all five types, flattened.\n *\n * `deleteModel` uses this to find what to remove; callers can use it to say what a delete\n * would destroy *before* asking the user to confirm. Each entry's `name` is the object's\n * display label (a constraint's `displayName` in preference to its `name`, matching what the\n * SL tables render), so a confirmation lists objects as the user sees them on screen.\n *\n * Costs five list requests: the metastore has no per-model filter, so `listObjects`\n * fetches each collection and filters client-side.\n */\n const listModelChildren = async (\n modelUUID: string,\n signal?: AbortSignal,\n ): Promise<SemanticModelChildRef[]> => {\n const childrenByType = await Promise.all(\n MODEL_CHILD_OBJECT_TYPES.map(async (objectType) => {\n const objects = await listObjects(objectType, modelUUID, signal);\n return objects.map((object) => ({\n objectType,\n objectUUID: object.uuid,\n name: deriveObjectLabel(object.data),\n }));\n }),\n );\n\n return childrenByType.flat();\n };\n\n /**\n * Cascade delete: every child object first, the model itself only once its whole tree is\n * gone. Child deletes all settle — a failing child never aborts the others, so no delete\n * runs on detached after this rejects — and a partial failure surfaces as\n * `SemanticLayerCascadeDeleteError`, which says exactly which children were deleted and\n * which survived. The model is kept on any child failure so it never orphans children.\n */\n const deleteModel = async (modelUUID: string) => {\n const children = await listModelChildren(modelUUID);\n\n const outcomes = await concurrent({\n items: children,\n process: async (child) => {\n try {\n await deleteObject(child.objectType, child.objectUUID);\n return { ok: true as const, child };\n } catch (error) {\n return { ok: false as const, child, error };\n }\n },\n concurrency: WRITE_CONCURRENCY,\n });\n\n const deletedChildren: SemanticModelChildRef[] = [];\n const failedChildren: SemanticModelChildDeleteFailure[] = [];\n for (const outcome of outcomes) {\n if (outcome.ok) deletedChildren.push(outcome.child);\n else failedChildren.push({ ...outcome.child, error: outcome.error });\n }\n\n if (failedChildren.length > 0) {\n throw new SemanticLayerCascadeDeleteError({ modelUUID, deletedChildren, failedChildren });\n }\n\n await metastoreClient.repository.deleteMetaObject({\n objectType: SEMANTIC_OBJECT_TYPE.MODEL,\n UUID: modelUUID,\n });\n };\n\n /**\n * Replace the sibling projects granted GET/consumption access to a `targeted`-scope object.\n *\n * Passing an empty array clears every grant, leaving the object visible to its owning project\n * only. A grant conveys read access alone — the target projects can consume the definition but\n * never edit it, which is enforced metastore-side rather than here.\n */\n const replaceTargetProjects = async (\n objectType: SemanticObjectType,\n objectUUID: string,\n targetProjectIds: number[],\n ) => {\n await metastoreClient.repository.replaceTargetProjects({\n objectType,\n UUID: objectUUID,\n targetProjectIds,\n });\n };\n\n /**\n * Step a project-scoped object up to the organization scope, in place.\n *\n * The object keeps its UUID and revision history; the step-up writes a new revision whose\n * `project_id` is null. Requires the caller to hold the organization-admin role for the target\n * organization — a project-admin gets 403 from the metastore, which callers should surface\n * rather than pre-empt (the same person is often both).\n */\n const promoteToOrganizationScope = async (objectType: SemanticObjectType, objectUUID: string) => {\n // Scope ONLY. No `data`, not even `{}`: the metastore's step-up guard rejects a PATCH that\n // also carries name or data, and `Data *JSONData` treats `{}` as present — which 400s with\n // \"A scope change cannot be combined with name or data changes\".\n const response = await metastoreClient.repository.updateMetaObject({\n objectType,\n UUID: objectUUID,\n scope: 'organization',\n });\n\n return mapObject(response.data as unknown as RawSemanticObject<Record<string, unknown>>);\n };\n\n return {\n // models\n listModels,\n createModel,\n updateModel,\n deleteModel,\n listModelChildren,\n\n // child objects (datasets, metrics, relationships, glossary, constraints)\n listObjects,\n findObjectsByName,\n createObject,\n createObjects,\n createModelTree,\n updateObject,\n deleteObject,\n\n // scoping / sharing\n replaceTargetProjects,\n promoteToOrganizationScope,\n };\n};\n","import { z } from 'zod';\n\nimport { CONSTRAINT_TYPES, SQL_DIALECTS } from './semanticLayerSdk';\n\n/**\n * Runtime validators for the semantic-layer payload shapes.\n *\n * These exist because the metastore's validation errors are opaque — a missing or misspelled\n * field surfaces only as a generic \"Validation failed\", and a wrong `sql_dialect` casing as a\n * 422 that names neither the field nor the accepted values. Parsing first turns those into a\n * message that says what is wrong.\n *\n * **Only the fields the SDK types mark as required are declared.** The metastore owns each\n * object type's full schema, so every schema is a `looseObject`: unknown fields pass through\n * untouched rather than being stripped or rejected. Re-declaring the optional fields here\n * would create a second source of truth that silently drops whatever the metastore adds next.\n *\n * The SDK does **not** parse on its own writes — these are for callers that accept untrusted\n * or hand-authored input (an agent's tool call, a form submission) and want to fail early.\n * `modelUUID` is omitted throughout: the SDK injects it, so callers never supply it.\n */\n\nexport const semanticModelSchema = z.looseObject({\n name: z.string().min(1),\n sql_dialect: z.enum(SQL_DIALECTS),\n});\n\nexport const semanticDatasetSchema = z.looseObject({\n name: z.string().min(1),\n tableId: z.string().min(1),\n fqn: z.string().min(1),\n});\n\nexport const semanticMetricSchema = z.looseObject({\n name: z.string().min(1),\n sql: z.string().min(1),\n});\n\nexport const semanticRelationshipSchema = z.looseObject({\n from: z.string().min(1),\n to: z.string().min(1),\n on: z.string().min(1),\n});\n\nexport const semanticGlossarySchema = z.looseObject({\n term: z.string().min(1),\n definition: z.string().min(1),\n});\n\nexport const semanticConstraintSchema = z.looseObject({\n name: z.string().min(1),\n constraintType: z.enum(CONSTRAINT_TYPES),\n metrics: z.array(z.string()),\n rule: z.string().min(1),\n});\n\n/** Keyed by object type so a caller can pick the schema from a `SemanticChildObjectType`. */\nexport const SEMANTIC_CHILD_OBJECT_SCHEMAS = {\n 'semantic-dataset': semanticDatasetSchema,\n 'semantic-metric': semanticMetricSchema,\n 'semantic-relationship': semanticRelationshipSchema,\n 'semantic-glossary': semanticGlossarySchema,\n 'semantic-constraint': semanticConstraintSchema,\n} as const;\n"]}
|
|
@@ -1,59 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
// src/utils/async/delay.ts
|
|
4
|
-
var delay = (timeout, signal) => new Promise((resolve, reject) => {
|
|
5
|
-
if (signal?.aborted) return reject(createAbortError(signal.reason));
|
|
6
|
-
const timeoutId = setTimeout(resolve, timeout);
|
|
7
|
-
signal?.addEventListener(
|
|
8
|
-
"abort",
|
|
9
|
-
() => {
|
|
10
|
-
clearTimeout(timeoutId);
|
|
11
|
-
reject(createAbortError(signal.reason));
|
|
12
|
-
},
|
|
13
|
-
{ once: true }
|
|
14
|
-
);
|
|
15
|
-
});
|
|
16
|
-
|
|
17
|
-
// src/utils/async/poll.ts
|
|
18
|
-
var message = {
|
|
19
|
-
PollPredicateError: "Poll predicate failed",
|
|
20
|
-
PollTimeoutError: "Poll timeout exceeded",
|
|
21
|
-
PollPollTimeoutError: "Poll data failed condition"
|
|
22
|
-
};
|
|
23
|
-
var PollException = class extends Error {
|
|
24
|
-
result;
|
|
25
|
-
constructor(type, result) {
|
|
26
|
-
super(type, { cause: message[type] });
|
|
27
|
-
this.result = result;
|
|
28
|
-
}
|
|
29
|
-
};
|
|
30
|
-
var poll = async ({
|
|
31
|
-
pollFn,
|
|
32
|
-
interval,
|
|
33
|
-
isDone,
|
|
34
|
-
isFailed,
|
|
35
|
-
abortSignal,
|
|
36
|
-
maxAttempts = Infinity
|
|
37
|
-
}) => {
|
|
38
|
-
if (abortSignal?.aborted) throw createAbortError(abortSignal.reason);
|
|
39
|
-
if (interval < 1) throw new Error("Invalid poll interval");
|
|
40
|
-
if (maxAttempts < 1) throw new Error("Invalid poll maxAttempts");
|
|
41
|
-
let callCount = 0;
|
|
42
|
-
while (true) {
|
|
43
|
-
callCount++;
|
|
44
|
-
const data = await pollFn(abortSignal);
|
|
45
|
-
const result = { data, callCount };
|
|
46
|
-
try {
|
|
47
|
-
if (isDone(data)) return result;
|
|
48
|
-
if (isFailed?.(data) ?? false) throw new PollException("PollPollTimeoutError", result);
|
|
49
|
-
} catch (error) {
|
|
50
|
-
if (error instanceof PollException) throw error;
|
|
51
|
-
throw new PollException("PollPredicateError", result);
|
|
52
|
-
}
|
|
53
|
-
if (callCount >= maxAttempts) throw new PollException("PollTimeoutError", result);
|
|
54
|
-
await delay(interval, abortSignal);
|
|
55
|
-
}
|
|
56
|
-
};
|
|
1
|
+
import { poll } from './chunk-KTKJD4DM.js';
|
|
57
2
|
|
|
58
3
|
// src/sdks/storage/storageSdk.ts
|
|
59
4
|
var DEFAULT_POLL_INTERVAL = 2e3;
|
|
@@ -70,124 +15,132 @@ var createStorageSdk = ({ storageClient }) => {
|
|
|
70
15
|
return data;
|
|
71
16
|
};
|
|
72
17
|
const createTable = async (bucketId, body, options) => {
|
|
73
|
-
const job = await storageClient.tables.createTableAsync(
|
|
18
|
+
const job = await storageClient.tables.createTableAsync(
|
|
19
|
+
{ bucketId, ...body },
|
|
20
|
+
options?.abortSignal
|
|
21
|
+
);
|
|
74
22
|
return waitForJob(job, options);
|
|
75
23
|
};
|
|
76
24
|
const createTableDefinition = async (bucketId, body, options) => {
|
|
77
25
|
const job = await storageClient.tables.createTableDefinitionAsync(
|
|
78
|
-
bucketId,
|
|
79
|
-
body,
|
|
26
|
+
{ bucketId, ...body },
|
|
80
27
|
options?.abortSignal
|
|
81
28
|
);
|
|
82
29
|
return waitForJob(job, options);
|
|
83
30
|
};
|
|
84
31
|
const importFromFile = async (tableId, body, options) => {
|
|
85
|
-
const job = await storageClient.tables.importAsync(tableId, body, options?.abortSignal);
|
|
32
|
+
const job = await storageClient.tables.importAsync({ tableId, ...body }, options?.abortSignal);
|
|
86
33
|
return waitForJob(job, options);
|
|
87
34
|
};
|
|
88
35
|
const exportToFile = async (tableId, body, options) => {
|
|
89
|
-
const job = await storageClient.tables.exportAsync(tableId, body, options?.abortSignal);
|
|
36
|
+
const job = await storageClient.tables.exportAsync({ tableId, ...body }, options?.abortSignal);
|
|
90
37
|
return waitForJob(job, options);
|
|
91
38
|
};
|
|
92
|
-
const getBucketListing = async (bucketId, signal) => storageClient.buckets.getListing(bucketId, signal);
|
|
93
|
-
const listBucketListings = async (signal) => storageClient.buckets.listListings(signal);
|
|
94
39
|
const createBucketListing = async (bucketId, input, options) => {
|
|
95
|
-
const job = await storageClient.
|
|
40
|
+
const job = await storageClient.bucketListings.createListingAsync(
|
|
41
|
+
{ bucketId, ...input },
|
|
42
|
+
options?.abortSignal
|
|
43
|
+
);
|
|
96
44
|
return waitForJob(job, options);
|
|
97
45
|
};
|
|
98
46
|
const updateBucketListing = async (bucketId, input, options) => {
|
|
99
|
-
const job = await storageClient.
|
|
47
|
+
const job = await storageClient.bucketListings.updateListingAsync(
|
|
48
|
+
{ bucketId, ...input },
|
|
49
|
+
options?.abortSignal
|
|
50
|
+
);
|
|
100
51
|
return waitForJob(job, options);
|
|
101
52
|
};
|
|
102
53
|
const deleteBucketListing = async (bucketId, options) => {
|
|
103
|
-
const job = await storageClient.
|
|
54
|
+
const job = await storageClient.bucketListings.deleteListingAsync(
|
|
55
|
+
bucketId,
|
|
56
|
+
options?.abortSignal
|
|
57
|
+
);
|
|
104
58
|
return waitForJob(job, options);
|
|
105
59
|
};
|
|
106
|
-
const shareBucketToOrganization = async (
|
|
107
|
-
const job = await storageClient.
|
|
108
|
-
|
|
60
|
+
const shareBucketToOrganization = async (input, options) => {
|
|
61
|
+
const job = await storageClient.bucketSharing.shareBucketToOrganizationAsync(
|
|
62
|
+
input,
|
|
109
63
|
options?.abortSignal
|
|
110
64
|
);
|
|
111
65
|
return waitForJob(job, options);
|
|
112
66
|
};
|
|
113
|
-
const shareBucketToOrganizationProject = async (
|
|
114
|
-
const job = await storageClient.
|
|
115
|
-
|
|
67
|
+
const shareBucketToOrganizationProject = async (input, options) => {
|
|
68
|
+
const job = await storageClient.bucketSharing.shareBucketToOrganizationProjectAsync(
|
|
69
|
+
input,
|
|
116
70
|
options?.abortSignal
|
|
117
71
|
);
|
|
118
72
|
return waitForJob(job, options);
|
|
119
73
|
};
|
|
120
|
-
const shareBucketToProjects = async (
|
|
121
|
-
const job = await storageClient.
|
|
122
|
-
|
|
123
|
-
body,
|
|
74
|
+
const shareBucketToProjects = async (input, options) => {
|
|
75
|
+
const job = await storageClient.bucketSharing.shareBucketToProjectsAsync(
|
|
76
|
+
input,
|
|
124
77
|
options?.abortSignal
|
|
125
78
|
);
|
|
126
79
|
return waitForJob(job, options);
|
|
127
80
|
};
|
|
128
|
-
const shareBucketToUsers = async (
|
|
129
|
-
const job = await storageClient.
|
|
130
|
-
|
|
131
|
-
body,
|
|
81
|
+
const shareBucketToUsers = async (input, options) => {
|
|
82
|
+
const job = await storageClient.bucketSharing.shareBucketToUsersAsync(
|
|
83
|
+
input,
|
|
132
84
|
options?.abortSignal
|
|
133
85
|
);
|
|
134
86
|
return waitForJob(job, options);
|
|
135
87
|
};
|
|
136
|
-
const unshareBucket = async (
|
|
137
|
-
const job = await storageClient.
|
|
88
|
+
const unshareBucket = async (input, options) => {
|
|
89
|
+
const job = await storageClient.bucketSharing.unshareBucketAsync(input, options?.abortSignal);
|
|
138
90
|
return waitForJob(job, options);
|
|
139
91
|
};
|
|
140
|
-
const forceUnlinkBucket = async (
|
|
141
|
-
const job = await storageClient.
|
|
142
|
-
|
|
143
|
-
linkedProjectId,
|
|
92
|
+
const forceUnlinkBucket = async (input, options) => {
|
|
93
|
+
const job = await storageClient.bucketSharing.forceUnlinkBucketAsync(
|
|
94
|
+
input,
|
|
144
95
|
options?.abortSignal
|
|
145
96
|
);
|
|
146
97
|
return waitForJob(job, options);
|
|
147
98
|
};
|
|
148
99
|
const registerBucket = async (body, options) => {
|
|
149
|
-
const job = await storageClient.
|
|
100
|
+
const job = await storageClient.bucketExternal.registerBucketAsync(body, options?.abortSignal);
|
|
150
101
|
return waitForJob(job, options);
|
|
151
102
|
};
|
|
152
103
|
const refreshExternalBucket = async (bucketId, query, options) => {
|
|
153
|
-
const job = await storageClient.
|
|
154
|
-
bucketId,
|
|
155
|
-
query,
|
|
104
|
+
const job = await storageClient.bucketExternal.refreshExternalBucketAsync(
|
|
105
|
+
{ bucketId, ...query },
|
|
156
106
|
options?.abortSignal
|
|
157
107
|
);
|
|
158
108
|
return waitForJob(job, options);
|
|
159
109
|
};
|
|
160
|
-
const createSnapshot = async (
|
|
161
|
-
const job = await storageClient.
|
|
110
|
+
const createSnapshot = async (input, options) => {
|
|
111
|
+
const job = await storageClient.snapshots.createSnapshotAsync(input, options?.abortSignal);
|
|
162
112
|
return waitForJob(job, options);
|
|
163
113
|
};
|
|
164
|
-
const pullTable = async (
|
|
165
|
-
const job = await storageClient.tables.
|
|
114
|
+
const pullTable = async (input, options) => {
|
|
115
|
+
const job = await storageClient.tables.pullTableAsync(input, options?.abortSignal);
|
|
166
116
|
return waitForJob(job, options);
|
|
167
117
|
};
|
|
168
118
|
const addTableColumn = async (tableId, body, options) => {
|
|
169
|
-
const job = await storageClient.columns.
|
|
119
|
+
const job = await storageClient.columns.addTableColumnAsync(
|
|
120
|
+
{ id: tableId, ...body },
|
|
121
|
+
options?.abortSignal
|
|
122
|
+
);
|
|
170
123
|
return waitForJob(job, options);
|
|
171
124
|
};
|
|
172
125
|
const deleteTableColumn = async (tableId, columnName, query, options) => {
|
|
173
|
-
const job = await storageClient.columns.
|
|
174
|
-
tableId,
|
|
175
|
-
columnName,
|
|
176
|
-
query,
|
|
126
|
+
const job = await storageClient.columns.deleteTableColumnAsync(
|
|
127
|
+
{ tableId, columnName, ...query },
|
|
177
128
|
options?.abortSignal
|
|
178
129
|
);
|
|
179
130
|
return waitForJob(job, options);
|
|
180
131
|
};
|
|
181
132
|
const createTablePrimaryKey = async (tableId, body, options) => {
|
|
182
|
-
const job = await storageClient.columns.
|
|
183
|
-
tableId,
|
|
184
|
-
body,
|
|
133
|
+
const job = await storageClient.columns.createTablePrimaryKeyAsync(
|
|
134
|
+
{ tableId, ...body },
|
|
185
135
|
options?.abortSignal
|
|
186
136
|
);
|
|
187
137
|
return waitForJob(job, options);
|
|
188
138
|
};
|
|
189
139
|
const removeTablePrimaryKey = async (tableId, options) => {
|
|
190
|
-
const job = await storageClient.columns.
|
|
140
|
+
const job = await storageClient.columns.removeTablePrimaryKeyAsync(
|
|
141
|
+
tableId,
|
|
142
|
+
options?.abortSignal
|
|
143
|
+
);
|
|
191
144
|
return waitForJob(job, options);
|
|
192
145
|
};
|
|
193
146
|
return {
|
|
@@ -195,8 +148,6 @@ var createStorageSdk = ({ storageClient }) => {
|
|
|
195
148
|
createTableDefinition,
|
|
196
149
|
importFromFile,
|
|
197
150
|
exportToFile,
|
|
198
|
-
getBucketListing,
|
|
199
|
-
listBucketListings,
|
|
200
151
|
createBucketListing,
|
|
201
152
|
updateBucketListing,
|
|
202
153
|
deleteBucketListing,
|
|
@@ -345,6 +296,6 @@ var removeBranchFromUrl = (url) => {
|
|
|
345
296
|
return url.replace(regex, "");
|
|
346
297
|
};
|
|
347
298
|
|
|
348
|
-
export { FQID_TYPES,
|
|
349
|
-
//# sourceMappingURL=chunk-
|
|
350
|
-
//# sourceMappingURL=chunk-
|
|
299
|
+
export { FQID_TYPES, constructFQID, createStorageSdk, parse, parseCurrentDevBranchIdFromUrl, parseDevBranchId, parseFQID, prefixTagsWithDevBranchId, removeBranchFromUrl, tableIdParser };
|
|
300
|
+
//# sourceMappingURL=chunk-HGKDXF35.js.map
|
|
301
|
+
//# sourceMappingURL=chunk-HGKDXF35.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/sdks/storage/storageSdk.ts","../src/sdks/storage/tableIdParser.ts","../src/sdks/storage/fqid.ts","../src/sdks/storage/devBranch.ts"],"names":[],"mappings":";;;AAiCA,IAAM,qBAAA,GAAwB,GAAA;AAE9B,IAAM,qBAAA,uBAA4B,GAAA,CAAI,CAAC,WAAW,SAAA,EAAW,OAAA,EAAS,YAAA,EAAc,WAAW,CAAC,CAAA;AAYzF,IAAM,gBAAA,GAAmB,CAAC,EAAE,aAAA,EAAc,KAAyB;AACxE,EAAA,MAAM,UAAA,GAAa,OACjB,GAAA,EACA,OAAA,KACG;AACH,IAAA,MAAM,EAAE,IAAA,EAAK,GAAI,MAAM,IAAA,CAAK;AAAA,MAC1B,MAAA,EAAQ,CAAC,WAAA,KAAgB,aAAA,CAAc,KAAK,MAAA,CAAkB,GAAA,CAAI,IAAI,WAAW,CAAA;AAAA,MACjF,QAAQ,CAAC,CAAA,KAAM,qBAAA,CAAsB,GAAA,CAAI,EAAE,MAAM,CAAA;AAAA,MACjD,QAAA,EAAU,SAAS,QAAA,IAAY,qBAAA;AAAA,MAC/B,aAAa,OAAA,EAAS,WAAA;AAAA,MACtB,aAAa,OAAA,EAAS;AAAA,KACvB,CAAA;AAED,IAAA,OAAO,IAAA;AAAA,EACT,CAAA;AAEA,EAAA,MAAM,WAAA,GAAc,OAAO,QAAA,EAAkB,IAAA,EAA4B,OAAA,KAAsB;AAC7F,IAAA,MAAM,GAAA,GAAM,MAAM,aAAA,CAAc,MAAA,CAAO,gBAAA;AAAA,MACrC,EAAE,QAAA,EAAU,GAAG,IAAA,EAAK;AAAA,MACpB,OAAA,EAAS;AAAA,KACX;AACA,IAAA,OAAO,UAAA,CAAW,KAAK,OAAO,CAAA;AAAA,EAChC,CAAA;AAEA,EAAA,MAAM,qBAAA,GAAwB,OAC5B,QAAA,EACA,IAAA,EACA,OAAA,KACG;AACH,IAAA,MAAM,GAAA,GAAM,MAAM,aAAA,CAAc,MAAA,CAAO,0BAAA;AAAA,MACrC,EAAE,QAAA,EAAU,GAAG,IAAA,EAAK;AAAA,MACpB,OAAA,EAAS;AAAA,KACX;AACA,IAAA,OAAO,UAAA,CAAW,KAAK,OAAO,CAAA;AAAA,EAChC,CAAA;AAEA,EAAA,MAAM,cAAA,GAAiB,OAAO,OAAA,EAAiB,IAAA,EAA4B,OAAA,KAAsB;AAC/F,IAAA,MAAM,GAAA,GAAM,MAAM,aAAA,CAAc,MAAA,CAAO,WAAA,CAAY,EAAE,OAAA,EAAS,GAAG,IAAA,EAAK,EAAG,OAAA,EAAS,WAAW,CAAA;AAC7F,IAAA,OAAO,UAAA,CAAW,KAAK,OAAO,CAAA;AAAA,EAChC,CAAA;AAEA,EAAA,MAAM,YAAA,GAAe,OAAO,OAAA,EAAiB,IAAA,EAA6B,OAAA,KAAsB;AAC9F,IAAA,MAAM,GAAA,GAAM,MAAM,aAAA,CAAc,MAAA,CAAO,WAAA,CAAY,EAAE,OAAA,EAAS,GAAG,IAAA,EAAK,EAAG,OAAA,EAAS,WAAW,CAAA;AAC7F,IAAA,OAAO,UAAA,CAAW,KAAK,OAAO,CAAA;AAAA,EAChC,CAAA;AAEA,EAAA,MAAM,mBAAA,GAAsB,OAC1B,QAAA,EACA,KAAA,EACA,OAAA,KACG;AACH,IAAA,MAAM,GAAA,GAAM,MAAM,aAAA,CAAc,cAAA,CAAe,kBAAA;AAAA,MAC7C,EAAE,QAAA,EAAU,GAAG,KAAA,EAAM;AAAA,MACrB,OAAA,EAAS;AAAA,KACX;AACA,IAAA,OAAO,UAAA,CAAW,KAAK,OAAO,CAAA;AAAA,EAChC,CAAA;AAEA,EAAA,MAAM,mBAAA,GAAsB,OAC1B,QAAA,EACA,KAAA,EACA,OAAA,KACG;AACH,IAAA,MAAM,GAAA,GAAM,MAAM,aAAA,CAAc,cAAA,CAAe,kBAAA;AAAA,MAC7C,EAAE,QAAA,EAAU,GAAG,KAAA,EAAM;AAAA,MACrB,OAAA,EAAS;AAAA,KACX;AACA,IAAA,OAAO,UAAA,CAAW,KAAK,OAAO,CAAA;AAAA,EAChC,CAAA;AAEA,EAAA,MAAM,mBAAA,GAAsB,OAAO,QAAA,EAAkB,OAAA,KAAsB;AACzE,IAAA,MAAM,GAAA,GAAM,MAAM,aAAA,CAAc,cAAA,CAAe,kBAAA;AAAA,MAC7C,QAAA;AAAA,MACA,OAAA,EAAS;AAAA,KACX;AACA,IAAA,OAAO,UAAA,CAAW,KAAK,OAAO,CAAA;AAAA,EAChC,CAAA;AAEA,EAAA,MAAM,yBAAA,GAA4B,OAChC,KAAA,EACA,OAAA,KACG;AACH,IAAA,MAAM,GAAA,GAAM,MAAM,aAAA,CAAc,aAAA,CAAc,8BAAA;AAAA,MAC5C,KAAA;AAAA,MACA,OAAA,EAAS;AAAA,KACX;AACA,IAAA,OAAO,UAAA,CAAW,KAAK,OAAO,CAAA;AAAA,EAChC,CAAA;AAEA,EAAA,MAAM,gCAAA,GAAmC,OACvC,KAAA,EACA,OAAA,KACG;AACH,IAAA,MAAM,GAAA,GAAM,MAAM,aAAA,CAAc,aAAA,CAAc,qCAAA;AAAA,MAC5C,KAAA;AAAA,MACA,OAAA,EAAS;AAAA,KACX;AACA,IAAA,OAAO,UAAA,CAAW,KAAK,OAAO,CAAA;AAAA,EAChC,CAAA;AAEA,EAAA,MAAM,qBAAA,GAAwB,OAAO,KAAA,EAAmC,OAAA,KAAsB;AAC5F,IAAA,MAAM,GAAA,GAAM,MAAM,aAAA,CAAc,aAAA,CAAc,0BAAA;AAAA,MAC5C,KAAA;AAAA,MACA,OAAA,EAAS;AAAA,KACX;AACA,IAAA,OAAO,UAAA,CAAW,KAAK,OAAO,CAAA;AAAA,EAChC,CAAA;AAEA,EAAA,MAAM,kBAAA,GAAqB,OAAO,KAAA,EAAgC,OAAA,KAAsB;AACtF,IAAA,MAAM,GAAA,GAAM,MAAM,aAAA,CAAc,aAAA,CAAc,uBAAA;AAAA,MAC5C,KAAA;AAAA,MACA,OAAA,EAAS;AAAA,KACX;AACA,IAAA,OAAO,UAAA,CAAW,KAAK,OAAO,CAAA;AAAA,EAChC,CAAA;AAEA,EAAA,MAAM,aAAA,GAAgB,OAAO,KAAA,EAA2B,OAAA,KAAsB;AAC5E,IAAA,MAAM,MAAM,MAAM,aAAA,CAAc,cAAc,kBAAA,CAAmB,KAAA,EAAO,SAAS,WAAW,CAAA;AAC5F,IAAA,OAAO,UAAA,CAAW,KAAK,OAAO,CAAA;AAAA,EAChC,CAAA;AAEA,EAAA,MAAM,iBAAA,GAAoB,OAAO,KAAA,EAA+B,OAAA,KAAsB;AACpF,IAAA,MAAM,GAAA,GAAM,MAAM,aAAA,CAAc,aAAA,CAAc,sBAAA;AAAA,MAC5C,KAAA;AAAA,MACA,OAAA,EAAS;AAAA,KACX;AACA,IAAA,OAAO,UAAA,CAAW,KAAK,OAAO,CAAA;AAAA,EAChC,CAAA;AAEA,EAAA,MAAM,cAAA,GAAiB,OAAO,IAAA,EAA0B,OAAA,KAAsB;AAC5E,IAAA,MAAM,MAAM,MAAM,aAAA,CAAc,eAAe,mBAAA,CAAoB,IAAA,EAAM,SAAS,WAAW,CAAA;AAC7F,IAAA,OAAO,UAAA,CAAW,KAAK,OAAO,CAAA;AAAA,EAChC,CAAA;AAEA,EAAA,MAAM,qBAAA,GAAwB,OAC5B,QAAA,EACA,KAAA,EACA,OAAA,KACG;AACH,IAAA,MAAM,GAAA,GAAM,MAAM,aAAA,CAAc,cAAA,CAAe,0BAAA;AAAA,MAC7C,EAAE,QAAA,EAAU,GAAG,KAAA,EAAM;AAAA,MACrB,OAAA,EAAS;AAAA,KACX;AACA,IAAA,OAAO,UAAA,CAAW,KAAK,OAAO,CAAA;AAAA,EAChC,CAAA;AAEA,EAAA,MAAM,cAAA,GAAiB,OAAO,KAAA,EAA4B,OAAA,KAAsB;AAC9E,IAAA,MAAM,MAAM,MAAM,aAAA,CAAc,UAAU,mBAAA,CAAoB,KAAA,EAAO,SAAS,WAAW,CAAA;AACzF,IAAA,OAAO,UAAA,CAAW,KAAK,OAAO,CAAA;AAAA,EAChC,CAAA;AAEA,EAAA,MAAM,SAAA,GAAY,OAAO,KAAA,EAA4B,OAAA,KAAsB;AACzE,IAAA,MAAM,MAAM,MAAM,aAAA,CAAc,OAAO,cAAA,CAAe,KAAA,EAAO,SAAS,WAAW,CAAA;AACjF,IAAA,OAAO,UAAA,CAAW,KAAK,OAAO,CAAA;AAAA,EAChC,CAAA;AAEA,EAAA,MAAM,cAAA,GAAiB,OAAO,OAAA,EAAiB,IAAA,EAA0B,OAAA,KAAsB;AAC7F,IAAA,MAAM,GAAA,GAAM,MAAM,aAAA,CAAc,OAAA,CAAQ,mBAAA;AAAA,MACtC,EAAE,EAAA,EAAI,OAAA,EAAS,GAAG,IAAA,EAAK;AAAA,MACvB,OAAA,EAAS;AAAA,KACX;AACA,IAAA,OAAO,UAAA,CAAW,KAAK,OAAO,CAAA;AAAA,EAChC,CAAA;AAEA,EAAA,MAAM,iBAAA,GAAoB,OACxB,OAAA,EACA,UAAA,EACA,OACA,OAAA,KACG;AACH,IAAA,MAAM,GAAA,GAAM,MAAM,aAAA,CAAc,OAAA,CAAQ,sBAAA;AAAA,MACtC,EAAE,OAAA,EAAS,UAAA,EAAY,GAAG,KAAA,EAAM;AAAA,MAChC,OAAA,EAAS;AAAA,KACX;AACA,IAAA,OAAO,UAAA,CAAW,KAAK,OAAO,CAAA;AAAA,EAChC,CAAA;AAEA,EAAA,MAAM,qBAAA,GAAwB,OAC5B,OAAA,EACA,IAAA,EACA,OAAA,KACG;AACH,IAAA,MAAM,GAAA,GAAM,MAAM,aAAA,CAAc,OAAA,CAAQ,0BAAA;AAAA,MACtC,EAAE,OAAA,EAAS,GAAG,IAAA,EAAK;AAAA,MACnB,OAAA,EAAS;AAAA,KACX;AACA,IAAA,OAAO,UAAA,CAAW,KAAK,OAAO,CAAA;AAAA,EAChC,CAAA;AAEA,EAAA,MAAM,qBAAA,GAAwB,OAAO,OAAA,EAAiB,OAAA,KAAsB;AAC1E,IAAA,MAAM,GAAA,GAAM,MAAM,aAAA,CAAc,OAAA,CAAQ,0BAAA;AAAA,MACtC,OAAA;AAAA,MACA,OAAA,EAAS;AAAA,KACX;AACA,IAAA,OAAO,UAAA,CAAW,KAAK,OAAO,CAAA;AAAA,EAChC,CAAA;AAEA,EAAA,OAAO;AAAA,IACL,WAAA;AAAA,IACA,qBAAA;AAAA,IACA,cAAA;AAAA,IACA,YAAA;AAAA,IACA,mBAAA;AAAA,IACA,mBAAA;AAAA,IACA,mBAAA;AAAA,IACA,yBAAA;AAAA,IACA,gCAAA;AAAA,IACA,qBAAA;AAAA,IACA,kBAAA;AAAA,IACA,aAAA;AAAA,IACA,iBAAA;AAAA,IACA,cAAA;AAAA,IACA,qBAAA;AAAA,IACA,cAAA;AAAA,IACA,SAAA;AAAA,IACA,cAAA;AAAA,IACA,iBAAA;AAAA,IACA,qBAAA;AAAA,IACA;AAAA,GACF;AACF;;;AC3QA,SAAS,YAAA,CAAa,OAAA,EAAiB,YAAA,EAAsB,aAAA,EAAuB;AAClF,EAAA,MAAM,KAAA,GAAQ,OAAA,CAAQ,KAAA,CAAM,2BAA2B,CAAA;AAEvD,EAAA,OAAO;AAAA,IACL,KAAA,EAAO,KAAA,GAAQ,KAAA,CAAM,CAAC,KAAK,YAAA,GAAe,YAAA;AAAA,IAC1C,MAAA,EAAQ,KAAA,GAAQ,KAAA,CAAM,CAAC,KAAK,aAAA,GAAgB,aAAA;AAAA,IAC5C,KAAA,EAAO,KAAA,GAAQ,KAAA,CAAM,CAAC,KAAK,EAAA,GAAK;AAAA,GAClC;AACF;AAEO,SAAS,KAAA,CACd,OAAA,EACA,OAAA,GAA6D,EAAC,EAC9D;AACA,EAAA,MAAM,KAAA,GAAQ,YAAA;AAAA,IACZ,OAAA,IAAW,EAAA;AAAA,IACX,QAAQ,YAAA,IAAgB,EAAA;AAAA,IACxB,QAAQ,aAAA,IAAiB;AAAA,GAC3B;AAEA,EAAA,MAAM,EAAE,KAAA,EAAO,MAAA,EAAQ,KAAA,EAAM,GAAI,KAAA;AACjC,EAAA,OAAO;AAAA,IACL,SAAS,CAAA,EAAG,KAAK,CAAA,CAAA,EAAI,MAAM,IAAI,KAAK,CAAA,CAAA;AAAA,IACpC,KAAA;AAAA,IACA,OAAA,EAAS,CAAC,aAAA,EAAuB,KAAA,KAAkB;AACjD,MAAA,MAAM,MAAA,GAAU,CAAC,OAAA,EAAS,QAAA,EAAU,OAAO,CAAA,CACxC,MAAA;AAAA,QACC,CAAC,IAAA,EAAM,QAAA,KACL,QAAA,KAAa,gBAAgB,CAAA,EAAG,IAAI,CAAA,CAAA,EAAI,KAAK,KAAK,CAAA,EAAG,IAAI,CAAA,CAAA,EAAI,KAAA,CAAM,QAAQ,CAAC,CAAA,CAAA;AAAA,QAC9E;AAAA,OACF,CACC,MAAM,CAAC,CAAA;AACV,MAAA,OAAO,MAAM,MAAM,CAAA;AAAA,IACrB;AAAA,GACF;AACF;AAEO,IAAM,aAAA,GAAgB,EAAE,KAAA;;;ACrCxB,IAAM,UAAA,GAAa;AAAA,EACxB,YAAA,EAAc,KAAA;AAAA,EACd,UAAA,EAAY,KAAA;AAAA,EACZ,OAAA,EAAS,KAAA;AAAA,EACT,MAAA,EAAQ,KAAA;AAAA,EACR,KAAA,EAAO,KAAA;AAAA,EACP,MAAA,EAAQ,KAAA;AAAA,EACR,MAAA,EAAQ,KAAA;AAAA,EACR,SAAA,EAAW,KAAA;AAAA,EACX,aAAA,EAAe,QAAA;AAAA,EACf,cAAA,EAAgB;AAClB;AAgBA,IAAM,UAAA,GAAa,CAAC,KAAA,KAAuD;AACzE,EAAA,OAAO,MAAA,CAAO,MAAA,CAAO,UAAU,CAAA,CAAE,SAAS,KAAmC,CAAA;AAC/E,CAAA;AAEA,IAAM,SAAA,GAAY,CAAC,IAAA,KAAsD;AACvE,EAAA,IAAI,CAAC,IAAA,EAAM,IAAA,EAAK,SAAU,EAAC;AAE3B,EAAA,MAAM,eAAe,IAAA,CAAK,KAAA,CAAM,GAAG,CAAA,CAAE,CAAC,CAAA,IAAK,EAAA;AAC3C,EAAA,MAAM,CAAC,IAAA,EAAM,GAAG,IAAI,CAAA,GAAI,YAAA,CAAa,MAAM,GAAG,CAAA;AAE9C,EAAA,IAAI,CAAC,IAAA,IAAQ,CAAC,WAAW,IAAI,CAAA,SAAU,EAAC;AAExC,EAAA,QAAQ,IAAA;AAAM,IACZ,KAAK,KAAA;AACH,MAAA,OAAO,EAAE,IAAA,EAAM,cAAA,EAAgB,IAAA,CAAK,CAAC,CAAA,EAAE;AAAA,IACzC,KAAK,KAAA;AACH,MAAA,OAAO,EAAE,IAAA,EAAM,YAAA,EAAc,IAAA,CAAK,CAAC,CAAA,EAAE;AAAA,IACvC,KAAK,KAAA;AACH,MAAA,OAAO,EAAE,IAAA,EAAM,SAAA,EAAW,IAAA,CAAK,CAAC,CAAA,EAAE;AAAA,IACpC,KAAK,KAAA;AACH,MAAA,OAAO,EAAE,MAAM,SAAA,EAAW,IAAA,CAAK,CAAC,CAAA,EAAG,QAAA,EAAU,IAAA,CAAK,CAAC,CAAA,EAAE;AAAA,IACvD,KAAK,KAAA;AACH,MAAA,OAAO,EAAE,MAAM,SAAA,EAAW,IAAA,CAAK,CAAC,CAAA,EAAG,OAAA,EAAS,IAAA,CAAK,CAAC,CAAA,EAAE;AAAA,IACtD,KAAK,KAAA;AACH,MAAA,OAAO,EAAE,IAAA,EAAM,SAAA,EAAW,IAAA,CAAK,CAAC,CAAA,EAAG,OAAA,EAAS,IAAA,CAAK,CAAC,CAAA,EAAG,MAAA,EAAQ,IAAA,CAAK,CAAC,CAAA,EAAE;AAAA,IACvE,KAAK,KAAA;AACH,MAAA,OAAO,EAAE,MAAM,SAAA,EAAW,IAAA,CAAK,CAAC,CAAA,EAAG,WAAA,EAAa,IAAA,CAAK,CAAC,CAAA,EAAE;AAAA,IAC1D,KAAK,KAAA;AACH,MAAA,OAAO,EAAE,IAAA,EAAM,SAAA,EAAW,IAAA,CAAK,CAAC,CAAA,EAAG,WAAA,EAAa,IAAA,CAAK,CAAC,CAAA,EAAG,QAAA,EAAU,IAAA,CAAK,CAAC,CAAA,EAAE;AAAA,IAC7E;AACE,MAAA,OAAO,EAAC;AAAA;AAEd;AAoCA,IAAM,aAAA,GAAgB,CAAC,EAAE,IAAA,EAAM,MAAK,KAAgB;AAClD,EAAA,QAAQ,IAAA;AAAM,IACZ,KAAK,UAAA,CAAW,YAAA;AACd,MAAA,OAAO,CAAA,IAAA,EAAO,KAAK,cAAc,CAAA,CAAA;AAAA,IACnC,KAAK,UAAA,CAAW,UAAA;AACd,MAAA,OAAO,CAAA,IAAA,EAAO,KAAK,YAAY,CAAA,CAAA;AAAA,IACjC,KAAK,UAAA,CAAW,OAAA;AACd,MAAA,OAAO,CAAA,IAAA,EAAO,KAAK,SAAS,CAAA,CAAA;AAAA,IAC9B,KAAK,UAAA,CAAW,MAAA;AACd,MAAA,OAAO,CAAA,IAAA,EAAO,IAAA,CAAK,SAAS,CAAA,CAAA,EAAI,KAAK,QAAQ,CAAA,CAAA;AAAA,IAC/C,KAAK,UAAA,CAAW,KAAA;AACd,MAAA,OAAO,CAAA,IAAA,EAAO,IAAA,CAAK,SAAS,CAAA,CAAA,EAAI,KAAK,OAAO,CAAA,CAAA;AAAA,IAC9C,KAAK,UAAA,CAAW,MAAA;AACd,MAAA,OAAO,CAAA,IAAA,EAAO,KAAK,SAAS,CAAA,CAAA,EAAI,KAAK,OAAO,CAAA,CAAA,EAAI,KAAK,MAAM,CAAA,CAAA;AAAA,IAC7D,KAAK,UAAA,CAAW,SAAA;AACd,MAAA,OAAO,CAAA,IAAA,EAAO,IAAA,CAAK,SAAS,CAAA,CAAA,EAAI,KAAK,WAAW,CAAA,CAAA;AAAA,IAClD,KAAK,UAAA,CAAW,MAAA;AACd,MAAA,OAAO,CAAA,IAAA,EAAO,KAAK,SAAS,CAAA,CAAA,EAAI,KAAK,WAAW,CAAA,CAAA,EAAI,KAAK,QAAQ,CAAA,CAAA;AAAA;AAEvE;;;AClHO,IAAM,gBAAA,GAAmB,CAAC,IAAA,KAAgC;AAC/D,EAAA,MAAM,SAAA,GAAY,IAAA,CAAK,KAAA,CAAM,GAAG,CAAA;AAChC,EAAA,MAAM,qBAAqB,SAAA,CAAU,SAAA,CAAU,CAAC,QAAA,KAAa,aAAa,QAAQ,CAAA;AAClF,EAAA,IAAI,uBAAuB,EAAA,EAAI;AAC7B,IAAA,OAAO,IAAA;AAAA,EACT;AACA,EAAA,MAAM,QAAA,GAAW,SAAA,CAAU,kBAAA,GAAqB,CAAC,CAAA;AACjD,EAAA,IAAI,CAAC,QAAA,EAAU;AACb,IAAA,OAAO,IAAA;AAAA,EACT;AACA,EAAA,MAAM,WAAA,GAAc,QAAA,CAAS,QAAA,EAAU,EAAE,CAAA;AACzC,EAAA,IAAI,OAAA,CAAQ,IAAA,CAAK,QAAQ,CAAA,IAAK,cAAc,CAAA,EAAG;AAC7C,IAAA,OAAO,WAAA;AAAA,EACT;AACA,EAAA,OAAO,IAAA;AACT;AAEO,IAAM,iCAAiC,MAAqB;AACjE,EAAA,IAAI,OAAO,aAAa,WAAA,EAAa;AACnC,IAAA,OAAO,IAAA;AAAA,EACT;AACA,EAAA,OAAO,gBAAA,CAAiB,SAAS,QAAQ,CAAA;AAC3C;AAMO,IAAM,4BAA4B,CACvC,IAAA,EACA,WAAmC,IAAA,EACnC,OAAA,GAA6B,EAAC,KACjB;AACb,EAAA,IAAI,CAAC,QAAA,IAAY,OAAA,CAAQ,kBAAA,EAAoB;AAC3C,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,OAAO,IAAA,CAAK,IAAI,CAAC,GAAA,KAAQ,GAAG,QAAQ,CAAA,CAAA,EAAI,GAAG,CAAA,CAAE,CAAA;AAC/C;AAEO,IAAM,mBAAA,GAAsB,CAAC,GAAA,KAAwB;AAC1D,EAAA,MAAM,YAAA,GAAe,cAAA;AACrB,EAAA,MAAM,KAAA,GAAQ,IAAI,MAAA,CAAO,YAAA,EAAc,GAAG,CAAA;AAE1C,EAAA,OAAO,GAAA,CAAI,OAAA,CAAQ,KAAA,EAAO,EAAE,CAAA;AAC9B","file":"chunk-HGKDXF35.js","sourcesContent":["import type { createStorageClient } from '../../clients/storage';\nimport type {\n RefreshExternalBucketQuery,\n RegisterBucketBody,\n} from '../../clients/storage/bucketExternal/types';\nimport type {\n CreateBucketListingBody,\n UpdateBucketListingBody,\n} from '../../clients/storage/bucketListings/types';\nimport type {\n ForceUnlinkBucketInput,\n ShareBucketToOrganizationInput,\n ShareBucketToOrganizationProjectInput,\n ShareBucketToProjectsInput,\n ShareBucketToUsersInput,\n UnshareBucketInput,\n} from '../../clients/storage/bucketSharing/types';\nimport type {\n AddTableColumnBody,\n CreateTablePrimaryKeyBody,\n DeleteTableColumnQuery,\n} from '../../clients/storage/columns/types';\nimport type { Job, JobOperation } from '../../clients/storage/jobs/types';\nimport type { CreateSnapshotInput } from '../../clients/storage/snapshots/types';\nimport type {\n CreateTableAsyncBody,\n CreateTableDefinitionBody,\n PullTableAsyncInput,\n TableExportAsyncBody,\n TableImportAsyncBody,\n} from '../../clients/storage/tables/types';\nimport { poll } from '../../utils';\n\nconst DEFAULT_POLL_INTERVAL = 2000;\n\nconst JOB_TERMINAL_STATUSES = new Set(['success', 'warning', 'error', 'terminated', 'cancelled']);\n\ntype Options = {\n interval?: number;\n maxAttempts?: number;\n abortSignal?: AbortSignal;\n};\n\ntype StorageSdkOptions = {\n storageClient: ReturnType<typeof createStorageClient>;\n};\n\nexport const createStorageSdk = ({ storageClient }: StorageSdkOptions) => {\n const waitForJob = async <Operation extends JobOperation | string>(\n job: Job<Operation> & { operationName: Operation },\n options?: Options,\n ) => {\n const { data } = await poll({\n pollFn: (abortSignal) => storageClient.jobs.getJob<Operation>(job.id, abortSignal),\n isDone: (j) => JOB_TERMINAL_STATUSES.has(j.status),\n interval: options?.interval ?? DEFAULT_POLL_INTERVAL,\n maxAttempts: options?.maxAttempts,\n abortSignal: options?.abortSignal,\n });\n\n return data;\n };\n\n const createTable = async (bucketId: string, body: CreateTableAsyncBody, options?: Options) => {\n const job = await storageClient.tables.createTableAsync(\n { bucketId, ...body },\n options?.abortSignal,\n );\n return waitForJob(job, options);\n };\n\n const createTableDefinition = async (\n bucketId: string,\n body: CreateTableDefinitionBody,\n options?: Options,\n ) => {\n const job = await storageClient.tables.createTableDefinitionAsync(\n { bucketId, ...body },\n options?.abortSignal,\n );\n return waitForJob(job, options);\n };\n\n const importFromFile = async (tableId: string, body: TableImportAsyncBody, options?: Options) => {\n const job = await storageClient.tables.importAsync({ tableId, ...body }, options?.abortSignal);\n return waitForJob(job, options);\n };\n\n const exportToFile = async (tableId: string, body?: TableExportAsyncBody, options?: Options) => {\n const job = await storageClient.tables.exportAsync({ tableId, ...body }, options?.abortSignal);\n return waitForJob(job, options);\n };\n\n const createBucketListing = async (\n bucketId: string,\n input: CreateBucketListingBody,\n options?: Options,\n ) => {\n const job = await storageClient.bucketListings.createListingAsync(\n { bucketId, ...input },\n options?.abortSignal,\n );\n return waitForJob(job, options);\n };\n\n const updateBucketListing = async (\n bucketId: string,\n input: UpdateBucketListingBody,\n options?: Options,\n ) => {\n const job = await storageClient.bucketListings.updateListingAsync(\n { bucketId, ...input },\n options?.abortSignal,\n );\n return waitForJob(job, options);\n };\n\n const deleteBucketListing = async (bucketId: string, options?: Options) => {\n const job = await storageClient.bucketListings.deleteListingAsync(\n bucketId,\n options?.abortSignal,\n );\n return waitForJob(job, options);\n };\n\n const shareBucketToOrganization = async (\n input: ShareBucketToOrganizationInput,\n options?: Options,\n ) => {\n const job = await storageClient.bucketSharing.shareBucketToOrganizationAsync(\n input,\n options?.abortSignal,\n );\n return waitForJob(job, options);\n };\n\n const shareBucketToOrganizationProject = async (\n input: ShareBucketToOrganizationProjectInput,\n options?: Options,\n ) => {\n const job = await storageClient.bucketSharing.shareBucketToOrganizationProjectAsync(\n input,\n options?.abortSignal,\n );\n return waitForJob(job, options);\n };\n\n const shareBucketToProjects = async (input: ShareBucketToProjectsInput, options?: Options) => {\n const job = await storageClient.bucketSharing.shareBucketToProjectsAsync(\n input,\n options?.abortSignal,\n );\n return waitForJob(job, options);\n };\n\n const shareBucketToUsers = async (input: ShareBucketToUsersInput, options?: Options) => {\n const job = await storageClient.bucketSharing.shareBucketToUsersAsync(\n input,\n options?.abortSignal,\n );\n return waitForJob(job, options);\n };\n\n const unshareBucket = async (input: UnshareBucketInput, options?: Options) => {\n const job = await storageClient.bucketSharing.unshareBucketAsync(input, options?.abortSignal);\n return waitForJob(job, options);\n };\n\n const forceUnlinkBucket = async (input: ForceUnlinkBucketInput, options?: Options) => {\n const job = await storageClient.bucketSharing.forceUnlinkBucketAsync(\n input,\n options?.abortSignal,\n );\n return waitForJob(job, options);\n };\n\n const registerBucket = async (body: RegisterBucketBody, options?: Options) => {\n const job = await storageClient.bucketExternal.registerBucketAsync(body, options?.abortSignal);\n return waitForJob(job, options);\n };\n\n const refreshExternalBucket = async (\n bucketId: string,\n query?: RefreshExternalBucketQuery,\n options?: Options,\n ) => {\n const job = await storageClient.bucketExternal.refreshExternalBucketAsync(\n { bucketId, ...query },\n options?.abortSignal,\n );\n return waitForJob(job, options);\n };\n\n const createSnapshot = async (input: CreateSnapshotInput, options?: Options) => {\n const job = await storageClient.snapshots.createSnapshotAsync(input, options?.abortSignal);\n return waitForJob(job, options);\n };\n\n const pullTable = async (input: PullTableAsyncInput, options?: Options) => {\n const job = await storageClient.tables.pullTableAsync(input, options?.abortSignal);\n return waitForJob(job, options);\n };\n\n const addTableColumn = async (tableId: string, body: AddTableColumnBody, options?: Options) => {\n const job = await storageClient.columns.addTableColumnAsync(\n { id: tableId, ...body },\n options?.abortSignal,\n );\n return waitForJob(job, options);\n };\n\n const deleteTableColumn = async (\n tableId: string,\n columnName: string,\n query?: DeleteTableColumnQuery,\n options?: Options,\n ) => {\n const job = await storageClient.columns.deleteTableColumnAsync(\n { tableId, columnName, ...query },\n options?.abortSignal,\n );\n return waitForJob(job, options);\n };\n\n const createTablePrimaryKey = async (\n tableId: string,\n body: CreateTablePrimaryKeyBody,\n options?: Options,\n ) => {\n const job = await storageClient.columns.createTablePrimaryKeyAsync(\n { tableId, ...body },\n options?.abortSignal,\n );\n return waitForJob(job, options);\n };\n\n const removeTablePrimaryKey = async (tableId: string, options?: Options) => {\n const job = await storageClient.columns.removeTablePrimaryKeyAsync(\n tableId,\n options?.abortSignal,\n );\n return waitForJob(job, options);\n };\n\n return {\n createTable,\n createTableDefinition,\n importFromFile,\n exportToFile,\n createBucketListing,\n updateBucketListing,\n deleteBucketListing,\n shareBucketToOrganization,\n shareBucketToOrganizationProject,\n shareBucketToProjects,\n shareBucketToUsers,\n unshareBucket,\n forceUnlinkBucket,\n registerBucket,\n refreshExternalBucket,\n createSnapshot,\n pullTable,\n addTableColumn,\n deleteTableColumn,\n createTablePrimaryKey,\n removeTablePrimaryKey,\n };\n};\n","function parseTableId(tableId: string, defaultStage: string, defaultBucket: string) {\n const parts = tableId.match(/^(in|out)?\\.(.+)?\\.(.+)?$/);\n\n return {\n stage: parts ? parts[1] || defaultStage : defaultStage,\n bucket: parts ? parts[2] || defaultBucket : defaultBucket,\n table: parts ? parts[3] || '' : '',\n };\n}\n\nexport function parse(\n tableId: string | null,\n options: { defaultStage?: string; defaultBucket?: string } = {},\n) {\n const parts = parseTableId(\n tableId || '',\n options.defaultStage || '',\n options.defaultBucket || '',\n );\n\n const { stage, bucket, table } = parts;\n return {\n tableId: `${stage}.${bucket}.${table}`,\n parts,\n setPart: (partNameToSet: string, value: string) => {\n const result = (['stage', 'bucket', 'table'] as const)\n .reduce(\n (memo, partName) =>\n partName === partNameToSet ? `${memo}.${value}` : `${memo}.${parts[partName]}`,\n '',\n )\n .slice(1);\n return parse(result);\n },\n };\n}\n\nexport const tableIdParser = { parse };\n","export const FQID_TYPES = {\n organization: 'ORG',\n maintainer: 'MTR',\n project: 'PRJ',\n bucket: 'BCT',\n table: 'TBL',\n column: 'COL',\n config: 'CFG',\n component: 'CMP',\n externalTable: 'EX_TBL',\n externalColumn: 'EX_COL',\n} as const;\n\ntype FQIDTypes = typeof FQID_TYPES;\n\nexport type ParsedFQID = {\n type?: (typeof FQID_TYPES)[keyof typeof FQID_TYPES];\n organizationId?: string;\n maintainerId?: string;\n projectId?: string;\n bucketId?: string;\n tableId?: string;\n componentId?: string;\n configId?: string;\n column?: string;\n};\n\nconst isFQIDType = (value: string): value is FQIDTypes[keyof FQIDTypes] => {\n return Object.values(FQID_TYPES).includes(value as FQIDTypes[keyof FQIDTypes]);\n};\n\nconst parseFQID = (fqid?: string): ParsedFQID | Record<string, never> => {\n if (!fqid?.trim()) return {};\n\n const firstSegment = fqid.split(' ')[0] ?? '';\n const [type, ...rest] = firstSegment.split('/');\n\n if (!type || !isFQIDType(type)) return {};\n\n switch (type) {\n case 'ORG':\n return { type, organizationId: rest[0] };\n case 'MTR':\n return { type, maintainerId: rest[0] };\n case 'PRJ':\n return { type, projectId: rest[0] };\n case 'BCT':\n return { type, projectId: rest[0], bucketId: rest[1] };\n case 'TBL':\n return { type, projectId: rest[0], tableId: rest[1] };\n case 'COL':\n return { type, projectId: rest[0], tableId: rest[1], column: rest[2] };\n case 'CMP':\n return { type, projectId: rest[0], componentId: rest[1] };\n case 'CFG':\n return { type, projectId: rest[0], componentId: rest[1], configId: rest[2] };\n default:\n return {};\n }\n};\n\ntype FQIDData =\n | {\n type: FQIDTypes['organization'];\n data: { organizationId: string };\n }\n | {\n type: FQIDTypes['maintainer'];\n data: { maintainerId: string };\n }\n | {\n type: FQIDTypes['project'];\n data: { projectId: string };\n }\n | {\n type: FQIDTypes['bucket'];\n data: { projectId: string; bucketId: string };\n }\n | {\n type: FQIDTypes['table'];\n data: { projectId: string; tableId: string };\n }\n | {\n type: FQIDTypes['column'];\n data: { projectId: string; tableId: string; column: string };\n }\n | {\n type: FQIDTypes['component'];\n data: { projectId: string; componentId: string };\n }\n | {\n type: FQIDTypes['config'];\n data: { projectId: string; componentId: string; configId: string };\n };\n\nconst constructFQID = ({ type, data }: FQIDData) => {\n switch (type) {\n case FQID_TYPES.organization:\n return `ORG/${data.organizationId}`;\n case FQID_TYPES.maintainer:\n return `MTR/${data.maintainerId}`;\n case FQID_TYPES.project:\n return `PRJ/${data.projectId}`;\n case FQID_TYPES.bucket:\n return `BCT/${data.projectId}/${data.bucketId}`;\n case FQID_TYPES.table:\n return `TBL/${data.projectId}/${data.tableId}`;\n case FQID_TYPES.column:\n return `COL/${data.projectId}/${data.tableId}/${data.column}`;\n case FQID_TYPES.component:\n return `CMP/${data.projectId}/${data.componentId}`;\n case FQID_TYPES.config:\n return `CFG/${data.projectId}/${data.componentId}/${data.configId}`;\n }\n};\n\nexport { parseFQID, constructFQID };\n","export const parseDevBranchId = (path: string): number | null => {\n const pathParts = path.split('/');\n const branchKeywordIndex = pathParts.findIndex((pathPart) => pathPart === 'branch');\n if (branchKeywordIndex === -1) {\n return null;\n }\n const branchId = pathParts[branchKeywordIndex + 1];\n if (!branchId) {\n return null;\n }\n const branchIdInt = parseInt(branchId, 10);\n if (/^\\d+$/.test(branchId) && branchIdInt > 0) {\n return branchIdInt;\n }\n return null;\n};\n\nexport const parseCurrentDevBranchIdFromUrl = (): number | null => {\n if (typeof location === 'undefined') {\n return null;\n }\n return parseDevBranchId(location.pathname);\n};\n\ntype PrefixTagsOptions = {\n hasStorageBranches?: boolean;\n};\n\nexport const prefixTagsWithDevBranchId = (\n tags: string[],\n branchId: number | string | null = null,\n options: PrefixTagsOptions = {},\n): string[] => {\n if (!branchId || options.hasStorageBranches) {\n return tags;\n }\n\n return tags.map((tag) => `${branchId}-${tag}`);\n};\n\nexport const removeBranchFromUrl = (url: string): string => {\n const partToRemove = 'branch/\\\\d+/'; // This pattern matches \"branch/\" followed by one or more digits\n const regex = new RegExp(partToRemove, 'g');\n\n return url.replace(regex, '');\n};\n"]}
|