next-ssr-middleware 0.10.0 → 1.0.1

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/ReadMe.md CHANGED
@@ -11,6 +11,7 @@
11
11
 
12
12
  | SemVer | status | Next.js | MobX | [MobX i18n][6] |
13
13
  | :----------: | :----------: | :-------: | :---------: | :------------: |
14
+ | `>=1.0` | ✅developing | `>=15` | `>=6.11` | ❌ |
14
15
  | `>=0.9` | ✅developing | `>=15` | `>=6.11` | `>=0.5` |
15
16
  | `>=0.7 <0.9` | ❌deprecated | `>=9 <15` | `>=6.11` | `>=0.5` |
16
17
  | `<0.7` | ❌deprecated | `>=9 <15` | `>=4 <6.11` | `<0.5` |
@@ -21,7 +22,7 @@
21
22
  2. Error logger
22
23
  3. JWT verifier
23
24
  4. Props cache
24
- 5. i18n loader
25
+ 5. ~~i18n loader~~ (use [MobX-i18n utility][7] directly)
25
26
  6. OAuth 2 signer (with common providers)
26
27
  1. GitHub
27
28
 
@@ -38,11 +39,9 @@ import {
38
39
  jwtVerifier,
39
40
  cache,
40
41
  errorLogger,
41
- router,
42
- translator
42
+ router
43
43
  } from 'next-ssr-middleware';
44
44
 
45
- import i18n from '../../model/Translation';
46
45
  import { User, UserModel } from '../../model/User';
47
46
 
48
47
  type UserDetailPageProps = User & JWTProps & RouterProps;
