@actions/languageservice 0.2.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/LICENSE +21 -0
- package/README.md +131 -0
- package/dist/action.d.ts +28 -0
- package/dist/action.d.ts.map +1 -0
- package/dist/action.js +36 -0
- package/dist/action.js.map +1 -0
- package/dist/complete.d.ts +15 -0
- package/dist/complete.d.ts.map +1 -0
- package/dist/complete.js +203 -0
- package/dist/complete.js.map +1 -0
- package/dist/context/workflow-context.d.ts +15 -0
- package/dist/context/workflow-context.d.ts.map +1 -0
- package/dist/context/workflow-context.js +64 -0
- package/dist/context/workflow-context.js.map +1 -0
- package/dist/context-providers/config.d.ts +7 -0
- package/dist/context-providers/config.d.ts.map +1 -0
- package/dist/context-providers/config.js +2 -0
- package/dist/context-providers/config.js.map +1 -0
- package/dist/context-providers/default.d.ts +11 -0
- package/dist/context-providers/default.d.ts.map +1 -0
- package/dist/context-providers/default.js +88 -0
- package/dist/context-providers/default.js.map +1 -0
- package/dist/context-providers/descriptions.d.ts +15 -0
- package/dist/context-providers/descriptions.d.ts.map +1 -0
- package/dist/context-providers/descriptions.js +23 -0
- package/dist/context-providers/descriptions.js.map +1 -0
- package/dist/context-providers/descriptions.json +241 -0
- package/dist/context-providers/env.d.ts +4 -0
- package/dist/context-providers/env.d.ts.map +1 -0
- package/dist/context-providers/env.js +29 -0
- package/dist/context-providers/env.js.map +1 -0
- package/dist/context-providers/events/eventPayloads.d.ts +4 -0
- package/dist/context-providers/events/eventPayloads.d.ts.map +1 -0
- package/dist/context-providers/events/eventPayloads.js +111 -0
- package/dist/context-providers/events/eventPayloads.js.map +1 -0
- package/dist/context-providers/events/objects.json +26220 -0
- package/dist/context-providers/events/schedule.json +102 -0
- package/dist/context-providers/events/webhooks.json +124811 -0
- package/dist/context-providers/events/workflow_call.json +134 -0
- package/dist/context-providers/github.d.ts +5 -0
- package/dist/context-providers/github.d.ts.map +1 -0
- package/dist/context-providers/github.js +139 -0
- package/dist/context-providers/github.js.map +1 -0
- package/dist/context-providers/inputs.d.ts +4 -0
- package/dist/context-providers/inputs.d.ts.map +1 -0
- package/dist/context-providers/inputs.js +52 -0
- package/dist/context-providers/inputs.js.map +1 -0
- package/dist/context-providers/job.d.ts +4 -0
- package/dist/context-providers/job.d.ts.map +1 -0
- package/dist/context-providers/job.js +61 -0
- package/dist/context-providers/job.js.map +1 -0
- package/dist/context-providers/jobs.d.ts +4 -0
- package/dist/context-providers/jobs.d.ts.map +1 -0
- package/dist/context-providers/jobs.js +30 -0
- package/dist/context-providers/jobs.js.map +1 -0
- package/dist/context-providers/matrix.d.ts +4 -0
- package/dist/context-providers/matrix.d.ts.map +1 -0
- package/dist/context-providers/matrix.js +163 -0
- package/dist/context-providers/matrix.js.map +1 -0
- package/dist/context-providers/needs.d.ts +4 -0
- package/dist/context-providers/needs.d.ts.map +1 -0
- package/dist/context-providers/needs.js +56 -0
- package/dist/context-providers/needs.js.map +1 -0
- package/dist/context-providers/secrets.d.ts +5 -0
- package/dist/context-providers/secrets.d.ts.map +1 -0
- package/dist/context-providers/secrets.js +23 -0
- package/dist/context-providers/secrets.js.map +1 -0
- package/dist/context-providers/steps.d.ts +4 -0
- package/dist/context-providers/steps.d.ts.map +1 -0
- package/dist/context-providers/steps.js +35 -0
- package/dist/context-providers/steps.js.map +1 -0
- package/dist/context-providers/strategy.d.ts +4 -0
- package/dist/context-providers/strategy.d.ts.map +1 -0
- package/dist/context-providers/strategy.js +31 -0
- package/dist/context-providers/strategy.js.map +1 -0
- package/dist/description-providers/reusable-job-inputs.d.ts +5 -0
- package/dist/description-providers/reusable-job-inputs.d.ts.map +1 -0
- package/dist/description-providers/reusable-job-inputs.js +29 -0
- package/dist/description-providers/reusable-job-inputs.js.map +1 -0
- package/dist/document-links.d.ts +4 -0
- package/dist/document-links.d.ts.map +1 -0
- package/dist/document-links.js +73 -0
- package/dist/document-links.js.map +1 -0
- package/dist/expression-hover/expression-pos.d.ts +13 -0
- package/dist/expression-hover/expression-pos.d.ts.map +1 -0
- package/dist/expression-hover/expression-pos.js +41 -0
- package/dist/expression-hover/expression-pos.js.map +1 -0
- package/dist/expression-hover/pos-range.d.ts +3 -0
- package/dist/expression-hover/pos-range.d.ts.map +1 -0
- package/dist/expression-hover/pos-range.js +7 -0
- package/dist/expression-hover/pos-range.js.map +1 -0
- package/dist/expression-hover/visitor.d.ts +27 -0
- package/dist/expression-hover/visitor.d.ts.map +1 -0
- package/dist/expression-hover/visitor.js +116 -0
- package/dist/expression-hover/visitor.js.map +1 -0
- package/dist/expression-validation/error-dictionary.d.ts +13 -0
- package/dist/expression-validation/error-dictionary.d.ts.map +1 -0
- package/dist/expression-validation/error-dictionary.js +39 -0
- package/dist/expression-validation/error-dictionary.js.map +1 -0
- package/dist/expression-validation/functions.d.ts +9 -0
- package/dist/expression-validation/functions.d.ts.map +1 -0
- package/dist/expression-validation/functions.js +11 -0
- package/dist/expression-validation/functions.js.map +1 -0
- package/dist/hover.d.ts +16 -0
- package/dist/hover.d.ts.map +1 -0
- package/dist/hover.js +154 -0
- package/dist/hover.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/log.d.ts +39 -0
- package/dist/log.d.ts.map +1 -0
- package/dist/log.js +48 -0
- package/dist/log.js.map +1 -0
- package/dist/nulltrace.d.ts +3 -0
- package/dist/nulltrace.d.ts.map +1 -0
- package/dist/nulltrace.js +3 -0
- package/dist/nulltrace.js.map +1 -0
- package/dist/utils/expression-detection.d.ts +3 -0
- package/dist/utils/expression-detection.d.ts.map +1 -0
- package/dist/utils/expression-detection.js +9 -0
- package/dist/utils/expression-detection.js.map +1 -0
- package/dist/utils/find-token.d.ts +23 -0
- package/dist/utils/find-token.d.ts.map +1 -0
- package/dist/utils/find-token.js +159 -0
- package/dist/utils/find-token.js.map +1 -0
- package/dist/utils/indentation-guesser.d.ts +16 -0
- package/dist/utils/indentation-guesser.d.ts.map +1 -0
- package/dist/utils/indentation-guesser.js +214 -0
- package/dist/utils/indentation-guesser.js.map +1 -0
- package/dist/utils/range.d.ts +5 -0
- package/dist/utils/range.d.ts.map +1 -0
- package/dist/utils/range.js +25 -0
- package/dist/utils/range.js.map +1 -0
- package/dist/utils/rel-char-pos.d.ts +4 -0
- package/dist/utils/rel-char-pos.d.ts.map +1 -0
- package/dist/utils/rel-char-pos.js +14 -0
- package/dist/utils/rel-char-pos.js.map +1 -0
- package/dist/utils/scalar-to-data.d.ts +4 -0
- package/dist/utils/scalar-to-data.d.ts.map +1 -0
- package/dist/utils/scalar-to-data.js +19 -0
- package/dist/utils/scalar-to-data.js.map +1 -0
- package/dist/utils/transform.d.ts +6 -0
- package/dist/utils/transform.d.ts.map +1 -0
- package/dist/utils/transform.js +66 -0
- package/dist/utils/transform.js.map +1 -0
- package/dist/utils/workflow-cache.d.ts +21 -0
- package/dist/utils/workflow-cache.d.ts.map +1 -0
- package/dist/utils/workflow-cache.js +52 -0
- package/dist/utils/workflow-cache.js.map +1 -0
- package/dist/validate-action.d.ts +6 -0
- package/dist/validate-action.d.ts.map +1 -0
- package/dist/validate-action.js +71 -0
- package/dist/validate-action.js.map +1 -0
- package/dist/validate.d.ts +20 -0
- package/dist/validate.d.ts.map +1 -0
- package/dist/validate.js +162 -0
- package/dist/validate.js.map +1 -0
- package/dist/value-providers/config.d.ts +24 -0
- package/dist/value-providers/config.d.ts.map +1 -0
- package/dist/value-providers/config.js +6 -0
- package/dist/value-providers/config.js.map +1 -0
- package/dist/value-providers/default.d.ts +4 -0
- package/dist/value-providers/default.d.ts.map +1 -0
- package/dist/value-providers/default.js +38 -0
- package/dist/value-providers/default.js.map +1 -0
- package/dist/value-providers/definition.d.ts +4 -0
- package/dist/value-providers/definition.d.ts.map +1 -0
- package/dist/value-providers/definition.js +82 -0
- package/dist/value-providers/definition.js.map +1 -0
- package/dist/value-providers/needs.d.ts +4 -0
- package/dist/value-providers/needs.d.ts.map +1 -0
- package/dist/value-providers/needs.js +10 -0
- package/dist/value-providers/needs.js.map +1 -0
- package/dist/value-providers/reusable-job-inputs.d.ts +4 -0
- package/dist/value-providers/reusable-job-inputs.d.ts.map +1 -0
- package/dist/value-providers/reusable-job-inputs.js +29 -0
- package/dist/value-providers/reusable-job-inputs.js.map +1 -0
- package/dist/value-providers/reusable-job-secrets.d.ts +4 -0
- package/dist/value-providers/reusable-job-secrets.d.ts.map +1 -0
- package/dist/value-providers/reusable-job-secrets.js +41 -0
- package/dist/value-providers/reusable-job-secrets.js.map +1 -0
- package/dist/value-providers/strings-to-values.d.ts +3 -0
- package/dist/value-providers/strings-to-values.d.ts.map +1 -0
- package/dist/value-providers/strings-to-values.js +4 -0
- package/dist/value-providers/strings-to-values.js.map +1 -0
- package/package.json +77 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright GitHub
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
# actions/languageservice
|
|
2
|
+
|
|
3
|
+
This package contains the logic for the GitHub Actions workflows language server.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
The [package](https://www.npmjs.com/package/@actions/languageservice) contains TypeScript types and compiled ECMAScript modules.
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npm install @actions/languageservice
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## Usage
|
|
14
|
+
|
|
15
|
+
### Basic usage
|
|
16
|
+
|
|
17
|
+
#### Concepts
|
|
18
|
+
|
|
19
|
+
The language service features use three sources of information:
|
|
20
|
+
|
|
21
|
+
* a built-in static schema for the workflow YAML file
|
|
22
|
+
* _value providers_ which can dynamically add values to the schema, for example, the list of available labels for a repository when validating `runs-on`.
|
|
23
|
+
* _context providers_ which can dynamically provide available contexts used in [expressions](https://docs.github.com/actions/reference/context-and-expression-syntax-for-github-actions#about-contexts-and-expressions). For example, the contents of the `github.event` context for a given workflow file.
|
|
24
|
+
|
|
25
|
+
#### Validation
|
|
26
|
+
|
|
27
|
+
Validate a workflow file, returns an array of [`Diagnostic`](https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#diagnostic) objects.
|
|
28
|
+
|
|
29
|
+
```typescript
|
|
30
|
+
const config: ValidationConfig = {
|
|
31
|
+
valueProviderConfig: valueProviders(sessionToken, repoContext, cache),
|
|
32
|
+
contextProviderConfig: contextProviders(sessionToken, repoContext, cache),
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
const result = await validate(textDocument, config); // result is an array of `Diagnostic`
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
#### Hover
|
|
39
|
+
|
|
40
|
+
Get information when [hovering](https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#textDocument_hover) over a token in the workflow file.
|
|
41
|
+
|
|
42
|
+
```typescript
|
|
43
|
+
import {hover} from "@actions/languageservice";
|
|
44
|
+
|
|
45
|
+
const document = {
|
|
46
|
+
uri: "file:///path/to/file",
|
|
47
|
+
getText: () => "on: push\n jobs:\n build:\n runs-on: ubuntu-latest\n steps:\n - run: echo hello"
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
const hover = await hover(document, {line: 0, character: 1}); // { contents: { kind: "markdown", value: "The event that triggers the workflow" } }
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
#### Auto-completion
|
|
54
|
+
|
|
55
|
+
```typescript
|
|
56
|
+
import {complete} from "@actions/languageservice";
|
|
57
|
+
|
|
58
|
+
const document = {
|
|
59
|
+
uri: "file:///path/to/file",
|
|
60
|
+
getText: () => `on:
|
|
61
|
+
jobs:
|
|
62
|
+
build:
|
|
63
|
+
runs-on: ubuntu-latest
|
|
64
|
+
steps:
|
|
65
|
+
- run: echo hello`
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
// Trigger completion for `on: |`
|
|
69
|
+
const suggestions = await complete(document, {line: 0, character: 4});
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
will return
|
|
73
|
+
|
|
74
|
+
```jsonc
|
|
75
|
+
[{
|
|
76
|
+
"documentation": {
|
|
77
|
+
"kind": "markdown",
|
|
78
|
+
"value": "Runs your workflow when branch protection rules in the workflow repository are changed.",
|
|
79
|
+
},
|
|
80
|
+
"label": "branch_protection_rule",
|
|
81
|
+
"textEdit": {
|
|
82
|
+
"newText": "branch_protection_rule",
|
|
83
|
+
"range": {
|
|
84
|
+
"end": {"character": 4, "line": 0,},
|
|
85
|
+
"start": {"character": 4, "line": 0},
|
|
86
|
+
},
|
|
87
|
+
},
|
|
88
|
+
},
|
|
89
|
+
//... other events
|
|
90
|
+
]
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
## Contributing
|
|
94
|
+
|
|
95
|
+
See [CONTRIBUTING.md](../CONTRIBUTING.md) at the root of the repository for general guidelines and recommendations.
|
|
96
|
+
|
|
97
|
+
If you do want to contribute, please run [prettier](https://prettier.io/) to format your code and add unit tests as appropriate before submitting your PR.
|
|
98
|
+
|
|
99
|
+
### Build
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
npm run build
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
or to watch for changes
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
npm run watch
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
### Test
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
npm test
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
or to watch for changes and run tests:
|
|
118
|
+
|
|
119
|
+
```bash
|
|
120
|
+
npm run test-watch
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
### Lint
|
|
124
|
+
|
|
125
|
+
```bash
|
|
126
|
+
npm run format-check
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
## License
|
|
130
|
+
|
|
131
|
+
This project is licensed under the terms of the MIT open source license. Please refer to [MIT](../LICENSE) for the full terms.
|
package/dist/action.d.ts
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export type ActionMetadata = {
|
|
2
|
+
name: string;
|
|
3
|
+
description: string;
|
|
4
|
+
inputs?: ActionInputs;
|
|
5
|
+
outputs?: ActionOutputs;
|
|
6
|
+
};
|
|
7
|
+
export type ActionInput = {
|
|
8
|
+
description: string;
|
|
9
|
+
required?: boolean;
|
|
10
|
+
default?: string;
|
|
11
|
+
deprecationMessage?: string;
|
|
12
|
+
};
|
|
13
|
+
export type ActionInputs = Record<string, ActionInput>;
|
|
14
|
+
export type ActionOutput = {
|
|
15
|
+
description: string;
|
|
16
|
+
value?: string;
|
|
17
|
+
};
|
|
18
|
+
export type ActionOutputs = Record<string, ActionOutput>;
|
|
19
|
+
export type ActionReference = {
|
|
20
|
+
owner: string;
|
|
21
|
+
name: string;
|
|
22
|
+
ref: string;
|
|
23
|
+
path?: string;
|
|
24
|
+
};
|
|
25
|
+
export declare function parseActionReference(uses: string): ActionReference | undefined;
|
|
26
|
+
export declare function actionIdentifier(ref: ActionReference): string;
|
|
27
|
+
export declare function actionUrl(actionRef: ActionReference): string;
|
|
28
|
+
//# sourceMappingURL=action.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"action.d.ts","sourceRoot":"","sources":["../src/action.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB,CAAC;AAGF,MAAM,MAAM,WAAW,GAAG;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAGvD,MAAM,MAAM,YAAY,GAAG;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;AAEzD,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAGF,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAyB9E;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CAK7D;AAED,wBAAgB,SAAS,CAAC,SAAS,EAAE,eAAe,GAAG,MAAM,CAK5D"}
|
package/dist/action.js
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
// https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsuses
|
|
2
|
+
export function parseActionReference(uses) {
|
|
3
|
+
if (!uses || uses.startsWith("docker://") || uses.startsWith("./") || uses.startsWith(".\\")) {
|
|
4
|
+
return undefined;
|
|
5
|
+
}
|
|
6
|
+
const [action, ref] = uses.split("@");
|
|
7
|
+
const [owner, name, ...pathSegments] = action.split(/[\\/]/).filter(s => s.length > 0);
|
|
8
|
+
if (!owner || !name) {
|
|
9
|
+
return undefined;
|
|
10
|
+
}
|
|
11
|
+
if (pathSegments.length === 0) {
|
|
12
|
+
return {
|
|
13
|
+
owner,
|
|
14
|
+
name,
|
|
15
|
+
ref
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
return {
|
|
19
|
+
owner,
|
|
20
|
+
name,
|
|
21
|
+
ref,
|
|
22
|
+
path: pathSegments.join("/")
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
export function actionIdentifier(ref) {
|
|
26
|
+
if (ref.path) {
|
|
27
|
+
return `${ref.owner}/${ref.name}/${ref.ref}/${ref.path}`;
|
|
28
|
+
}
|
|
29
|
+
return `${ref.owner}/${ref.name}/${ref.ref}`;
|
|
30
|
+
}
|
|
31
|
+
export function actionUrl(actionRef) {
|
|
32
|
+
// TODO: Support base uri for GHES
|
|
33
|
+
const gitHubBaseUri = "https://www.github.com/";
|
|
34
|
+
return `${gitHubBaseUri}${actionRef.owner}/${actionRef.name}/tree/${actionRef.ref}/${actionRef.path || ""}`;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=action.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"action.js","sourceRoot":"","sources":["../src/action.ts"],"names":[],"mappings":"AAiCA,4GAA4G;AAC5G,MAAM,UAAU,oBAAoB,CAAC,IAAY;IAC/C,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;QAC5F,OAAO,SAAS,CAAC;KAClB;IAED,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACtC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,YAAY,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACvF,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE;QACnB,OAAO,SAAS,CAAC;KAClB;IAED,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;QAC7B,OAAO;YACL,KAAK;YACL,IAAI;YACJ,GAAG;SACJ,CAAC;KACH;IAED,OAAO;QACL,KAAK;QACL,IAAI;QACJ,GAAG;QACH,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC;KAC7B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,GAAoB;IACnD,IAAI,GAAG,CAAC,IAAI,EAAE;QACZ,OAAO,GAAG,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;KAC1D;IACD,OAAO,GAAG,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,SAA0B;IAClD,kCAAkC;IAClC,MAAM,aAAa,GAAG,yBAAyB,CAAC;IAEhD,OAAO,GAAG,aAAa,GAAG,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,IAAI,SAAS,SAAS,CAAC,GAAG,IAAI,SAAS,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;AAC9G,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { TemplateToken } from "@actions/workflow-parser/templates/tokens/index";
|
|
2
|
+
import { FileProvider } from "@actions/workflow-parser/workflows/file-provider";
|
|
3
|
+
import { Position, TextDocument } from "vscode-languageserver-textdocument";
|
|
4
|
+
import { CompletionItem } from "vscode-languageserver-types";
|
|
5
|
+
import { ContextProviderConfig } from "./context-providers/config";
|
|
6
|
+
import { ValueProviderConfig } from "./value-providers/config";
|
|
7
|
+
export declare function getExpressionInput(input: string, pos: number): string;
|
|
8
|
+
export type CompletionConfig = {
|
|
9
|
+
valueProviderConfig?: ValueProviderConfig;
|
|
10
|
+
contextProviderConfig?: ContextProviderConfig;
|
|
11
|
+
fileProvider?: FileProvider;
|
|
12
|
+
};
|
|
13
|
+
export declare function complete(textDocument: TextDocument, position: Position, config?: CompletionConfig): Promise<CompletionItem[]>;
|
|
14
|
+
export declare function getExistingValues(token: TemplateToken | null, parent: TemplateToken): Set<string> | undefined;
|
|
15
|
+
//# sourceMappingURL=complete.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"complete.d.ts","sourceRoot":"","sources":["../src/complete.ts"],"names":[],"mappings":"AAKA,OAAO,EAAC,aAAa,EAAC,MAAM,iDAAiD,CAAC;AAI9E,OAAO,EAAC,YAAY,EAAC,MAAM,kDAAkD,CAAC;AAC9E,OAAO,EAAC,QAAQ,EAAE,YAAY,EAAC,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAC,cAAc,EAAyD,MAAM,6BAA6B,CAAC;AACnH,OAAO,EAAC,qBAAqB,EAAC,MAAM,4BAA4B,CAAC;AAYjE,OAAO,EAAQ,mBAAmB,EAAC,MAAM,0BAA0B,CAAC;AAIpE,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAUrE;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;IAC9C,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B,CAAC;AAEF,wBAAsB,QAAQ,CAC5B,YAAY,EAAE,YAAY,EAC1B,QAAQ,EAAE,QAAQ,EAClB,MAAM,CAAC,EAAE,gBAAgB,GACxB,OAAO,CAAC,cAAc,EAAE,CAAC,CA2F3B;AA6CD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,EAAE,MAAM,EAAE,aAAa,2BAkCnF"}
|
package/dist/complete.js
ADDED
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
import { complete as completeExpression } from "@actions/expressions";
|
|
2
|
+
import { isBasicExpression, isSequence, isString } from "@actions/workflow-parser";
|
|
3
|
+
import { ErrorPolicy } from "@actions/workflow-parser/model/convert";
|
|
4
|
+
import { OPEN_EXPRESSION } from "@actions/workflow-parser/templates/template-constants";
|
|
5
|
+
import { TokenType } from "@actions/workflow-parser/templates/tokens/types";
|
|
6
|
+
import { CompletionItemKind, CompletionItemTag, Range, TextEdit } from "vscode-languageserver-types";
|
|
7
|
+
import { getContext, Mode } from "./context-providers/default";
|
|
8
|
+
import { getWorkflowContext } from "./context/workflow-context";
|
|
9
|
+
import { validatorFunctions } from "./expression-validation/functions";
|
|
10
|
+
import { error } from "./log";
|
|
11
|
+
import { isPotentiallyExpression } from "./utils/expression-detection";
|
|
12
|
+
import { findToken } from "./utils/find-token";
|
|
13
|
+
import { guessIndentation } from "./utils/indentation-guesser";
|
|
14
|
+
import { mapRange } from "./utils/range";
|
|
15
|
+
import { getRelCharOffset } from "./utils/rel-char-pos";
|
|
16
|
+
import { isPlaceholder, transform } from "./utils/transform";
|
|
17
|
+
import { fetchOrConvertWorkflowTemplate, fetchOrParseWorkflow } from "./utils/workflow-cache";
|
|
18
|
+
import { defaultValueProviders } from "./value-providers/default";
|
|
19
|
+
import { definitionValues } from "./value-providers/definition";
|
|
20
|
+
export function getExpressionInput(input, pos) {
|
|
21
|
+
// Find start marker around the cursor position
|
|
22
|
+
let startPos = input.lastIndexOf(OPEN_EXPRESSION, pos);
|
|
23
|
+
if (startPos === -1) {
|
|
24
|
+
startPos = 0;
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
startPos += OPEN_EXPRESSION.length;
|
|
28
|
+
}
|
|
29
|
+
return input.substring(startPos, pos);
|
|
30
|
+
}
|
|
31
|
+
export async function complete(textDocument, position, config) {
|
|
32
|
+
// Edge case: when completing a key like `foo:|`, do not calculate auto-completions
|
|
33
|
+
const charBeforePos = textDocument.getText({
|
|
34
|
+
start: { line: position.line, character: position.character - 1 },
|
|
35
|
+
end: { line: position.line, character: position.character }
|
|
36
|
+
});
|
|
37
|
+
if (charBeforePos === ":") {
|
|
38
|
+
return [];
|
|
39
|
+
}
|
|
40
|
+
// Fix the input to work around YAML parsing issues
|
|
41
|
+
const [newDoc, newPos] = transform(textDocument, position);
|
|
42
|
+
const file = {
|
|
43
|
+
name: textDocument.uri,
|
|
44
|
+
content: newDoc.getText()
|
|
45
|
+
};
|
|
46
|
+
const parsedWorkflow = fetchOrParseWorkflow(file, textDocument.uri, true);
|
|
47
|
+
if (!parsedWorkflow.value) {
|
|
48
|
+
return [];
|
|
49
|
+
}
|
|
50
|
+
const template = await fetchOrConvertWorkflowTemplate(parsedWorkflow.context, parsedWorkflow.value, textDocument.uri, config, {
|
|
51
|
+
fetchReusableWorkflowDepth: config?.fileProvider ? 1 : 0,
|
|
52
|
+
errorPolicy: ErrorPolicy.TryConversion
|
|
53
|
+
});
|
|
54
|
+
const { token, keyToken, parent, path } = findToken(newPos, parsedWorkflow.value);
|
|
55
|
+
const workflowContext = getWorkflowContext(textDocument.uri, template, path);
|
|
56
|
+
// If we are inside an expression, take a different code-path. The workflow parser does not correctly create
|
|
57
|
+
// expression nodes for invalid expressions and during editing expressions are invalid most of the time.
|
|
58
|
+
if (token) {
|
|
59
|
+
if (isBasicExpression(token) || isPotentiallyExpression(token)) {
|
|
60
|
+
const allowedContext = token.definitionInfo?.allowedContext || [];
|
|
61
|
+
const context = await getContext(allowedContext, config?.contextProviderConfig, workflowContext, Mode.Completion);
|
|
62
|
+
return getExpressionCompletionItems(token, context, newPos);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
const indentation = guessIndentation(newDoc, 2, true); // Use 2 spaces as default and most common for YAML
|
|
66
|
+
const indentString = " ".repeat(indentation.tabSize);
|
|
67
|
+
const values = await getValues(token, keyToken, parent, config?.valueProviderConfig, workflowContext, indentString);
|
|
68
|
+
let replaceRange;
|
|
69
|
+
if (token?.range) {
|
|
70
|
+
replaceRange = mapRange(token.range);
|
|
71
|
+
}
|
|
72
|
+
else if (!token) {
|
|
73
|
+
// Not a valid token, create a range from the current position
|
|
74
|
+
const line = newDoc.getText({ start: { line: position.line, character: 0 }, end: position });
|
|
75
|
+
// Get the length of the current word
|
|
76
|
+
const val = line.match(/[\w_-]*$/)?.[0].length || 0;
|
|
77
|
+
// Check if we need to remove a trailing colon
|
|
78
|
+
const charAfterPos = textDocument.getText({
|
|
79
|
+
start: { line: position.line, character: position.character },
|
|
80
|
+
end: { line: position.line, character: position.character + 1 }
|
|
81
|
+
});
|
|
82
|
+
if (charAfterPos === ":") {
|
|
83
|
+
replaceRange = Range.create({ line: position.line, character: position.character - val }, { line: position.line, character: position.character + 1 });
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
replaceRange = Range.create({ line: position.line, character: position.character - val }, position);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
return values.map(value => {
|
|
90
|
+
const newText = value.insertText || value.label;
|
|
91
|
+
const item = {
|
|
92
|
+
label: value.label,
|
|
93
|
+
documentation: value.description && {
|
|
94
|
+
kind: "markdown",
|
|
95
|
+
value: value.description
|
|
96
|
+
},
|
|
97
|
+
tags: value.deprecated ? [CompletionItemTag.Deprecated] : undefined,
|
|
98
|
+
textEdit: replaceRange ? TextEdit.replace(replaceRange, newText) : TextEdit.insert(position, newText)
|
|
99
|
+
};
|
|
100
|
+
return item;
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
async function getValues(token, keyToken, parent, valueProviderConfig, workflowContext, indentation) {
|
|
104
|
+
if (!parent) {
|
|
105
|
+
return [];
|
|
106
|
+
}
|
|
107
|
+
const existingValues = getExistingValues(token, parent);
|
|
108
|
+
// Use the value providers from the parent if the current key is null
|
|
109
|
+
const valueProviderToken = keyToken || parent;
|
|
110
|
+
const customValueProvider = valueProviderToken?.definition?.key && valueProviderConfig?.[valueProviderToken.definition.key];
|
|
111
|
+
if (customValueProvider) {
|
|
112
|
+
const customValues = await customValueProvider.get(workflowContext, existingValues);
|
|
113
|
+
if (customValues) {
|
|
114
|
+
return filterAndSortCompletionOptions(customValues, existingValues);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
const defaultValueProvider = valueProviderToken?.definition?.key && defaultValueProviders[valueProviderToken.definition.key];
|
|
118
|
+
if (defaultValueProvider) {
|
|
119
|
+
const values = await defaultValueProvider.get(workflowContext, existingValues);
|
|
120
|
+
return filterAndSortCompletionOptions(values, existingValues);
|
|
121
|
+
}
|
|
122
|
+
// Use the definition if there are no value providers
|
|
123
|
+
const def = keyToken?.definition || parent.definition;
|
|
124
|
+
if (!def) {
|
|
125
|
+
return [];
|
|
126
|
+
}
|
|
127
|
+
const values = definitionValues(def, indentation);
|
|
128
|
+
return filterAndSortCompletionOptions(values, existingValues);
|
|
129
|
+
}
|
|
130
|
+
export function getExistingValues(token, parent) {
|
|
131
|
+
// For incomplete YAML, we may only have a parent token
|
|
132
|
+
if (token) {
|
|
133
|
+
if (!isString(token)) {
|
|
134
|
+
return;
|
|
135
|
+
}
|
|
136
|
+
if (isSequence(parent)) {
|
|
137
|
+
const sequenceValues = new Set();
|
|
138
|
+
for (const t of parent) {
|
|
139
|
+
if (isString(t)) {
|
|
140
|
+
// Should we support other literal values here?
|
|
141
|
+
sequenceValues.add(t.value);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
return sequenceValues;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
if (parent.templateTokenType === TokenType.Mapping) {
|
|
148
|
+
// No token and parent is a mapping, so we're completing a key
|
|
149
|
+
const mapKeys = new Set();
|
|
150
|
+
const mapToken = parent;
|
|
151
|
+
for (const { key, value } of mapToken) {
|
|
152
|
+
if (isString(key) && !isPlaceholder(key, value)) {
|
|
153
|
+
mapKeys.add(key.value);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
return mapKeys;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
function getExpressionCompletionItems(token, context, pos) {
|
|
160
|
+
if (!token.range) {
|
|
161
|
+
return [];
|
|
162
|
+
}
|
|
163
|
+
let currentInput = "";
|
|
164
|
+
if (isBasicExpression(token)) {
|
|
165
|
+
currentInput = token.source || token.expression;
|
|
166
|
+
}
|
|
167
|
+
else {
|
|
168
|
+
const stringToken = token.assertString("Expected string token for expression completion");
|
|
169
|
+
currentInput = stringToken.source || stringToken.value;
|
|
170
|
+
}
|
|
171
|
+
const relCharOffset = getRelCharOffset(token.range, currentInput, pos);
|
|
172
|
+
const expressionInput = (getExpressionInput(currentInput, relCharOffset) || "").trim();
|
|
173
|
+
try {
|
|
174
|
+
return completeExpression(expressionInput, context, [], validatorFunctions).map(item => mapExpressionCompletionItem(item, currentInput[relCharOffset]));
|
|
175
|
+
}
|
|
176
|
+
catch (e) {
|
|
177
|
+
error(`Error while completing expression: '${e?.message || "<no details>"}'`);
|
|
178
|
+
return [];
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
function filterAndSortCompletionOptions(options, existingValues) {
|
|
182
|
+
options = options.filter(x => !existingValues?.has(x.label));
|
|
183
|
+
options.sort((a, b) => a.label.localeCompare(b.label));
|
|
184
|
+
return options;
|
|
185
|
+
}
|
|
186
|
+
function mapExpressionCompletionItem(item, charAfterPos) {
|
|
187
|
+
let insertText;
|
|
188
|
+
// Insert parentheses if the cursor is after a function
|
|
189
|
+
// and the function does not have any parantheses already
|
|
190
|
+
if (item.function) {
|
|
191
|
+
insertText = charAfterPos === "(" ? item.label : item.label + "()";
|
|
192
|
+
}
|
|
193
|
+
return {
|
|
194
|
+
label: item.label,
|
|
195
|
+
documentation: item.description && {
|
|
196
|
+
kind: "markdown",
|
|
197
|
+
value: item.description
|
|
198
|
+
},
|
|
199
|
+
insertText: insertText,
|
|
200
|
+
kind: item.function ? CompletionItemKind.Function : CompletionItemKind.Variable
|
|
201
|
+
};
|
|
202
|
+
}
|
|
203
|
+
//# sourceMappingURL=complete.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"complete.js","sourceRoot":"","sources":["../src/complete.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { WorkflowTemplate } from "@actions/workflow-parser";
|
|
2
|
+
import { Job, ReusableWorkflowJob, Step } from "@actions/workflow-parser/model/workflow-template";
|
|
3
|
+
import { TemplateToken } from "@actions/workflow-parser/templates/tokens/template-token";
|
|
4
|
+
export interface WorkflowContext {
|
|
5
|
+
uri: string;
|
|
6
|
+
template: WorkflowTemplate | undefined;
|
|
7
|
+
/** If the context is for a position within a regular job, this will be the job */
|
|
8
|
+
job?: Job;
|
|
9
|
+
/** If the context is for a position within a reusable workflow job, this will be the reusable workflow job */
|
|
10
|
+
reusableWorkflowJob?: ReusableWorkflowJob;
|
|
11
|
+
/** If the context is for a position within a step, this will be the step */
|
|
12
|
+
step?: Step;
|
|
13
|
+
}
|
|
14
|
+
export declare function getWorkflowContext(uri: string, template: WorkflowTemplate | undefined, tokenPath: TemplateToken[]): WorkflowContext;
|
|
15
|
+
//# sourceMappingURL=workflow-context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow-context.d.ts","sourceRoot":"","sources":["../../src/context/workflow-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,gBAAgB,EAAC,MAAM,0BAA0B,CAAC;AAEjF,OAAO,EAAC,GAAG,EAAE,mBAAmB,EAAE,IAAI,EAAC,MAAM,kDAAkD,CAAC;AAIhG,OAAO,EAAC,aAAa,EAAC,MAAM,0DAA0D,CAAC;AAEvF,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IAEZ,QAAQ,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAEvC,kFAAkF;IAClF,GAAG,CAAC,EAAE,GAAG,CAAC;IAEV,8GAA8G;IAC9G,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAE1C,4EAA4E;IAC5E,IAAI,CAAC,EAAE,IAAI,CAAC;CACb;AAED,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,gBAAgB,GAAG,SAAS,EACtC,SAAS,EAAE,aAAa,EAAE,GACzB,eAAe,CA8CjB"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { isMapping, isSequence } from "@actions/workflow-parser";
|
|
2
|
+
import { isJob, isReusableWorkflowJob } from "@actions/workflow-parser/model/type-guards";
|
|
3
|
+
export function getWorkflowContext(uri, template, tokenPath) {
|
|
4
|
+
const context = { uri: uri, template };
|
|
5
|
+
if (!template) {
|
|
6
|
+
return context;
|
|
7
|
+
}
|
|
8
|
+
let stepsSequence = undefined;
|
|
9
|
+
let stepToken = undefined;
|
|
10
|
+
// Iterate through the token path to find the job and step
|
|
11
|
+
for (const token of tokenPath) {
|
|
12
|
+
switch (token.definition?.key) {
|
|
13
|
+
case "job": {
|
|
14
|
+
const jobID = token.value;
|
|
15
|
+
const job = template.jobs.find(job => job.id.value === jobID);
|
|
16
|
+
if (!job) {
|
|
17
|
+
break;
|
|
18
|
+
}
|
|
19
|
+
if (isJob(job)) {
|
|
20
|
+
context.job = job;
|
|
21
|
+
}
|
|
22
|
+
else if (isReusableWorkflowJob(job)) {
|
|
23
|
+
context.reusableWorkflowJob = job;
|
|
24
|
+
}
|
|
25
|
+
break;
|
|
26
|
+
}
|
|
27
|
+
case "steps": {
|
|
28
|
+
if (isSequence(token)) {
|
|
29
|
+
stepsSequence = token;
|
|
30
|
+
}
|
|
31
|
+
break;
|
|
32
|
+
}
|
|
33
|
+
case "regular-step":
|
|
34
|
+
case "run-step": {
|
|
35
|
+
if (isMapping(token)) {
|
|
36
|
+
stepToken = token;
|
|
37
|
+
}
|
|
38
|
+
break;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
if (context.job && isJob(context.job)) {
|
|
43
|
+
context.step = findStep(context.job.steps, stepsSequence, stepToken);
|
|
44
|
+
}
|
|
45
|
+
return context;
|
|
46
|
+
}
|
|
47
|
+
function findStep(steps, stepSequence, stepToken) {
|
|
48
|
+
if (!steps || !stepSequence || !stepToken) {
|
|
49
|
+
return undefined;
|
|
50
|
+
}
|
|
51
|
+
// Steps may not define an ID, so find the step by index
|
|
52
|
+
let stepIndex = -1;
|
|
53
|
+
for (let i = 0; i < stepSequence.count; i++) {
|
|
54
|
+
if (stepSequence.get(i) === stepToken) {
|
|
55
|
+
stepIndex = i;
|
|
56
|
+
break;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
if (stepIndex === -1 || stepIndex >= steps.length) {
|
|
60
|
+
return undefined;
|
|
61
|
+
}
|
|
62
|
+
return steps[stepIndex];
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=workflow-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow-context.js","sourceRoot":"","sources":["../../src/context/workflow-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,UAAU,EAAmB,MAAM,0BAA0B,CAAC;AACjF,OAAO,EAAC,KAAK,EAAE,qBAAqB,EAAC,MAAM,4CAA4C,CAAC;AAsBxF,MAAM,UAAU,kBAAkB,CAChC,GAAW,EACX,QAAsC,EACtC,SAA0B;IAE1B,MAAM,OAAO,GAAoB,EAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAC,CAAC;IACtD,IAAI,CAAC,QAAQ,EAAE;QACb,OAAO,OAAO,CAAC;KAChB;IAED,IAAI,aAAa,GAA8B,SAAS,CAAC;IACzD,IAAI,SAAS,GAA6B,SAAS,CAAC;IAEpD,0DAA0D;IAC1D,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE;QAC7B,QAAQ,KAAK,CAAC,UAAU,EAAE,GAAG,EAAE;YAC7B,KAAK,KAAK,CAAC,CAAC;gBACV,MAAM,KAAK,GAAI,KAAqB,CAAC,KAAK,CAAC;gBAC3C,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;gBAC9D,IAAI,CAAC,GAAG,EAAE;oBACR,MAAM;iBACP;gBACD,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE;oBACd,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC;iBACnB;qBAAM,IAAI,qBAAqB,CAAC,GAAG,CAAC,EAAE;oBACrC,OAAO,CAAC,mBAAmB,GAAG,GAAG,CAAC;iBACnC;gBACD,MAAM;aACP;YACD,KAAK,OAAO,CAAC,CAAC;gBACZ,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE;oBACrB,aAAa,GAAG,KAAK,CAAC;iBACvB;gBACD,MAAM;aACP;YACD,KAAK,cAAc,CAAC;YACpB,KAAK,UAAU,CAAC,CAAC;gBACf,IAAI,SAAS,CAAC,KAAK,CAAC,EAAE;oBACpB,SAAS,GAAG,KAAK,CAAC;iBACnB;gBACD,MAAM;aACP;SACF;KACF;IAED,IAAI,OAAO,CAAC,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;QACrC,OAAO,CAAC,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC;KACtE;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc,EAAE,YAA4B,EAAE,SAAwB;IACtF,IAAI,CAAC,KAAK,IAAI,CAAC,YAAY,IAAI,CAAC,SAAS,EAAE;QACzC,OAAO,SAAS,CAAC;KAClB;IAED,wDAAwD;IACxD,IAAI,SAAS,GAAG,CAAC,CAAC,CAAC;IACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;QAC3C,IAAI,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE;YACrC,SAAS,GAAG,CAAC,CAAC;YACd,MAAM;SACP;KACF;IAED,IAAI,SAAS,KAAK,CAAC,CAAC,IAAI,SAAS,IAAI,KAAK,CAAC,MAAM,EAAE;QACjD,OAAO,SAAS,CAAC;KAClB;IAED,OAAO,KAAK,CAAC,SAAS,CAAC,CAAC;AAC1B,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { DescriptionDictionary } from "@actions/expressions";
|
|
2
|
+
import { WorkflowContext } from "../context/workflow-context";
|
|
3
|
+
import { Mode } from "./default";
|
|
4
|
+
export type ContextProviderConfig = {
|
|
5
|
+
getContext: (name: string, defaultContext: DescriptionDictionary | undefined, workflowContext: WorkflowContext, mode: Mode) => Promise<DescriptionDictionary | undefined>;
|
|
6
|
+
};
|
|
7
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/context-providers/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,qBAAqB,EAAC,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAC,eAAe,EAAC,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAC,IAAI,EAAC,MAAM,WAAW,CAAC;AAE/B,MAAM,MAAM,qBAAqB,GAAG;IAClC,UAAU,EAAE,CACV,IAAI,EAAE,MAAM,EACZ,cAAc,EAAE,qBAAqB,GAAG,SAAS,EACjD,eAAe,EAAE,eAAe,EAChC,IAAI,EAAE,IAAI,KACP,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC,CAAC;CACjD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/context-providers/config.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { data, DescriptionDictionary } from "@actions/expressions";
|
|
2
|
+
import { WorkflowContext } from "../context/workflow-context";
|
|
3
|
+
import { ContextProviderConfig } from "./config";
|
|
4
|
+
export type ContextValue = DescriptionDictionary | data.Null;
|
|
5
|
+
export declare enum Mode {
|
|
6
|
+
Completion = 0,
|
|
7
|
+
Validation = 1,
|
|
8
|
+
Hover = 2
|
|
9
|
+
}
|
|
10
|
+
export declare function getContext(names: string[], config: ContextProviderConfig | undefined, workflowContext: WorkflowContext, mode: Mode): Promise<DescriptionDictionary>;
|
|
11
|
+
//# sourceMappingURL=default.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default.d.ts","sourceRoot":"","sources":["../../src/context-providers/default.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAE,qBAAqB,EAAC,MAAM,sBAAsB,CAAC;AAEjE,OAAO,EAAC,eAAe,EAAC,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAC,qBAAqB,EAAC,MAAM,UAAU,CAAC;AAe/C,MAAM,MAAM,YAAY,GAAG,qBAAqB,GAAG,IAAI,CAAC,IAAI,CAAC;AAE7D,oBAAY,IAAI;IACd,UAAU,IAAA;IACV,UAAU,IAAA;IACV,KAAK,IAAA;CACN;AAED,wBAAsB,UAAU,CAC9B,KAAK,EAAE,MAAM,EAAE,EACf,MAAM,EAAE,qBAAqB,GAAG,SAAS,EACzC,eAAe,EAAE,eAAe,EAChC,IAAI,EAAE,IAAI,GACT,OAAO,CAAC,qBAAqB,CAAC,CAiBhC"}
|