@digest/koa 3.3.0 → 3.3.4

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/dist/app.d.ts CHANGED
@@ -1,5 +1,3 @@
1
- /// <reference types="koa" />
2
- /// <reference types="koa__router" />
3
- import Router from '@koa/router';
4
- import type { Options } from 'koa-static';
5
- export default function (staticPath?: string, baseHref?: any, compression?: boolean, production?: boolean, serveStaticOptions?: Options): Router<import("koa").DefaultState, import("koa").DefaultContext>;
1
+ import Koa from 'koa';
2
+ declare const app: Koa<Koa.DefaultState, Koa.DefaultContext>;
3
+ export default app;
package/dist/app.js CHANGED
@@ -3,37 +3,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- const path_1 = __importDefault(require("path"));
7
- const scripts_1 = __importDefault(require("@digest/scripts"));
8
- const router_1 = __importDefault(require("@koa/router"));
6
+ const koa_1 = __importDefault(require("koa"));
9
7
  const koa_helmet_1 = __importDefault(require("koa-helmet"));
10
- const koa_static_1 = __importDefault(require("koa-static"));
11
- const router = new router_1.default();
12
- const defaultServeStaticOptions = {
13
- maxAge: 31536000,
14
- setHeaders: (response, filePath) => {
15
- if (filePath.includes('workbox.js')) {
16
- response.setHeader('Cache-Control', 'max-age=0, no-cache, no-store, must-revalidate');
17
- response.setHeader('Pragma', 'no-cache');
18
- response.setHeader('Expires', '0');
19
- }
20
- }
21
- };
22
- function default_1(staticPath = scripts_1.default.staticPath.replace('/bundle', ''), baseHref = scripts_1.default.baseHref, compression = scripts_1.default.compression, production = scripts_1.default.production, serveStaticOptions) {
23
- const options = Object.assign(Object.assign({}, defaultServeStaticOptions), serveStaticOptions);
24
- if (production &&
25
- compression) {
26
- router.use(baseHref, (0, koa_static_1.default)(staticPath, options));
27
- }
28
- else {
29
- router.use(baseHref, (0, koa_static_1.default)(staticPath, options));
30
- }
31
- const defaultIndex = path_1.default.join(staticPath, 'index.html');
32
- router.use((0, koa_helmet_1.default)());
33
- router.all(`${baseHref}*`, (context) => {
34
- context.set('Cache-Control', 'public, max-age=31536000');
35
- context.sendFile(defaultIndex);
36
- });
37
- return router;
38
- }
39
- exports.default = default_1;
8
+ const koa_remove_trailing_slashes_1 = __importDefault(require("koa-remove-trailing-slashes"));
9
+ const routers_1 = __importDefault(require("./routers"));
10
+ const server_1 = __importDefault(require("./server"));
11
+ const app = new koa_1.default();
12
+ app.use((0, koa_helmet_1.default)()).use(routers_1.default.routes()).use(routers_1.default.allowedMethods()).use((0, koa_remove_trailing_slashes_1.default)());
13
+ (0, server_1.default)(app);
14
+ exports.default = app;
@@ -0,0 +1,4 @@
1
+ import type { Options } from 'connect-history-api-fallback';
2
+ import type { Context, Next } from 'koa';
3
+ declare const history: (options?: Options | undefined) => (context: Context, next: Next) => Promise<void>;
4
+ export default history;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ const koa_history_api_fallback_1 = __importDefault(require("koa-history-api-fallback"));
16
+ const history = (options) => {
17
+ const middleware = (0, koa_history_api_fallback_1.default)(options);
18
+ const historyMiddleware = (context, next) => __awaiter(void 0, void 0, void 0, function* () {
19
+ if (context.state.history) {
20
+ yield next();
21
+ }
22
+ else {
23
+ const nextRoute = () => __awaiter(void 0, void 0, void 0, function* () {
24
+ context.state.history = true;
25
+ yield context.router.routes()(context, next);
26
+ });
27
+ yield middleware(context, nextRoute);
28
+ }
29
+ });
30
+ return historyMiddleware;
31
+ };
32
+ exports.default = history;
@@ -0,0 +1,5 @@
1
+ /// <reference types="koa" />
2
+ /// <reference types="koa__router" />
3
+ import Router from '@koa/router';
4
+ declare const history: (baseHref: string) => Router<import("koa").DefaultState, import("koa").DefaultContext>;
5
+ export default history;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const path_1 = __importDefault(require("path"));
7
+ const router_1 = __importDefault(require("@koa/router"));
8
+ const history_1 = __importDefault(require("../middleware/history"));
9
+ const ACCEPT_HEADERS = [
10
+ 'text/html',
11
+ 'application/xhtml+xml'
12
+ ];
13
+ const history = (baseHref) => {
14
+ const router = new router_1.default({
15
+ sensitive: true,
16
+ strict: true
17
+ });
18
+ const defaultIndex = path_1.default.join(baseHref, 'index.html');
19
+ const historyMiddleware = (0, history_1.default)({
20
+ htmlAcceptHeaders: ACCEPT_HEADERS,
21
+ index: defaultIndex
22
+ });
23
+ const historyBase = '(.*)';
24
+ router.get(historyBase, historyMiddleware);
25
+ router.head(historyBase, historyMiddleware);
26
+ router.options(historyBase, historyMiddleware);
27
+ return router;
28
+ };
29
+ exports.default = history;
@@ -0,0 +1,5 @@
1
+ /// <reference types="koa" />
2
+ /// <reference types="koa__router" />
3
+ import Router from '@koa/router';
4
+ declare const routers: Router<import("koa").DefaultState, import("koa").DefaultContext>;
5
+ export default routers;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const scripts_1 = __importDefault(require("@digest/scripts"));
7
+ const router_1 = __importDefault(require("@koa/router"));
8
+ const history_1 = __importDefault(require("./history"));
9
+ const statics_1 = __importDefault(require("./statics"));
10
+ const stats_1 = __importDefault(require("./stats"));
11
+ const { baseHref, production } = scripts_1.default;
12
+ const staticPath = scripts_1.default.staticPath.replace('/bundle', '');
13
+ const routers = new router_1.default({
14
+ sensitive: true,
15
+ strict: true
16
+ });
17
+ const statsRouter = (0, stats_1.default)();
18
+ const historyRouter = (0, history_1.default)(baseHref);
19
+ const staticsRouter = (0, statics_1.default)(baseHref, staticPath.replace('/bundle', ''), production);
20
+ routers.use(baseHref, statsRouter.routes(), statsRouter.allowedMethods(), staticsRouter.routes(), staticsRouter.allowedMethods(), historyRouter.routes(), historyRouter.allowedMethods());
21
+ exports.default = routers;
@@ -0,0 +1,6 @@
1
+ /// <reference types="koa" />
2
+ /// <reference types="koa__router" />
3
+ import Router from '@koa/router';
4
+ import type { Options } from 'koa-static';
5
+ declare const statics: (baseHref: string, staticPath: string, production?: boolean, serveStaticOptions?: Options | undefined) => Router<import("koa").DefaultState, import("koa").DefaultContext>;
6
+ export default statics;
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const router_1 = __importDefault(require("@koa/router"));
7
+ const koa_mount_1 = __importDefault(require("koa-mount"));
8
+ const koa_static_1 = __importDefault(require("koa-static"));
9
+ const MAX_AGE = 31536000;
10
+ const defaultServeStaticOptions = {
11
+ maxAge: MAX_AGE,
12
+ setHeaders: (response, filePath) => {
13
+ if (filePath.includes('workbox.js')) {
14
+ response.setHeader('Cache-Control', 'max-age=0, no-cache, no-store, must-revalidate');
15
+ response.setHeader('Pragma', 'no-cache');
16
+ response.setHeader('Expires', '0');
17
+ }
18
+ }
19
+ };
20
+ const statics = (baseHref, staticPath, production = false, serveStaticOptions) => {
21
+ const router = new router_1.default({
22
+ sensitive: true,
23
+ strict: true
24
+ });
25
+ const options = Object.assign(Object.assign({ brotli: production, defer: true, gzip: production }, defaultServeStaticOptions), serveStaticOptions);
26
+ const staticBase = '(.*)';
27
+ const serveStatic = (0, koa_static_1.default)(staticPath, options);
28
+ router.get(staticBase, (0, koa_mount_1.default)(baseHref, serveStatic));
29
+ router.head(staticBase, (0, koa_mount_1.default)(baseHref, serveStatic));
30
+ router.options(staticBase, (0, koa_mount_1.default)(baseHref, serveStatic));
31
+ return router;
32
+ };
33
+ exports.default = statics;
@@ -0,0 +1,5 @@
1
+ /// <reference types="koa" />
2
+ /// <reference types="koa__router" />
3
+ import Router from '@koa/router';
4
+ declare const stats: () => Router<import("koa").DefaultState, import("koa").DefaultContext>;
5
+ export default stats;
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const router_1 = __importDefault(require("@koa/router"));
7
+ const koa_helmet_1 = __importDefault(require("koa-helmet"));
8
+ const stats = () => {
9
+ const router = new router_1.default({
10
+ sensitive: true,
11
+ strict: true
12
+ });
13
+ const helmetMiddleware = koa_helmet_1.default.contentSecurityPolicy({
14
+ directives: {
15
+ 'script-src': ['\'self\'', '\'unsafe-inline\'']
16
+ },
17
+ useDefaults: true
18
+ });
19
+ const statsPath = '/stats/(.*)';
20
+ router.get(statsPath, helmetMiddleware);
21
+ router.head(statsPath, helmetMiddleware);
22
+ router.options(statsPath, helmetMiddleware);
23
+ return router;
24
+ };
25
+ exports.default = stats;
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@digest/koa",
3
3
  "title": "Koa Digest",
