windmill-cli 1.423.1 → 1.426.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 (93) hide show
  1. package/esm/deps/jsr.io/@std/io/0.225.0/read_all.js +1 -1
  2. package/esm/deps/jsr.io/@std/log/0.224.10/file_handler.js +318 -0
  3. package/esm/deps/jsr.io/@std/log/{0.224.9 → 0.224.10}/logger.js +78 -0
  4. package/esm/deps.js +1 -1
  5. package/esm/gen/core/OpenAPI.js +1 -1
  6. package/esm/gen/services.gen.js +296 -1
  7. package/esm/main.js +1 -1
  8. package/esm/settings.js +3 -3
  9. package/package.json +1 -1
  10. package/types/deps/jsr.io/@std/bytes/{1.0.3 → 1.0.4}/concat.d.ts.map +1 -1
  11. package/types/deps/jsr.io/@std/log/0.224.10/_config.d.ts.map +1 -0
  12. package/types/deps/jsr.io/@std/log/0.224.10/_file_handler_symbols.d.ts.map +1 -0
  13. package/types/deps/jsr.io/@std/log/0.224.10/_state.d.ts.map +1 -0
  14. package/types/deps/jsr.io/@std/log/0.224.10/base_handler.d.ts.map +1 -0
  15. package/types/deps/jsr.io/@std/log/0.224.10/console_handler.d.ts.map +1 -0
  16. package/types/deps/jsr.io/@std/log/0.224.10/critical.d.ts.map +1 -0
  17. package/types/deps/jsr.io/@std/log/0.224.10/debug.d.ts.map +1 -0
  18. package/types/deps/jsr.io/@std/log/0.224.10/error.d.ts.map +1 -0
  19. package/types/deps/jsr.io/@std/log/0.224.10/file_handler.d.ts +251 -0
  20. package/types/deps/jsr.io/@std/log/0.224.10/file_handler.d.ts.map +1 -0
  21. package/types/deps/jsr.io/@std/log/0.224.10/formatters.d.ts.map +1 -0
  22. package/types/deps/jsr.io/@std/log/0.224.10/get_logger.d.ts.map +1 -0
  23. package/types/deps/jsr.io/@std/log/0.224.10/info.d.ts.map +1 -0
  24. package/types/deps/jsr.io/@std/log/0.224.10/levels.d.ts.map +1 -0
  25. package/types/deps/jsr.io/@std/log/{0.224.9 → 0.224.10}/logger.d.ts +83 -0
  26. package/types/deps/jsr.io/@std/log/0.224.10/logger.d.ts.map +1 -0
  27. package/types/deps/jsr.io/@std/log/0.224.10/mod.d.ts.map +1 -0
  28. package/types/deps/jsr.io/@std/log/0.224.10/rotating_file_handler.d.ts.map +1 -0
  29. package/types/deps/jsr.io/@std/log/0.224.10/setup.d.ts.map +1 -0
  30. package/types/deps/jsr.io/@std/log/0.224.10/warn.d.ts.map +1 -0
  31. package/types/deps.d.ts +1 -1
  32. package/types/deps.d.ts.map +1 -1
  33. package/types/gen/services.gen.d.ts +143 -1
  34. package/types/gen/services.gen.d.ts.map +1 -1
  35. package/types/gen/types.gen.d.ts +180 -8
  36. package/types/gen/types.gen.d.ts.map +1 -1
  37. package/types/main.d.ts +1 -1
  38. package/types/settings.d.ts +2 -2
  39. package/types/settings.d.ts.map +1 -1
  40. package/esm/deps/jsr.io/@std/log/0.224.9/file_handler.js +0 -135
  41. package/types/deps/jsr.io/@std/log/0.224.9/_config.d.ts.map +0 -1
  42. package/types/deps/jsr.io/@std/log/0.224.9/_file_handler_symbols.d.ts.map +0 -1
  43. package/types/deps/jsr.io/@std/log/0.224.9/_state.d.ts.map +0 -1
  44. package/types/deps/jsr.io/@std/log/0.224.9/base_handler.d.ts.map +0 -1
  45. package/types/deps/jsr.io/@std/log/0.224.9/console_handler.d.ts.map +0 -1
  46. package/types/deps/jsr.io/@std/log/0.224.9/critical.d.ts.map +0 -1
  47. package/types/deps/jsr.io/@std/log/0.224.9/debug.d.ts.map +0 -1
  48. package/types/deps/jsr.io/@std/log/0.224.9/error.d.ts.map +0 -1
  49. package/types/deps/jsr.io/@std/log/0.224.9/file_handler.d.ts +0 -54
  50. package/types/deps/jsr.io/@std/log/0.224.9/file_handler.d.ts.map +0 -1
  51. package/types/deps/jsr.io/@std/log/0.224.9/formatters.d.ts.map +0 -1
  52. package/types/deps/jsr.io/@std/log/0.224.9/get_logger.d.ts.map +0 -1
  53. package/types/deps/jsr.io/@std/log/0.224.9/info.d.ts.map +0 -1
  54. package/types/deps/jsr.io/@std/log/0.224.9/levels.d.ts.map +0 -1
  55. package/types/deps/jsr.io/@std/log/0.224.9/logger.d.ts.map +0 -1
  56. package/types/deps/jsr.io/@std/log/0.224.9/mod.d.ts.map +0 -1
  57. package/types/deps/jsr.io/@std/log/0.224.9/rotating_file_handler.d.ts.map +0 -1
  58. package/types/deps/jsr.io/@std/log/0.224.9/setup.d.ts.map +0 -1
  59. package/types/deps/jsr.io/@std/log/0.224.9/warn.d.ts.map +0 -1
  60. /package/esm/deps/jsr.io/@std/bytes/{1.0.3 → 1.0.4}/concat.js +0 -0
  61. /package/esm/deps/jsr.io/@std/log/{0.224.9 → 0.224.10}/_config.js +0 -0
  62. /package/esm/deps/jsr.io/@std/log/{0.224.9 → 0.224.10}/_file_handler_symbols.js +0 -0
  63. /package/esm/deps/jsr.io/@std/log/{0.224.9 → 0.224.10}/_state.js +0 -0
  64. /package/esm/deps/jsr.io/@std/log/{0.224.9 → 0.224.10}/base_handler.js +0 -0
  65. /package/esm/deps/jsr.io/@std/log/{0.224.9 → 0.224.10}/console_handler.js +0 -0
  66. /package/esm/deps/jsr.io/@std/log/{0.224.9 → 0.224.10}/critical.js +0 -0
  67. /package/esm/deps/jsr.io/@std/log/{0.224.9 → 0.224.10}/debug.js +0 -0
  68. /package/esm/deps/jsr.io/@std/log/{0.224.9 → 0.224.10}/error.js +0 -0
  69. /package/esm/deps/jsr.io/@std/log/{0.224.9 → 0.224.10}/formatters.js +0 -0
  70. /package/esm/deps/jsr.io/@std/log/{0.224.9 → 0.224.10}/get_logger.js +0 -0
  71. /package/esm/deps/jsr.io/@std/log/{0.224.9 → 0.224.10}/info.js +0 -0
  72. /package/esm/deps/jsr.io/@std/log/{0.224.9 → 0.224.10}/levels.js +0 -0
  73. /package/esm/deps/jsr.io/@std/log/{0.224.9 → 0.224.10}/mod.js +0 -0
  74. /package/esm/deps/jsr.io/@std/log/{0.224.9 → 0.224.10}/rotating_file_handler.js +0 -0
  75. /package/esm/deps/jsr.io/@std/log/{0.224.9 → 0.224.10}/setup.js +0 -0
  76. /package/esm/deps/jsr.io/@std/log/{0.224.9 → 0.224.10}/warn.js +0 -0
  77. /package/types/deps/jsr.io/@std/bytes/{1.0.3 → 1.0.4}/concat.d.ts +0 -0
  78. /package/types/deps/jsr.io/@std/log/{0.224.9 → 0.224.10}/_config.d.ts +0 -0
  79. /package/types/deps/jsr.io/@std/log/{0.224.9 → 0.224.10}/_file_handler_symbols.d.ts +0 -0
  80. /package/types/deps/jsr.io/@std/log/{0.224.9 → 0.224.10}/_state.d.ts +0 -0
  81. /package/types/deps/jsr.io/@std/log/{0.224.9 → 0.224.10}/base_handler.d.ts +0 -0
  82. /package/types/deps/jsr.io/@std/log/{0.224.9 → 0.224.10}/console_handler.d.ts +0 -0
  83. /package/types/deps/jsr.io/@std/log/{0.224.9 → 0.224.10}/critical.d.ts +0 -0
  84. /package/types/deps/jsr.io/@std/log/{0.224.9 → 0.224.10}/debug.d.ts +0 -0
  85. /package/types/deps/jsr.io/@std/log/{0.224.9 → 0.224.10}/error.d.ts +0 -0
  86. /package/types/deps/jsr.io/@std/log/{0.224.9 → 0.224.10}/formatters.d.ts +0 -0
  87. /package/types/deps/jsr.io/@std/log/{0.224.9 → 0.224.10}/get_logger.d.ts +0 -0
  88. /package/types/deps/jsr.io/@std/log/{0.224.9 → 0.224.10}/info.d.ts +0 -0
  89. /package/types/deps/jsr.io/@std/log/{0.224.9 → 0.224.10}/levels.d.ts +0 -0
  90. /package/types/deps/jsr.io/@std/log/{0.224.9 → 0.224.10}/mod.d.ts +0 -0
  91. /package/types/deps/jsr.io/@std/log/{0.224.9 → 0.224.10}/rotating_file_handler.d.ts +0 -0
  92. /package/types/deps/jsr.io/@std/log/{0.224.9 → 0.224.10}/setup.d.ts +0 -0
  93. /package/types/deps/jsr.io/@std/log/{0.224.9 → 0.224.10}/warn.d.ts +0 -0
