@narrative.io/data-collaboration-sdk-ts 4.5.0 → 4.7.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.
@@ -7,6 +7,13 @@ import type { ComputePoolResponse, CreateComputePoolRequest, ListComputePoolsPar
7
7
  */
8
8
  export declare class ComputePoolsApi extends BaseApi {
9
9
  private computePoolsResourcePath;
10
+ /**
11
+ * The company-level default lives under `/company`, not under the data
12
+ * plane, because the backend groups it with the company's other settings
13
+ * (`CompanyComputePoolRoutes`). It is a compute-pool setting to a caller,
14
+ * which is why the two methods that use it live on this class.
15
+ */
16
+ private companyDefaultResourcePath;
10
17
  /**
11
18
  * List compute pools for a data plane.
12
19
  *
@@ -40,4 +47,30 @@ export declare class ComputePoolsApi extends BaseApi {
40
47
  * @see {@link https://docs.narrative.io/api-reference/compute-pools/archive-a-compute-pool}
41
48
  */
42
49
  archiveComputePool(dataPlaneId: string, computePoolId: string): Promise<void>;
50
+ /**
51
+ * Set the calling company's own default compute pool on one data plane.
52
+ *
53
+ * Level 3 of the pool resolution chain: what the company's jobs run on when
54
+ * neither the job (level 1) nor the dataset (level 2) pins a pool, taking
55
+ * precedence over the plane owner's default (level 4,
56
+ * {@link DataPlaneApi.setDefaultComputePool}). Unlike that one, this works on
57
+ * any plane the company can reach, not only planes it owns.
58
+ *
59
+ * `companyId` must be the authenticated company — the route answers 404 for
60
+ * any other. The pool must be active, live on `dataPlaneId`, and be one the
61
+ * company may use (owned, or shared with it through `use` collaborators),
62
+ * which is exactly the set `listComputePools` returns.
63
+ *
64
+ * Replaces any existing default for that plane; other planes' entries are
65
+ * untouched. Answers 204 and returns nothing — the new value shows up as
66
+ * `default_source` on the next {@link ComputePoolsApi.listComputePools}.
67
+ */
68
+ setCompanyDefaultComputePool(companyId: number, dataPlaneId: string, computePoolId: string): Promise<void>;
69
+ /**
70
+ * Clear the calling company's own default compute pool on one data plane,
71
+ * letting its jobs fall through to the plane owner's default.
72
+ *
73
+ * Idempotent: clearing when nothing is set is a no-op and still answers 204.
74
+ */
75
+ clearCompanyDefaultComputePool(companyId: number, dataPlaneId: string): Promise<void>;
43
76
  }
@@ -8,6 +8,15 @@ export class ComputePoolsApi extends BaseApi {
8
8
  computePoolsResourcePath(dataPlaneId) {
9
9
  return `data-planes/${dataPlaneId}/compute-pools`;
10
10
  }
11
+ /**
12
+ * The company-level default lives under `/company`, not under the data
13
+ * plane, because the backend groups it with the company's other settings
14
+ * (`CompanyComputePoolRoutes`). It is a compute-pool setting to a caller,
15
+ * which is why the two methods that use it live on this class.
16
+ */
17
+ companyDefaultResourcePath(companyId, dataPlaneId) {
18
+ return `company/${companyId}/data-planes/${dataPlaneId}/default-compute-pool`;
19
+ }
11
20
  /**
12
21
  * List compute pools for a data plane.
13
22
  *
@@ -51,4 +60,34 @@ export class ComputePoolsApi extends BaseApi {
51
60
  async archiveComputePool(dataPlaneId, computePoolId) {
52
61
  await this.delete(`${this.computePoolsResourcePath(dataPlaneId)}/${computePoolId}`);
53
62
  }
63
+ /**
64
+ * Set the calling company's own default compute pool on one data plane.
65
+ *
66
+ * Level 3 of the pool resolution chain: what the company's jobs run on when
67
+ * neither the job (level 1) nor the dataset (level 2) pins a pool, taking
68
+ * precedence over the plane owner's default (level 4,
69
+ * {@link DataPlaneApi.setDefaultComputePool}). Unlike that one, this works on
70
+ * any plane the company can reach, not only planes it owns.
71
+ *
72
+ * `companyId` must be the authenticated company — the route answers 404 for
73
+ * any other. The pool must be active, live on `dataPlaneId`, and be one the
74
+ * company may use (owned, or shared with it through `use` collaborators),
75
+ * which is exactly the set `listComputePools` returns.
76
+ *
77
+ * Replaces any existing default for that plane; other planes' entries are
78
+ * untouched. Answers 204 and returns nothing — the new value shows up as
79
+ * `default_source` on the next {@link ComputePoolsApi.listComputePools}.
80
+ */
81
+ async setCompanyDefaultComputePool(companyId, dataPlaneId, computePoolId) {
82
+ await this.put(`${this.companyDefaultResourcePath(companyId, dataPlaneId)}/${computePoolId}`, undefined);
83
+ }
84
+ /**
85
+ * Clear the calling company's own default compute pool on one data plane,
86
+ * letting its jobs fall through to the plane owner's default.
87
+ *
88
+ * Idempotent: clearing when nothing is set is a no-op and still answers 204.
89
+ */
90
+ async clearCompanyDefaultComputePool(companyId, dataPlaneId) {
91
+ await this.delete(this.companyDefaultResourcePath(companyId, dataPlaneId));
92
+ }
54
93
  }
@@ -1,5 +1,16 @@
1
1
  export type ComputePoolType = "owned" | "shared";
2
2
  export type ComputePoolStatus = "active" | "archived";
3
+ /**
4
+ * Which level made a pool the *authenticated company's* default on its data
5
+ * plane.
6
+ *
7
+ * `company` is the company's own setting for that plane
8
+ * ({@link ComputePoolsApi.setCompanyDefaultComputePool}) and takes precedence;
9
+ * `data_plane` is the default the plane's owner set
10
+ * ({@link DataPlaneApi.setDefaultComputePool}), which every collaborating
11
+ * company falls through to when it has no default of its own.
12
+ */
13
+ export type ComputePoolDefaultSource = "company" | "data_plane";
3
14
  export type ComputePoolSize = "x_small" | "small" | "medium" | "large" | "x_large" | "2x_large" | "3x_large" | "4x_large" | "5x_large" | "6x_large";
4
15
  export type SnowflakeWarehouseSize = ComputePoolSize;
5
16
  /**
@@ -89,6 +100,18 @@ export interface ComputePoolOwnedResponse {
89
100
  tags: string[];
90
101
  provider: ComputePoolProvider;
91
102
  collaborators: ComputePoolCollaborators;
103
+ /**
104
+ * Set when this pool is the one the authenticated company's jobs run on when
105
+ * they don't name one themselves, and says which level made it the default.
106
+ * `null` on every other pool, and at most one active pool per data plane
107
+ * carries a non-null value.
108
+ *
109
+ * Only the pool the resolution actually landed on is marked. A company that
110
+ * has set its own default therefore leaves the *plane's* default pool
111
+ * reporting `null` here — read {@link DataPlane.default_compute_pool_id} for
112
+ * that one.
113
+ */
114
+ default_source: ComputePoolDefaultSource | null;
92
115
  }
