mirror of
https://github.com/jhillyerd/inbucket.git
synced 2025-12-18 18:17:03 +00:00
Compare commits
11 Commits
v3.0.1-rc1
...
v3.0.2
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a10a6244c9 | ||
|
|
9185423022 | ||
|
|
9aaca449f8 | ||
|
|
f39395bd7f | ||
|
|
2c68128d5d | ||
|
|
06d4120682 | ||
|
|
58bcd4f557 | ||
|
|
e91e8d5aee | ||
|
|
5322462899 | ||
|
|
5def9ed183 | ||
|
|
357589d90e |
9
.github/workflows/docker-build.yml
vendored
9
.github/workflows/docker-build.yml
vendored
@@ -1,7 +1,7 @@
|
|||||||
name: Docker Image
|
name: Docker Image
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches: [ "develop" ]
|
branches: [ "main" ]
|
||||||
tags: [ "v*" ]
|
tags: [ "v*" ]
|
||||||
pull_request:
|
pull_request:
|
||||||
jobs:
|
jobs:
|
||||||
@@ -22,9 +22,13 @@ jobs:
|
|||||||
type=ref,event=pr
|
type=ref,event=pr
|
||||||
type=semver,pattern={{version}}
|
type=semver,pattern={{version}}
|
||||||
type=sha
|
type=sha
|
||||||
type=edge,branch=develop
|
type=edge,branch=main
|
||||||
flavor: |
|
flavor: |
|
||||||
latest=auto
|
latest=auto
|
||||||
|
- name: Set up QEMU
|
||||||
|
uses: docker/setup-qemu-action@v1
|
||||||
|
with:
|
||||||
|
platforms: all
|
||||||
- name: Set up Docker Buildx
|
- name: Set up Docker Buildx
|
||||||
uses: docker/setup-buildx-action@v1
|
uses: docker/setup-buildx-action@v1
|
||||||
- name: Login to DockerHub
|
- name: Login to DockerHub
|
||||||
@@ -44,6 +48,7 @@ jobs:
|
|||||||
uses: docker/build-push-action@v2
|
uses: docker/build-push-action@v2
|
||||||
with:
|
with:
|
||||||
context: .
|
context: .
|
||||||
|
platforms: linux/amd64,linux/arm64, linux/arm/v7
|
||||||
push: ${{ github.event_name != 'pull_request' }}
|
push: ${{ github.event_name != 'pull_request' }}
|
||||||
tags: ${{ steps.meta.outputs.tags }}
|
tags: ${{ steps.meta.outputs.tags }}
|
||||||
labels: ${{ steps.meta.outputs.labels }}
|
labels: ${{ steps.meta.outputs.labels }}
|
||||||
|
|||||||
16
.github/workflows/release.yml
vendored
16
.github/workflows/release.yml
vendored
@@ -1,7 +1,7 @@
|
|||||||
name: Build and Release
|
name: Build and Release
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches: [ "master", "develop" ]
|
branches: [ "main" ]
|
||||||
tags: [ "v*" ]
|
tags: [ "v*" ]
|
||||||
pull_request:
|
pull_request:
|
||||||
jobs:
|
jobs:
|
||||||
@@ -16,17 +16,15 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
go-version: 1.17
|
go-version: 1.17
|
||||||
- name: Setup Node.js
|
- name: Setup Node.js
|
||||||
uses: actions/setup-node@v1
|
uses: actions/setup-node@v3
|
||||||
with:
|
with:
|
||||||
node-version: '14.x'
|
node-version: '16.x'
|
||||||
- name: Setup Elm
|
cache: 'yarn'
|
||||||
uses: jorelali/setup-elm@v2
|
cache-dependency-path: ui/yarn.lock
|
||||||
with:
|
|
||||||
elm-version: 0.19.1
|
|
||||||
- name: Build frontend
|
- name: Build frontend
|
||||||
run: |
|
run: |
|
||||||
npm ci
|
yarn install --frozen-lockfile --non-interactive
|
||||||
npm run build
|
yarn run build
|
||||||
working-directory: ./ui
|
working-directory: ./ui
|
||||||
- name: Test build release
|
- name: Test build release
|
||||||
uses: goreleaser/goreleaser-action@v2
|
uses: goreleaser/goreleaser-action@v2
|
||||||
|
|||||||
1
.gitignore
vendored
1
.gitignore
vendored
@@ -52,3 +52,4 @@ repl-temp-*
|
|||||||
/ui/dist/
|
/ui/dist/
|
||||||
# Dependency directories
|
# Dependency directories
|
||||||
/ui/node_modules
|
/ui/node_modules
|
||||||
|
/ui/.parcel-cache
|
||||||
|
|||||||
@@ -22,8 +22,10 @@ builds:
|
|||||||
- windows
|
- windows
|
||||||
goarch:
|
goarch:
|
||||||
- amd64
|
- amd64
|
||||||
|
- arm
|
||||||
|
- arm64
|
||||||
goarm:
|
goarm:
|
||||||
- "6"
|
- "7"
|
||||||
main: ./cmd/inbucket
|
main: ./cmd/inbucket
|
||||||
ldflags: -s -w -X main.version={{.Version}} -X main.commit={{.Commit}} -X main.date={{.Date}}
|
ldflags: -s -w -X main.version={{.Version}} -X main.commit={{.Commit}} -X main.date={{.Date}}
|
||||||
- id: inbucket-client
|
- id: inbucket-client
|
||||||
@@ -37,8 +39,10 @@ builds:
|
|||||||
- windows
|
- windows
|
||||||
goarch:
|
goarch:
|
||||||
- amd64
|
- amd64
|
||||||
|
- arm
|
||||||
|
- arm64
|
||||||
goarm:
|
goarm:
|
||||||
- "6"
|
- "7"
|
||||||
main: ./cmd/client
|
main: ./cmd/client
|
||||||
ldflags: -s -w -X main.version={{.Version}} -X main.commit={{.Commit}} -X main.date={{.Date}}
|
ldflags: -s -w -X main.version={{.Version}} -X main.commit={{.Commit}} -X main.date={{.Date}}
|
||||||
|
|
||||||
|
|||||||
37
CHANGELOG.md
37
CHANGELOG.md
@@ -6,6 +6,25 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
|||||||
|
|
||||||
## [Unreleased]
|
## [Unreleased]
|
||||||
|
|
||||||
|
## [v3.0.2] - 2022-07-04
|
||||||
|
|
||||||
|
Note: We had to abandon the 3.0.1 release, see the blog post [What happened to
|
||||||
|
3.0?](https://www.inbucket.org/news/2022/05/whathappenedtothree.html) for
|
||||||
|
details.
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
- arm Docker builds now rely on amd64 frontend build stage
|
||||||
|
- Frontend build migrated from npm+webpack to yarn+parcel, node 16
|
||||||
|
|
||||||
|
|
||||||
|
## [v3.0.1-rc2] - 2022-01-23
|
||||||
|
|
||||||
|
### Added
|
||||||
|
- Builds for arm7 and arm64 platforms
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
- Abandoned git-flow process, the `master` branch renamed to `main`
|
||||||
|
|
||||||
|
|
||||||
## [v3.0.1-rc1] - 2022-01-17
|
## [v3.0.1-rc1] - 2022-01-17
|
||||||
|
|
||||||
@@ -283,9 +302,12 @@ No change from beta1.
|
|||||||
- Add Link button to messages, allows for directing another person to a
|
- Add Link button to messages, allows for directing another person to a
|
||||||
specific message.
|
specific message.
|
||||||
|
|
||||||
[Unreleased]: https://github.com/inbucket/inbucket/compare/master...develop
|
|
||||||
|
[Unreleased]: https://github.com/inbucket/inbucket/compare/v3.0.2...main
|
||||||
|
[v3.0.2]: https://github.com/inbucket/inbucket/compare/v3.0.1-rc2...v3.0.2
|
||||||
|
[v3.0.1-rc2]: https://github.com/inbucket/inbucket/compare/v3.0.1-rc1...v3.0.1-rc2
|
||||||
[v3.0.1-rc1]: https://github.com/inbucket/inbucket/compare/v3.0.0...v3.0.1-rc1
|
[v3.0.1-rc1]: https://github.com/inbucket/inbucket/compare/v3.0.0...v3.0.1-rc1
|
||||||
[v3.0.0]: https://github.com/inbucket/inbucket/compare/v3.0.0-rc4...v3.0.0
|
[v3.0.0]: https://github.com/inbucket/inbucket/compare/v3.0.0-rc4...v3.0.0
|
||||||
[v3.0.0-rc4]: https://github.com/inbucket/inbucket/compare/v3.0.0-rc2...v3.0.0-rc4
|
[v3.0.0-rc4]: https://github.com/inbucket/inbucket/compare/v3.0.0-rc2...v3.0.0-rc4
|
||||||
[v3.0.0-rc2]: https://github.com/inbucket/inbucket/compare/v3.0.0-rc1...v3.0.0-rc2
|
[v3.0.0-rc2]: https://github.com/inbucket/inbucket/compare/v3.0.0-rc1...v3.0.0-rc2
|
||||||
[v3.0.0-rc1]: https://github.com/inbucket/inbucket/compare/v3.0.0-beta3...v3.0.0-rc1
|
[v3.0.0-rc1]: https://github.com/inbucket/inbucket/compare/v3.0.0-beta3...v3.0.0-rc1
|
||||||
@@ -308,16 +330,17 @@ No change from beta1.
|
|||||||
|
|
||||||
## Release Checklist
|
## Release Checklist
|
||||||
|
|
||||||
1. Create release branch: `git flow release start 1.x.0`
|
1. Create a release branch
|
||||||
2. Update CHANGELOG.md:
|
2. Update CHANGELOG.md:
|
||||||
- Ensure *Unreleased* section is up to date
|
- Ensure *Unreleased* section is up to date
|
||||||
- Rename *Unreleased* section to release name and date.
|
- Rename *Unreleased* section to release name and date
|
||||||
- Add new GitHub `/compare` link
|
- Add new GitHub `/compare` link
|
||||||
|
- Update previous tag version for *Unreleased*
|
||||||
3. Run tests
|
3. Run tests
|
||||||
4. Update goreleaser, and then test cross-compile: `goreleaser --snapshot`
|
4. Update goreleaser, and then test cross-compile: `goreleaser --snapshot`
|
||||||
5. Commit changes and merge release: `git flow release finish`
|
5. Commit changes and merge release into main, tag `vX.Y.Z`
|
||||||
6. Push tags and wait for https://travis-ci.org/inbucket/inbucket build to
|
6. Push tags and wait for
|
||||||
complete
|
[GitHub actions](https://github.com/inbucket/inbucket/actions) to complete
|
||||||
7. Update `binary_versions` option in `inbucket-site/_config.yml`
|
7. Update `binary_versions` option in `inbucket-site/_config.yml`
|
||||||
|
|
||||||
See http://keepachangelog.com/ for additional instructions on how to update this file.
|
See http://keepachangelog.com/ for additional instructions on how to update this file.
|
||||||
|
|||||||
@@ -1,11 +1,8 @@
|
|||||||
How to Contribute
|
# How to Contribute
|
||||||
=================
|
|
||||||
|
|
||||||
Inbucket encourages third-party patches. It's valuable to know how other
|
Inbucket encourages third-party patches. It's valuable to know how other
|
||||||
developers are using the product.
|
developers are using the product.
|
||||||
|
|
||||||
**tl;dr:** File pull requests against the `develop` branch, not `master`!
|
|
||||||
|
|
||||||
|
|
||||||
## Getting Started
|
## Getting Started
|
||||||
|
|
||||||
@@ -17,28 +14,18 @@ to provide validation and/or guidance on your suggested approach.
|
|||||||
|
|
||||||
## Making Changes
|
## Making Changes
|
||||||
|
|
||||||
Inbucket uses [git-flow] with default options. If you have git-flow installed,
|
Inbucket follows the regular GitHub pattern. Create a topic branch from where
|
||||||
you can run `git flow feature start <topic branch name>`.
|
you want to base your work:
|
||||||
|
|
||||||
Without git-flow, create a topic branch from where you want to base your work:
|
|
||||||
- This is usually the `develop` branch, example command:
|
|
||||||
`git checkout origin/develop -b <topic branch name>`
|
|
||||||
- Only target the `master` branch if the issue is already resolved in
|
|
||||||
`develop`.
|
|
||||||
|
|
||||||
Once you are on your topic branch:
|
Once you are on your topic branch:
|
||||||
|
|
||||||
1. Make commits of logical units.
|
1. Make commits of logical units.
|
||||||
2. Add unit tests to exercise your changes.
|
2. Add unit tests to exercise your changes.
|
||||||
3. Run the updated code through `go fmt` and `go vet`.
|
3. Run `make` to test, vet and confirm your code is formatted correctly.
|
||||||
4. Ensure the code builds and tests with the following commands:
|
If you do not have Make installed, please perform these steps manually,
|
||||||
- `go clean ./...`
|
otherwise your PR will not pass our checks.
|
||||||
- `go build ./...`
|
|
||||||
- `go test ./...`
|
|
||||||
|
|
||||||
|
|
||||||
## Thanks
|
## Thanks
|
||||||
|
|
||||||
Thank you for contributing to Inbucket!
|
Thank you for contributing to Inbucket!
|
||||||
|
|
||||||
[git-flow]: https://github.com/nvie/gitflow
|
|
||||||
|
|||||||
34
Dockerfile
34
Dockerfile
@@ -1,35 +1,33 @@
|
|||||||
# Docker build file for Inbucket: https://www.inbucket.org/
|
# Docker build file for Inbucket: https://www.inbucket.org/
|
||||||
|
|
||||||
# Install build-time dependencies
|
### Build frontend
|
||||||
FROM golang:1.17-alpine3.14 as builder
|
# Due to no official elm compiler for arm; build frontend with amd64.
|
||||||
RUN apk add --no-cache --virtual .build-deps g++ git make npm python3
|
FROM --platform=linux/amd64 node:16 as frontend
|
||||||
|
WORKDIR /build
|
||||||
|
COPY . .
|
||||||
|
WORKDIR /build/ui
|
||||||
|
RUN rm -rf .parcel-cache dist elm-stuff node_modules
|
||||||
|
RUN yarn install --frozen-lockfile --non-interactive
|
||||||
|
RUN yarn run build
|
||||||
|
|
||||||
|
### Build backend
|
||||||
|
FROM golang:1.17-alpine3.14 as backend
|
||||||
|
RUN apk add --no-cache --virtual .build-deps g++ git make
|
||||||
WORKDIR /build
|
WORKDIR /build
|
||||||
COPY . .
|
COPY . .
|
||||||
ENV CGO_ENABLED 0
|
ENV CGO_ENABLED 0
|
||||||
RUN make clean deps
|
RUN make clean deps
|
||||||
WORKDIR /build/ui
|
|
||||||
RUN rm -rf dist elm-stuff node_modules
|
|
||||||
RUN npm ci
|
|
||||||
ADD https://github.com/elm/compiler/releases/download/0.19.1/binary-for-linux-64-bit.gz elm.gz
|
|
||||||
RUN gunzip elm.gz && chmod 755 elm && mv elm /usr/bin/
|
|
||||||
|
|
||||||
# Build server
|
|
||||||
WORKDIR /build
|
|
||||||
RUN go build -o inbucket \
|
RUN go build -o inbucket \
|
||||||
-ldflags "-X 'main.version=$(git describe --tags --always)' -X 'main.date=$(date -Iseconds)'" \
|
-ldflags "-X 'main.version=$(git describe --tags --always)' -X 'main.date=$(date -Iseconds)'" \
|
||||||
-v ./cmd/inbucket
|
-v ./cmd/inbucket
|
||||||
|
|
||||||
# Build frontend
|
### Run in minimal image
|
||||||
WORKDIR /build/ui
|
|
||||||
RUN npm run build
|
|
||||||
|
|
||||||
# Run in minimal image
|
|
||||||
FROM alpine:3.14
|
FROM alpine:3.14
|
||||||
RUN apk --no-cache add tzdata
|
RUN apk --no-cache add tzdata
|
||||||
WORKDIR /opt/inbucket
|
WORKDIR /opt/inbucket
|
||||||
RUN mkdir bin defaults ui
|
RUN mkdir bin defaults ui
|
||||||
COPY --from=builder /build/inbucket bin
|
COPY --from=backend /build/inbucket bin
|
||||||
COPY --from=builder /build/ui/dist ui
|
COPY --from=frontend /build/ui/dist ui
|
||||||
COPY etc/docker/defaults/greeting.html defaults
|
COPY etc/docker/defaults/greeting.html defaults
|
||||||
COPY etc/docker/defaults/start-inbucket.sh /
|
COPY etc/docker/defaults/start-inbucket.sh /
|
||||||
|
|
||||||
|
|||||||
24
README.md
24
README.md
@@ -1,7 +1,7 @@
|
|||||||
Inbucket
|

|
||||||
=============================================================================
|

|
||||||
[][Build Status]
|
|
||||||
[][Docker Image]
|
# Inbucket
|
||||||
|
|
||||||
Inbucket is an email testing service; it will accept messages for any email
|
Inbucket is an email testing service; it will accept messages for any email
|
||||||
address and make them available via web, REST and POP3 interfaces. Once
|
address and make them available via web, REST and POP3 interfaces. Once
|
||||||
@@ -26,9 +26,9 @@ to contribute code to the project check out [CONTRIBUTING.md].
|
|||||||
|
|
||||||
## Docker
|
## Docker
|
||||||
|
|
||||||
Inbucket has automated [Docker Image] builds via Docker Hub. The `stable` tag
|
Inbucket has automated [Docker Image] builds via Docker Hub. The `latest` tag
|
||||||
tracks our `master` branch (releases), `latest` tracks our unstable
|
tracks our tagged releases, and `edge` tracks our potentially unstable
|
||||||
`development` branch.
|
`main` branch.
|
||||||
|
|
||||||
|
|
||||||
## Building from Source
|
## Building from Source
|
||||||
@@ -38,8 +38,8 @@ You will need functioning [Go] and [Node.js] installations for this to work.
|
|||||||
```sh
|
```sh
|
||||||
git clone https://github.com/inbucket/inbucket.git
|
git clone https://github.com/inbucket/inbucket.git
|
||||||
cd inbucket/ui
|
cd inbucket/ui
|
||||||
npm ci
|
yarn install
|
||||||
npm run build
|
yarn build
|
||||||
cd ..
|
cd ..
|
||||||
go build ./cmd/inbucket
|
go build ./cmd/inbucket
|
||||||
```
|
```
|
||||||
@@ -72,10 +72,10 @@ Inbucket is open source software released under the MIT License. The latest
|
|||||||
version can be found at https://github.com/inbucket/inbucket
|
version can be found at https://github.com/inbucket/inbucket
|
||||||
|
|
||||||
[Build Status]: https://travis-ci.org/inbucket/inbucket
|
[Build Status]: https://travis-ci.org/inbucket/inbucket
|
||||||
[Change Log]: https://github.com/inbucket/inbucket/blob/master/CHANGELOG.md
|
[Change Log]: https://github.com/inbucket/inbucket/blob/main/CHANGELOG.md
|
||||||
[config.md]: https://github.com/inbucket/inbucket/blob/master/doc/config.md
|
[config.md]: https://github.com/inbucket/inbucket/blob/main/doc/config.md
|
||||||
[Configurator]: https://www.inbucket.org/configurator/
|
[Configurator]: https://www.inbucket.org/configurator/
|
||||||
[CONTRIBUTING.md]: https://github.com/inbucket/inbucket/blob/develop/CONTRIBUTING.md
|
[CONTRIBUTING.md]: https://github.com/inbucket/inbucket/blob/main/CONTRIBUTING.md
|
||||||
[Development Quickstart]: https://github.com/inbucket/inbucket/wiki/Development-Quickstart
|
[Development Quickstart]: https://github.com/inbucket/inbucket/wiki/Development-Quickstart
|
||||||
[Docker Image]: https://www.inbucket.org/binaries/docker.html
|
[Docker Image]: https://www.inbucket.org/binaries/docker.html
|
||||||
[Elm]: https://elm-lang.org/
|
[Elm]: https://elm-lang.org/
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ case "$1" in
|
|||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
export SWAKS_OPT_server="127.0.0.1:2500"
|
export SWAKS_OPT_server="${SWAKS_OPT_server:-127.0.0.1:2500}"
|
||||||
export SWAKS_OPT_to="$to@inbucket.local"
|
export SWAKS_OPT_to="$to@inbucket.local"
|
||||||
|
|
||||||
# Basic test
|
# Basic test
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ stdenv.mkDerivation rec {
|
|||||||
name = "env";
|
name = "env";
|
||||||
env = buildEnv { name = name; paths = buildInputs; };
|
env = buildEnv { name = name; paths = buildInputs; };
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
|
act
|
||||||
dpkg
|
dpkg
|
||||||
elmPackages.elm
|
elmPackages.elm
|
||||||
elmPackages.elm-analyse
|
elmPackages.elm-analyse
|
||||||
@@ -12,7 +13,8 @@ stdenv.mkDerivation rec {
|
|||||||
elmPackages.elm-test
|
elmPackages.elm-test
|
||||||
go
|
go
|
||||||
golint
|
golint
|
||||||
nodejs-14_x
|
nodejs-16_x
|
||||||
|
nodePackages.yarn
|
||||||
rpm
|
rpm
|
||||||
swaks
|
swaks
|
||||||
];
|
];
|
||||||
|
|||||||
4
ui/.parcelrc
Normal file
4
ui/.parcelrc
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"extends": "@parcel/config-default",
|
||||||
|
"namers": [ "parcel-namer-rewrite" ]
|
||||||
|
}
|
||||||
12
ui/.proxyrc.json
Normal file
12
ui/.proxyrc.json
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"/api": {
|
||||||
|
"target": "http://localhost:9000",
|
||||||
|
"ws": true
|
||||||
|
},
|
||||||
|
"/debug": {
|
||||||
|
"target": "http://localhost:9000"
|
||||||
|
},
|
||||||
|
"/serve": {
|
||||||
|
"target": "http://localhost:9000"
|
||||||
|
}
|
||||||
|
}
|
||||||
14
ui/README.md
14
ui/README.md
@@ -11,9 +11,8 @@ One time setup (assuming [Node.js] is already installed):
|
|||||||
|
|
||||||
```
|
```
|
||||||
cd $INBUCKET/ui
|
cd $INBUCKET/ui
|
||||||
npm i elm -g
|
yarn install
|
||||||
npm i
|
yarn build
|
||||||
npm run build
|
|
||||||
```
|
```
|
||||||
|
|
||||||
This will the create `node_modules`, `elm-stuff`, and `dist` directories.
|
This will the create `node_modules`, `elm-stuff`, and `dist` directories.
|
||||||
@@ -30,15 +29,16 @@ Inbucket will start, with HTTP listening on port 9000. You may verify the web
|
|||||||
UI is functional if this is your first time building Inbucket, but your dev/test
|
UI is functional if this is your first time building Inbucket, but your dev/test
|
||||||
cycle should favor the development server below.
|
cycle should favor the development server below.
|
||||||
|
|
||||||
### Terminal 2: webpack development server
|
### Terminal 2: parcel development server
|
||||||
|
|
||||||
```
|
```
|
||||||
cd $INBUCKET/ui
|
cd $INBUCKET/ui
|
||||||
npm run dev
|
yarn start
|
||||||
```
|
```
|
||||||
|
|
||||||
npm will start a development HTTP server listening on port 3000. You should use
|
yarn will start a development HTTP server listening on port 1234. You should
|
||||||
this server for UI development, as it features hot reload and the Elm debugger.
|
use this server for UI development, as it features hot reload and the Elm
|
||||||
|
debugger.
|
||||||
|
|
||||||
[Elm]: https://elm-lang.org
|
[Elm]: https://elm-lang.org
|
||||||
[Node.js]: https://nodejs.org
|
[Node.js]: https://nodejs.org
|
||||||
|
|||||||
7849
ui/package-lock.json
generated
7849
ui/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -4,30 +4,29 @@
|
|||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"clean": "rm -rf dist elm-stuff",
|
"build": "parcel build --public-url ./",
|
||||||
"build": "webpack --mode production",
|
"start": "parcel --hmr-port 1235 src/index-dev.html",
|
||||||
"watch": "webpack --mode development --watch",
|
"clean": "rm -rf .parcel-cache dist elm-stuff"
|
||||||
"dev": "webpack-dev-server --mode development --port 3000 --hot --watch",
|
|
||||||
"errors": "webpack --mode development --display-error-details"
|
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"source": "src/index.html",
|
||||||
"opensans-npm-webfont": "^1.0.0"
|
"parcel-namer-rewrite": {
|
||||||
|
"rules": {
|
||||||
|
"(.*)\\.(css|js|json|eot|png|svg|ttf|webmanifest|woff|woff2)": "static/$1{.hash}.$2"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
"browserslist": "defaults",
|
||||||
|
"dependencies": {},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@babel/core": "^7.14.8",
|
|
||||||
"@babel/preset-env": "^7.14.8",
|
|
||||||
"@fortawesome/fontawesome-free": "^5.15.3",
|
"@fortawesome/fontawesome-free": "^5.15.3",
|
||||||
|
"@parcel/packager-raw-url": "2.4.1",
|
||||||
|
"@parcel/transformer-elm": "^2.2.1",
|
||||||
|
"@parcel/transformer-webmanifest": "2.4.1",
|
||||||
"@webcomponents/webcomponentsjs": "^2.5.0",
|
"@webcomponents/webcomponentsjs": "^2.5.0",
|
||||||
"babel-loader": "^8.2.2",
|
"opensans-npm-webfont": "^1.0.0",
|
||||||
"css-loader": "^4.3.0",
|
"parcel": "^2.4.1",
|
||||||
"elm-hot-webpack-loader": "^1.1.8",
|
"parcel-namer-rewrite": "^2.0.0-rc.2"
|
||||||
"elm-webpack-loader": "^7.0.1",
|
},
|
||||||
"file-loader": "^6.2.0",
|
"optionalDependencies": {
|
||||||
"html-webpack-plugin": "^4.5.2",
|
"elm": "^0.19.1-5"
|
||||||
"node-elm-compiler": "^5.0.6",
|
|
||||||
"style-loader": "^1.3.0",
|
|
||||||
"webpack": "^4.46.0",
|
|
||||||
"webpack-cli": "^3.3.12",
|
|
||||||
"webpack-dev-server": "^3.11.2"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 3.0 KiB |
@@ -1,15 +1,20 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<!-- This index file will be served by the webpack development server. -->
|
<!-- This index file will be served by the development server. -->
|
||||||
<base href="/">
|
<base href="/">
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta http-equiv="x-ua-compatible" content="ie=edge">
|
<meta http-equiv="x-ua-compatible" content="ie=edge">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||||
<meta name="theme-color" content="#000000">
|
<meta name="theme-color" content="#000000">
|
||||||
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
|
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate">
|
||||||
<meta http-equiv="Pragma" content="no-cache" />
|
<meta http-equiv="Pragma" content="no-cache">
|
||||||
<meta http-equiv="Expires" content="0" />
|
<meta http-equiv="Expires" content="0">
|
||||||
|
<link rel="stylesheet" href="./main.css">
|
||||||
|
<link rel="stylesheet" href="./navbar.css">
|
||||||
|
<link rel="stylesheet" href="./mailbox.css">
|
||||||
|
<link rel="icon" type="image/png" href="./favicon.png">
|
||||||
|
<link rel="manifest" href="./manifest.json">
|
||||||
<title>Inbucket</title>
|
<title>Inbucket</title>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
@@ -17,5 +22,6 @@
|
|||||||
You need to enable JavaScript to run this app.
|
You need to enable JavaScript to run this app.
|
||||||
</noscript>
|
</noscript>
|
||||||
<div id="root"></div>
|
<div id="root"></div>
|
||||||
|
<script type="module" src="index.js"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
@@ -6,9 +6,14 @@
|
|||||||
<meta http-equiv="x-ua-compatible" content="ie=edge">
|
<meta http-equiv="x-ua-compatible" content="ie=edge">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||||
<meta name="theme-color" content="#000000">
|
<meta name="theme-color" content="#000000">
|
||||||
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
|
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate">
|
||||||
<meta http-equiv="Pragma" content="no-cache" />
|
<meta http-equiv="Pragma" content="no-cache">
|
||||||
<meta http-equiv="Expires" content="0" />
|
<meta http-equiv="Expires" content="0">
|
||||||
|
<link rel="stylesheet" href="./main.css">
|
||||||
|
<link rel="stylesheet" href="./navbar.css">
|
||||||
|
<link rel="stylesheet" href="./mailbox.css">
|
||||||
|
<link rel="icon" type="image/png" href="./favicon.png">
|
||||||
|
<link rel="manifest" href="./manifest.json">
|
||||||
<title>Inbucket</title>
|
<title>Inbucket</title>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
@@ -16,5 +21,6 @@
|
|||||||
You need to enable JavaScript to run this app.
|
You need to enable JavaScript to run this app.
|
||||||
</noscript>
|
</noscript>
|
||||||
<div id="root"></div>
|
<div id="root"></div>
|
||||||
|
<script type="module" src="index.js"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
@@ -1,6 +1,3 @@
|
|||||||
import './main.css'
|
|
||||||
import './mailbox.css'
|
|
||||||
import './navbar.css'
|
|
||||||
import '@fortawesome/fontawesome-free/css/all.css'
|
import '@fortawesome/fontawesome-free/css/all.css'
|
||||||
import '@webcomponents/webcomponentsjs/webcomponents-bundle'
|
import '@webcomponents/webcomponentsjs/webcomponents-bundle'
|
||||||
import 'opensans-npm-webfont'
|
import 'opensans-npm-webfont'
|
||||||
|
|||||||
@@ -1,84 +0,0 @@
|
|||||||
const HtmlWebpackPlugin = require('html-webpack-plugin')
|
|
||||||
const webpack = require('webpack')
|
|
||||||
|
|
||||||
module.exports = (env, argv) => {
|
|
||||||
const production = argv.mode === 'production'
|
|
||||||
const config = {
|
|
||||||
output: {
|
|
||||||
filename: 'static/[name].[hash:8].js',
|
|
||||||
publicPath: '',
|
|
||||||
},
|
|
||||||
module: {
|
|
||||||
rules: [
|
|
||||||
{
|
|
||||||
test: /\.js$/,
|
|
||||||
exclude: [/elm-stuff/, /node_modules/],
|
|
||||||
loader: 'babel-loader',
|
|
||||||
query: {
|
|
||||||
presets: [
|
|
||||||
'@babel/preset-env',
|
|
||||||
],
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
test: /\.elm$/,
|
|
||||||
exclude: [/elm-stuff/, /node_modules/],
|
|
||||||
use: [
|
|
||||||
{ loader: 'elm-hot-webpack-loader' },
|
|
||||||
{
|
|
||||||
loader: 'elm-webpack-loader',
|
|
||||||
options: {
|
|
||||||
debug: !production,
|
|
||||||
optimize: production,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
test: /\.css$/,
|
|
||||||
loader: ['style-loader', 'css-loader'],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
test: /\.(eot|svg|ttf|woff|woff2)$/,
|
|
||||||
loader: 'file-loader',
|
|
||||||
options: {
|
|
||||||
name: 'static/[name].[hash:8].[ext]',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
]
|
|
||||||
},
|
|
||||||
plugins: [
|
|
||||||
new HtmlWebpackPlugin({
|
|
||||||
template: 'public/index.html',
|
|
||||||
favicon: 'public/favicon.png',
|
|
||||||
}),
|
|
||||||
new HtmlWebpackPlugin({
|
|
||||||
filename: 'index-dev.html',
|
|
||||||
template: 'public/index-dev.html',
|
|
||||||
favicon: 'public/favicon.png',
|
|
||||||
}),
|
|
||||||
],
|
|
||||||
devServer: {
|
|
||||||
historyApiFallback: {
|
|
||||||
index: '/index-dev.html',
|
|
||||||
},
|
|
||||||
index: 'index-dev.html',
|
|
||||||
inline: true,
|
|
||||||
overlay: true,
|
|
||||||
open: true,
|
|
||||||
proxy: [{
|
|
||||||
context: ['/api', '/debug', '/serve'],
|
|
||||||
target: 'http://localhost:9000',
|
|
||||||
ws: true,
|
|
||||||
}],
|
|
||||||
stats: { colors: true },
|
|
||||||
watchOptions: {
|
|
||||||
ignored: /node_modules/,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
if (argv.hot) {
|
|
||||||
config.plugins.push(new webpack.HotModuleReplacementPlugin())
|
|
||||||
}
|
|
||||||
return config
|
|
||||||
}
|
|
||||||
2231
ui/yarn.lock
Normal file
2231
ui/yarn.lock
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user