@silexlabs/silex 3.0.1-alpha.0 → 3.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.default +20 -0
- package/.silex.js +67 -8
- package/LICENSE +661 -203
- package/README.md +37 -35
- package/dist/client/client/api.d.ts +90 -0
- package/dist/client/client/assetUrl.d.ts +54 -0
- package/dist/client/client/config.d.ts +102 -0
- package/dist/client/client/events.d.ts +23 -0
- package/dist/client/client/expose.d.ts +8 -0
- package/dist/client/client/grapesjs/LoginDialog.d.ts +15 -0
- package/dist/client/client/grapesjs/PublicationManager.d.ts +73 -0
- package/dist/client/client/grapesjs/PublicationUi.d.ts +59 -0
- package/dist/client/client/grapesjs/blocks.d.ts +1 -0
- package/dist/client/client/grapesjs/breadcrumbs.d.ts +1 -0
- package/dist/client/client/grapesjs/css-props.d.ts +6 -0
- package/dist/client/client/grapesjs/footer.d.ts +2 -0
- package/dist/client/client/grapesjs/img.d.ts +6 -0
- package/dist/client/client/grapesjs/index.d.ts +9 -0
- package/dist/client/client/grapesjs/internal-links.d.ts +1 -0
- package/dist/client/client/grapesjs/keymaps.d.ts +123 -0
- package/dist/client/client/grapesjs/new-page-dialog.d.ts +2 -0
- package/dist/client/client/grapesjs/openImport.d.ts +9 -0
- package/dist/client/client/grapesjs/page-panel.d.ts +9 -0
- package/dist/client/client/grapesjs/project-bar.d.ts +21 -0
- package/dist/client/client/grapesjs/resize-panel.d.ts +1 -0
- package/dist/client/client/grapesjs/rich-text.d.ts +4 -0
- package/dist/client/client/grapesjs/semantic.d.ts +1 -0
- package/dist/client/client/grapesjs/settings-sections.d.ts +16 -0
- package/dist/client/client/grapesjs/settings.d.ts +4 -0
- package/dist/client/client/grapesjs/storage.d.ts +2 -0
- package/dist/client/client/grapesjs/symbolDialogs.d.ts +3 -0
- package/dist/client/client/grapesjs/view-buttons.d.ts +1 -0
- package/dist/client/client/index.d.ts +10 -0
- package/dist/client/client/publication-transformers.d.ts +42 -0
- package/dist/client/client/publish-custom-code-block.d.ts +4 -0
- package/dist/client/client/publish-fonts.d.ts +4 -0
- package/dist/client/client/utils.d.ts +22 -0
- package/dist/client/constants.d.ts +32 -0
- package/dist/client/css/admin.css +1114 -328
- package/dist/client/css/admin.css.map +1 -0
- package/dist/client/grapesjs-filter-styles/dist/index.d.ts +4 -0
- package/dist/client/grapesjs-fonts/dist/index.d.ts +4 -0
- package/dist/client/grapesjs-fonts/src/commands.d.ts +3 -0
- package/dist/client/grapesjs-fonts/src/fonts.d.ts +4 -0
- package/dist/client/grapesjs-storage-rate-limit/dist/index.d.ts +4 -0
- package/dist/client/grapesjs-ui-suggest-classes/dist/index.d.ts +4 -0
- package/dist/client/index.html +3 -2
- package/dist/client/js/main.js +356 -131
- package/dist/client/js/main.js.LICENSE.txt +15 -1
- package/dist/client/page.d.ts +2 -0
- package/dist/client/silex-lib/src/ts/client/api.d.ts +90 -0
- package/dist/client/silex-lib/src/ts/client/assetUrl.d.ts +54 -0
- package/dist/client/silex-lib/src/ts/client/config.d.ts +102 -0
- package/dist/client/silex-lib/src/ts/client/events.d.ts +23 -0
- package/dist/client/silex-lib/src/ts/client/expose.d.ts +8 -0
- package/dist/client/silex-lib/src/ts/client/grapesjs/LoginDialog.d.ts +15 -0
- package/dist/client/silex-lib/src/ts/client/grapesjs/PublicationManager.d.ts +73 -0
- package/dist/client/silex-lib/src/ts/client/grapesjs/PublicationUi.d.ts +59 -0
- package/dist/client/silex-lib/src/ts/client/grapesjs/blocks.d.ts +1 -0
- package/dist/client/silex-lib/src/ts/client/grapesjs/breadcrumbs.d.ts +1 -0
- package/dist/client/silex-lib/src/ts/client/grapesjs/css-props.d.ts +6 -0
- package/dist/client/silex-lib/src/ts/client/grapesjs/footer.d.ts +2 -0
- package/dist/client/silex-lib/src/ts/client/grapesjs/img.d.ts +6 -0
- package/dist/client/silex-lib/src/ts/client/grapesjs/index.d.ts +9 -0
- package/dist/client/silex-lib/src/ts/client/grapesjs/internal-links.d.ts +1 -0
- package/dist/client/silex-lib/src/ts/client/grapesjs/keymaps.d.ts +123 -0
- package/dist/client/silex-lib/src/ts/client/grapesjs/new-page-dialog.d.ts +2 -0
- package/dist/client/silex-lib/src/ts/client/grapesjs/openImport.d.ts +9 -0
- package/dist/client/silex-lib/src/ts/client/grapesjs/page-panel.d.ts +9 -0
- package/dist/client/silex-lib/src/ts/client/grapesjs/project-bar.d.ts +21 -0
- package/dist/client/silex-lib/src/ts/client/grapesjs/resize-panel.d.ts +1 -0
- package/dist/client/silex-lib/src/ts/client/grapesjs/rich-text.d.ts +4 -0
- package/dist/client/silex-lib/src/ts/client/grapesjs/semantic.d.ts +1 -0
- package/dist/client/silex-lib/src/ts/client/grapesjs/settings-sections.d.ts +16 -0
- package/dist/client/silex-lib/src/ts/client/grapesjs/settings.d.ts +4 -0
- package/dist/client/silex-lib/src/ts/client/grapesjs/storage.d.ts +2 -0
- package/dist/client/silex-lib/src/ts/client/grapesjs/symbolDialogs.d.ts +3 -0
- package/dist/client/silex-lib/src/ts/client/grapesjs/view-buttons.d.ts +1 -0
- package/dist/client/silex-lib/src/ts/client/index.d.ts +10 -0
- package/dist/client/silex-lib/src/ts/client/publication-transformers.d.ts +42 -0
- package/dist/client/silex-lib/src/ts/client/publish-custom-code-block.d.ts +4 -0
- package/dist/client/silex-lib/src/ts/client/publish-fonts.d.ts +4 -0
- package/dist/client/silex-lib/src/ts/client/utils.d.ts +22 -0
- package/dist/client/silex-lib/src/ts/constants.d.ts +32 -0
- package/dist/client/silex-lib/src/ts/page.d.ts +2 -0
- package/dist/client/silex-lib/src/ts/types.d.ts +339 -0
- package/dist/client/types.d.ts +339 -0
- package/dist/plugins/client/client/events.d.ts +23 -0
- package/dist/plugins/client/client/events.js +43 -0
- package/dist/plugins/client/client/events.js.map +1 -0
- package/dist/plugins/client/plugins/client/template.d.ts +2 -0
- package/dist/plugins/client/plugins/client/template.js +234 -0
- package/dist/plugins/client/plugins/client/template.js.map +1 -0
- package/dist/plugins/client/plugins/client/website-info.d.ts +1 -0
- package/dist/plugins/client/plugins/client/website-info.js +72 -0
- package/dist/plugins/client/plugins/client/website-info.js.map +1 -0
- package/dist/plugins/client/types.d.ts +339 -0
- package/dist/plugins/client/types.js +80 -0
- package/dist/plugins/client/types.js.map +1 -0
- package/dist/plugins/server/constants.d.ts +32 -0
- package/dist/plugins/server/constants.js +76 -0
- package/dist/plugins/server/constants.js.map +1 -0
- package/dist/plugins/server/plugins/server/Cache.d.ts +2 -0
- package/dist/plugins/server/plugins/server/Cache.js +36 -0
- package/dist/plugins/server/plugins/server/Cache.js.map +1 -0
- package/dist/plugins/server/plugins/server/DownloadConnector.d.ts +29 -0
- package/dist/plugins/server/plugins/server/DownloadConnector.js +127 -0
- package/dist/plugins/server/plugins/server/DownloadConnector.js.map +1 -0
- package/dist/plugins/server/plugins/server/FtpConnector.d.ts +86 -0
- package/dist/plugins/server/plugins/server/FtpConnector.js +536 -0
- package/dist/plugins/server/plugins/server/FtpConnector.js.map +1 -0
- package/dist/plugins/server/plugins/server/GitlabConnector.d.ts +135 -0
- package/dist/plugins/server/plugins/server/GitlabConnector.js +649 -0
- package/dist/plugins/server/plugins/server/GitlabConnector.js.map +1 -0
- package/dist/plugins/server/plugins/server/GitlabHostingConnector.d.ts +16 -0
- package/dist/plugins/server/plugins/server/GitlabHostingConnector.js +209 -0
- package/dist/plugins/server/plugins/server/GitlabHostingConnector.js.map +1 -0
- package/dist/plugins/server/plugins/server/PublicationOptimizer.d.ts +0 -0
- package/dist/plugins/server/plugins/server/PublicationOptimizer.js +14 -0
- package/dist/plugins/server/plugins/server/PublicationOptimizer.js.map +1 -0
- package/dist/plugins/server/plugins/server/SslPlugin.d.ts +1 -0
- package/dist/plugins/server/plugins/server/SslPlugin.js +86 -0
- package/dist/plugins/server/plugins/server/SslPlugin.js.map +1 -0
- package/dist/plugins/server/plugins/server/StaticPlugin.d.ts +8 -0
- package/dist/plugins/server/plugins/server/StaticPlugin.js +45 -0
- package/dist/plugins/server/plugins/server/StaticPlugin.js.map +1 -0
- package/dist/plugins/server/server/config.d.ts +59 -0
- package/dist/plugins/server/server/config.js +181 -0
- package/dist/plugins/server/server/config.js.map +1 -0
- package/dist/plugins/server/server/connectors/FsHosting.d.ts +14 -0
- package/dist/plugins/server/server/connectors/FsHosting.js +66 -0
- package/dist/plugins/server/server/connectors/FsHosting.js.map +1 -0
- package/dist/plugins/server/server/connectors/FsStorage.d.ts +44 -0
- package/dist/plugins/server/server/connectors/FsStorage.js +261 -0
- package/dist/plugins/server/server/connectors/FsStorage.js.map +1 -0
- package/dist/plugins/server/server/connectors/connectors.d.ts +86 -0
- package/dist/plugins/server/server/connectors/connectors.js +126 -0
- package/dist/plugins/server/server/connectors/connectors.js.map +1 -0
- package/dist/plugins/server/server/events.d.ts +26 -0
- package/dist/plugins/server/server/events.js +31 -0
- package/dist/plugins/server/server/events.js.map +1 -0
- package/dist/plugins/server/server/jobs.d.ts +12 -0
- package/dist/plugins/server/server/jobs.js +79 -0
- package/dist/plugins/server/server/jobs.js.map +1 -0
- package/dist/plugins/server/server/utils/validation.d.ts +7 -0
- package/dist/plugins/server/server/utils/validation.js +37 -0
- package/dist/plugins/server/server/utils/validation.js.map +1 -0
- package/dist/plugins/server/types.d.ts +339 -0
- package/dist/plugins/server/types.js +84 -0
- package/dist/plugins/server/types.js.map +1 -0
- package/dist/server/constants.js +55 -0
- package/dist/server/plugins/server/Cache.js +19 -0
- package/dist/server/server/api/api.js +20 -0
- package/dist/server/server/api/connectorApi.js +334 -0
- package/dist/server/server/api/publicationApi.js +106 -0
- package/dist/server/server/api/websiteApi.js +315 -0
- package/dist/server/server/cli.js +71 -0
- package/dist/server/server/config.js +120 -0
- package/dist/server/server/connectors/FsHosting.js +47 -0
- package/dist/server/server/connectors/FsStorage.js +228 -0
- package/dist/server/server/connectors/connectors.js +88 -0
- package/dist/server/server/events.js +14 -0
- package/dist/server/server/expose.js +27 -0
- package/dist/server/server/express.js +46 -0
- package/dist/server/server/index.js +92 -0
- package/dist/server/server/jobs.js +50 -0
- package/dist/server/server/utils/validation.js +14 -0
- package/dist/server/types.js +40 -0
- package/package.json +99 -49
- package/public/assets/download.png +0 -0
- package/public/assets/favicon.ico +0 -0
- package/public/assets/favicon.png +0 -0
- package/public/assets/ftp.png +0 -0
- package/public/assets/gitlab.png +0 -0
- package/public/assets/gitlab2.png +0 -0
- package/public/assets/laptop.png +0 -0
- package/public/assets/logo-silex-small.png +0 -0
- package/public/silex.js +22 -23
- package/src/css/_variables.scss +24 -20
- package/src/css/dialog.scss +35 -2
- package/src/css/fonts.scss +31 -0
- package/src/css/footer.scss +12 -0
- package/src/css/grapesjs-light.scss +180 -0
- package/src/css/grapesjs-plugins.scss +227 -0
- package/src/css/grapesjs.scss +159 -1
- package/src/css/index.scss +12 -1
- package/src/css/light.scss +7 -0
- package/src/css/loader.scss +2 -0
- package/src/css/project-bar.scss +32 -16
- package/src/css/silex.scss +79 -5
- package/src/css/website-info.scss +14 -0
- package/src/html/index.pug +3 -3
- package/src/html/templates/includes.pug +0 -1
- package/src/ts/client/api.ts +156 -0
- package/src/ts/client/assetUrl.test.ts +164 -0
- package/src/ts/client/assetUrl.ts +254 -0
- package/src/ts/client/config.ts +175 -13
- package/src/ts/client/events.ts +43 -0
- package/src/ts/client/expose.ts +27 -1
- package/src/ts/client/grapesjs/LoginDialog.ts +204 -0
- package/src/ts/client/grapesjs/PublicationManager.ts +433 -0
- package/src/ts/client/grapesjs/PublicationUi.ts +366 -0
- package/src/ts/client/grapesjs/blocks.ts +17 -0
- package/src/ts/client/grapesjs/breadcrumbs.ts +79 -0
- package/src/ts/client/grapesjs/css-props.ts +910 -0
- package/src/ts/client/grapesjs/eleventy.ts +30 -7
- package/src/ts/client/grapesjs/footer.ts +42 -0
- package/src/ts/client/grapesjs/img.ts +147 -0
- package/src/ts/client/grapesjs/index.ts +311 -122
- package/src/ts/client/grapesjs/internal-links.test.ts +19 -1
- package/src/ts/client/grapesjs/internal-links.ts +31 -7
- package/src/ts/client/grapesjs/keymaps.ts +207 -0
- package/src/ts/client/grapesjs/new-page-dialog.ts +19 -3
- package/src/ts/client/grapesjs/openImport.ts +22 -0
- package/src/ts/client/grapesjs/page-panel.ts +109 -7
- package/src/ts/client/grapesjs/project-bar.ts +133 -72
- package/src/ts/client/grapesjs/resize-panel.ts +20 -0
- package/src/ts/client/grapesjs/rich-text.ts +38 -13
- package/src/ts/client/grapesjs/semantic.ts +20 -3
- package/src/ts/client/grapesjs/settings-sections.ts +117 -0
- package/src/ts/client/grapesjs/settings.ts +191 -96
- package/src/ts/client/grapesjs/storage.ts +187 -0
- package/src/ts/client/grapesjs/symbolDialogs.ts +21 -5
- package/src/ts/client/grapesjs/view-buttons.ts +42 -0
- package/src/ts/client/index.ts +80 -21
- package/src/ts/client/publication-transformers.test.ts +207 -0
- package/src/ts/client/publication-transformers.ts +280 -0
- package/src/ts/client/publish-custom-code-block.ts +31 -0
- package/src/ts/client/publish-fonts.ts +36 -0
- package/src/ts/client/utils.ts +70 -1
- package/src/ts/constants.ts +78 -0
- package/src/ts/externs.ts +17 -0
- package/src/ts/page.ts +20 -3
- package/src/ts/plugins/client/template.ts +246 -0
- package/src/ts/plugins/client/website-info.ts +84 -0
- package/src/ts/plugins/server/Cache.ts +32 -0
- package/src/ts/plugins/server/DownloadConnector.ts +146 -0
- package/src/ts/plugins/server/FtpConnector.test.ts +82 -0
- package/src/ts/plugins/server/FtpConnector.ts +621 -0
- package/src/ts/plugins/server/GitlabConnector.ts +749 -0
- package/src/ts/plugins/server/GitlabHostingConnector.ts +215 -0
- package/src/ts/plugins/server/PublicationOptimizer.ts +14 -0
- package/src/ts/plugins/server/SslPlugin.ts +84 -0
- package/src/ts/plugins/server/StaticPlugin.ts +45 -0
- package/src/ts/server/api/api.ts +19 -0
- package/src/ts/server/api/connectorApi.ts +464 -0
- package/src/ts/server/api/publicationApi.ts +159 -0
- package/src/ts/server/api/websiteApi.ts +462 -0
- package/src/ts/server/cli.ts +48 -14
- package/src/ts/server/config.ts +158 -60
- package/src/ts/server/connectors/FsHosting.ts +66 -0
- package/src/ts/server/connectors/FsStorage.test.ts +51 -0
- package/src/ts/server/connectors/FsStorage.ts +290 -0
- package/src/ts/server/connectors/connectors.ts +203 -0
- package/src/ts/server/events.ts +37 -0
- package/src/ts/server/expose.ts +19 -0
- package/src/ts/server/express.ts +57 -5
- package/src/ts/server/index.ts +80 -19
- package/src/ts/server/jobs.test.ts +75 -0
- package/src/ts/server/jobs.ts +89 -0
- package/src/ts/server/utils/BackwardCompat.ts +546 -528
- package/src/ts/server/utils/validation.ts +34 -0
- package/src/ts/types.ts +295 -85
- package/.dockerignore +0 -5
- package/.editorconfig +0 -14
- package/.eslintrc.json +0 -43
- package/.github/FUNDING.yml +0 -13
- package/.github/workflows/docker-hub-publish.yml +0 -36
- package/.github/workflows/npm-publish.yml +0 -19
- package/.github/workflows/test.yml +0 -26
- package/.nvmrc +0 -1
- package/.silex/default/.silex.data.json +0 -1
- package/CODE_OF_CONDUCT.md +0 -128
- package/CONTRIBUTING.md +0 -131
- package/Dockerfile +0 -15
- package/directus.silex.js +0 -7
- package/dist/constants.js +0 -4
- package/dist/events.js +0 -5
- package/dist/page.js +0 -15
- package/dist/server/cli.js +0 -43
- package/dist/server/config.js +0 -70
- package/dist/server/express.js +0 -18
- package/dist/server/index.js +0 -58
- package/dist/types.js +0 -34
- package/jest.config.js +0 -10
- package/logos/logo_by_ceubri/silex-icon-2018@200px.png +0 -0
- package/logos/logo_by_ceubri/silex-icon-2018@4x.png +0 -0
- package/logos/logo_by_ceubri/silex-logo-2018-white-transp.pdf +0 -0
- package/logos/logo_by_ceubri/silex-logo-2018-white.jpg +0 -0
- package/logos/logo_by_ceubri/silex-logo-2018-white.pdf +0 -0
- package/logos/logo_by_ceubri/silex-logo-2018-white.png +0 -0
- package/logos/logo_by_ceubri/silex-logo-2018-white@0.5x.png +0 -0
- package/logos/logo_by_ceubri/silex-logo-2018-white@0.75x.png +0 -0
- package/logos/logo_by_ceubri/silex-logo-2018-white@4x.jpg +0 -0
- package/logos/logo_by_ceubri/silex-logo-2018-white@4x.png +0 -0
- package/logos/logo_by_ceubri/silex-logo-2018.ai +5 -2521
- package/logos/logo_by_ceubri/silex-logo-2018.jpg +0 -0
- package/logos/logo_by_ceubri/silex-logo-2018.pdf +0 -0
- package/logos/logo_by_ceubri/silex-logo-2018.png +0 -0
- package/logos/logo_by_ceubri/silex-logo-2018@0.5x.png +0 -0
- package/logos/logo_by_ceubri/silex-logo-2018@0.75x.png +0 -0
- package/logos/logo_by_ceubri/silex-logo-2018@4x.jpg +0 -0
- package/logos/logo_by_ceubri/silex-logo-2018@4x.png +0 -0
- package/logos/silexlabs.png +0 -0
- package/src/example-client-config.js +0 -47
- package/src/plugins/AuthPlugin.js +0 -21
- package/src/plugins/Cache.js +0 -11
- package/src/plugins/DefaultBackend.js +0 -149
- package/src/plugins/ExpressPlugin.js +0 -39
- package/src/plugins/HooksPlugin.js +0 -58
- package/src/plugins/PublishPlugin.js +0 -69
- package/src/plugins/SslPlugin.js +0 -66
- package/src/plugins/StaticPlugin.js +0 -48
- package/src/plugins/WebsitePlugin.js +0 -207
- package/src/ts/client/grapesjs/publish.ts +0 -386
- package/src/ts/client/grapesjs/template.ts +0 -166
- package/src/ts/events.ts +0 -2
- package/tsconfig-server-debug.json +0 -19
- package/tsconfig-server-release.json +0 -19
- package/tsconfig.jest.json +0 -9
- package/tsconfig.json +0 -26
- package/webpack.config.js +0 -28
- package/webpack.debug.config.js +0 -8
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Silex website builder, free/libre no-code tool for makers.
|
|
3
|
+
* Copyright (c) 2023 lexoyo and Silex Labs foundation
|
|
4
|
+
*
|
|
5
|
+
* This program is free software: you can redistribute it and/or modify
|
|
6
|
+
* it under the terms of the GNU Affero General Public License as published by
|
|
7
|
+
* the Free Software Foundation, either version 3 of the License, or any later version.
|
|
8
|
+
*
|
|
9
|
+
* This program is distributed in the hope that it will be useful,
|
|
10
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
11
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
12
|
+
* GNU Affero General Public License for more details.
|
|
13
|
+
*
|
|
14
|
+
* You should have received a copy of the GNU Affero General Public License
|
|
15
|
+
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Throw an error if a parameter is missing
|
|
20
|
+
* @param value the value to check
|
|
21
|
+
* @param name the name of the parameter
|
|
22
|
+
* @throws Error if the parameter is missing
|
|
23
|
+
*/
|
|
24
|
+
export function requiredParam<T>(value: T | undefined, name: string, defaultValue?: T): NonNullable<T> {
|
|
25
|
+
if (value === undefined) {
|
|
26
|
+
if (defaultValue !== undefined) {
|
|
27
|
+
return defaultValue as NonNullable<T>
|
|
28
|
+
}
|
|
29
|
+
const error = new Error(`Missing required parameter ${name}`)
|
|
30
|
+
console.error(`Missing required parameter ${name}`, error)
|
|
31
|
+
throw error
|
|
32
|
+
}
|
|
33
|
+
return value as NonNullable<T>
|
|
34
|
+
}
|
package/src/ts/types.ts
CHANGED
|
@@ -1,123 +1,179 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Silex website builder, free/libre no-code tool for makers.
|
|
3
|
+
* Copyright (c) 2023 lexoyo and Silex Labs foundation
|
|
4
|
+
*
|
|
5
|
+
* This program is free software: you can redistribute it and/or modify
|
|
6
|
+
* it under the terms of the GNU Affero General Public License as published by
|
|
7
|
+
* the Free Software Foundation, either version 3 of the License, or any later version.
|
|
8
|
+
*
|
|
9
|
+
* This program is distributed in the hope that it will be useful,
|
|
10
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
11
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
12
|
+
* GNU Affero General Public License for more details.
|
|
13
|
+
*
|
|
14
|
+
* You should have received a copy of the GNU Affero General Public License
|
|
15
|
+
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
16
|
+
*/
|
|
17
|
+
|
|
1
18
|
/**
|
|
2
19
|
* @fileoverview define types for Silex client and server
|
|
3
20
|
*/
|
|
4
21
|
|
|
5
|
-
//
|
|
6
|
-
export
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
autoHomePage: true,
|
|
10
|
-
assets: { path: 'assets', url: '/assets' },
|
|
11
|
-
html: { path: '' },
|
|
12
|
-
css: { path: 'css', url: '/css' },
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
export const defaultSite: WebsiteData = {
|
|
16
|
-
pages: [{name: 'Main', id: 'main', frames: [{component: {type: 'text', stylable: []}, components: []}]}],
|
|
17
|
-
assets: [],
|
|
18
|
-
styles: [],
|
|
19
|
-
name: 'New website',
|
|
20
|
-
settings: {
|
|
21
|
-
description: '',
|
|
22
|
-
title: '',
|
|
23
|
-
head: '',
|
|
24
|
-
lang: '',
|
|
25
|
-
favicon: '',
|
|
26
|
-
'og:title': '',
|
|
27
|
-
'og:description': '',
|
|
28
|
-
'og:image': '',
|
|
29
|
-
},
|
|
30
|
-
fonts: [],
|
|
31
|
-
symbols: [],
|
|
32
|
-
publication: defaultPublicationSettings,
|
|
22
|
+
// Publication API
|
|
23
|
+
export interface PublicationSettings {
|
|
24
|
+
connector?: ConnectorData, // Set by the postMessage from the login callback page
|
|
25
|
+
options?: ConnectorOptions, // Options for the publication connector saved with the site
|
|
33
26
|
}
|
|
34
27
|
|
|
35
|
-
export interface
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
28
|
+
export interface WebsiteFile {
|
|
29
|
+
html: string,
|
|
30
|
+
css: string,
|
|
31
|
+
htmlPath: string,
|
|
32
|
+
cssPath: string,
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export class ApiError extends Error {
|
|
36
|
+
constructor(message: string, public readonly httpStatusCode: number) {
|
|
37
|
+
super(message)
|
|
38
|
+
console.info('API error', httpStatusCode, message)
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
// **
|
|
43
|
+
// HTTP API types
|
|
44
|
+
export type ApiResponseError = { message: string }
|
|
45
|
+
export type ApiPublicationPublishBody = WebsiteData // this contains the connectorId
|
|
46
|
+
export type ApiPublicationPublishQuery = { websiteId: WebsiteId, hostingId: ConnectorId, storageId: ConnectorId, options: ConnectorOptions}
|
|
47
|
+
export type ApiPublicationPublishResponse = { url: string, job: PublicationJobData }
|
|
48
|
+
export type ApiPublicationStatusQuery = { jobId: JobId }
|
|
49
|
+
export type ApiPublicationStatusResponse = PublicationJobData
|
|
50
|
+
export type ApiWebsiteReadQuery = { websiteId: WebsiteId, connectorId?: ConnectorId }
|
|
51
|
+
export type ApiWebsiteReadResponse = WebsiteData
|
|
52
|
+
export type ApiWebsiteListQuery = { connectorId?: ConnectorId }
|
|
53
|
+
export type ApiWebsiteListResponse = WebsiteMeta[]
|
|
54
|
+
export type ApiWebsiteWriteQuery = { websiteId: WebsiteId, connectorId?: ConnectorId }
|
|
55
|
+
export type ApiWebsiteWriteBody = WebsiteData
|
|
56
|
+
export type ApiWebsiteWriteResponse = { message: string }
|
|
57
|
+
export type ApiWebsiteCreateQuery = { connectorId?: ConnectorId }
|
|
58
|
+
export type ApiWebsiteCreateBody = WebsiteMetaFileContent
|
|
59
|
+
export type ApiWebsiteCreateResponse = { message: string }
|
|
60
|
+
export type ApiWebsiteDeleteQuery = { websiteId: WebsiteId, connectorId?: ConnectorId }
|
|
61
|
+
export type ApiWebsiteDuplicateQuery = { websiteId: WebsiteId, connectorId?: ConnectorId }
|
|
62
|
+
export type ApiWebsiteMetaReadQuery = { websiteId: WebsiteId, connectorId?: ConnectorId }
|
|
63
|
+
export type ApiWebsiteMetaReadResponse = WebsiteMeta
|
|
64
|
+
export type ApiWebsiteMetaWriteQuery = { websiteId: WebsiteId, connectorId?: ConnectorId }
|
|
65
|
+
export type ApiWebsiteMetaWriteBody = WebsiteMetaFileContent
|
|
66
|
+
export type ApiWebsiteMetaWriteResponse = { message: string }
|
|
67
|
+
export type ApiWebsiteAssetsReadQuery = { websiteId: WebsiteId, connectorId?: ConnectorId }
|
|
68
|
+
export type ApiWebsiteAssetsReadParams = { path: string }
|
|
69
|
+
export type ApiWebsiteAssetsReadResponse = string
|
|
70
|
+
export type ApiWebsiteAssetsWriteQuery = { websiteId: WebsiteId, connectorId?: ConnectorId }
|
|
71
|
+
export type ApiWebsiteAssetsWriteBody = ClientSideFile[]
|
|
72
|
+
export type ApiWebsiteAssetsWriteResponse = { data: string[] }
|
|
73
|
+
export type ApiConnectorListQuery = { type: ConnectorType }
|
|
74
|
+
export type ApiConnectorListResponse = ConnectorData[]
|
|
75
|
+
export type ApiConnectorLoginQuery = { connectorId: ConnectorId, type: ConnectorType }
|
|
76
|
+
export type ApiConnectorLoggedInPostMessage = { type: string, error: boolean, message: string, connectorId: ConnectorId, options: ConnectorOptions }
|
|
77
|
+
export type ApiConnectorLoginCbkQuery = { connectorId?: ConnectorId, type: ConnectorType, error?: string } // May have any other query params from oauth
|
|
78
|
+
export type ApiConnectorLoginCbkBody = object // Body from basic auth, POST only, contains options and token
|
|
79
|
+
export type ApiConnectorSettingsQuery = { connectorId?: ConnectorId, type: ConnectorType }
|
|
80
|
+
export type ApiConnectorSettingsResponse = string // HTML
|
|
81
|
+
export type ApiConnectorSettingsPostQuery = { connectorId?: ConnectorId, type: ConnectorType }
|
|
82
|
+
export type ApiConnectorSettingsPostBody = ConnectorUserSettings
|
|
83
|
+
export type ApiConnectorSettingsPostResponse = { message: string }
|
|
84
|
+
export type ApiConnectorLogoutQuery = { connectorId?: ConnectorId, type: ConnectorType }
|
|
85
|
+
export type ApiConnectorUserQuery = { connectorId?: ConnectorId, type: ConnectorType }
|
|
86
|
+
export type ApiConnectorUserResponse = ConnectorUser
|
|
87
|
+
|
|
88
|
+
// **
|
|
89
|
+
// Website API
|
|
90
|
+
export const defaultWebsiteData: WebsiteData = {
|
|
91
|
+
//pages: [],
|
|
92
|
+
//assets: [],
|
|
93
|
+
//styles: [],
|
|
94
|
+
//settings: {},
|
|
95
|
+
//fonts: [],
|
|
96
|
+
//symbols: [],
|
|
97
|
+
//publication: {},
|
|
98
|
+
} as WebsiteData
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
// **
|
|
102
|
+
// Grapesjs types
|
|
103
|
+
// From grapesjs, not imported because it breaks the build on the server side
|
|
104
|
+
export interface Component {
|
|
105
|
+
type: string,
|
|
106
|
+
content?: string,
|
|
107
|
+
attributes: { [key: string]: string },
|
|
108
|
+
components: Component[],
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
export interface Page {
|
|
112
|
+
id: string,
|
|
113
|
+
name: string,
|
|
114
|
+
slug: string,
|
|
115
|
+
settings: WebsiteSettings, // TODO: why is this here? It is used in the publication manager
|
|
116
|
+
frames: {
|
|
117
|
+
component: Component,
|
|
118
|
+
}[]
|
|
44
119
|
}
|
|
45
120
|
|
|
46
121
|
export interface WebsiteData {
|
|
47
122
|
pages: Page[],
|
|
48
123
|
assets: Asset[],
|
|
49
124
|
styles: Style[],
|
|
50
|
-
name: string,
|
|
125
|
+
//name: string,
|
|
51
126
|
settings: WebsiteSettings,
|
|
52
127
|
fonts: Font[],
|
|
53
128
|
symbols: symbol[],
|
|
54
129
|
publication: PublicationSettings,
|
|
55
130
|
}
|
|
56
131
|
|
|
57
|
-
export interface
|
|
58
|
-
|
|
59
|
-
value: string,
|
|
60
|
-
variants: string[],
|
|
61
|
-
}
|
|
62
|
-
export interface PublicationSettings {
|
|
63
|
-
path?: string, // Folder to publish to
|
|
64
|
-
url?: string, // URL to display where the website is published to
|
|
65
|
-
autoHomePage?: boolean, // Name the first page `index` instead of its name
|
|
66
|
-
assets?: {
|
|
67
|
-
path?: string, // Folder to copy assets to
|
|
68
|
-
url?: string, // URL where assets are accessed
|
|
69
|
-
},
|
|
70
|
-
html?: {
|
|
71
|
-
path?: string, // Folder where to generate the HTML pages
|
|
72
|
-
ext?: string, // File extension for HTML pages
|
|
73
|
-
},
|
|
74
|
-
css?: {
|
|
75
|
-
path?: string, // Folder where to generate the CSS files
|
|
76
|
-
url?: string, // URL of the Folder where the CSS files are accessed
|
|
77
|
-
ext?: string, // File extension for CSS files
|
|
78
|
-
},
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
export interface File {
|
|
82
|
-
html: string,
|
|
83
|
-
css: string,
|
|
84
|
-
htmlPath: string,
|
|
85
|
-
cssPath: string,
|
|
132
|
+
export interface PublicationData extends WebsiteData {
|
|
133
|
+
files?: ClientSideFile[], // Added by the client for publish
|
|
86
134
|
}
|
|
87
135
|
|
|
88
|
-
export interface
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
136
|
+
export interface WebsiteSettings {
|
|
137
|
+
description?: string,
|
|
138
|
+
title?: string,
|
|
139
|
+
lang?: string,
|
|
140
|
+
head?: string,
|
|
141
|
+
favicon?: string,
|
|
142
|
+
'og:title'?: string,
|
|
143
|
+
'og:description'?: string,
|
|
144
|
+
'og:image'?: string,
|
|
96
145
|
}
|
|
97
146
|
|
|
98
|
-
export interface
|
|
99
|
-
|
|
100
|
-
|
|
147
|
+
export interface Font {
|
|
148
|
+
name: string,
|
|
149
|
+
value: string,
|
|
150
|
+
variants: string[],
|
|
101
151
|
}
|
|
102
152
|
|
|
103
|
-
export interface
|
|
104
|
-
type: string,
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
153
|
+
//export interface Frame {
|
|
154
|
+
// component: { type: string, stylable: string[] },
|
|
155
|
+
// components: Component[],
|
|
156
|
+
//}
|
|
157
|
+
//
|
|
158
|
+
//export interface Component {
|
|
159
|
+
// type: string,
|
|
160
|
+
// content?: string,
|
|
161
|
+
// attributes: { [key: string]: string },
|
|
162
|
+
// conponents: Component[],
|
|
163
|
+
//}
|
|
109
164
|
|
|
110
165
|
export enum Unit {
|
|
111
166
|
PX = 'px',
|
|
112
167
|
}
|
|
113
168
|
|
|
114
|
-
export interface Asset
|
|
169
|
+
export interface Asset {
|
|
115
170
|
type: string,
|
|
116
171
|
src: string,
|
|
117
172
|
unitDim: Unit,
|
|
118
173
|
height: number,
|
|
119
174
|
width: number,
|
|
120
175
|
name: string,
|
|
176
|
+
path?: string, // Set by the publication renderer, this is the path in the hosting storage after publication
|
|
121
177
|
}
|
|
122
178
|
|
|
123
179
|
export interface Style {
|
|
@@ -130,3 +186,157 @@ export type Selector = string | {
|
|
|
130
186
|
type: number,
|
|
131
187
|
}
|
|
132
188
|
|
|
189
|
+
// **
|
|
190
|
+
// Connector API
|
|
191
|
+
/**
|
|
192
|
+
* Type for a connector id
|
|
193
|
+
*/
|
|
194
|
+
export type ConnectorId = string
|
|
195
|
+
|
|
196
|
+
export type ConnectorOptions = {
|
|
197
|
+
websiteUrl?: string, // For publication UI
|
|
198
|
+
[key: string]: any,
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
export enum ClientSideFileType {
|
|
202
|
+
HTML = 'html',
|
|
203
|
+
ASSET = 'asset',
|
|
204
|
+
CSS = 'css',
|
|
205
|
+
OTHER = 'other',
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
export enum Initiator {
|
|
209
|
+
HTML = 'html',
|
|
210
|
+
CSS = 'css',
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
/**
|
|
214
|
+
* Type for a client side file when the content is not available, used to handle file names and paths and urls
|
|
215
|
+
*/
|
|
216
|
+
export interface ClientSideFileWithPermalink {
|
|
217
|
+
path: string, // Path in the connector
|
|
218
|
+
permalink?: string, // Defaults to path, this the path where the file is served, it is used to link to the file
|
|
219
|
+
type: ClientSideFileType,
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
/**
|
|
223
|
+
* Type for a client side file when the content is available as a string
|
|
224
|
+
*/
|
|
225
|
+
export interface ClientSideFileWithContent extends ClientSideFileWithPermalink {
|
|
226
|
+
content: string, // Not buffer because it's sent from the client in JSON
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
/**
|
|
230
|
+
* Type for a client side file when the content is in the connector
|
|
231
|
+
*/
|
|
232
|
+
export interface ClientSideFileWithSrc extends ClientSideFileWithPermalink {
|
|
233
|
+
src: string, // Where to download the file, a path for the storage connector
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
/**
|
|
237
|
+
* Type for a client side file
|
|
238
|
+
* @see connector/File
|
|
239
|
+
*/
|
|
240
|
+
export type ClientSideFile = ClientSideFileWithContent | ClientSideFileWithSrc
|
|
241
|
+
|
|
242
|
+
/**
|
|
243
|
+
* Type for file listing
|
|
244
|
+
*/
|
|
245
|
+
export interface FileMeta {
|
|
246
|
+
name: string
|
|
247
|
+
isDir: boolean
|
|
248
|
+
size: number
|
|
249
|
+
createdAt: Date
|
|
250
|
+
updatedAt: Date
|
|
251
|
+
metadata?: object
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
/**
|
|
255
|
+
* Enum to express if the connector is a storage or a hosting
|
|
256
|
+
*/
|
|
257
|
+
export enum ConnectorType {
|
|
258
|
+
STORAGE = 'STORAGE',
|
|
259
|
+
HOSTING = 'HOSTING',
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
/**
|
|
263
|
+
* Type for a website id
|
|
264
|
+
*/
|
|
265
|
+
export type WebsiteId = string
|
|
266
|
+
|
|
267
|
+
/**
|
|
268
|
+
* Back end data shared with the front end
|
|
269
|
+
*/
|
|
270
|
+
export interface ConnectorData {
|
|
271
|
+
connectorId: ConnectorId
|
|
272
|
+
type: ConnectorType
|
|
273
|
+
displayName: string
|
|
274
|
+
icon: string
|
|
275
|
+
disableLogout: boolean
|
|
276
|
+
isLoggedIn: boolean
|
|
277
|
+
oauthUrl: string | null
|
|
278
|
+
color: string
|
|
279
|
+
background: string
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
/**
|
|
283
|
+
* User settings for a connector and for a given website
|
|
284
|
+
*/
|
|
285
|
+
export type ConnectorUserSettings = {
|
|
286
|
+
[websiteId: string]: object
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
/**
|
|
290
|
+
* Back end data shared with the front end
|
|
291
|
+
*/
|
|
292
|
+
export interface ConnectorUser {
|
|
293
|
+
name: string
|
|
294
|
+
email?: string
|
|
295
|
+
picture?: string
|
|
296
|
+
storage: ConnectorData
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
export interface WebsiteMetaFileContent {
|
|
300
|
+
name: string
|
|
301
|
+
imageUrl?: string
|
|
302
|
+
connectorUserSettings: ConnectorUserSettings
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
/**
|
|
306
|
+
* Back end data sent to the front end
|
|
307
|
+
* Meta data can be the root path of the websites, or the bucket name, etc.
|
|
308
|
+
*/
|
|
309
|
+
export interface WebsiteMeta extends WebsiteMetaFileContent {
|
|
310
|
+
websiteId: WebsiteId
|
|
311
|
+
createdAt?: Date
|
|
312
|
+
updatedAt?: Date
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
/**
|
|
316
|
+
* Enum to express if the job is in progress or finished or errored
|
|
317
|
+
*/
|
|
318
|
+
export enum JobStatus {
|
|
319
|
+
IN_PROGRESS = 'IN_PROGRESS',
|
|
320
|
+
SUCCESS = 'SUCCESS',
|
|
321
|
+
ERROR = 'ERROR',
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
/**
|
|
325
|
+
* Id used to track the progress of a publication
|
|
326
|
+
*/
|
|
327
|
+
export type JobId = string
|
|
328
|
+
|
|
329
|
+
/**
|
|
330
|
+
* Data structure which is sent to the client to display the progress of a job
|
|
331
|
+
*/
|
|
332
|
+
export interface JobData {
|
|
333
|
+
jobId: JobId // The job id
|
|
334
|
+
status: JobStatus // status code
|
|
335
|
+
message: string // status to display
|
|
336
|
+
_timeout?: ReturnType<typeof setTimeout> // Internal use
|
|
337
|
+
}
|
|
338
|
+
|
|
339
|
+
export interface PublicationJobData extends JobData {
|
|
340
|
+
logs: string[][]
|
|
341
|
+
errors: string[][]
|
|
342
|
+
}
|
package/.dockerignore
DELETED
package/.editorconfig
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
# EditorConfig defines and maintains consistent coding styles between different
|
|
2
|
-
# editors and IDEs: http://EditorConfig.org/
|
|
3
|
-
|
|
4
|
-
# Top-most EditorConfig file
|
|
5
|
-
root = true
|
|
6
|
-
|
|
7
|
-
# All files
|
|
8
|
-
[*]
|
|
9
|
-
charset = utf-8
|
|
10
|
-
end_of_line = lf
|
|
11
|
-
insert_final_newline = true
|
|
12
|
-
indent_style = space
|
|
13
|
-
indent_size = 2
|
|
14
|
-
trim_trailing_whitespace = true
|
package/.eslintrc.json
DELETED
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"ignorePatterns": [ "dist/" ],
|
|
3
|
-
"env": {
|
|
4
|
-
"browser": true,
|
|
5
|
-
"es2021": true,
|
|
6
|
-
"node": true
|
|
7
|
-
},
|
|
8
|
-
"extends": [
|
|
9
|
-
"eslint:recommended",
|
|
10
|
-
"plugin:@typescript-eslint/recommended"
|
|
11
|
-
],
|
|
12
|
-
"overrides": [
|
|
13
|
-
],
|
|
14
|
-
"parser": "@typescript-eslint/parser",
|
|
15
|
-
"parserOptions": {
|
|
16
|
-
"ecmaVersion": "latest",
|
|
17
|
-
"sourceType": "module"
|
|
18
|
-
},
|
|
19
|
-
"plugins": [
|
|
20
|
-
"@typescript-eslint"
|
|
21
|
-
],
|
|
22
|
-
"rules": {
|
|
23
|
-
"indent": [
|
|
24
|
-
"error",
|
|
25
|
-
2
|
|
26
|
-
],
|
|
27
|
-
"linebreak-style": [
|
|
28
|
-
"error",
|
|
29
|
-
"unix"
|
|
30
|
-
],
|
|
31
|
-
"quotes": [
|
|
32
|
-
"error",
|
|
33
|
-
"single"
|
|
34
|
-
],
|
|
35
|
-
"semi": [
|
|
36
|
-
"error",
|
|
37
|
-
"never"
|
|
38
|
-
],
|
|
39
|
-
"no-case-declarations": [0],
|
|
40
|
-
"@typescript-eslint/no-unused-vars": [0],
|
|
41
|
-
"@typescript-eslint/no-explicit-any": [0]
|
|
42
|
-
}
|
|
43
|
-
}
|
package/.github/FUNDING.yml
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
# These are supported funding model platforms
|
|
2
|
-
|
|
3
|
-
# github: [lexoyo]
|
|
4
|
-
# patreon: lexoyo
|
|
5
|
-
open_collective: silex
|
|
6
|
-
|
|
7
|
-
# ko_fi: # Replace with a single Ko-fi username
|
|
8
|
-
# tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
|
|
9
|
-
# community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
|
|
10
|
-
# liberapay: # Replace with a single Liberapay username
|
|
11
|
-
# issuehunt: # Replace with a single IssueHunt username
|
|
12
|
-
# otechie: # Replace with a single Otechie username
|
|
13
|
-
# custom: # Replace with a single custom sponsorship URL
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
name: Publish DockerHub image
|
|
2
|
-
# from https://itsmetommy.com/2021/07/05/push-to-docker-hub-using-github-actions/
|
|
3
|
-
|
|
4
|
-
on:
|
|
5
|
-
push:
|
|
6
|
-
tags:
|
|
7
|
-
- '*'
|
|
8
|
-
|
|
9
|
-
jobs:
|
|
10
|
-
build-container:
|
|
11
|
-
runs-on: ubuntu-latest
|
|
12
|
-
steps:
|
|
13
|
-
- name: Checkout code
|
|
14
|
-
uses: actions/checkout@v2
|
|
15
|
-
|
|
16
|
-
- name: Login to DockerHub
|
|
17
|
-
uses: docker/login-action@v1
|
|
18
|
-
with:
|
|
19
|
-
username: ${{ secrets.DOCKER_USERNAME }}
|
|
20
|
-
password: ${{ secrets.DOCKER_PASSWORD }}
|
|
21
|
-
|
|
22
|
-
- name: Extract metadata (tags, labels) for Docker
|
|
23
|
-
id: meta
|
|
24
|
-
uses: docker/metadata-action@v3
|
|
25
|
-
with:
|
|
26
|
-
images: silexlabs/silex
|
|
27
|
-
|
|
28
|
-
- name: Build and push
|
|
29
|
-
uses: docker/build-push-action@v2
|
|
30
|
-
with:
|
|
31
|
-
context: .
|
|
32
|
-
push: true
|
|
33
|
-
tags: ${{ steps.meta.outputs.tags }}
|
|
34
|
-
labels: ${{ steps.meta.outputs.labels }}
|
|
35
|
-
|
|
36
|
-
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
name: Publish on npm
|
|
2
|
-
on:
|
|
3
|
-
push:
|
|
4
|
-
tags:
|
|
5
|
-
- '*'
|
|
6
|
-
jobs:
|
|
7
|
-
build:
|
|
8
|
-
runs-on: ubuntu-latest
|
|
9
|
-
steps:
|
|
10
|
-
- uses: actions/checkout@v2
|
|
11
|
-
# Setup .npmrc file to publish to npm
|
|
12
|
-
- uses: actions/setup-node@v1
|
|
13
|
-
with:
|
|
14
|
-
node-version: '18.x'
|
|
15
|
-
registry-url: 'https://registry.npmjs.org'
|
|
16
|
-
- run: npm install
|
|
17
|
-
- run: npm publish --access=public
|
|
18
|
-
env:
|
|
19
|
-
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
name: Run tests
|
|
2
|
-
|
|
3
|
-
on: [push]
|
|
4
|
-
|
|
5
|
-
jobs:
|
|
6
|
-
build:
|
|
7
|
-
|
|
8
|
-
runs-on: ${{ matrix.os }}
|
|
9
|
-
|
|
10
|
-
strategy:
|
|
11
|
-
matrix:
|
|
12
|
-
node-version: [16.x, 18.x]
|
|
13
|
-
os: [ubuntu-latest]
|
|
14
|
-
|
|
15
|
-
steps:
|
|
16
|
-
- uses: actions/checkout@v2
|
|
17
|
-
- name: Use Node.js ${{ matrix.node-version }}
|
|
18
|
-
uses: actions/setup-node@v1
|
|
19
|
-
with:
|
|
20
|
-
node-version: ${{ matrix.node-version }}
|
|
21
|
-
- run: npm install
|
|
22
|
-
- run: npm run build
|
|
23
|
-
- run: npm test
|
|
24
|
-
env:
|
|
25
|
-
CI: true
|
|
26
|
-
- run: npm run lint
|
package/.nvmrc
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
18.13.0
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{}
|