├── .eslintignore
├── .eslintrc.json
├── .gitattributes
├── .github
└── workflows
│ ├── test.yml
│ └── update-tags.yml
├── .gitignore
├── .prettierignore
├── .prettierrc.json
├── LICENSE
├── README.md
├── action.yml
├── dist
├── index.js
├── index.js.map
├── licenses.txt
└── sourcemap-register.js
├── jest.config.js
├── package-lock.json
├── package.json
├── src
├── main.ts
├── stylua.test.ts
└── stylua.ts
├── test
├── needs_spaces.lua
└── sample.lua
└── tsconfig.json
/.eslintignore:
--------------------------------------------------------------------------------
1 | dist/
2 | lib/
3 | node_modules/
4 | jest.config.js
5 |
--------------------------------------------------------------------------------
/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "plugins": ["@typescript-eslint"],
3 | "extends": ["plugin:github/recommended"],
4 | "parser": "@typescript-eslint/parser",
5 | "parserOptions": {
6 | "ecmaVersion": 9,
7 | "sourceType": "module",
8 | "project": "./tsconfig.json"
9 | },
10 | "rules": {
11 | "eslint-comments/no-use": "off",
12 | "i18n-text/no-en": "off",
13 | "import/no-namespace": "off",
14 | "no-unused-vars": "off",
15 | "@typescript-eslint/no-unused-vars": "error",
16 | "@typescript-eslint/explicit-member-accessibility": ["error", {"accessibility": "no-public"}],
17 | "@typescript-eslint/no-require-imports": "error",
18 | "@typescript-eslint/array-type": "error",
19 | "@typescript-eslint/await-thenable": "error",
20 | "@typescript-eslint/ban-ts-comment": "error",
21 | "camelcase": "off",
22 | "@typescript-eslint/consistent-type-assertions": "error",
23 | "@typescript-eslint/explicit-function-return-type": ["error", {"allowExpressions": true}],
24 | "@typescript-eslint/func-call-spacing": ["error", "never"],
25 | "@typescript-eslint/no-array-constructor": "error",
26 | "@typescript-eslint/no-empty-interface": "error",
27 | "@typescript-eslint/no-explicit-any": "error",
28 | "@typescript-eslint/no-extraneous-class": "error",
29 | "@typescript-eslint/no-for-in-array": "error",
30 | "@typescript-eslint/no-inferrable-types": "error",
31 | "@typescript-eslint/no-misused-new": "error",
32 | "@typescript-eslint/no-namespace": "error",
33 | "@typescript-eslint/no-non-null-assertion": "warn",
34 | "@typescript-eslint/no-unnecessary-qualifier": "error",
35 | "@typescript-eslint/no-unnecessary-type-assertion": "error",
36 | "@typescript-eslint/no-useless-constructor": "error",
37 | "@typescript-eslint/no-var-requires": "error",
38 | "@typescript-eslint/prefer-for-of": "warn",
39 | "@typescript-eslint/prefer-function-type": "warn",
40 | "@typescript-eslint/prefer-includes": "error",
41 | "@typescript-eslint/prefer-string-starts-ends-with": "error",
42 | "@typescript-eslint/promise-function-async": "error",
43 | "@typescript-eslint/require-array-sort-compare": "error",
44 | "@typescript-eslint/restrict-plus-operands": "error",
45 | "semi": "off",
46 | "@typescript-eslint/semi": ["error", "never"],
47 | "@typescript-eslint/type-annotation-spacing": "error",
48 | "@typescript-eslint/unbound-method": "error"
49 | },
50 | "overrides": [
51 | {
52 | "files": ["*.ts"],
53 | "rules": {
54 | "no-undef": "off"
55 | }
56 | }
57 | ],
58 | "env": {
59 | "node": true,
60 | "es6": true
61 | }
62 | }
63 |
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | dist/** -diff linguist-generated=true
2 | * text=auto eol=lf
--------------------------------------------------------------------------------
/.github/workflows/test.yml:
--------------------------------------------------------------------------------
1 | name: 'build-test'
2 | on: # rebuild any PRs and main branch changes
3 | pull_request:
4 | push:
5 | branches:
6 | - main
7 | - 'releases/*'
8 |
9 | jobs:
10 | build: # make sure build/ci work properly
11 | runs-on: ubuntu-latest
12 | steps:
13 | - uses: actions/checkout@v4
14 | - name: Install packages
15 | run: |
16 | npm install
17 | - name: Rebuild
18 | run: |
19 | npm run all
20 | - name: Ensure dist is updated
21 | run: |
22 | git diff --exit-code
23 | test:
24 | runs-on: ubuntu-latest
25 | steps:
26 | - uses: actions/checkout@v4
27 | - run: npm ci
28 | - run: npm test
29 | # make sure the action works on a clean machine without building
30 | smoketest:
31 | runs-on: ubuntu-latest
32 | steps:
33 | - uses: actions/checkout@v4
34 | - uses: ./
35 | with:
36 | version: ^0.17
37 | token: ${{ secrets.GITHUB_TOKEN }}
38 | args: --check ./test/sample.lua
39 | smoketest_latest_version_provided:
40 | runs-on: ubuntu-latest
41 | steps:
42 | - uses: actions/checkout@v4
43 | - uses: ./
44 | with:
45 | version: latest
46 | token: ${{ secrets.GITHUB_TOKEN }}
47 | args: --check ./test/sample.lua
48 | # only install / cache the StyLua install, don't run it
49 | smoketest_args_false:
50 | runs-on: ubuntu-latest
51 | steps:
52 | - uses: actions/checkout@v4
53 |
54 | - name: Copy Test File
55 | run: |
56 | cp ./test/needs_spaces.lua{,.copy}
57 |
58 | - uses: ./
59 | with:
60 | version: latest
61 | token: ${{ secrets.GITHUB_TOKEN }}
62 | args: false
63 |
64 | - name: Confirm test file was not changed
65 | run: |
66 | cmp ./test/needs_spaces.lua{,.copy}
67 |
68 | - name: Can run stylua independently
69 | run: |
70 | stylua --version
--------------------------------------------------------------------------------
/.github/workflows/update-tags.yml:
--------------------------------------------------------------------------------
1 | name: Update Major Version Tag
2 |
3 | on:
4 | push:
5 | tags:
6 | - 'v*'
7 |
8 | jobs:
9 | update-majorver:
10 | name: Update Major Version Tag
11 | runs-on: ubuntu-latest
12 | steps:
13 | - uses: nowactions/update-majorver@v1
14 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Dependency directory
2 | node_modules
3 |
4 | # Rest pulled from https://github.com/github/gitignore/blob/master/Node.gitignore
5 | # Logs
6 | logs
7 | *.log
8 | npm-debug.log*
9 | yarn-debug.log*
10 | yarn-error.log*
11 | lerna-debug.log*
12 |
13 | # Diagnostic reports (https://nodejs.org/api/report.html)
14 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
15 |
16 | # Runtime data
17 | pids
18 | *.pid
19 | *.seed
20 | *.pid.lock
21 |
22 | # Directory for instrumented libs generated by jscoverage/JSCover
23 | lib-cov
24 |
25 | # Coverage directory used by tools like istanbul
26 | coverage
27 | *.lcov
28 |
29 | # nyc test coverage
30 | .nyc_output
31 |
32 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
33 | .grunt
34 |
35 | # Bower dependency directory (https://bower.io/)
36 | bower_components
37 |
38 | # node-waf configuration
39 | .lock-wscript
40 |
41 | # Compiled binary addons (https://nodejs.org/api/addons.html)
42 | build/Release
43 |
44 | # Dependency directories
45 | jspm_packages/
46 |
47 | # TypeScript v1 declaration files
48 | typings/
49 |
50 | # TypeScript cache
51 | *.tsbuildinfo
52 |
53 | # Optional npm cache directory
54 | .npm
55 |
56 | # Optional eslint cache
57 | .eslintcache
58 |
59 | # Optional REPL history
60 | .node_repl_history
61 |
62 | # Output of 'npm pack'
63 | *.tgz
64 |
65 | # Yarn Integrity file
66 | .yarn-integrity
67 |
68 | # dotenv environment variables file
69 | .env
70 | .env.test
71 |
72 | # parcel-bundler cache (https://parceljs.org/)
73 | .cache
74 |
75 | # next.js build output
76 | .next
77 |
78 | # nuxt.js build output
79 | .nuxt
80 |
81 | # vuepress build output
82 | .vuepress/dist
83 |
84 | # Serverless directories
85 | .serverless/
86 |
87 | # FuseBox cache
88 | .fusebox/
89 |
90 | # DynamoDB Local files
91 | .dynamodb/
92 |
93 | # OS metadata
94 | .DS_Store
95 | Thumbs.db
96 |
97 | # Ignore built ts files
98 | __tests__/runner/*
99 | lib/**/*
--------------------------------------------------------------------------------
/.prettierignore:
--------------------------------------------------------------------------------
1 | dist/
2 | lib/
3 | node_modules/
--------------------------------------------------------------------------------
/.prettierrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "printWidth": 80,
3 | "tabWidth": 2,
4 | "useTabs": false,
5 | "semi": false,
6 | "singleQuote": true,
7 | "trailingComma": "none",
8 | "bracketSpacing": false,
9 | "arrowParens": "avoid"
10 | }
11 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 |
2 | The MIT License (MIT)
3 |
4 | Copyright (c) 2021 JohnnyMorganz
5 |
6 | Permission is hereby granted, free of charge, to any person obtaining a copy
7 | of this software and associated documentation files (the "Software"), to deal
8 | in the Software without restriction, including without limitation the rights
9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | copies of the Software, and to permit persons to whom the Software is
11 | furnished to do so, subject to the following conditions:
12 |
13 | The above copyright notice and this permission notice shall be included in
14 | all copies or substantial portions of the Software.
15 |
16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22 | THE SOFTWARE.
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # StyLua GitHub Action
2 |
3 | GitHub Action to run [StyLua](https://github.com/JohnnyMorganz/StyLua), a Lua code formatter.
4 |
5 | Installs the StyLua binary (from GitHub releases), and caches it. Any StyLua command can then be run.
6 |
7 | > **NOTE:** We recommend using a toolchain manager such as [aftman](https://github.com/LPGhatguy/aftman) to manage StyLua, as it allows you to define the version used throughout your project - both on the command line, and in GitHub actions.
8 |
9 | ## Usage
10 |
11 | ```yaml
12 | - uses: actions/checkout@v4
13 | - uses: JohnnyMorganz/stylua-action@v4
14 | with:
15 | token: ${{ secrets.GITHUB_TOKEN }}
16 | version: latest # NOTE: we recommend pinning to a specific version in case of formatting changes
17 | # CLI arguments
18 | args: --check .
19 | ```
20 |
21 | If you would just like to install `stylua`, but not run it (e.g., since it is used as part of a wider CI script), then
22 | you can set `args: false`:
23 |
24 | ```yaml
25 | - uses: actions/checkout@v4
26 | - uses: JohnnyMorganz/stylua-action@v4
27 | with:
28 | token: ${{ secrets.GITHUB_TOKEN }}
29 | version: latest # NOTE: we recommend pinning to a specific version in case of formatting changes
30 | # This disables running `stylua`
31 | args: false
32 | # Run stylua independently
33 | - run: |
34 | stylua --version
35 | ```
36 |
37 | ### Parameters
38 |
39 | #### `token` (Required)
40 |
41 | GitHub token. Required since the binary is downloaded from GitHub releases (to speed download)
42 |
43 | #### `args` (Required)
44 |
45 | The arguments to pass to the StyLua binary. If you don't want to run the binary, set `args: false`.
46 |
47 | #### `version` (Required)
48 |
49 | The version of StyLua to use. Follows semver syntax.
50 | Alternatively, supply `latest` to use the latest available release.
51 |
52 | **NOTE: using `latest` may cause the action to fail if StyLua updates and the formatting changes!**
53 |
54 | Based off https://github.com/Roblox/setup-foreman, licensed under [MIT](https://github.com/Roblox/setup-foreman/blob/master/LICENSE.txt)
55 |
--------------------------------------------------------------------------------
/action.yml:
--------------------------------------------------------------------------------
1 | name: 'StyLua'
2 | description: 'GitHub Action to run StyLua, an opinionated Lua code formatter'
3 | author: 'JohnnyMorganz'
4 | branding:
5 | icon: code
6 | color: black
7 | inputs:
8 | token:
9 | description: 'The GITHUB_SECRET token'
10 | required: true
11 | args:
12 | description: 'CLI Arguments to pass to StyLua'
13 | required: true
14 | version:
15 | description: 'The version of StyLua to run. Use `latest` to pull the latest version'
16 | required: true
17 | runs:
18 | using: 'node20'
19 | main: 'dist/index.js'
20 |
--------------------------------------------------------------------------------
/dist/licenses.txt:
--------------------------------------------------------------------------------
1 | @actions/core
2 | MIT
3 | The MIT License (MIT)
4 |
5 | Copyright 2019 GitHub
6 |
7 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
8 |
9 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
10 |
11 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
12 |
13 | @actions/exec
14 | MIT
15 | The MIT License (MIT)
16 |
17 | Copyright 2019 GitHub
18 |
19 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
20 |
21 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
22 |
23 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
24 |
25 | @actions/github
26 | MIT
27 | The MIT License (MIT)
28 |
29 | Copyright 2019 GitHub
30 |
31 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
32 |
33 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
34 |
35 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
36 |
37 | @actions/http-client
38 | MIT
39 | Actions Http Client for Node.js
40 |
41 | Copyright (c) GitHub, Inc.
42 |
43 | All rights reserved.
44 |
45 | MIT License
46 |
47 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
48 | associated documentation files (the "Software"), to deal in the Software without restriction,
49 | including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
50 | and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so,
51 | subject to the following conditions:
52 |
53 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
54 |
55 | THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
56 | LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
57 | NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
58 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
59 | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
60 |
61 |
62 | @actions/io
63 | MIT
64 | The MIT License (MIT)
65 |
66 | Copyright 2019 GitHub
67 |
68 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
69 |
70 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
71 |
72 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
73 |
74 | @actions/tool-cache
75 | MIT
76 | The MIT License (MIT)
77 |
78 | Copyright 2019 GitHub
79 |
80 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
81 |
82 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
83 |
84 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
85 |
86 | @octokit/auth-token
87 | MIT
88 | The MIT License
89 |
90 | Copyright (c) 2019 Octokit contributors
91 |
92 | Permission is hereby granted, free of charge, to any person obtaining a copy
93 | of this software and associated documentation files (the "Software"), to deal
94 | in the Software without restriction, including without limitation the rights
95 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
96 | copies of the Software, and to permit persons to whom the Software is
97 | furnished to do so, subject to the following conditions:
98 |
99 | The above copyright notice and this permission notice shall be included in
100 | all copies or substantial portions of the Software.
101 |
102 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
103 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
104 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
105 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
106 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
107 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
108 | THE SOFTWARE.
109 |
110 |
111 | @octokit/core
112 | MIT
113 | The MIT License
114 |
115 | Copyright (c) 2019 Octokit contributors
116 |
117 | Permission is hereby granted, free of charge, to any person obtaining a copy
118 | of this software and associated documentation files (the "Software"), to deal
119 | in the Software without restriction, including without limitation the rights
120 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
121 | copies of the Software, and to permit persons to whom the Software is
122 | furnished to do so, subject to the following conditions:
123 |
124 | The above copyright notice and this permission notice shall be included in
125 | all copies or substantial portions of the Software.
126 |
127 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
128 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
129 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
130 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
131 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
132 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
133 | THE SOFTWARE.
134 |
135 |
136 | @octokit/endpoint
137 | MIT
138 | The MIT License
139 |
140 | Copyright (c) 2018 Octokit contributors
141 |
142 | Permission is hereby granted, free of charge, to any person obtaining a copy
143 | of this software and associated documentation files (the "Software"), to deal
144 | in the Software without restriction, including without limitation the rights
145 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
146 | copies of the Software, and to permit persons to whom the Software is
147 | furnished to do so, subject to the following conditions:
148 |
149 | The above copyright notice and this permission notice shall be included in
150 | all copies or substantial portions of the Software.
151 |
152 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
153 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
154 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
155 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
156 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
157 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
158 | THE SOFTWARE.
159 |
160 |
161 | @octokit/graphql
162 | MIT
163 | The MIT License
164 |
165 | Copyright (c) 2018 Octokit contributors
166 |
167 | Permission is hereby granted, free of charge, to any person obtaining a copy
168 | of this software and associated documentation files (the "Software"), to deal
169 | in the Software without restriction, including without limitation the rights
170 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
171 | copies of the Software, and to permit persons to whom the Software is
172 | furnished to do so, subject to the following conditions:
173 |
174 | The above copyright notice and this permission notice shall be included in
175 | all copies or substantial portions of the Software.
176 |
177 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
178 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
179 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
180 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
181 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
182 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
183 | THE SOFTWARE.
184 |
185 |
186 | @octokit/plugin-paginate-rest
187 | MIT
188 | MIT License Copyright (c) 2019 Octokit contributors
189 |
190 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
191 |
192 | The above copyright notice and this permission notice (including the next paragraph) shall be included in all copies or substantial portions of the Software.
193 |
194 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
195 |
196 |
197 | @octokit/plugin-rest-endpoint-methods
198 | MIT
199 | MIT License Copyright (c) 2019 Octokit contributors
200 |
201 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
202 |
203 | The above copyright notice and this permission notice (including the next paragraph) shall be included in all copies or substantial portions of the Software.
204 |
205 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
206 |
207 |
208 | @octokit/request
209 | MIT
210 | The MIT License
211 |
212 | Copyright (c) 2018 Octokit contributors
213 |
214 | Permission is hereby granted, free of charge, to any person obtaining a copy
215 | of this software and associated documentation files (the "Software"), to deal
216 | in the Software without restriction, including without limitation the rights
217 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
218 | copies of the Software, and to permit persons to whom the Software is
219 | furnished to do so, subject to the following conditions:
220 |
221 | The above copyright notice and this permission notice shall be included in
222 | all copies or substantial portions of the Software.
223 |
224 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
225 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
226 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
227 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
228 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
229 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
230 | THE SOFTWARE.
231 |
232 |
233 | @octokit/request-error
234 | MIT
235 | The MIT License
236 |
237 | Copyright (c) 2019 Octokit contributors
238 |
239 | Permission is hereby granted, free of charge, to any person obtaining a copy
240 | of this software and associated documentation files (the "Software"), to deal
241 | in the Software without restriction, including without limitation the rights
242 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
243 | copies of the Software, and to permit persons to whom the Software is
244 | furnished to do so, subject to the following conditions:
245 |
246 | The above copyright notice and this permission notice shall be included in
247 | all copies or substantial portions of the Software.
248 |
249 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
250 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
251 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
252 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
253 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
254 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
255 | THE SOFTWARE.
256 |
257 |
258 | @vercel/ncc
259 | MIT
260 | Copyright 2018 ZEIT, Inc.
261 |
262 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
263 |
264 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
265 |
266 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
267 |
268 | before-after-hook
269 | Apache-2.0
270 | Apache License
271 | Version 2.0, January 2004
272 | http://www.apache.org/licenses/
273 |
274 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
275 |
276 | 1. Definitions.
277 |
278 | "License" shall mean the terms and conditions for use, reproduction,
279 | and distribution as defined by Sections 1 through 9 of this document.
280 |
281 | "Licensor" shall mean the copyright owner or entity authorized by
282 | the copyright owner that is granting the License.
283 |
284 | "Legal Entity" shall mean the union of the acting entity and all
285 | other entities that control, are controlled by, or are under common
286 | control with that entity. For the purposes of this definition,
287 | "control" means (i) the power, direct or indirect, to cause the
288 | direction or management of such entity, whether by contract or
289 | otherwise, or (ii) ownership of fifty percent (50%) or more of the
290 | outstanding shares, or (iii) beneficial ownership of such entity.
291 |
292 | "You" (or "Your") shall mean an individual or Legal Entity
293 | exercising permissions granted by this License.
294 |
295 | "Source" form shall mean the preferred form for making modifications,
296 | including but not limited to software source code, documentation
297 | source, and configuration files.
298 |
299 | "Object" form shall mean any form resulting from mechanical
300 | transformation or translation of a Source form, including but
301 | not limited to compiled object code, generated documentation,
302 | and conversions to other media types.
303 |
304 | "Work" shall mean the work of authorship, whether in Source or
305 | Object form, made available under the License, as indicated by a
306 | copyright notice that is included in or attached to the work
307 | (an example is provided in the Appendix below).
308 |
309 | "Derivative Works" shall mean any work, whether in Source or Object
310 | form, that is based on (or derived from) the Work and for which the
311 | editorial revisions, annotations, elaborations, or other modifications
312 | represent, as a whole, an original work of authorship. For the purposes
313 | of this License, Derivative Works shall not include works that remain
314 | separable from, or merely link (or bind by name) to the interfaces of,
315 | the Work and Derivative Works thereof.
316 |
317 | "Contribution" shall mean any work of authorship, including
318 | the original version of the Work and any modifications or additions
319 | to that Work or Derivative Works thereof, that is intentionally
320 | submitted to Licensor for inclusion in the Work by the copyright owner
321 | or by an individual or Legal Entity authorized to submit on behalf of
322 | the copyright owner. For the purposes of this definition, "submitted"
323 | means any form of electronic, verbal, or written communication sent
324 | to the Licensor or its representatives, including but not limited to
325 | communication on electronic mailing lists, source code control systems,
326 | and issue tracking systems that are managed by, or on behalf of, the
327 | Licensor for the purpose of discussing and improving the Work, but
328 | excluding communication that is conspicuously marked or otherwise
329 | designated in writing by the copyright owner as "Not a Contribution."
330 |
331 | "Contributor" shall mean Licensor and any individual or Legal Entity
332 | on behalf of whom a Contribution has been received by Licensor and
333 | subsequently incorporated within the Work.
334 |
335 | 2. Grant of Copyright License. Subject to the terms and conditions of
336 | this License, each Contributor hereby grants to You a perpetual,
337 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
338 | copyright license to reproduce, prepare Derivative Works of,
339 | publicly display, publicly perform, sublicense, and distribute the
340 | Work and such Derivative Works in Source or Object form.
341 |
342 | 3. Grant of Patent License. Subject to the terms and conditions of
343 | this License, each Contributor hereby grants to You a perpetual,
344 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
345 | (except as stated in this section) patent license to make, have made,
346 | use, offer to sell, sell, import, and otherwise transfer the Work,
347 | where such license applies only to those patent claims licensable
348 | by such Contributor that are necessarily infringed by their
349 | Contribution(s) alone or by combination of their Contribution(s)
350 | with the Work to which such Contribution(s) was submitted. If You
351 | institute patent litigation against any entity (including a
352 | cross-claim or counterclaim in a lawsuit) alleging that the Work
353 | or a Contribution incorporated within the Work constitutes direct
354 | or contributory patent infringement, then any patent licenses
355 | granted to You under this License for that Work shall terminate
356 | as of the date such litigation is filed.
357 |
358 | 4. Redistribution. You may reproduce and distribute copies of the
359 | Work or Derivative Works thereof in any medium, with or without
360 | modifications, and in Source or Object form, provided that You
361 | meet the following conditions:
362 |
363 | (a) You must give any other recipients of the Work or
364 | Derivative Works a copy of this License; and
365 |
366 | (b) You must cause any modified files to carry prominent notices
367 | stating that You changed the files; and
368 |
369 | (c) You must retain, in the Source form of any Derivative Works
370 | that You distribute, all copyright, patent, trademark, and
371 | attribution notices from the Source form of the Work,
372 | excluding those notices that do not pertain to any part of
373 | the Derivative Works; and
374 |
375 | (d) If the Work includes a "NOTICE" text file as part of its
376 | distribution, then any Derivative Works that You distribute must
377 | include a readable copy of the attribution notices contained
378 | within such NOTICE file, excluding those notices that do not
379 | pertain to any part of the Derivative Works, in at least one
380 | of the following places: within a NOTICE text file distributed
381 | as part of the Derivative Works; within the Source form or
382 | documentation, if provided along with the Derivative Works; or,
383 | within a display generated by the Derivative Works, if and
384 | wherever such third-party notices normally appear. The contents
385 | of the NOTICE file are for informational purposes only and
386 | do not modify the License. You may add Your own attribution
387 | notices within Derivative Works that You distribute, alongside
388 | or as an addendum to the NOTICE text from the Work, provided
389 | that such additional attribution notices cannot be construed
390 | as modifying the License.
391 |
392 | You may add Your own copyright statement to Your modifications and
393 | may provide additional or different license terms and conditions
394 | for use, reproduction, or distribution of Your modifications, or
395 | for any such Derivative Works as a whole, provided Your use,
396 | reproduction, and distribution of the Work otherwise complies with
397 | the conditions stated in this License.
398 |
399 | 5. Submission of Contributions. Unless You explicitly state otherwise,
400 | any Contribution intentionally submitted for inclusion in the Work
401 | by You to the Licensor shall be under the terms and conditions of
402 | this License, without any additional terms or conditions.
403 | Notwithstanding the above, nothing herein shall supersede or modify
404 | the terms of any separate license agreement you may have executed
405 | with Licensor regarding such Contributions.
406 |
407 | 6. Trademarks. This License does not grant permission to use the trade
408 | names, trademarks, service marks, or product names of the Licensor,
409 | except as required for reasonable and customary use in describing the
410 | origin of the Work and reproducing the content of the NOTICE file.
411 |
412 | 7. Disclaimer of Warranty. Unless required by applicable law or
413 | agreed to in writing, Licensor provides the Work (and each
414 | Contributor provides its Contributions) on an "AS IS" BASIS,
415 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
416 | implied, including, without limitation, any warranties or conditions
417 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
418 | PARTICULAR PURPOSE. You are solely responsible for determining the
419 | appropriateness of using or redistributing the Work and assume any
420 | risks associated with Your exercise of permissions under this License.
421 |
422 | 8. Limitation of Liability. In no event and under no legal theory,
423 | whether in tort (including negligence), contract, or otherwise,
424 | unless required by applicable law (such as deliberate and grossly
425 | negligent acts) or agreed to in writing, shall any Contributor be
426 | liable to You for damages, including any direct, indirect, special,
427 | incidental, or consequential damages of any character arising as a
428 | result of this License or out of the use or inability to use the
429 | Work (including but not limited to damages for loss of goodwill,
430 | work stoppage, computer failure or malfunction, or any and all
431 | other commercial damages or losses), even if such Contributor
432 | has been advised of the possibility of such damages.
433 |
434 | 9. Accepting Warranty or Additional Liability. While redistributing
435 | the Work or Derivative Works thereof, You may choose to offer,
436 | and charge a fee for, acceptance of support, warranty, indemnity,
437 | or other liability obligations and/or rights consistent with this
438 | License. However, in accepting such obligations, You may act only
439 | on Your own behalf and on Your sole responsibility, not on behalf
440 | of any other Contributor, and only if You agree to indemnify,
441 | defend, and hold each Contributor harmless for any liability
442 | incurred by, or claims asserted against, such Contributor by reason
443 | of your accepting any such warranty or additional liability.
444 |
445 | END OF TERMS AND CONDITIONS
446 |
447 | APPENDIX: How to apply the Apache License to your work.
448 |
449 | To apply the Apache License to your work, attach the following
450 | boilerplate notice, with the fields enclosed by brackets "{}"
451 | replaced with your own identifying information. (Don't include
452 | the brackets!) The text should be enclosed in the appropriate
453 | comment syntax for the file format. We also recommend that a
454 | file or class name and description of purpose be included on the
455 | same "printed page" as the copyright notice for easier
456 | identification within third-party archives.
457 |
458 | Copyright 2018 Gregor Martynus and other contributors.
459 |
460 | Licensed under the Apache License, Version 2.0 (the "License");
461 | you may not use this file except in compliance with the License.
462 | You may obtain a copy of the License at
463 |
464 | http://www.apache.org/licenses/LICENSE-2.0
465 |
466 | Unless required by applicable law or agreed to in writing, software
467 | distributed under the License is distributed on an "AS IS" BASIS,
468 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
469 | See the License for the specific language governing permissions and
470 | limitations under the License.
471 |
472 |
473 | deprecation
474 | ISC
475 | The ISC License
476 |
477 | Copyright (c) Gregor Martynus and contributors
478 |
479 | Permission to use, copy, modify, and/or distribute this software for any
480 | purpose with or without fee is hereby granted, provided that the above
481 | copyright notice and this permission notice appear in all copies.
482 |
483 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
484 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
485 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
486 | ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
487 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
488 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
489 | IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
490 |
491 |
492 | is-plain-object
493 | MIT
494 | The MIT License (MIT)
495 |
496 | Copyright (c) 2014-2017, Jon Schlinkert.
497 |
498 | Permission is hereby granted, free of charge, to any person obtaining a copy
499 | of this software and associated documentation files (the "Software"), to deal
500 | in the Software without restriction, including without limitation the rights
501 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
502 | copies of the Software, and to permit persons to whom the Software is
503 | furnished to do so, subject to the following conditions:
504 |
505 | The above copyright notice and this permission notice shall be included in
506 | all copies or substantial portions of the Software.
507 |
508 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
509 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
510 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
511 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
512 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
513 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
514 | THE SOFTWARE.
515 |
516 |
517 | lru-cache
518 | ISC
519 | The ISC License
520 |
521 | Copyright (c) Isaac Z. Schlueter and Contributors
522 |
523 | Permission to use, copy, modify, and/or distribute this software for any
524 | purpose with or without fee is hereby granted, provided that the above
525 | copyright notice and this permission notice appear in all copies.
526 |
527 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
528 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
529 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
530 | ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
531 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
532 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
533 | IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
534 |
535 |
536 | node-fetch
537 | MIT
538 | The MIT License (MIT)
539 |
540 | Copyright (c) 2016 David Frank
541 |
542 | Permission is hereby granted, free of charge, to any person obtaining a copy
543 | of this software and associated documentation files (the "Software"), to deal
544 | in the Software without restriction, including without limitation the rights
545 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
546 | copies of the Software, and to permit persons to whom the Software is
547 | furnished to do so, subject to the following conditions:
548 |
549 | The above copyright notice and this permission notice shall be included in all
550 | copies or substantial portions of the Software.
551 |
552 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
553 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
554 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
555 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
556 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
557 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
558 | SOFTWARE.
559 |
560 |
561 |
562 | once
563 | ISC
564 | The ISC License
565 |
566 | Copyright (c) Isaac Z. Schlueter and Contributors
567 |
568 | Permission to use, copy, modify, and/or distribute this software for any
569 | purpose with or without fee is hereby granted, provided that the above
570 | copyright notice and this permission notice appear in all copies.
571 |
572 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
573 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
574 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
575 | ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
576 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
577 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
578 | IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
579 |
580 |
581 | semver
582 | ISC
583 | The ISC License
584 |
585 | Copyright (c) Isaac Z. Schlueter and Contributors
586 |
587 | Permission to use, copy, modify, and/or distribute this software for any
588 | purpose with or without fee is hereby granted, provided that the above
589 | copyright notice and this permission notice appear in all copies.
590 |
591 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
592 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
593 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
594 | ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
595 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
596 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
597 | IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
598 |
599 |
600 | tr46
601 | MIT
602 |
603 | tunnel
604 | MIT
605 | The MIT License (MIT)
606 |
607 | Copyright (c) 2012 Koichi Kobayashi
608 |
609 | Permission is hereby granted, free of charge, to any person obtaining a copy
610 | of this software and associated documentation files (the "Software"), to deal
611 | in the Software without restriction, including without limitation the rights
612 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
613 | copies of the Software, and to permit persons to whom the Software is
614 | furnished to do so, subject to the following conditions:
615 |
616 | The above copyright notice and this permission notice shall be included in
617 | all copies or substantial portions of the Software.
618 |
619 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
620 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
621 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
622 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
623 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
624 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
625 | THE SOFTWARE.
626 |
627 |
628 | universal-user-agent
629 | ISC
630 | # [ISC License](https://spdx.org/licenses/ISC)
631 |
632 | Copyright (c) 2018, Gregor Martynus (https://github.com/gr2m)
633 |
634 | Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
635 |
636 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
637 |
638 |
639 | uuid
640 | MIT
641 | The MIT License (MIT)
642 |
643 | Copyright (c) 2010-2020 Robert Kieffer and other contributors
644 |
645 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
646 |
647 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
648 |
649 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
650 |
651 |
652 | webidl-conversions
653 | BSD-2-Clause
654 | # The BSD 2-Clause License
655 |
656 | Copyright (c) 2014, Domenic Denicola
657 | All rights reserved.
658 |
659 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
660 |
661 | 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
662 |
663 | 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
664 |
665 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
666 |
667 |
668 | whatwg-url
669 | MIT
670 | The MIT License (MIT)
671 |
672 | Copyright (c) 2015–2016 Sebastian Mayr
673 |
674 | Permission is hereby granted, free of charge, to any person obtaining a copy
675 | of this software and associated documentation files (the "Software"), to deal
676 | in the Software without restriction, including without limitation the rights
677 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
678 | copies of the Software, and to permit persons to whom the Software is
679 | furnished to do so, subject to the following conditions:
680 |
681 | The above copyright notice and this permission notice shall be included in
682 | all copies or substantial portions of the Software.
683 |
684 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
685 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
686 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
687 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
688 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
689 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
690 | THE SOFTWARE.
691 |
692 |
693 | wrappy
694 | ISC
695 | The ISC License
696 |
697 | Copyright (c) Isaac Z. Schlueter and Contributors
698 |
699 | Permission to use, copy, modify, and/or distribute this software for any
700 | purpose with or without fee is hereby granted, provided that the above
701 | copyright notice and this permission notice appear in all copies.
702 |
703 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
704 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
705 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
706 | ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
707 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
708 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
709 | IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
710 |
711 |
712 | yallist
713 | ISC
714 | The ISC License
715 |
716 | Copyright (c) Isaac Z. Schlueter and Contributors
717 |
718 | Permission to use, copy, modify, and/or distribute this software for any
719 | purpose with or without fee is hereby granted, provided that the above
720 | copyright notice and this permission notice appear in all copies.
721 |
722 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
723 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
724 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
725 | ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
726 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
727 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
728 | IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
729 |
--------------------------------------------------------------------------------
/dist/sourcemap-register.js:
--------------------------------------------------------------------------------
1 | (()=>{var e={650:e=>{var r=Object.prototype.toString;var n=typeof Buffer.alloc==="function"&&typeof Buffer.allocUnsafe==="function"&&typeof Buffer.from==="function";function isArrayBuffer(e){return r.call(e).slice(8,-1)==="ArrayBuffer"}function fromArrayBuffer(e,r,t){r>>>=0;var o=e.byteLength-r;if(o<0){throw new RangeError("'offset' is out of bounds")}if(t===undefined){t=o}else{t>>>=0;if(t>o){throw new RangeError("'length' is out of bounds")}}return n?Buffer.from(e.slice(r,r+t)):new Buffer(new Uint8Array(e.slice(r,r+t)))}function fromString(e,r){if(typeof r!=="string"||r===""){r="utf8"}if(!Buffer.isEncoding(r)){throw new TypeError('"encoding" must be a valid string encoding')}return n?Buffer.from(e,r):new Buffer(e,r)}function bufferFrom(e,r,t){if(typeof e==="number"){throw new TypeError('"value" argument must not be a number')}if(isArrayBuffer(e)){return fromArrayBuffer(e,r,t)}if(typeof e==="string"){return fromString(e,r)}return n?Buffer.from(e):new Buffer(e)}e.exports=bufferFrom},274:(e,r,n)=>{var t=n(339);var o=Object.prototype.hasOwnProperty;var i=typeof Map!=="undefined";function ArraySet(){this._array=[];this._set=i?new Map:Object.create(null)}ArraySet.fromArray=function ArraySet_fromArray(e,r){var n=new ArraySet;for(var t=0,o=e.length;t=0){return r}}else{var n=t.toSetString(e);if(o.call(this._set,n)){return this._set[n]}}throw new Error('"'+e+'" is not in the set.')};ArraySet.prototype.at=function ArraySet_at(e){if(e>=0&&e{var t=n(190);var o=5;var i=1<>1;return r?-n:n}r.encode=function base64VLQ_encode(e){var r="";var n;var i=toVLQSigned(e);do{n=i&a;i>>>=o;if(i>0){n|=u}r+=t.encode(n)}while(i>0);return r};r.decode=function base64VLQ_decode(e,r,n){var i=e.length;var s=0;var l=0;var c,p;do{if(r>=i){throw new Error("Expected more digits in base 64 VLQ value.")}p=t.decode(e.charCodeAt(r++));if(p===-1){throw new Error("Invalid base64 digit: "+e.charAt(r-1))}c=!!(p&u);p&=a;s=s+(p<{var n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");r.encode=function(e){if(0<=e&&e{r.GREATEST_LOWER_BOUND=1;r.LEAST_UPPER_BOUND=2;function recursiveSearch(e,n,t,o,i,a){var u=Math.floor((n-e)/2)+e;var s=i(t,o[u],true);if(s===0){return u}else if(s>0){if(n-u>1){return recursiveSearch(u,n,t,o,i,a)}if(a==r.LEAST_UPPER_BOUND){return n1){return recursiveSearch(e,u,t,o,i,a)}if(a==r.LEAST_UPPER_BOUND){return u}else{return e<0?-1:e}}}r.search=function search(e,n,t,o){if(n.length===0){return-1}var i=recursiveSearch(-1,n.length,e,n,t,o||r.GREATEST_LOWER_BOUND);if(i<0){return-1}while(i-1>=0){if(t(n[i],n[i-1],true)!==0){break}--i}return i}},680:(e,r,n)=>{var t=n(339);function generatedPositionAfter(e,r){var n=e.generatedLine;var o=r.generatedLine;var i=e.generatedColumn;var a=r.generatedColumn;return o>n||o==n&&a>=i||t.compareByGeneratedPositionsInflated(e,r)<=0}function MappingList(){this._array=[];this._sorted=true;this._last={generatedLine:-1,generatedColumn:0}}MappingList.prototype.unsortedForEach=function MappingList_forEach(e,r){this._array.forEach(e,r)};MappingList.prototype.add=function MappingList_add(e){if(generatedPositionAfter(this._last,e)){this._last=e;this._array.push(e)}else{this._sorted=false;this._array.push(e)}};MappingList.prototype.toArray=function MappingList_toArray(){if(!this._sorted){this._array.sort(t.compareByGeneratedPositionsInflated);this._sorted=true}return this._array};r.H=MappingList},758:(e,r)=>{function swap(e,r,n){var t=e[r];e[r]=e[n];e[n]=t}function randomIntInRange(e,r){return Math.round(e+Math.random()*(r-e))}function doQuickSort(e,r,n,t){if(n{var t;var o=n(339);var i=n(345);var a=n(274).I;var u=n(449);var s=n(758).U;function SourceMapConsumer(e,r){var n=e;if(typeof e==="string"){n=o.parseSourceMapInput(e)}return n.sections!=null?new IndexedSourceMapConsumer(n,r):new BasicSourceMapConsumer(n,r)}SourceMapConsumer.fromSourceMap=function(e,r){return BasicSourceMapConsumer.fromSourceMap(e,r)};SourceMapConsumer.prototype._version=3;SourceMapConsumer.prototype.__generatedMappings=null;Object.defineProperty(SourceMapConsumer.prototype,"_generatedMappings",{configurable:true,enumerable:true,get:function(){if(!this.__generatedMappings){this._parseMappings(this._mappings,this.sourceRoot)}return this.__generatedMappings}});SourceMapConsumer.prototype.__originalMappings=null;Object.defineProperty(SourceMapConsumer.prototype,"_originalMappings",{configurable:true,enumerable:true,get:function(){if(!this.__originalMappings){this._parseMappings(this._mappings,this.sourceRoot)}return this.__originalMappings}});SourceMapConsumer.prototype._charIsMappingSeparator=function SourceMapConsumer_charIsMappingSeparator(e,r){var n=e.charAt(r);return n===";"||n===","};SourceMapConsumer.prototype._parseMappings=function SourceMapConsumer_parseMappings(e,r){throw new Error("Subclasses must implement _parseMappings")};SourceMapConsumer.GENERATED_ORDER=1;SourceMapConsumer.ORIGINAL_ORDER=2;SourceMapConsumer.GREATEST_LOWER_BOUND=1;SourceMapConsumer.LEAST_UPPER_BOUND=2;SourceMapConsumer.prototype.eachMapping=function SourceMapConsumer_eachMapping(e,r,n){var t=r||null;var i=n||SourceMapConsumer.GENERATED_ORDER;var a;switch(i){case SourceMapConsumer.GENERATED_ORDER:a=this._generatedMappings;break;case SourceMapConsumer.ORIGINAL_ORDER:a=this._originalMappings;break;default:throw new Error("Unknown order of iteration.")}var u=this.sourceRoot;a.map((function(e){var r=e.source===null?null:this._sources.at(e.source);r=o.computeSourceURL(u,r,this._sourceMapURL);return{source:r,generatedLine:e.generatedLine,generatedColumn:e.generatedColumn,originalLine:e.originalLine,originalColumn:e.originalColumn,name:e.name===null?null:this._names.at(e.name)}}),this).forEach(e,t)};SourceMapConsumer.prototype.allGeneratedPositionsFor=function SourceMapConsumer_allGeneratedPositionsFor(e){var r=o.getArg(e,"line");var n={source:o.getArg(e,"source"),originalLine:r,originalColumn:o.getArg(e,"column",0)};n.source=this._findSourceIndex(n.source);if(n.source<0){return[]}var t=[];var a=this._findMapping(n,this._originalMappings,"originalLine","originalColumn",o.compareByOriginalPositions,i.LEAST_UPPER_BOUND);if(a>=0){var u=this._originalMappings[a];if(e.column===undefined){var s=u.originalLine;while(u&&u.originalLine===s){t.push({line:o.getArg(u,"generatedLine",null),column:o.getArg(u,"generatedColumn",null),lastColumn:o.getArg(u,"lastGeneratedColumn",null)});u=this._originalMappings[++a]}}else{var l=u.originalColumn;while(u&&u.originalLine===r&&u.originalColumn==l){t.push({line:o.getArg(u,"generatedLine",null),column:o.getArg(u,"generatedColumn",null),lastColumn:o.getArg(u,"lastGeneratedColumn",null)});u=this._originalMappings[++a]}}}return t};r.SourceMapConsumer=SourceMapConsumer;function BasicSourceMapConsumer(e,r){var n=e;if(typeof e==="string"){n=o.parseSourceMapInput(e)}var t=o.getArg(n,"version");var i=o.getArg(n,"sources");var u=o.getArg(n,"names",[]);var s=o.getArg(n,"sourceRoot",null);var l=o.getArg(n,"sourcesContent",null);var c=o.getArg(n,"mappings");var p=o.getArg(n,"file",null);if(t!=this._version){throw new Error("Unsupported version: "+t)}if(s){s=o.normalize(s)}i=i.map(String).map(o.normalize).map((function(e){return s&&o.isAbsolute(s)&&o.isAbsolute(e)?o.relative(s,e):e}));this._names=a.fromArray(u.map(String),true);this._sources=a.fromArray(i,true);this._absoluteSources=this._sources.toArray().map((function(e){return o.computeSourceURL(s,e,r)}));this.sourceRoot=s;this.sourcesContent=l;this._mappings=c;this._sourceMapURL=r;this.file=p}BasicSourceMapConsumer.prototype=Object.create(SourceMapConsumer.prototype);BasicSourceMapConsumer.prototype.consumer=SourceMapConsumer;BasicSourceMapConsumer.prototype._findSourceIndex=function(e){var r=e;if(this.sourceRoot!=null){r=o.relative(this.sourceRoot,r)}if(this._sources.has(r)){return this._sources.indexOf(r)}var n;for(n=0;n1){v.source=l+_[1];l+=_[1];v.originalLine=i+_[2];i=v.originalLine;v.originalLine+=1;v.originalColumn=a+_[3];a=v.originalColumn;if(_.length>4){v.name=c+_[4];c+=_[4]}}m.push(v);if(typeof v.originalLine==="number"){d.push(v)}}}s(m,o.compareByGeneratedPositionsDeflated);this.__generatedMappings=m;s(d,o.compareByOriginalPositions);this.__originalMappings=d};BasicSourceMapConsumer.prototype._findMapping=function SourceMapConsumer_findMapping(e,r,n,t,o,a){if(e[n]<=0){throw new TypeError("Line must be greater than or equal to 1, got "+e[n])}if(e[t]<0){throw new TypeError("Column must be greater than or equal to 0, got "+e[t])}return i.search(e,r,o,a)};BasicSourceMapConsumer.prototype.computeColumnSpans=function SourceMapConsumer_computeColumnSpans(){for(var e=0;e=0){var t=this._generatedMappings[n];if(t.generatedLine===r.generatedLine){var i=o.getArg(t,"source",null);if(i!==null){i=this._sources.at(i);i=o.computeSourceURL(this.sourceRoot,i,this._sourceMapURL)}var a=o.getArg(t,"name",null);if(a!==null){a=this._names.at(a)}return{source:i,line:o.getArg(t,"originalLine",null),column:o.getArg(t,"originalColumn",null),name:a}}}return{source:null,line:null,column:null,name:null}};BasicSourceMapConsumer.prototype.hasContentsOfAllSources=function BasicSourceMapConsumer_hasContentsOfAllSources(){if(!this.sourcesContent){return false}return this.sourcesContent.length>=this._sources.size()&&!this.sourcesContent.some((function(e){return e==null}))};BasicSourceMapConsumer.prototype.sourceContentFor=function SourceMapConsumer_sourceContentFor(e,r){if(!this.sourcesContent){return null}var n=this._findSourceIndex(e);if(n>=0){return this.sourcesContent[n]}var t=e;if(this.sourceRoot!=null){t=o.relative(this.sourceRoot,t)}var i;if(this.sourceRoot!=null&&(i=o.urlParse(this.sourceRoot))){var a=t.replace(/^file:\/\//,"");if(i.scheme=="file"&&this._sources.has(a)){return this.sourcesContent[this._sources.indexOf(a)]}if((!i.path||i.path=="/")&&this._sources.has("/"+t)){return this.sourcesContent[this._sources.indexOf("/"+t)]}}if(r){return null}else{throw new Error('"'+t+'" is not in the SourceMap.')}};BasicSourceMapConsumer.prototype.generatedPositionFor=function SourceMapConsumer_generatedPositionFor(e){var r=o.getArg(e,"source");r=this._findSourceIndex(r);if(r<0){return{line:null,column:null,lastColumn:null}}var n={source:r,originalLine:o.getArg(e,"line"),originalColumn:o.getArg(e,"column")};var t=this._findMapping(n,this._originalMappings,"originalLine","originalColumn",o.compareByOriginalPositions,o.getArg(e,"bias",SourceMapConsumer.GREATEST_LOWER_BOUND));if(t>=0){var i=this._originalMappings[t];if(i.source===n.source){return{line:o.getArg(i,"generatedLine",null),column:o.getArg(i,"generatedColumn",null),lastColumn:o.getArg(i,"lastGeneratedColumn",null)}}}return{line:null,column:null,lastColumn:null}};t=BasicSourceMapConsumer;function IndexedSourceMapConsumer(e,r){var n=e;if(typeof e==="string"){n=o.parseSourceMapInput(e)}var t=o.getArg(n,"version");var i=o.getArg(n,"sections");if(t!=this._version){throw new Error("Unsupported version: "+t)}this._sources=new a;this._names=new a;var u={line:-1,column:0};this._sections=i.map((function(e){if(e.url){throw new Error("Support for url field in sections not implemented.")}var n=o.getArg(e,"offset");var t=o.getArg(n,"line");var i=o.getArg(n,"column");if(t{var t=n(449);var o=n(339);var i=n(274).I;var a=n(680).H;function SourceMapGenerator(e){if(!e){e={}}this._file=o.getArg(e,"file",null);this._sourceRoot=o.getArg(e,"sourceRoot",null);this._skipValidation=o.getArg(e,"skipValidation",false);this._sources=new i;this._names=new i;this._mappings=new a;this._sourcesContents=null}SourceMapGenerator.prototype._version=3;SourceMapGenerator.fromSourceMap=function SourceMapGenerator_fromSourceMap(e){var r=e.sourceRoot;var n=new SourceMapGenerator({file:e.file,sourceRoot:r});e.eachMapping((function(e){var t={generated:{line:e.generatedLine,column:e.generatedColumn}};if(e.source!=null){t.source=e.source;if(r!=null){t.source=o.relative(r,t.source)}t.original={line:e.originalLine,column:e.originalColumn};if(e.name!=null){t.name=e.name}}n.addMapping(t)}));e.sources.forEach((function(t){var i=t;if(r!==null){i=o.relative(r,t)}if(!n._sources.has(i)){n._sources.add(i)}var a=e.sourceContentFor(t);if(a!=null){n.setSourceContent(t,a)}}));return n};SourceMapGenerator.prototype.addMapping=function SourceMapGenerator_addMapping(e){var r=o.getArg(e,"generated");var n=o.getArg(e,"original",null);var t=o.getArg(e,"source",null);var i=o.getArg(e,"name",null);if(!this._skipValidation){this._validateMapping(r,n,t,i)}if(t!=null){t=String(t);if(!this._sources.has(t)){this._sources.add(t)}}if(i!=null){i=String(i);if(!this._names.has(i)){this._names.add(i)}}this._mappings.add({generatedLine:r.line,generatedColumn:r.column,originalLine:n!=null&&n.line,originalColumn:n!=null&&n.column,source:t,name:i})};SourceMapGenerator.prototype.setSourceContent=function SourceMapGenerator_setSourceContent(e,r){var n=e;if(this._sourceRoot!=null){n=o.relative(this._sourceRoot,n)}if(r!=null){if(!this._sourcesContents){this._sourcesContents=Object.create(null)}this._sourcesContents[o.toSetString(n)]=r}else if(this._sourcesContents){delete this._sourcesContents[o.toSetString(n)];if(Object.keys(this._sourcesContents).length===0){this._sourcesContents=null}}};SourceMapGenerator.prototype.applySourceMap=function SourceMapGenerator_applySourceMap(e,r,n){var t=r;if(r==null){if(e.file==null){throw new Error("SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, "+'or the source map\'s "file" property. Both were omitted.')}t=e.file}var a=this._sourceRoot;if(a!=null){t=o.relative(a,t)}var u=new i;var s=new i;this._mappings.unsortedForEach((function(r){if(r.source===t&&r.originalLine!=null){var i=e.originalPositionFor({line:r.originalLine,column:r.originalColumn});if(i.source!=null){r.source=i.source;if(n!=null){r.source=o.join(n,r.source)}if(a!=null){r.source=o.relative(a,r.source)}r.originalLine=i.line;r.originalColumn=i.column;if(i.name!=null){r.name=i.name}}}var l=r.source;if(l!=null&&!u.has(l)){u.add(l)}var c=r.name;if(c!=null&&!s.has(c)){s.add(c)}}),this);this._sources=u;this._names=s;e.sources.forEach((function(r){var t=e.sourceContentFor(r);if(t!=null){if(n!=null){r=o.join(n,r)}if(a!=null){r=o.relative(a,r)}this.setSourceContent(r,t)}}),this)};SourceMapGenerator.prototype._validateMapping=function SourceMapGenerator_validateMapping(e,r,n,t){if(r&&typeof r.line!=="number"&&typeof r.column!=="number"){throw new Error("original.line and original.column are not numbers -- you probably meant to omit "+"the original mapping entirely and only map the generated position. If so, pass "+"null for the original mapping instead of an object with empty or null values.")}if(e&&"line"in e&&"column"in e&&e.line>0&&e.column>=0&&!r&&!n&&!t){return}else if(e&&"line"in e&&"column"in e&&r&&"line"in r&&"column"in r&&e.line>0&&e.column>=0&&r.line>0&&r.column>=0&&n){return}else{throw new Error("Invalid mapping: "+JSON.stringify({generated:e,source:n,original:r,name:t}))}};SourceMapGenerator.prototype._serializeMappings=function SourceMapGenerator_serializeMappings(){var e=0;var r=1;var n=0;var i=0;var a=0;var u=0;var s="";var l;var c;var p;var f;var g=this._mappings.toArray();for(var h=0,d=g.length;h0){if(!o.compareByGeneratedPositionsInflated(c,g[h-1])){continue}l+=","}}l+=t.encode(c.generatedColumn-e);e=c.generatedColumn;if(c.source!=null){f=this._sources.indexOf(c.source);l+=t.encode(f-u);u=f;l+=t.encode(c.originalLine-1-i);i=c.originalLine-1;l+=t.encode(c.originalColumn-n);n=c.originalColumn;if(c.name!=null){p=this._names.indexOf(c.name);l+=t.encode(p-a);a=p}}s+=l}return s};SourceMapGenerator.prototype._generateSourcesContent=function SourceMapGenerator_generateSourcesContent(e,r){return e.map((function(e){if(!this._sourcesContents){return null}if(r!=null){e=o.relative(r,e)}var n=o.toSetString(e);return Object.prototype.hasOwnProperty.call(this._sourcesContents,n)?this._sourcesContents[n]:null}),this)};SourceMapGenerator.prototype.toJSON=function SourceMapGenerator_toJSON(){var e={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};if(this._file!=null){e.file=this._file}if(this._sourceRoot!=null){e.sourceRoot=this._sourceRoot}if(this._sourcesContents){e.sourcesContent=this._generateSourcesContent(e.sources,e.sourceRoot)}return e};SourceMapGenerator.prototype.toString=function SourceMapGenerator_toString(){return JSON.stringify(this.toJSON())};r.h=SourceMapGenerator},351:(e,r,n)=>{var t;var o=n(591).h;var i=n(339);var a=/(\r?\n)/;var u=10;var s="$$$isSourceNode$$$";function SourceNode(e,r,n,t,o){this.children=[];this.sourceContents={};this.line=e==null?null:e;this.column=r==null?null:r;this.source=n==null?null:n;this.name=o==null?null:o;this[s]=true;if(t!=null)this.add(t)}SourceNode.fromStringWithSourceMap=function SourceNode_fromStringWithSourceMap(e,r,n){var t=new SourceNode;var o=e.split(a);var u=0;var shiftNextLine=function(){var e=getNextLine();var r=getNextLine()||"";return e+r;function getNextLine(){return u=0;r--){this.prepend(e[r])}}else if(e[s]||typeof e==="string"){this.children.unshift(e)}else{throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+e)}return this};SourceNode.prototype.walk=function SourceNode_walk(e){var r;for(var n=0,t=this.children.length;n0){r=[];for(n=0;n{function getArg(e,r,n){if(r in e){return e[r]}else if(arguments.length===3){return n}else{throw new Error('"'+r+'" is a required argument.')}}r.getArg=getArg;var n=/^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.-]*)(?::(\d+))?(.*)$/;var t=/^data:.+\,.+$/;function urlParse(e){var r=e.match(n);if(!r){return null}return{scheme:r[1],auth:r[2],host:r[3],port:r[4],path:r[5]}}r.urlParse=urlParse;function urlGenerate(e){var r="";if(e.scheme){r+=e.scheme+":"}r+="//";if(e.auth){r+=e.auth+"@"}if(e.host){r+=e.host}if(e.port){r+=":"+e.port}if(e.path){r+=e.path}return r}r.urlGenerate=urlGenerate;function normalize(e){var n=e;var t=urlParse(e);if(t){if(!t.path){return e}n=t.path}var o=r.isAbsolute(n);var i=n.split(/\/+/);for(var a,u=0,s=i.length-1;s>=0;s--){a=i[s];if(a==="."){i.splice(s,1)}else if(a===".."){u++}else if(u>0){if(a===""){i.splice(s+1,u);u=0}else{i.splice(s,2);u--}}}n=i.join("/");if(n===""){n=o?"/":"."}if(t){t.path=n;return urlGenerate(t)}return n}r.normalize=normalize;function join(e,r){if(e===""){e="."}if(r===""){r="."}var n=urlParse(r);var o=urlParse(e);if(o){e=o.path||"/"}if(n&&!n.scheme){if(o){n.scheme=o.scheme}return urlGenerate(n)}if(n||r.match(t)){return r}if(o&&!o.host&&!o.path){o.host=r;return urlGenerate(o)}var i=r.charAt(0)==="/"?r:normalize(e.replace(/\/+$/,"")+"/"+r);if(o){o.path=i;return urlGenerate(o)}return i}r.join=join;r.isAbsolute=function(e){return e.charAt(0)==="/"||n.test(e)};function relative(e,r){if(e===""){e="."}e=e.replace(/\/$/,"");var n=0;while(r.indexOf(e+"/")!==0){var t=e.lastIndexOf("/");if(t<0){return r}e=e.slice(0,t);if(e.match(/^([^\/]+:\/)?\/*$/)){return r}++n}return Array(n+1).join("../")+r.substr(e.length+1)}r.relative=relative;var o=function(){var e=Object.create(null);return!("__proto__"in e)}();function identity(e){return e}function toSetString(e){if(isProtoString(e)){return"$"+e}return e}r.toSetString=o?identity:toSetString;function fromSetString(e){if(isProtoString(e)){return e.slice(1)}return e}r.fromSetString=o?identity:fromSetString;function isProtoString(e){if(!e){return false}var r=e.length;if(r<9){return false}if(e.charCodeAt(r-1)!==95||e.charCodeAt(r-2)!==95||e.charCodeAt(r-3)!==111||e.charCodeAt(r-4)!==116||e.charCodeAt(r-5)!==111||e.charCodeAt(r-6)!==114||e.charCodeAt(r-7)!==112||e.charCodeAt(r-8)!==95||e.charCodeAt(r-9)!==95){return false}for(var n=r-10;n>=0;n--){if(e.charCodeAt(n)!==36){return false}}return true}function compareByOriginalPositions(e,r,n){var t=strcmp(e.source,r.source);if(t!==0){return t}t=e.originalLine-r.originalLine;if(t!==0){return t}t=e.originalColumn-r.originalColumn;if(t!==0||n){return t}t=e.generatedColumn-r.generatedColumn;if(t!==0){return t}t=e.generatedLine-r.generatedLine;if(t!==0){return t}return strcmp(e.name,r.name)}r.compareByOriginalPositions=compareByOriginalPositions;function compareByGeneratedPositionsDeflated(e,r,n){var t=e.generatedLine-r.generatedLine;if(t!==0){return t}t=e.generatedColumn-r.generatedColumn;if(t!==0||n){return t}t=strcmp(e.source,r.source);if(t!==0){return t}t=e.originalLine-r.originalLine;if(t!==0){return t}t=e.originalColumn-r.originalColumn;if(t!==0){return t}return strcmp(e.name,r.name)}r.compareByGeneratedPositionsDeflated=compareByGeneratedPositionsDeflated;function strcmp(e,r){if(e===r){return 0}if(e===null){return 1}if(r===null){return-1}if(e>r){return 1}return-1}function compareByGeneratedPositionsInflated(e,r){var n=e.generatedLine-r.generatedLine;if(n!==0){return n}n=e.generatedColumn-r.generatedColumn;if(n!==0){return n}n=strcmp(e.source,r.source);if(n!==0){return n}n=e.originalLine-r.originalLine;if(n!==0){return n}n=e.originalColumn-r.originalColumn;if(n!==0){return n}return strcmp(e.name,r.name)}r.compareByGeneratedPositionsInflated=compareByGeneratedPositionsInflated;function parseSourceMapInput(e){return JSON.parse(e.replace(/^\)]}'[^\n]*\n/,""))}r.parseSourceMapInput=parseSourceMapInput;function computeSourceURL(e,r,n){r=r||"";if(e){if(e[e.length-1]!=="/"&&r[0]!=="/"){e+="/"}r=e+r}if(n){var t=urlParse(n);if(!t){throw new Error("sourceMapURL could not be parsed")}if(t.path){var o=t.path.lastIndexOf("/");if(o>=0){t.path=t.path.substring(0,o+1)}}r=join(urlGenerate(t),r)}return normalize(r)}r.computeSourceURL=computeSourceURL},997:(e,r,n)=>{n(591).h;r.SourceMapConsumer=n(952).SourceMapConsumer;n(351)},284:(e,r,n)=>{e=n.nmd(e);var t=n(997).SourceMapConsumer;var o=n(17);var i;try{i=n(147);if(!i.existsSync||!i.readFileSync){i=null}}catch(e){}var a=n(650);function dynamicRequire(e,r){return e.require(r)}var u=false;var s=false;var l=false;var c="auto";var p={};var f={};var g=/^data:application\/json[^,]+base64,/;var h=[];var d=[];function isInBrowser(){if(c==="browser")return true;if(c==="node")return false;return typeof window!=="undefined"&&typeof XMLHttpRequest==="function"&&!(window.require&&window.module&&window.process&&window.process.type==="renderer")}function hasGlobalProcessEventEmitter(){return typeof process==="object"&&process!==null&&typeof process.on==="function"}function globalProcessVersion(){if(typeof process==="object"&&process!==null){return process.version}else{return""}}function globalProcessStderr(){if(typeof process==="object"&&process!==null){return process.stderr}}function globalProcessExit(e){if(typeof process==="object"&&process!==null&&typeof process.exit==="function"){return process.exit(e)}}function handlerExec(e){return function(r){for(var n=0;n"}var n=this.getLineNumber();if(n!=null){r+=":"+n;var t=this.getColumnNumber();if(t){r+=":"+t}}}var o="";var i=this.getFunctionName();var a=true;var u=this.isConstructor();var s=!(this.isToplevel()||u);if(s){var l=this.getTypeName();if(l==="[object Object]"){l="null"}var c=this.getMethodName();if(i){if(l&&i.indexOf(l)!=0){o+=l+"."}o+=i;if(c&&i.indexOf("."+c)!=i.length-c.length-1){o+=" [as "+c+"]"}}else{o+=l+"."+(c||"")}}else if(u){o+="new "+(i||"")}else if(i){o+=i}else{o+=r;a=false}if(a){o+=" ("+r+")"}return o}function cloneCallSite(e){var r={};Object.getOwnPropertyNames(Object.getPrototypeOf(e)).forEach((function(n){r[n]=/^(?:is|get)/.test(n)?function(){return e[n].call(e)}:e[n]}));r.toString=CallSiteToString;return r}function wrapCallSite(e,r){if(r===undefined){r={nextPosition:null,curPosition:null}}if(e.isNative()){r.curPosition=null;return e}var n=e.getFileName()||e.getScriptNameOrSourceURL();if(n){var t=e.getLineNumber();var o=e.getColumnNumber()-1;var i=/^v(10\.1[6-9]|10\.[2-9][0-9]|10\.[0-9]{3,}|1[2-9]\d*|[2-9]\d|\d{3,}|11\.11)/;var a=i.test(globalProcessVersion())?0:62;if(t===1&&o>a&&!isInBrowser()&&!e.isEval()){o-=a}var u=mapSourcePosition({source:n,line:t,column:o});r.curPosition=u;e=cloneCallSite(e);var s=e.getFunctionName;e.getFunctionName=function(){if(r.nextPosition==null){return s()}return r.nextPosition.name||s()};e.getFileName=function(){return u.source};e.getLineNumber=function(){return u.line};e.getColumnNumber=function(){return u.column+1};e.getScriptNameOrSourceURL=function(){return u.source};return e}var l=e.isEval()&&e.getEvalOrigin();if(l){l=mapEvalOrigin(l);e=cloneCallSite(e);e.getEvalOrigin=function(){return l};return e}return e}function prepareStackTrace(e,r){if(l){p={};f={}}var n=e.name||"Error";var t=e.message||"";var o=n+": "+t;var i={nextPosition:null,curPosition:null};var a=[];for(var u=r.length-1;u>=0;u--){a.push("\n at "+wrapCallSite(r[u],i));i.nextPosition=i.curPosition}i.curPosition=i.nextPosition=null;return o+a.reverse().join("")}function getErrorSource(e){var r=/\n at [^(]+ \((.*):(\d+):(\d+)\)/.exec(e.stack);if(r){var n=r[1];var t=+r[2];var o=+r[3];var a=p[n];if(!a&&i&&i.existsSync(n)){try{a=i.readFileSync(n,"utf8")}catch(e){a=""}}if(a){var u=a.split(/(?:\r\n|\r|\n)/)[t-1];if(u){return n+":"+t+"\n"+u+"\n"+new Array(o).join(" ")+"^"}}}return null}function printErrorAndExit(e){var r=getErrorSource(e);var n=globalProcessStderr();if(n&&n._handle&&n._handle.setBlocking){n._handle.setBlocking(true)}if(r){console.error();console.error(r)}console.error(e.stack);globalProcessExit(1)}function shimEmitUncaughtException(){var e=process.emit;process.emit=function(r){if(r==="uncaughtException"){var n=arguments[1]&&arguments[1].stack;var t=this.listeners(r).length>0;if(n&&!t){return printErrorAndExit(arguments[1])}}return e.apply(this,arguments)}}var S=h.slice(0);var _=d.slice(0);r.wrapCallSite=wrapCallSite;r.getErrorSource=getErrorSource;r.mapSourcePosition=mapSourcePosition;r.retrieveSourceMap=v;r.install=function(r){r=r||{};if(r.environment){c=r.environment;if(["node","browser","auto"].indexOf(c)===-1){throw new Error("environment "+c+" was unknown. Available options are {auto, browser, node}")}}if(r.retrieveFile){if(r.overrideRetrieveFile){h.length=0}h.unshift(r.retrieveFile)}if(r.retrieveSourceMap){if(r.overrideRetrieveSourceMap){d.length=0}d.unshift(r.retrieveSourceMap)}if(r.hookRequire&&!isInBrowser()){var n=dynamicRequire(e,"module");var t=n.prototype._compile;if(!t.__sourceMapSupport){n.prototype._compile=function(e,r){p[r]=e;f[r]=undefined;return t.call(this,e,r)};n.prototype._compile.__sourceMapSupport=true}}if(!l){l="emptyCacheBetweenOperations"in r?r.emptyCacheBetweenOperations:false}if(!u){u=true;Error.prepareStackTrace=prepareStackTrace}if(!s){var o="handleUncaughtExceptions"in r?r.handleUncaughtExceptions:true;try{var i=dynamicRequire(e,"worker_threads");if(i.isMainThread===false){o=false}}catch(e){}if(o&&hasGlobalProcessEventEmitter()){s=true;shimEmitUncaughtException()}}};r.resetRetrieveHandlers=function(){h.length=0;d.length=0;h=S.slice(0);d=_.slice(0);v=handlerExec(d);m=handlerExec(h)}},147:e=>{"use strict";e.exports=require("fs")},17:e=>{"use strict";e.exports=require("path")}};var r={};function __webpack_require__(n){var t=r[n];if(t!==undefined){return t.exports}var o=r[n]={id:n,loaded:false,exports:{}};var i=true;try{e[n](o,o.exports,__webpack_require__);i=false}finally{if(i)delete r[n]}o.loaded=true;return o.exports}(()=>{__webpack_require__.nmd=e=>{e.paths=[];if(!e.children)e.children=[];return e}})();if(typeof __webpack_require__!=="undefined")__webpack_require__.ab=__dirname+"/";var n={};(()=>{__webpack_require__(284).install()})();module.exports=n})();
--------------------------------------------------------------------------------
/jest.config.js:
--------------------------------------------------------------------------------
1 | /** @type {import('ts-jest/dist/types').InitialOptionsTsJest} */
2 | module.exports = {
3 | preset: 'ts-jest',
4 | testEnvironment: 'node',
5 | };
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "stylua-action",
3 | "version": "0.0.0",
4 | "private": true,
5 | "description": "GitHub action to run StyLua",
6 | "main": "lib/main.js",
7 | "scripts": {
8 | "build": "tsc",
9 | "format": "prettier --write **/*.ts",
10 | "format-check": "prettier --check **/*.ts",
11 | "lint": "eslint src/**/*.ts",
12 | "package": "ncc build --source-map --license licenses.txt",
13 | "test": "jest",
14 | "all": "npm run build && npm run format-check && npm run lint && npm run package"
15 | },
16 | "repository": {
17 | "type": "git",
18 | "url": "git+https://github.com/JohnnyMorganz/stylua-action.git"
19 | },
20 | "keywords": [
21 | "actions",
22 | "formatter",
23 | "lua"
24 | ],
25 | "author": "JohnnyMorganz",
26 | "license": "MIT",
27 | "dependencies": {
28 | "@actions/core": "^1.2.7",
29 | "@actions/exec": "^1.0.4",
30 | "@actions/github": "^5.0.0",
31 | "@actions/tool-cache": "^2.0.1",
32 | "semver": "^7.3.5"
33 | },
34 | "devDependencies": {
35 | "@types/jest": "^29.0.3",
36 | "@types/node": "^20.11.7",
37 | "@types/semver": "^7.3.5",
38 | "@typescript-eslint/parser": "^5.0.0",
39 | "@vercel/ncc": "^0.36.1",
40 | "eslint": "^8.0.0",
41 | "eslint-plugin-github": "^4.1.3",
42 | "jest": "^29.0.3",
43 | "prettier": "^2.3.0",
44 | "ts-jest": "^29.0.1",
45 | "typescript": "^5.0.4"
46 | }
47 | }
48 |
--------------------------------------------------------------------------------
/src/main.ts:
--------------------------------------------------------------------------------
1 | import * as core from '@actions/core'
2 | import {exec} from '@actions/exec'
3 | import * as tc from '@actions/tool-cache'
4 | import stylua from './stylua'
5 |
6 | async function run(): Promise {
7 | try {
8 | const token = core.getInput('token')
9 | const version = core.getInput('version').trim()
10 |
11 | if (version === '') {
12 | core.info(
13 | 'See https://github.com/JohnnyMorganz/stylua-action#usage for usage information'
14 | )
15 | throw new Error(`The 'version' input must be specified!`)
16 | }
17 |
18 | const releases = await stylua.getReleases(token)
19 | const release = stylua.chooseRelease(version, releases)
20 | if (!release) {
21 | throw new Error(`Could not find release for version ${version}`)
22 | }
23 |
24 | core.debug(`Chose release ${release.tag_name}`)
25 |
26 | // See if we already have the tool installed
27 | core.debug(
28 | `Looking for cached version of binary with version ${release.tag_name}`
29 | )
30 | const styluaDirectory = tc.find('stylua', release.tag_name)
31 | if (styluaDirectory) {
32 | core.debug(`Found cached version of stylua: ${styluaDirectory}`)
33 | core.addPath(styluaDirectory)
34 | } else {
35 | core.debug('No cached version found, downloading new release')
36 | const asset = stylua.chooseAsset(release)
37 |
38 | if (!asset) {
39 | throw new Error(
40 | `Could not find asset for ${release.tag_name} on platform ${process.platform}`
41 | )
42 | }
43 |
44 | core.debug(`Chose asset ${asset.browser_download_url}`)
45 |
46 | const downloadedPath = await tc.downloadTool(asset.browser_download_url)
47 | const extractedPath = await tc.extractZip(downloadedPath)
48 | await tc.cacheDir(extractedPath, 'stylua', version)
49 | core.addPath(extractedPath)
50 |
51 | if (process.platform === 'darwin' || process.platform === 'linux') {
52 | await exec(`chmod +x ${extractedPath}/stylua`)
53 | }
54 | }
55 |
56 | const args = core.getInput('args')
57 | core.debug(`Running stylua with arguments: ${args}`)
58 |
59 | if (args !== 'false') {
60 | await exec(`stylua ${args}`)
61 | }
62 |
63 | // eslint-disable-next-line @typescript-eslint/no-explicit-any
64 | } catch (error: any) {
65 | core.setFailed(error.message)
66 | }
67 | }
68 |
69 | run()
70 |
--------------------------------------------------------------------------------
/src/stylua.test.ts:
--------------------------------------------------------------------------------
1 | import {getFilenameMatcher} from './stylua'
2 |
3 | const ARTIFACT_NAMES = [
4 | 'stylua-linux-aarch64.zip',
5 | 'stylua-linux-x86_64.zip',
6 | 'stylua-macos-aarch64.zip',
7 | 'stylua-macos-x86_64.zip',
8 | 'stylua-windows-x86_64.zip'
9 | ]
10 |
11 | // Handle for releases < 0.15.0
12 | const LEGACY_ARTIFACT_NAMES = [
13 | 'stylua-linux.zip',
14 | 'stylua-macos-aarch64.zip',
15 | 'stylua-macos.zip',
16 | 'stylua-win64.zip'
17 | ]
18 |
19 | const selectArtifact = (
20 | artifacts: string[],
21 | platform: NodeJS.Platform,
22 | arch: string
23 | ): string | undefined => {
24 | const matcher = getFilenameMatcher(platform, arch)
25 | return artifacts.find(name => matcher(name))
26 | }
27 |
28 | test('matches windows x64 platform', () => {
29 | expect(selectArtifact(ARTIFACT_NAMES, 'win32', 'x64')).toBe(
30 | 'stylua-windows-x86_64.zip'
31 | )
32 | })
33 |
34 | test('matches macos x64 platform', () => {
35 | expect(selectArtifact(ARTIFACT_NAMES, 'darwin', 'x64')).toBe(
36 | 'stylua-macos-x86_64.zip'
37 | )
38 | })
39 |
40 | test('matches macos aarch64 platform', () => {
41 | expect(selectArtifact(ARTIFACT_NAMES, 'darwin', 'arm64')).toBe(
42 | 'stylua-macos-aarch64.zip'
43 | )
44 | })
45 |
46 | test('matches linux x64 platform', () => {
47 | expect(selectArtifact(ARTIFACT_NAMES, 'linux', 'x64')).toBe(
48 | 'stylua-linux-x86_64.zip'
49 | )
50 | })
51 |
52 | test('matches linux aarch64 platform', () => {
53 | expect(selectArtifact(ARTIFACT_NAMES, 'linux', 'arm64')).toBe(
54 | 'stylua-linux-aarch64.zip'
55 | )
56 | })
57 |
58 | test('matches legacy windows x64 platform', () => {
59 | expect(selectArtifact(LEGACY_ARTIFACT_NAMES, 'win32', 'x64')).toBe(
60 | 'stylua-win64.zip'
61 | )
62 | })
63 |
64 | test('matches legacy macos x64 platform', () => {
65 | expect(selectArtifact(LEGACY_ARTIFACT_NAMES, 'darwin', 'x64')).toBe(
66 | 'stylua-macos.zip'
67 | )
68 | })
69 |
70 | test('matches legacy linux x64 platform', () => {
71 | expect(selectArtifact(LEGACY_ARTIFACT_NAMES, 'linux', 'x64')).toBe(
72 | 'stylua-linux.zip'
73 | )
74 | })
75 |
--------------------------------------------------------------------------------
/src/stylua.ts:
--------------------------------------------------------------------------------
1 | import * as core from '@actions/core'
2 | import {getOctokit} from '@actions/github'
3 | import semver from 'semver'
4 |
5 | interface GitHubAsset {
6 | name: string
7 | browser_download_url: string
8 | }
9 |
10 | interface GitHubRelease {
11 | tag_name: string
12 | assets: GitHubAsset[]
13 | }
14 |
15 | async function getReleases(token: string): Promise {
16 | const octokit = getOctokit(token)
17 | const {data: releases} = await octokit.rest.repos.listReleases({
18 | owner: 'JohnnyMorganz',
19 | repo: 'stylua'
20 | })
21 |
22 | // Sort by latest release first
23 | releases.sort((a, b) => semver.rcompare(a.tag_name, b.tag_name))
24 | return releases
25 | }
26 |
27 | function chooseRelease(
28 | version: string,
29 | releases: GitHubRelease[]
30 | ): GitHubRelease | undefined {
31 | if (version === '') {
32 | core.debug('No version provided, finding latest release version')
33 | } else if (version === 'latest') {
34 | version = ''
35 | }
36 | return releases.find(release => semver.satisfies(release.tag_name, version))
37 | }
38 |
39 | export type Matcher = (name: string) => boolean
40 |
41 | export const getAssetFilenamePatternForPlatform = (
42 | platform: NodeJS.Platform,
43 | machine: string
44 | ): RegExp => {
45 | let platformPattern
46 |
47 | switch (platform) {
48 | case 'win32':
49 | platformPattern = '(windows|win64)'
50 | break
51 | case 'linux':
52 | platformPattern = 'linux'
53 | break
54 | case 'darwin':
55 | platformPattern = 'macos'
56 | break
57 | default:
58 | throw new Error('platform not supported')
59 | }
60 |
61 | let archPattern
62 | switch (machine) {
63 | case 'arm64':
64 | archPattern = 'aarch64'
65 | break
66 | case 'x64':
67 | archPattern = 'x86_64'
68 | break
69 | default:
70 | archPattern = ''
71 | }
72 |
73 | return new RegExp(
74 | `stylua(-[\\dw\\-\\.]+)?-${platformPattern}(-${archPattern})?.zip`
75 | )
76 | }
77 |
78 | export const getFilenameMatcher = (
79 | platform: NodeJS.Platform,
80 | arch: string
81 | ): Matcher => {
82 | const pattern = getAssetFilenamePatternForPlatform(platform, arch)
83 | return name => pattern.test(name)
84 | }
85 |
86 | function chooseAsset(release: GitHubRelease): GitHubAsset | undefined {
87 | const matcher = getFilenameMatcher(process.platform, process.arch)
88 | return release.assets.find(asset => matcher(asset.name))
89 | }
90 |
91 | export default {
92 | getReleases,
93 | chooseRelease,
94 | chooseAsset
95 | }
96 |
--------------------------------------------------------------------------------
/test/needs_spaces.lua:
--------------------------------------------------------------------------------
1 | local x=1
2 |
--------------------------------------------------------------------------------
/test/sample.lua:
--------------------------------------------------------------------------------
1 | local x = 1
2 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "es6", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019' or 'ESNEXT'. */
4 | "module": "commonjs", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */
5 | "outDir": "./lib", /* Redirect output structure to the directory. */
6 | "rootDir": "./src", /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */
7 | "strict": true, /* Enable all strict type-checking options. */
8 | "noImplicitAny": true, /* Raise error on expressions and declarations with an implied 'any' type. */
9 | "esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */
10 | },
11 | "exclude": ["node_modules"]
12 | }
13 |
--------------------------------------------------------------------------------