monaco-languageclient 11.0.0-next.0 → 11.0.0-next.1

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/CHANGELOG.md CHANGED
@@ -2,10 +2,10 @@
2
2
 
3
3
  All notable changes to this npm module are documented in this file.
4
4
 
5
- ## [11.0.0-next.0] - unreleased
5
+ ## [11.0.0-next.1] - unrelease
6
6
 
7
- - Updated all `@codingame/monaco-vscode` packages to `35.0.0`
8
- - Updated `vscode-languageclient` and `vscode-languageserver` to `10.0.0`, `vscode-languageserver-protocol` to `3.18.0` and `vscode-jsonrpc` to `9.0.0`.
7
+ - Updated all `@codingame/monaco-vscode` packages to `35.0.1`
8
+ - Updated `vscode-languageclient` and `vscode-languageserver` to `10.1.0`, `vscode-languageserver-protocol` to `3.18.2` and `vscode-jsonrpc` to `9.0.1`.
9
9
  - Dropped eslint and rely fully on oxlint.
10
10
 
11
11
  ## [10.7.0] - 2026-02-04
@@ -5,11 +5,13 @@ export declare class Worker {
5
5
  constructor(url: string | URL, options?: WorkerOptions);
6
6
  }
7
7
  export type WorkerLoader = (() => Worker) | undefined;
8
+ export type PossibleWorkerLabelsExtended = 'editorWorkerService' | 'extensionHostWorkerMain' | 'TextMateWorker' | 'OutputLinkDetectionWorker' | 'LanguageDetectionWorker' | 'NotebookEditorWorker' | 'LocalFileSearchWorker';
9
+ export type PossibleWorkerLabelsClassic = 'editorWorkerService' | 'css' | 'html' | 'json' | 'javascript' | 'typescript';
8
10
  export interface WorkerFactoryConfig {
9
- workerLoaders?: Partial<Record<string, WorkerLoader>>;
11
+ workerLoaders?: Partial<Record<PossibleWorkerLabelsExtended | PossibleWorkerLabelsClassic | string, WorkerLoader>>;
10
12
  logger?: ILogger;
11
13
  }
12
14
  export declare const useWorkerFactory: (config: WorkerFactoryConfig) => void;
13
- export declare const defineDefaultWorkerLoaders: () => Partial<Record<string, WorkerLoader>>;
15
+ export declare const defineDefaultWorkerLoaders: () => Record<PossibleWorkerLabelsExtended, WorkerLoader>;
14
16
  export declare const configureDefaultWorkerFactory: (logger?: ILogger) => void;