4
4
  "license": "GPL-3.0",
5
- "version": "3.3.0",
5
+ "version": "3.3.4",
6
6
  "description": "Digested Koa configurations",
7
7
  "author": "wallzero @wallzeroblog (http://wallzero.com)",
8
8
  "contributors": [
@@ -12,15 +12,23 @@
12
12
  "position": "Initial and Lead Developer"
13
13
  }
14
14
  ],
15
- "main": "dist/start.js",
16
- "types": "dist/start.d.ts",
15
+ "main": "dist/app.js",
16
+ "types": "dist/app.d.ts",
17
17
  "files": [
18
+ "/dist/middleware/history.d.ts",
19
+ "/dist/middleware/history.js",
20
+ "/dist/routers/history.d.ts",
21
+ "/dist/routers/history.js",
22
+ "/dist/routers/index.d.ts",
23
+ "/dist/routers/index.js",
24
+ "/dist/routers/statics.d.ts",
25
+ "/dist/routers/statics.js",
26
+ "/dist/routers/stats.d.ts",
27
+ "/dist/routers/stats.js",
18
28
  "/dist/app.d.ts",
19
29
  "/dist/app.js",
20
30
  "/dist/server.d.ts",
21
31
  "/dist/server.js",
22
- "/dist/start.d.ts",
23
- "/dist/start.js",
24
32
  "/LICENSE.md"
25
33
  ],
