@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.
Files changed (188) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +131 -0
  3. package/dist/action.d.ts +28 -0
  4. package/dist/action.d.ts.map +1 -0
  5. package/dist/action.js +36 -0
  6. package/dist/action.js.map +1 -0
  7. package/dist/complete.d.ts +15 -0
  8. package/dist/complete.d.ts.map +1 -0
  9. package/dist/complete.js +203 -0
  10. package/dist/complete.js.map +1 -0
  11. package/dist/context/workflow-context.d.ts +15 -0
  12. package/dist/context/workflow-context.d.ts.map +1 -0
  13. package/dist/context/workflow-context.js +64 -0
  14. package/dist/context/workflow-context.js.map +1 -0
  15. package/dist/context-providers/config.d.ts +7 -0
  16. package/dist/context-providers/config.d.ts.map +1 -0
  17. package/dist/context-providers/config.js +2 -0
  18. package/dist/context-providers/config.js.map +1 -0
  19. package/dist/context-providers/default.d.ts +11 -0
  20. package/dist/context-providers/default.d.ts.map +1 -0
  21. package/dist/context-providers/default.js +88 -0
  22. package/dist/context-providers/default.js.map +1 -0
  23. package/dist/context-providers/descriptions.d.ts +15 -0
  24. package/dist/context-providers/descriptions.d.ts.map +1 -0
  25. package/dist/context-providers/descriptions.js +23 -0
  26. package/dist/context-providers/descriptions.js.map +1 -0
  27. package/dist/context-providers/descriptions.json +241 -0
  28. package/dist/context-providers/env.d.ts +4 -0
  29. package/dist/context-providers/env.d.ts.map +1 -0
  30. package/dist/context-providers/env.js +29 -0
  31. package/dist/context-providers/env.js.map +1 -0
  32. package/dist/context-providers/events/eventPayloads.d.ts +4 -0
  33. package/dist/context-providers/events/eventPayloads.d.ts.map +1 -0
  34. package/dist/context-providers/events/eventPayloads.js +111 -0
  35. package/dist/context-providers/events/eventPayloads.js.map +1 -0
  36. package/dist/context-providers/events/objects.json +26220 -0
  37. package/dist/context-providers/events/schedule.json +102 -0
  38. package/dist/context-providers/events/webhooks.json +124811 -0
  39. package/dist/context-providers/events/workflow_call.json +134 -0
  40. package/dist/context-providers/github.d.ts +5 -0
  41. package/dist/context-providers/github.d.ts.map +1 -0
  42. package/dist/context-providers/github.js +139 -0
  43. package/dist/context-providers/github.js.map +1 -0
  44. package/dist/context-providers/inputs.d.ts +4 -0
  45. package/dist/context-providers/inputs.d.ts.map +1 -0
  46. package/dist/context-providers/inputs.js +52 -0
  47. package/dist/context-providers/inputs.js.map +1 -0
  48. package/dist/context-providers/job.d.ts +4 -0
  49. package/dist/context-providers/job.d.ts.map +1 -0
  50. package/dist/context-providers/job.js +61 -0
  51. package/dist/context-providers/job.js.map +1 -0
  52. package/dist/context-providers/jobs.d.ts +4 -0
  53. package/dist/context-providers/jobs.d.ts.map +1 -0
  54. package/dist/context-providers/jobs.js +30 -0
  55. package/dist/context-providers/jobs.js.map +1 -0
  56. package/dist/context-providers/matrix.d.ts +4 -0
  57. package/dist/context-providers/matrix.d.ts.map +1 -0
  58. package/dist/context-providers/matrix.js +163 -0
  59. package/dist/context-providers/matrix.js.map +1 -0
  60. package/dist/context-providers/needs.d.ts +4 -0
  61. package/dist/context-providers/needs.d.ts.map +1 -0
  62. package/dist/context-providers/needs.js +56 -0
  63. package/dist/context-providers/needs.js.map +1 -0
  64. package/dist/context-providers/secrets.d.ts +5 -0
  65. package/dist/context-providers/secrets.d.ts.map +1 -0
  66. package/dist/context-providers/secrets.js +23 -0
  67. package/dist/context-providers/secrets.js.map +1 -0
  68. package/dist/context-providers/steps.d.ts +4 -0
  69. package/dist/context-providers/steps.d.ts.map +1 -0
  70. package/dist/context-providers/steps.js +35 -0
  71. package/dist/context-providers/steps.js.map +1 -0
  72. package/dist/context-providers/strategy.d.ts +4 -0
  73. package/dist/context-providers/strategy.d.ts.map +1 -0
  74. package/dist/context-providers/strategy.js +31 -0
  75. package/dist/context-providers/strategy.js.map +1 -0
  76. package/dist/description-providers/reusable-job-inputs.d.ts +5 -0
  77. package/dist/description-providers/reusable-job-inputs.d.ts.map +1 -0
  78. package/dist/description-providers/reusable-job-inputs.js +29 -0
  79. package/dist/description-providers/reusable-job-inputs.js.map +1 -0
  80. package/dist/document-links.d.ts +4 -0
  81. package/dist/document-links.d.ts.map +1 -0
  82. package/dist/document-links.js +73 -0
  83. package/dist/document-links.js.map +1 -0
  84. package/dist/expression-hover/expression-pos.d.ts +13 -0
  85. package/dist/expression-hover/expression-pos.d.ts.map +1 -0
  86. package/dist/expression-hover/expression-pos.js +41 -0
  87. package/dist/expression-hover/expression-pos.js.map +1 -0
  88. package/dist/expression-hover/pos-range.d.ts +3 -0
  89. package/dist/expression-hover/pos-range.d.ts.map +1 -0
  90. package/dist/expression-hover/pos-range.js +7 -0
  91. package/dist/expression-hover/pos-range.js.map +1 -0
  92. package/dist/expression-hover/visitor.d.ts +27 -0
  93. package/dist/expression-hover/visitor.d.ts.map +1 -0
  94. package/dist/expression-hover/visitor.js +116 -0
  95. package/dist/expression-hover/visitor.js.map +1 -0
  96. package/dist/expression-validation/error-dictionary.d.ts +13 -0
  97. package/dist/expression-validation/error-dictionary.d.ts.map +1 -0
  98. package/dist/expression-validation/error-dictionary.js +39 -0
  99. package/dist/expression-validation/error-dictionary.js.map +1 -0
  100. package/dist/expression-validation/functions.d.ts +9 -0
  101. package/dist/expression-validation/functions.d.ts.map +1 -0
  102. package/dist/expression-validation/functions.js +11 -0
  103. package/dist/expression-validation/functions.js.map +1 -0
  104. package/dist/hover.d.ts +16 -0
  105. package/dist/hover.d.ts.map +1 -0
  106. package/dist/hover.js +154 -0
  107. package/dist/hover.js.map +1 -0
  108. package/dist/index.d.ts +8 -0
  109. package/dist/index.d.ts.map +1 -0
  110. package/dist/index.js +7 -0
  111. package/dist/index.js.map +1 -0
  112. package/dist/log.d.ts +39 -0
  113. package/dist/log.d.ts.map +1 -0
  114. package/dist/log.js +48 -0
  115. package/dist/log.js.map +1 -0
  116. package/dist/nulltrace.d.ts +3 -0
  117. package/dist/nulltrace.d.ts.map +1 -0
  118. package/dist/nulltrace.js +3 -0
  119. package/dist/nulltrace.js.map +1 -0
  120. package/dist/utils/expression-detection.d.ts +3 -0
  121. package/dist/utils/expression-detection.d.ts.map +1 -0
  122. package/dist/utils/expression-detection.js +9 -0
  123. package/dist/utils/expression-detection.js.map +1 -0
  124. package/dist/utils/find-token.d.ts +23 -0
  125. package/dist/utils/find-token.d.ts.map +1 -0
  126. package/dist/utils/find-token.js +159 -0
  127. package/dist/utils/find-token.js.map +1 -0
  128. package/dist/utils/indentation-guesser.d.ts +16 -0
  129. package/dist/utils/indentation-guesser.d.ts.map +1 -0
  130. package/dist/utils/indentation-guesser.js +214 -0
  131. package/dist/utils/indentation-guesser.js.map +1 -0
  132. package/dist/utils/range.d.ts +5 -0
  133. package/dist/utils/range.d.ts.map +1 -0
  134. package/dist/utils/range.js +25 -0
  135. package/dist/utils/range.js.map +1 -0
  136. package/dist/utils/rel-char-pos.d.ts +4 -0
  137. package/dist/utils/rel-char-pos.d.ts.map +1 -0
  138. package/dist/utils/rel-char-pos.js +14 -0
  139. package/dist/utils/rel-char-pos.js.map +1 -0
  140. package/dist/utils/scalar-to-data.d.ts +4 -0
  141. package/dist/utils/scalar-to-data.d.ts.map +1 -0
  142. package/dist/utils/scalar-to-data.js +19 -0
  143. package/dist/utils/scalar-to-data.js.map +1 -0
  144. package/dist/utils/transform.d.ts +6 -0
  145. package/dist/utils/transform.d.ts.map +1 -0
  146. package/dist/utils/transform.js +66 -0
  147. package/dist/utils/transform.js.map +1 -0
  148. package/dist/utils/workflow-cache.d.ts +21 -0
  149. package/dist/utils/workflow-cache.d.ts.map +1 -0
  150. package/dist/utils/workflow-cache.js +52 -0
  151. package/dist/utils/workflow-cache.js.map +1 -0
  152. package/dist/validate-action.d.ts +6 -0
  153. package/dist/validate-action.d.ts.map +1 -0
  154. package/dist/validate-action.js +71 -0
  155. package/dist/validate-action.js.map +1 -0
  156. package/dist/validate.d.ts +20 -0
  157. package/dist/validate.d.ts.map +1 -0
  158. package/dist/validate.js +162 -0
  159. package/dist/validate.js.map +1 -0
  160. package/dist/value-providers/config.d.ts +24 -0
  161. package/dist/value-providers/config.d.ts.map +1 -0
  162. package/dist/value-providers/config.js +6 -0
  163. package/dist/value-providers/config.js.map +1 -0
  164. package/dist/value-providers/default.d.ts +4 -0
  165. package/dist/value-providers/default.d.ts.map +1 -0
  166. package/dist/value-providers/default.js +38 -0
  167. package/dist/value-providers/default.js.map +1 -0
  168. package/dist/value-providers/definition.d.ts +4 -0
  169. package/dist/value-providers/definition.d.ts.map +1 -0
  170. package/dist/value-providers/definition.js +82 -0
  171. package/dist/value-providers/definition.js.map +1 -0
  172. package/dist/value-providers/needs.d.ts +4 -0
  173. package/dist/value-providers/needs.d.ts.map +1 -0
  174. package/dist/value-providers/needs.js +10 -0
  175. package/dist/value-providers/needs.js.map +1 -0
  176. package/dist/value-providers/reusable-job-inputs.d.ts +4 -0
  177. package/dist/value-providers/reusable-job-inputs.d.ts.map +1 -0
  178. package/dist/value-providers/reusable-job-inputs.js +29 -0
  179. package/dist/value-providers/reusable-job-inputs.js.map +1 -0
  180. package/dist/value-providers/reusable-job-secrets.d.ts +4 -0
  181. package/dist/value-providers/reusable-job-secrets.d.ts.map +1 -0
  182. package/dist/value-providers/reusable-job-secrets.js +41 -0
  183. package/dist/value-providers/reusable-job-secrets.js.map +1 -0
  184. package/dist/value-providers/strings-to-values.d.ts +3 -0
  185. package/dist/value-providers/strings-to-values.d.ts.map +1 -0
  186. package/dist/value-providers/strings-to-values.js +4 -0
  187. package/dist/value-providers/strings-to-values.js.map +1 -0
  188. package/package.json +77 -0