15
17
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/worker/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,+CAA+C,CAAC;AAG7E,qBAAa,MAAM;IACjB,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;IAClB,OAAO,CAAC,EAAE,aAAa,CAAC;IAExB,YAAY,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,OAAO,CAAC,EAAE,aAAa,EAGrD;CACF;AAED,MAAM,MAAM,YAAY,GAAG,CAAC,MAAM,MAAM,CAAC,GAAG,SAAS,CAAC;AAEtD,MAAM,WAAW,mBAAmB;IAClC,aAAa,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;IACtD,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,eAAO,MAAM,gBAAgB,WAAY,mBAAmB,SAY3D,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAmBlF,CAAC;AAEF,eAAO,MAAM,6BAA6B,YAAa,OAAO,SAK7D,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/worker/index.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,+CAA+C,CAAC;AAG7E,qBAAa,MAAM;IACjB,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;IAClB,OAAO,CAAC,EAAE,aAAa,CAAC;IAExB,YAAY,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,OAAO,CAAC,EAAE,aAAa,EAGrD;CACF;AAED,MAAM,MAAM,YAAY,GAAG,CAAC,MAAM,MAAM,CAAC,GAAG,SAAS,CAAC;AAEtD,MAAM,MAAM,4BAA4B,GACpC,qBAAqB,GACrB,yBAAyB,GACzB,gBAAgB,GAChB,2BAA2B,GAC3B,yBAAyB,GACzB,sBAAsB,GACtB,uBAAuB,CAAC;AAE5B,MAAM,MAAM,2BAA2B,GAAG,qBAAqB,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,YAAY,GAAG,YAAY,CAAC;AAExH,MAAM,WAAW,mBAAmB;IAClC,aAAa,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,4BAA4B,GAAG,2BAA2B,GAAG,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;IACnH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,eAAO,MAAM,gBAAgB,WAAY,mBAAmB,SAY3D,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,MAAM,MAAM,CAAC,4BAA4B,EAAE,YAAY,CAmB/F,CAAC;AAEF,eAAO,MAAM,6BAA6B,YAAa,OAAO,SAK7D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/worker/index.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAGhG,OAAO,EAAE,4BAA4B,EAAE,MAAM,wCAAwC,CAAC;AAEtF,MAAM,OAAO,MAAM;IACjB,GAAG,CAAe;IAClB,OAAO,CAAiB;IAExB,YAAY,GAAiB,EAAE,OAAuB;QACpD,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF;AASD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,MAA2B,EAAE,EAAE;IAC9D,MAAM,WAAW,GAAG,4BAA4B,EAAE,CAAC;IAEnD,WAAW,CAAC,YAAY,GAAG,CAAC,QAAgB,EAAE,KAAa,EAAE,EAAE;QAC7D,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,2BAA2B,QAAQ,WAAW,KAAK,EAAE,CAAC,CAAC;QAC3E,OAAO,MAAM,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;IAC1D,CAAC,CAAC;IAEF,WAAW,CAAC,gBAAgB,GAAG,CAAC,QAAgB,EAAE,KAAa,EAAE,EAAE;QACjE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,+BAA+B,QAAQ,WAAW,KAAK,EAAE,CAAC,CAAC;QAC/E,OAAO,MAAM,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC;IACnD,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAgD,GAAG,EAAE;IAC1F,MAAM,0BAA0B,GAAG,GAAG,EAAE,CACtC,IAAI,MAAM,CAAC,IAAI,GAAG,CAAC,oEAAoE,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IACjI,MAAM,8BAA8B,GAAG,GAAG,EAAE,CAC1C,IAAI,MAAM,CAAC,IAAI,GAAG,CAAC,2DAA2D,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IACxH,MAAM,qBAAqB,GAAG,GAAG,EAAE,CACjC,IAAI,MAAM,CAAC,IAAI,GAAG,CAAC,2DAA2D,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IAExH,OAAO;QACL,4FAA4F;QAC5F,mBAAmB,EAAE,0BAA0B;QAC/C,uBAAuB,EAAE,8BAA8B;QACvD,cAAc,EAAE,qBAAqB;QACrC,6DAA6D;QAC7D,yBAAyB,EAAE,SAAS;QACpC,uBAAuB,EAAE,SAAS;QAClC,oBAAoB,EAAE,SAAS;QAC/B,qBAAqB,EAAE,SAAS;KACjC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,MAAgB,EAAE,EAAE;IAChE,gBAAgB,CAAC;QACf,aAAa,EAAE,0BAA0B,EAAE;QAC3C,MAAM;KACP,CAAC,CAAC;AACL,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/worker/index.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAKhG,OAAO,EAAE,4BAA4B,EAAE,MAAM,wCAAwC,CAAC;AAEtF,MAAM,OAAO,MAAM;IACjB,GAAG,CAAe;IAClB,OAAO,CAAiB;IAExB,YAAY,GAAiB,EAAE,OAAuB;QACpD,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF;AAoBD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,MAA2B,EAAE,EAAE;IAC9D,MAAM,WAAW,GAAG,4BAA4B,EAAE,CAAC;IAEnD,WAAW,CAAC,YAAY,GAAG,CAAC,QAAgB,EAAE,KAA0E,EAAE,EAAE;QAC1H,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,2BAA2B,QAAQ,WAAW,KAAK,EAAE,CAAC,CAAC;QAC3E,OAAO,MAAM,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;IAC1D,CAAC,CAAC;IAEF,WAAW,CAAC,gBAAgB,GAAG,CAAC,QAAgB,EAAE,KAA0E,EAAE,EAAE;QAC9H,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,+BAA+B,QAAQ,WAAW,KAAK,EAAE,CAAC,CAAC;QAC/E,OAAO,MAAM,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC;IACnD,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAA6D,GAAG,EAAE;IACvG,MAAM,0BAA0B,GAAG,GAAG,EAAE,CACtC,IAAI,MAAM,CAAC,IAAI,GAAG,CAAC,oEAAoE,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IACjI,MAAM,8BAA8B,GAAG,GAAG,EAAE,CAC1C,IAAI,MAAM,CAAC,IAAI,GAAG,CAAC,2DAA2D,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IACxH,MAAM,qBAAqB,GAAG,GAAG,EAAE,CACjC,IAAI,MAAM,CAAC,IAAI,GAAG,CAAC,2DAA2D,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IAExH,OAAO;QACL,4FAA4F;QAC5F,mBAAmB,EAAE,0BAA0B;QAC/C,uBAAuB,EAAE,8BAA8B;QACvD,cAAc,EAAE,qBAAqB;QACrC,6DAA6D;QAC7D,yBAAyB,EAAE,SAAS;QACpC,uBAAuB,EAAE,SAAS;QAClC,oBAAoB,EAAE,SAAS;QAC/B,qBAAqB,EAAE,SAAS;KACjC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,MAAgB,EAAE,EAAE;IAChE,gBAAgB,CAAC;QACf,aAAa,EAAE,0BAA0B,EAAE;QAC3C,MAAM;KACP,CAAC,CAAC;AACL,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "monaco-languageclient",
3
- "version": "11.0.0-next.0",
3
+ "version": "11.0.0-next.1",
4
4
  "description": "Monaco Language client implementation",
