@metabase/client 0.0.0-stage → 0.1.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.
Files changed (323) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/LICENSE +661 -0
  3. package/README.md +488 -2
  4. package/dist/auth/credential.d.ts +2 -0
  5. package/dist/auth/credential.js +61 -0
  6. package/dist/auth/oauth-login.d.ts +2 -0
  7. package/dist/auth/oauth-login.js +2 -0
  8. package/dist/auth/oauth-session.d.ts +2 -0
  9. package/dist/auth/oauth-session.js +31 -0
  10. package/dist/card-B6merEUN.d.ts +1392 -0
  11. package/dist/card-BZx4NSr-.d.ts +33 -0
  12. package/dist/client-DNRvXFRm.d.ts +3276 -0
  13. package/dist/client.d.ts +2 -0
  14. package/dist/client.js +95 -0
  15. package/dist/collection-Bib61WiV.d.ts +294 -0
  16. package/dist/collection-CqtGPi4W.d.ts +39 -0
  17. package/dist/content-translation-zfUkE_OG.d.ts +8 -0
  18. package/dist/credential-6aOEGqMH.d.ts +30 -0
  19. package/dist/cron-DThzerR6.d.ts +9 -0
  20. package/dist/csv-upload--K35QedP.d.ts +8 -0
  21. package/dist/dashboard-XTe46250.d.ts +38 -0
  22. package/dist/dashboard-z9i1VUZC.d.ts +970 -0
  23. package/dist/data-action-rS27f2Ji.d.ts +95 -0
  24. package/dist/database-BLUMlywE.d.ts +997 -0
  25. package/dist/database-DqTespfa.d.ts +27 -0
  26. package/dist/dataset-C6lX1-cr.d.ts +4144 -0
  27. package/dist/dataset-Cj3XuKLe.d.ts +23 -0
  28. package/dist/dependency-D8Qs5Xdx.d.ts +827 -0
  29. package/dist/dependency-fN5_7a22.d.ts +299 -0
  30. package/dist/document-oZNDbDfx.d.ts +115 -0
  31. package/dist/domain/card.d.ts +2 -0
  32. package/dist/domain/card.js +140 -0
  33. package/dist/domain/collection.d.ts +2 -0
  34. package/dist/domain/collection.js +137 -0
  35. package/dist/domain/content-translation.d.ts +2 -0
  36. package/dist/domain/content-translation.js +5 -0
  37. package/dist/domain/cron.d.ts +2 -0
  38. package/dist/domain/cron.js +5 -0
  39. package/dist/domain/dashboard.d.ts +2 -0
  40. package/dist/domain/dashboard.js +194 -0
  41. package/dist/domain/data-action.d.ts +2 -0
  42. package/dist/domain/data-action.js +85 -0
  43. package/dist/domain/database.d.ts +2 -0
  44. package/dist/domain/database.js +56 -0
  45. package/dist/domain/dataset.d.ts +2 -0
  46. package/dist/domain/dataset.js +56 -0
  47. package/dist/domain/dependency.d.ts +2 -0
  48. package/dist/domain/dependency.js +165 -0
  49. package/dist/domain/document.d.ts +2 -0
  50. package/dist/domain/document.js +94 -0
  51. package/dist/domain/eid-translation.d.ts +2 -0
  52. package/dist/domain/eid-translation.js +36 -0
  53. package/dist/domain/embedding.d.ts +2 -0
  54. package/dist/domain/embedding.js +9 -0
  55. package/dist/domain/erd.d.ts +2 -0
  56. package/dist/domain/erd.js +45 -0
  57. package/dist/domain/field.d.ts +2 -0
  58. package/dist/domain/field.js +268 -0
  59. package/dist/domain/git-sync.d.ts +2 -0
  60. package/dist/domain/git-sync.js +147 -0
  61. package/dist/domain/glossary.d.ts +2 -0
  62. package/dist/domain/glossary.js +30 -0
  63. package/dist/domain/library.d.ts +2 -0
  64. package/dist/domain/library.js +83 -0
  65. package/dist/domain/measure.d.ts +2 -0
  66. package/dist/domain/measure.js +41 -0
  67. package/dist/domain/metric.d.ts +2 -0
  68. package/dist/domain/metric.js +139 -0
  69. package/dist/domain/moderation-review.d.ts +2 -0
  70. package/dist/domain/moderation-review.js +31 -0
  71. package/dist/domain/notification.d.ts +2 -0
  72. package/dist/domain/notification.js +138 -0
  73. package/dist/domain/parameter.d.ts +2 -0
  74. package/dist/domain/parameter.js +109 -0
  75. package/dist/domain/permission.d.ts +2 -0
  76. package/dist/domain/permission.js +36 -0
  77. package/dist/domain/pulse.d.ts +2 -0
  78. package/dist/domain/pulse.js +133 -0
  79. package/dist/domain/query.d.ts +2 -0
  80. package/dist/domain/query.js +13 -0
  81. package/dist/domain/replacement.d.ts +2 -0
  82. package/dist/domain/replacement.js +93 -0
  83. package/dist/domain/revision.d.ts +2 -0
  84. package/dist/domain/revision.js +63 -0
  85. package/dist/domain/search.d.ts +2 -0
  86. package/dist/domain/search.js +63 -0
  87. package/dist/domain/segment.d.ts +2 -0
  88. package/dist/domain/segment.js +44 -0
  89. package/dist/domain/session-properties.d.ts +2 -0
  90. package/dist/domain/session-properties.js +14 -0
  91. package/dist/domain/setting.d.ts +2 -0
  92. package/dist/domain/setting.js +22 -0
  93. package/dist/domain/setup.d.ts +2 -0
  94. package/dist/domain/setup.js +21 -0
  95. package/dist/domain/snippet.d.ts +2 -0
  96. package/dist/domain/snippet.js +38 -0
  97. package/dist/domain/table.d.ts +2 -0
  98. package/dist/domain/table.js +156 -0
  99. package/dist/domain/text.d.ts +5 -0
  100. package/dist/domain/text.js +6 -0
  101. package/dist/domain/timeline.d.ts +2 -0
  102. package/dist/domain/timeline.js +97 -0
  103. package/dist/domain/transform-dag-run.d.ts +2 -0
  104. package/dist/domain/transform-dag-run.js +19 -0
  105. package/dist/domain/transform-inspector.d.ts +2 -0
  106. package/dist/domain/transform-inspector.js +142 -0
  107. package/dist/domain/transform-job.d.ts +2 -0
  108. package/dist/domain/transform-job.js +109 -0
  109. package/dist/domain/transform-python.d.ts +2 -0
  110. package/dist/domain/transform-python.js +39 -0
  111. package/dist/domain/transform-tag.d.ts +2 -0
  112. package/dist/domain/transform-tag.js +17 -0
  113. package/dist/domain/transform-test.d.ts +2 -0
  114. package/dist/domain/transform-test.js +176 -0
  115. package/dist/domain/transform.d.ts +2 -0
  116. package/dist/domain/transform.js +235 -0
  117. package/dist/domain/upload.d.ts +2 -0
  118. package/dist/domain/upload.js +13 -0
  119. package/dist/domain/user.d.ts +2 -0
  120. package/dist/domain/user.js +16 -0
  121. package/dist/eid-translation-nuhr8St2.d.ts +143 -0
  122. package/dist/embedding-Cz3RUJYf.d.ts +10 -0
  123. package/dist/erd-BdeFEeSy.d.ts +842 -0
  124. package/dist/erd-BujD227Y.d.ts +51 -0
  125. package/dist/errors-DdMlaXqq.js +330 -0
  126. package/dist/errors.d.ts +2 -0
  127. package/dist/errors.js +189 -0
  128. package/dist/features-CnFkUCj2.d.ts +261 -0
  129. package/dist/field-BCRO19mk.d.ts +2547 -0
  130. package/dist/field-Bqn10Fq_.d.ts +50 -0
  131. package/dist/git-sync-DNXrNVCW.d.ts +258 -0
  132. package/dist/git-sync-gAMKsZgN.d.ts +205 -0
  133. package/dist/glossary-CHK3elPj.d.ts +35 -0
  134. package/dist/glossary-CqFlzW33.d.ts +15 -0
  135. package/dist/http/errors.d.ts +2 -0
  136. package/dist/http/errors.js +2 -0
  137. package/dist/http/oauth.d.ts +2 -0
  138. package/dist/http/oauth.js +201 -0
  139. package/dist/http/retry.d.ts +19 -0
  140. package/dist/http/retry.js +33 -0
  141. package/dist/http/transport.d.ts +2 -0
  142. package/dist/http/transport.js +2 -0
  143. package/dist/index.d.ts +60 -0
  144. package/dist/index.js +62 -0
  145. package/dist/json-CZvjc3--.d.ts +19 -0
  146. package/dist/json-pointer.d.ts +4 -0
  147. package/dist/json-pointer.js +7 -0
  148. package/dist/json.d.ts +2 -0
  149. package/dist/json.js +44 -0
  150. package/dist/known-range-DTOBgTEC.d.ts +7 -0
  151. package/dist/library-Cx9h_RkU.d.ts +228 -0
  152. package/dist/list-BT_bBm9Z.d.ts +7 -0
  153. package/dist/list.d.ts +2 -0
  154. package/dist/list.js +1 -0
  155. package/dist/measure-CuMqPbQX.d.ts +108 -0
  156. package/dist/measure-KuXdjZYJ.d.ts +44 -0
  157. package/dist/metric-yvehaVCS.d.ts +2655 -0
  158. package/dist/moderation-review-B4RUTZ6_.d.ts +56 -0
  159. package/dist/network-error-5g4U1iul.js +62 -0
  160. package/dist/notification-BT2TDAd_.d.ts +379 -0
  161. package/dist/notification-BiegPoSD.d.ts +22 -0
  162. package/dist/oauth-C4ordeoJ.d.ts +59 -0
  163. package/dist/oauth-login-CJsT_3EE.d.ts +19 -0
  164. package/dist/oauth-login-D734Jvbq.js +179 -0
  165. package/dist/oauth-session-BlIlcd8Q.d.ts +6 -0
  166. package/dist/paginate-DZWvWvbm.d.ts +24 -0
  167. package/dist/paginate.d.ts +2 -0
  168. package/dist/paginate.js +49 -0
  169. package/dist/parameter-ak-J-IOj.d.ts +190 -0
  170. package/dist/permission-BnCQw5Kp.d.ts +149 -0
  171. package/dist/poll-CIwnee7h.d.ts +15 -0
  172. package/dist/poll.d.ts +2 -0
  173. package/dist/poll.js +47 -0
  174. package/dist/predicates.d.ts +10 -0
  175. package/dist/predicates.js +18 -0
  176. package/dist/pulse-CMc1Rwdj.d.ts +596 -0
  177. package/dist/pulse-dylocLd9.d.ts +18 -0
  178. package/dist/query-Xsin530u.d.ts +23 -0
  179. package/dist/refusal-B9aeHMc9.js +130 -0
  180. package/dist/replacement-CyvtbxGg.d.ts +2467 -0
  181. package/dist/replacement-S9U3gApY.d.ts +128 -0
  182. package/dist/requirement-check-CIA5IHC1.d.ts +17 -0
  183. package/dist/requirements-C0txASN8.d.ts +217 -0
  184. package/dist/resources/card.d.ts +2 -0
  185. package/dist/resources/card.js +103 -0
  186. package/dist/resources/collection.d.ts +2 -0
  187. package/dist/resources/collection.js +110 -0
  188. package/dist/resources/content-translation.d.ts +11 -0
  189. package/dist/resources/content-translation.js +27 -0
  190. package/dist/resources/csv-upload.d.ts +2 -0
  191. package/dist/resources/csv-upload.js +9 -0
  192. package/dist/resources/dashboard.d.ts +2 -0
  193. package/dist/resources/dashboard.js +218 -0
  194. package/dist/resources/data-action.d.ts +105 -0
  195. package/dist/resources/data-action.js +79 -0
  196. package/dist/resources/database.d.ts +2 -0
  197. package/dist/resources/database.js +103 -0
  198. package/dist/resources/dataset.d.ts +2 -0
  199. package/dist/resources/dataset.js +81 -0
  200. package/dist/resources/dependency.d.ts +2 -0
  201. package/dist/resources/dependency.js +150 -0
  202. package/dist/resources/document.d.ts +55 -0
  203. package/dist/resources/document.js +60 -0
  204. package/dist/resources/eid-translation.d.ts +8 -0
  205. package/dist/resources/eid-translation.js +19 -0
  206. package/dist/resources/erd.d.ts +2 -0
  207. package/dist/resources/erd.js +26 -0
  208. package/dist/resources/field.d.ts +2 -0
  209. package/dist/resources/field.js +98 -0
  210. package/dist/resources/git-sync.d.ts +2 -0
  211. package/dist/resources/git-sync.js +362 -0
  212. package/dist/resources/glossary.d.ts +2 -0
  213. package/dist/resources/glossary.js +51 -0
  214. package/dist/resources/library.d.ts +85 -0
  215. package/dist/resources/library.js +90 -0
  216. package/dist/resources/measure.d.ts +2 -0
  217. package/dist/resources/measure.js +57 -0
  218. package/dist/resources/metric.d.ts +2 -0
  219. package/dist/resources/metric.js +50 -0
  220. package/dist/resources/moderation-review.d.ts +23 -0
  221. package/dist/resources/moderation-review.js +24 -0
  222. package/dist/resources/notification.d.ts +2 -0
  223. package/dist/resources/notification.js +93 -0
  224. package/dist/resources/optional-parsed.d.ts +7 -0
  225. package/dist/resources/optional-parsed.js +14 -0
  226. package/dist/resources/permission.d.ts +10 -0
  227. package/dist/resources/permission.js +31 -0
  228. package/dist/resources/pivot-export.d.ts +10 -0
  229. package/dist/resources/pivot-export.js +16 -0
  230. package/dist/resources/pulse.d.ts +2 -0
  231. package/dist/resources/pulse.js +75 -0
  232. package/dist/resources/replacement.d.ts +2 -0
  233. package/dist/resources/replacement.js +82 -0
  234. package/dist/resources/request-body.d.ts +9 -0
  235. package/dist/resources/request-body.js +13 -0
  236. package/dist/resources/revision.d.ts +70 -0
  237. package/dist/resources/revision.js +51 -0
  238. package/dist/resources/search.d.ts +2 -0
  239. package/dist/resources/search.js +57 -0
  240. package/dist/resources/segment.d.ts +2 -0
  241. package/dist/resources/segment.js +55 -0
  242. package/dist/resources/setting.d.ts +11 -0
  243. package/dist/resources/setting.js +43 -0
  244. package/dist/resources/setup.d.ts +8 -0
  245. package/dist/resources/setup.js +18 -0
  246. package/dist/resources/snippet.d.ts +2 -0
  247. package/dist/resources/snippet.js +52 -0
  248. package/dist/resources/table.d.ts +2 -0
  249. package/dist/resources/table.js +275 -0
  250. package/dist/resources/timeline-event.d.ts +12 -0
  251. package/dist/resources/timeline-event.js +51 -0
  252. package/dist/resources/timeline.d.ts +2 -0
  253. package/dist/resources/timeline.js +82 -0
  254. package/dist/resources/transform-dag-run.d.ts +22 -0
  255. package/dist/resources/transform-dag-run.js +32 -0
  256. package/dist/resources/transform-inspector.d.ts +214 -0
  257. package/dist/resources/transform-inspector.js +47 -0
  258. package/dist/resources/transform-job.d.ts +2 -0
  259. package/dist/resources/transform-job.js +90 -0
  260. package/dist/resources/transform-python.d.ts +52 -0
  261. package/dist/resources/transform-python.js +56 -0
  262. package/dist/resources/transform-tag.d.ts +35 -0
  263. package/dist/resources/transform-tag.js +47 -0
  264. package/dist/resources/transform-test.d.ts +2 -0
  265. package/dist/resources/transform-test.js +75 -0
  266. package/dist/resources/transform.d.ts +2 -0
  267. package/dist/resources/transform.js +217 -0
  268. package/dist/resources/upload.d.ts +2 -0
  269. package/dist/resources/upload.js +48 -0
  270. package/dist/resources/user.d.ts +8 -0
  271. package/dist/resources/user.js +11 -0
  272. package/dist/revision-CQBPhohA.d.ts +104 -0
  273. package/dist/search-BxJipLN6.d.ts +26 -0
  274. package/dist/search-NZR6iRBs.d.ts +92 -0
  275. package/dist/segment-D2i34X9l.d.ts +16 -0
  276. package/dist/segment-pj3wklGe.d.ts +47 -0
  277. package/dist/session-properties-COtlxAcK.d.ts +15 -0
  278. package/dist/setting-DXuQGXGF.d.ts +25 -0
  279. package/dist/setup-Ez_U7GmM.d.ts +26 -0
  280. package/dist/signal.d.ts +8 -0
  281. package/dist/signal.js +25 -0
  282. package/dist/snippet-RnnWa4TL.d.ts +16 -0
  283. package/dist/snippet-hEV429Pv.d.ts +41 -0
  284. package/dist/table-B3-UaPHa.d.ts +3229 -0
  285. package/dist/table-B_lfuaHc.d.ts +176 -0
  286. package/dist/tag-qzjGGci8.d.ts +48 -0
  287. package/dist/timeline-C2IEcRlP.d.ts +21 -0
  288. package/dist/timeline-folD3mQ_.d.ts +218 -0
  289. package/dist/transform-CDurgE1D.d.ts +443 -0
  290. package/dist/transform-CXOT5kFe.d.ts +638 -0
  291. package/dist/transform-dag-run-BgZwv1yx.d.ts +49 -0
  292. package/dist/transform-inspector-BUYBt6--.d.ts +374 -0
  293. package/dist/transform-job-29P6BULe.d.ts +237 -0
  294. package/dist/transform-job-CTJImaOd.d.ts +96 -0
  295. package/dist/transform-python-DdDnW6yK.d.ts +56 -0
  296. package/dist/transform-tag-DVUIZTEM.d.ts +25 -0
  297. package/dist/transform-test-A-CJYT6B.d.ts +412 -0
  298. package/dist/transform-test-BwuyrHpT.d.ts +346 -0
  299. package/dist/transport-E0ZaPNWJ.d.ts +462 -0
  300. package/dist/transport-HP7cyo9N.js +397 -0
  301. package/dist/upload-B7PG3ePk.d.ts +12 -0
  302. package/dist/upload-UPfZFdbH.d.ts +22 -0
  303. package/dist/url-CI0pxHOc.d.ts +7 -0
  304. package/dist/url.d.ts +2 -0
  305. package/dist/url.js +34 -0
  306. package/dist/user-2r0OBoO6.d.ts +18 -0
  307. package/dist/version/capability-error.d.ts +2 -0
  308. package/dist/version/capability-error.js +42 -0
  309. package/dist/version/features.d.ts +2 -0
  310. package/dist/version/features.js +143 -0
  311. package/dist/version/known-range.d.ts +2 -0
  312. package/dist/version/known-range.js +7 -0
  313. package/dist/version/probe.d.ts +2 -0
  314. package/dist/version/probe.js +30 -0
  315. package/dist/version/profile.d.ts +2 -0
  316. package/dist/version/profile.js +64 -0
  317. package/dist/version/requirement-check.d.ts +2 -0
  318. package/dist/version/requirement-check.js +62 -0
  319. package/dist/version/requirements.d.ts +2 -0
  320. package/dist/version/requirements.js +219 -0
  321. package/dist/version/tag.d.ts +2 -0
  322. package/dist/version/tag.js +52 -0
  323. package/package.json +65 -4