93
116
  export interface ComputePoolSharedResponse {
94
117
  type: "shared";
@@ -104,6 +127,8 @@ export interface ComputePoolSharedResponse {
104
127
  updated_at?: string;
105
128
  tags: string[];
106
129
  provider: ComputePoolProvider;
130
+ /** Behaves exactly as it does on {@link ComputePoolOwnedResponse}. */
131
+ default_source: ComputePoolDefaultSource | null;
107
132
  }
108
133
  export type ComputePoolResponse = ComputePoolOwnedResponse | ComputePoolSharedResponse;
109
134
  export interface CreateComputePoolRequestCommon {
@@ -58,6 +58,30 @@ export type AwsResponse = AssertTrue<IsAssignable<{
58
58
  type: "none";
59
59
  };
60
60
  };
61
+ default_source: null;
62
+ }, ComputePoolResponse>>;
63
+ /**
64
+ * `default_source` is required, not optional. The API sends it on every pool —
65
+ * `null` on the ones that aren't the default — so a response missing it
66
+ * entirely is one the server does not produce.
67
+ */
68
+ export type ResponseWithoutDefaultSource = AssertFalse<IsAssignable<{
69
+ type: "owned";
70
+ id: string;
71
+ company_id: number;
72
+ data_plane_id: string;
73
+ external_id: AwsEmrExternalId;
74
+ name: string;
75
+ display_name: string;
76
+ status: "active";
77
+ created_at: string;
78
+ tags: string[];
79
+ provider: AwsEmrProvider;
80
+ collaborators: {
81
+ use: {
82
+ type: "none";
83
+ };
84
+ };
61
85
  }, ComputePoolResponse>>;