@@ -0,0 +1,134 @@
1
+ {
2
+ "action": "on-demand-test",
3
+ "repository": {
4
+ "id": 17273051,
5
+ "node_id": "MDEwOlJlcG9zaXRvcnkxNzI3MzA1MQ==",
6
+ "name": "octo-repo",
7
+ "full_name": "octo-org/octo-repo",
8
+ "private": true,
9
+ "owner": {
10
+ "login": "octo-org",
11
+ "id": 6811672,
12
+ "node_id": "MDEyOk9yZ2FuaXphdGlvbjY4MTE2NzI=",
13
+ "avatar_url": "https://avatars3.githubusercontent.com/u/6811672?v=4",
14
+ "gravatar_id": "",
15
+ "url": "https://api.github.com/users/octo-org",
16
+ "html_url": "https://github.com/octo-org",
17
+ "followers_url": "https://api.github.com/users/octo-org/followers",
18
+ "following_url": "https://api.github.com/users/octo-org/following{/other_user}",
19
+ "gists_url": "https://api.github.com/users/octo-org/gists{/gist_id}",
20
+ "starred_url": "https://api.github.com/users/octo-org/starred{/owner}{/repo}",
21
+ "subscriptions_url": "https://api.github.com/users/octo-org/subscriptions",
22
+ "organizations_url": "https://api.github.com/users/octo-org/orgs",
23
+ "repos_url": "https://api.github.com/users/octo-org/repos",
24
+ "events_url": "https://api.github.com/users/octo-org/events{/privacy}",
25
+ "received_events_url": "https://api.github.com/users/octo-org/received_events",
26
+ "type": "Organization",
27
+ "site_admin": false
28
+ },
29
+ "html_url": "https://github.com/octo-org/octo-repo",
30
+ "description": "My first repo on GitHub!",
31
+ "fork": false,
32
+ "url": "https://api.github.com/repos/octo-org/octo-repo",
33
+ "forks_url": "https://api.github.com/repos/octo-org/octo-repo/forks",
34
+ "keys_url": "https://api.github.com/repos/octo-org/octo-repo/keys{/key_id}",
35
+ "collaborators_url": "https://api.github.com/repos/octo-org/octo-repo/collaborators{/collaborator}",
36
+ "teams_url": "https://api.github.com/repos/octo-org/octo-repo/teams",
37
+ "hooks_url": "https://api.github.com/repos/octo-org/octo-repo/hooks",
38
+ "issue_events_url": "https://api.github.com/repos/octo-org/octo-repo/issues/events{/number}",
39
+ "events_url": "https://api.github.com/repos/octo-org/octo-repo/events",
40
+ "assignees_url": "https://api.github.com/repos/octo-org/octo-repo/assignees{/user}",
41
+ "branches_url": "https://api.github.com/repos/octo-org/octo-repo/branches{/branch}",
42
+ "tags_url": "https://api.github.com/repos/octo-org/octo-repo/tags",
43
+ "blobs_url": "https://api.github.com/repos/octo-org/octo-repo/git/blobs{/sha}",
44
+ "git_tags_url": "https://api.github.com/repos/octo-org/octo-repo/git/tags{/sha}",
45
+ "git_refs_url": "https://api.github.com/repos/octo-org/octo-repo/git/refs{/sha}",
46
+ "trees_url": "https://api.github.com/repos/octo-org/octo-repo/git/trees{/sha}",
47
+ "statuses_url": "https://api.github.com/repos/octo-org/octo-repo/statuses/{sha}",
48
+ "languages_url": "https://api.github.com/repos/octo-org/octo-repo/languages",
49
+ "stargazers_url": "https://api.github.com/repos/octo-org/octo-repo/stargazers",
50
+ "contributors_url": "https://api.github.com/repos/octo-org/octo-repo/contributors",
51
+ "subscribers_url": "https://api.github.com/repos/octo-org/octo-repo/subscribers",
52
+ "subscription_url": "https://api.github.com/repos/octo-org/octo-repo/subscription",
53
+ "commits_url": "https://api.github.com/repos/octo-org/octo-repo/commits{/sha}",
54
+ "git_commits_url": "https://api.github.com/repos/octo-org/octo-repo/git/commits{/sha}",
55
+ "comments_url": "https://api.github.com/repos/octo-org/octo-repo/comments{/number}",
56
+ "issue_comment_url": "https://api.github.com/repos/octo-org/octo-repo/issues/comments{/number}",
57
+ "contents_url": "https://api.github.com/repos/octo-org/octo-repo/contents/{+path}",
58
+ "compare_url": "https://api.github.com/repos/octo-org/octo-repo/compare/{base}...{head}",
59
+ "merges_url": "https://api.github.com/repos/octo-org/octo-repo/merges",
60
+ "archive_url": "https://api.github.com/repos/octo-org/octo-repo/{archive_format}{/ref}",
61
+ "downloads_url": "https://api.github.com/repos/octo-org/octo-repo/downloads",
62
+ "issues_url": "https://api.github.com/repos/octo-org/octo-repo/issues{/number}",
63
+ "pulls_url": "https://api.github.com/repos/octo-org/octo-repo/pulls{/number}",
64
+ "milestones_url": "https://api.github.com/repos/octo-org/octo-repo/milestones{/number}",
65
+ "notifications_url": "https://api.github.com/repos/octo-org/octo-repo/notifications{?since,all,participating}",
66
+ "labels_url": "https://api.github.com/repos/octo-org/octo-repo/labels{/name}",
67
+ "releases_url": "https://api.github.com/repos/octo-org/octo-repo/releases{/id}",
68
+ "deployments_url": "https://api.github.com/repos/octo-org/octo-repo/deployments",
69
+ "created_at": "2014-02-28T02:42:51Z",
70
+ "updated_at": "2018-10-10T15:58:51Z",
71
+ "pushed_at": "2018-10-10T15:58:47Z",
72
+ "git_url": "git://github.com/octo-org/octo-repo.git",
73
+ "ssh_url": "git@github.com:octo-org/octo-repo.git",
74
+ "clone_url": "https://github.com/octo-org/octo-repo.git",
75
+ "svn_url": "https://github.com/octo-org/octo-repo",
76
+ "homepage": "",
77
+ "size": 59,
78
+ "stargazers_count": 0,
79
+ "watchers_count": 0,
80
+ "language": "JavaScript",
81
+ "has_issues": true,
82
+ "has_projects": true,
83
+ "has_downloads": true,
84
+ "has_wiki": true,
85
+ "has_pages": false,
86
+ "forks_count": 1,
87
+ "mirror_url": null,
88
+ "archived": false,
89
+ "open_issues_count": 23,
90
+ "license": null,
91
+ "forks": 1,
92
+ "open_issues": 23,
93
+ "watchers": 0,
94
+ "default_branch": "master"
95
+ },
96
+ "organization": {
97
+ "login": "octo-org",
98
+ "id": 6811672,
99
+ "node_id": "MDEyOk9yZ2FuaXphdGlvbjY4MTE2NzI=",
100
+ "url": "https://api.github.com/orgs/octo-org",
101
+ "repos_url": "https://api.github.com/orgs/octo-org/repos",
102
+ "events_url": "https://api.github.com/orgs/octo-org/events",
103
+ "hooks_url": "https://api.github.com/orgs/octo-org/hooks",
104
+ "issues_url": "https://api.github.com/orgs/octo-org/issues",
105
+ "members_url": "https://api.github.com/orgs/octo-org/members{/member}",
106
+ "public_members_url": "https://api.github.com/orgs/octo-org/public_members{/member}",
107
+ "avatar_url": "https://avatars3.githubusercontent.com/u/6811672?v=4",
108
+ "description": "Working better together!"
109
+ },
110
+ "sender": {
111
+ "login": "Codertocat",
112
+ "id": 21031067,
113
+ "node_id": "MDQ6VXNlcjIxMDMxMDY3",
114
+ "avatar_url": "https://avatars1.githubusercontent.com/u/21031067?v=4",
115
+ "gravatar_id": "",
116
+ "url": "https://api.github.com/users/Codertocat",
117
+ "html_url": "https://github.com/Codertocat",
118
+ "followers_url": "https://api.github.com/users/Codertocat/followers",
119
+ "following_url": "https://api.github.com/users/Codertocat/following{/other_user}",
120
+ "gists_url": "https://api.github.com/users/Codertocat/gists{/gist_id}",
121
+ "starred_url": "https://api.github.com/users/Codertocat/starred{/owner}{/repo}",
122
+ "subscriptions_url": "https://api.github.com/users/Codertocat/subscriptions",
123
+ "organizations_url": "https://api.github.com/users/Codertocat/orgs",
124
+ "repos_url": "https://api.github.com/users/Codertocat/repos",
125
+ "events_url": "https://api.github.com/users/Codertocat/events{/privacy}",
126
+ "received_events_url": "https://api.github.com/users/Codertocat/received_events",
127
+ "type": "User",
128
+ "site_admin": false
129
+ },
130
+ "installation": {
131
+ "id": 375706,
132
+ "node_id": "MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzc1NzA2"
133
+ }
134
+ }
@@ -0,0 +1,5 @@
1
+ import { DescriptionDictionary } from "@actions/expressions";
2
+ import { WorkflowContext } from "../context/workflow-context";
3
+ import { Mode } from "./default";
4
+ export declare function getGithubContext(workflowContext: WorkflowContext, mode: Mode): DescriptionDictionary;
5
+ //# sourceMappingURL=github.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"github.d.ts","sourceRoot":"","sources":["../../src/context-providers/github.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,qBAAqB,EAA0B,MAAM,sBAAsB,CAAC;AAG1F,OAAO,EAAC,eAAe,EAAC,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAC,IAAI,EAAC,MAAM,WAAW,CAAC;AAK/B,wBAAgB,gBAAgB,CAAC,eAAe,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI,GAAG,qBAAqB,CA0DpG"}
@@ -0,0 +1,139 @@
1
+ import { data, DescriptionDictionary, isDescriptionDictionary } from "@actions/expressions";
2
+ import { Mode } from "./default";
3
+ import { getDescription } from "./descriptions";
4
+ import { getEventPayload, getSupportedEventTypes } from "./events/eventPayloads";
5
+ import { getInputsContext } from "./inputs";
6
+ export function getGithubContext(workflowContext, mode) {
7
+ // https://docs.github.com/en/actions/learn-github-actions/contexts#github-cwontext
8
+ const keys = [
9
+ "action",
10
+ "action_path",
11
+ "action_ref",
12
+ "action_repository",
13
+ "action_status",
14
+ "actor",
15
+ "api_url",
16
+ "base_ref",
17
+ "env",
18
+ "event",
19
+ "event_name",
20
+ "event_path",
21
+ "graphql_url",
22
+ "head_ref",
23
+ "job",
24
+ "ref",
25
+ "ref_name",
26
+ "ref_protected",
27
+ "ref_type",
28
+ "path",
29
+ "repository",
30
+ "repository_owner",
31
+ "repositoryUrl",
32
+ "retention_days",
33
+ "run_id",
34
+ "run_number",
35
+ "run_attempt",
36
+ "secret_source",
37
+ "server_url",
38
+ "sha",
39
+ "token",
40
+ "triggering_actor",
41
+ "workflow",
42
+ "workspace"
43
+ ];
44
+ return new DescriptionDictionary(...keys.map(key => {
45
+ const description = getDescription("github", key);
46
+ if (key == "event") {
47
+ return {
48
+ key,
49
+ value: getEventContext(workflowContext, mode),
50
+ description
51
+ };
52
+ }
53
+ return {
54
+ key,
55
+ value: new data.Null(),
56
+ description
57
+ };
58
+ }));
59
+ }
60
+ function getEventContext(workflowContext, mode) {
61
+ const d = new DescriptionDictionary();
62
+ const eventsConfig = workflowContext?.template?.events;
63
+ if (!eventsConfig) {
64
+ return d;
65
+ }
66
+ // For callable workflows, the event is inherited from the calling workflow
67
+ // Allow any value for this case
68
+ // This includes github.event.inputs, which is only available via the inputs context
69
+ if (eventsConfig.workflow_call && mode == Mode.Validation) {
70
+ return new data.Null();
71
+ }
72
+ const inputs = getInputsContext(workflowContext);
73
+ if (inputs.values().length > 0) {
74
+ d.add("inputs", inputs);
75
+ }
76
+ const schedule = eventsConfig["schedule"];
77
+ if (schedule && schedule.length > 0) {
78
+ const default_cron = schedule[0].cron;
79
+ // For now, default to the first cron expression only
80
+ d.add("schedule", new data.StringData(default_cron));
81
+ }
82
+ const events = Object.keys(eventsConfig);
83
+ for (const eventName of events) {
84
+ const event = eventsConfig[eventName];
85
+ let types = getTypes(eventName, event.types);
86
+ const payloadEventName = getPayloadEventName(eventName);
87
+ if (types.length === 1 && types[0] === "default") {
88
+ types = getSupportedEventTypes(eventName);
89
+ }
90
+ for (const type of types) {
91
+ const eventPayload = getEventPayload(payloadEventName, type);
92
+ if (!eventPayload) {
93
+ continue;
94
+ }
95
+ // Merge the event payload into the event context
96
+ merge(d, eventPayload);
97
+ }
98
+ }
99
+ return d;
100
+ }
101
+ function getPayloadEventName(eventName) {
102
+ switch (eventName) {
103
+ // Some events are aliases for other webhooks
104
+ case "pull_request_target":
105
+ return "pull_request";
106
+ default:
107
+ return eventName;
108
+ }
109
+ }
110
+ function getTypes(event, types) {
111
+ const typesOrDefault = (types, defaultTypes) => !types || types.length === 0 ? defaultTypes : types;
112
+ switch (event) {
113
+ case "merge_group":
114
+ return typesOrDefault(types, ["checks_requested"]);
115
+ case "pull_request":
116
+ case "pull_request_target":
117
+ return typesOrDefault(types, ["opened", "reopened", "synchronize"]);
118
+ case "repository_dispatch":
119
+ // Types can be used for custom filtering for repository_dispatch events. Always use default
120
+ return ["default"];
121
+ default:
122
+ return typesOrDefault(types, ["default"]);
123
+ }
124
+ }
125
+ function merge(target, toMerge) {
126
+ for (const p of toMerge.pairs()) {
127
+ if (isDescriptionDictionary(p.value)) {
128
+ const existingValue = target.get(p.key);
129
+ if (existingValue && isDescriptionDictionary(existingValue)) {
130
+ // Merge the dictionaries, do not overwrite existing values
131
+ merge(existingValue, p.value);
132
+ continue;
133
+ }
134
+ }
135
+ target.add(p.key, p.value, p.description);
136
+ }
137
+ return target;
138
+ }
139
+ //# sourceMappingURL=github.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"github.js","sourceRoot":"","sources":["../../src/context-providers/github.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { DescriptionDictionary } from "@actions/expressions";
2
+ import { WorkflowContext } from "../context/workflow-context";
3
+ export declare function getInputsContext(workflowContext: WorkflowContext): DescriptionDictionary;
4
+ //# sourceMappingURL=inputs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inputs.d.ts","sourceRoot":"","sources":["../../src/context-providers/inputs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,qBAAqB,EAAC,MAAM,sBAAsB,CAAC;AAEjE,OAAO,EAAC,eAAe,EAAC,MAAM,6BAA6B,CAAC;AAE5D,wBAAgB,gBAAgB,CAAC,eAAe,EAAE,eAAe,GAAG,qBAAqB,CAmBxF"}
@@ -0,0 +1,52 @@
1
+ import { data, DescriptionDictionary } from "@actions/expressions";
2
+ export function getInputsContext(workflowContext) {
3
+ const d = new DescriptionDictionary();
4
+ const events = workflowContext?.template?.events;
5
+ if (!events) {
6
+ return d;
7
+ }
8
+ const dispatch = events["workflow_dispatch"];
9
+ if (dispatch?.inputs) {
10
+ addInputs(d, dispatch.inputs);
11
+ }
12
+ const call = events["workflow_call"];
13
+ if (call?.inputs) {
14
+ addInputs(d, call.inputs);
15
+ }
16
+ return d;
17
+ }
18
+ function addInputs(d, inputs) {
19
+ for (const inputName of Object.keys(inputs)) {
20
+ const input = inputs[inputName];
21
+ switch (input.type) {
22
+ case "choice":
23
+ if (input.default) {
24
+ d.add(inputName, new data.StringData(input.default), input.description);
25
+ }
26
+ else {
27
+ // Default to the first input or an empty string
28
+ d.add(inputName, new data.StringData((input.options || [""])[0]), input.description);
29
+ }
30
+ break;
31
+ case "environment":
32
+ if (input.default) {
33
+ d.add(inputName, new data.StringData(input.default), input.description);
34
+ }
35
+ else {
36
+ // For now default to an empty value if there is no default value. This will always be an environment, so
37
+ // we could also dynamically look up environments and default to the first one, but leaving this as a
38
+ // future enhancement for now.
39
+ d.add(inputName, new data.StringData(""));
40
+ }
41
+ break;
42
+ case "boolean":
43
+ d.add(inputName, new data.BooleanData(input.default || false), input.description);
44
+ break;
45
+ case "string":
46
+ default:
47
+ d.add(inputName, new data.StringData(input.default || inputName), input.description);
48
+ break;
49
+ }
50
+ }
51
+ }
52
+ //# sourceMappingURL=inputs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inputs.js","sourceRoot":"","sources":["../../src/context-providers/inputs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAE,qBAAqB,EAAC,MAAM,sBAAsB,CAAC;AAIjE,MAAM,UAAU,gBAAgB,CAAC,eAAgC;IAC/D,MAAM,CAAC,GAAG,IAAI,qBAAqB,EAAE,CAAC;IAEtC,MAAM,MAAM,GAAG,eAAe,EAAE,QAAQ,EAAE,MAAM,CAAC;IACjD,IAAI,CAAC,MAAM,EAAE;QACX,OAAO,CAAC,CAAC;KACV;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAC;IAC7C,IAAI,QAAQ,EAAE,MAAM,EAAE;QACpB,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;KAC/B;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;IACrC,IAAI,IAAI,EAAE,MAAM,EAAE;QAChB,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;KAC3B;IAED,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,SAAS,CAAC,CAAwB,EAAE,MAA0C;IACrF,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;QAC3C,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;QAChC,QAAQ,KAAK,CAAC,IAAI,EAAE;YAClB,KAAK,QAAQ;gBACX,IAAI,KAAK,CAAC,OAAO,EAAE;oBACjB,CAAC,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,OAAiB,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;iBACnF;qBAAM;oBACL,gDAAgD;oBAChD,CAAC,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;iBACtF;gBACD,MAAM;YAER,KAAK,aAAa;gBAChB,IAAI,KAAK,CAAC,OAAO,EAAE;oBACjB,CAAC,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,OAAiB,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;iBACnF;qBAAM;oBACL,yGAAyG;oBACzG,qGAAqG;oBACrG,8BAA8B;oBAC9B,CAAC,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;iBAC3C;gBACD,MAAM;YAER,KAAK,SAAS;gBACZ,CAAC,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,WAAW,CAAE,KAAK,CAAC,OAAmB,IAAI,KAAK,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;gBAC/F,MAAM;YAER,KAAK,QAAQ,CAAC;YACd;gBACE,CAAC,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,UAAU,CAAE,KAAK,CAAC,OAAkB,IAAI,SAAS,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;gBACjG,MAAM;SACT;KACF;AACH,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { DescriptionDictionary } from "@actions/expressions";
2
+ import { WorkflowContext } from "../context/workflow-context";
3
+ export declare function getJobContext(workflowContext: WorkflowContext): DescriptionDictionary;
4
+ //# sourceMappingURL=job.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"job.d.ts","sourceRoot":"","sources":["../../src/context-providers/job.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,qBAAqB,EAAC,MAAM,sBAAsB,CAAC;AAGjE,OAAO,EAAC,eAAe,EAAC,MAAM,6BAA6B,CAAC;AAE5D,wBAAgB,aAAa,CAAC,eAAe,EAAE,eAAe,GAAG,qBAAqB,CAiCrF"}
@@ -0,0 +1,61 @@
1
+ import { data, DescriptionDictionary } from "@actions/expressions";
2
+ import { isMapping, isSequence } from "@actions/workflow-parser";
3
+ export function getJobContext(workflowContext) {
4
+ // https://docs.github.com/en/actions/learn-github-actions/contexts#job-context
5
+ const jobContext = new DescriptionDictionary();
6
+ const job = workflowContext.job;
7
+ if (!job) {
8
+ return jobContext;
9
+ }
10
+ // Container
11
+ const jobContainer = job.container;
12
+ if (jobContainer && isMapping(jobContainer)) {
13
+ const containerContext = createContainerContext(jobContainer, false);
14
+ jobContext.add("container", containerContext);
15
+ }
16
+ // Services
17
+ const jobServices = job.services;
18
+ if (jobServices && isMapping(jobServices)) {
19
+ const servicesContext = new DescriptionDictionary();
20
+ for (const service of jobServices) {
21
+ if (!isMapping(service.value)) {
22
+ continue;
23
+ }
24
+ const serviceContext = createContainerContext(service.value, true);
25
+ servicesContext.add(service.key.toString(), serviceContext);
26
+ }
27
+ jobContext.add("services", servicesContext);
28
+ }
29
+ // Status
30
+ jobContext.add("status", new data.Null());
31
+ return jobContext;
32
+ }
33
+ function createContainerContext(container, isServices) {
34
+ const containerContext = new data.Dictionary();
35
+ for (const { key, value } of container) {
36
+ if (isSequence(value)) {
37
+ // service ports are the only thing that is part of the job context
38
+ if (key.toString() !== "ports") {
39
+ continue;
40
+ }
41
+ const ports = new data.Dictionary();
42
+ for (const item of value) {
43
+ // We can determine the context mapping fully only if the port is defined
44
+ // as a mapping (i.e. <port1>:<port2>), single ports are assigned randomly
45
+ const portParts = item.toString().split(":");
46
+ if (isServices && portParts.length === 2) {
47
+ ports.add(portParts[1], new data.StringData(portParts[0]));
48
+ }
49
+ else {
50
+ // If the port isn't a mapping, just use null
51
+ ports.add(portParts[0], new data.Null());
52
+ }
53
+ }
54
+ containerContext.add(key.toString(), ports);
55
+ }
56
+ }
57
+ containerContext.add("id", new data.Null());
58
+ containerContext.add("network", new data.Null());
59
+ return containerContext;
60
+ }
61
+ //# sourceMappingURL=job.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"job.js","sourceRoot":"","sources":["../../src/context-providers/job.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { DescriptionDictionary } from "@actions/expressions";
2
+ import { WorkflowContext } from "../context/workflow-context";
3
+ export declare function getJobsContext(workflowContext: WorkflowContext): DescriptionDictionary;
4
+ //# sourceMappingURL=jobs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jobs.d.ts","sourceRoot":"","sources":["../../src/context-providers/jobs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,qBAAqB,EAAC,MAAM,sBAAsB,CAAC;AAGjE,OAAO,EAAC,eAAe,EAAC,MAAM,6BAA6B,CAAC;AAG5D,wBAAgB,cAAc,CAAC,eAAe,EAAE,eAAe,GAAG,qBAAqB,CAqBtF"}
@@ -0,0 +1,30 @@
1
+ import { data, DescriptionDictionary } from "@actions/expressions";
2
+ import { StringData } from "@actions/expressions/data/string";
3
+ import { MappingToken } from "@actions/workflow-parser/templates/tokens/mapping-token";
4
+ import { getDescription } from "./descriptions";
5
+ export function getJobsContext(workflowContext) {
6
+ // https://docs.github.com/en/actions/learn-github-actions/contexts#jobs-context
7
+ const jobsContext = new DescriptionDictionary();
8
+ const jobs = workflowContext.template?.jobs;
9
+ if (!jobs) {
10
+ return jobsContext;
11
+ }
12
+ for (const job of jobs) {
13
+ const jobContext = new DescriptionDictionary();
14
+ jobContext.add("result", new data.Null(), getDescription("jobs", "result"));
15
+ const outputs = job.outputs || new data.Null();
16
+ if (outputs instanceof MappingToken) {
17
+ jobContext.add("outputs", createOutputsContext(outputs), getDescription("jobs", "outputs"));
18
+ }
19
+ jobsContext.add(job.id.toString(), jobContext);
20
+ }
21
+ return jobsContext;
22
+ }
23
+ function createOutputsContext(outputs) {
24
+ const outputsContext = new DescriptionDictionary();
25
+ for (const output of outputs) {
26
+ outputsContext.add(output.key.toString(), new StringData(output.value.toString()), getDescription(output.key.toString(), "output"));
27
+ }
28
+ return outputsContext;
29
+ }
30
+ //# sourceMappingURL=jobs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jobs.js","sourceRoot":"","sources":["../../src/context-providers/jobs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAE,qBAAqB,EAAC,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAC,UAAU,EAAC,MAAM,kCAAkC,CAAC;AAC5D,OAAO,EAAC,YAAY,EAAC,MAAM,yDAAyD,CAAC;AAErF,OAAO,EAAC,cAAc,EAAC,MAAM,gBAAgB,CAAC;AAE9C,MAAM,UAAU,cAAc,CAAC,eAAgC;IAC7D,gFAAgF;IAChF,MAAM,WAAW,GAAG,IAAI,qBAAqB,EAAE,CAAC;IAEhD,MAAM,IAAI,GAAG,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC;IAC5C,IAAI,CAAC,IAAI,EAAE;QACT,OAAO,WAAW,CAAC;KACpB;IACD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;QACtB,MAAM,UAAU,GAAG,IAAI,qBAAqB,EAAE,CAAC;QAC/C,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;QAE5E,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QAC/C,IAAI,OAAO,YAAY,YAAY,EAAE;YACnC,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,oBAAoB,CAAC,OAAO,CAAC,EAAE,cAAc,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;SAC7F;QAED,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,UAAU,CAAC,CAAC;KAChD;IAED,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,SAAS,oBAAoB,CAAC,OAAqB;IACjD,MAAM,cAAc,GAAG,IAAI,qBAAqB,EAAE,CAAC;IACnD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;QAC5B,cAAc,CAAC,GAAG,CAChB,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,EACrB,IAAI,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,EACvC,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,QAAQ,CAAC,CAChD,CAAC;KACH;IACD,OAAO,cAAc,CAAC;AACxB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { WorkflowContext } from "../context/workflow-context";
2
+ import { ContextValue, Mode } from "./default";
3
+ export declare function getMatrixContext(workflowContext: WorkflowContext, mode: Mode): ContextValue;
4
+ //# sourceMappingURL=matrix.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"matrix.d.ts","sourceRoot":"","sources":["../../src/context-providers/matrix.ts"],"names":[],"mappings":"AAKA,OAAO,EAAC,eAAe,EAAC,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAC,YAAY,EAAE,IAAI,EAAC,MAAM,WAAW,CAAC;AAE7C,wBAAgB,gBAAgB,CAAC,eAAe,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI,GAAG,YAAY,CAkC3F"}