feat: migrate to esm

This commit is contained in:
2023-03-16 01:58:13 +01:00
parent fd740b3091
commit 4df19e8c20
512 changed files with 3016 additions and 2222 deletions

8
.changeset/README.md Normal file
View File

@@ -0,0 +1,8 @@
# Changesets
Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works
with multi-package repos, or single-package repos to help you version and publish your code. You can
find the full documentation for it [in our repository](https://github.com/changesets/changesets)
We have a quick list of common questions to get you started engaging with this project in
[our documentation](https://github.com/changesets/changesets/blob/main/docs/common-questions.md)

11
.changeset/config.json Normal file
View File

@@ -0,0 +1,11 @@
{
"$schema": "https://unpkg.com/@changesets/config@2.3.0/schema.json",
"changelog": "@changesets/cli/changelog",
"commit": false,
"fixed": [],
"linked": [],
"access": "restricted",
"baseBranch": "main",
"updateInternalDependencies": "patch",
"ignore": []
}

View File

@@ -26,7 +26,7 @@
"versionGroups": [ "versionGroups": [
{ {
"label": "ES Mapping Generator Special Dependencies", "label": "ES Mapping Generator Special Dependencies",
"dependencies": ["typescript", "typedoc", "ts-node"], "dependencies": ["typescript", "typedoc", "ts-node", "@types/node", "got"],
"packages": ["@openstapps/es-mapping-generator"], "packages": ["@openstapps/es-mapping-generator"],
"isIgnored": true "isIgnored": true
}, },

View File

@@ -36,3 +36,17 @@ TURBO_TOKEN=...
```shell ```shell
docker run --env-file=.env -p 3000:3000 fox1t/turborepo-remote-cache docker run --env-file=.env -p 3000:3000 fox1t/turborepo-remote-cache
``` ```
## Useful commands
#### Why is this package bloating the app?
```shell
pnpm why -P -r --filter @openstapps/app PACKAGE
```
#### Licenses
```shell
pnpm licenses -P --filter PROJECT
```

2
backend/backend/app.js Normal file
View File

@@ -0,0 +1,2 @@
#!/usr/bin/env node
import './lib/cli.js'

View File

@@ -1,7 +1,7 @@
// tslint:disable:no-default-export // tslint:disable:no-default-export
// tslint:disable:no-magic-numbers // tslint:disable:no-magic-numbers
import {RecursivePartial} from '@openstapps/logger/lib/common'; import {RecursivePartial} from '@openstapps/logger/lib/common';
import {ElasticsearchConfigFile} from '../src/storage/elasticsearch/types/elasticsearch'; import {ElasticsearchConfigFile} from '../src/storage/elasticsearch/types/elasticsearch.js';
/** /**
* This is the database configuration for the technical university of berlin * This is the database configuration for the technical university of berlin

View File

@@ -1,6 +1,6 @@
// tslint:disable:no-default-export // tslint:disable:no-default-export
// tslint:disable:no-magic-numbers // tslint:disable:no-magic-numbers
import {ElasticsearchConfigFile} from '../src/storage/elasticsearch/types/elasticsearch-config'; import {ElasticsearchConfigFile} from '../src/storage/elasticsearch/types/elasticsearch-config.js';
/** /**
* This is the default configuration for elasticsearch (a database) * This is the default configuration for elasticsearch (a database)

View File

@@ -2,6 +2,7 @@
"name": "@openstapps/backend", "name": "@openstapps/backend",
"description": "A reference implementation for a StApps backend", "description": "A reference implementation for a StApps backend",
"version": "2.1.0", "version": "2.1.0",
"type": "module",
"license": "AGPL-3.0-only", "license": "AGPL-3.0-only",
"author": "André Bierlein <andre.mt.bierlein@gmail.com>", "author": "André Bierlein <andre.mt.bierlein@gmail.com>",
"contributors": [ "contributors": [
@@ -97,8 +98,8 @@
"sinon": "14.0.2", "sinon": "14.0.2",
"sinon-express-mock": "2.2.1", "sinon-express-mock": "2.2.1",
"supertest": "6.3.3", "supertest": "6.3.3",
"typedoc": "0.22.18", "typedoc": "0.23.26",
"typescript": "4.4.4" "typescript": "4.8.4"
}, },
"nyc": { "nyc": {
"all": true, "all": true,
@@ -124,5 +125,12 @@
"ts-node/register" "ts-node/register"
], ],
"statements": 95 "statements": 95
},
"pnpm": {
"peerDependencyRules": {
"allowedVersions": {
"rxjs": "7.x"
}
}
} }
} }

View File

@@ -25,20 +25,20 @@ import cors from 'cors';
import {Express} from 'express'; import {Express} from 'express';
import morgan from 'morgan'; import morgan from 'morgan';
import path from 'path'; import path from 'path';
import {configFile, DEFAULT_TIMEOUT, isTestEnvironment, mailer, plugins, validator} from './common'; import {configFile, DEFAULT_TIMEOUT, isTestEnvironment, mailer, plugins, validator} from './common.js';
import {getPrometheusMiddleware} from './middleware/prometheus'; import {getPrometheusMiddleware} from './middleware/prometheus.js';
import {MailQueue} from './notification/mail-queue'; import {MailQueue} from './notification/mail-queue.js';
import {bulkAddRouter} from './routes/bulk-add-route'; import {bulkAddRouter} from './routes/bulk-add-route.js';
import {bulkDoneRouter} from './routes/bulk-done-route'; import {bulkDoneRouter} from './routes/bulk-done-route.js';
import {bulkRouter} from './routes/bulk-route'; import {bulkRouter} from './routes/bulk-route.js';
import {indexRouter} from './routes/index-route'; import {indexRouter} from './routes/index-route.js';
import {multiSearchRouter} from './routes/multi-search-route'; import {multiSearchRouter} from './routes/multi-search-route.js';
import {pluginRegisterRouter} from './routes/plugin-register-route'; import {pluginRegisterRouter} from './routes/plugin-register-route.js';
import {searchRouter} from './routes/search-route'; import {searchRouter} from './routes/search-route.js';
import {thingUpdateRouter} from './routes/thing-update-route'; import {thingUpdateRouter} from './routes/thing-update-route.js';
import {virtualPluginRoute} from './routes/virtual-plugin-route'; import {virtualPluginRoute} from './routes/virtual-plugin-route.js';
import {BulkStorage} from './storage/bulk-storage'; import {BulkStorage} from './storage/bulk-storage.js';
import {DatabaseConstructor} from './storage/database'; import {DatabaseConstructor} from './storage/database.js';
/** /**
* Configure the backend * Configure the backend

View File

@@ -1,5 +1,3 @@
#!/usr/bin/env node
/* /*
* Copyright (C) 2019 StApps * Copyright (C) 2019 StApps
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
@@ -18,8 +16,8 @@
import {Logger} from '@openstapps/logger'; import {Logger} from '@openstapps/logger';
import express from 'express'; import express from 'express';
import http from 'http'; import http from 'http';
import {configureApp} from './app'; import {configureApp} from './app.js';
import {Elasticsearch} from './storage/elasticsearch/elasticsearch'; import {Elasticsearch} from './storage/elasticsearch/elasticsearch.js';
const app = express(); const app = express();

View File

@@ -14,9 +14,9 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
import {SCConfigFile, SCPluginMetaData} from '@openstapps/core'; import {SCConfigFile, SCPluginMetaData} from '@openstapps/core';
import {Validator} from '@openstapps/core-tools/lib/validate'; import {Validator} from '@openstapps/core-tools/lib/validate.js';
import config from 'config'; import config from 'config';
import {BackendTransport} from './notification/backend-transport'; import {BackendTransport} from './notification/backend-transport.js';
/** /**
* Instance of the transport for sending mails * Instance of the transport for sending mails

View File

@@ -14,8 +14,8 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
import {Logger} from '@openstapps/logger'; import {Logger} from '@openstapps/logger';
import {SMTP} from '@openstapps/logger/lib/smtp'; import {SMTP} from '@openstapps/logger/lib/smtp.js';
import {Transport, VerifiableTransport} from '@openstapps/logger/lib/transport'; import {Transport, VerifiableTransport} from '@openstapps/logger/lib/transport.js';
/** /**
* Provides information if a transport is a verifiable transport * Provides information if a transport is a verifiable transport

View File

@@ -15,7 +15,7 @@
* this program. If not, see <https://www.gnu.org/licenses/>. * this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
import {Logger} from '@openstapps/logger'; import {Logger} from '@openstapps/logger';
import {SMTP} from '@openstapps/logger/lib/smtp'; import {SMTP} from '@openstapps/logger/lib/smtp.js';
import {MailOptions} from 'nodemailer/lib/sendmail-transport'; import {MailOptions} from 'nodemailer/lib/sendmail-transport';
import Queue from 'promise-queue'; import Queue from 'promise-queue';
/** /**

View File

@@ -15,9 +15,9 @@
*/ */
import {SCBulkAddRequest, SCBulkAddResponse, SCBulkAddRoute, SCNotFoundErrorResponse} from '@openstapps/core'; import {SCBulkAddRequest, SCBulkAddResponse, SCBulkAddRoute, SCNotFoundErrorResponse} from '@openstapps/core';
import {Logger} from '@openstapps/logger'; import {Logger} from '@openstapps/logger';
import {isTestEnvironment} from '../common'; import {isTestEnvironment} from '../common.js';
import {BulkStorage} from '../storage/bulk-storage'; import {BulkStorage} from '../storage/bulk-storage.js';
import {createRoute} from './route'; import {createRoute} from './route.js';
/** /**
* Contains information for using the route for adding bulks * Contains information for using the route for adding bulks

View File

@@ -20,9 +20,9 @@ import {
SCNotFoundErrorResponse, SCNotFoundErrorResponse,
} from '@openstapps/core'; } from '@openstapps/core';
import {Logger} from '@openstapps/logger'; import {Logger} from '@openstapps/logger';
import {isTestEnvironment} from '../common'; import {isTestEnvironment} from '../common.js';
import {BulkStorage} from '../storage/bulk-storage'; import {BulkStorage} from '../storage/bulk-storage.js';
import {createRoute} from './route'; import {createRoute} from './route.js';
/** /**
* Contains information for using the route for closing bulks * Contains information for using the route for closing bulks

View File

@@ -14,8 +14,8 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
import {SCBulkRequest, SCBulkResponse, SCBulkRoute} from '@openstapps/core'; import {SCBulkRequest, SCBulkResponse, SCBulkRoute} from '@openstapps/core';
import {BulkStorage} from '../storage/bulk-storage'; import {BulkStorage} from '../storage/bulk-storage.js';
import {createRoute} from './route'; import {createRoute} from './route.js';
/** /**
* Contains information for using the route for creating bulks * Contains information for using the route for creating bulks

View File

@@ -14,8 +14,8 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
import {SCIndexResponse, SCIndexRoute} from '@openstapps/core'; import {SCIndexResponse, SCIndexRoute} from '@openstapps/core';
import {configFile} from '../common'; import {configFile} from '../common.js';
import {createRoute} from './route'; import {createRoute} from './route.js';
/** /**
* Contains information for using the index route * Contains information for using the index route

View File

@@ -20,9 +20,9 @@ import {
SCSearchResponse, SCSearchResponse,
SCTooManyRequestsErrorResponse, SCTooManyRequestsErrorResponse,
} from '@openstapps/core'; } from '@openstapps/core';
import {configFile, isTestEnvironment} from '../common'; import {configFile, isTestEnvironment} from '../common.js';
import {BulkStorage} from '../storage/bulk-storage'; import {BulkStorage} from '../storage/bulk-storage.js';
import {createRoute} from './route'; import {createRoute} from './route.js';
/** /**
* Contains information for using the multi search route * Contains information for using the multi search route
*/ */

View File

@@ -23,8 +23,8 @@ import {
} from '@openstapps/core'; } from '@openstapps/core';
import {Logger} from '@openstapps/logger'; import {Logger} from '@openstapps/logger';
import {deepStrictEqual} from 'assert'; import {deepStrictEqual} from 'assert';
import {configFile, isTestEnvironment, plugins} from '../common'; import {configFile, isTestEnvironment, plugins} from '../common.js';
import {createRoute} from './route'; import {createRoute} from './route.js';
/** /**
* Contains information for using the route for registering routes * Contains information for using the route for registering routes

View File

@@ -19,12 +19,12 @@ import {
SCRoute, SCRoute,
SCValidationErrorResponse, SCValidationErrorResponse,
} from '@openstapps/core'; } from '@openstapps/core';
import {ValidationError} from '@openstapps/core-tools/src/types/validator'; import {ValidationError} from '@openstapps/core-tools/src/types/validator.js';
import {Logger} from '@openstapps/logger'; import {Logger} from '@openstapps/logger';
import {Application, Router} from 'express'; import {Application, Router} from 'express';
import PromiseRouter from 'express-promise-router'; import PromiseRouter from 'express-promise-router';
import {isTestEnvironment, validator} from '../common'; import {isTestEnvironment, validator} from '../common.js';
import {isHttpMethod} from './http-types'; import {isHttpMethod} from './http-types.js';
/** /**
* Creates a router from a route class and a handler function which implements the logic * Creates a router from a route class and a handler function which implements the logic

View File

@@ -14,8 +14,8 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
import {SCSearchRequest, SCSearchResponse, SCSearchRoute} from '@openstapps/core'; import {SCSearchRequest, SCSearchResponse, SCSearchRoute} from '@openstapps/core';
import {BulkStorage} from '../storage/bulk-storage'; import {BulkStorage} from '../storage/bulk-storage.js';
import {createRoute} from './route'; import {createRoute} from './route.js';
/** /**
* Contains information for using the search route * Contains information for using the search route

View File

@@ -14,8 +14,8 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
import {SCThingUpdateRequest, SCThingUpdateResponse, SCThingUpdateRoute} from '@openstapps/core'; import {SCThingUpdateRequest, SCThingUpdateResponse, SCThingUpdateRoute} from '@openstapps/core';
import {BulkStorage} from '../storage/bulk-storage'; import {BulkStorage} from '../storage/bulk-storage.js';
import {createRoute} from './route'; import {createRoute} from './route.js';
/** /**
* Contains information for using the route for updating single things * Contains information for using the route for updating single things

View File

@@ -17,7 +17,7 @@
import {SCInternalServerErrorResponse, SCPluginMetaData, SCValidationErrorResponse} from '@openstapps/core'; import {SCInternalServerErrorResponse, SCPluginMetaData, SCValidationErrorResponse} from '@openstapps/core';
import {Request} from 'express'; import {Request} from 'express';
import got from 'got'; import got from 'got';
import {configFile, isTestEnvironment, validator} from '../common'; import {configFile, isTestEnvironment, validator} from '../common.js';
/** /**
* Generic route function used to proxy actual requests to plugins * Generic route function used to proxy actual requests to plugins
@@ -27,7 +27,6 @@ import {configFile, isTestEnvironment, validator} from '../common';
* @throws {SCInternalServerErrorResponse} On request/response validation or response from the plugin errors * @throws {SCInternalServerErrorResponse} On request/response validation or response from the plugin errors
*/ */
export async function virtualPluginRoute(request: Request, plugin: SCPluginMetaData): Promise<object> { export async function virtualPluginRoute(request: Request, plugin: SCPluginMetaData): Promise<object> {
let responseBody: object;
try { try {
const requestValidation = validator.validate(request.body, plugin.requestSchema); const requestValidation = validator.validate(request.body, plugin.requestSchema);
if (requestValidation.errors.length > 0) { if (requestValidation.errors.length > 0) {
@@ -35,22 +34,23 @@ export async function virtualPluginRoute(request: Request, plugin: SCPluginMetaD
throw new SCValidationErrorResponse(requestValidation.errors, isTestEnvironment); throw new SCValidationErrorResponse(requestValidation.errors, isTestEnvironment);
} }
// send the request to the plugin (forward the body) and save the response // send the request to the plugin (forward the body) and save the response
const pluginResponse = await got.post(plugin.route.replace(/^\//gi, ''), { const response = await got.post(plugin.route.replace(/^\//gi, ''), {
prefixUrl: plugin.address, prefixUrl: plugin.address,
json: request.body, json: request.body,
timeout: configFile.backend.externalRequestTimeout, timeout: {
response: configFile.backend.externalRequestTimeout
},
responseType: 'json', responseType: 'json',
}); });
responseBody = pluginResponse.body as object; const responseBody = response.body
const responseValidation = validator.validate(responseBody, plugin.responseSchema); const responseValidation = validator.validate(responseBody, plugin.responseSchema);
if (responseValidation.errors.length > 0) { if (responseValidation.errors.length > 0) {
// noinspection ExceptionCaughtLocallyJS // noinspection ExceptionCaughtLocallyJS
throw new SCValidationErrorResponse(responseValidation.errors, isTestEnvironment); throw new SCValidationErrorResponse(responseValidation.errors, isTestEnvironment);
} }
return response
} catch (error) { } catch (error) {
// wrap exact error inside of the internal server error response // wrap exact error inside of the internal server error response
throw new SCInternalServerErrorResponse(error, isTestEnvironment); throw new SCInternalServerErrorResponse(error, isTestEnvironment);
} }
return responseBody;
} }

View File

@@ -18,7 +18,7 @@ import {Logger} from '@openstapps/logger';
import moment from 'moment'; import moment from 'moment';
import NodeCache from 'node-cache'; import NodeCache from 'node-cache';
import {v4} from 'uuid'; import {v4} from 'uuid';
import {Database} from './database'; import {Database} from './database.js';
/** /**
* Possible operations with a bulk * Possible operations with a bulk

View File

@@ -14,8 +14,8 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
import {SCConfigFile, SCSearchQuery, SCSearchResponse, SCThings, SCUuid} from '@openstapps/core'; import {SCConfigFile, SCSearchQuery, SCSearchResponse, SCThings, SCUuid} from '@openstapps/core';
import {MailQueue} from '../notification/mail-queue'; import {MailQueue} from '../notification/mail-queue.js';
import {Bulk} from './bulk-storage'; import {Bulk} from './bulk-storage.js';
/** /**
* Creates an instance of a database * Creates an instance of a database

View File

@@ -36,7 +36,7 @@ import {
ElasticsearchConfig, ElasticsearchConfig,
ElasticsearchQueryDisMaxConfig, ElasticsearchQueryDisMaxConfig,
ElasticsearchQueryQueryStringConfig, ElasticsearchQueryQueryStringConfig,
} from './types/elasticsearch-config'; } from './types/elasticsearch-config.js';
import { import {
ACTIVE_INDICES_ALIAS, ACTIVE_INDICES_ALIAS,
getThingIndexName, getThingIndexName,
@@ -44,8 +44,8 @@ import {
matchIndexByType, matchIndexByType,
VALID_INDEX_REGEX, VALID_INDEX_REGEX,
} from './util'; } from './util';
import {noUndefined} from './util/no-undefined'; import {noUndefined} from './util/no-undefined.js';
import {retryCatch, RetryOptions} from './util/retry'; import {retryCatch, RetryOptions} from './util/retry.js';
/** /**
* A database interface for elasticsearch * A database interface for elasticsearch

View File

@@ -25,7 +25,7 @@ import {
} from '@openstapps/core'; } from '@openstapps/core';
import {Logger} from '@openstapps/logger'; import {Logger} from '@openstapps/logger';
import cron from 'node-cron'; import cron from 'node-cron';
import {MailQueue} from '../../notification/mail-queue'; import {MailQueue} from '../../notification/mail-queue.js';
/** /**
* Check if the given condition fails on the given number of results and the condition * Check if the given condition fails on the given number of results and the condition

View File

@@ -15,8 +15,8 @@
*/ */
import {Client} from '@elastic/elasticsearch'; import {Client} from '@elastic/elasticsearch';
import {SCThingType} from '@openstapps/core'; import {SCThingType} from '@openstapps/core';
import {AggregationSchema} from '@openstapps/es-mapping-generator/src/types/aggregation'; import {AggregationSchema} from '@openstapps/es-mapping-generator/src/types/aggregation.js';
import {ElasticsearchTemplateCollection} from '@openstapps/es-mapping-generator/src/types/mapping'; import {ElasticsearchTemplateCollection} from '@openstapps/es-mapping-generator/src/types/mapping.js';
import {readFileSync} from 'fs'; import {readFileSync} from 'fs';
import path from 'path'; import path from 'path';

View File

@@ -20,9 +20,9 @@ import {
SCUnsupportedMediaTypeErrorResponse, SCUnsupportedMediaTypeErrorResponse,
} from '@openstapps/core'; } from '@openstapps/core';
import {expect} from 'chai'; import {expect} from 'chai';
import {configFile, DEFAULT_TIMEOUT} from '../src/common'; import {configFile, DEFAULT_TIMEOUT} from '../src/common.js';
import {DEFAULT_TEST_TIMEOUT} from './common'; import {DEFAULT_TEST_TIMEOUT} from './common.js';
import {testApp} from './tests-setup'; import {testApp} from './tests-setup.js';
import sinon from 'sinon'; import sinon from 'sinon';
import mockedEnv from 'mocked-env'; import mockedEnv from 'mocked-env';

View File

@@ -13,7 +13,7 @@
* You should have received a copy of the GNU Affero General Public License * You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
import {yearSlice} from '../config/default'; import {yearSlice} from '../config/default.js';
import {expect} from 'chai'; import {expect} from 'chai';
describe('Common', function () { describe('Common', function () {

View File

@@ -16,15 +16,15 @@
import {SCConfigFile, SCSearchQuery, SCSearchResponse, SCThings, SCThingType, SCUuid} from '@openstapps/core'; import {SCConfigFile, SCSearchQuery, SCSearchResponse, SCThings, SCThingType, SCUuid} from '@openstapps/core';
import {Express} from 'express'; import {Express} from 'express';
import moment from 'moment'; import moment from 'moment';
import {getIndexUID} from '../src/storage/elasticsearch/util'; import {getIndexUID} from '../src/storage/elasticsearch/util.js';
import {configureApp} from '../src/app'; import {configureApp} from '../src/app.js';
import express from 'express'; import express from 'express';
import http from 'http'; import http from 'http';
import {configFile} from '../src/common'; import {configFile} from '../src/common.js';
import {MailQueue} from '../src/notification/mail-queue'; import {MailQueue} from '../src/notification/mail-queue.js';
import {Bulk, BulkStorage} from '../src/storage/bulk-storage'; import {Bulk, BulkStorage} from '../src/storage/bulk-storage.js';
import getPort from 'get-port'; import getPort from 'get-port';
import {Database} from '../src/storage/database'; import {Database} from '../src/storage/database.js';
import {v4} from 'uuid'; import {v4} from 'uuid';
/** /**

View File

@@ -17,7 +17,7 @@ import {SMTP} from '@openstapps/logger/lib/smtp';
import {Transport} from '@openstapps/logger/lib/transport'; import {Transport} from '@openstapps/logger/lib/transport';
import {expect} from 'chai'; import {expect} from 'chai';
import mockedEnv from 'mocked-env'; import mockedEnv from 'mocked-env';
import {BackendTransport, isTransportWithVerification} from '../../src/notification/backend-transport'; import {BackendTransport, isTransportWithVerification} from '../../src/notification/backend-transport.js';
import sinon from 'sinon'; import sinon from 'sinon';
describe('Backend transport', function () { describe('Backend transport', function () {

View File

@@ -16,11 +16,11 @@
*/ */
import {Logger} from '@openstapps/logger'; import {Logger} from '@openstapps/logger';
import sinon from 'sinon'; import sinon from 'sinon';
import {MailQueue} from '../../src/notification/mail-queue'; import {MailQueue} from '../../src/notification/mail-queue.js';
import {expect} from 'chai'; import {expect} from 'chai';
import Queue from 'promise-queue'; import Queue from 'promise-queue';
import {MailOptions} from 'nodemailer/lib/sendmail-transport'; import {MailOptions} from 'nodemailer/lib/sendmail-transport';
import {getTransport, TRANSPORT_SEND_RESPONSE} from '../common'; import {getTransport, TRANSPORT_SEND_RESPONSE} from '../common.js';
describe('MailQueue', async function () { describe('MailQueue', async function () {
const sandbox = sinon.createSandbox(); const sandbox = sinon.createSandbox();

View File

@@ -22,8 +22,8 @@ import {
} from '@openstapps/core'; } from '@openstapps/core';
import {expect} from 'chai'; import {expect} from 'chai';
import {instance as book} from '@openstapps/core/test/resources/indexable/Book.1.json'; import {instance as book} from '@openstapps/core/test/resources/indexable/Book.1.json';
import {bulk, DEFAULT_TEST_TIMEOUT} from '../common'; import {bulk, DEFAULT_TEST_TIMEOUT} from '../common.js';
import {testApp} from '../tests-setup'; import {testApp} from '../tests-setup.js';
describe('Bulk routes', async function () { describe('Bulk routes', async function () {
// increase timeout for the suite // increase timeout for the suite

View File

@@ -15,7 +15,7 @@
*/ */
import {SCRouteHttpVerbs} from '@openstapps/core'; import {SCRouteHttpVerbs} from '@openstapps/core';
import {expect} from 'chai'; import {expect} from 'chai';
import {isHttpMethod} from '../../src/routes/http-types'; import {isHttpMethod} from '../../src/routes/http-types.js';
describe('Is HTTP method', async function () { describe('Is HTTP method', async function () {
it('should allow valid (predefined) http methods', async function () { it('should allow valid (predefined) http methods', async function () {

View File

@@ -13,8 +13,8 @@
* You should have received a copy of the GNU Affero General Public License * You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
import {DEFAULT_TEST_TIMEOUT} from '../common'; import {DEFAULT_TEST_TIMEOUT} from '../common.js';
import {testApp} from '../tests-setup'; import {testApp} from '../tests-setup.js';
import {SCIndexRequest, SCIndexRoute} from '@openstapps/core'; import {SCIndexRequest, SCIndexRoute} from '@openstapps/core';
import {expect} from 'chai'; import {expect} from 'chai';

View File

@@ -23,13 +23,13 @@ import {
SCValidationErrorResponse, SCValidationErrorResponse,
} from '@openstapps/core'; } from '@openstapps/core';
import nock from 'nock'; import nock from 'nock';
import {configFile, plugins} from '../../src/common'; import {configFile, plugins} from '../../src/common.js';
import {pluginRegisterHandler} from '../../src/routes/plugin-register-route'; import {pluginRegisterHandler} from '../../src/routes/plugin-register-route.js';
import {expect, use} from 'chai'; import {expect, use} from 'chai';
import chaiAsPromised from 'chai-as-promised'; import chaiAsPromised from 'chai-as-promised';
import {instance as registerRequest} from '@openstapps/core/test/resources/PluginRegisterRequest.1.json'; import {instance as registerRequest} from '@openstapps/core/test/resources/PluginRegisterRequest.1.json';
import {DEFAULT_TEST_TIMEOUT} from '../common'; import {DEFAULT_TEST_TIMEOUT} from '../common.js';
import {testApp} from '../tests-setup'; import {testApp} from '../tests-setup.js';
// for using promises in expectations (to.eventually.be...) // for using promises in expectations (to.eventually.be...)
use(chaiAsPromised); use(chaiAsPromised);

View File

@@ -25,12 +25,12 @@ import * as bodyParser from 'body-parser';
import sinon from 'sinon'; import sinon from 'sinon';
import {expect} from 'chai'; import {expect} from 'chai';
import {Application} from 'express'; import {Application} from 'express';
import {validator} from '../../src/common'; import {validator} from '../../src/common.js';
import {createRoute} from '../../src/routes/route'; import {createRoute} from '../../src/routes/route.js';
import express, {Express} from 'express'; import express, {Express} from 'express';
import supertest from 'supertest'; import supertest from 'supertest';
import {Logger} from '@openstapps/logger'; import {Logger} from '@openstapps/logger';
import {DEFAULT_TEST_TIMEOUT} from '../common'; import {DEFAULT_TEST_TIMEOUT} from '../common.js';
interface ReturnType { interface ReturnType {
foo: boolean; foo: boolean;

View File

@@ -21,9 +21,9 @@ import {
SCTooManyRequestsErrorResponse, SCTooManyRequestsErrorResponse,
} from '@openstapps/core'; } from '@openstapps/core';
import {expect} from 'chai'; import {expect} from 'chai';
import {configFile} from '../../src/common'; import {configFile} from '../../src/common.js';
import {DEFAULT_TEST_TIMEOUT} from '../common'; import {DEFAULT_TEST_TIMEOUT} from '../common.js';
import {testApp} from '../tests-setup'; import {testApp} from '../tests-setup.js';
import sinon from 'sinon'; import sinon from 'sinon';
describe('Search route', async function () { describe('Search route', async function () {

View File

@@ -15,10 +15,10 @@
*/ */
import {SCThingUpdateRoute} from '@openstapps/core'; import {SCThingUpdateRoute} from '@openstapps/core';
import chaiAsPromised from 'chai-as-promised'; import chaiAsPromised from 'chai-as-promised';
import {bulkStorageMock, DEFAULT_TEST_TIMEOUT} from '../common'; import {bulkStorageMock, DEFAULT_TEST_TIMEOUT} from '../common.js';
import {expect, use} from 'chai'; import {expect, use} from 'chai';
import {instance as book} from '@openstapps/core/test/resources/indexable/Book.1.json'; import {instance as book} from '@openstapps/core/test/resources/indexable/Book.1.json';
import {testApp} from '../tests-setup'; import {testApp} from '../tests-setup.js';
use(chaiAsPromised); use(chaiAsPromised);

View File

@@ -22,11 +22,11 @@ import got, {Options} from 'got';
import nock from 'nock'; import nock from 'nock';
import sinon from 'sinon'; import sinon from 'sinon';
import {mockReq} from 'sinon-express-mock'; import {mockReq} from 'sinon-express-mock';
import {plugins, validator} from '../../src/common'; import {plugins, validator} from '../../src/common.js';
import {virtualPluginRoute} from '../../src/routes/virtual-plugin-route'; import {virtualPluginRoute} from '../../src/routes/virtual-plugin-route.js';
import {DEFAULT_TEST_TIMEOUT, FooError} from '../common'; import {DEFAULT_TEST_TIMEOUT, FooError} from '../common.js';
import {registerAddRequest} from './plugin-register-route.spec'; import {registerAddRequest} from './plugin-register-route.spec';
import {testApp} from '../tests-setup'; import {testApp} from '../tests-setup.js';
use(chaiAsPromised); use(chaiAsPromised);

View File

@@ -17,10 +17,10 @@ import {SCBulkRequest, SCThingType} from '@openstapps/core';
import moment from 'moment'; import moment from 'moment';
// eslint-disable-next-line unicorn/import-style // eslint-disable-next-line unicorn/import-style
import util from 'util'; import util from 'util';
import {configFile} from '../../src/common'; import {configFile} from '../../src/common.js';
import {Bulk, BulkStorage} from '../../src/storage/bulk-storage'; import {Bulk, BulkStorage} from '../../src/storage/bulk-storage.js';
import {expect} from 'chai'; import {expect} from 'chai';
import {ElasticsearchMock} from '../common'; import {ElasticsearchMock} from '../common.js';
import sinon from 'sinon'; import sinon from 'sinon';
import NodeCache from 'node-cache'; import NodeCache from 'node-cache';

View File

@@ -16,7 +16,7 @@
import {AggregateName, AggregationsMultiTermsBucket} from '@elastic/elasticsearch/lib/api/types'; import {AggregateName, AggregationsMultiTermsBucket} from '@elastic/elasticsearch/lib/api/types';
import {SCFacet, SCThingType} from '@openstapps/core'; import {SCFacet, SCThingType} from '@openstapps/core';
import {expect} from 'chai'; import {expect} from 'chai';
import {parseAggregations} from '../../../src/storage/elasticsearch/aggregations'; import {parseAggregations} from '../../../src/storage/elasticsearch/aggregations.js';
describe('Aggregations', function () { describe('Aggregations', function () {
const aggregations: Record<AggregateName, Partial<AggregationsMultiTermsBucket>> = { const aggregations: Record<AggregateName, Partial<AggregationsMultiTermsBucket>> = {

View File

@@ -43,20 +43,20 @@ import {
ACTIVE_INDICES_ALIAS, ACTIVE_INDICES_ALIAS,
INACTIVE_INDICES_ALIAS, INACTIVE_INDICES_ALIAS,
parseIndexName, parseIndexName,
} from '../../../src/storage/elasticsearch/util'; } from '../../../src/storage/elasticsearch/util.js';
import * as queryModule from '../../../src/storage/elasticsearch/query/query'; import * as queryModule from '../../../src/storage/elasticsearch/query/query.js';
import * as sortModule from '../../../src/storage/elasticsearch/query/sort'; import * as sortModule from '../../../src/storage/elasticsearch/query/sort.js';
import sinon, {SinonStub} from 'sinon'; import sinon, {SinonStub} from 'sinon';
import {getIndexUID, getThingIndexName, INDEX_UID_LENGTH} from '../../../src/storage/elasticsearch/util'; import {getIndexUID, getThingIndexName, INDEX_UID_LENGTH} from '../../../src/storage/elasticsearch/util.js';
import * as utilModule from '../../../src/storage/elasticsearch/util'; import * as utilModule from '../../../src/storage/elasticsearch/util.js';
import {removeInvalidAliasChars} from '../../../src/storage/elasticsearch/util/alias'; import {removeInvalidAliasChars} from '../../../src/storage/elasticsearch/util/alias.js';
import {configFile} from '../../../src/common'; import {configFile} from '../../../src/common.js';
import {MailQueue} from '../../../src/notification/mail-queue'; import {MailQueue} from '../../../src/notification/mail-queue.js';
import {aggregations} from '../../../src/storage/elasticsearch/templating'; import {aggregations} from '../../../src/storage/elasticsearch/templating.js';
import {Elasticsearch} from '../../../src/storage/elasticsearch/elasticsearch'; import {Elasticsearch} from '../../../src/storage/elasticsearch/elasticsearch.js';
import * as Monitoring from '../../../src/storage/elasticsearch/monitoring'; import * as Monitoring from '../../../src/storage/elasticsearch/monitoring.js';
import * as templating from '../../../src/storage/elasticsearch/templating'; import * as templating from '../../../src/storage/elasticsearch/templating.js';
import {bulk, DEFAULT_TEST_TIMEOUT, getTransport, getIndex} from '../../common'; import {bulk, DEFAULT_TEST_TIMEOUT, getTransport, getIndex} from '../../common.js';
import fs from 'fs'; import fs from 'fs';
use(chaiAsPromised); use(chaiAsPromised);

View File

@@ -24,10 +24,10 @@ import {
SCThings, SCThings,
} from '@openstapps/core'; } from '@openstapps/core';
import {Logger} from '@openstapps/logger'; import {Logger} from '@openstapps/logger';
import {MailQueue} from '../../../src/notification/mail-queue'; import {MailQueue} from '../../../src/notification/mail-queue.js';
import {setUp} from '../../../src/storage/elasticsearch/monitoring'; import {setUp} from '../../../src/storage/elasticsearch/monitoring.js';
import {getTransport} from '../../common'; import {getTransport} from '../../common.js';
import {expect} from 'chai'; import {expect} from 'chai';
import sinon from 'sinon'; import sinon from 'sinon';
import cron from 'node-cron'; import cron from 'node-cron';

View File

@@ -25,13 +25,13 @@ import {
SCThingType, SCThingType,
} from '@openstapps/core'; } from '@openstapps/core';
import {expect} from 'chai'; import {expect} from 'chai';
import {buildFilter} from '../../../src/storage/elasticsearch/query/filter'; import {buildFilter} from '../../../src/storage/elasticsearch/query/filter.js';
import {buildBooleanFilter} from '../../../src/storage/elasticsearch/query/filters/boolean'; import {buildBooleanFilter} from '../../../src/storage/elasticsearch/query/filters/boolean.js';
import {buildQuery} from '../../../src/storage/elasticsearch/query/query'; import {buildQuery} from '../../../src/storage/elasticsearch/query/query.js';
import {buildSort} from '../../../src/storage/elasticsearch/query/sort'; import {buildSort} from '../../../src/storage/elasticsearch/query/sort.js';
import {ElasticsearchConfig} from '../../../src/storage/elasticsearch/types/elasticsearch-config'; import {ElasticsearchConfig} from '../../../src/storage/elasticsearch/types/elasticsearch-config.js';
import {QueryDslSpecificQueryContainer} from '../../../src/storage/elasticsearch/types/util'; import {QueryDslSpecificQueryContainer} from '../../../src/storage/elasticsearch/types/util.js';
import {configFile} from '../../../src/common'; import {configFile} from '../../../src/common.js';
import {SortCombinations} from '@elastic/elasticsearch/lib/api/types'; import {SortCombinations} from '@elastic/elasticsearch/lib/api/types';
describe('Query', function () { describe('Query', function () {

View File

@@ -13,8 +13,8 @@
* You should have received a copy of the GNU Affero General Public License * You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
import {DEFAULT_TIMEOUT} from '../src/common'; import {DEFAULT_TIMEOUT} from '../src/common.js';
import {startApp} from './common'; import {startApp} from './common.js';
import supertest from 'supertest'; import supertest from 'supertest';
before(async function () { before(async function () {

2
backend/proxy/app.js Normal file
View File

@@ -0,0 +1,2 @@
#!/usr/bin/env node
import './lib/cli.js'

View File

@@ -13,7 +13,7 @@
* You should have received a copy of the GNU Affero General Public License * You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
import {ConfigFile} from '../src/common'; import {ConfigFile} from '../src/common.js';
const config: ConfigFile = { const config: ConfigFile = {
activeVersions: ['1\\.0\\.\\d+', '2\\.0\\.\\d+'], activeVersions: ['1\\.0\\.\\d+', '2\\.0\\.\\d+'],

View File

@@ -2,6 +2,7 @@
"name": "@openstapps/proxy", "name": "@openstapps/proxy",
"description": "NGINX proxy that is dynamically configured by a Node.js script", "description": "NGINX proxy that is dynamically configured by a Node.js script",
"version": "2.1.0", "version": "2.1.0",
"type": "module",
"license": "AGPL-3.0-only", "license": "AGPL-3.0-only",
"repository": "git@gitlab.com:openstapps/proxy.git", "repository": "git@gitlab.com:openstapps/proxy.git",
"author": "Anselm Rochus Stordeur <anselmstordeur@gmail.com>", "author": "Anselm Rochus Stordeur <anselmstordeur@gmail.com>",
@@ -13,12 +14,11 @@
"Michel Jonathan Schmitz <michel.schmitz_1992@hotmail.com>", "Michel Jonathan Schmitz <michel.schmitz_1992@hotmail.com>",
"Rainer Killinger <mail-openstapps@killinger.co>" "Rainer Killinger <mail-openstapps@killinger.co>"
], ],
"main": "./lib/cli.js", "main": "app.js",
"scripts": { "scripts": {
"build": "npm run lint && npm run compile", "build": "rimraf lib && tsc",
"changelog": "conventional-changelog -p angular -i CHANGELOG.md -s -r 0 && git add CHANGELOG.md && git commit -m 'docs: update changelog'", "changelog": "conventional-changelog -p angular -i CHANGELOG.md -s -r 0 && git add CHANGELOG.md && git commit -m 'docs: update changelog'",
"check-configuration": "openstapps-configuration", "check-configuration": "openstapps-configuration",
"compile": "rimraf lib && tsc",
"documentation": "typedoc --includeVersion --out docs --readme README.md --entryPointStrategy expand src", "documentation": "typedoc --includeVersion --out docs --readme README.md --entryPointStrategy expand src",
"lint": "eslint --ext .ts src/", "lint": "eslint --ext .ts src/",
"postversion": "npm run changelog", "postversion": "npm run changelog",
@@ -69,8 +69,8 @@
"proxyquire": "2.1.3", "proxyquire": "2.1.3",
"rimraf": "3.0.2", "rimraf": "3.0.2",
"ts-node": "10.9.1", "ts-node": "10.9.1",
"typedoc": "0.22.18", "typedoc": "0.23.26",
"typescript": "4.4.4" "typescript": "4.8.4"
}, },
"nyc": { "nyc": {
"all": true, "all": true,

View File

@@ -1,5 +1,3 @@
#!/usr/bin/env node
/* /*
* Copyright (C) 2022 StApps * Copyright (C) 2022 StApps
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
@@ -18,9 +16,9 @@
import {Logger} from '@openstapps/logger'; import {Logger} from '@openstapps/logger';
import {execSync} from 'child_process'; import {execSync} from 'child_process';
import * as Dockerode from 'dockerode'; import * as Dockerode from 'dockerode';
import {render} from 'mustache'; import mustache from 'mustache';
import {asyncReadFile, asyncWriteFile} from './common'; import {asyncReadFile, asyncWriteFile} from './common.js';
import {getContainers, getTemplateView} from './main'; import {getContainers, getTemplateView} from './main.js';
/* eslint-disable unicorn/prefer-module */ /* eslint-disable unicorn/prefer-module */
@@ -58,7 +56,7 @@ async function updateNginxConfig() {
await delay(10_000); await delay(10_000);
// render nginx config file // render nginx config file
const nginxConfig = render( const nginxConfig = mustache.render(
await asyncReadFile('nginx.conf.template', 'utf8'), await asyncReadFile('nginx.conf.template', 'utf8'),
await getTemplateView(containers), await getTemplateView(containers),
); );

View File

@@ -14,7 +14,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
import {Logger} from '@openstapps/logger'; import {Logger} from '@openstapps/logger';
import {SMTP} from '@openstapps/logger/lib/smtp'; import {SMTP} from '@openstapps/logger/lib/smtp.js';
import config from 'config'; import config from 'config';
import {existsSync, readFile, writeFile} from 'fs'; import {existsSync, readFile, writeFile} from 'fs';
import {promisify} from 'util'; import {promisify} from 'util';

View File

@@ -16,7 +16,7 @@
import {Logger} from '@openstapps/logger'; import {Logger} from '@openstapps/logger';
import Dockerode from 'dockerode'; import Dockerode from 'dockerode';
import isCidr from 'is-cidr'; import isCidr from 'is-cidr';
import {render} from 'mustache'; import mustache from 'mustache';
import path from 'path'; import path from 'path';
import * as semver from 'semver'; import * as semver from 'semver';
import { import {
@@ -28,14 +28,13 @@ import {
sslHardeningParameters, sslHardeningParameters,
SupportedLogFormats, SupportedLogFormats,
TemplateView, TemplateView,
} from './common'; } from './common.js';
// @ts-expect-error missing type defs
import nodePortScanner from 'node-port-scanner';
/* eslint-disable unicorn/prefer-module */ /* eslint-disable unicorn/prefer-module */
/* eslint-disable unicorn/no-await-expression-member */ /* eslint-disable unicorn/no-await-expression-member */
// eslint-disable-next-line @typescript-eslint/no-var-requires
const nodePortScanner = require('node-port-scanner');
/** /**
* Checks if a ContainerInfo matches a name and version regex * Checks if a ContainerInfo matches a name and version regex
* *
@@ -263,7 +262,7 @@ export async function generateMetricsServer(logFormat: string, enableMetrics?: b
async function renderTemplate(path: string, view: unknown): Promise<string> { async function renderTemplate(path: string, view: unknown): Promise<string> {
const content = await asyncReadFile(path, 'utf8'); const content = await asyncReadFile(path, 'utf8');
return render(content, view); return mustache.render(content, view);
} }
/** /**

View File

@@ -23,7 +23,7 @@ import {Logger} from '@openstapps/logger';
import {expect} from 'chai'; import {expect} from 'chai';
import {mkdirSync, writeFileSync, unlinkSync, rmdirSync} from 'fs'; import {mkdirSync, writeFileSync, unlinkSync, rmdirSync} from 'fs';
import { resolve } from 'path'; import { resolve } from 'path';
import { isFileType } from '../src/common'; import { isFileType } from '../src/common.js';
process.on('unhandledRejection', async (error) => { process.on('unhandledRejection', async (error) => {
await Logger.error(error); await Logger.error(error);

View File

@@ -24,7 +24,7 @@ import {expect} from 'chai';
import chaiSpies from 'chai-spies'; import chaiSpies from 'chai-spies';
import {ContainerInfo} from 'dockerode'; import {ContainerInfo} from 'dockerode';
import {slow, suite, test, timeout} from '@testdeck/mocha'; import {slow, suite, test, timeout} from '@testdeck/mocha';
import {sslHardeningParameters, protocolHardeningParameters, SSLFilePaths} from './../src/common'; import {sslHardeningParameters, protocolHardeningParameters, SSLFilePaths} from './../src/common.js';
import { import {
containerMatchesRegex, containerMatchesRegex,
generateUpstreamMap, generateUpstreamMap,
@@ -33,7 +33,7 @@ import {
generateListener, generateListener,
generateMetricsServer, generateMetricsServer,
getContainers, getContainers,
} from '../src/main'; } from '../src/main.js';
import {resolve} from 'path'; import {resolve} from 'path';
import {mkdirSync, writeFileSync, unlinkSync, rmdirSync} from 'fs'; import {mkdirSync, writeFileSync, unlinkSync, rmdirSync} from 'fs';
import proxyquire from 'proxyquire'; import proxyquire from 'proxyquire';

View File

@@ -2,35 +2,29 @@
(Summarize the bug encountered concisely) (Summarize the bug encountered concisely)
## Steps to reproduce ## Steps to reproduce
(How one can reproduce the issue - this is very important) (How one can reproduce the issue - this is very important)
## Example Project ## Example Project
(If possible, please create an example project here on GitLab.com that exhibits the problematic behaviour, and link to it here in the bug report) (If possible, please create an example project here on GitLab.com that exhibits the problematic behaviour, and link to it here in the bug report)
(If you are using an older version of GitLab, this will also determine whether the bug has been fixed in a more recent version) (If you are using an older version of GitLab, this will also determine whether the bug has been fixed in a more recent version)
## What is the current bug behavior? ## What is the current bug behavior?
(What actually happens) (What actually happens)
## What is the expected correct behavior? ## What is the expected correct behavior?
(What you should see instead) (What you should see instead)
## Relevant logs and/or screenshots ## Relevant logs and/or screenshots
(Paste any relevant logs - please use code blocks (```) to format console output, (Paste any relevant logs - please use code blocks (```) to format console output,
logs, and code as it's very hard to read otherwise.) logs, and code as it's very hard to read otherwise.)
## Possible fixes ## Possible fixes
(If you can, link to the line of code that might be responsible for the problem) (If you can, link to the line of code that might be responsible for the problem)

View File

@@ -2,15 +2,12 @@
(Describe the feature that you're requesting concisely) (Describe the feature that you're requesting concisely)
## Explanation ## Explanation
(Explain why the feature is necessary) (Explain why the feature is necessary)
## Dependencies, issues to be resolved beforehand ## Dependencies, issues to be resolved beforehand
(List issues or dependencies that need to be resolved before this feature can be implemented) (List issues or dependencies that need to be resolved before this feature can be implemented)
/label ~meeting ~feature /label ~meeting ~feature

View File

@@ -1,372 +1,243 @@
# [0.34.0](https://gitlab.com/openstapps/configuration/compare/v0.33.0...v0.34.0) (2023-01-17) # [0.34.0](https://gitlab.com/openstapps/configuration/compare/v0.33.0...v0.34.0) (2023-01-17)
# [0.33.0](https://gitlab.com/openstapps/configuration/compare/v0.32.2...v0.33.0) (2022-08-17) # [0.33.0](https://gitlab.com/openstapps/configuration/compare/v0.32.2...v0.33.0) (2022-08-17)
### Features ### Features
* add proper coverage to ci templates ([35b4b6c](https://gitlab.com/openstapps/configuration/commit/35b4b6c8237a167518f0edb7326578095c935764)) - add proper coverage to ci templates ([35b4b6c](https://gitlab.com/openstapps/configuration/commit/35b4b6c8237a167518f0edb7326578095c935764))
## [0.32.2](https://gitlab.com/openstapps/configuration/compare/v0.32.1...v0.32.2) (2022-07-05) ## [0.32.2](https://gitlab.com/openstapps/configuration/compare/v0.32.1...v0.32.2) (2022-07-05)
### Bug Fixes ### Bug Fixes
* recommended CI settings ([0753ab9](https://gitlab.com/openstapps/configuration/commit/0753ab9f33d13eb2cd7d6512934fd285906f2c47)) - recommended CI settings ([0753ab9](https://gitlab.com/openstapps/configuration/commit/0753ab9f33d13eb2cd7d6512934fd285906f2c47))
## [0.32.1](https://gitlab.com/openstapps/configuration/compare/v0.32.0...v0.32.1) (2022-07-05) ## [0.32.1](https://gitlab.com/openstapps/configuration/compare/v0.32.0...v0.32.1) (2022-07-05)
### Bug Fixes ### Bug Fixes
* simplify dependency version checking ([df92e97](https://gitlab.com/openstapps/configuration/commit/df92e97cb65df3088b090ba76320d05938948514)) - simplify dependency version checking ([df92e97](https://gitlab.com/openstapps/configuration/commit/df92e97cb65df3088b090ba76320d05938948514))
# [0.32.0](https://gitlab.com/openstapps/configuration/compare/v0.31.0...v0.32.0) (2022-06-27) # [0.32.0](https://gitlab.com/openstapps/configuration/compare/v0.31.0...v0.32.0) (2022-06-27)
### Features ### Features
* copyright notice year replacement ([17a796e](https://gitlab.com/openstapps/configuration/commit/17a796e97b95694ee39dae0958c99279a1936d74)) - copyright notice year replacement ([17a796e](https://gitlab.com/openstapps/configuration/commit/17a796e97b95694ee39dae0958c99279a1936d74))
# [0.31.0](https://gitlab.com/openstapps/configuration/compare/v0.30.0...v0.31.0) (2022-06-02) # [0.31.0](https://gitlab.com/openstapps/configuration/compare/v0.30.0...v0.31.0) (2022-06-02)
### Bug Fixes ### Bug Fixes
* npmignore eslint exceptions ([405f8cf](https://gitlab.com/openstapps/configuration/commit/405f8cf496aee4f8f44ef61ee2b61c4a98343114)) - npmignore eslint exceptions ([405f8cf](https://gitlab.com/openstapps/configuration/commit/405f8cf496aee4f8f44ef61ee2b61c4a98343114))
# [0.30.0](https://gitlab.com/openstapps/configuration/compare/v0.29.1...v0.30.0) (2022-06-01) # [0.30.0](https://gitlab.com/openstapps/configuration/compare/v0.29.1...v0.30.0) (2022-06-01)
### Features ### Features
* transition from TSLint to ESLint ([9430e10](https://gitlab.com/openstapps/configuration/commit/9430e103874e2c9c41a8c29b13e1ae56d2379af3)) - transition from TSLint to ESLint ([9430e10](https://gitlab.com/openstapps/configuration/commit/9430e103874e2c9c41a8c29b13e1ae56d2379af3))
## [0.29.1](https://gitlab.com/openstapps/configuration/compare/v0.29.0...v0.29.1) (2022-05-27) ## [0.29.1](https://gitlab.com/openstapps/configuration/compare/v0.29.0...v0.29.1) (2022-05-27)
# [0.29.0](https://gitlab.com/openstapps/configuration/compare/v0.28.1...v0.29.0) (2021-12-14) # [0.29.0](https://gitlab.com/openstapps/configuration/compare/v0.28.1...v0.29.0) (2021-12-14)
## [0.28.1](https://gitlab.com/openstapps/configuration/compare/v0.28.0...v0.28.1) (2021-09-13) ## [0.28.1](https://gitlab.com/openstapps/configuration/compare/v0.28.0...v0.28.1) (2021-09-13)
### Bug Fixes ### Bug Fixes
* adjust command of typedoc (upgrade typescript) ([7d396f9](https://gitlab.com/openstapps/configuration/commit/7d396f92026ae84888e1b2246f11d3995a4bf11f)) - adjust command of typedoc (upgrade typescript) ([7d396f9](https://gitlab.com/openstapps/configuration/commit/7d396f92026ae84888e1b2246f11d3995a4bf11f))
# [0.28.0](https://gitlab.com/openstapps/configuration/compare/v0.27.0...v0.28.0) (2021-09-13) # [0.28.0](https://gitlab.com/openstapps/configuration/compare/v0.27.0...v0.28.0) (2021-09-13)
# [0.27.0](https://gitlab.com/openstapps/configuration/compare/v0.26.0...v0.27.0) (2021-04-06) # [0.27.0](https://gitlab.com/openstapps/configuration/compare/v0.26.0...v0.27.0) (2021-04-06)
# [0.26.0](https://gitlab.com/openstapps/configuration/compare/v0.25.0...v0.26.0) (2021-02-22) # [0.26.0](https://gitlab.com/openstapps/configuration/compare/v0.25.0...v0.26.0) (2021-02-22)
# [0.25.0](https://gitlab.com/openstapps/configuration/compare/v0.24.0...v0.25.0) (2020-09-17) # [0.25.0](https://gitlab.com/openstapps/configuration/compare/v0.24.0...v0.25.0) (2020-09-17)
### Bug Fixes ### Bug Fixes
* exclude test dir and its subdirs for tslint ([ec15ebe](https://gitlab.com/openstapps/configuration/commit/ec15ebe5c5fb30e638cc721ca916c84186b1d1e0)), closes [#34](https://gitlab.com/openstapps/configuration/issues/34) - exclude test dir and its subdirs for tslint ([ec15ebe](https://gitlab.com/openstapps/configuration/commit/ec15ebe5c5fb30e638cc721ca916c84186b1d1e0)), closes [#34](https://gitlab.com/openstapps/configuration/issues/34)
### Features ### Features
* Change 'npm audit' failure behaviour ([c11b1da](https://gitlab.com/openstapps/configuration/commit/c11b1da9a6546e006bea29cc7f524b94736f7bfb)) - Change 'npm audit' failure behaviour ([c11b1da](https://gitlab.com/openstapps/configuration/commit/c11b1da9a6546e006bea29cc7f524b94736f7bfb))
# [0.24.0](https://gitlab.com/openstapps/configuration/compare/v0.23.0...v0.24.0) (2020-03-03) # [0.24.0](https://gitlab.com/openstapps/configuration/compare/v0.23.0...v0.24.0) (2020-03-03)
# [0.23.0](https://gitlab.com/openstapps/configuration/compare/v0.22.0...v0.23.0) (2020-02-10) # [0.23.0](https://gitlab.com/openstapps/configuration/compare/v0.22.0...v0.23.0) (2020-02-10)
# [0.22.0](https://gitlab.com/openstapps/configuration/compare/v0.21.1...v0.22.0) (2019-11-25) # [0.22.0](https://gitlab.com/openstapps/configuration/compare/v0.21.1...v0.22.0) (2019-11-25)
## [0.21.1](https://gitlab.com/openstapps/configuration/compare/v0.21.0...v0.21.1) (2019-07-15) ## [0.21.1](https://gitlab.com/openstapps/configuration/compare/v0.21.0...v0.21.1) (2019-07-15)
### Bug Fixes ### Bug Fixes
* remove package-job when forPackaging is false ([b8cefa4](https://gitlab.com/openstapps/configuration/commit/b8cefa42543b0c370b9b23ca7d1a60b45907771c)) - remove package-job when forPackaging is false ([b8cefa4](https://gitlab.com/openstapps/configuration/commit/b8cefa42543b0c370b9b23ca7d1a60b45907771c))
# [0.21.0](https://gitlab.com/openstapps/configuration/compare/v0.20.0...v0.21.0) (2019-06-24) # [0.21.0](https://gitlab.com/openstapps/configuration/compare/v0.20.0...v0.21.0) (2019-06-24)
### Bug Fixes ### Bug Fixes
* update the nyc configuration ([8ece33b](https://gitlab.com/openstapps/configuration/commit/8ece33b6e6902040d42e8eb0b18237065697673e)) - update the nyc configuration ([8ece33b](https://gitlab.com/openstapps/configuration/commit/8ece33b6e6902040d42e8eb0b18237065697673e))
# [0.20.0](https://gitlab.com/openstapps/configuration/compare/v0.19.0...v0.20.0) (2019-06-06) # [0.20.0](https://gitlab.com/openstapps/configuration/compare/v0.19.0...v0.20.0) (2019-06-06)
### Bug Fixes ### Bug Fixes
* only check copyright years for TypeScript files ([1a4ec52](https://gitlab.com/openstapps/configuration/commit/1a4ec52712a2bc6b58c766141816110292f433ef)), closes [#25](https://gitlab.com/openstapps/configuration/issues/25) - only check copyright years for TypeScript files ([1a4ec52](https://gitlab.com/openstapps/configuration/commit/1a4ec52712a2bc6b58c766141816110292f433ef)), closes [#25](https://gitlab.com/openstapps/configuration/issues/25)
* skip template lines to avoid parser errors ([b995bb5](https://gitlab.com/openstapps/configuration/commit/b995bb5c1439bb2860c04d18cfc485eda7ad110f)), closes [#26](https://gitlab.com/openstapps/configuration/issues/26) - skip template lines to avoid parser errors ([b995bb5](https://gitlab.com/openstapps/configuration/commit/b995bb5c1439bb2860c04d18cfc485eda7ad110f)), closes [#26](https://gitlab.com/openstapps/configuration/issues/26)
# [0.19.0](https://gitlab.com/openstapps/configuration/compare/v0.18.0...v0.19.0) (2019-06-04) # [0.19.0](https://gitlab.com/openstapps/configuration/compare/v0.18.0...v0.19.0) (2019-06-04)
# [0.18.0](https://gitlab.com/openstapps/configuration/compare/v0.17.2...v0.18.0) (2019-05-29) # [0.18.0](https://gitlab.com/openstapps/configuration/compare/v0.17.2...v0.18.0) (2019-05-29)
### Features ### Features
* automatically generate changelog after version bump ([cbee9b8](https://gitlab.com/openstapps/configuration/commit/cbee9b888cccd2192e6725c7f36e3826becae95b)), closes [#23](https://gitlab.com/openstapps/configuration/issues/23) - automatically generate changelog after version bump ([cbee9b8](https://gitlab.com/openstapps/configuration/commit/cbee9b888cccd2192e6725c7f36e3826becae95b)), closes [#23](https://gitlab.com/openstapps/configuration/issues/23)
## [0.17.2](https://gitlab.com/openstapps/configuration/compare/v0.17.1...v0.17.2) (2019-05-28) ## [0.17.2](https://gitlab.com/openstapps/configuration/compare/v0.17.1...v0.17.2) (2019-05-28)
### Features ### Features
* exclude tests from linting ([9e7f467](https://gitlab.com/openstapps/configuration/commit/9e7f46707026239875848048ddffdad3cf4f8c0d)) - exclude tests from linting ([9e7f467](https://gitlab.com/openstapps/configuration/commit/9e7f46707026239875848048ddffdad3cf4f8c0d))
## [0.17.1](https://gitlab.com/openstapps/configuration/compare/v0.17.0...v0.17.1) (2019-05-28) ## [0.17.1](https://gitlab.com/openstapps/configuration/compare/v0.17.0...v0.17.1) (2019-05-28)
### Bug Fixes ### Bug Fixes
* fix regression with copyright years ([5659295](https://gitlab.com/openstapps/configuration/commit/5659295b883034296d84aaefc3b00072797a63f9)) - fix regression with copyright years ([5659295](https://gitlab.com/openstapps/configuration/commit/5659295b883034296d84aaefc3b00072797a63f9))
# [0.17.0](https://gitlab.com/openstapps/configuration/compare/v0.16.1...v0.17.0) (2019-05-28) # [0.17.0](https://gitlab.com/openstapps/configuration/compare/v0.16.1...v0.17.0) (2019-05-28)
### Features ### Features
* add rule to enforce completed docs ([527a6f9](https://gitlab.com/openstapps/configuration/commit/527a6f9364113405786ffb7e6533842e4d8898ac)), closes [#20](https://gitlab.com/openstapps/configuration/issues/20) - add rule to enforce completed docs ([527a6f9](https://gitlab.com/openstapps/configuration/commit/527a6f9364113405786ffb7e6533842e4d8898ac)), closes [#20](https://gitlab.com/openstapps/configuration/issues/20)
* add sctricter TSLint rules ([76ebbfa](https://gitlab.com/openstapps/configuration/commit/76ebbfab5376c9954c7e9d4e0d9c715089ef1c8b)), closes [#21](https://gitlab.com/openstapps/configuration/issues/21) - add sctricter TSLint rules ([76ebbfa](https://gitlab.com/openstapps/configuration/commit/76ebbfab5376c9954c7e9d4e0d9c715089ef1c8b)), closes [#21](https://gitlab.com/openstapps/configuration/issues/21)
* adjust TSLint command to enable advanced rules ([14b6420](https://gitlab.com/openstapps/configuration/commit/14b6420c33aec90d55023aa9b64fd0e69758fffa)), closes [#21](https://gitlab.com/openstapps/configuration/issues/21) - adjust TSLint command to enable advanced rules ([14b6420](https://gitlab.com/openstapps/configuration/commit/14b6420c33aec90d55023aa9b64fd0e69758fffa)), closes [#21](https://gitlab.com/openstapps/configuration/issues/21)
## [0.16.1](https://gitlab.com/openstapps/configuration/compare/v0.16.0...v0.16.1) (2019-05-24) ## [0.16.1](https://gitlab.com/openstapps/configuration/compare/v0.16.0...v0.16.1) (2019-05-24)
### Bug Fixes ### Bug Fixes
* make sure that npmrc is created in correct home directory ([60f7e4c](https://gitlab.com/openstapps/configuration/commit/60f7e4cae28775b67b48aae5624a8062951c5264)) - make sure that npmrc is created in correct home directory ([60f7e4c](https://gitlab.com/openstapps/configuration/commit/60f7e4cae28775b67b48aae5624a8062951c5264))
# [0.16.0](https://gitlab.com/openstapps/configuration/compare/v0.15.0...v0.16.0) (2019-05-22) # [0.16.0](https://gitlab.com/openstapps/configuration/compare/v0.15.0...v0.16.0) (2019-05-22)
### Bug Fixes ### Bug Fixes
* use lib as artifacts path ([ec8c891](https://gitlab.com/openstapps/configuration/commit/ec8c891a7a41c5308ad8a3d0acf8ff5c17754a93)), closes [#19](https://gitlab.com/openstapps/configuration/issues/19) - use lib as artifacts path ([ec8c891](https://gitlab.com/openstapps/configuration/commit/ec8c891a7a41c5308ad8a3d0acf8ff5c17754a93)), closes [#19](https://gitlab.com/openstapps/configuration/issues/19)
# [0.15.0](https://gitlab.com/openstapps/configuration/compare/v0.14.0...v0.15.0) (2019-05-20) # [0.15.0](https://gitlab.com/openstapps/configuration/compare/v0.14.0...v0.15.0) (2019-05-20)
### Bug Fixes ### Bug Fixes
* remove incremental flag ([73e6f24](https://gitlab.com/openstapps/configuration/commit/73e6f2413b462ddcea6b30e432822a2431384647)), closes [#15](https://gitlab.com/openstapps/configuration/issues/15) - remove incremental flag ([73e6f24](https://gitlab.com/openstapps/configuration/commit/73e6f2413b462ddcea6b30e432822a2431384647)), closes [#15](https://gitlab.com/openstapps/configuration/issues/15)
* remove wrong excluded path from nyc config ([cf81c1e](https://gitlab.com/openstapps/configuration/commit/cf81c1e5201213dd9302ecf302b372073f1c480e)), closes [#16](https://gitlab.com/openstapps/configuration/issues/16) - remove wrong excluded path from nyc config ([cf81c1e](https://gitlab.com/openstapps/configuration/commit/cf81c1e5201213dd9302ecf302b372073f1c480e)), closes [#16](https://gitlab.com/openstapps/configuration/issues/16)
### Features ### Features
* add check for copyright years ([44c82ad](https://gitlab.com/openstapps/configuration/commit/44c82ade69938157f6b8dfc9a709d33ac73c8da5)), closes [#17](https://gitlab.com/openstapps/configuration/issues/17) - add check for copyright years ([44c82ad](https://gitlab.com/openstapps/configuration/commit/44c82ade69938157f6b8dfc9a709d33ac73c8da5)), closes [#17](https://gitlab.com/openstapps/configuration/issues/17)
* add rules to enforce automatic package publishing ([1e3e7df](https://gitlab.com/openstapps/configuration/commit/1e3e7dfac8c0887bc3c5758c35fce5ad9b4ebef3)), closes [#18](https://gitlab.com/openstapps/configuration/issues/18) - add rules to enforce automatic package publishing ([1e3e7df](https://gitlab.com/openstapps/configuration/commit/1e3e7dfac8c0887bc3c5758c35fce5ad9b4ebef3)), closes [#18](https://gitlab.com/openstapps/configuration/issues/18)
* warn about extraneous copyright years ([1c826a4](https://gitlab.com/openstapps/configuration/commit/1c826a41e0738f2863809f56edd8be53fdfd6e35)), closes [#17](https://gitlab.com/openstapps/configuration/issues/17) - warn about extraneous copyright years ([1c826a4](https://gitlab.com/openstapps/configuration/commit/1c826a41e0738f2863809f56edd8be53fdfd6e35)), closes [#17](https://gitlab.com/openstapps/configuration/issues/17)
# [0.14.0](https://gitlab.com/openstapps/configuration/compare/v0.13.0...v0.14.0) (2019-04-30) # [0.14.0](https://gitlab.com/openstapps/configuration/compare/v0.13.0...v0.14.0) (2019-04-30)
### Features ### Features
* add possibility to ignore CI entries ([116ddeb](https://gitlab.com/openstapps/configuration/commit/116ddebfb8714aca85612a55fc0ee398022eb0d3)), closes [#14](https://gitlab.com/openstapps/configuration/issues/14) - add possibility to ignore CI entries ([116ddeb](https://gitlab.com/openstapps/configuration/commit/116ddebfb8714aca85612a55fc0ee398022eb0d3)), closes [#14](https://gitlab.com/openstapps/configuration/issues/14)
# [0.13.0](https://gitlab.com/openstapps/configuration/compare/v0.12.0...v0.13.0) (2019-04-18) # [0.13.0](https://gitlab.com/openstapps/configuration/compare/v0.12.0...v0.13.0) (2019-04-18)
### Features ### Features
* add configuration for configuration checks ([da2d7f6](https://gitlab.com/openstapps/configuration/commit/da2d7f6f91ccfc91d3560c1e380daa4282f1aeb5)), closes [#13](https://gitlab.com/openstapps/configuration/issues/13) - add configuration for configuration checks ([da2d7f6](https://gitlab.com/openstapps/configuration/commit/da2d7f6f91ccfc91d3560c1e380daa4282f1aeb5)), closes [#13](https://gitlab.com/openstapps/configuration/issues/13)
# [0.12.0](https://gitlab.com/openstapps/configuration/compare/v0.11.0...v0.12.0) (2019-04-16) # [0.12.0](https://gitlab.com/openstapps/configuration/compare/v0.11.0...v0.12.0) (2019-04-16)
### Bug Fixes ### Bug Fixes
* do not escape newlines in scripts ([77bed07](https://gitlab.com/openstapps/configuration/commit/77bed076bbf439a301b6ce4eb4a536ab2b000570)) - do not escape newlines in scripts ([77bed07](https://gitlab.com/openstapps/configuration/commit/77bed076bbf439a301b6ce4eb4a536ab2b000570))
### Features ### Features
* add expected build script ([34d3d43](https://gitlab.com/openstapps/configuration/commit/34d3d43ff5963bc2dae95cd8d6eb5def8023f7fc)), closes [#12](https://gitlab.com/openstapps/configuration/issues/12) - add expected build script ([34d3d43](https://gitlab.com/openstapps/configuration/commit/34d3d43ff5963bc2dae95cd8d6eb5def8023f7fc)), closes [#12](https://gitlab.com/openstapps/configuration/issues/12)
# [0.11.0](https://gitlab.com/openstapps/configuration/compare/v0.10.0...v0.11.0) (2019-04-15) # [0.11.0](https://gitlab.com/openstapps/configuration/compare/v0.10.0...v0.11.0) (2019-04-15)
### Bug Fixes ### Bug Fixes
* exclude docs from packages ([d7b6ecb](https://gitlab.com/openstapps/configuration/commit/d7b6ecb734c008fbad5a9615bf35665fdac20fac)), closes [#11](https://gitlab.com/openstapps/configuration/issues/11) - exclude docs from packages ([d7b6ecb](https://gitlab.com/openstapps/configuration/commit/d7b6ecb734c008fbad5a9615bf35665fdac20fac)), closes [#11](https://gitlab.com/openstapps/configuration/issues/11)
# [0.10.0](https://gitlab.com/openstapps/configuration/compare/v0.9.0...v0.10.0) (2019-04-09) # [0.10.0](https://gitlab.com/openstapps/configuration/compare/v0.9.0...v0.10.0) (2019-04-09)
### Features ### Features
* add check for contributors ([ab81aab](https://gitlab.com/openstapps/configuration/commit/ab81aab046248e8b8379576914b58e23a03fec45)) - add check for contributors ([ab81aab](https://gitlab.com/openstapps/configuration/commit/ab81aab046248e8b8379576914b58e23a03fec45))
* check entries in CI config ([61d2285](https://gitlab.com/openstapps/configuration/commit/61d2285a1fd76dee1c02fd2318a92cd2fbe4df71)), closes [#10](https://gitlab.com/openstapps/configuration/issues/10) - check entries in CI config ([61d2285](https://gitlab.com/openstapps/configuration/commit/61d2285a1fd76dee1c02fd2318a92cd2fbe4df71)), closes [#10](https://gitlab.com/openstapps/configuration/issues/10)
# [0.9.0](https://gitlab.com/openstapps/configuration/compare/v0.8.0...v0.9.0) (2019-04-08) # [0.9.0](https://gitlab.com/openstapps/configuration/compare/v0.8.0...v0.9.0) (2019-04-08)
# [0.8.0](https://gitlab.com/openstapps/configuration/compare/v0.7.0...v0.8.0) (2019-04-01) # [0.8.0](https://gitlab.com/openstapps/configuration/compare/v0.7.0...v0.8.0) (2019-04-01)
### Bug Fixes ### Bug Fixes
* remove @types/chalk ([bf26eff](https://gitlab.com/openstapps/configuration/commit/bf26effe688299ba18047ca3a8c412ddd162b9c1)) - remove @types/chalk ([bf26eff](https://gitlab.com/openstapps/configuration/commit/bf26effe688299ba18047ca3a8c412ddd162b9c1))
# [0.7.0](https://gitlab.com/openstapps/configuration/compare/v0.6.0...v0.7.0) (2019-02-26) # [0.7.0](https://gitlab.com/openstapps/configuration/compare/v0.6.0...v0.7.0) (2019-02-26)
### Features ### Features
* add ability to check scripts ([662f534](https://gitlab.com/openstapps/configuration/commit/662f53455097ba13c84e20111d99bf60c3f967c2)), closes [#6](https://gitlab.com/openstapps/configuration/issues/6) - add ability to check scripts ([662f534](https://gitlab.com/openstapps/configuration/commit/662f53455097ba13c84e20111d99bf60c3f967c2)), closes [#6](https://gitlab.com/openstapps/configuration/issues/6)
# [0.6.0](https://gitlab.com/openstapps/configuration/compare/v0.5.1...v0.6.0) (2019-02-13) # [0.6.0](https://gitlab.com/openstapps/configuration/compare/v0.5.1...v0.6.0) (2019-02-13)
### Bug Fixes ### Bug Fixes
* correctly check tslint.json ([9c8ce48](https://gitlab.com/openstapps/configuration/commit/9c8ce486ce03ebff344b53b566afa3e164c60647)), closes [#3](https://gitlab.com/openstapps/configuration/issues/3) [#4](https://gitlab.com/openstapps/configuration/issues/4) - correctly check tslint.json ([9c8ce48](https://gitlab.com/openstapps/configuration/commit/9c8ce486ce03ebff344b53b566afa3e164c60647)), closes [#3](https://gitlab.com/openstapps/configuration/issues/3) [#4](https://gitlab.com/openstapps/configuration/issues/4)
## [0.5.1](https://gitlab.com/openstapps/configuration/compare/v0.5.0...v0.5.1) (2019-01-28) ## [0.5.1](https://gitlab.com/openstapps/configuration/compare/v0.5.0...v0.5.1) (2019-01-28)
### Bug Fixes ### Bug Fixes
* exclude CLI file in nyc configuration ([c46dc18](https://gitlab.com/openstapps/configuration/commit/c46dc1828c826c7025017314fdf2fdce70a58772)), closes [#5](https://gitlab.com/openstapps/configuration/issues/5) - exclude CLI file in nyc configuration ([c46dc18](https://gitlab.com/openstapps/configuration/commit/c46dc1828c826c7025017314fdf2fdce70a58772)), closes [#5](https://gitlab.com/openstapps/configuration/issues/5)
# [0.5.0](https://gitlab.com/openstapps/configuration/compare/v0.4.0...v0.5.0) (2018-12-18) # [0.5.0](https://gitlab.com/openstapps/configuration/compare/v0.4.0...v0.5.0) (2018-12-18)
### Bug Fixes ### Bug Fixes
* use template for .gitignore ([04b6154](https://gitlab.com/openstapps/configuration/commit/04b6154f9a13e68db00a2d80f54a719482c9a4f9)) - use template for .gitignore ([04b6154](https://gitlab.com/openstapps/configuration/commit/04b6154f9a13e68db00a2d80f54a719482c9a4f9))
# [0.4.0](https://gitlab.com/openstapps/configuration/compare/v0.3.1...v0.4.0) (2018-12-11) # [0.4.0](https://gitlab.com/openstapps/configuration/compare/v0.3.1...v0.4.0) (2018-12-11)
### Features ### Features
* disallow spaces in curly braces ([4e14415](https://gitlab.com/openstapps/configuration/commit/4e1441564b6785c118f14ac94659cf1339c0dac3)), closes [#2](https://gitlab.com/openstapps/configuration/issues/2) - disallow spaces in curly braces ([4e14415](https://gitlab.com/openstapps/configuration/commit/4e1441564b6785c118f14ac94659cf1339c0dac3)), closes [#2](https://gitlab.com/openstapps/configuration/issues/2)
## [0.3.1](https://gitlab.com/openstapps/configuration/compare/v0.3.0...v0.3.1) (2018-12-04) ## [0.3.1](https://gitlab.com/openstapps/configuration/compare/v0.3.0...v0.3.1) (2018-12-04)
# [0.3.0](https://gitlab.com/openstapps/configuration/compare/v0.2.0...v0.3.0) (2018-12-04) # [0.3.0](https://gitlab.com/openstapps/configuration/compare/v0.2.0...v0.3.0) (2018-12-04)
### Features ### Features
* add cli to copy configurations ([98aa5a5](https://gitlab.com/openstapps/configuration/commit/98aa5a5f70bb17ca05574a291831158eea7920ef)), closes [#1](https://gitlab.com/openstapps/configuration/issues/1) - add cli to copy configurations ([98aa5a5](https://gitlab.com/openstapps/configuration/commit/98aa5a5f70bb17ca05574a291831158eea7920ef)), closes [#1](https://gitlab.com/openstapps/configuration/issues/1)
* add script to check configuration ([adfc5aa](https://gitlab.com/openstapps/configuration/commit/adfc5aa5dc149cb6d634015baceea5839ae29190)) - add script to check configuration ([adfc5aa](https://gitlab.com/openstapps/configuration/commit/adfc5aa5dc149cb6d634015baceea5839ae29190))
# [0.2.0](https://gitlab.com/openstapps/configuration/compare/v0.1.1...v0.2.0) (2018-11-30) # [0.2.0](https://gitlab.com/openstapps/configuration/compare/v0.1.1...v0.2.0) (2018-11-30)
### Features ### Features
* copy .editorconfig during installation ([f228af2](https://gitlab.com/openstapps/configuration/commit/f228af24f9a20457f89719c093cc9239f35cf0b3)) - copy .editorconfig during installation ([f228af2](https://gitlab.com/openstapps/configuration/commit/f228af24f9a20457f89719c093cc9239f35cf0b3))
## [0.1.1](https://gitlab.com/openstapps/configuration/compare/v0.1.0...v0.1.1) (2018-11-30) ## [0.1.1](https://gitlab.com/openstapps/configuration/compare/v0.1.0...v0.1.1) (2018-11-30)
# [0.1.0](https://gitlab.com/openstapps/configuration/compare/v0.0.1...v0.1.0) (2018-11-30) # [0.1.0](https://gitlab.com/openstapps/configuration/compare/v0.0.1...v0.1.0) (2018-11-30)
### Features ### Features
* add editor config ([ecbc768](https://gitlab.com/openstapps/configuration/commit/ecbc768b32daab5f32c5f91aeac9252937586465)) - add editor config ([ecbc768](https://gitlab.com/openstapps/configuration/commit/ecbc768b32daab5f32c5f91aeac9252937586465))
## [0.0.1](https://gitlab.com/openstapps/configuration/compare/e2bb08d1e879f8e2aac0f59930f50ff9dfe7526b...v0.0.1) (2018-11-28) ## [0.0.1](https://gitlab.com/openstapps/configuration/compare/e2bb08d1e879f8e2aac0f59930f50ff9dfe7526b...v0.0.1) (2018-11-28)
### Features ### Features
* add tslint and tsconfig ([e2bb08d](https://gitlab.com/openstapps/configuration/commit/e2bb08d1e879f8e2aac0f59930f50ff9dfe7526b)) - add tslint and tsconfig ([e2bb08d](https://gitlab.com/openstapps/configuration/commit/e2bb08d1e879f8e2aac0f59930f50ff9dfe7526b))

View File

@@ -1,2 +1,2 @@
#!/usr/bin/env node #!/usr/bin/env node
require('./lib/cli.js') import './lib/cli.js';

View File

@@ -2,6 +2,7 @@
"name": "@openstapps/configuration", "name": "@openstapps/configuration",
"description": "A collection of configuration base files for StApps projects.", "description": "A collection of configuration base files for StApps projects.",
"version": "2.1.0", "version": "2.1.0",
"type": "module",
"license": "GPL-3.0-only", "license": "GPL-3.0-only",
"repository": "git@gitlab.com:openstapps/configuration.git", "repository": "git@gitlab.com:openstapps/configuration.git",
"author": "Karl-Philipp Wulfert <krlwlfrt@gmail.com>", "author": "Karl-Philipp Wulfert <krlwlfrt@gmail.com>",
@@ -16,8 +17,7 @@
"openstapps-configuration": "app.js" "openstapps-configuration": "app.js"
}, },
"scripts": { "scripts": {
"build": "npm run lint && npm run compile", "build": "rimraf lib && tsc --outDir lib",
"compile": "rimraf lib && tsc --outDir lib",
"documentation": "typedoc --out docs --readme README.md --includeVersion --listInvalidSymbolLinks --entryPointStrategy expand src", "documentation": "typedoc --out docs --readme README.md --includeVersion --listInvalidSymbolLinks --entryPointStrategy expand src",
"format:fix": "prettier --write .", "format:fix": "prettier --write .",
"lint": "eslint -c .eslintrc.json --ignore-path .eslintignore --ext .ts src/", "lint": "eslint -c .eslintrc.json --ignore-path .eslintignore --ext .ts src/",
@@ -48,10 +48,10 @@
"eslint-plugin-unicorn": "45.0.2", "eslint-plugin-unicorn": "45.0.2",
"prettier": "2.8.3", "prettier": "2.8.3",
"rimraf": "4.4.0", "rimraf": "4.4.0",
"typedoc": "0.22.18", "typedoc": "0.23.26",
"typescript": "4.4.4" "typescript": "4.8.4"
}, },
"peerDependencies": { "peerDependencies": {
"typescript": "4.4.4" "typescript": "4.8.4"
} }
} }

View File

@@ -30,7 +30,7 @@ import {
consoleLog, consoleLog,
getConfiguration, getConfiguration,
getRules, getRules,
} from './common'; } from './common.js';
// current working directory // current working directory
const currentWorkingDirectory = cwd(); const currentWorkingDirectory = cwd();

View File

@@ -8,10 +8,14 @@
"forceConsistentCasingInFileNames": true, "forceConsistentCasingInFileNames": true,
"skipLibCheck": true, "skipLibCheck": true,
"inlineSourceMap": true, "inlineSourceMap": true,
"module": "CommonJS", "module": "NodeNext",
"moduleResolution": "node", "moduleResolution": "NodeNext",
"noErrorTruncation": true, "noErrorTruncation": true,
"noFallthroughCasesInSwitch": true, "noFallthroughCasesInSwitch": true,
"isolatedModules": true,
"allowJs": true,
"resolveJsonModule": true,
"allowSyntheticDefaultImports": true,
"noImplicitAny": true, "noImplicitAny": true,
"noImplicitReturns": true, "noImplicitReturns": true,
"noUnusedLocals": true, "noUnusedLocals": true,
@@ -19,10 +23,7 @@
"outDir": "../../../lib/", "outDir": "../../../lib/",
"lib": ["ES2021", "DOM"], "lib": ["ES2021", "DOM"],
"strict": true, "strict": true,
"target": "es6" "target": "ES2021"
}, },
"exclude": [ "exclude": ["../../../app.js", "../../../lib/", "../../../test/"]
"../../../lib/",
"../../../test/"
]
} }

View File

@@ -1,12 +1,16 @@
module.exports = { module.exports = {
root: true, root: true,
ignorePatterns: ['projects/**/*'], ignorePatterns: ['projects/**/*'],
parserOptions: {
sourceType: 'module',
ecmaVersion: 2021,
},
overrides: [ overrides: [
{ {
files: ['*.ts'], files: ['*.ts'],
parser: '@typescript-eslint/parser', parser: '@typescript-eslint/parser',
parserOptions: { parserOptions: {
ecmaVersion: 2020, ecmaVersion: 2021,
sourceType: 'module', sourceType: 'module',
project: ['tsconfig.json'], project: ['tsconfig.json'],
createDefaultProgram: true, createDefaultProgram: true,

View File

@@ -2,6 +2,7 @@
"name": "@openstapps/eslint-config", "name": "@openstapps/eslint-config",
"description": "A collection of configuration base files for StApps projects.", "description": "A collection of configuration base files for StApps projects.",
"version": "2.1.0", "version": "2.1.0",
"type": "commonjs",
"license": "GPL-3.0-only", "license": "GPL-3.0-only",
"repository": "git@gitlab.com:openstapps/eslint-config.git", "repository": "git@gitlab.com:openstapps/eslint-config.git",
"author": "Thea Schöbl", "author": "Thea Schöbl",
@@ -27,7 +28,7 @@
"eslint-plugin-prettier": "4.2.1", "eslint-plugin-prettier": "4.2.1",
"eslint-plugin-unicorn": "45.0.2", "eslint-plugin-unicorn": "45.0.2",
"prettier": "2.8.3", "prettier": "2.8.3",
"typescript": "4.4.4" "typescript": "4.8.4"
}, },
"peerDependencies": { "peerDependencies": {
"@typescript-eslint/eslint-plugin": "5.49.0", "@typescript-eslint/eslint-plugin": "5.49.0",

View File

@@ -2,6 +2,7 @@
"name": "@openstapps/prettier-config", "name": "@openstapps/prettier-config",
"description": "StApps Prettier Config", "description": "StApps Prettier Config",
"version": "2.1.0", "version": "2.1.0",
"type": "module",
"license": "GPL-3.0-only", "license": "GPL-3.0-only",
"repository": "git@gitlab.com:openstapps/prettier-config.git", "repository": "git@gitlab.com:openstapps/prettier-config.git",
"author": "Thea Schöbl <dev@theaninova.de>", "author": "Thea Schöbl <dev@theaninova.de>",

View File

@@ -1,2 +1,2 @@
#!/usr/bin/env node #!/usr/bin/env node
require('./lib/cli.js') import './lib/cli.js';

View File

@@ -2,6 +2,7 @@
"name": "@openstapps/projectmanagement", "name": "@openstapps/projectmanagement",
"description": "Main documentation and scripts for maintenance.", "description": "Main documentation and scripts for maintenance.",
"version": "2.1.0", "version": "2.1.0",
"type": "module",
"license": "GPL-3.0-only", "license": "GPL-3.0-only",
"repository": "git@gitlab.com:openstapps/projectmanagement.git", "repository": "git@gitlab.com:openstapps/projectmanagement.git",
"author": "Karl-Philipp Wulfert <krlwlfrt@gmail.com>", "author": "Karl-Philipp Wulfert <krlwlfrt@gmail.com>",
@@ -67,8 +68,8 @@
"prettier": "2.8.3", "prettier": "2.8.3",
"rimraf": "4.4.0", "rimraf": "4.4.0",
"ts-node": "10.9.1", "ts-node": "10.9.1",
"typedoc": "0.22.18", "typedoc": "0.23.26",
"typescript": "4.4.4" "typescript": "4.8.4"
}, },
"nyc": { "nyc": {
"all": true, "all": true,

View File

@@ -14,17 +14,17 @@
*/ */
import {Api} from '@openstapps/gitlab-api'; import {Api} from '@openstapps/gitlab-api';
import {Logger} from '@openstapps/logger'; import {Logger} from '@openstapps/logger';
import {AddLogLevel} from '@openstapps/logger/lib/transformations/add-log-level'; import {AddLogLevel} from '@openstapps/logger/lib/transformations/add-log-level.js';
import {Colorize} from '@openstapps/logger/lib/transformations/colorize'; import {Colorize} from '@openstapps/logger/lib/transformations/colorize.js';
import {Command} from 'commander'; import {Command} from 'commander';
import {existsSync, readFileSync} from 'fs'; import {existsSync, readFileSync} from 'fs';
import path from 'path'; import path from 'path';
import {cwd, stdout} from 'process'; import {cwd, stdout} from 'process';
import {GITLAB_API_URL} from './configuration'; import {GITLAB_API_URL} from './configuration.js';
import {getUsedVersionMajorMinor} from './tasks/get-used-version'; import {getUsedVersionMajorMinor} from './tasks/get-used-version.js';
import {remind} from './tasks/remind'; import {remind} from './tasks/remind.js';
import {tidy} from './tasks/tidy'; import {tidy} from './tasks/tidy.js';
import {unlabel} from './tasks/unlabel'; import {unlabel} from './tasks/unlabel.js';
// add default handler for unhandled rejections // add default handler for unhandled rejections
process.on('unhandledRejection', async reason => { process.on('unhandledRejection', async reason => {

View File

@@ -13,7 +13,7 @@
* this program. If not, see <https://www.gnu.org/licenses/>. * this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
import {Api} from '@openstapps/gitlab-api'; import {Api} from '@openstapps/gitlab-api';
import {Project} from '@openstapps/gitlab-api/lib/types'; import {Project} from '@openstapps/gitlab-api/lib/types.js';
import {Logger} from '@openstapps/logger'; import {Logger} from '@openstapps/logger';
/** /**

View File

@@ -12,7 +12,7 @@
* You should have received a copy of the GNU General Public License along with * You should have received a copy of the GNU General Public License along with
* this program. If not, see <https://www.gnu.org/licenses/>. * this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
import {Label} from '@openstapps/gitlab-api/lib/types'; import {Label} from '@openstapps/gitlab-api/lib/types.js';
import setHours from 'date-fns/setHours'; import setHours from 'date-fns/setHours';
import nextThursday from 'date-fns/nextThursday'; import nextThursday from 'date-fns/nextThursday';
import previousThursday from 'date-fns/previousThursday'; import previousThursday from 'date-fns/previousThursday';

View File

@@ -20,10 +20,10 @@ import {
MergeRequestState, MergeRequestState,
Scope, Scope,
User, User,
} from '@openstapps/gitlab-api/lib/types'; } from '@openstapps/gitlab-api/lib/types.js';
import {Logger} from '@openstapps/logger'; import {Logger} from '@openstapps/logger';
import {WebClient} from '@slack/web-api'; import {WebClient} from '@slack/web-api';
import {GROUPS, MAX_DEPTH_FOR_REMINDER, NOTE_PREFIX, SLACK_CHANNEL} from '../configuration'; import {GROUPS, MAX_DEPTH_FOR_REMINDER, NOTE_PREFIX, SLACK_CHANNEL} from '../configuration.js';
/** /**
* Remind people of open merge requests * Remind people of open merge requests

View File

@@ -20,13 +20,13 @@ import {
MergeRequestState, MergeRequestState,
Project, Project,
User, User,
} from '@openstapps/gitlab-api/lib/types'; } from '@openstapps/gitlab-api/lib/types.js';
import {Logger} from '@openstapps/logger'; import {Logger} from '@openstapps/logger';
import {render} from 'mustache'; import mustache from 'mustache';
import path from 'path'; import path from 'path';
import {cwd} from 'process'; import {cwd} from 'process';
import {getProjects} from '../common'; import {getProjects} from '../common.js';
import {BOLD_LABELS, GROUPS, LABEL_WEIGHTS, NEXT_MEETING} from '../configuration'; import {BOLD_LABELS, GROUPS, LABEL_WEIGHTS, NEXT_MEETING} from '../configuration.js';
import differenceInWeeks from 'date-fns/differenceInWeeks'; import differenceInWeeks from 'date-fns/differenceInWeeks';
import formatISO from 'date-fns/formatISO'; import formatISO from 'date-fns/formatISO';
import format from 'date-fns/format'; import format from 'date-fns/format';
@@ -446,7 +446,7 @@ export async function generateReport(api: Api, label: string, template: string):
timestamp: format(Date.now(), 'PPPPpp', {locale: de}), timestamp: format(Date.now(), 'PPPPpp', {locale: de}),
}; };
return render(template, structureForTemplate); return mustache.render(template, structureForTemplate);
} }
/** /**

View File

@@ -21,9 +21,9 @@ import {
Milestone, Milestone,
Project, Project,
Scope, Scope,
} from '@openstapps/gitlab-api/lib/types'; } from '@openstapps/gitlab-api/lib/types.js';
import {Logger} from '@openstapps/logger'; import {Logger} from '@openstapps/logger';
import {getProjects} from '../common'; import {getProjects} from '../common.js';
import { import {
GROUPS, GROUPS,
NEEDED_LABELS, NEEDED_LABELS,
@@ -31,7 +31,7 @@ import {
NOTE_PREFIX, NOTE_PREFIX,
PROTECTED_BRANCHES, PROTECTED_BRANCHES,
SCHOOLS, SCHOOLS,
} from '../configuration'; } from '../configuration.js';
/** /**
* Tidy issues without milestone * Tidy issues without milestone

View File

@@ -13,9 +13,9 @@
* this program. If not, see <https://www.gnu.org/licenses/>. * this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
import {Api} from '@openstapps/gitlab-api'; import {Api} from '@openstapps/gitlab-api';
import {IssueState, Scope} from '@openstapps/gitlab-api/lib/types'; import {IssueState, Scope} from '@openstapps/gitlab-api/lib/types.js';
import {Logger} from '@openstapps/logger'; import {Logger} from '@openstapps/logger';
import {GROUPS, LAST_MEETING, NOTE_PREFIX} from '../configuration'; import {GROUPS, LAST_MEETING, NOTE_PREFIX} from '../configuration.js';
import isBefore from 'date-fns/isBefore'; import isBefore from 'date-fns/isBefore';
/** /**

View File

@@ -5,7 +5,7 @@ import {execSync} from 'child_process';
import {suite, test} from '@testdeck/mocha'; import {suite, test} from '@testdeck/mocha';
import {join} from 'path'; import {join} from 'path';
import {dirSync} from 'tmp'; import {dirSync} from 'tmp';
import {getUsedVersion, getUsedVersionMajorMinor} from '../src/tasks/get-used-version'; import {getUsedVersion, getUsedVersionMajorMinor} from '../src/tasks/get-used-version.js';
chai.use(chaiAsPromised); chai.use(chaiAsPromised);
chai.should(); chai.should();

View File

@@ -0,0 +1,2 @@
#!/usr/bin/env node
import './lib/cli.js'

View File

@@ -2,6 +2,7 @@
"name": "@openstapps/minimal-connector", "name": "@openstapps/minimal-connector",
"description": "This is a minimal connector which serves as an example", "description": "This is a minimal connector which serves as an example",
"version": "2.1.0", "version": "2.1.0",
"type": "module",
"license": "GPL-3.0-only", "license": "GPL-3.0-only",
"repository": "git@gitlab.com:openstapps/minimal-connector.git", "repository": "git@gitlab.com:openstapps/minimal-connector.git",
"author": "Anselm Stordeur <anselmstordeur@gmail.com>", "author": "Anselm Stordeur <anselmstordeur@gmail.com>",
@@ -48,8 +49,8 @@
"nyc": "15.1.0", "nyc": "15.1.0",
"rimraf": "4.4.0", "rimraf": "4.4.0",
"ts-node": "10.9.1", "ts-node": "10.9.1",
"typedoc": "0.22.18", "typedoc": "0.23.26",
"typescript": "4.4.4" "typescript": "4.8.4"
}, },
"nyc": { "nyc": {
"all": true, "all": true,

View File

@@ -1,5 +1,3 @@
#!/usr/bin/env node
/* /*
* Copyright (C) 2018, 2019 StApps * Copyright (C) 2018, 2019 StApps
* This program is free software: you can redistribute it and/or modify it * This program is free software: you can redistribute it and/or modify it
@@ -18,8 +16,8 @@ import {Logger} from '@openstapps/logger';
import {Command} from 'commander'; import {Command} from 'commander';
import {readFileSync} from 'fs'; import {readFileSync} from 'fs';
import {join} from 'path'; import {join} from 'path';
import {executeConnector, isValidSCNamespace} from './common'; import {executeConnector, isValidSCNamespace} from './common.js';
import {MinimalConnector} from './minimal-connector'; import {MinimalConnector} from './minimal-connector.js';
process.on('unhandledRejection', (error) => { process.on('unhandledRejection', (error) => {
throw error; throw error;

View File

@@ -12,14 +12,14 @@
* You should have received a copy of the GNU General Public License along with * You should have received a copy of the GNU General Public License along with
* this program. If not, see <https://www.gnu.org/licenses/>. * this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
import {ConnectorClient} from '@openstapps/api/lib/connector-client'; import {ConnectorClient} from '@openstapps/api/lib/connector-client.js';
import {HttpClient} from '@openstapps/api/lib/http-client'; import {HttpClient} from '@openstapps/api/lib/http-client.js';
import { import {
SCLicensePlate, SCLicensePlate,
SCNamespaces, SCNamespaces,
SCThings, SCThings,
} from '@openstapps/core'; } from '@openstapps/core';
import {Connector} from './connector'; import {Connector} from './connector.js';
/** /**
* Checks if the input is a valid SCNamespace * Checks if the input is a valid SCNamespace

View File

@@ -13,7 +13,7 @@
* this program. If not, see <https://www.gnu.org/licenses/>. * this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
import {SCLicensePlate, SCThingOriginType, SCThingRemoteOrigin, SCThings} from '@openstapps/core'; import {SCLicensePlate, SCThingOriginType, SCThingRemoteOrigin, SCThings} from '@openstapps/core';
import {createUUID} from './common'; import {createUUID} from './common.js';
/** /**
* Provides abstracted methods for the connector execution process * Provides abstracted methods for the connector execution process

View File

@@ -13,8 +13,8 @@
* this program. If not, see <https://www.gnu.org/licenses/>. * this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
import {SCLicensePlate, SCMessage, SCThingRemoteOrigin, SCThingType} from '@openstapps/core'; import {SCLicensePlate, SCMessage, SCThingRemoteOrigin, SCThingType} from '@openstapps/core';
import {createUUID} from './common'; import {createUUID} from './common.js';
import {Connector} from './connector'; import {Connector} from './connector.js';
/** /**
* Example connector * Example connector

View File

@@ -15,8 +15,8 @@
import {SCThingType, SCBulkResponse, SCLicensePlate} from '@openstapps/core'; import {SCThingType, SCBulkResponse, SCLicensePlate} from '@openstapps/core';
import {expect} from 'chai'; import {expect} from 'chai';
import {suite, test} from '@testdeck/mocha'; import {suite, test} from '@testdeck/mocha';
import {MinimalConnector} from '../src/minimal-connector'; import {MinimalConnector} from '../src/minimal-connector.js';
import {createUUID, executeConnector, isValidSCNamespace} from '../src/common'; import {createUUID, executeConnector, isValidSCNamespace} from '../src/common.js';
import nock = require('nock'); import nock = require('nock');
@suite @suite

View File

@@ -15,7 +15,7 @@
import {SCThingOriginType} from '@openstapps/core'; import {SCThingOriginType} from '@openstapps/core';
import {expect} from 'chai'; import {expect} from 'chai';
import {suite, test} from '@testdeck/mocha'; import {suite, test} from '@testdeck/mocha';
import {MinimalConnector} from '../src/minimal-connector'; import {MinimalConnector} from '../src/minimal-connector.js';
@suite @suite
export class ConnectorSpec { export class ConnectorSpec {

View File

@@ -17,7 +17,7 @@ import {Validator} from '@openstapps/core-tools/lib/validate';
import {expect} from 'chai'; import {expect} from 'chai';
import {suite, test} from '@testdeck/mocha'; import {suite, test} from '@testdeck/mocha';
import {join} from 'path'; import {join} from 'path';
import {MinimalConnector} from '../src/minimal-connector'; import {MinimalConnector} from '../src/minimal-connector.js';
@suite @suite
export class MinimalConnectorSpec { export class MinimalConnectorSpec {

View File

@@ -0,0 +1,2 @@
#!/usr/bin/env node
import './lib/cli.js'

View File

@@ -2,6 +2,7 @@
"name": "@openstapps/minimal-plugin", "name": "@openstapps/minimal-plugin",
"description": "Minimal Plugin", "description": "Minimal Plugin",
"version": "2.1.0", "version": "2.1.0",
"type": "module",
"license": "GPL-3.0-only", "license": "GPL-3.0-only",
"author": "Thea Schöbl", "author": "Thea Schöbl",
"contributors": [ "contributors": [
@@ -36,7 +37,7 @@
"@types/node": "18.15.3", "@types/node": "18.15.3",
"conventional-changelog-cli": "2.2.2", "conventional-changelog-cli": "2.2.2",
"rimraf": "4.4.0", "rimraf": "4.4.0",
"typedoc": "0.22.18", "typedoc": "0.23.26",
"typescript": "4.4.4" "typescript": "4.8.4"
} }
} }

View File

@@ -1,5 +1,3 @@
#!/usr/bin/env node
/* /*
* Copyright (C) 2019-2021 StApps * Copyright (C) 2019-2021 StApps
* This program is free software: you can redistribute it and/or modify it * This program is free software: you can redistribute it and/or modify it
@@ -15,14 +13,14 @@
* this program. If not, see <https://www.gnu.org/licenses/>. * this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
import {HttpClient} from '@openstapps/api/lib/http-client'; import {HttpClient} from '@openstapps/api/lib/http-client.js';
import {PluginClient} from '@openstapps/api/lib/plugin-client'; import {PluginClient} from '@openstapps/api/lib/plugin-client.js';
import {Converter} from '@openstapps/core-tools/lib/schema'; import {Converter} from '@openstapps/core-tools/lib/schema.js';
import {Logger} from '@openstapps/logger'; import {Logger} from '@openstapps/logger';
import {Command, Option} from 'commander'; import {Command, Option} from 'commander';
import {readFileSync} from 'fs'; import {readFileSync} from 'fs';
import {join, resolve} from 'path'; import {join, resolve} from 'path';
import {MinimalPlugin} from './plugin/minimal-plugin'; import {MinimalPlugin} from './plugin/minimal-plugin.js';
process.on('unhandledRejection', (error) => { process.on('unhandledRejection', (error) => {

View File

@@ -12,10 +12,10 @@
* You should have received a copy of the GNU General Public License along with * You should have received a copy of the GNU General Public License along with
* this program. If not, see <https://www.gnu.org/licenses/>. * this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
import {Plugin} from '@openstapps/api/lib/plugin'; import {Plugin} from '@openstapps/api/lib/plugin.js';
import * as express from 'express'; import * as express from 'express';
import {SCMinimalRequest} from './protocol/request'; import {SCMinimalRequest} from './protocol/request.js';
import {SCMinimalResponse} from './protocol/response'; import {SCMinimalResponse} from './protocol/response.js';
/** /**
* The Plugin Class * The Plugin Class

View File

@@ -12,7 +12,7 @@
* You should have received a copy of the GNU General Public License along with * You should have received a copy of the GNU General Public License along with
* this program. If not, see <https://www.gnu.org/licenses/>. * this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
import type {IconConfig} from './scripts/icon-config'; import type {IconConfig} from './scripts/icon-config.js';
const config: IconConfig = { const config: IconConfig = {
inputPath: 'node_modules/material-symbols/material-symbols-rounded.woff2', inputPath: 'node_modules/material-symbols/material-symbols-rounded.woff2',

View File

@@ -170,7 +170,7 @@
"protractor": "7.0.0", "protractor": "7.0.0",
"surge": "0.23.1", "surge": "0.23.1",
"ts-node": "10.9.1", "ts-node": "10.9.1",
"typescript": "4.4.4", "typescript": "4.8.4",
"webpack-bundle-analyzer": "4.7.0" "webpack-bundle-analyzer": "4.7.0"
}, },
"cordova": { "cordova": {

View File

@@ -13,8 +13,8 @@
* this program. If not, see <https://www.gnu.org/licenses/>. * this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
import fs from 'fs'; import fs from 'fs';
import {omit} from '../src/app/_helpers/collections/omit'; import {omit} from '../src/app/_helpers/collections/omit.js';
import {pickBy} from '../src/app/_helpers/collections/pick'; import {pickBy} from '../src/app/_helpers/collections/pick.js';
/** /**
* accumulate and transform licenses based on two license files * accumulate and transform licenses based on two license files

View File

@@ -15,7 +15,7 @@
import fontkit, {Font} from 'fontkit'; import fontkit, {Font} from 'fontkit';
import config from '../icons.config'; import config from '../icons.config';
import {existsSync} from 'fs'; import {existsSync} from 'fs';
import {getUsedIconsHtml, getUsedIconsTS} from './gather-used-icons'; import {getUsedIconsHtml, getUsedIconsTS} from './gather-used-icons.js';
const commandName = '"npm run minify-icons"'; const commandName = '"npm run minify-icons"';
const originalFont = fontkit.openSync(config.inputPath); const originalFont = fontkit.openSync(config.inputPath);

View File

@@ -14,7 +14,7 @@
*/ */
import glob from 'glob'; import glob from 'glob';
import {readFileSync} from 'fs'; import {readFileSync} from 'fs';
import {matchPropertyContent, matchTagProperties} from '../src/app/util/ion-icon/icon-match'; import {matchPropertyContent, matchTagProperties} from '../src/app/util/ion-icon/icon-match.js';
const globPromise = (pattern: string) => const globPromise = (pattern: string) =>
new Promise<string[]>((resolve, reject) => new Promise<string[]>((resolve, reject) =>

View File

@@ -18,7 +18,7 @@ import fontkit from 'fontkit';
import {exec} from 'child_process'; import {exec} from 'child_process';
import config from '../icons.config'; import config from '../icons.config';
import {statSync} from 'fs'; import {statSync} from 'fs';
import {getUsedIconsHtml, getUsedIconsTS} from './gather-used-icons'; import {getUsedIconsHtml, getUsedIconsTS} from './gather-used-icons.js';
/** /**
* *

View File

@@ -13,7 +13,7 @@
* this program. If not, see <https://www.gnu.org/licenses/>. * this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
import {chunk} from './chunk'; import {chunk} from './chunk.js';
describe('chunk', function () { describe('chunk', function () {
it('should chunk items in the correct sizes', function () { it('should chunk items in the correct sizes', function () {

View File

@@ -13,7 +13,7 @@
* this program. If not, see <https://www.gnu.org/licenses/>. * this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
import {differenceBy} from './difference'; import {differenceBy} from './difference.js';
describe('differenceBy', function () { describe('differenceBy', function () {
it('should return the difference of two arrays', function () { it('should return the difference of two arrays', function () {

View File

@@ -12,7 +12,7 @@
* You should have received a copy of the GNU General Public License along with * You should have received a copy of the GNU General Public License along with
* this program. If not, see <https://www.gnu.org/licenses/>. * this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
import {get} from './get'; import {get} from './get.js';
describe('get', function () { describe('get', function () {
it('should get a simple path', function () { it('should get a simple path', function () {

View File

@@ -13,7 +13,7 @@
* this program. If not, see <https://www.gnu.org/licenses/>. * this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
import {groupBy, groupByStable, groupByProperty} from './group-by'; import {groupBy, groupByStable, groupByProperty} from './group-by.js';
describe('groupBy', () => { describe('groupBy', () => {
it('should group an array by a key', () => { it('should group an array by a key', () => {

Some files were not shown because too many files have changed in this diff Show More