@@ -52,7 +51,6 @@ export const getServerSideProps = compose<{ id: string }, UserDetailPageProps>(
52
51
  cache(),
53
52
  errorLogger,
54
53
  router,
55
- translator(i18n),
56
54
  async ({ params }) => {
57
55
  const props = await new UserModel().getOne(params!.id);
58
56
 
@@ -124,7 +122,7 @@ async function Home({ params, searchParams, ...props }: ServerProps) {
124
122
 
125
123
  ### API router
126
124
 
127
- Located in [`pages/api/` of a Next.js project][7] or [`api/` of a Vercel serverless project][8].
125
+ Located in [`pages/api/` of a Next.js project][8] or [`api/` of a Vercel serverless project][9].
128
126
 
129
127
  #### `pages/api/echo.ts`
130
128
 
@@ -150,10 +148,11 @@ export default withKoaRouter(router);
150
148
  ## Cases
151
149
 
152
150
  1. https://github.com/idea2app/Next-Bootstrap-ts
153
- 2. https://github.com/FreeCodeCamp-Chengdu/FreeCodeCamp-Chengdu.github.io
154
- 3. https://github.com/kaiyuanshe/kaiyuanshe.github.io
155
- 4. https://github.com/kaiyuanshe/OpenHackathon-Web
156
- 5. https://github.com/kaiyuanshe/OSS-toolbox
151
+ 2. https://github.com/idea2app/Lark-Next-Bootstrap-ts
152
+ 3. https://github.com/FreeCodeCamp-Chengdu/FreeCodeCamp-Chengdu.github.io
153
+ 4. https://github.com/kaiyuanshe/kaiyuanshe.github.io
154
+ 5. https://github.com/kaiyuanshe/OpenHackathon-Web
155
+ 6. https://github.com/kaiyuanshe/OSS-toolbox
157
156
 
158
157
  [1]: https://koajs.com/
159
158
  [2]: https://nextjs.org/
@@ -161,5 +160,6 @@ export default withKoaRouter(router);
161
160
  [4]: https://github.com/idea2app/Next-SSR-middleware/actions/workflows/main.yml
162
161
  [5]: https://nodei.co/npm/next-ssr-middleware/
163
162
  [6]: https://github.com/idea2app/MobX-i18n
164
- [7]: https://github.com/idea2app/Lark-Next-Bootstrap-ts/tree/main/pages/api
165
- [8]: https://github.com/idea2app/Vercel-Node-serverless/tree/master/api
163
+ [7]: https://github.com/idea2app/MobX-i18n#server-side-rendering-nextjs-example
164
+ [8]: https://github.com/idea2app/Lark-Next-Bootstrap-ts/tree/main/pages/api
165
+ [9]: https://github.com/idea2app/Vercel-Node-serverless/tree/master/api
package/dist/API.js CHANGED
@@ -54,7 +54,7 @@ function withKoaRouter() {
54
54
  var option;
55
55
  var router;
56
56
  var middlewares = [];
57
- if (typeof parameters[1] === 'function')
57
+ if (!parameters[1] || typeof parameters[1] === 'function')
58
58
  _a = tslib_1.__read(parameters), router = _a[0], middlewares = _a.slice(1);
59
59
  else
60
60
  _b = tslib_1.__read(parameters), option = _b[0], router = _b[1], middlewares = _b.slice(2);
package/dist/API.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"API.js","sourceRoot":"","sources":["../source/API.ts"],"names":[],"mappings":";;;AAaA,0BAcC;AAsBD,sCAiBC;;AAlED,uEAAyC;AACzC,+DAAwE;AACxE,oDAAsC;AAWtC,SAAgB,OAAO;;IAAO,oBAAoB;SAApB,UAAoB,EAApB,qBAAoB,EAApB,IAAoB;QAApB,+BAAoB;;IAC9C,IAAI,MAA6B,CAAC;IAClC,IAAI,WAAW,GAAuB,EAAE,CAAC;IAEzC,IAAI,OAAO,UAAU,CAAC,CAAC,CAAC,KAAK,UAAU,EAAE,CAAC;QACtC,MAAM,GAAG,SAAS,CAAC;QACnB,WAAW,GAAG,UAAU,CAAC;IAC7B,CAAC;;QAAM,KAAA,eAA2B,UAAU,CAAA,EAApC,MAAM,QAAA,EAAK,WAAW,cAAA,CAAe;IAE7C,IAAM,GAAG,GAAG,IAAI,aAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAA,oBAAU,GAAE,CAAC,CAAC;;QAE9C,KAAyB,IAAA,gBAAA,iBAAA,WAAW,CAAA,wCAAA;YAA/B,IAAM,UAAU,wBAAA;YAAiB,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;SAAA;;;;;;;;;IAE1D,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;AAC1B,CAAC;AAEM,IAAM,cAAc,GAAG,UAAC,IAAY;;IACvC,OAAA,MAAA,MAAA,MAAA,SAAS,CAAC,IAAI,CAAC;SACV,KAAK,CAAC,0BAA0B,CAAC,0CAAG,CAAC,CAAC,0CACrC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,0CACd,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAA;CAAA,CAAC;AAJrB,QAAA,cAAc,kBAIO;AAE3B,IAAM,eAAe,GAAG,UAC3B,SAAiB,EACjB,MAAsB,IACrB,OAAA,IAAI,gBAAM,uCAAY,MAAM,KAAE,MAAM,EAAE,IAAA,sBAAc,EAAC,SAAS,CAAC,IAAG,EAAlE,CAAkE,CAAC;AAH3D,QAAA,eAAe,mBAG4C;AAWxE,SAAgB,aAAa;;IACzB,oBAAoB;SAApB,UAAoB,EAApB,qBAAoB,EAApB,IAAoB;QAApB,+BAAoB;;IAEpB,IAAI,MAA6B,CAAC;IAClC,IAAI,MAAoB,CAAC;IACzB,IAAI,WAAW,GAAuB,EAAE,CAAC;IAEzC,IAAI,OAAO,UAAU,CAAC,CAAC,CAAC,KAAK,UAAU;QACnC,KAAA,eAA2B,UAAU,CAAA,EAApC,MAAM,QAAA,EAAK,WAAW,cAAA,CAAe;;QACrC,KAAA,eAAmC,UAAU,CAAA,EAA5C,MAAM,QAAA,EAAE,MAAM,QAAA,EAAK,WAAW,cAAA,CAAe;IAEnD,OAAO,OAAO,sCACV,MAAM;QACN,MAAM,CAAC,MAAM,EAAE;QACf,MAAM,CAAC,cAAc,EAAE,kBACpB,WAAW,WAChB;AACN,CAAC"}
1
+ {"version":3,"file":"API.js","sourceRoot":"","sources":["../source/API.ts"],"names":[],"mappings":";;;AAaA,0BAcC;AAsBD,sCAiBC;;AAlED,uEAAyC;AACzC,+DAAwE;AACxE,oDAAsC;AAWtC,SAAgB,OAAO;;IAAO,oBAAoB;SAApB,UAAoB,EAApB,qBAAoB,EAApB,IAAoB;QAApB,+BAAoB;;IAC9C,IAAI,MAA6B,CAAC;IAClC,IAAI,WAAW,GAAuB,EAAE,CAAC;IAEzC,IAAI,OAAO,UAAU,CAAC,CAAC,CAAC,KAAK,UAAU,EAAE,CAAC;QACtC,MAAM,GAAG,SAAS,CAAC;QACnB,WAAW,GAAG,UAAU,CAAC;IAC7B,CAAC;;QAAM,KAAA,eAA2B,UAAU,CAAA,EAApC,MAAM,QAAA,EAAK,WAAW,cAAA,CAAe;IAE7C,IAAM,GAAG,GAAG,IAAI,aAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAA,oBAAU,GAAE,CAAC,CAAC;;QAE9C,KAAyB,IAAA,gBAAA,iBAAA,WAAW,CAAA,wCAAA;YAA/B,IAAM,UAAU,wBAAA;YAAiB,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;SAAA;;;;;;;;;IAE1D,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;AAC1B,CAAC;AAEM,IAAM,cAAc,GAAG,UAAC,IAAY;;IACvC,OAAA,MAAA,MAAA,MAAA,SAAS,CAAC,IAAI,CAAC;SACV,KAAK,CAAC,0BAA0B,CAAC,0CAAG,CAAC,CAAC,0CACrC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,0CACd,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAA;CAAA,CAAC;AAJrB,QAAA,cAAc,kBAIO;AAE3B,IAAM,eAAe,GAAG,UAC3B,SAAiB,EACjB,MAAsB,IACrB,OAAA,IAAI,gBAAM,uCAAY,MAAM,KAAE,MAAM,EAAE,IAAA,sBAAc,EAAC,SAAS,CAAC,IAAG,EAAlE,CAAkE,CAAC;AAH3D,QAAA,eAAe,mBAG4C;AAWxE,SAAgB,aAAa;;IACzB,oBAAoB;SAApB,UAAoB,EAApB,qBAAoB,EAApB,IAAoB;QAApB,+BAAoB;;IAEpB,IAAI,MAA6B,CAAC;IAClC,IAAI,MAAoB,CAAC;IACzB,IAAI,WAAW,GAAuB,EAAE,CAAC;IAEzC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,OAAO,UAAU,CAAC,CAAC,CAAC,KAAK,UAAU;QACrD,KAAA,eAA2B,UAAU,CAAA,EAApC,MAAM,QAAA,EAAK,WAAW,cAAA,CAAe;;QACrC,KAAA,eAAmC,UAAU,CAAA,EAA5C,MAAM,QAAA,EAAE,MAAM,QAAA,EAAK,WAAW,cAAA,CAAe;IAEnD,OAAO,OAAO,sCACV,MAAM;QACN,MAAM,CAAC,MAAM,EAAE;QACf,MAAM,CAAC,cAAc,EAAE,kBACpB,WAAW,WAChB;AACN,CAAC"}
@@ -1,5 +1,4 @@
1
1
  import { JwtPayload, VerifyOptions } from 'jsonwebtoken';
2
- import { TranslationModel } from 'mobx-i18n';
3
2
  import { GetServerSidePropsContext, GetServerSidePropsResult } from 'next';
4
3
  import { ParsedUrlQuery } from 'querystring';
5
4
  import { DataObject, Middleware } from '../compose';
@@ -13,4 +12,3 @@ export interface JWTProps<T extends DataObject = {}> {
13
12
  }
14
13
  export declare function jwtVerifier<I extends DataObject, O extends DataObject = {}>(tokenKey?: string, secretKey?: string, options?: VerifyOptions): Middleware<I, O & JWTProps>;
15
14
  export declare function cache<I extends DataObject, O extends DataObject = {}>(oneInterval?: number, allInterval?: number): Middleware<I, O>;
16
- export declare function translator<I extends DataObject, O extends DataObject = {}>(i18n: TranslationModel<string, string>): Middleware<I, O>;
@@ -4,11 +4,9 @@ exports.errorLogger = errorLogger;
4
4
  exports.router = router;
5
5
  exports.jwtVerifier = jwtVerifier;
6
6
  exports.cache = cache;
7
- exports.translator = translator;
8
7
  var tslib_1 = require("tslib");
9
8
  var jsonwebtoken_1 = require("jsonwebtoken");
10
9
  var koajax_1 = require("koajax");
11
- var mobx_i18n_1 = require("mobx-i18n");
12
10
  var web_utility_1 = require("web-utility");
13
11
  function errorLogger(context, next) {
14
12
  return tslib_1.__awaiter(this, void 0, void 0, function () {
@@ -121,21 +119,4 @@ function cache(oneInterval, allInterval) {
121
119
  });
122
120
  }); });
123
121
  }