26
34
  "homepage": "https://gitlab.com/digested/node-digest/tree/master/packages/koa",
@@ -38,17 +46,24 @@
38
46
  "clean": "rimraf node_modules dist package-lock.json npm-debug.log"
39
47
  },
40
48
  "dependencies": {
41
- "@digest/scripts": "^3.3.0",
49
+ "@digest/scripts": "^3.3.4",
42
50
  "@koa/router": "^10.1.1",
43
51
  "koa": "^2.13.4",
44
52
  "koa-helmet": "^6.1.0",
53
+ "koa-history-api-fallback": "^1.0.0",
54
+ "koa-mount": "^4.0.0",
55
+ "koa-remove-trailing-slashes": "^2.0.3",
56
+ "koa-send": "^5.0.1",
45
57
  "koa-static": "^5.0.0"
46
58
  },
47
59
  "devDependencies": {
60
+ "@types/connect-history-api-fallback": "^1.3.5",
48
61
  "@types/koa": "^2.13.4",
49
62
  "@types/koa-helmet": "^6.0.4",
63
+ "@types/koa-mount": "^4.0.1",
64
+ "@types/koa-send": "^4.1.3",
50
65
  "@types/koa-static": "^4.0.2",
51
- "@types/koa__router": "^8.0.9"
66
+ "@types/koa__router": "^8.0.11"
52
67
  },
53
68
  "peerDependencies": {
54
69
  "koa": "^2.13.4"
@@ -57,5 +72,5 @@
57
72
  "digest",
58
73
  "koa"
59
74
  ],
60
- "gitHead": "bfd71712ae299e29d5b19b9862dfe696dae6b2f8"
75
+ "gitHead": "9d4de3a9c295ffa38a7bf06217fd8955528fd9ee"
61
76
  }
package/dist/start.d.ts DELETED
@@ -1,3 +0,0 @@
1
- import Koa from 'koa';
2
- declare const start: Koa<Koa.DefaultState, Koa.DefaultContext>;
3
- export default start;
package/dist/start.js DELETED
@@ -1,13 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const koa_1 = __importDefault(require("koa"));
7
- const app_1 = __importDefault(require("./app"));
8
- const server_1 = __importDefault(require("./server"));
9
- const start = new koa_1.default();
10
- start.use((0, app_1.default)().routes());
11
- start.use((0, app_1.default)().allowedMethods());
12
- (0, server_1.default)(start);
13
- exports.default = start;