@@ -139,7 +139,7 @@ export const logout = () => {
139
139
  export const getUser = (data) => {
140
140
  return __request(OpenAPI, {
141
141
  method: 'GET',
142
- url: '/w/{workspace}/users/{username}',
142
+ url: '/w/{workspace}/users/get/{username}',
143
143
  path: {
144
144
  workspace: data.workspace,
145
145
  username: data.username
@@ -200,6 +200,44 @@ export const setPassword = (data) => {
200
200
  mediaType: 'application/json'
201
201
  });
202
202
  };
203
+ /**
204
+ * set password for a specific user (require super admin)
205
+ * @param data The data for the request.
206
+ * @param data.user
207
+ * @param data.requestBody set password
208
+ * @returns string password set
209
+ * @throws ApiError
210
+ */
211
+ export const setPasswordForUser = (data) => {
212
+ return __request(OpenAPI, {
213
+ method: 'POST',
214
+ url: '/users/set_password_of/{user}',
215
+ path: {
216
+ user: data.user
217
+ },
218
+ body: data.requestBody,
219
+ mediaType: 'application/json'
220
+ });
221
+ };
222
+ /**
223
+ * set login type for a specific user (require super admin)
224
+ * @param data The data for the request.
225
+ * @param data.user
226
+ * @param data.requestBody set login type
227
+ * @returns string login type set
228
+ * @throws ApiError
229
+ */
230
+ export const setLoginTypeForUser = (data) => {
231
+ return __request(OpenAPI, {
232
+ method: 'POST',
233
+ url: '/users/set_login_type/{user}',
234
+ path: {
235
+ user: data.user
236
+ },
237
+ body: data.requestBody,
238
+ mediaType: 'application/json'
239
+ });
240
+ };
203
241
  /**
204
242
  * create user
205
243
  * @param data The data for the request.
@@ -1851,6 +1889,83 @@ export const listContextualVariables = (data) => {
1851
1889
  }
1852
1890
  });
1853
1891
  };
1892
+ /**
1893
+ * Get all critical alerts for this workspace
1894
+ * @param data The data for the request.
1895
+ * @param data.workspace
1896
+ * @param data.page
1897
+ * @param data.pageSize
1898
+ * @param data.acknowledged
1899
+ * @returns CriticalAlert Successfully retrieved all critical alerts
1900
+ * @throws ApiError
1901
+ */
1902
+ export const workspaceGetCriticalAlerts = (data) => {
1903
+ return __request(OpenAPI, {
1904
+ method: 'GET',
1905
+ url: '/w/{workspace}/workspaces/critical_alerts',
1906
+ path: {
1907
+ workspace: data.workspace
1908
+ },
1909
+ query: {
1910
+ page: data.page,
1911
+ page_size: data.pageSize,
1912
+ acknowledged: data.acknowledged
1913
+ }
1914
+ });
1915
+ };
1916
+ /**
1917
+ * Acknowledge a critical alert for this workspace
1918
+ * @param data The data for the request.
1919
+ * @param data.workspace
1920
+ * @param data.id The ID of the critical alert to acknowledge
1921
+ * @returns string Successfully acknowledged the critical alert
1922
+ * @throws ApiError
1923
+ */
1924
+ export const workspaceAcknowledgeCriticalAlert = (data) => {
1925
+ return __request(OpenAPI, {
1926
+ method: 'POST',
1927
+ url: '/w/{workspace}/workspaces/critical_alerts/{id}/acknowledge',
1928
+ path: {
1929
+ workspace: data.workspace,
1930
+ id: data.id
1931
+ }
1932
+ });
1933
+ };
1934
+ /**
1935
+ * Acknowledge all unacknowledged critical alerts for this workspace
1936
+ * @param data The data for the request.
1937
+ * @param data.workspace
1938
+ * @returns string Successfully acknowledged all unacknowledged critical alerts.
1939
+ * @throws ApiError
1940
+ */
1941
+ export const workspaceAcknowledgeAllCriticalAlerts = (data) => {
1942
+ return __request(OpenAPI, {
1943
+ method: 'POST',
1944
+ url: '/w/{workspace}/workspaces/critical_alerts/acknowledge_all',
1945
+ path: {
1946
+ workspace: data.workspace
1947
+ }
1948
+ });
1949
+ };
1950
+ /**
1951
+ * Mute critical alert UI for this workspace
1952
+ * @param data The data for the request.
1953
+ * @param data.workspace
1954
+ * @param data.requestBody Boolean flag to mute critical alerts.
1955
+ * @returns string Successfully updated mute critical alert settings.
1956
+ * @throws ApiError
1957
+ */
1958
+ export const workspaceMuteCriticalAlertsUi = (data) => {
1959
+ return __request(OpenAPI, {
1960
+ method: 'POST',
1961
+ url: '/w/{workspace}/workspaces/critical_alerts/mute',
1962
+ path: {
1963
+ workspace: data.workspace
1964
+ },
1965
+ body: data.requestBody,
1966
+ mediaType: 'application/json'
1967
+ });
1968
+ };
1854
1969
  /**
1855
1970
  * login with oauth authorization flow
1856
1971
  * @param data The data for the request.
@@ -4473,6 +4588,32 @@ export const getCompletedCount = (data) => {
4473
4588
  }
4474
4589
  });
4475
4590
  };
4591
+ /**
4592
+ * count number of completed jobs with filter
4593
+ * @param data The data for the request.
4594
+ * @param data.workspace
4595
+ * @param data.completedAfterSAgo
4596
+ * @param data.success
4597
+ * @param data.tags
4598
+ * @param data.allWorkspaces
4599
+ * @returns number Count of completed jobs
4600
+ * @throws ApiError
4601
+ */
4602
+ export const countCompletedJobs = (data) => {
4603
+ return __request(OpenAPI, {
4604
+ method: 'GET',
4605
+ url: '/w/{workspace}/jobs/completed/count_jobs',
4606
+ path: {
4607
+ workspace: data.workspace
4608
+ },
4609
+ query: {
4610
+ completed_after_s_ago: data.completedAfterSAgo,
4611
+ success: data.success,
4612
+ tags: data.tags,
4613
+ all_workspaces: data.allWorkspaces
4614
+ }
4615
+ });
4616
+ };
4476
4617
  /**
4477
4618
  * get the ids of all jobs matching the given filters
4478
4619
  * @param data The data for the request.
@@ -5743,6 +5884,149 @@ export const setWebsocketTriggerEnabled = (data) => {
5743
5884
  mediaType: 'application/json'
5744
5885
  });
5745
5886
  };
5887
+ /**
5888
+ * create kafka trigger
5889
+ * @param data The data for the request.
5890
+ * @param data.workspace
5891
+ * @param data.requestBody new kafka trigger
5892
+ * @returns string kafka trigger created
5893
+ * @throws ApiError
5894
+ */
5895
+ export const createKafkaTrigger = (data) => {
5896
+ return __request(OpenAPI, {
5897
+ method: 'POST',
5898
+ url: '/w/{workspace}/kafka_triggers/create',
5899
+ path: {
5900
+ workspace: data.workspace
5901
+ },
5902
+ body: data.requestBody,
5903
+ mediaType: 'application/json'
5904
+ });
5905
+ };
5906
+ /**
5907
+ * update kafka trigger
5908
+ * @param data The data for the request.
5909
+ * @param data.workspace
5910
+ * @param data.path
5911
+ * @param data.requestBody updated trigger
5912
+ * @returns string kafka trigger updated
5913
+ * @throws ApiError
5914
+ */
5915
+ export const updateKafkaTrigger = (data) => {
5916
+ return __request(OpenAPI, {
5917
+ method: 'POST',
5918
+ url: '/w/{workspace}/kafka_triggers/update/{path}',
5919
+ path: {
5920
+ workspace: data.workspace,
5921
+ path: data.path
5922
+ },
5923
+ body: data.requestBody,
5924
+ mediaType: 'application/json'
5925
+ });
5926
+ };
5927
+ /**
5928
+ * delete kafka trigger
5929
+ * @param data The data for the request.
5930
+ * @param data.workspace
5931
+ * @param data.path
5932
+ * @returns string kafka trigger deleted
5933
+ * @throws ApiError
5934
+ */
5935
+ export const deleteKafkaTrigger = (data) => {
5936
+ return __request(OpenAPI, {
5937
+ method: 'DELETE',
5938
+ url: '/w/{workspace}/kafka_triggers/delete/{path}',
5939
+ path: {
5940
+ workspace: data.workspace,
5941
+ path: data.path
5942
+ }
5943
+ });
5944
+ };
5945
+ /**
5946
+ * get kafka trigger
5947
+ * @param data The data for the request.
5948
+ * @param data.workspace
5949
+ * @param data.path
5950
+ * @returns KafkaTrigger kafka trigger deleted
5951
+ * @throws ApiError
5952
+ */
5953
+ export const getKafkaTrigger = (data) => {
5954
+ return __request(OpenAPI, {
5955
+ method: 'GET',
5956
+ url: '/w/{workspace}/kafka_triggers/get/{path}',
5957
+ path: {
5958
+ workspace: data.workspace,
5959
+ path: data.path
5960
+ }
5961
+ });
5962
+ };
5963
+ /**
5964
+ * list kafka triggers
5965
+ * @param data The data for the request.
5966
+ * @param data.workspace
5967
+ * @param data.page which page to return (start at 1, default 1)
5968
+ * @param data.perPage number of items to return for a given page (default 30, max 100)
5969
+ * @param data.path filter by path
5970
+ * @param data.isFlow
5971
+ * @param data.pathStart
5972
+ * @returns KafkaTrigger kafka trigger list
5973
+ * @throws ApiError
5974
+ */
5975
+ export const listKafkaTriggers = (data) => {
5976
+ return __request(OpenAPI, {
5977
+ method: 'GET',
5978
+ url: '/w/{workspace}/kafka_triggers/list',
5979
+ path: {
5980
+ workspace: data.workspace
5981
+ },
5982
+ query: {
5983
+ page: data.page,
5984
+ per_page: data.perPage,
5985
+ path: data.path,
5986
+ is_flow: data.isFlow,
5987
+ path_start: data.pathStart
5988
+ }
5989
+ });
5990
+ };
5991
+ /**
5992
+ * does kafka trigger exists
5993
+ * @param data The data for the request.
5994
+ * @param data.workspace
5995
+ * @param data.path
5996
+ * @returns boolean kafka trigger exists
5997
+ * @throws ApiError
5998
+ */
5999
+ export const existsKafkaTrigger = (data) => {
6000
+ return __request(OpenAPI, {
6001
+ method: 'GET',
6002
+ url: '/w/{workspace}/kafka_triggers/exists/{path}',
6003
+ path: {
6004
+ workspace: data.workspace,
6005
+ path: data.path
6006
+ }
6007
+ });
6008
+ };
6009
+ /**
6010
+ * set enabled kafka trigger
6011
+ * @param data The data for the request.
6012
+ * @param data.workspace
6013
+ * @param data.path
6014
+ * @param data.requestBody updated kafka trigger enable
6015
+ * @returns string kafka trigger enabled set
6016
+ * @throws ApiError
6017
+ */
6018
+ export const setKafkaTriggerEnabled = (data) => {
6019
+ return __request(OpenAPI, {
6020
+ method: 'POST',
6021
+ url: '/w/{workspace}/kafka_triggers/setenabled/{path}',
6022
+ path: {
6023
+ workspace: data.workspace,
6024
+ path: data.path
6025
+ },
6026
+ body: data.requestBody,
6027
+ mediaType: 'application/json'
6028
+ });
6029
+ };
5746
6030
  /**
5747
6031
  * list instance groups
5748
6032
  * @returns InstanceGroup instance group list
@@ -6269,6 +6553,17 @@ export const getQueueMetrics = () => {
6269
6553
  url: '/workers/queue_metrics'
6270
6554
  });
6271
6555
  };
6556
+ /**
6557
+ * get counts of jobs waiting for an executor per tag
6558
+ * @returns number queue counts
6559
+ * @throws ApiError
6560
+ */
6561
+ export const getCountsOfJobsWaitingPerTag = () => {
6562
+ return __request(OpenAPI, {
6563
+ method: 'GET',
6564
+ url: '/workers/queue_counts'
6565
+ });
6566
+ };
6272
6567
  /**
6273
6568
  * list worker groups
6274
6569
  * @returns unknown a list of worker group configs
package/esm/main.js CHANGED
@@ -33,7 +33,7 @@ export { flow, app, script, workspace, resource, user, variable, hub, folder, sc
33
33
  // console.error(JSON.stringify(event.error, null, 4));
34
34
  // }
35
35
  // });
36
- export const VERSION = "1.423.1";
36
+ export const VERSION = "1.426.0";
37
37
  const command = new Command()
38
38
  .name("wmill")
39
39
  .action(() => log.info(`Welcome to Windmill CLI ${VERSION}. Use -h for help.`))
package/esm/settings.js CHANGED
@@ -47,7 +47,7 @@ export async function pushWorkspaceSettings(workspace, _path, settings, localSet
47
47
  error_handler: remoteSettings.error_handler,
48
48
  error_handler_extra_args: remoteSettings.error_handler_extra_args,
49
49
  error_handler_muted_on_cancel: remoteSettings.error_handler_muted_on_cancel,
50
- openai_resource_path: remoteSettings.openai_resource_path,
50
+ ai_resource: remoteSettings.ai_resource,
51
51
  code_completion_enabled: remoteSettings.code_completion_enabled,
52
52
  large_file_storage: remoteSettings.large_file_storage,
53
53
  git_sync: remoteSettings.git_sync,
@@ -110,13 +110,13 @@ export async function pushWorkspaceSettings(workspace, _path, settings, localSet
110
110
  });
111
111
  }
112
112
  }
113
- if (localSettings.openai_resource_path !== settings.openai_resource_path ||
113
+ if (localSettings.ai_resource !== settings.ai_resource ||
114
114
  localSettings.code_completion_enabled !== settings.code_completion_enabled) {
115
115
  log.debug(`Updating openai settings...`);
116
116
  await wmill.editCopilotConfig({
117
117
  workspace,
118
118
  requestBody: {
119
- openai_resource_path: localSettings.openai_resource_path,
119
+ ai_resource: localSettings.ai_resource,
120
120
  code_completion_enabled: localSettings.code_completion_enabled,
121
121
  },
122
122
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "windmill-cli",
3
- "version": "1.423.1",
3
+ "version": "1.426.0",
4
4
  "description": "CLI for Windmill",
5
5
  "repository": {
6
6
  "type": "git",
@@ -1 +1 @@
1
- {"version":3,"file":"concat.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/bytes/1.0.3/concat.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,UAAU,CAaxD"}
1
+ {"version":3,"file":"concat.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/bytes/1.0.4/concat.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,UAAU,CAaxD"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_config.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/log/0.224.10/_config.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,eAAO,MAAM,aAAa,SAAS,CAAC;AAEpC,eAAO,MAAM,cAAc,EAAE,SAW5B,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_file_handler_symbols.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/log/0.224.10/_file_handler_symbols.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,UAAU,eAAiB,CAAC;AACzC,eAAO,MAAM,SAAS,eAAgB,CAAC;AACvC,eAAO,MAAM,aAAa,eAAoB,CAAC;AAC/C,eAAO,MAAM,cAAc,eAAqB,CAAC;AACjD,eAAO,MAAM,UAAU,eAAiB,CAAC;AACzC,eAAO,MAAM,iBAAiB,eAAwB,CAAC;AACvD,eAAO,MAAM,aAAa,eAAoB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_state.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/log/0.224.10/_state.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,eAAO,MAAM,KAAK;;;;CAIjB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base_handler.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/log/0.224.10/base_handler.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,SAAS,EACd,KAAK,QAAQ,EACd,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;AAE/C;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,SAAS,EAAE,SAAS,KAAK,MAAM,CAAC;AAIjE,2CAA2C;AAC3C,MAAM,WAAW,kBAAkB;IACjC,2CAA2C;IAC3C,SAAS,CAAC,EAAE,iBAAiB,CAAC;CAC/B;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,8BAAsB,WAAW;;IAG/B;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,SAAS,EAAE,iBAAiB,CAAC;IAE7B;;;;;OAKG;gBAED,SAAS,EAAE,SAAS,EACpB,OAAO,CAAC,EAAE,kBAAkB;IAQ9B;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,IAAI,KAAK,IAAI,QAAQ,CAEpB;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,IAAI,KAAK,CAAC,KAAK,EAAE,QAAQ,EAGxB;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,IAAI,SAAS,IAAI,SAAS,CAEzB;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,IAAI,SAAS,CAAC,SAAS,EAAE,SAAS,EAGjC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACH,MAAM,CAAC,SAAS,EAAE,SAAS;IAO3B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACH,MAAM,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM;IAIpC;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAE/B;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,KAAK;IAEL;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,OAAO;IAEP;;;;;;;;;;;;;;;;;;;OAmBG;IACH,CAAC,MAAM,CAAC,OAAO,CAAC;CAGjB"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"console_handler.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/log/0.224.10/console_handler.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAa,MAAM,aAAa,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,EAAE,WAAW,EAAE,KAAK,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEzE,8CAA8C;AAC9C,MAAM,WAAW,qBAAsB,SAAQ,kBAAkB;IAC/D;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAuBD;;;;;;;;;;;GAWG;AACH,qBAAa,cAAe,SAAQ,WAAW;;IAG7C;;;;;OAKG;gBACS,SAAS,EAAE,SAAS,EAAE,OAAO,GAAE,qBAA0B;IAKrE;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACM,MAAM,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM;IAU7C;;;;;;;;;;;;OAYG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM;CAIhB"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"critical.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/log/0.224.10/critical.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,YAAY,CAAC;AAEpB;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,GAAG,SAAS,CAAC;AAC7E;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EACxB,GAAG,EAAE,CAAC,SAAS,eAAe,GAAG,KAAK,GAAG,CAAC,EAC1C,GAAG,IAAI,EAAE,OAAO,EAAE,GACjB,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/log/0.224.10/debug.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,YAAY,CAAC;AAEpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,GAAG,SAAS,CAAC;AAC1E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AACH,wBAAgB,KAAK,CAAC,CAAC,EACrB,GAAG,EAAE,CAAC,SAAS,eAAe,GAAG,KAAK,GAAG,CAAC,EAC1C,GAAG,IAAI,EAAE,OAAO,EAAE,GACjB,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/log/0.224.10/error.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,YAAY,CAAC;AAEpB;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,GAAG,SAAS,CAAC;AAC1E;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,KAAK,CAAC,CAAC,EACrB,GAAG,EAAE,CAAC,SAAS,eAAe,GAAG,KAAK,GAAG,CAAC,EAC1C,GAAG,IAAI,EAAE,OAAO,EAAE,GACjB,CAAC,CAAC"}
@@ -0,0 +1,251 @@
1
+ import * as dntShim from "../../../../../_dnt.shims.js";
2
+ import { type LevelName } from "./levels.js";
3
+ import type { LogRecord } from "./logger.js";
4
+ import { BaseHandler, type BaseHandlerOptions } from "./base_handler.js";
5
+ import { bufSymbol, encoderSymbol, filenameSymbol, fileSymbol, modeSymbol, openOptionsSymbol, pointerSymbol } from "./_file_handler_symbols.js";
6
+ /** Supported log modes for FileHandlerOptions {@linkcode FileHandlerOptions.mode}. */
7
+ export type LogMode = "a" | "w" | "x";
8
+ /** Options for {@linkcode FileHandler}. */
9
+ export interface FileHandlerOptions extends BaseHandlerOptions {
10
+ /**
11
+ * The filename to output to.
12
+ */
13
+ filename: string;
14
+ /**
15
+ * Log mode for the handler. Behavior of the log modes is as follows:
16
+ *
17
+ * - `'a'` - Default mode. Appends new log messages to the end of an existing log
18
+ * file, or create a new log file if none exists.
19
+ * - `'w'` - Upon creation of the handler, any existing log file will be removed
20
+ * and a new one created.
21
+ * - `'x'` - This will create a new log file and throw an error if one already
22
+ * exists.
23
+ *
24
+ * @default {"a"}
25
+ */
26
+ mode?: LogMode;
27
+ /**
28
+ * Buffer size for writing log messages to file, in bytes.
29
+ *
30
+ * @default {4096}
31
+ */
32
+ bufferSize?: number;
33
+ }
34
+ /**
35
+ * A file-based log handler that writes log messages to a specified file with buffering and optional modes.
36
+ * The logs are buffered for optimized performance, writing to the file only
37
+ * when the buffer is full, on manual .flush() call, during logging of a critical message or when process ends.
38
+ * It is important to note that the file can grow indefinitely.
39
+ *
40
+ * This handler requires `--allow-write` permission on the log file.
41
+ *
42
+ * @example Usage
43
+ * ```ts no-assert ignore
44
+ * import { FileHandler } from "@std/log/file-handler";
45
+ *
46
+ * const handler = new FileHandler("INFO", { filename: "./logs.txt" });
47
+ * handler.setup();
48
+ * handler.log('Hello, world!'); // Buffers the message, or writes it to the file depending on buffer state
49
+ * handler.flush(); // Manually flushes the buffer
50
+ * handler.destroy(); // Closes the file and removes listeners
51
+ * ```
52
+ */
53
+ export declare class FileHandler extends BaseHandler {
54
+ #private;
55
+ /** Opened file to append logs to.
56
+ * @example Usage
57
+ * ```ts no-assert ignore
58
+ * import { FileHandler } from "@std/log/file-handler";
59
+ *
60
+ * const handler = new FileHandler("INFO", { filename: "./logs.txt" });
61
+ * handler.setup();
62
+ * handler.log('Hello, world!'); // Buffers the message, or writes it to the file depending on buffer state
63
+ * handler.flush(); // Manually flushes the buffer
64
+ * handler.destroy(); // Closes the file and removes listeners
65
+ * ```
66
+ * **/
67
+ [fileSymbol]: dntShim.Deno.FsFile | undefined;
68
+ /** Buffer used to write to file.
69
+ * @example Usage
70
+ * ```ts no-assert ignore
71
+ * import { FileHandler } from "@std/log/file-handler";
72
+ *
73
+ * const handler = new FileHandler("INFO", { filename: "./logs.txt" });
74
+ * handler.setup();
75
+ * handler.log('Hello, world!'); // Buffers the message, or writes it to the file depending on buffer state
76
+ * handler.flush(); // Manually flushes the buffer
77
+ * handler.destroy(); // Closes the file and removes listeners
78
+ * ```
79
+ * **/
80
+ [bufSymbol]: Uint8Array;
81
+ /** Current position for pointer.
82
+ * @example Usage
83
+ * ```ts no-assert ignore
84
+ * import { FileHandler } from "@std/log/file-handler";
85
+ *
86
+ * const handler = new FileHandler("INFO", { filename: "./logs.txt" });
87
+ * handler.setup();
88
+ * handler.log('Hello, world!'); // Buffers the message, or writes it to the file depending on buffer state
89
+ * handler.flush(); // Manually flushes the buffer
90
+ * handler.destroy(); // Closes the file and removes listeners
91
+ * ```
92
+ * **/
93
+ [pointerSymbol]: number;
94
+ /** Filename associated with the file being logged.
95
+ * @example Usage
96
+ * ```ts no-assert ignore
97
+ * import { FileHandler } from "@std/log/file-handler";
98
+ *
99
+ * const handler = new FileHandler("INFO", { filename: "./logs.txt" });
100
+ * handler.setup();
101
+ * handler.log('Hello, world!'); // Buffers the message, or writes it to the file depending on buffer state
102
+ * handler.flush(); // Manually flushes the buffer
103
+ * handler.destroy(); // Closes the file and removes listeners
104
+ * ```
105
+ * **/
106
+ [filenameSymbol]: string;
107
+ /** Current log mode.
108
+ * @example Usage
109
+ * ```ts no-assert ignore
110
+ * import { FileHandler } from "@std/log/file-handler";
111
+ *
112
+ * const handler = new FileHandler("INFO", { filename: "./logs.txt" });
113
+ * handler.setup();
114
+ * handler.log('Hello, world!'); // Buffers the message, or writes it to the file depending on buffer state
115
+ * handler.flush(); // Manually flushes the buffer
116
+ * handler.destroy(); // Closes the file and removes listeners
117
+ * ```
118
+ * **/
119
+ [modeSymbol]: LogMode;
120
+ /** File open options.
121
+ * @example Usage
122
+ * ```ts no-assert ignore
123
+ * import { FileHandler } from "@std/log/file-handler";
124
+ *
125
+ * const handler = new FileHandler("INFO", { filename: "./logs.txt" });
126
+ * handler.setup();
127
+ * handler.log('Hello, world!'); // Buffers the message, or writes it to the file depending on buffer state
128
+ * handler.flush(); // Manually flushes the buffer
129
+ * handler.destroy(); // Closes the file and removes listeners
130
+ * ```
131
+ * **/
132
+ [openOptionsSymbol]: dntShim.Deno.OpenOptions;
133
+ /** Text encoder.
134
+ * @example Usage
135
+ * ```ts no-assert ignore
136
+ * import { FileHandler } from "@std/log/file-handler";
137
+ *
138
+ * const handler = new FileHandler("INFO", { filename: "./logs.txt" });
139
+ * handler.setup();
140
+ * handler.log('Hello, world!'); // Buffers the message, or writes it to the file depending on buffer state
141
+ * handler.flush(); // Manually flushes the buffer
142
+ * handler.destroy(); // Closes the file and removes listeners
143
+ * ```
144
+ * **/
145
+ [encoderSymbol]: TextEncoder;
146
+ /**
147
+ * Constructs a new FileHandler instance.
148
+ *
149
+ * @param levelName The level name to log messages at.
150
+ * @param options Options for the handler.
151
+ */
152
+ constructor(levelName: LevelName, options: FileHandlerOptions);
153
+ /**
154
+ * Sets up the file handler by opening the specified file and initializing resources.
155
+ *
156
+ * @example Usage
157
+ * ```ts no-assert ignore
158
+ * import { FileHandler } from "@std/log/file-handler";
159
+ *
160
+ * const handler = new FileHandler("INFO", { filename: "./logs.txt" });
161
+ * handler.setup(); // Opens the file and prepares the handler for logging.
162
+ * handler.destroy();
163
+ * ```
164
+ */
165
+ setup(): void;
166
+ /**
167
+ * Handles a log record and flushes the buffer if the log level is higher than error.
168
+ *
169
+ * @param logRecord Log record to handle.
170
+ *
171
+ * @example Usage
172
+ * ```ts ignore
173
+ * import { FileHandler } from "@std/log/file-handler";
174
+ * import { assertInstanceOf } from "@std/assert/instance-of";
175
+ * import { LogLevels } from "./levels.ts";
176
+ * import { LogRecord } from "./logger.ts";
177
+ *
178
+ * const handler = new FileHandler("INFO", { filename: "./logs.txt" });
179
+ * handler.setup();
180
+ *
181
+ * // Flushes the buffer immediately and logs "CRITICAL This log is very critical indeed." into the file.
182
+ * handler.handle(
183
+ * new LogRecord({
184
+ * msg: "This log is very critical indeed.",
185
+ * args: [],
186
+ * level: LogLevels.CRITICAL,
187
+ * loggerName: "INFO",
188
+ * }),
189
+ * );
190
+ * handler.destroy();
191
+ *
192
+ * assertInstanceOf(handler, FileHandler);
193
+ * ```
194
+ */
195
+ handle(logRecord: LogRecord): void;
196
+ /**
197
+ * Logs a message by adding it to the buffer, with flushing as needed.
198
+ *
199
+ * @param msg The message to log.
200
+ *
201
+ * @example Usage
202
+ * ```ts ignore
203
+ * import { FileHandler } from "@std/log/file-handler";
204
+ * import { assertInstanceOf } from "@std/assert/instance-of";
205
+ *
206
+ * const handler = new FileHandler("INFO", { filename: "./logs.txt" });
207
+ * handler.setup();
208
+ * handler.log('Hello, world!');
209
+ * handler.flush();
210
+ * handler.destroy();
211
+ *
212
+ * assertInstanceOf(handler, FileHandler);
213
+ * ```
214
+ */
215
+ log(msg: string): void;
216
+ /**
217
+ * Immediately writes the contents of the buffer to the previously opened file.
218
+ *
219
+ * @example Usage
220
+ * ```ts ignore
221
+ * import { FileHandler } from "@std/log/file-handler";
222
+ * import { assertInstanceOf } from "@std/assert/instance-of";
223
+ *
224
+ * const handler = new FileHandler("INFO", { filename: "./logs.txt" });
225
+ * handler.setup();
226
+ * handler.log('Hello, world!');
227
+ * handler.flush(); // Writes buffered log messages to the file immediately.
228
+ * handler.destroy();
229
+ *
230
+ * assertInstanceOf(handler, FileHandler);
231
+ * ```
232
+ */
233
+ flush(): void;
234
+ /**
235
+ * Destroys the handler, performing any cleanup that is required and closes the file handler.
236
+ *
237
+ * @example Usage
238
+ * ```ts ignore
239
+ * import { FileHandler } from "@std/log/file-handler";
240
+ * import { assertInstanceOf } from "@std/assert/instance-of";
241
+ *
242
+ * const handler = new FileHandler("INFO", { filename: "./logs.txt" });
243
+ * handler.setup();
244
+ * handler.destroy();
245
+ *
246
+ * assertInstanceOf(handler, FileHandler);
247
+ * ```
248
+ */
249
+ destroy(): void;
250
+ }
251
+ //# sourceMappingURL=file_handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file_handler.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/log/0.224.10/file_handler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,OAAO,MAAM,8BAA8B,CAAC;AAExD,OAAO,EAAE,KAAK,SAAS,EAAa,MAAM,aAAa,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,KAAK,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEzE,OAAO,EACL,SAAS,EACT,aAAa,EACb,cAAc,EACd,UAAU,EACV,UAAU,EACV,iBAAiB,EACjB,aAAa,EACd,MAAM,4BAA4B,CAAC;AAEpC,sFAAsF;AACtF,MAAM,MAAM,OAAO,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAEtC,2CAA2C;AAC3C,MAAM,WAAW,kBAAmB,SAAQ,kBAAkB;IAC5D;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;;;;;;;;OAWG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,WAAY,SAAQ,WAAW;;IAC1C;;;;;;;;;;;UAWM;IACN,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;IAC9C;;;;;;;;;;;UAWM;IACN,CAAC,SAAS,CAAC,EAAE,UAAU,CAAC;IACxB;;;;;;;;;;;UAWM;IACN,CAAC,aAAa,CAAC,SAAK;IACpB;;;;;;;;;;;UAWM;IACN,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;;;;;;;UAWM;IACN,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IACtB;;;;;;;;;;;UAWM;IACN,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC;IAC9C;;;;;;;;;;;UAWM;IACN,CAAC,aAAa,CAAC,EAAE,WAAW,CAAqB;IAKjD;;;;;OAKG;gBACS,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,kBAAkB;IAe7D;;;;;;;;;;;OAWG;IACM,KAAK;IAUd;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACM,MAAM,CAAC,SAAS,EAAE,SAAS;IASpC;;;;;;;;;;;;;;;;;;OAkBG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM;IAaf;;;;;;;;;;;;;;;;OAgBG;IACH,KAAK;IAgBL;;;;;;;;;;;;;;OAcG;IACM,OAAO;CAMjB"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatters.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/log/0.224.10/formatters.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAO1D;AAUD,kCAAkC;AAClC,eAAO,MAAM,UAAU;;CAA6B,CAAC"}