124
- function translator(i18n) {
125
- var _this = this;
126
- return function (_a, next_1) { return tslib_1.__awaiter(_this, [_a, next_1], void 0, function (_b, next) {
127
- var _c, language, languages;
128
- var _d = _b.req, headers = _d.headers, cookies = _d.cookies;
129
- return tslib_1.__generator(this, function (_e) {
130
- switch (_e.label) {
131
- case 0:
132
- _c = cookies.language, language = _c === void 0 ? '' : _c, languages = (0, mobx_i18n_1.parseLanguageHeader)(headers['accept-language'] || '');
133
- return [4 /*yield*/, i18n.loadLanguages(tslib_1.__spreadArray([language], tslib_1.__read(languages), false).filter(Boolean))];
134
- case 1:
135
- _e.sent();
136
- return [2 /*return*/, next()];
137
- }
138
- });
139
- }); };
140
- }
141
122
  //# sourceMappingURL=local.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"local.js","sourceRoot":"","sources":["../../../source/SSR/middleware/local.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"local.js","sourceRoot":"","sources":["../../../source/SSR/middleware/local.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "next-ssr-middleware",
3
- "version": "0.10.0",
3
+ "version": "1.0.1",
4
4
  "license": "LGPL-3.0-or-later",
5
5
  "author": "shiy2008@gmail.com",