5
5
  "homepage": "https://github.com/TypeFox/monaco-languageclient/blob/main/packages/client/README.md",
6
6
  "bugs": {
@@ -9,7 +9,7 @@
9
9
  "license": "MIT",
10
10
  "author": {
11
11
  "name": "TypeFox GmbH",
12
- "url": "http://www.typefox.io"
12
+ "url": "https://www.typefox.io"
13
13
  },
14
14
  "repository": {
15
15
  "type": "git",
@@ -80,47 +80,47 @@
80
80
  "build": "npm run build:msg && npm run clean && npm run compile"
81
81
  },
82
82
  "dependencies": {
83
- "@codingame/monaco-vscode-api": "^35.0.0",
84
- "@codingame/monaco-vscode-configuration-service-override": "^35.0.0",
85
- "@codingame/monaco-vscode-editor-api": "^35.0.0",
86
- "@codingame/monaco-vscode-editor-service-override": "^35.0.0",
87
- "@codingame/monaco-vscode-extensions-service-override": "^35.0.0",
88
- "@codingame/monaco-vscode-files-service-override": "^35.0.0",
89
- "@codingame/monaco-vscode-language-pack-cs": "^35.0.0",
90
- "@codingame/monaco-vscode-language-pack-de": "^35.0.0",
91
- "@codingame/monaco-vscode-language-pack-es": "^35.0.0",
92
- "@codingame/monaco-vscode-language-pack-fr": "^35.0.0",
93
- "@codingame/monaco-vscode-language-pack-it": "^35.0.0",
94
- "@codingame/monaco-vscode-language-pack-ja": "^35.0.0",
95
- "@codingame/monaco-vscode-language-pack-ko": "^35.0.0",
96
- "@codingame/monaco-vscode-language-pack-pl": "^35.0.0",
97
- "@codingame/monaco-vscode-language-pack-pt-br": "^35.0.0",
98
- "@codingame/monaco-vscode-language-pack-qps-ploc": "^35.0.0",
99
- "@codingame/monaco-vscode-language-pack-ru": "^35.0.0",
100
- "@codingame/monaco-vscode-language-pack-tr": "^35.0.0",
101
- "@codingame/monaco-vscode-language-pack-zh-hans": "^35.0.0",
102
- "@codingame/monaco-vscode-language-pack-zh-hant": "^35.0.0",
103
- "@codingame/monaco-vscode-languages-service-override": "^35.0.0",
104
- "@codingame/monaco-vscode-localization-service-override": "^35.0.0",
105
- "@codingame/monaco-vscode-log-service-override": "^35.0.0",
106
- "@codingame/monaco-vscode-model-service-override": "^35.0.0",
107
- "@codingame/monaco-vscode-monarch-service-override": "^35.0.0",
108
- "@codingame/monaco-vscode-textmate-service-override": "^35.0.0",
109
- "@codingame/monaco-vscode-theme-defaults-default-extension": "^35.0.0",
110
- "@codingame/monaco-vscode-theme-service-override": "^35.0.0",
111
- "@codingame/monaco-vscode-views-service-override": "^35.0.0",
112
- "@codingame/monaco-vscode-workbench-service-override": "^35.0.0",
113
- "vscode": "npm:@codingame/monaco-vscode-extension-api@^35.0.0",
83
+ "@codingame/monaco-vscode-api": "^35.0.1",
84
+ "@codingame/monaco-vscode-configuration-service-override": "^35.0.1",
85
+ "@codingame/monaco-vscode-editor-api": "^35.0.1",
86
+ "@codingame/monaco-vscode-editor-service-override": "^35.0.1",
87
+ "@codingame/monaco-vscode-extensions-service-override": "^35.0.1",
88
+ "@codingame/monaco-vscode-files-service-override": "^35.0.1",
89
+ "@codingame/monaco-vscode-language-pack-cs": "^35.0.1",
90
+ "@codingame/monaco-vscode-language-pack-de": "^35.0.1",
91
+ "@codingame/monaco-vscode-language-pack-es": "^35.0.1",
92
+ "@codingame/monaco-vscode-language-pack-fr": "^35.0.1",
93
+ "@codingame/monaco-vscode-language-pack-it": "^35.0.1",
94
+ "@codingame/monaco-vscode-language-pack-ja": "^35.0.1",
95
+ "@codingame/monaco-vscode-language-pack-ko": "^35.0.1",
96
+ "@codingame/monaco-vscode-language-pack-pl": "^35.0.1",
97
+ "@codingame/monaco-vscode-language-pack-pt-br": "^35.0.1",
98
+ "@codingame/monaco-vscode-language-pack-qps-ploc": "^35.0.1",
99
+ "@codingame/monaco-vscode-language-pack-ru": "^35.0.1",
100
+ "@codingame/monaco-vscode-language-pack-tr": "^35.0.1",
101
+ "@codingame/monaco-vscode-language-pack-zh-hans": "^35.0.1",
102
+ "@codingame/monaco-vscode-language-pack-zh-hant": "^35.0.1",
103
+ "@codingame/monaco-vscode-languages-service-override": "^35.0.1",
104
+ "@codingame/monaco-vscode-localization-service-override": "^35.0.1",
105
+ "@codingame/monaco-vscode-log-service-override": "^35.0.1",
106
+ "@codingame/monaco-vscode-model-service-override": "^35.0.1",
107
+ "@codingame/monaco-vscode-monarch-service-override": "^35.0.1",
108
+ "@codingame/monaco-vscode-textmate-service-override": "^35.0.1",
109
+ "@codingame/monaco-vscode-theme-defaults-default-extension": "^35.0.1",
110
+ "@codingame/monaco-vscode-theme-service-override": "^35.0.1",
111
+ "@codingame/monaco-vscode-views-service-override": "^35.0.1",
112
+ "@codingame/monaco-vscode-workbench-service-override": "^35.0.1",
113
+ "vscode": "npm:@codingame/monaco-vscode-extension-api@^35.0.1",
114
114
  "vscode-languageclient": "~10.1.0",
115
115
  "vscode-languageserver-protocol": "~3.18.2",
116
- "vscode-ws-jsonrpc": "~4.0.0-next.0"
116
+ "vscode-ws-jsonrpc": "~4.0.0-next.1"
117
117
  },
118
118
  "devDependencies": {
119
- "@codingame/monaco-vscode-standalone-css-language-features": "^35.0.0",
120
- "@codingame/monaco-vscode-standalone-html-language-features": "^35.0.0",
121
- "@codingame/monaco-vscode-standalone-json-language-features": "^35.0.0",
122
- "@codingame/monaco-vscode-standalone-languages": "^35.0.0",
123
- "@codingame/monaco-vscode-standalone-typescript-language-features": "^35.0.0",
119
+ "@codingame/monaco-vscode-standalone-css-language-features": "^35.0.1",
120
+ "@codingame/monaco-vscode-standalone-html-language-features": "^35.0.1",
121
+ "@codingame/monaco-vscode-standalone-json-language-features": "^35.0.1",
122
+ "@codingame/monaco-vscode-standalone-languages": "^35.0.1",
123
+ "@codingame/monaco-vscode-standalone-typescript-language-features": "^35.0.1",
124
124
  "monaco-languageclient-examples": "../examples"
125
125
  },
126
126
  "engines": {
@@ -3,6 +3,8 @@
3
3
  * Licensed under the MIT License. See LICENSE in the package root for license information.
4
4
  * ------------------------------------------------------------------------------------------ */
5
5
 
6
+ // oxlint-disable typescript/no-redundant-type-constituents
7
+
6
8
  import type { ILogger } from '@codingame/monaco-vscode-log-service-override';
7
9
  import { getEnhancedMonacoEnvironment } from 'monaco-languageclient/vscodeApiWrapper';
8
10
 
@@ -18,26 +20,37 @@ export class Worker {
18
20
 
19
21
  export type WorkerLoader = (() => Worker) | undefined;
20
22
 
23
+ export type PossibleWorkerLabelsExtended =
24
+ | 'editorWorkerService'
25
+ | 'extensionHostWorkerMain'
26
+ | 'TextMateWorker'
27
+ | 'OutputLinkDetectionWorker'
28
+ | 'LanguageDetectionWorker'
29
+ | 'NotebookEditorWorker'
30
+ | 'LocalFileSearchWorker';
31
+
32
+ export type PossibleWorkerLabelsClassic = 'editorWorkerService' | 'css' | 'html' | 'json' | 'javascript' | 'typescript';
33
+
21
34
  export interface WorkerFactoryConfig {
22
- workerLoaders?: Partial<Record<string, WorkerLoader>>;
35
+ workerLoaders?: Partial<Record<PossibleWorkerLabelsExtended | PossibleWorkerLabelsClassic | string, WorkerLoader>>;
23
36
  logger?: ILogger;
24
37
  }
25
38
 
26
39
  export const useWorkerFactory = (config: WorkerFactoryConfig) => {
27
40
  const envEnhanced = getEnhancedMonacoEnvironment();
28
41
 
29
- envEnhanced.getWorkerUrl = (workerId: string, label: string) => {
42
+ envEnhanced.getWorkerUrl = (workerId: string, label: PossibleWorkerLabelsExtended | PossibleWorkerLabelsClassic | string) => {
30
43
  config.logger?.info(`getWorkerUrl: workerId: ${workerId} label: ${label}`);
31
44
  return config.workerLoaders?.[label]?.().url.toString();
32
45
  };
33
46
 
34
- envEnhanced.getWorkerOptions = (moduleId: string, label: string) => {
47
+ envEnhanced.getWorkerOptions = (moduleId: string, label: PossibleWorkerLabelsExtended | PossibleWorkerLabelsClassic | string) => {
35
48
  config.logger?.info(`getWorkerOptions: moduleId: ${moduleId} label: ${label}`);
36
49
  return config.workerLoaders?.[label]?.().options;
37
50
  };
38
51
  };
39
52
 
40
- export const defineDefaultWorkerLoaders: () => Partial<Record<string, WorkerLoader>> = () => {
53
+ export const defineDefaultWorkerLoaders: () => Record<PossibleWorkerLabelsExtended, WorkerLoader> = () => {
41
54
  const defaultEditorWorkerService = () =>
42
55
  new Worker(new URL('@codingame/monaco-vscode-editor-api/esm/vs/editor/editor.worker.js', import.meta.url), { type: 'module' });
43
56
  const defaultExtensionHostWorkerMain = () =>