19 Commits
1.0.3 ... 1.1.3

Author SHA1 Message Date
Shivam Mathur
4db45d6171 Merge pull request #14 from shivammathur/develop
1.1.3
2020-08-10 12:39:37 +05:30
Shivam Mathur
7045a9c4c7 Add cubrid to the lists
Update README

Bump version to 1.1.3
2020-08-10 12:22:10 +05:30
Shivam Mathur
506984d835 Merge pull request #13 from shivammathur/develop
1.1.2
2020-08-04 06:50:24 +05:30
Shivam Mathur
f94c56d97f Change PHP 8.0 prefix for linux
Update extension lists

Bump version to 1.1.2
2020-08-04 05:55:46 +05:30
Shivam Mathur
4309c25508 Merge pull request #12 from shivammathur/develop
Hotfix in 1.1.1
2020-07-18 22:16:55 +05:30
Shivam Mathur
7af896286c Update dependencies
Apply GHSA-p6mc-m468-83gw advisory to fix prototype pollution in lodash
2020-07-18 22:09:33 +05:30
Shivam Mathur
9666885116 Merge pull request #11 from shivammathur/develop
1.1.1
2020-06-19 10:37:03 +05:30
Shivam Mathur
7963f6b10a Bump version to 1.1.1 2020-06-19 10:27:23 +05:30
Shivam Mathur
0fe00bc9bd Update README 2020-06-03 17:26:02 +05:30
Shivam Mathur
1cc42c3174 Merge pull request #10 from shivammathur/develop
1.1.0
2020-06-03 17:22:37 +05:30
Shivam Mathur
4bb3575393 Bump version to 1.1.0 2020-06-03 17:12:35 +05:30
Shivam Mathur
44c50f8364 Update lists 2020-06-03 17:04:40 +05:30
Shivam Mathur
76f84c1a27 Merge pull request #9 from shivammathur/develop
1.0.6
2020-05-10 13:59:34 +05:30
Shivam Mathur
28ef0db7df Filter extensions marked for removal 2020-05-10 13:56:23 +05:30
Shivam Mathur
340bfd72bd Merge pull request #8 from shivammathur/develop
1.0.5
2020-04-10 00:59:29 +05:30
Shivam Mathur
f8f6d27d7e Bump version to 1.0.5 2020-04-10 00:24:25 +05:30
Shivam Mathur
767583b9f4 Reset key for PCOV on PHP8 on windows 2020-04-10 00:16:26 +05:30
Shivam Mathur
ac19b1282b Merge pull request #7 from shivammathur/develop
Bump version to 1.0.4
2020-03-18 13:18:25 +05:30
Shivam Mathur
88757fba3a Bump version to 1.0.4 2020-03-18 13:02:49 +05:30
50 changed files with 4492 additions and 1622 deletions

View File