6
6
  "description": "Koa-like middlewares for Next.js Back-end API & Server Side Rendering",
@@ -22,39 +22,37 @@
22
22
  "types": "dist/index.d.ts",
23
23
  "main": "dist/index.js",
24
24
  "dependencies": {
25
+ "@koa/bodyparser": "^5.1.2",
26
+ "@koa/router": "^13.1.0",
25
27
  "@types/jsonwebtoken": "^9.0.9",
26
28
  "@types/koa": "^2.15.0",
27
29
  "@types/koa__router": "^12.0.4",
28
- "@types/react": ">=18",
30
+ "@types/react": "^19.1.6",
31
+ "jsonwebtoken": "^9.0.2",
32
+ "koa": ">=2",
29
33
  "tslib": "^2.8.1",
30
34
  "web-utility": "^4.4.3"
31
35
  },
32
36
  "peerDependencies": {
33
- "@koa/bodyparser": ">=5",
34
- "@koa/router": ">=13",
35
- "jsonwebtoken": ">=9",
36
- "koa": ">=2",
37
- "mobx-i18n": ">=0.5 <1",
38
37
  "next": ">=9.3",
39
38
  "react": ">=18"
40
39
  },
41
40
  "devDependencies": {
42
- "@koa/bodyparser": "^5.1.1",
43
- "@koa/router": "^13.1.0",
44
- "@types/node": "^22.15.2",
45
- "@types/react": "^19.1.2",
41
+ "@types/node": "^22.15.29",
46
42
  "husky": "^9.1.7",
47
- "jsonwebtoken": "^9.0.2",
48
- "koa": "^2.16.1",
49
43
  "koajax": "^3.1.2",
50
- "lint-staged": "^15.5.1",
51
- "mobx-i18n": "^0.6.0",
52
- "next": "^15.3.1",
44
+ "lint-staged": "^15.5.2",
45
+ "next": "^15.3.3",
53
46
  "open-cli": "^8.0.0",
54
47
  "prettier": "^3.5.3",
55
- "typedoc": "^0.28.3",
48
+ "typedoc": "^0.28.5",
56
49
  "typescript": "~5.8.3"
57
50
  },
51
+ "pnpm": {
52
+ "onlyBuiltDependencies": [
53
+ "sharp"
54
+ ]
55
+ },
58
56
  "prettier": {
59
57
  "singleQuote": true,
60
58
  "trailingComma": "none",
package/source/API.ts CHANGED
@@ -54,7 +54,7 @@ export function withKoaRouter<S, C extends RouterParamContext<S>>(
54
54
  let router: Router<S, C>;
55
55
  let middlewares: Middleware<S, C>[] = [];
56
56
 
57
- if (typeof parameters[1] === 'function')
57
+ if (!parameters[1] || typeof parameters[1] === 'function')
58
58
  [router, ...middlewares] = parameters;
59
59
  else [option, router, ...middlewares] = parameters;
60
60
 
@@ -1,6 +1,5 @@
1
1
  import { JwtPayload, VerifyOptions, verify } from 'jsonwebtoken';
2
2
  import { HTTPError } from 'koajax';
3
- import { TranslationModel, parseLanguageHeader } from 'mobx-i18n';
4
3
  import { GetServerSidePropsContext, GetServerSidePropsResult } from 'next';
5
4
  import { ParsedUrlQuery } from 'querystring';
6
5
  import { Day, Second } from 'web-utility';
@@ -126,19 +125,3 @@ export function cache<I extends DataObject, O extends DataObject = {}>(
126
125
  return data || cache.buffer;
127
126
  }) as Middleware<I, O>;
128
127
  }
129
-
130
- export function translator<I extends DataObject, O extends DataObject = {}>(
131
- i18n: TranslationModel<string, string>
132
- ): Middleware<I, O> {
133
- return async (
134
- { req: { headers, cookies } }: GetServerSidePropsContext<I>,
135
- next: () => Promise<GetServerSidePropsResult<O>>
136
- ) => {
137
- const { language = '' } = cookies,
138
- languages = parseLanguageHeader(headers['accept-language'] || '');
139
-
140
- await i18n.loadLanguages([language, ...languages].filter(Boolean));
141
-
142
- return next();
143
- };
144
- }