62
86
  export type SnowflakeResponse = AssertTrue<IsAssignable<{
63
87
  type: "shared";
@@ -71,5 +95,6 @@ export type SnowflakeResponse = AssertTrue<IsAssignable<{
71
95
  created_at: string;
72
96
  tags: string[];
73
97
  provider: SnowflakeWarehouseProvider;
98
+ default_source: "data_plane";
74
99
  }, ComputePoolResponse>>;
75
100
  export {};
@@ -1,6 +1,6 @@
1
1
  import { BaseApi } from "../base-api";
2
2
  import type { ApiRecordsV2, OffsetPagination } from "../types";
3
- import type { CalculateAffectedRowsInput, CalculateAffectedRowsJob, CollectAccessRulesBillingDataInput, CollectAccessRulesBillingDataJob, CollectAccessRulesBillingDataResult, ColumnDetails, ColumnStatDataType, CostsInput, CostsJob, CreateTableInput, DatasetsCalculateColumnStatsJob, DatasetsCreateTableJob, DatasetsDeleteTableJob, DatasetsDeliverDataJob, DatasetsEnforceRowTtlRetentionPolicyJob, DatasetsEnforceTableTtlRetentionPolicyJob, DatasetsExecuteDmlJob, DatasetsExecuteSelectJob, DatasetsSampleJob, DatasetsSuggestMappingsJob, DatasetsTruncateTableJob, DeleteInput, DeliverInput, EnabledColumnStatFlags, EnforceRowTtlRetentionPolicyInput, EnforceTableTtlRetentionPolicyInput, ExecuteDmlInput, ExecuteDmlResult, ExecuteSelectInput, ExecuteSelectResult, ExplainInput, ExplainJob, ExplainOutput, ForecastInput, ForecastInternalJob, ForecastJob, HealthCheckJob, Job, JobExecutionCluster, JobRequestSource, JobRequestSourceApiUser, JobRequestSourceProcess, JobType, KnownJob, MaterializedViewInput, MaterializedViewJob, MaterializedViewOutput, MaterializedViewRowStats, ModelInferenceRunInput, ModelInferenceRunJob, ModelInferenceRunJobResult, ModelsDeliverModelInput, ModelsDeliverModelJob, ModelsTrainClassifierJob, ModelTrainingRunInput, ModelTrainingRunJob, RefreshMaterializedViewResult, SampleInput, StatsInput, StatsInputV2, SuggestMappingsInput, SuggestMappingsResult, TruncateTableInput } from "./types";
3
+ import type { BaseJob, CalculateAffectedRowsInput, CalculateAffectedRowsJob, CollectAccessRulesBillingDataInput, CollectAccessRulesBillingDataJob, CollectAccessRulesBillingDataResult, ColumnDetails, ColumnStatDataType, CostsInput, CostsJob, CreateTableInput, DatasetsCalculateColumnStatsJob, DatasetsCreateTableJob, DatasetsDeleteTableJob, DatasetsDeliverDataJob, DatasetsEnforceRowTtlRetentionPolicyJob, DatasetsEnforceTableTtlRetentionPolicyJob, DatasetsExecuteDmlJob, DatasetsExecuteSelectJob, DatasetsSampleJob, DatasetsSuggestMappingsJob, DatasetsTruncateTableJob, DeleteInput, DeliverInput, EnabledColumnStatFlags, EnforceRowTtlRetentionPolicyInput, EnforceTableTtlRetentionPolicyInput, ExecuteDmlInput, ExecuteDmlResult, ExecuteSelectInput, ExecuteSelectResult, ExplainInput, ExplainJob, ExplainOutput, ForecastInput, ForecastInternalJob, ForecastJob, HealthCheckJob, Job, JobExecutionCluster, JobRequestSource, JobRequestSourceApiUser, JobRequestSourceProcess, JobType, KnownJob, MaterializedViewInput, MaterializedViewJob, MaterializedViewOutput, MaterializedViewRowStats, ModelInferenceRunInput, ModelInferenceRunJob, ModelInferenceRunJobResult, ModelsDeliverModelInput, ModelsDeliverModelJob, ModelsTrainClassifierJob, ModelTrainingRunInput, ModelTrainingRunJob, RefreshMaterializedViewResult, SampleInput, StatsInput, StatsInputV2, SuggestMappingsInput, SuggestMappingsResult, TruncateTableInput, UnknownJob } from "./types";
4
4
  import { isKnownJob, KNOWN_JOB_TYPES } from "./types";
5
5
  type JobStateFilter = "cancelled" | "completed" | "failed" | "pending" | "pending_cancellation" | "running" | "scheduled";
6
6
  interface GetJobsParameters extends OffsetPagination {
@@ -36,4 +36,4 @@ declare class JobsApi extends BaseApi {
36
36
  */
37
37
  cancelJob(jobId: string): Promise<Job>;
38
38
  }
39
- export { type CalculateAffectedRowsInput, type CalculateAffectedRowsJob, type CollectAccessRulesBillingDataInput, type CollectAccessRulesBillingDataJob, type CollectAccessRulesBillingDataResult, type ColumnDetails, type ColumnStatDataType, type CostsInput, type CostsJob, type CreateTableInput, type DatasetsCalculateColumnStatsJob, type DatasetsCreateTableJob, type DatasetsDeleteTableJob, type DatasetsDeliverDataJob, type DatasetsEnforceRowTtlRetentionPolicyJob, type DatasetsEnforceTableTtlRetentionPolicyJob, type DatasetsExecuteDmlJob, type DatasetsExecuteSelectJob, type DatasetsSampleJob, type DatasetsSuggestMappingsJob, type DatasetsTruncateTableJob, type DeleteInput, type DeliverInput, type EnabledColumnStatFlags, type EnforceRowTtlRetentionPolicyInput, type EnforceTableTtlRetentionPolicyInput, type ExecuteDmlInput, type ExecuteDmlResult, type ExecuteSelectInput, type ExecuteSelectResult, type ExplainInput, type ExplainJob, type ExplainOutput, type ForecastInput, type ForecastInternalJob, type ForecastJob, type GetJobsParameters, type HealthCheckJob, isKnownJob, type Job, type JobExecutionCluster, type JobRequestSource, type JobRequestSourceApiUser, type JobRequestSourceProcess, type JobStateFilter, JobsApi, type JobType, KNOWN_JOB_TYPES, type KnownJob, type MaterializedViewInput, type MaterializedViewJob, type MaterializedViewOutput, type MaterializedViewRowStats, type ModelInferenceRunInput, type ModelInferenceRunJob, type ModelInferenceRunJobResult, type ModelsDeliverModelInput, type ModelsDeliverModelJob, type ModelsTrainClassifierJob, type ModelTrainingRunInput, type ModelTrainingRunJob, type RefreshMaterializedViewResult, type SampleInput, type StatsInput, type StatsInputV2, type SuggestMappingsInput, type SuggestMappingsResult, type TruncateTableInput, };
39
+ export { type BaseJob, type CalculateAffectedRowsInput, type CalculateAffectedRowsJob, type CollectAccessRulesBillingDataInput, type CollectAccessRulesBillingDataJob, type CollectAccessRulesBillingDataResult, type ColumnDetails, type ColumnStatDataType, type CostsInput, type CostsJob, type CreateTableInput, type DatasetsCalculateColumnStatsJob, type DatasetsCreateTableJob, type DatasetsDeleteTableJob, type DatasetsDeliverDataJob, type DatasetsEnforceRowTtlRetentionPolicyJob, type DatasetsEnforceTableTtlRetentionPolicyJob, type DatasetsExecuteDmlJob, type DatasetsExecuteSelectJob, type DatasetsSampleJob, type DatasetsSuggestMappingsJob, type DatasetsTruncateTableJob, type DeleteInput, type DeliverInput, type EnabledColumnStatFlags, type EnforceRowTtlRetentionPolicyInput, type EnforceTableTtlRetentionPolicyInput, type ExecuteDmlInput, type ExecuteDmlResult, type ExecuteSelectInput, type ExecuteSelectResult, type ExplainInput, type ExplainJob, type ExplainOutput, type ForecastInput, type ForecastInternalJob, type ForecastJob, type GetJobsParameters, type HealthCheckJob, isKnownJob, type Job, type JobExecutionCluster, type JobRequestSource, type JobRequestSourceApiUser, type JobRequestSourceProcess, type JobStateFilter, JobsApi, type JobType, KNOWN_JOB_TYPES, type KnownJob, type MaterializedViewInput, type MaterializedViewJob, type MaterializedViewOutput, type MaterializedViewRowStats, type ModelInferenceRunInput, type ModelInferenceRunJob, type ModelInferenceRunJobResult, type ModelsDeliverModelInput, type ModelsDeliverModelJob, type ModelsTrainClassifierJob, type ModelTrainingRunInput, type ModelTrainingRunJob, type RefreshMaterializedViewResult, type SampleInput, type StatsInput, type StatsInputV2, type SuggestMappingsInput, type SuggestMappingsResult, type TruncateTableInput, type UnknownJob, };
@@ -48,7 +48,7 @@ type WithResult<J, R> = Omit<J, "result"> & {
48
48
  * run as `datasets_execute_select`. Where no operator of its own exists, it
49
49
  * equals `type`.
50
50
  */
51
- type BaseJob = WithRequestSource<components["schemas"]["JobBase"]>;
51
+ export type BaseJob = WithRequestSource<components["schemas"]["JobBase"]>;
52
52
  export type ExplainInput = components["schemas"]["NqlForecastJobInput"];
53
53
  /**
54
54
  * The forecast, or the reason it could not be produced. Exactly one of
@@ -1,4 +1,5 @@
1
1
  import type { components } from "../generated/api-types";
2
+ import type { BaseJob, CalculateAffectedRowsJob, CollectAccessRulesBillingDataJob, DatasetsCalculateColumnStatsJob, DatasetsCreateTableJob, DatasetsDeleteTableJob, DatasetsDeliverDataJob, DatasetsEnforceRowTtlRetentionPolicyJob, DatasetsEnforceTableTtlRetentionPolicyJob, DatasetsExecuteDmlJob, DatasetsSampleJob, DatasetsTruncateTableJob, ExplainJob, HealthCheckJob, Job, MaterializedViewJob, ModelInferenceRunJob, ModelsDeliverModelJob, ModelsTrainClassifierJob, ModelTrainingRunJob, UnknownJob } from "../jobs/types";
2
3
  /** A data plane as the API returns it, owned or shared. */
3
4
  export type DataPlaneResponse = components["schemas"]["DataPlaneResponse"];
4
5
  /**
@@ -30,36 +31,36 @@ export type DataPlanePlatform = components["schemas"]["Platform"];
30
31
  */
31
32
  export type DataPlaneSharedPlatform = components["schemas"]["PlatformSharedResponse"];
32
33
  /** A job as the API returns it, including the one a health check enqueues. */
33
- export type JobResponse = components["schemas"]["JobResponse"];
34
+ export type JobResponse = Job;
34
35
  /**
35
36
  * The fields every job carries, whatever its type. Exported so a test can build
36
37
  * a job type the fixtures do not cover without restating the envelope.
37
38
  */
38
- export type JobEnvelope = components["schemas"]["JobBase"];
39
- export type MaterializeViewJobResponse = components["schemas"]["MaterializeViewJobResponse"];
40
- export type NqlForecastJobResponse = components["schemas"]["NqlForecastJobResponse"];
41
- export type DatasetsSampleJobResponse = components["schemas"]["DatasetsSampleJobResponse"];
42
- export type DatasetsCalculateColumnStatsJobResponse = components["schemas"]["DatasetsCalculateColumnStatsJobResponse"];
43
- export type CollectAccessRulesBillingDataJobResponse = components["schemas"]["CollectAccessRulesBillingDataJobResponse"];
44
- export type DatasetsDeliverDataJobResponse = components["schemas"]["DatasetsDeliverDataJobResponse"];
45
- export type ModelInferenceRunJobResponse = components["schemas"]["ModelInferenceRunJobResponse"];
46
- export type DatasetsDeleteTableJobResponse = components["schemas"]["DatasetsDeleteTableJobResponse"];
47
- export type DatasetsExecuteDmlJobResponse = components["schemas"]["DatasetsExecuteDmlJobResponse"];
48
- export type DatasetsCreateTableJobResponse = components["schemas"]["DatasetsCreateTableJobResponse"];
49
- export type DatasetsTruncateTableJobResponse = components["schemas"]["DatasetsTruncateTableJobResponse"];
50
- export type DatasetsEnforceTableTtlRetentionPolicyJobResponse = components["schemas"]["DatasetsEnforceTableTtlRetentionPolicyJobResponse"];
51
- export type DatasetsEnforceRowTtlRetentionPolicyJobResponse = components["schemas"]["DatasetsEnforceRowTtlRetentionPolicyJobResponse"];
52
- export type DatasetsCalculateAffectedRowsJobResponse = components["schemas"]["DatasetsCalculateAffectedRowsJobResponse"];
53
- export type ModelTrainingRunJobResponse = components["schemas"]["ModelTrainingRunJobResponse"];
54
- export type ModelsDeliverModelJobResponse = components["schemas"]["ModelsDeliverModelJobResponse"];
55
- export type ModelsTrainClassifierJobResponse = components["schemas"]["ModelsTrainClassifierJobResponse"];
56
- export type HealthCheckJobResponse = components["schemas"]["HealthCheckJobResponse"];
39
+ export type JobEnvelope = BaseJob;
40
+ export type MaterializeViewJobResponse = MaterializedViewJob;
41
+ export type NqlForecastJobResponse = ExplainJob;
42
+ export type DatasetsSampleJobResponse = DatasetsSampleJob;
43
+ export type DatasetsCalculateColumnStatsJobResponse = DatasetsCalculateColumnStatsJob;
44
+ export type CollectAccessRulesBillingDataJobResponse = CollectAccessRulesBillingDataJob;
45
+ export type DatasetsDeliverDataJobResponse = DatasetsDeliverDataJob;
46
+ export type ModelInferenceRunJobResponse = ModelInferenceRunJob;
47
+ export type DatasetsDeleteTableJobResponse = DatasetsDeleteTableJob;
48
+ export type DatasetsExecuteDmlJobResponse = DatasetsExecuteDmlJob;
49
+ export type DatasetsCreateTableJobResponse = DatasetsCreateTableJob;
50
+ export type DatasetsTruncateTableJobResponse = DatasetsTruncateTableJob;
51
+ export type DatasetsEnforceTableTtlRetentionPolicyJobResponse = DatasetsEnforceTableTtlRetentionPolicyJob;
52
+ export type DatasetsEnforceRowTtlRetentionPolicyJobResponse = DatasetsEnforceRowTtlRetentionPolicyJob;
53
+ export type DatasetsCalculateAffectedRowsJobResponse = CalculateAffectedRowsJob;
54
+ export type ModelTrainingRunJobResponse = ModelTrainingRunJob;
55
+ export type ModelsDeliverModelJobResponse = ModelsDeliverModelJob;
56
+ export type ModelsTrainClassifierJobResponse = ModelsTrainClassifierJob;
57
+ export type HealthCheckJobResponse = HealthCheckJob;
57
58
  /**
58
59
  * A job whose type the spec does not describe a branch for. Job types are free
59
60
  * strings on the server, so this is what a type added after the spec was
60
61
  * generated decodes as, with `input` and `result` left free-form.
61
62
  */
62
- export type OtherJobResponse = components["schemas"]["OtherJobResponse"];
63
+ export type OtherJobResponse = UnknownJob;
63
64
  /**
64
65
  * A derivation rule as the API returns it. `warnings` is populated on create
65
66
  * and update responses and empty on reads.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@narrative.io/data-collaboration-sdk-ts",
3
- "version": "4.5.0",
3
+ "version": "4.7.0",
4
4
  "main": "build/index.js",
5
5
  "repository": "github:narrative-io/data-collaboration-sdk-ts",
6
6
  "source": "src/index.ts",
@@ -86,7 +86,7 @@
86
86
  "@babel/core": "8.0.1",
87
87
  "@babel/preset-env": "8.0.2",
88
88
  "@babel/preset-typescript": "8.0.1",
89
- "@biomejs/biome": "2.5.5",
89
+ "@biomejs/biome": "2.5.6",
90
90
  "@commitlint/cli": "21.2.1",
91
91
  "@commitlint/config-conventional": "21.2.0",
92
92
  "@types/jest": "30.0.0",