@@ -0,0 +1,7 @@
1
+ //#region src/version/known-range.ts
2
+ const KNOWN_RANGE = {
3
+ min: 58,
4
+ max: 64
5
+ };
6
+ //#endregion
7
+ export { KNOWN_RANGE };
@@ -0,0 +1,2 @@
1
+ import { At as profileFromProperties, Ct as PROBE_PATH, Dt as ServerInfo, Et as ProbeOptions, Ot as probeBudget, Tt as ProbeBudget, jt as serverInfoFromProperties, kt as probeServer, wt as PROBE_TIMEOUT_MS } from "../transport-E0ZaPNWJ.js";
2
+ export { PROBE_PATH, PROBE_TIMEOUT_MS, ProbeBudget, ProbeOptions, ServerInfo, probeBudget, probeServer, profileFromProperties, serverInfoFromProperties };
@@ -0,0 +1,30 @@
1
+ import { SessionProperties } from "../domain/session-properties.js";
2
+ import { editionFromTag, parseTag } from "./tag.js";
3
+ import { createServerProfile } from "./profile.js";
4
+ //#region src/version/probe.ts
5
+ const PROBE_PATH = "/api/session/properties";
6
+ const PROBE_TIMEOUT_MS = 1e4;
7
+ async function probeServer(client, opts = {}) {
8
+ return serverInfoFromProperties(await client.requestParsed(SessionProperties, PROBE_PATH, probeBudget(opts)));
9
+ }
10
+ function probeBudget(opts) {
11
+ return {
12
+ timeoutMs: opts.timeoutMs ?? 1e4,
13
+ retries: opts.retries ?? 0
14
+ };
15
+ }
16
+ function serverInfoFromProperties(properties) {
17
+ const { tag } = properties.version;
18
+ return {
19
+ version: parseTag(tag),
20
+ edition: editionFromTag(tag),
21
+ date: properties.version.date ?? null,
22
+ hash: properties.version.hash ?? null,
23
+ tokenFeatures: properties["token-features"] ?? null
24
+ };
25
+ }
26
+ function profileFromProperties(properties) {
27
+ return createServerProfile(serverInfoFromProperties(properties));
28
+ }
29
+ //#endregion
30
+ export { PROBE_PATH, PROBE_TIMEOUT_MS, probeBudget, probeServer, profileFromProperties, serverInfoFromProperties };
@@ -0,0 +1,2 @@
1
+ import { St as featureGap, bt as Skew, xt as createServerProfile, yt as ServerProfile } from "../transport-E0ZaPNWJ.js";
2
+ export { ServerProfile, Skew, createServerProfile, featureGap };
@@ -0,0 +1,64 @@
1
+ import { TokenFeatures } from "../domain/session-properties.js";
2
+ import { KNOWN_RANGE } from "./known-range.js";
3
+ import { FEATURE_RULES, Features, evaluateFeatures, ruleGap } from "./features.js";
4
+ import { Edition, ServerVersion } from "./tag.js";
5
+ import { z } from "zod";
6
+ //#region src/version/profile.ts
7
+ const Skew = z.enum([
8
+ "supported",
9
+ "older-than-known",
10
+ "newer-than-known",
11
+ "development"
12
+ ]);
13
+ const ServerProfile = z.object({
14
+ version: ServerVersion,
15
+ buildDate: z.string().nullable(),
16
+ hash: z.string().nullable(),
17
+ edition: Edition,
18
+ tokenFeatures: TokenFeatures.nullable(),
19
+ features: Features,
20
+ skew: Skew
21
+ });
22
+ function createServerProfile(info) {
23
+ const placement = place(info.version);
24
+ return {
25
+ version: info.version,
26
+ buildDate: info.date,
27
+ hash: info.hash,
28
+ edition: detectEdition(info),
29
+ tokenFeatures: info.tokenFeatures,
30
+ features: evaluateFeatures(placement.major, info.tokenFeatures),
31
+ skew: placement.skew
32
+ };
33
+ }
34
+ function featureGap(profile, feature) {
35
+ const placement = place(profile.version);
36
+ return ruleGap(FEATURE_RULES[feature], placement.major, profile.tokenFeatures);
37
+ }
38
+ function place(version) {
39
+ if (version.kind === "development") return {
40
+ major: "development",
41
+ skew: "development"
42
+ };
43
+ if (version.major > KNOWN_RANGE.max) return {
44
+ major: KNOWN_RANGE.max + 1,
45
+ skew: "newer-than-known"
46
+ };
47
+ if (version.major < KNOWN_RANGE.min) return {
48
+ major: version.major,
49
+ skew: "older-than-known"
50
+ };
51
+ return {
52
+ major: version.major,
53
+ skew: "supported"
54
+ };
55
+ }
56
+ function detectEdition(info) {
57
+ if (info.edition !== null) return info.edition;
58
+ return grantsAnyFeature(info.tokenFeatures) ? "ee" : "oss";
59
+ }
60
+ function grantsAnyFeature(tokenFeatures) {
61
+ return tokenFeatures !== null && Object.values(tokenFeatures).some((enabled) => enabled);
62
+ }
63
+ //#endregion
64
+ export { ServerProfile, Skew, createServerProfile, featureGap };
@@ -0,0 +1,2 @@
1
+ import { n as featureFailures, r as supersedingFeature, t as checkFeatures } from "../requirement-check-CIA5IHC1.js";
2
+ export { checkFeatures, featureFailures, supersedingFeature };
@@ -0,0 +1,62 @@
1
+ import { FEATURE_RULES } from "./features.js";
2
+ import { missingTokenFeatureMessage, versionTooOldMessage } from "./capability-error.js";
3
+ import { describeVersion } from "./tag.js";
4
+ import { featureGap } from "./profile.js";
5
+ //#region src/version/requirement-check.ts
6
+ /** The first of `features` the profile lacks, or `null` when it has every one. */
7
+ function checkFeatures(features, profile) {
8
+ for (const feature of features) {
9
+ const gap = featureGap(profile, feature);
10
+ if (gap !== null) return describeGap(gap, feature, profile);
11
+ }
12
+ return null;
13
+ }
14
+ /**
15
+ * The verdict that the profile has `feature`, which takes the value `detail` describes out of the
16
+ * server's vocabulary, or `null` when the profile lacks it.
17
+ */
18
+ function supersedingFeature(feature, profile, detail) {
19
+ if (featureGap(profile, feature) !== null) return null;
20
+ const rule = FEATURE_RULES[feature];
21
+ return {
22
+ reason: "superseded-by-feature",
23
+ detail,
24
+ feature,
25
+ since: rule.since,
26
+ tokenFeature: rule.tokenFeature ?? null,
27
+ serverVersion: profile.version.tag
28
+ };
29
+ }
30
+ /**
31
+ * Every one of `features` the profile lacks, each once and in the order given, so a caller that
32
+ * goes on past the first still hears of the rest.
33
+ */
34
+ function featureFailures(features, profile) {
35
+ return [...new Set(features)].flatMap((feature) => {
36
+ const failure = checkFeatures([feature], profile);
37
+ return failure === null ? [] : [failure];
38
+ });
39
+ }
40
+ function describeGap(gap, feature, profile) {
41
+ const rule = FEATURE_RULES[feature];
42
+ const serverVersion = profile.version.tag;
43
+ const tokenFeature = rule.tokenFeature ?? null;
44
+ if (gap.kind === "token") return {
45
+ reason: "missing-token-feature",
46
+ detail: missingTokenFeatureMessage(gap.tokenFeature),
47
+ feature,
48
+ since: rule.since,
49
+ tokenFeature,
50
+ serverVersion
51
+ };
52
+ return {
53
+ reason: "version-too-old",
54
+ detail: versionTooOldMessage(rule.since, describeVersion(profile.version)),
55
+ feature,
56
+ since: rule.since,
57
+ tokenFeature,
58
+ serverVersion
59
+ };
60
+ }
61
+ //#endregion
62
+ export { checkFeatures, featureFailures, supersedingFeature };
@@ -0,0 +1,2 @@
1
+ import { a as methodRequirements, i as isMethodKey, n as METHOD_REQUIREMENTS, r as MethodKey, t as METHOD_KEYS } from "../requirements-C0txASN8.js";
2
+ export { METHOD_KEYS, METHOD_REQUIREMENTS, MethodKey, isMethodKey, methodRequirements };
@@ -0,0 +1,219 @@
1
+ //#region src/version/requirements.ts
2
+ const METHOD_REQUIREMENTS = {
3
+ "card.list": [],
4
+ "card.get": [],
5
+ "card.create": [],
6
+ "card.update": [],
7
+ "card.archive": [],
8
+ "card.query": [],
9
+ "card.exportQuery": [],
10
+ "card.queryMetadata": [],
11
+ "collection.list": [],
12
+ "collection.get": [],
13
+ "collection.create": [],
14
+ "collection.update": [],
15
+ "collection.archive": [],
16
+ "collection.itemPages": [],
17
+ "collection.tree": [],
18
+ "contentTranslation.download": ["contentTranslation"],
19
+ "contentTranslation.upload": ["contentTranslation"],
20
+ "dashboard.list": [],
21
+ "dashboard.get": [],
22
+ "dashboard.create": [],
23
+ "dashboard.update": [],
24
+ "dashboard.archive": [],
25
+ "dashboard.copy": [],
26
+ "dashboard.updateDashcard": [],
27
+ "dashboard.checkCardReferences": [],
28
+ "dashboard.parameterValues": [],
29
+ "dashboard.searchParameterValues": [],
30
+ "dataAction.list": [],
31
+ "dataAction.get": [],
32
+ "dataAction.create": ["dataActionsWithoutModel"],
33
+ "dataAction.update": [],
34
+ "dataAction.archive": [],
35
+ "dataAction.delete": [],
36
+ "dataAction.execute": [],
37
+ "database.list": [],
38
+ "database.get": [],
39
+ "database.update": [],
40
+ "database.schemas": [],
41
+ "database.schemaTables": [],
42
+ "database.syncSchema": [],
43
+ "database.rescanValues": [],
44
+ "dataset.query": [],
45
+ "dataset.native": [],
46
+ "dataset.queryMetadata": [],
47
+ "dataset.exportQuery": [],
48
+ "dependency.breakingPages": ["dependencyItemListings"],
49
+ "dependency.broken": ["dependencyItemListings"],
50
+ "dependency.dependents": ["dependencyItemListings"],
51
+ "dependency.graph": ["dependencyGraph"],
52
+ "dependency.unreferencedPages": ["dependencyItemListings"],
53
+ "document.list": [],
54
+ "document.get": [],
55
+ "document.create": [],
56
+ "document.update": [],
57
+ "document.archive": [],
58
+ "document.copy": ["documentCopy"],
59
+ "eidTranslation.translate": [],
60
+ "erd.get": ["erd"],
61
+ "field.get": [],
62
+ "field.update": [],
63
+ "field.setDataSensitivity": ["fieldDataSensitivity"],
64
+ "field.search": [],
65
+ "field.remapping": [],
66
+ "field.summary": [],
67
+ "field.values": [],
68
+ "gitSync.currentTask": ["remoteSync"],
69
+ "gitSync.cancelTask": ["remoteSync"],
70
+ "gitSync.isDirty": ["remoteSync"],
71
+ "gitSync.dirty": ["remoteSync"],
72
+ "gitSync.hasRemoteChanges": ["remoteSyncRemoteChanges"],
73
+ "gitSync.import": ["remoteSync"],
74
+ "gitSync.export": ["remoteSync"],
75
+ "gitSync.exportPreflight": ["remoteSyncExportPreflight"],
76
+ "gitSync.stash": ["remoteSync"],
77
+ "gitSync.branches": ["remoteSync"],
78
+ "gitSync.createBranch": ["remoteSync"],
79
+ "gitSync.setCollectionSynced": ["remoteSync"],
80
+ "gitSync.syncedCollections": ["remoteSync"],
81
+ "gitSync.remoteUrl": [],
82
+ "gitSync.branch": ["remoteSync"],
83
+ "gitSync.remote": ["remoteSync"],
84
+ "gitSync.trackedBranch": ["remoteSync"],
85
+ "gitSync.waitForTask": ["remoteSync"],
86
+ "glossary.list": [],
87
+ "glossary.create": [],
88
+ "glossary.update": [],
89
+ "glossary.delete": [],
90
+ "library.get": ["library"],
91
+ "library.create": ["library"],
92
+ "library.ensureDataCollectionId": ["library"],
93
+ "library.publishTables": ["library"],
94
+ "library.unpublishTables": ["library"],
95
+ "metric.query": ["metricDefinitionQuery"],
96
+ "metric.breakoutValues": ["metricDefinitionQuery"],
97
+ "metric.dimensions": ["metricDimensionListing"],
98
+ "measure.list": ["measures"],
99
+ "measure.get": ["measures"],
100
+ "measure.create": ["measures"],
101
+ "measure.update": ["measures"],
102
+ "measure.archive": ["measures"],
103
+ "moderationReview.create": ["contentVerification"],
104
+ "notification.list": [],
105
+ "notification.get": [],
106
+ "notification.create": [],
107
+ "notification.update": [],
108
+ "notification.archive": [],
109
+ "notification.send": [],
110
+ "permission.graph": [],
111
+ "permission.databaseGraph": [],
112
+ "permission.groupGraph": [],
113
+ "pulse.list": [],
114
+ "pulse.get": [],
115
+ "pulse.create": [],
116
+ "pulse.update": [],
117
+ "pulse.archive": [],
118
+ "replacement.checkReplaceSource": ["sourceReplacement"],
119
+ "replacement.replaceSource": ["sourceReplacement"],
120
+ "replacement.replaceModelWithTransform": ["sourceReplacement"],
121
+ "replacement.listRuns": ["sourceReplacement"],
122
+ "replacement.getRun": ["sourceReplacement"],
123
+ "replacement.cancelRun": ["sourceReplacement"],
124
+ "revision.list": [],
125
+ "revision.revert": [],
126
+ "search.query": [],
127
+ "segment.list": [],
128
+ "segment.get": [],
129
+ "segment.create": [],
130
+ "segment.update": [],
131
+ "segment.archive": [],
132
+ "setting.list": [],
133
+ "setting.get": [],
134
+ "setting.set": [],
135
+ "setup.create": [],
136
+ "snippet.list": [],
137
+ "snippet.get": [],
138
+ "snippet.create": [],
139
+ "snippet.update": [],
140
+ "snippet.archive": [],
141
+ "table.list": [],
142
+ "table.get": [],
143
+ "table.update": [],
144
+ "table.queryMetadata": [],
145
+ "table.fks": [],
146
+ "table.syncSchema": [],
147
+ "table.rescanValues": [],
148
+ "table.discardValues": [],
149
+ "table.bulkEdit": ["bulkTableEdit"],
150
+ "table.bulkSyncSchema": ["bulkTableSync"],
151
+ "table.bulkRescanValues": ["bulkTableSync"],
152
+ "table.bulkDiscardValues": ["bulkTableSync"],
153
+ "table.appendCsv": [],
154
+ "table.replaceCsv": [],
155
+ "timeline.list": [],
156
+ "timeline.get": [],
157
+ "timeline.events": [],
158
+ "timeline.create": [],
159
+ "timeline.update": [],
160
+ "timeline.archive": [],
161
+ "timeline.delete": [],
162
+ "timelineEvent.get": [],
163
+ "timelineEvent.create": [],
164
+ "timelineEvent.update": [],
165
+ "timelineEvent.archive": [],
166
+ "timelineEvent.delete": [],
167
+ "transform.list": ["transforms"],
168
+ "transform.get": ["transforms"],
169
+ "transform.create": ["transforms"],
170
+ "transform.update": ["transforms"],
171
+ "transform.delete": ["transforms"],
172
+ "transform.deleteTable": ["transforms"],
173
+ "transform.dependencies": ["transforms"],
174
+ "transform.cancel": ["transforms"],
175
+ "transform.getRun": ["transforms"],
176
+ "transform.runPages": ["transforms"],
177
+ "transform.runSummaryPages": ["unifiedTransformRuns", "transforms"],
178
+ "transform.resetCheckpoint": ["transformCheckpointReset", "transforms"],
179
+ "transform.runDag": ["transformDagRuns", "transforms"],
180
+ "transform.dagTransforms": ["transformDagRuns", "transforms"],
181
+ "transform.run": ["transforms"],
182
+ "transformDagRun.transformRuns": ["transformDagRuns", "transforms"],
183
+ "transformDagRun.cancel": ["transformDagRuns", "transforms"],
184
+ "transformInspector.discover": ["transformInspector"],
185
+ "transformInspector.lens": ["transformInspector"],
186
+ "transformInspector.query": ["transformInspector"],
187
+ "transformJob.list": ["transforms"],
188
+ "transformJob.get": ["transforms"],
189
+ "transformJob.create": ["transforms"],
190
+ "transformJob.update": ["transforms"],
191
+ "transformJob.delete": ["transforms"],
192
+ "transformJob.run": ["transforms"],
193
+ "transformJob.transforms": ["transforms"],
194
+ "transformJob.setActive": ["transformJobActivation", "transforms"],
195
+ "transformPython.getLibrary": ["pythonLibrary"],
196
+ "transformPython.updateLibrary": ["pythonLibrary"],
197
+ "transformPython.testRun": ["pythonTestRun"],
198
+ "transformTag.list": ["transforms"],
199
+ "transformTag.create": ["transforms"],
200
+ "transformTag.update": ["transforms"],
201
+ "transformTag.delete": ["transforms"],
202
+ "transformTest.list": ["transformTests"],
203
+ "transformTest.get": ["transformTests"],
204
+ "transformTest.create": ["transformTests"],
205
+ "transformTest.update": ["transformTests"],
206
+ "transformTest.delete": ["transformTests"],
207
+ "transformTest.run": ["transformTests"],
208
+ "upload.createFromCsv": [],
209
+ "user.current": []
210
+ };
211
+ function isMethodKey(key) {
212
+ return Object.hasOwn(METHOD_REQUIREMENTS, key);
213
+ }
214
+ const METHOD_KEYS = Object.keys(METHOD_REQUIREMENTS).filter(isMethodKey);
215
+ function methodRequirements(key) {
216
+ return METHOD_REQUIREMENTS[key];
217
+ }
218
+ //#endregion
219
+ export { METHOD_KEYS, METHOD_REQUIREMENTS, isMethodKey, methodRequirements };
@@ -0,0 +1,2 @@
1
+ import { a as StoredServerVersion, c as parseTag, i as ServerVersion, n as Edition, o as describeVersion, r as ReleaseVersion, s as editionFromTag, t as DevelopmentBuild } from "../tag-qzjGGci8.js";
2
+ export { DevelopmentBuild, Edition, ReleaseVersion, ServerVersion, StoredServerVersion, describeVersion, editionFromTag, parseTag };
@@ -0,0 +1,52 @@
1
+ import { z } from "zod";
2
+ //#region src/version/tag.ts
3
+ const ReleaseVersion = z.object({
4
+ kind: z.literal("release"),
5
+ tag: z.string(),
6
+ major: z.number().int().nonnegative(),
7
+ patch: z.number().int().nonnegative()
8
+ });
9
+ const DevelopmentBuild = z.object({
10
+ kind: z.literal("development"),
11
+ tag: z.string()
12
+ });
13
+ const ServerVersion = z.discriminatedUnion("kind", [ReleaseVersion, DevelopmentBuild]);
14
+ const Edition = z.enum(["oss", "ee"]);
15
+ const TAG = /^v?([01])\.(\d+)\.(\d+)(?:\.\d+)?(?:-([0-9A-Za-z.-]+))?$/;
16
+ const OSS_EDITION_NUMBER = "0";
17
+ const DEV_BUILD_SUFFIX = "SNAPSHOT";
18
+ function tagParts(tag) {
19
+ const match = TAG.exec(tag);
20
+ if (match === null) return null;
21
+ const [, editionNumber, major, patch, prerelease] = match;
22
+ if (editionNumber === void 0 || major === void 0 || patch === void 0) return null;
23
+ return {
24
+ edition: editionNumber === OSS_EDITION_NUMBER ? "oss" : "ee",
25
+ major: Number(major),
26
+ patch: Number(patch),
27
+ prerelease: prerelease ?? null
28
+ };
29
+ }
30
+ function parseTag(tag) {
31
+ const parts = tagParts(tag);
32
+ if (parts === null || parts.prerelease === DEV_BUILD_SUFFIX) return {
33
+ kind: "development",
34
+ tag
35
+ };
36
+ return {
37
+ kind: "release",
38
+ tag,
39
+ major: parts.major,
40
+ patch: parts.patch
41
+ };
42
+ }
43
+ function editionFromTag(tag) {
44
+ const parts = tagParts(tag);
45
+ return parts === null ? null : parts.edition;
46
+ }
47
+ function describeVersion(version) {
48
+ return version.kind === "release" ? version.tag : `development build ${version.tag}`;
49
+ }
50
+ const StoredServerVersion = z.object({ tag: z.string() }).loose().transform(({ tag }) => parseTag(tag));
51
+ //#endregion
52
+ export { DevelopmentBuild, Edition, ReleaseVersion, ServerVersion, StoredServerVersion, describeVersion, editionFromTag, parseTag };
package/package.json CHANGED
@@ -1,6 +1,67 @@
1
1
  {
2
2
  "name": "@metabase/client",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
3
+ "version": "0.1.0",
4
+ "description": "Metabase API client",
5
+ "license": "AGPL-3.0",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "git+https://github.com/metabase/mb-cli.git",
9
+ "directory": "packages/client"
10
+ },
11
+ "files": [
12
+ "dist",
13
+ "CHANGELOG.md"
14
+ ],
15
+ "type": "module",
16
+ "sideEffects": false,
17
+ "main": "./dist/index.js",
18
+ "types": "./dist/index.d.ts",
19
+ "exports": {
20
+ ".": "./dist/index.js",
21
+ "./client": "./dist/client.js",
22
+ "./errors": "./dist/errors.js",
23
+ "./json": "./dist/json.js",
24
+ "./json-pointer": "./dist/json-pointer.js",
25
+ "./list": "./dist/list.js",
26
+ "./paginate": "./dist/paginate.js",
27
+ "./poll": "./dist/poll.js",
28
+ "./predicates": "./dist/predicates.js",
29
+ "./signal": "./dist/signal.js",
30
+ "./url": "./dist/url.js",
31
+ "./auth/credential": "./dist/auth/credential.js",
32
+ "./auth/oauth-login": "./dist/auth/oauth-login.js",
33
+ "./auth/oauth-session": "./dist/auth/oauth-session.js",
34
+ "./http/errors": "./dist/http/errors.js",
35
+ "./http/oauth": "./dist/http/oauth.js",
36
+ "./http/retry": "./dist/http/retry.js",
37
+ "./http/transport": "./dist/http/transport.js",
38
+ "./version/features": "./dist/version/features.js",
39
+ "./version/known-range": "./dist/version/known-range.js",
40
+ "./version/profile": "./dist/version/profile.js",
41
+ "./version/capability-error": "./dist/version/capability-error.js",
42
+ "./version/probe": "./dist/version/probe.js",
43
+ "./version/requirement-check": "./dist/version/requirement-check.js",
44
+ "./version/requirements": "./dist/version/requirements.js",
45
+ "./version/tag": "./dist/version/tag.js",
46
+ "./domain/*.test": null,
47
+ "./domain/*": "./dist/domain/*.js",
48
+ "./resources/*.test": null,
49
+ "./resources/*": "./dist/resources/*.js",
50
+ "./package.json": "./package.json"
51
+ },
52
+ "publishConfig": {
53
+ "access": "public",
54
+ "registry": "https://registry.npmjs.org/"
55
+ },
56
+ "scripts": {
57
+ "build": "tsdown",
58
+ "prepack": "tsdown",
59
+ "prepublishOnly": "tsdown && publint"
60
+ },
61
+ "peerDependencies": {
62
+ "zod": "^4.0.0"
63
+ },
64
+ "engines": {
65
+ "node": ">=20.3"
66
+ }
67
+ }