@@ -1,7 +1,7 @@
{
"env": { "node": true, "jest": true },
"parser": "@typescript-eslint/parser",
"parserOptions": { "ecmaVersion": 2020, "sourceType": "module" },
"parserOptions": { "ecmaVersion": 2019, "sourceType": "module" },
"extends": [
"eslint:recommended",
"plugin:@typescript-eslint/eslint-recommended",

2
.github/FUNDING.yml vendored
View File

@@ -1,7 +1,5 @@
# These are supported funding model platforms
github: shivammathur
issuehunt: shivammathur
patreon: shivammathur
liberapay: shivammathur
custom: https://www.paypal.me/shivammathur

View File

@@ -1,23 +1,42 @@
---
name: Bug report
about: Create a report to help us improve
about: Nice, you found a bug!
title: ''
labels: ''
assignees: ''
labels: 'bug'
assignees: 'shivammathur'
---
**Describe the bug**
A clear and concise description of what the bug is.
<!-- Please describe the bug concisely. -->
**Version**
- [ ] I have checked releases and the bug exists in the latest patch version of `v1`.
- [ ] `v2`
- [ ] `v1`
**Runners**
<!-- Please mark the GitHub Action runner your workflow uses. -->
- [ ] GitHub Hosted
- [ ] Self Hosted
**Operating systems**
<!-- Please mention the operating systems your workflow uses. -->
**PHP versions**
<!-- Please mention the PHP versions your workflow uses. -->
**To Reproduce**
Please provide the GitHub Action `.yml` file.
<!-- Please provide the relevant steps of your workflow `.yml` file. -->
**Expected behavior**
A clear and concise description of what you expected to happen.
<!-- A clear and concise description of what you expected to happen. -->
**Screenshots**
If applicable, add screenshots to help explain your problem.
**Screenshots/Logs**
<!-- If applicable, add screenshots or logs to help explain your problem. -->
**Additional context**
Add any other context about the problem here.
<!-- Add any other context about the problem here. -->
**Are you willing to submit a PR?**
<!-- We accept pull requests targeting the develop branch. -->

View File

@@ -1,20 +1,26 @@
---
name: Feature request
about: Suggest an idea for this project
about: Suggest a new feature
title: ''
labels: ''
assignees: ''
labels: 'enhancement'
assignees: 'shivammathur'
---
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I want to improve [...]
**Describe the feature**
<!-- Please describe concisely the feature you want to add. -->
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Version**
- [ ] I have checked releases and the feature is missing in the latest patch version of `v1`.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Underlying issue**
<!-- Please describe the issue this would solve. -->
**Describe alternatives**
<!-- Please mention any alternative solutions you've considered. -->
**Additional context**
Add any other context or screenshots about the feature request here.
<!-- Add any other context or screenshots about the feature request here. -->
**Are you willing to submit a PR?**
<!-- We accept pull requests targeting the develop branch. -->

View File

@@ -7,14 +7,13 @@ labels: bug or enhancement
## A Pull Request should be associated with an Issue.
> We wish to have discussions in Issues. A single issue may be targeted by multiple PRs.
> If you're offering a new feature or fixing anything, we'd like to know beforehand in Issues,
> and potentially we'll be able to point development in a particular direction.
> If you're fixing a bug, adding a new feature or improving something please provide the details in Issues,
> so that the development can be pointed in the intended direction.
Related issue:
Related issue: <!-- Please link the related issue -->
> Further notes in [Contribution Guidelines](.github/CONTRIBUTING.md)
> Thank you! We are open to PRs, but please understand if for technical reasons we are unable to accept each and any PR
> Thank you for your contribution.
### Description
@@ -26,7 +25,12 @@ This PR [briefly explain what it does]
- [ ] I have run `npm run format` before the commit.
- [ ] I have run `npm run lint` before the commit.
- [ ] I have run `npm run release` before the commit.
- [ ] `npm test` returns with no unit test errors.
- [ ] `npm test` returns with no unit test errors and all code covered.
> In case this PR edits any scripts:
- [ ] I have checked the edited scripts for syntax.
- [ ] I have tested the changes in an integration test (If yes, provide workflow link).
<!--
- Please target the develop branch when submitting the pull request.

View File

@@ -1,33 +0,0 @@
---
name: 🐞 Bug Fix
about: You have a fix for a bug?
labels: bug
---
## A Pull Request should be associated with an Issue.
> We wish to have discussions in Issues. A single issue may be targeted by multiple PRs.
> If you're offering a new feature or fixing anything, we'd like to know beforehand in Issues,
> and potentially we'll be able to point development in a particular direction.
Related issue:
> Further notes in [Contribution Guidelines](.github/CONTRIBUTING.md)
> Thank you! We are open to PRs, but please understand if for technical reasons we are unable to accept each and any PR
### Description
This PR [briefly explain what it does]
> In case this PR introduced TypeScript/JavaScript code changes:
- [ ] I have written test cases for the changes in this pull request.
- [ ] I have run `npm run format` before the commit.
- [ ] I have run `npm run lint` before the commit.
- [ ] I have run `npm run release` before the commit.
- [ ] `npm test` returns with no unit test errors.
<!--
- Please target the develop branch when submitting the pull request.
-->

View File

@@ -1,33 +0,0 @@
---
name: ⚙ Improvement
about: You have some improvement to make cache-extensions better?
labels: enhancement
---
## A Pull Request should be associated with an Issue.
> We wish to have discussions in Issues. A single issue may be targeted by multiple PRs.
> If you're offering a new feature or fixing anything, we'd like to know beforehand in Issues,
> and potentially we'll be able to point development in a particular direction.
Related issue:
> Further notes in [Contribution Guidelines](.github/CONTRIBUTING.md)
> Thank you! We are open to PRs, but please understand if for technical reasons we are unable to accept each and any PR
### Description
This PR [briefly explain what it does]
> In case this PR introduced TypeScript/JavaScript code changes:
- [ ] I have written test cases for the changes in this pull request.
- [ ] I have run `npm run format` before the commit.
- [ ] I have run `npm run lint` before the commit.
- [ ] I have run `npm run release` before the commit.
- [ ] `npm test` returns with no unit test errors.
<!--
- Please target the develop branch when submitting the pull request.
-->

View File

@@ -1,33 +0,0 @@
---
name: 🎉 New Feature
about: You have implemented some neat idea that you want to make part of cache-extensions?
labels: enhancement
---
## A Pull Request should be associated with an Issue.
> We wish to have discussions in Issues. A single issue may be targeted by multiple PRs.
> If you're offering a new feature or fixing anything, we'd like to know beforehand in Issues,
> and potentially we'll be able to point development in a particular direction.
Related issue:
> Further notes in [Contribution Guidelines](.github/CONTRIBUTING.md)
> Thank you! We are open to PRs, but please understand if for technical reasons we are unable to accept each and any PR
### Description
This PR [briefly explain what it does]
> In case this PR introduced TypeScript/JavaScript code changes:
- [ ] I have written test cases for the changes in this pull request.
- [ ] I have run `npm run format` before the commit.
- [ ] I have run `npm run lint` before the commit.
- [ ] I have run `npm run release` before the commit.
- [ ] `npm test` returns with no unit test errors.
<!--
- Please target the develop branch when submitting the pull request.
-->

View File

@@ -1,11 +1,12 @@
{
"arrowParens": "avoid",
"bracketSpacing": false,
"endOfLine": "auto",
"parser": "typescript",
"printWidth": 80,
"tabWidth": 2,
"useTabs": false,
"semi": true,
"singleQuote": true,
"tabWidth": 2,
"trailingComma": "none",
"bracketSpacing": false,
"arrowParens": "avoid",
"parser": "typescript"
}
"useTabs": false
}

View File

@@ -14,9 +14,13 @@ Cache PHP extensions in [GitHub Actions](https://github.com/features/actions "Gi
- [PHP Support](#tada-php-support)
- [OS/Platform Support](#cloud-osplatform-support)
- [Usage](#memo-usage)
- [Inputs](#inputs)
- [Workflow](#workflow)
- [Thread Safe Setup](#thread-safe-setup)
- [License](#scroll-license)
- [Contributions](#1-contributions)
- [Support this project](#sparkling_heart-support-this-project)
- [Support This Project](#sparkling_heart-support-this-project)
- [Dependencies](#package-dependencies)
## :tada: PHP Support
@@ -31,27 +35,46 @@ Cache PHP extensions in [GitHub Actions](https://github.com/features/actions "Gi
|7.2|`Stable`|`Security fixes only`|
|7.3|`Stable`|`Active`|
|7.4|`Stable`|`Active`|
|8.0|`Experimental`|`In development`|
|8.0|`Nightly`|`In development`|
## :cloud: OS/Platform Support
|Virtual environment|matrix.operating-system|
|Virtual environment|YAML workflow label|
|--- |--- |
|Windows Server 2019|`windows-latest` or `windows-2019`|
|Ubuntu 20.04|`ubuntu-20.04`|
|Ubuntu 18.04|`ubuntu-latest` or `ubuntu-18.04`|
|Ubuntu 16.04|`ubuntu-16.04`|
|macOS X Catalina 10.15|`macos-latest` or `macOS-10.15`|
|macOS Catalina 10.15|`macos-latest` or `macOS-10.15`|
## :memo: Usage
Inputs supported by this GitHub Action.
Use this GitHub Action when the extensions you are adding in [setup-php](https://github.com/shivammathur/setup-php "setup-php GitHub Action") are installed and take a long time to setup. If you are using extensions which have the result `Installed and enabled` in the logs like `pecl` extensions on `Ubuntu` or extensions which have custom support, it is recommended to use this action to cache your extensions.
- php-version `required`
- extensions `required`
- key `required`
### Inputs
#### `php-version` (required)
- Specify the PHP version you want to setup.
- Accepts a `string`. For example `'7.4'`.
- See [PHP support](#tada-php-support) for supported PHP versions.
#### `extensions` (required)
- Specify the extensions you want to add or remove.
- Accepts a `string` in csv-format. For example `mbstring, , xdebug, :opcache`.
- Extensions prefixed with `:` are ignored.
#### `key` (required)
- Specify the key to identify the cache version.
- Accepts any `string`. For example `cache-v1`.
- Changing this would reset the cache.
See [action.yml](action.yml "Metadata for this GitHub Action") and usage below for more info.
### Workflow
> Cache extensions in a PHP workflow
```yaml
@@ -71,7 +94,7 @@ jobs:
uses: actions/checkout@v2
- name: Setup cache environment
id: cache-env
id: extcache
uses: shivammathur/cache-extensions@v1
with:
php-version: ${{ matrix.php-versions }}
@@ -79,11 +102,11 @@ jobs:
key: ${{ env.key }}
- name: Cache extensions
uses: actions/cache@v1
uses: actions/cache@v2
with:
path: ${{ steps.cache-env.outputs.dir }}
key: ${{ steps.cache-env.outputs.key }}
restore-keys: ${{ steps.cache-env.outputs.key }}
path: ${{ steps.extcache.outputs.dir }}
key: ${{ steps.extcache.outputs.key }}
restore-keys: ${{ steps.extcache.outputs.key }}
- name: Setup PHP
uses: shivammathur/setup-php@v2
@@ -92,6 +115,19 @@ jobs:
extensions: ${{ env.extensions }}
```
### Thread Safe Setup
If you setup both `TS` and `NTS` PHP versions on `Windows` in your workflow, please add `${{ env.phpts }}` to `key` and `restore-keys` inputs in `actions/cache` step in the above workflow to avoid conflicting cache.
```yaml
- name: Cache extensions
uses: actions/cache@v2
with:
path: ${{ steps.extcache.outputs.dir }}
key: ${{ steps.extcache.outputs.key }}-${{ env.phpts }}
restore-keys: ${{ steps.extcache.outputs.key }}-${{ env.phpts }}
```
## :scroll: License
The scripts and documentation in this project are released under the [MIT License](LICENSE "License for shivammathur/cache-extensions"). This project has multiple [dependencies](https://github.com/shivammathur/cache-extensions/network/dependencies "Dependencies for this PHP Action"). Their licenses can be found in their respective repositories.
@@ -100,11 +136,14 @@ The scripts and documentation in this project are released under the [MIT Licens
Contributions are welcome! See [Contributor's Guide](.github/CONTRIBUTING.md "shivammathur/cache-extensions contribution guide"). If you face any issues while using this or want to suggest a feature/improvement, create an issue [here](https://github.com/shivammathur/cache-extensions/issues "Issues reported").
## :sparkling_heart: Support this project
## :sparkling_heart: Support This Project
If this action helped you.
- Sponsor the project by subscribing on [Patreon](https://www.patreon.com/shivammathur "Shivam Mathur Patreon") or by contributing using [Paypal](https://www.paypal.me/shivammathur "Shivam Mathur PayPal").
- Please star the project and share it with the community.
- If you blog, write about your experience while using this action.
- I maintain this in my free time, please support me with a [Patreon](https://www.patreon.com/shivammathur "Shivam Mathur Patreon") subscription or a one time contribution using [Paypal](https://www.paypal.me/shivammathur "Shivam Mathur PayPal").
- If you need any help using this, please contact me using [Codementor](https://www.codementor.io/shivammathur "Shivam Mathur Codementor")
- If you blog, write about your experience of using this action.
## :package: Dependencies
- [Node.js dependencies](https://github.com/shivammathur/setup-php/network/dependencies "Node.js dependencies")

View File

@@ -1,4 +1,5 @@
import * as install from '../src/cache';
import * as cache from '../src/cache';
import * as utils from '../src/utils';
/**
* Mock cache.ts
@@ -6,8 +7,11 @@ import * as install from '../src/cache';
jest.mock('../src/cache', () => ({
run: jest.fn().mockImplementation(
async (): Promise<string> => {
const version: string = process.env['php-version'] || '';
const extensions: string = process.env['extensions'] || '';
let version: string = process.env['php-version'] || '';
version = version.length > 1 ? version.slice(0, 3) : version + '.0';
const extensions = await utils.filterExtensions(
process.env['extensions'] || ''
);
const key: string = process.env['key'] || '';
const script_path = 'extensions.sh';
@@ -22,10 +26,8 @@ jest.mock('../src/cache', () => ({
* Function to set the process.env
*
* @param version
* @param os
* @param extension_csv
* @param ini_values_csv
* @param coverage_driver
* @param extensions
* @param key
*/
function setEnv(
version: string | number,
@@ -40,15 +42,19 @@ function setEnv(
describe('Install', () => {
it('Test Run', async () => {
setEnv('7.0', 'xdebug, pcov', 'cache-v1');
// @ts-ignore
const script: string = await install.run();
const script: string = '' + (await cache.run());
expect(script).toContain('bash extensions.sh "xdebug, pcov" cache-v1 7.0');
});
it('Test Run', async () => {
setEnv('7.4', 'xdebug, zip', 'cache-v2');
// @ts-ignore
const script: string = await install.run();
const script: string = '' + (await cache.run());
expect(script).toContain('bash extensions.sh "xdebug, zip" cache-v2 7.4');
});
it('Test Run', async () => {
setEnv('7.4', 'xdebug, :zip', 'cache-v2');
const script: string = '' + (await cache.run());
expect(script).toContain('bash extensions.sh "xdebug" cache-v2 7.4');
});
});

View File

@@ -1,5 +1,3 @@
import * as fs from 'fs';
import * as path from 'path';
import * as utils from '../src/utils';
jest.mock('@actions/core', () => ({
@@ -19,4 +17,9 @@ describe('Utils tests', () => {
);
expect(await utils.getInput('DoesNotExist', false)).toBe('');
});
it('checking filterExtensions', async () => {
expect(await utils.filterExtensions('a,:b,c')).toBe('a,c');
expect(await utils.filterExtensions('a, :b, c')).toBe('a, c');
});
});

203
dist/index.js vendored
View File

@@ -19,7 +19,13 @@ module.exports =
/******/ };
/******/
/******/ // Execute the module function
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/ var threw = true;
/******/ try {
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/ threw = false;
/******/ } finally {
/******/ if(threw) delete installedModules[moduleId];
/******/ }
/******/
/******/ // Flag the module as loaded
/******/ module.l = true;
@@ -354,13 +360,20 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
result["default"] = mod;
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
const os = __webpack_require__(87);
const events = __webpack_require__(614);
const child = __webpack_require__(129);
const path = __webpack_require__(622);
const io = __webpack_require__(1);
const ioUtil = __webpack_require__(672);
const os = __importStar(__webpack_require__(87));
const events = __importStar(__webpack_require__(614));
const child = __importStar(__webpack_require__(129));
const path = __importStar(__webpack_require__(622));
const io = __importStar(__webpack_require__(1));
const ioUtil = __importStar(__webpack_require__(672));
/* eslint-disable @typescript-eslint/unbound-method */
const IS_WINDOWS = process.platform === 'win32';
/*
@@ -804,6 +817,12 @@ class ToolRunner extends events.EventEmitter {
resolve(exitCode);
}
});
if (this.options.input) {
if (!cp.stdin) {
throw new Error('child process missing stdin');
}
cp.stdin.end(this.options.input);
}
});
});
}
@@ -953,23 +972,27 @@ module.exports = require("child_process");
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
result["default"] = mod;
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.filterExtensions = exports.getInput = void 0;
const core = __importStar(__webpack_require__(470));
/**
* Function to get inputs from both with and env annotations.
@@ -977,19 +1000,31 @@ const core = __importStar(__webpack_require__(470));
* @param name
* @param mandatory
*/
function getInput(name, mandatory) {
return __awaiter(this, void 0, void 0, function* () {
const input = process.env[name];
switch (input) {
case '':
case undefined:
return core.getInput(name, { required: mandatory });
default:
return input;
}
});
async function getInput(name, mandatory) {
const input = process.env[name];
switch (input) {
case '':
case undefined:
return core.getInput(name, { required: mandatory });
default:
return input;
}
}
exports.getInput = getInput;
/**
* Function to filter extensions
*
* @param extension_csv
*/
async function filterExtensions(extension_csv) {
return extension_csv
.split(',')
.filter(extension => {
return extension.trim()[0] != ':';
})
.join(',');
}
exports.filterExtensions = filterExtensions;
/***/ }),
@@ -1068,14 +1103,28 @@ class Command {
return cmdStr;
}
}
/**
* Sanitizes an input into a string so it can be passed into issueCommand safely
* @param input input to sanitize into a string
*/
function toCommandValue(input) {
if (input === null || input === undefined) {
return '';
}
else if (typeof input === 'string' || input instanceof String) {
return input;
}
return JSON.stringify(input);
}
exports.toCommandValue = toCommandValue;
function escapeData(s) {
return (s || '')
return toCommandValue(s)
.replace(/%/g, '%25')
.replace(/\r/g, '%0D')
.replace(/\n/g, '%0A');
}
function escapeProperty(s) {
return (s || '')
return toCommandValue(s)
.replace(/%/g, '%25')
.replace(/\r/g, '%0D')
.replace(/\n/g, '%0A')
@@ -1131,11 +1180,13 @@ var ExitCode;
/**
* Sets env variable for this action and future actions in the job
* @param name the name of the variable to set
* @param val the value of the variable
* @param val the value of the variable. Non-string values will be converted to a string via JSON.stringify
*/
// eslint-disable-next-line @typescript-eslint/no-explicit-any
function exportVariable(name, val) {
process.env[name] = val;
command_1.issueCommand('set-env', { name }, val);
const convertedVal = command_1.toCommandValue(val);
process.env[name] = convertedVal;
command_1.issueCommand('set-env', { name }, convertedVal);
}
exports.exportVariable = exportVariable;
/**
@@ -1174,12 +1225,22 @@ exports.getInput = getInput;
* Sets the value of an output.
*
* @param name name of the output to set
* @param value value to store
* @param value value to store. Non-string values will be converted to a string via JSON.stringify
*/
// eslint-disable-next-line @typescript-eslint/no-explicit-any
function setOutput(name, value) {
command_1.issueCommand('set-output', { name }, value);
}
exports.setOutput = setOutput;
/**
* Enables or disables the echoing of commands into stdout for the rest of the step.
* Echoing is disabled by default if ACTIONS_STEP_DEBUG is not set.
*
*/
function setCommandEcho(enabled) {
command_1.issue('echo', enabled ? 'on' : 'off');
}
exports.setCommandEcho = setCommandEcho;
//-----------------------------------------------------------------------
// Results
//-----------------------------------------------------------------------
@@ -1213,18 +1274,18 @@ function debug(message) {
exports.debug = debug;
/**
* Adds an error issue
* @param message error issue message
* @param message error issue message. Errors will be converted to string via toString()
*/
function error(message) {
command_1.issue('error', message);
command_1.issue('error', message instanceof Error ? message.toString() : message);
}
exports.error = error;
/**
* Adds an warning issue
* @param message warning issue message
* @param message warning issue message. Errors will be converted to string via toString()
*/
function warning(message) {
command_1.issue('warning', message);
command_1.issue('warning', message instanceof Error ? message.toString() : message);
}
exports.warning = warning;
/**
@@ -1282,8 +1343,9 @@ exports.group = group;
* Saves state for current action, the state can only be retrieved by this action's post job execution.
*
* @param name name of the state to store
* @param value value to store
* @param value value to store. Non-string values will be converted to a string via JSON.stringify
*/
// eslint-disable-next-line @typescript-eslint/no-explicit-any
function saveState(name, value) {
command_1.issueCommand('save-state', { name }, value);
}
@@ -1530,23 +1592,27 @@ function isUnixExecutable(stats) {
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
result["default"] = mod;
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.run = void 0;
const exec_1 = __webpack_require__(986);
const core = __importStar(__webpack_require__(470));
const path = __importStar(__webpack_require__(622));
@@ -1554,20 +1620,18 @@ const utils = __importStar(__webpack_require__(163));
/**
* Run the script
*/
function run() {
return __awaiter(this, void 0, void 0, function* () {
try {
let version = yield utils.getInput('php-version', true);
version = version.length > 1 ? version.slice(0, 3) : version + '.0';
const extensions = yield utils.getInput('extensions', true);
const key = yield utils.getInput('key', true);
const script_path = path.join(__dirname, '../src/extensions.sh');
yield exec_1.exec('bash ' + script_path + ' "' + extensions + '" ' + key + ' ' + version);
}
catch (error) {
core.setFailed(error.message);
}
});
async function run() {
try {
let version = await utils.getInput('php-version', true);
version = version.length > 1 ? version.slice(0, 3) : version + '.0';
const extensions = await utils.filterExtensions(await utils.getInput('extensions', true));
const key = await utils.getInput('key', true);
const script_path = path.join(__dirname, '../src/extensions.sh');
await exec_1.exec('bash ' + script_path + ' "' + extensions + '" ' + key + ' ' + version);
}
catch (error) {
core.setFailed(error.message);
}
}
exports.run = run;
// call the run function
@@ -1597,8 +1661,15 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
result["default"] = mod;
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
const tr = __webpack_require__(9);
const tr = __importStar(__webpack_require__(9));
/**
* Exec a command.
* Output will be streamed to the live console.

3985
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
{
"name": "cache-extensions",
"version": "1.0.3",
"version": "1.1.3",
"private": false,
"description": "Cache extensions in GitHub Actions",
"main": "dist/index.js",
@@ -24,31 +24,31 @@
"author": "shivammathur",
"license": "MIT",
"dependencies": {
"@actions/core": "^1.2.3",
"@actions/exec": "^1.0.3"
"@actions/core": "^1.2.4",
"@actions/exec": "^1.0.4"
},
"devDependencies": {
"@types/jest": "^25.1.4",
"@types/node": "^13.9.0",
"@typescript-eslint/eslint-plugin": "^2.22.0",
"@typescript-eslint/parser": "^2.22.0",
"@zeit/ncc": "^0.21.1",
"eslint": "^6.8.0",
"eslint-config-prettier": "^6.10.0",
"eslint-plugin-import": "^2.20.1",
"eslint-plugin-jest": "^23.8.2",
"eslint-plugin-prettier": "^3.1.2",
"husky": "^4.2.3",
"jest": "^25.1.0",
"jest-circus": "^25.1.0",
"prettier": "^1.19.1",
"ts-jest": "^25.2.1",
"typescript": "^3.8.3"
"@types/jest": "^26.0.9",
"@types/node": "^14.0.27",
"@typescript-eslint/eslint-plugin": "^3.8.0",
"@typescript-eslint/parser": "^3.8.0",
"@zeit/ncc": "^0.22.3",
"eslint": "^7.6.0",
"eslint-config-prettier": "^6.11.0",
"eslint-plugin-import": "^2.22.0",
"eslint-plugin-jest": "^23.20.0",
"eslint-plugin-prettier": "^3.1.4",
"husky": "^4.2.5",
"jest": "^26.2.2",
"jest-circus": "^26.2.2",
"prettier": "^2.0.5",
"ts-jest": "^26.1.4",
"typescript": "^3.9.7"
},
"husky": {
"skipCI": true,
"hooks": {
"pre-commit": "npm run format && npm run lint && npm run build && npm run release"
"pre-commit": "npm run format && npm run lint && npm run test && npm run build && npm run release"
}
}
}

View File

@@ -10,7 +10,9 @@ export async function run(): Promise<void> {
try {
let version: string = await utils.getInput('php-version', true);
version = version.length > 1 ? version.slice(0, 3) : version + '.0';
const extensions: string = await utils.getInput('extensions', true);
const extensions = await utils.filterExtensions(
await utils.getInput('extensions', true)
);
const key: string = await utils.getInput('key', true);
const script_path: string = path.join(__dirname, '../src/extensions.sh');
await exec(

View File

@@ -6,7 +6,7 @@ linux_extension_dir() {
elif [[ "$version" =~ $old_versions_linux ]]; then
echo "/usr/lib/php5/$apiv"
elif [ "$version" = "8.0" ]; then
echo "/home/runner/php/8.0/lib/php/extensions/no-debug-non-zts-$apiv"
echo "/usr/local/php/8.0/lib/php/extensions/no-debug-non-zts-$apiv"
else
echo "/usr/lib/php/$apiv"
fi
@@ -87,6 +87,9 @@ elif [ "$os" = "Darwin" ]; then
else
os="Windows"
dir='C:\\tools\\php\\ext'
if [ "$version" = "8.0" ] && [[ "$extensions" == *pcov* ]]; then
key="$key-pcov_20200410"
fi
fi
key="$os"-ext-"$version"-$(echo -n "$extensions-$key" | openssl dgst -sha256 | cut -d ' ' -f 2)
echo "::set-output name=dir::$dir"

View File

@@ -5,6 +5,7 @@ bcmath
bz2
Core
ctype
cubrid
curl
date
dom
@@ -16,6 +17,7 @@ ftp
gd
hash
iconv
ioncube
intl
json
libxml
@@ -31,6 +33,8 @@ pcntl
pcov
pcre
PDO
oci8
PDO_OCI
pdo_mysql
pdo_sqlite
Phar

View File

@@ -6,6 +6,7 @@ bz2
calendar
Core
ctype
cubrid
curl
date
dba
@@ -20,6 +21,7 @@ gettext
hash
iconv
imagick
ioncube
intl
json
libxml
@@ -34,6 +36,8 @@ pcntl
pcov
pcre
PDO
oci8
PDO_OCI
pdo_mysql
pdo_pgsql
pdo_sqlite

View File

@@ -6,6 +6,7 @@ bz2
calendar
Core
ctype
cubrid
curl
date
dba
@@ -20,6 +21,7 @@ gettext
hash
iconv
imagick
ioncube
intl
json
libxml
@@ -34,6 +36,8 @@ pcntl
pcov
pcre
PDO
oci8
PDO_OCI
pdo_mysql
pdo_pgsql
pdo_sqlite

View File

@@ -5,6 +5,7 @@ apcu
calendar
Core
ctype
cubrid
curl
date
dom
@@ -17,6 +18,7 @@ gettext
hash
iconv
igbinary
ioncube
intl
json
libxml

View File

@@ -4,6 +4,7 @@ apcu
calendar
Core
ctype
cubrid
curl
date
dom
@@ -15,6 +16,7 @@ gettext
hash
iconv
igbinary
ioncube
intl
json
libxml

View File

@@ -6,6 +6,7 @@ bz2
calendar
Core
ctype
cubrid
curl
date
dba
@@ -23,6 +24,7 @@ iconv
igbinary
imap
interbase
ioncube
intl
json
ldap
@@ -42,6 +44,8 @@ pcre
PDO
pdo_dblib
PDO_Firebird
oci8
PDO_OCI
pdo_mysql
PDO_ODBC
pdo_pgsql

View File

@@ -6,6 +6,7 @@ bz2
calendar
Core
ctype
cubrid
curl
date
dba
@@ -23,6 +24,7 @@ iconv
igbinary
imap
interbase
ioncube
intl
json
ldap
@@ -41,6 +43,8 @@ pcre
PDO
pdo_dblib
PDO_Firebird
oci8
PDO_OCI
pdo_mysql
PDO_ODBC
pdo_pgsql

View File

@@ -6,6 +6,7 @@ bz2
calendar
Core
ctype
cubrid
curl
date
dba
@@ -23,6 +24,7 @@ iconv
igbinary
imap
interbase
ioncube
intl
json
ldap
@@ -41,6 +43,8 @@ pcre
PDO
pdo_dblib
PDO_Firebird
oci8
PDO_OCI
pdo_mysql
PDO_ODBC
pdo_pgsql

View File

@@ -6,6 +6,7 @@ bz2
calendar
Core
ctype
cubrid
curl
date
dba
@@ -23,6 +24,7 @@ hash
iconv
igbinary
imap
ioncube
intl
json
ldap
@@ -41,6 +43,8 @@ pcre
PDO
pdo_dblib
PDO_Firebird
oci8
PDO_OCI
pdo_mysql
PDO_ODBC
pdo_pgsql

View File

@@ -1,18 +1,24 @@
[PHP Modules]
bcmath
bz2
calendar
Core
ctype
curl
date
dom
enchant
exif
FFI
fileinfo
filter
ftp
gd
gettext
gmp
hash
iconv
ioncube
intl
json
libxml
@@ -21,12 +27,18 @@ mysqli
mysqlnd
openssl
pcntl
pcov
pcre
PDO
oci8
PDO_OCI
pdo_mysql
pdo_pgsql
pdo_sqlite
pgsql
Phar
posix
pspell
readline
Reflection
session
@@ -37,6 +49,7 @@ sockets
SPL
sqlite3
standard
sysvmsg
sysvsem
sysvshm
tidy
@@ -55,4 +68,5 @@ blackfire
[Zend Modules]
Zend OPcache
Xdebug

753
src/lists/focal-libs Normal file
View File

@@ -0,0 +1,753 @@
lib32gcc-s1
lib32gcc1
lib32stdc++6
lib32z1
libaccountsservice0
libacl1
libaio1
libapparmor1
libappindicator3-1
libappstream4
libapr1
libaprutil1
libapt-pkg6.0
libarchive13
libargon2-1
libaria2-0
libasan4
libasan5
libasn1-8-heimdal
libasound2-data
libasound2
libassuan0
libatk-bridge2.0-0
libatk1.0-0
libatk1.0-data
libatm1
libatomic1
libatspi2.0-0
libattr1
libaudit-common
libaudit1
libauthen-sasl-perl
libavahi-client3
libavahi-common-data
libavahi-common3
libbinutils
libblkid-dev
libblkid1
libboost-context1.71.0
libboost-filesystem1.71.0
libboost-program-options1.71.0
libboost-thread1.71.0
libbrotli1
libbsd0
libburn4
libbz2-1.0
libbz2-dev
libc-ares2
libc-bin
libc-client2007e
libc-dev-bin
libc6-dev
libc6-i386
libc6
libcairo-gobject2
libcairo-script-interpreter2
libcairo2-dev
libcairo2
libcanberra0
libcap-ng0
libcap2-bin
libcap2
libcbor0.6
libcc1-0
libcgi-fast-perl
libcgi-pm-perl
libcgroup1
libcilkrts5
libclang-common-6.0-dev
libclang-common-8-dev
libclang-common-9-dev
libclang-cpp9
libclang1-6.0
libclang1-8
libcolord2
libcom-err2
libcrypt-dev
libcrypt1
libcryptsetup12
libctf-nobfd0
libctf0
libcups2
libcurl3-gnutls
libcurl4
libdata-dump-perl
libdatrie1
libdb5.3
libdbus-1-3
libdbus-glib-1-2
libdbusmenu-glib4
libdbusmenu-gtk3-4
libdconf1
libdebconfclient0
libdevmapper-event1.02.1
libdevmapper1.02.1
libdjvulibre-dev
libdjvulibre-text
libdjvulibre21
libdns-export1109
libdpkg-perl
libdrm-amdgpu1
libdrm-common
libdrm-intel1
libdrm-nouveau2
libdrm-radeon1
libdrm2
libdw1
libdwarf1
libeatmydata1
libedit2
libefiboot1
libefivar1
libelf1
libencode-locale-perl
libepoxy0
liberror-perl
libestr0
libevent-2.1-7
libevent-core-2.1-7
libevent-pthreads-2.1-7
libexif-dev
libexif12
libexpat1-dev
libexpat1
libext2fs2
libfakeroot
libfastjson4
libfcgi-perl
libfdisk1
libffi-dev
libffi7
libfftw3-double3
libfido2-1
libfile-basedir-perl
libfile-desktopentry-perl
libfile-listing-perl
libfile-mimeinfo-perl
libfl2
libfont-afm-perl
libfontconfig1-dev
libfontconfig1
libfontenc1
libfreetype-dev
libfreetype6-dev
libfreetype6
libfribidi0
libfuse2
libfwupd2
libfwupdplugin1
libgbm-dev
libgbm1
libgc1c2
libgcab-1.0-0
libgcc-7-dev
libgcc-8-dev
libgcc-9-dev
libgcc-s1
libgconf-2-4
libgcrypt20
libgdbm-compat4
libgdbm6
libgdiplus
libgdk-pixbuf2.0-0
libgdk-pixbuf2.0-bin
libgdk-pixbuf2.0-common
libgdk-pixbuf2.0-dev
libgflags2.2
libgfortran-8-dev
libgfortran-9-dev
libgfortran5
libgif7
libgirepository-1.0-1
libgl1-mesa-dri
libgl1
libglapi-mesa
libglib2.0-0
libglib2.0-bin
libglib2.0-data
libglib2.0-dev-bin
libglib2.0-dev
libglvnd0
libglx-mesa0
libglx0
libgmp-dev
libgmp10
libgmpxx4ldbl
libgnutls30
libgomp1
libgoogle-glog0v5
libgpg-error0
libgpgme11
libgpm2
libgraphite2-3
libgs9-common
libgs9
libgssapi-krb5-2
libgssapi3-heimdal
libgstreamer1.0-0
libgtk-3-0
libgtk-3-common
libgudev-1.0-0
libgusb2
libharfbuzz0b
libhavege1
libhcrypto4-heimdal
libheimbase1-heimdal
libheimntlm0-heimdal
libhogweed5
libhtml-form-perl
libhtml-format-perl
libhtml-parser-perl
libhtml-tagset-perl
libhtml-template-perl
libhtml-tree-perl
libhttp-cookies-perl
libhttp-daemon-perl
libhttp-date-perl
libhttp-message-perl
libhttp-negotiate-perl
libhx509-5-heimdal
libice-dev
libice6
libicu-dev
libicu66
libidn11
libidn2-0
libijs-0.35
libilmbase-dev
libilmbase24
libio-html-perl
libio-socket-ssl-perl
libio-stringy-perl
libip4tc2
libip6tc2
libipc-system-simple-perl
libisc-export1105
libisl22
libisns0
libisoburn1
libisofs6
libitm1
libjbig-dev
libjbig0
libjbig2dec0
libjemalloc2
libjpeg-dev
libjpeg-turbo8-dev
libjpeg-turbo8
libjpeg8-dev
libjpeg8
libjq1
libjs-jquery
libjs-xmlextras
libjson-c4
libjson-glib-1.0-0
libjson-glib-1.0-common
libjsoncpp1
libjte2
libk5crypto3
libkeyutils1
libklibc
libkmod2
libkrb5-26-heimdal
libkrb5-3
libkrb5support0
libksba8
liblcms2-2
liblcms2-dev
libldap-2.4-2
libldap-common
liblldb-6.0-dev
liblldb-6.0
liblldb-8
liblldb-9
libllvm6.0
libllvm8
libllvm9
liblmdb0
liblocale-gettext-perl
liblqr-1-0-dev
liblqr-1-0
liblsan0
libltdl-dev
libltdl7
liblua5.2-0
liblvm2cmd2.03
liblwp-mediatypes-perl
liblwp-protocol-https-perl
liblz4-1
liblzma-dev
liblzma5
liblzo2-2
libmagic-dev
libmagic-mgc
libmagic1
libmagickcore-6-arch-config
libmagickcore-6-headers
libmagickcore-6.q16-6-extra
libmagickcore-6.q16-6
libmagickcore-6.q16-dev
libmagickcore-dev
libmagickwand-6-headers
libmagickwand-6.q16-6
libmagickwand-6.q16-dev
libmagickwand-dev
libmailtools-perl
libmaxminddb0
libmcrypt4
libmecab2
libmemcached11
libmnl0
libmono-2.0-1
libmono-2.0-dev
libmono-accessibility4.0-cil
libmono-cairo4.0-cil
libmono-cecil-private-cil
libmono-cil-dev
libmono-codecontracts4.0-cil
libmono-compilerservices-symbolwriter4.0-cil
libmono-corlib4.5-cil
libmono-cscompmgd0.0-cil
libmono-csharp4.0c-cil
libmono-custommarshalers4.0-cil
libmono-data-tds4.0-cil
libmono-db2-1.0-cil
libmono-debugger-soft4.0a-cil
libmono-http4.0-cil
libmono-i18n-cjk4.0-cil
libmono-i18n-mideast4.0-cil
libmono-i18n-other4.0-cil
libmono-i18n-rare4.0-cil
libmono-i18n-west4.0-cil
libmono-i18n4.0-all
libmono-i18n4.0-cil
libmono-ldap4.0-cil
libmono-management4.0-cil
libmono-messaging-rabbitmq4.0-cil
libmono-messaging4.0-cil
libmono-microsoft-build-engine4.0-cil
libmono-microsoft-build-framework4.0-cil
libmono-microsoft-build-tasks-v4.0-4.0-cil
libmono-microsoft-build-utilities-v4.0-4.0-cil
libmono-microsoft-build4.0-cil
libmono-microsoft-csharp4.0-cil
libmono-microsoft-visualc10.0-cil
libmono-microsoft-web-infrastructure1.0-cil
libmono-oracle4.0-cil
libmono-parallel4.0-cil
libmono-peapi4.0a-cil
libmono-posix4.0-cil
libmono-profiler
libmono-rabbitmq4.0-cil
libmono-relaxng4.0-cil
libmono-security4.0-cil
libmono-sharpzip4.84-cil
libmono-simd4.0-cil
libmono-smdiagnostics0.0-cil
libmono-sqlite4.0-cil
libmono-system-componentmodel-composition4.0-cil
libmono-system-componentmodel-dataannotations4.0-cil
libmono-system-configuration-install4.0-cil
libmono-system-configuration4.0-cil
libmono-system-core4.0-cil
libmono-system-data-datasetextensions4.0-cil
libmono-system-data-entity4.0-cil
libmono-system-data-linq4.0-cil
libmono-system-data-services-client4.0-cil
libmono-system-data-services4.0-cil
libmono-system-data4.0-cil
libmono-system-deployment4.0-cil
libmono-system-design4.0-cil
libmono-system-drawing-design4.0-cil
libmono-system-drawing4.0-cil
libmono-system-dynamic4.0-cil
libmono-system-enterpriseservices4.0-cil
libmono-system-identitymodel-selectors4.0-cil
libmono-system-identitymodel4.0-cil
libmono-system-io-compression-filesystem4.0-cil
libmono-system-io-compression4.0-cil
libmono-system-json-microsoft4.0-cil
libmono-system-json4.0-cil
libmono-system-ldap-protocols4.0-cil
libmono-system-ldap4.0-cil
libmono-system-management4.0-cil
libmono-system-messaging4.0-cil
libmono-system-net-http-formatting4.0-cil
libmono-system-net-http-webrequest4.0-cil
libmono-system-net-http4.0-cil
libmono-system-net4.0-cil
libmono-system-numerics-vectors4.0-cil
libmono-system-numerics4.0-cil
libmono-system-reactive-core2.2-cil
libmono-system-reactive-debugger2.2-cil
libmono-system-reactive-experimental2.2-cil
libmono-system-reactive-interfaces2.2-cil
libmono-system-reactive-linq2.2-cil
libmono-system-reactive-observable-aliases0.0-cil
libmono-system-reactive-platformservices2.2-cil
libmono-system-reactive-providers2.2-cil
libmono-system-reactive-runtime-remoting2.2-cil
libmono-system-reactive-windows-forms2.2-cil
libmono-system-reactive-windows-threading2.2-cil
libmono-system-reflection-context4.0-cil
libmono-system-runtime-caching4.0-cil
libmono-system-runtime-durableinstancing4.0-cil
libmono-system-runtime-serialization-formatters-soap4.0-cil
libmono-system-runtime-serialization4.0-cil
libmono-system-runtime4.0-cil
libmono-system-security4.0-cil
libmono-system-servicemodel-activation4.0-cil
libmono-system-servicemodel-discovery4.0-cil
libmono-system-servicemodel-internals0.0-cil
libmono-system-servicemodel-routing4.0-cil
libmono-system-servicemodel-web4.0-cil
libmono-system-servicemodel4.0a-cil
libmono-system-serviceprocess4.0-cil
libmono-system-threading-tasks-dataflow4.0-cil
libmono-system-transactions4.0-cil
libmono-system-web-abstractions4.0-cil
libmono-system-web-applicationservices4.0-cil
libmono-system-web-dynamicdata4.0-cil
libmono-system-web-extensions-design4.0-cil
libmono-system-web-extensions4.0-cil
libmono-system-web-http-selfhost4.0-cil
libmono-system-web-http-webhost4.0-cil
libmono-system-web-http4.0-cil
libmono-system-web-mobile4.0-cil
libmono-system-web-mvc3.0-cil
libmono-system-web-razor2.0-cil
libmono-system-web-regularexpressions4.0-cil
libmono-system-web-routing4.0-cil
libmono-system-web-services4.0-cil
libmono-system-web-webpages-deployment2.0-cil
libmono-system-web-webpages-razor2.0-cil
libmono-system-web-webpages2.0-cil
libmono-system-web4.0-cil
libmono-system-windows-forms-datavisualization4.0a-cil
libmono-system-windows-forms4.0-cil
libmono-system-windows4.0-cil
libmono-system-workflow-activities4.0-cil
libmono-system-workflow-componentmodel4.0-cil
libmono-system-workflow-runtime4.0-cil
libmono-system-xaml4.0-cil
libmono-system-xml-linq4.0-cil
libmono-system-xml-serialization4.0-cil
libmono-system-xml4.0-cil
libmono-system4.0-cil
libmono-tasklets4.0-cil
libmono-webbrowser4.0-cil
libmono-webmatrix-data4.0-cil
libmono-windowsbase4.0-cil
libmono-xbuild-tasks4.0-cil
libmonoboehm-2.0-1
libmonosgen-2.0-1
libmonosgen-2.0-dev
libmount-dev
libmount1
libmpc3
libmpdec2
libmpfr6
libmpx2
libmspack0
libmysqlclient-dev
libmysqlclient21
libncurses-dev
libncurses5
libncurses6
libncursesw5
libncursesw6
libnet-dbus-perl
libnet-http-perl
libnet-smtp-ssl-perl
libnet-ssleay-perl
libnetfilter-conntrack3
libnetplan0
libnettle7
libnewt0.52
libnfnetlink0
libnftnl11
libnghttp2-14
libnorm1
libnotify4
libnpth0
libnspr4
libnss-systemd
libnss3
libntfs-3g883
libnuma1
libobjc-8-dev
libobjc-9-dev
libobjc4
libogg0
libomp-9-dev
libomp5-9
libonig5
libopenexr-dev
libopenexr24
libopenjp2-7
libp11-kit0
libpackagekit-glib2-18
libpam-cap
libpam-modules-bin
libpam-modules
libpam-runtime
libpam-systemd
libpam0g
libpango-1.0-0
libpangocairo-1.0-0
libpangoft2-1.0-0
libpaper-utils
libpaper1
libparted2
libpcap0.8
libpci3
libpciaccess0
libpcre16-3
libpcre2-16-0
libpcre2-32-0
libpcre2-8-0
libpcre2-dev
libpcre2-posix2
libpcre3-dev
libpcre32-3
libpcre3
libpcrecpp0v5
libpcsclite1
libperl5.30
libpfm4
libpgm-5.2-0
libpipeline1
libpixman-1-0
libpixman-1-dev
libplymouth5
libpng-dev
libpng16-16
libpolkit-agent-1-0
libpolkit-gobject-1-0
libpopt0
libpq-dev
libpq5
libprocps8
libproxy1v5
libpsl5
libpthread-stubs0-dev
libpython2-stdlib
libpython2.7-minimal
libpython2.7-stdlib
libpython2.7
libpython3-dev
libpython3-stdlib
libpython3.8-dev
libpython3.8-minimal
libpython3.8-stdlib
libpython3.8
libquadmath0
librabbitmq4
libre2-5
libreadline5
libreadline8
librest-0.7-0
libroken18-heimdal
librpm8
librpmbuild8
librpmio8
librpmsign8
librsvg2-2
librsvg2-common
librsvg2-dev
librtmp1
libruby2.7
libsasl2-2
libsasl2-modules-db
libsasl2-modules
libsctp1
libseccomp2
libsecret-1-0
libsecret-1-dev
libsecret-common
libselinux1-dev
libselinux1
libsemanage-common
libsemanage1
libsensors-config
libsensors5
libsepol1-dev
libsepol1
libserf-1-1
libsgutils2-2
libsigsegv2
libslang2
libslirp0
libsm-dev
libsm6
libsmartcols1
libsmbios-c2
libsnmp-base
libsnmp35
libsodium23
libsoup-gnome2.4-1
libsoup2.4-1
libsqlite3-0
libss2
libssh-4
libssh2-1
libssl-dev
libssl1.1
libstdc++-7-dev
libstdc++-8-dev
libstdc++-9-dev
libstdc++6
libstemmer0d
libsvn1
libsystemd0
libtalloc2
libtasn1-6
libtbb2
libtcl8.6
libtdb1
libtevent0
libtext-charwidth-perl
libtext-iconv-perl
libtext-wrapi18n-perl
libthai-data
libthai0
libtie-ixhash-perl
libtiff-dev
libtiff5
libtiffxx5
libtimedate-perl
libtinfo-dev
libtinfo5
libtinfo6
libtk8.6
libtry-tiny-perl
libtsan0
libtss2-esys0
libu2f-udev
libubsan0
libubsan1
libuchardet0
libucl1
libudev1
libunistring2
libunwind8
liburcu6
liburi-perl
libusb-1.0-0
libutempter0
libutf8proc2
libuuid1
libuv1
libvorbis0a
libvorbisfile3
libvpx6
libvulkan1
libwayland-client0
libwayland-cursor0
libwayland-egl1
libwayland-server0
libwbclient0
libwebp6
libwebpmux3
libwind0-heimdal
libwmf-dev
libwmf0.2-7
libwrap0
libwww-perl
libwww-robotrules-perl
libwxbase3.0-0v5
libwxgtk3.0-gtk3-0v5
libx11-6
libx11-data
libx11-dev
libx11-protocol-perl
libx11-xcb1
libxau-dev
libxau6
libxaw7
libxcb-dri2-0
libxcb-dri3-0
libxcb-glx0
libxcb-present0
libxcb-render0-dev
libxcb-render0
libxcb-shape0
libxcb-shm0-dev
libxcb-shm0
libxcb-sync1
libxcb1-dev
libxcb1
libxcomposite1
libxcursor1
libxdamage1
libxdmcp-dev
libxdmcp6
libxext-dev
libxext6
libxfixes3
libxfont2
libxft-dev
libxft2
libxi6
libxinerama1
libxkbcommon0
libxkbfile-dev
libxkbfile1
libxml-parser-perl
libxml-twig-perl
libxml-xpathengine-perl
libxml2-dev
libxml2
libxmlb1
libxmlsec1-openssl
libxmlsec1
libxmu6
libxmuu1
libxpm4
libxrandr2
libxrender-dev
libxrender1
libxshmfence1
libxslt1.1
libxss1
libxt-dev
libxt6
libxtables12
libxtst6
libxv1
libxxf86dga1
libxxf86vm1
libyaml-0-2
libz3-4
libz3-dev
libzmq5
libzstd1
linux-azure-cloud-tools-5.4.0-1012
linux-azure-headers-5.4.0-1012
linux-azure-tools-5.4.0-1012
linux-azure
linux-base-sgx
linux-base
linux-cloud-tools-5.4.0-1012-azure
linux-cloud-tools-azure
linux-cloud-tools-common
linux-headers-5.4.0-1012-azure
linux-headers-azure
linux-image-5.4.0-1012-azure
linux-image-azure
linux-libc-dev
linux-modules-5.4.0-1012-azure
linux-tools-5.4.0-1012-azure
linux-tools-azure
linux-tools-common

View File

@@ -0,0 +1,68 @@
[PHP Modules]
apc
apcu
bcmath
bz2
Core
ctype
cubrid
curl
date
dom
ereg
exif
fileinfo
filter
ftp
gd
hash
iconv
ioncube
intl
json
libxml
mbstring
mcrypt
mysql
mysqli
mysqlnd
openssl
pcntl
pcre
PDO
oci8
PDO_OCI
pdo_mysql
pdo_sqlite
Phar
posix
readline
Reflection
session
shmop
SimpleXML
soap
sockets
SPL
SQLite
sqlite3
standard
sysvsem
sysvshm
tidy
tokenizer
xdebug
xml
xmlreader
xmlrpc
xmlwriter
xsl
zip
zlib
phalcon3
phalcon4
blackfire
[Zend Modules]
Xdebug

View File

@@ -0,0 +1,75 @@
[PHP Modules]
apc
apcu
bcmath
bz2
calendar
Core
ctype
cubrid
curl
date
dba
dom
ereg
exif
fileinfo
filter
ftp
gd
gettext
hash
iconv
imagick
ioncube
intl
json
libxml
mbstring
mcrypt
memcached
mhash
mysql
mysqli
openssl
pcntl
pcre
PDO
oci8
PDO_OCI
pdo_mysql
pdo_pgsql
pdo_sqlite
pgsql
Phar
posix
redis
Reflection
session
shmop
SimpleXML
soap
sockets
SPL
sqlite3
standard
sysvmsg
sysvsem
sysvshm
tokenizer
wddx
xdebug
xml
xmlreader
xmlwriter
Zend OPcache
zip
zlib
phalcon3
phalcon4
blackfire
[Zend Modules]
Xdebug
Zend OPcache

View File

@@ -0,0 +1,75 @@
[PHP Modules]
apc
apcu
bcmath
bz2
calendar
Core
ctype
cubrid
curl
date
dba
dom
ereg
exif
fileinfo
filter
ftp
gd
gettext
hash
iconv
imagick
ioncube
intl
json
libxml
mbstring
mcrypt
memcached
mhash
mysql
mysqli
openssl
pcntl
pcre
PDO
oci8
PDO_OCI
pdo_mysql
pdo_pgsql
pdo_sqlite
pgsql
Phar
posix
redis
Reflection
session
shmop
SimpleXML
soap
sockets
SPL
sqlite3
standard
sysvmsg
sysvsem
sysvshm
tokenizer
wddx
xdebug
xml
xmlreader
xmlwriter
Zend OPcache
zip
zlib
phalcon3
phalcon4
blackfire
[Zend Modules]
Xdebug
Zend OPcache

View File

@@ -0,0 +1,67 @@
[PHP Modules]
amqp
apc
apcu
calendar
Core
ctype
cubrid
curl
date
dom
ereg
exif
fileinfo
filter
ftp
gettext
hash
iconv
igbinary
ioncube
intl
json
libxml
mbstring
memcache
memcached
mhash
mongodb
msgpack
openssl
pcntl
pcre
PDO
Phar
posix
readline
redis
Reflection
session
shmop
SimpleXML
sockets
SPL
standard
sysvmsg
sysvsem
sysvshm
tokenizer
wddx
xdebug
xml
xmlreader
xmlwriter
xsl
yaml
Zend OPcache
zlib
zmq
phalcon3
phalcon4
blackfire
[Zend Modules]
Xdebug
Zend OPcache

View File

@@ -0,0 +1,64 @@
[PHP Modules]
amqp
apcu
calendar
Core
ctype
cubrid
curl
date
dom
exif
fileinfo
filter
ftp
gettext
hash
iconv
igbinary
ioncube
intl
json
libxml
mbstring
memcache
memcached
mongodb
msgpack
openssl
pcntl
pcre
PDO
Phar
posix
readline
redis
Reflection
session
shmop
SimpleXML
sockets
SPL
standard
sysvmsg
sysvsem
sysvshm
tokenizer
wddx
xdebug
xml
xmlreader
xmlwriter
xsl
yaml
Zend OPcache
zlib
zmq
phalcon3
phalcon4
blackfire
[Zend Modules]
Xdebug
Zend OPcache

View File

@@ -0,0 +1,64 @@
[PHP Modules]
amqp
apcu
calendar
Core
ctype
cubrid
curl
date
dom
exif
fileinfo
filter
ftp
gettext
hash
iconv
igbinary
ioncube
intl
json
libxml
mbstring
memcache
memcached
mongodb
msgpack
openssl
pcntl
pcre
PDO
Phar
posix
readline
redis
Reflection
session
shmop
SimpleXML
sockets
SPL
standard
sysvmsg
sysvsem
sysvshm
tokenizer
wddx
xdebug
xml
xmlreader
xmlwriter
xsl
yaml
Zend OPcache
zlib
zmq
phalcon3
phalcon4
blackfire
[Zend Modules]
Xdebug
Zend OPcache

View File

@@ -0,0 +1,65 @@
[PHP Modules]
amqp
apcu
calendar
Core
ctype
cubrid
curl
date
dom
exif
fileinfo
filter
ftp
gettext
hash
iconv
igbinary
ioncube
intl
json
libxml
mbstring
memcache
memcached
mongodb
msgpack
openssl
pcntl
pcre
PDO
Phar
posix
readline
redis
Reflection
session
shmop
SimpleXML
sockets
sodium
SPL
standard
sysvmsg
sysvsem
sysvshm
tokenizer
wddx
xdebug
xml
xmlreader
xmlwriter
xsl
yaml
Zend OPcache
zlib
zmq
phalcon3
phalcon4
blackfire
[Zend Modules]
Xdebug
Zend OPcache

View File

@@ -0,0 +1,65 @@
[PHP Modules]
amqp
apcu
calendar
Core
ctype
cubrid
curl
date
dom
exif
fileinfo
filter
ftp
gettext
hash
iconv
igbinary
ioncube
intl
json
libxml
mbstring
memcache
memcached
mongodb
msgpack
openssl
pcntl
pcre
PDO
Phar
posix
readline
redis
Reflection
session
shmop
SimpleXML
sockets
sodium
SPL
standard
sysvmsg
sysvsem
sysvshm
tokenizer
wddx
xdebug
xml
xmlreader
xmlwriter
xsl
yaml
Zend OPcache
zlib
zmq
phalcon3
phalcon4
blackfire
[Zend Modules]
Xdebug
Zend OPcache

View File

@@ -0,0 +1,93 @@
[PHP Modules]
amqp
apcu
bcmath
bz2
calendar
Core
ctype
cubrid
curl
date
dba
dom
enchant
exif
FFI
fileinfo
filter
ftp
gd
gettext
gmp
hash
iconv
igbinary
imape
ioncub
intl
json
ldap
libxml
mbstring
memcache
memcached
mongodb
msgpack
mysqli
mysqlnd
odbc
openssl
pcntl
pcov
pcre
oci8
PDO
pdo_dblib
PDO_Firebird
PDO_OCI
pdo_mysql
PDO_ODBC
pdo_pgsql
pdo_sqlite
pgsql
Phar
posix
pspell
readline
redis
Reflection
session
shmop
SimpleXML
snmp
soap
sockets
sodium
SPL
sqlite3
standard
sysvmsg
sysvsem
sysvshm
tidy
tokenizer
xdebug
xml
xmlreader
xmlrpc
xmlwriter
xsl
yaml
Zend OPcache
zip
zlib
zmq
phalcon3
phalcon4
blackfire
[Zend Modules]
Xdebug
Zend OPcache

View File

@@ -0,0 +1,72 @@
[PHP Modules]
bcmath
bz2
calendar
Core
ctype
cubrid
curl
date
dom
enchant
exif
FFI
fileinfo
filter
ftp
gd
gettext
gmp
hash
iconv
ioncube
intl
json
libxml
mbstring
mysqli
mysqlnd
openssl
pcntl
pcov
pcre
PDO
oci8
PDO_OCI
pdo_mysql
pdo_pgsql
pdo_sqlite
pgsql
Phar
posix
pspell
readline
Reflection
session
shmop
SimpleXML
soap
sockets
SPL
sqlite3
standard
sysvmsg
sysvsem
sysvshm
tidy
tokenizer
xml
xmlreader
xmlrpc
xmlwriter
xsl
Zend OPcache
zip
zlib
phalcon3
phalcon4
blackfire
[Zend Modules]
Zend OPcache
Xdebug

View File

@@ -5,6 +5,7 @@ bcmath
bz2
Core
ctype
cubrid
curl
date
dom
@@ -16,6 +17,7 @@ ftp
gd
hash
iconv
ioncube
intl
json
libxml
@@ -30,6 +32,8 @@ openssl
pcntl
pcre
PDO
oci8
PDO_OCI
pdo_mysql
pdo_sqlite
Phar

View File

@@ -6,6 +6,7 @@ bz2
calendar
Core
ctype
cubrid
curl
date
dba
@@ -20,6 +21,7 @@ gettext
hash
iconv
imagick
ioncube
intl
json
libxml
@@ -33,6 +35,8 @@ openssl
pcntl
pcre
PDO
oci8
PDO_OCI
pdo_mysql
pdo_pgsql
pdo_sqlite

View File

@@ -6,6 +6,7 @@ bz2
calendar
Core
ctype
cubrid
curl
date
dba
@@ -20,6 +21,7 @@ gettext
hash
iconv
imagick
ioncube
intl
json
libxml
@@ -33,6 +35,8 @@ openssl
pcntl
pcre
PDO
oci8
PDO_OCI
pdo_mysql
pdo_pgsql
pdo_sqlite

View File

@@ -7,6 +7,7 @@ bz2
calendar
Core
ctype
cubrid
curl
date
dba
@@ -25,6 +26,7 @@ iconv
igbinary
imap
interbase
ioncube
intl
json
ldap
@@ -47,6 +49,8 @@ pcre
PDO
pdo_dblib
PDO_Firebird
oci8
PDO_OCI
pdo_mysql
PDO_ODBC
pdo_pgsql

View File

@@ -6,6 +6,7 @@ bz2
calendar
Core
ctype
cubrid
curl
date
dba
@@ -23,6 +24,7 @@ iconv
igbinary
imap
interbase
ioncube
intl
json
ldap
@@ -42,6 +44,8 @@ pcre
PDO
pdo_dblib
PDO_Firebird
oci8
PDO_OCI
pdo_mysql
PDO_ODBC
pdo_pgsql

View File

@@ -6,6 +6,7 @@ bz2
calendar
Core
ctype
cubrid
curl
date
dba
@@ -23,6 +24,7 @@ iconv
igbinary
imap
interbase
ioncube
intl
json
ldap
@@ -42,6 +44,8 @@ pcre
PDO
pdo_dblib
PDO_Firebird
oci8
PDO_OCI
pdo_mysql
PDO_ODBC
pdo_pgsql

View File

@@ -6,6 +6,7 @@ bz2
calendar
Core
ctype
cubrid
curl
date
dba
@@ -23,6 +24,7 @@ iconv
igbinary
imap
interbase
ioncube
intl
json
ldap
@@ -41,6 +43,8 @@ pcre
PDO
pdo_dblib
PDO_Firebird
oci8
PDO_OCI
pdo_mysql
PDO_ODBC
pdo_pgsql

View File

@@ -6,6 +6,7 @@ bz2
calendar
Core
ctype
cubrid
curl
date
dba
@@ -23,6 +24,7 @@ iconv
igbinary
imap
interbase
ioncube
intl
json
ldap
@@ -41,6 +43,8 @@ pcre
PDO
pdo_dblib
PDO_Firebird
oci8
PDO_OCI
pdo_mysql
PDO_ODBC
pdo_pgsql

View File

@@ -6,6 +6,7 @@ bz2
calendar
Core
ctype
cubrid
curl
date
dba
@@ -23,6 +24,7 @@ hash
iconv
igbinary
imap
ioncube
intl
json
ldap
@@ -41,6 +43,8 @@ pcre
PDO
pdo_dblib
PDO_Firebird
oci8
PDO_OCI
pdo_mysql
PDO_ODBC
pdo_pgsql

View File

@@ -1,18 +1,25 @@
[PHP Modules]
bcmath
bz2
calendar
Core
ctype
cubrid
curl
date
dom
enchant
exif
FFI
fileinfo
filter
ftp
gd
gettext
gmp
hash
iconv
ioncube
intl
json
libxml
@@ -21,12 +28,18 @@ mysqli
mysqlnd
openssl
pcntl
pcov
pcre
PDO
oci8
PDO_OCI
pdo_mysql
pdo_pgsql
pdo_sqlite
pgsql
Phar
posix
pspell
readline
Reflection
session
@@ -37,6 +50,7 @@ sockets
SPL
sqlite3
standard
sysvmsg
sysvsem
sysvshm
tidy
@@ -55,4 +69,5 @@ blackfire
[Zend Modules]
Zend OPcache
Xdebug

View File

@@ -20,3 +20,17 @@ export async function getInput(
return input;
}
}
/**
* Function to filter extensions
*
* @param extension_csv
*/
export async function filterExtensions(extension_csv: string): Promise<string> {
return extension_csv
.split(',')
.filter(extension => {
return extension.trim()[0] != ':';
})
.join(',');
}

View File

@@ -2,7 +2,7 @@
"compilerOptions": {
/* Basic Options */
// "incremental": true, /* Enable incremental compilation */
"target": "es6", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019' or 'ESNEXT'. */
"target": "ES2019", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019' or 'ESNEXT'. */
"module": "commonjs", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */
// "allowJs": true, /* Allow javascript files to be compiled. */
// "checkJs": true, /* Report errors in .js files. */