attlaz-client 1.63.1 → 1.65.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/Client.d.ts CHANGED
@@ -8,6 +8,7 @@ import { ChannelEndpoint } from './Service/ChannelEndpoint.js';
8
8
  import { CodeDeployEndpoint } from './Service/CodeDeployEndpoint.js';
9
9
  import { CodeSourceStrategiesEndpoint } from './Service/CodeSourceStrategiesEndpoint.js';
10
10
  import { CollectionsEndpoint } from './Service/CollectionsEndpoint.js';
11
+ import { CommandExecutionEndpoint } from './Service/CommandExecutionEndpoint.js';
11
12
  import { ConfigEndpoint } from './Service/ConfigEndpoint.js';
12
13
  import { ConfigurationEndpoint } from './Service/ConfigurationEndpoint.js';
13
14
  import { FirewallEndpoint } from './Service/FirewallEndpoint.js';
@@ -95,6 +96,7 @@ export declare class Client {
95
96
  getCodeSourceStrategiesEndpoint(): CodeSourceStrategiesEndpoint;
96
97
  getSearchEndpoint(): SearchEndpoint;
97
98
  getUserActionEndpoint(): UserActionEndpoint;
99
+ getCommandExecutionEndpoint(): CommandExecutionEndpoint;
98
100
  getAccessTokenEndpoint(): AccessTokenEndpoint;
99
101
  getCollectionsEndpoint(): CollectionsEndpoint;
100
102
  getRunnerPoolEndpoint(): RunnerPoolEndpoint;
package/dist/Client.js CHANGED
@@ -8,6 +8,7 @@ import { ChannelEndpoint } from './Service/ChannelEndpoint.js';
8
8
  import { CodeDeployEndpoint } from './Service/CodeDeployEndpoint.js';
9
9
  import { CodeSourceStrategiesEndpoint } from './Service/CodeSourceStrategiesEndpoint.js';
10
10
  import { CollectionsEndpoint } from './Service/CollectionsEndpoint.js';
11
+ import { CommandExecutionEndpoint } from './Service/CommandExecutionEndpoint.js';
11
12
  import { ConfigEndpoint } from './Service/ConfigEndpoint.js';
12
13
  import { ConfigurationEndpoint } from './Service/ConfigurationEndpoint.js';
13
14
  import { FirewallEndpoint } from './Service/FirewallEndpoint.js';
@@ -46,6 +47,7 @@ export class Client {
46
47
  ChannelEndpoint,
47
48
  CodeDeployEndpoint,
48
49
  CodeSourceStrategiesEndpoint,
50
+ CommandExecutionEndpoint,
49
51
  ConfigEndpoint,
50
52
  FirewallEndpoint,
51
53
  FlowEndpoint,
@@ -231,6 +233,9 @@ export class Client {
231
233
  getUserActionEndpoint() {
232
234
  return this.getEndpoint('useraction', this.Store.UserActionEndpoint);
233
235
  }
236
+ getCommandExecutionEndpoint() {
237
+ return this.getEndpoint('commandexecution', this.Store.CommandExecutionEndpoint);
238
+ }
234
239
  getAccessTokenEndpoint() {
235
240
  return this.getEndpoint('accesstoken', this.Store.AccessTokenEndpoint);
236
241
  }
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Display/filter status of a user API key. Mirrors the server enum
3
+ * (Library/Core Attlaz-OAuth/Model/UserAccessTokenStatus). Folds the derived "expired" concept
4
+ * (computed from the expiry date, not stored) on top of the stored state.
5
+ */
6
+ export declare enum UserAccessTokenStatus {
7
+ Active = "active",
8
+ Inactive = "inactive",
9
+ Expired = "expired",
10
+ Revoked = "revoked"
11
+ }
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Display/filter status of a user API key. Mirrors the server enum
3
+ * (Library/Core Attlaz-OAuth/Model/UserAccessTokenStatus). Folds the derived "expired" concept
4
+ * (computed from the expiry date, not stored) on top of the stored state.
5
+ */
6
+ export var UserAccessTokenStatus;
7
+ (function (UserAccessTokenStatus) {
8
+ UserAccessTokenStatus["Active"] = "active";
9
+ UserAccessTokenStatus["Inactive"] = "inactive";
10
+ UserAccessTokenStatus["Expired"] = "expired";
11
+ UserAccessTokenStatus["Revoked"] = "revoked";
12
+ })(UserAccessTokenStatus || (UserAccessTokenStatus = {}));
@@ -18,7 +18,7 @@ export class AdapterConnection extends MetaDataAware {
18
18
  adapterConnection.projectId = rawAdapterConnection.project;
19
19
  adapterConnection.state = State.fromString(rawAdapterConnection.state);
20
20
  adapterConnection.status = AdapterConnectionStatus.fromString(rawAdapterConnection.status);
21
- adapterConnection.lastUsedAt = (rawAdapterConnection.last_used === null || rawAdapterConnection.last_used === undefined) ? null : Utils.parseRawDate(rawAdapterConnection.last_used);
21
+ adapterConnection.lastUsedAt = (rawAdapterConnection.last_used_at === null || rawAdapterConnection.last_used_at === undefined) ? null : Utils.parseRawDate(rawAdapterConnection.last_used_at);
22
22
  return adapterConnection;
23
23
  }
24
24
  }
@@ -0,0 +1,6 @@
1
+ import { CommandExecutionStatus } from './CommandExecutionStatus.js';
2
+ export interface CommandExecutionFilter {
3
+ status?: CommandExecutionStatus[];
4
+ type?: string[];
5
+ requestedBy?: string;
6
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,15 @@
1
+ import { DataValueCollection } from '../DataValueCollection.js';
2
+ import { CommandExecutionStatus } from './CommandExecutionStatus.js';
3
+ export declare class CommandExecutionHistory {
4
+ id: string;
5
+ commandType: string;
6
+ commandTime: Date;
7
+ commandData: DataValueCollection;
8
+ commandVersion: string;
9
+ requestedBy: string;
10
+ executionStarted: Date | null;
11
+ executionFinished: Date | null;
12
+ executionStatus: CommandExecutionStatus;
13
+ executionError: string | null;
14
+ executionResult: string | null;
15
+ }
@@ -0,0 +1,15 @@
1
+ export class CommandExecutionHistory {
2
+ id;
3
+ commandType;
4
+ commandTime;
5
+ commandData;
6
+ commandVersion;
7
+ // The user that requested the command (the platform system user for cron/event/maintenance commands).
8
+ requestedBy;
9
+ executionStarted;
10
+ executionFinished;
11
+ executionStatus;
12
+ executionError;
13
+ // Structured result payload as a JSON string (e.g. '{"removedCount": 1234}'); shape depends on the command type.
14
+ executionResult;
15
+ }
@@ -0,0 +1,9 @@
1
+ export declare enum CommandExecutionStatus {
2
+ Pending = "pending",
3
+ Running = "running",
4
+ Completed = "completed",
5
+ Failed = "failed"
6
+ }
7
+ export declare namespace CommandExecutionStatus {
8
+ const fromString: (input: string) => CommandExecutionStatus;
9
+ }
@@ -0,0 +1,20 @@
1
+ export var CommandExecutionStatus;
2
+ (function (CommandExecutionStatus) {
3
+ CommandExecutionStatus["Pending"] = "pending";
4
+ CommandExecutionStatus["Running"] = "running";
5
+ CommandExecutionStatus["Completed"] = "completed";
6
+ CommandExecutionStatus["Failed"] = "failed";
7
+ })(CommandExecutionStatus || (CommandExecutionStatus = {}));
8
+ (function (CommandExecutionStatus) {
9
+ CommandExecutionStatus.fromString = (input) => {
10
+ switch (input) {
11
+ case CommandExecutionStatus.Pending:
12
+ case CommandExecutionStatus.Running:
13
+ case CommandExecutionStatus.Completed:
14
+ case CommandExecutionStatus.Failed:
15
+ return input;
16
+ default:
17
+ throw new Error('Unknown CommandExecutionStatus "' + input + '"');
18
+ }
19
+ };
20
+ })(CommandExecutionStatus || (CommandExecutionStatus = {}));
@@ -0,0 +1,15 @@
1
+ import { FlowRunStatus } from './FlowRunStatus.js';
2
+ /**
3
+ * The authoritative lifecycle of a flow run, as derived server-side from its event history
4
+ * (first-terminal-wins). Unlike FlowRunSummary, which reflects the (eventually-consistent) index
5
+ * projection, this is computed directly from the history and is safe for control-flow decisions
6
+ * such as the worker's "is this run already terminal?" tombstone check.
7
+ */
8
+ export declare class FlowRunLifecycle {
9
+ id: string;
10
+ status: FlowRunStatus;
11
+ requested: Date | null;
12
+ started: Date | null;
13
+ ended: Date | null;
14
+ static parse(rawFlowRunLifecycle: any): FlowRunLifecycle;
15
+ }
@@ -0,0 +1,24 @@
1
+ import { Utils } from '../../Utils.js';
2
+ import { FlowRunStatus } from './FlowRunStatus.js';
3
+ /**
4
+ * The authoritative lifecycle of a flow run, as derived server-side from its event history
5
+ * (first-terminal-wins). Unlike FlowRunSummary, which reflects the (eventually-consistent) index
6
+ * projection, this is computed directly from the history and is safe for control-flow decisions
7
+ * such as the worker's "is this run already terminal?" tombstone check.
8
+ */
9
+ export class FlowRunLifecycle {
10
+ id;
11
+ status;
12
+ requested;
13
+ started;
14
+ ended;
15
+ static parse(rawFlowRunLifecycle) {
16
+ const lifecycle = new FlowRunLifecycle();
17
+ lifecycle.id = rawFlowRunLifecycle.id;
18
+ lifecycle.status = FlowRunStatus.fromString(rawFlowRunLifecycle.status);
19
+ lifecycle.requested = rawFlowRunLifecycle.requested === null || rawFlowRunLifecycle.requested === undefined ? null : Utils.parseRawDate(rawFlowRunLifecycle.requested);
20
+ lifecycle.started = rawFlowRunLifecycle.started === null || rawFlowRunLifecycle.started === undefined ? null : Utils.parseRawDate(rawFlowRunLifecycle.started);
21
+ lifecycle.ended = rawFlowRunLifecycle.ended === null || rawFlowRunLifecycle.ended === undefined ? null : Utils.parseRawDate(rawFlowRunLifecycle.ended);
22
+ return lifecycle;
23
+ }
24
+ }
@@ -1,5 +1,6 @@
1
1
  import { ApiRecord } from '../ApiRecord.js';
2
2
  export declare class ProviderTokenAccessToken {
3
3
  accessToken: string;
4
+ expiresAt: Date | null;
4
5
  static parse(rawToken: ApiRecord): ProviderTokenAccessToken;
5
6
  }
@@ -1,8 +1,11 @@
1
1
  export class ProviderTokenAccessToken {
2
2
  accessToken;
3
+ // When the access token expires — lets callers cache it for the run instead of re-fetching per call.
4
+ expiresAt = null;
3
5
  static parse(rawToken) {
4
6
  const token = new ProviderTokenAccessToken();
5
7
  token.accessToken = rawToken.access_token;
8
+ token.expiresAt = rawToken.expires_at !== undefined && rawToken.expires_at !== null ? new Date(rawToken.expires_at) : null;
6
9
  return token;
7
10
  }
8
11
  }
@@ -1,9 +1,10 @@
1
1
  import { CollectionResult } from '../Model/Result/CollectionResult.js';
2
2
  import { CursorPagination } from '../Model/Pagination/CursorPagination.js';
3
3
  import { UserAccessToken } from '../Model/AccessToken/UserAccessToken.js';
4
+ import { UserAccessTokenStatus } from '../Model/AccessToken/UserAccessTokenStatus.js';
4
5
  import { Endpoint } from './Endpoint.js';
5
6
  export declare class AccessTokenEndpoint extends Endpoint {
6
- getByUser(pagination: CursorPagination): Promise<CollectionResult<UserAccessToken>>;
7
+ getByUser(pagination: CursorPagination, status?: UserAccessTokenStatus | null): Promise<CollectionResult<UserAccessToken>>;
7
8
  create(name: string, scopes: string[], expiresAt: Date): Promise<UserAccessToken>;
8
9
  update(tokenId: string, name: string, scopes: string[]): Promise<UserAccessToken>;
9
10
  revoke(tokenId: string): Promise<boolean>;
@@ -2,9 +2,12 @@ import { QueryString } from '../Http/Data/QueryString.js';
2
2
  import { UserAccessToken } from '../Model/AccessToken/UserAccessToken.js';
3
3
  import { Endpoint } from './Endpoint.js';
4
4
  export class AccessTokenEndpoint extends Endpoint {
5
- async getByUser(pagination) {
5
+ async getByUser(pagination, status = null) {
6
6
  const queryString = new QueryString('/access-tokens');
7
7
  queryString.addPagination(pagination);
8
+ if (status !== null) {
9
+ queryString.set('status', status);
10
+ }
8
11
  try {
9
12
  const result = await this.requestCollection(queryString, UserAccessToken.parse);
10
13
  return result;
@@ -0,0 +1,10 @@
1
+ import { CommandExecutionFilter } from '../Model/Command/CommandExecutionFilter.js';
2
+ import { CommandExecutionHistory } from '../Model/Command/CommandExecutionHistory.js';
3
+ import { CursorPagination } from '../Model/Pagination/CursorPagination.js';
4
+ import { CollectionResult } from '../Model/Result/CollectionResult.js';
5
+ import { Endpoint } from './Endpoint.js';
6
+ export declare class CommandExecutionEndpoint extends Endpoint {
7
+ getAll(pagination?: CursorPagination | null, filter?: CommandExecutionFilter | null): Promise<CollectionResult<CommandExecutionHistory>>;
8
+ getById(id: string): Promise<CommandExecutionHistory | null>;
9
+ private static parse;
10
+ }
@@ -0,0 +1,44 @@
1
+ import { QueryString } from '../Http/Data/QueryString.js';
2
+ import { CommandExecutionHistory } from '../Model/Command/CommandExecutionHistory.js';
3
+ import { CommandExecutionStatus } from '../Model/Command/CommandExecutionStatus.js';
4
+ import { DataValueCollection } from '../Model/DataValueCollection.js';
5
+ import { Utils } from '../Utils.js';
6
+ import { Endpoint } from './Endpoint.js';
7
+ export class CommandExecutionEndpoint extends Endpoint {
8
+ async getAll(pagination = null, filter = null) {
9
+ const queryString = new QueryString('/system/command-executions');
10
+ queryString.addPagination(pagination);
11
+ if (filter !== null) {
12
+ if (filter.status !== undefined && filter.status.length > 0) {
13
+ queryString.set('status', filter.status);
14
+ }
15
+ if (filter.type !== undefined && filter.type.length > 0) {
16
+ queryString.set('type', filter.type);
17
+ }
18
+ if (filter.requestedBy !== undefined) {
19
+ queryString.set('requested_by', filter.requestedBy);
20
+ }
21
+ }
22
+ return await this.requestCollection(queryString, CommandExecutionEndpoint.parse, null, 'GET');
23
+ }
24
+ async getById(id) {
25
+ const queryString = new QueryString('/system/command-executions/' + id);
26
+ const result = await this.requestObject(queryString, null, CommandExecutionEndpoint.parse, 'GET');
27
+ return result.getData();
28
+ }
29
+ static parse(raw) {
30
+ const history = new CommandExecutionHistory();
31
+ history.id = raw.id;
32
+ history.commandType = raw.command_type;
33
+ history.commandTime = Utils.parseRawDate(raw.command_time);
34
+ history.commandData = DataValueCollection.fromObject(raw.command_data);
35
+ history.commandVersion = raw.command_version;
36
+ history.requestedBy = raw.requested_by;
37
+ history.executionStarted = (raw.execution_started === null || raw.execution_started === undefined) ? null : Utils.parseRawDate(raw.execution_started);
38
+ history.executionFinished = (raw.execution_finished === null || raw.execution_finished === undefined) ? null : Utils.parseRawDate(raw.execution_finished);
39
+ history.executionStatus = CommandExecutionStatus.fromString(raw.execution_status);
40
+ history.executionError = raw.execution_error ?? null;
41
+ history.executionResult = raw.execution_result ?? null;
42
+ return history;
43
+ }
44
+ }
@@ -2,6 +2,7 @@ import { FlowRun } from '../Model/Flow/FlowRun.js';
2
2
  import { FlowRunStatus } from '../Model/Flow/FlowRunStatus.js';
3
3
  import { FlowRunSummary } from '../Model/Flow/FlowRunSummary.js';
4
4
  import { FlowRunHistory } from '../Model/Flow/FlowRunHistory.js';
5
+ import { FlowRunLifecycle } from '../Model/Flow/FlowRunLifecycle.js';
5
6
  import { CollectionResult } from '../Model/Result/CollectionResult.js';
6
7
  import { CursorPagination } from '../Model/Pagination/CursorPagination.js';
7
8
  import { Endpoint } from './Endpoint.js';
@@ -10,5 +11,11 @@ export declare class FlowRunEndpoint extends Endpoint {
10
11
  getFlowRunSummaries(flowId: string, flowRunStatuses?: FlowRunStatus[] | null, pagination?: CursorPagination | null, projectEnvironmentId?: string | null): Promise<CollectionResult<FlowRunSummary>>;
11
12
  getFlowRunSummary(flowRunId: string): Promise<FlowRunSummary | null>;
12
13
  getFlowRunHistory(flowRunId: string): Promise<CollectionResult<FlowRunHistory>>;
14
+ /**
15
+ * Authoritative lifecycle (status derived from history, first-terminal-wins). Prefer this over
16
+ * getFlowRunSummary for control-flow decisions (e.g. the worker tombstone), since the summary
17
+ * reflects the eventually-consistent index projection which can lag the history.
18
+ */
19
+ getFlowRunLifecycle(flowRunId: string): Promise<FlowRunLifecycle | null>;
13
20
  updateFlowRun(flowRunId: string, status: FlowRunStatus, time?: Date | null): Promise<FlowRun>;
14
21
  }
@@ -1,6 +1,7 @@
1
1
  import { FlowRun } from '../Model/Flow/FlowRun.js';
2
2
  import { FlowRunSummary } from '../Model/Flow/FlowRunSummary.js';
3
3
  import { FlowRunHistory } from '../Model/Flow/FlowRunHistory.js';
4
+ import { FlowRunLifecycle } from '../Model/Flow/FlowRunLifecycle.js';
4
5
  import { QueryString } from '../Http/Data/QueryString.js';
5
6
  import { Endpoint } from './Endpoint.js';
6
7
  export class FlowRunEndpoint extends Endpoint {
@@ -62,6 +63,15 @@ export class FlowRunEndpoint extends Endpoint {
62
63
  const result = await this.requestCollection('/flowruns/' + flowRunId + '/history', FlowRunHistory.parse);
63
64
  return result;
64
65
  }
66
+ /**
67
+ * Authoritative lifecycle (status derived from history, first-terminal-wins). Prefer this over
68
+ * getFlowRunSummary for control-flow decisions (e.g. the worker tombstone), since the summary
69
+ * reflects the eventually-consistent index projection which can lag the history.
70
+ */
71
+ async getFlowRunLifecycle(flowRunId) {
72
+ const result = await this.requestObject('/flowruns/' + flowRunId + '/lifecycle', null, FlowRunLifecycle.parse);
73
+ return result.getData();
74
+ }
65
75
  async updateFlowRun(flowRunId, status, time = null) {
66
76
  if (flowRunId.length === 0) {
67
77
  throw new Error('Flow run id cannot be empty');
package/dist/index.d.ts CHANGED
@@ -24,6 +24,7 @@ export { LoadAllHelper } from './Helper/LoadAllHelper.js';
24
24
  * Models
25
25
  */
26
26
  export { UserAccessToken } from './Model/AccessToken/UserAccessToken.js';
27
+ export { UserAccessTokenStatus } from './Model/AccessToken/UserAccessTokenStatus.js';
27
28
  export { Adapter } from './Model/Adapter/Adapter.js';
28
29
  export { AdapterConfiguration } from './Model/Adapter/AdapterConfiguration.js';
29
30
  export { AdapterConnection } from './Model/Adapter/AdapterConnection.js';
@@ -117,6 +118,7 @@ export { StateAware } from './Model/StateAware.js';
117
118
  export { Flow } from './Model/Flow/Flow.js';
118
119
  export { FlowRun } from './Model/Flow/FlowRun.js';
119
120
  export { FlowRunHistory } from './Model/Flow/FlowRunHistory.js';
121
+ export { FlowRunLifecycle } from './Model/Flow/FlowRunLifecycle.js';
120
122
  export { FlowRunResponse } from './Model/Flow/FlowRunResponse.js';
121
123
  export { FlowRunStatus } from './Model/Flow/FlowRunStatus.js';
122
124
  export { FlowRunSummary } from './Model/Flow/FlowRunSummary.js';
@@ -127,6 +129,9 @@ export { User } from './Model/User/User.js';
127
129
  export { UserAuthProvider } from './Model/User/UserAuthProvider.js';
128
130
  export { UserAction } from './Model/User/UserAction.js';
129
131
  export { RunnerImage } from './Model/Runner/RunnerImage.js';
132
+ export { CommandExecutionHistory } from './Model/Command/CommandExecutionHistory.js';
133
+ export { CommandExecutionStatus } from './Model/Command/CommandExecutionStatus.js';
134
+ export { CommandExecutionFilter } from './Model/Command/CommandExecutionFilter.js';
130
135
  export { Endpoint } from './Service/Endpoint.js';
131
136
  export { AdapterEndpoint } from './Service/AdapterEndpoint.js';
132
137
  export { AdapterConnectionEndpoint } from './Service/AdapterConnectionEndpoint.js';
package/dist/index.js CHANGED
@@ -17,6 +17,7 @@ export { LoadAllHelper } from './Helper/LoadAllHelper.js';
17
17
  * Models
18
18
  */
19
19
  export { UserAccessToken } from './Model/AccessToken/UserAccessToken.js';
20
+ export { UserAccessTokenStatus } from './Model/AccessToken/UserAccessTokenStatus.js';
20
21
  export { Adapter } from './Model/Adapter/Adapter.js';
21
22
  export { AdapterConfiguration } from './Model/Adapter/AdapterConfiguration.js';
22
23
  export { AdapterConnection } from './Model/Adapter/AdapterConnection.js';
@@ -105,6 +106,7 @@ export { State } from './Model/State.js';
105
106
  export { Flow } from './Model/Flow/Flow.js';
106
107
  export { FlowRun } from './Model/Flow/FlowRun.js';
107
108
  export { FlowRunHistory } from './Model/Flow/FlowRunHistory.js';
109
+ export { FlowRunLifecycle } from './Model/Flow/FlowRunLifecycle.js';
108
110
  export { FlowRunResponse } from './Model/Flow/FlowRunResponse.js';
109
111
  export { FlowRunStatus } from './Model/Flow/FlowRunStatus.js';
110
112
  export { FlowRunSummary } from './Model/Flow/FlowRunSummary.js';
@@ -115,6 +117,8 @@ export { User } from './Model/User/User.js';
115
117
  export { UserAuthProvider } from './Model/User/UserAuthProvider.js';
116
118
  export { UserAction } from './Model/User/UserAction.js';
117
119
  export { RunnerImage } from './Model/Runner/RunnerImage.js';
120
+ export { CommandExecutionHistory } from './Model/Command/CommandExecutionHistory.js';
121
+ export { CommandExecutionStatus } from './Model/Command/CommandExecutionStatus.js';
118
122
  export { Endpoint } from './Service/Endpoint.js';
119
123
  /* Endpoints */
120
124
  export { AdapterEndpoint } from './Service/AdapterEndpoint.js';
package/dist/version.d.ts CHANGED
@@ -1 +1 @@
1
- export declare const VERSION = "1.63.0";
1
+ export declare const VERSION = "1.65.0";
package/dist/version.js CHANGED
@@ -1 +1 @@
1
- export const VERSION = "1.63.0";
1
+ export const VERSION = "1.65.0";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "attlaz-client",
3
- "version": "1.63.1",
3
+ "version": "1.65.0",
4
4
  "description": "Javascript Client to access Attlaz API",
5
5
  "types": "./dist/index.d.ts",
6
6
  "main": "./dist/index.js",
@@ -55,7 +55,7 @@
55
55
  "@typescript-eslint/parser": "^8.59.3",
56
56
  "eslint": "^9.39.4",
57
57
  "eslint-config-attlaz-base": "^1.8.0",
58
- "eslint-import-resolver-typescript": "^4.4.4",
58
+ "eslint-import-resolver-typescript": "^4.4.5",
59
59
  "eslint-plugin-import": "^2.32.0",
60
60
  "eslint-plugin-jsdoc": "^62.9.0",
61
61
  "eslint-plugin-prefer-arrow": "^1.2.3",