@ronas-it/nx-generators 0.15.3 → 0.16.0

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.
Files changed (43) hide show
  1. package/package.json +1 -1
  2. package/src/generators/expo-app/generator.js +1 -1
  3. package/src/generators/expo-app/generator.js.map +1 -1
  4. package/src/generators/next-app/generator.js +6 -0
  5. package/src/generators/next-app/generator.js.map +1 -1
  6. package/src/shared/dependencies.d.ts +6 -0
  7. package/src/shared/dependencies.js +6 -0
  8. package/src/shared/dependencies.js.map +1 -1
  9. package/src/shared/generators/auth/{lib-files → common-files}/shared/data-access/api/src/lib/auth/models/refresh-token-response.ts.template +1 -1
  10. package/src/shared/generators/auth/common-files/shared/data-access/auth/src/lib/store/listener.ts.template +165 -0
  11. package/src/shared/generators/auth/{lib-files → common-files}/shared/data-access/auth/src/lib/store/slice.ts.template +12 -1
  12. package/src/shared/generators/auth/generator.js +19 -2
  13. package/src/shared/generators/auth/generator.js.map +1 -1
  14. package/src/shared/generators/auth/next-app-files/app/[locale]/providers.tsx.template +26 -0
  15. package/src/shared/generators/auth/next-app-files/middleware.ts.template +33 -0
  16. package/src/shared/generators/auth/next-libs-files/shared/data-access/cookie/src/config.ts.template +6 -0
  17. package/src/shared/generators/auth/next-libs-files/shared/data-access/cookie/src/index.ts.template +2 -0
  18. package/src/shared/generators/auth/next-libs-files/shared/data-access/cookie/src/service.ts.template +28 -0
  19. package/src/shared/generators/auth/schema.d.ts +3 -0
  20. package/src/shared/generators/auth/lib-files/shared/data-access/auth/src/lib/store/listener.ts.template +0 -74
  21. /package/src/shared/generators/auth/{lib-files → common-files}/shared/data-access/api/src/index.ts.template +0 -0
  22. /package/src/shared/generators/auth/{lib-files → common-files}/shared/data-access/api/src/lib/auth/api.ts.template +0 -0
  23. /package/src/shared/generators/auth/{lib-files → common-files}/shared/data-access/api/src/lib/auth/index.ts.template +0 -0
  24. /package/src/shared/generators/auth/{lib-files → common-files}/shared/data-access/api/src/lib/auth/models/forgot-password-request.ts.template +0 -0
  25. /package/src/shared/generators/auth/{lib-files → common-files}/shared/data-access/api/src/lib/auth/models/index.ts.template +0 -0
  26. /package/src/shared/generators/auth/{lib-files → common-files}/shared/data-access/api/src/lib/auth/models/login-request.ts.template +0 -0
  27. /package/src/shared/generators/auth/{lib-files → common-files}/shared/data-access/api/src/lib/auth/models/login-response.ts.template +0 -0
  28. /package/src/shared/generators/auth/{lib-files → common-files}/shared/data-access/api/src/lib/auth/models/register-request.ts.template +0 -0
  29. /package/src/shared/generators/auth/{lib-files → common-files}/shared/data-access/api/src/lib/auth/models/restore-password-request.ts.template +0 -0
  30. /package/src/shared/generators/auth/{lib-files → common-files}/shared/data-access/api/src/lib/index.ts.template +0 -0
  31. /package/src/shared/generators/auth/{lib-files → common-files}/shared/data-access/api/src/lib/profile/api.ts.template +0 -0
  32. /package/src/shared/generators/auth/{lib-files → common-files}/shared/data-access/api/src/lib/profile/config.ts.template +0 -0
  33. /package/src/shared/generators/auth/{lib-files → common-files}/shared/data-access/api/src/lib/profile/index.ts.template +0 -0
  34. /package/src/shared/generators/auth/{lib-files → common-files}/shared/data-access/api/src/lib/profile/models/get-profile-request.ts.template +0 -0
  35. /package/src/shared/generators/auth/{lib-files → common-files}/shared/data-access/api/src/lib/profile/models/index.ts.template +0 -0
  36. /package/src/shared/generators/auth/{lib-files → common-files}/shared/data-access/api/src/lib/profile/types/index.ts.template +0 -0
  37. /package/src/shared/generators/auth/{lib-files → common-files}/shared/data-access/api/src/lib/profile/types/relation.ts.template +0 -0
  38. /package/src/shared/generators/auth/{lib-files → common-files}/shared/data-access/api/src/lib/user/index.ts.template +0 -0
  39. /package/src/shared/generators/auth/{lib-files → common-files}/shared/data-access/api/src/lib/user/models/index.ts.template +0 -0
  40. /package/src/shared/generators/auth/{lib-files → common-files}/shared/data-access/api/src/lib/user/models/user.ts.template +0 -0
  41. /package/src/shared/generators/auth/{lib-files → common-files}/shared/data-access/auth/src/index.ts.template +0 -0
  42. /package/src/shared/generators/auth/{lib-files → common-files}/shared/data-access/auth/src/lib/index.ts.template +0 -0
  43. /package/src/shared/generators/auth/{lib-files → common-files}/shared/data-access/auth/src/lib/store/index.ts.template +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ronas-it/nx-generators",
3
- "version": "0.15.3",
3
+ "version": "0.16.0",
4
4
  "description": "Nx generators for Ronas IT projects",
5
5
  "license": "MIT",
6
6
  "author": "Ronas IT",
@@ -86,7 +86,7 @@ function expoAppGenerator(tree, options) {
86
86
  (0, devkit_1.installPackagesTask)(tree);
87
87
  (0, child_process_1.execSync)('npx expo install --fix', { stdio: 'inherit' });
88
88
  if (shouldGenerateAuthLibs) {
89
- (0, child_process_1.execSync)(`npx nx g auth ${options.directory}`, {
89
+ (0, child_process_1.execSync)(`npx nx g auth --directory=${options.directory} --type=${enums_1.BaseGeneratorType.EXPO_APP}`, {
90
90
  stdio: 'inherit',
91
91
  });
92
92
  }
@@ -1 +1 @@
1
- {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../plugin/src/generators/expo-app/generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../plugin/src/generators/expo-app/generator.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,7 @@ function nextAppGenerator(tree, options) {
15
15
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
16
16
  var _a, _b;
17
17
  const shouldGenerateApiClientLib = options.withStore && !(0, lodash_1.isBoolean)(options.withApiClient) && (yield (0, utils_1.confirm)('Do you want to create api client lib?'));
18
+ const shouldGenerateAuthLibs = shouldGenerateApiClientLib && (yield (0, utils_1.confirm)('Do you want to create auth lib?'));
18
19
  const appRoot = `apps/${options.directory}`;
19
20
  const i18nRoot = `i18n/${options.directory}`;
20
21
  const libPath = `${(0, utils_1.getImportPathPrefix)(tree)}/${options.directory}`;
@@ -75,6 +76,11 @@ function nextAppGenerator(tree, options) {
75
76
  yield (0, devkit_1.formatFiles)(tree);
76
77
  return () => {
77
78
  (0, devkit_1.installPackagesTask)(tree);
79
+ if (shouldGenerateAuthLibs) {
80
+ (0, child_process_1.execSync)(`npx nx g auth --directory=${options.directory} --type=${enums_1.BaseGeneratorType.NEXT_APP}`, {
81
+ stdio: 'inherit',
82
+ });
83
+ }
78
84
  if (options.withSentry) {
79
85
  (0, child_process_1.execSync)(`npx nx g sentry --directory=${appRoot}`, {
80
86
  stdio: 'inherit',
@@ -1 +1 @@
1
- {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../plugin/src/generators/next-app/generator.ts"],"names":[],"mappings":";;AAyBA,4CAwGC;;AAjID,iDAAyC;AACzC,2BAAgC;AAChC,6BAA6B;AAC7B,uCAQoB;AACpB,mCAAmC;AACnC,4DAA0E;AAC1E,8CAAuD;AACvD,wDAMiC;AACjC,8CAA2F;AAG3F,SAAsB,gBAAgB,CAAC,IAAU,EAAE,OAA+B;;;QAChF,MAAM,0BAA0B,GAC9B,OAAO,CAAC,SAAS,IAAI,CAAC,IAAA,kBAAS,EAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,IAAA,eAAO,EAAC,uCAAuC,CAAC,CAAC,CAAC;QAErH,MAAM,OAAO,GAAG,QAAQ,OAAO,CAAC,SAAS,EAAE,CAAC;QAC5C,MAAM,QAAQ,GAAG,QAAQ,OAAO,CAAC,SAAS,EAAE,CAAC;QAC7C,MAAM,OAAO,GAAG,GAAG,IAAA,2BAAmB,EAAC,IAAI,CAAC,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QACpE,MAAM,IAAI,GAAG,CAAC,OAAO,OAAO,CAAC,SAAS,EAAE,EAAE,UAAU,CAAC,CAAC;QACtD,MAAM,qBAAqB,GAAG,GAAG,OAAO,CAAC,SAAS,SAAS,CAAC;QAE5D,0BAA0B;QAC1B,IAAA,wBAAQ,EAAC,qBAAqB,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QAEtD,IAAI,CAAC,IAAA,eAAU,EAAC,OAAO,CAAC,EAAE,CAAC;YACzB,IAAA,wBAAQ,EACN,yBAAyB,OAAO,CAAC,IAAI,qBAAqB,OAAO,CAAC,SAAS,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,mGAAmG,EACzM,EAAE,KAAK,EAAE,SAAS,EAAE,CACrB,CAAC;QACJ,CAAC;QAED,MAAM,IAAA,iCAAoB,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC1C,MAAM,IAAA,wCAA2B,EAAC,IAAI,EAAE;YACtC,YAAY,EAAE,OAAO,CAAC,SAAS;YAC/B,iBAAiB,EAAE,yBAAiB,CAAC,QAAQ;SAC9C,CAAC,CAAC;QAEH,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YACtB,MAAM,IAAA,8BAAiB,EAAC,IAAI,kCACvB,OAAO,KACV,iBAAiB,EAAE,yBAAiB,CAAC,QAAQ,IAC7C,CAAC;QACL,CAAC;QAED,IAAI,0BAA0B,EAAE,CAAC;YAC/B,MAAM,IAAA,kCAAqB,EAAC,IAAI,kCAAO,OAAO,KAAE,IAAI,EAAE,yBAAiB,CAAC,QAAQ,IAAG,CAAC;QACtF,CAAC;QAED,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;YAC1B,MAAM,IAAA,kCAAqB,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC7C,CAAC;QAED,MAAM,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC;QAEvC,2DAA2D;QAC3D,IAAI,CAAC,MAAM,CAAC,GAAG,OAAO,kBAAkB,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM,CAAC,GAAG,OAAO,UAAU,CAAC,CAAC;QAClC,IAAI,CAAC,MAAM,CAAC,GAAG,OAAO,eAAe,CAAC,CAAC;QACvC,IAAI,CAAC,MAAM,CAAC,GAAG,OAAO,uBAAuB,CAAC,CAAC;QAC/C,IAAI,CAAC,MAAM,CAAC,GAAG,OAAO,iBAAiB,CAAC,CAAC;QACzC,IAAI,CAAC,MAAM,CAAC,GAAG,OAAO,iBAAiB,CAAC,CAAC;QACzC,IAAI,CAAC,MAAM,CAAC,GAAG,OAAO,QAAQ,CAAC,CAAC;QAChC,IAAI,CAAC,MAAM,CAAC,GAAG,OAAO,oBAAoB,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM,CAAC,GAAG,OAAO,oBAAoB,CAAC,CAAC;QAE5C,8FAA8F;QAC9F,MAAM,eAAe,GAAG,GAAG,OAAO,gBAAgB,CAAC;QACnD,MAAM,eAAe,GAAG,IAAA,iBAAQ,EAAC,IAAI,EAAE,eAAe,CAAC,CAAC;QACxD,MAAM,gBAAgB,GAAG,qBAAqB,CAAC;QAE/C,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACxD,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACjD,CAAC;QAEM,MAAA,eAAe,CAAC,eAAe,+CAAE,KAAK,CAAC;QACvC,MAAA,eAAe,CAAC,eAAe,+CAAE,OAAO,CAAC;QAChD,IAAA,kBAAS,EAAC,IAAI,EAAE,eAAe,EAAE,eAAe,CAAC,CAAC;QAElD,gBAAgB;QAChB,IAAA,sBAAa,EAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,OAAO,kCACrD,OAAO,KACV,UAAU,EAAV,kBAAU;YACV,OAAO;YACP,YAAY,EACZ,cAAc,EAAE,OAAO,CAAC,SAAS,EACjC,qBAAqB,IACrB,CAAC;QAEH,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,IAAI,CAAC,MAAM,CAAC,GAAG,OAAO,6BAA6B,CAAC,CAAC;QACvD,CAAC;QAED,IAAA,mBAAW,EAAC,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QACrC,IAAA,sBAAa,EAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,QAAQ,kCACrD,OAAO,KACV,UAAU,EAAV,kBAAU;YACV,qBAAqB,IACrB,CAAC;QAEH,mBAAmB;QACnB,IAAA,qCAA4B,EAAC,IAAI,EAAE,2BAAY,CAAC,UAAU,CAAC,EAAE,8BAAe,CAAC,UAAU,CAAC,CAAC,CAAC;QAE1F,MAAM,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC;QAExB,OAAO,GAAS,EAAE;YAChB,IAAA,4BAAmB,EAAC,IAAI,CAAC,CAAC;YAE1B,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;gBACvB,IAAA,wBAAQ,EAAC,+BAA+B,OAAO,EAAE,EAAE;oBACjD,KAAK,EAAE,SAAS;iBACjB,CAAC,CAAC;YACL,CAAC;YAED,IAAA,wBAAQ,EAAC,mCAAmC,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QACtE,CAAC,CAAC;IACJ,CAAC;CAAA;AAED,kBAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../plugin/src/generators/next-app/generator.ts"],"names":[],"mappings":"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"}
@@ -31,6 +31,9 @@ export declare const dependencies: {
31
31
  auth: {
32
32
  luxon: string;
33
33
  };
34
+ 'next-auth': {
35
+ 'js-cookie': string;
36
+ };
34
37
  'rn-styles': {
35
38
  'react-native-extended-stylesheet': string;
36
39
  };
@@ -94,4 +97,7 @@ export declare const devDependencies: {
94
97
  auth: {
95
98
  '@types/luxon': string;
96
99
  };
100
+ 'next-auth': {
101
+ '@types/js-cookie': string;
102
+ };
97
103
  };
@@ -34,6 +34,9 @@ exports.dependencies = {
34
34
  auth: {
35
35
  luxon: '^3.6.1',
36
36
  },
37
+ 'next-auth': {
38
+ 'js-cookie': '^3.0.5',
39
+ },
37
40
  'rn-styles': {
38
41
  'react-native-extended-stylesheet': '^0.12.0',
39
42
  },
@@ -98,5 +101,8 @@ exports.devDependencies = {
98
101
  auth: {
99
102
  '@types/luxon': '3.6.2',
100
103
  },
104
+ 'next-auth': {
105
+ '@types/js-cookie': '^3.0.6',
106
+ },
101
107
  };
102
108
  //# sourceMappingURL=dependencies.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dependencies.js","sourceRoot":"","sources":["../../../../plugin/src/shared/dependencies.ts"],"names":[],"mappings":";;;AAAa,QAAA,YAAY,GAAG;IAC1B,UAAU,EAAE;QACV,uCAAuC,EAAE,QAAQ;QACjD,mBAAmB,EAAE,QAAQ;QAC7B,gBAAgB,EAAE,SAAS;QAC3B,iBAAiB,EAAE,QAAQ;QAC3B,aAAa,EAAE,QAAQ;QACvB,gCAAgC,EAAE,QAAQ;QAC1C,sBAAsB,EAAE,SAAS;QACjC,IAAI,EAAE,SAAS;QACf,cAAc,EAAE,QAAQ;QACxB,iBAAiB,EAAE,QAAQ;QAC3B,cAAc,EAAE,UAAU;QAC1B,eAAe,EAAE,QAAQ;QACzB,mBAAmB,EAAE,SAAS;QAC9B,SAAS,EAAE,QAAQ;QACnB,WAAW,EAAE,UAAU;QACvB,KAAK,EAAE,SAAS;QAChB,cAAc,EAAE,SAAS;QACzB,kBAAkB,EAAE,UAAU;QAC9B,8BAA8B,EAAE,QAAQ;KACzC;IACD,UAAU,EAAE;QACV,WAAW,EAAE,QAAQ;QACrB,WAAW,EAAE,UAAU;QACvB,mBAAmB,EAAE,QAAQ;KAC9B;IACD,YAAY,EAAE;QACZ,4BAA4B,EAAE,QAAQ;KACvC;IACD,IAAI,EAAE;QACJ,KAAK,EAAE,QAAQ;KAChB;IACD,WAAW,EAAE;QACX,kCAAkC,EAAE,SAAS;KAC9C;IACD,KAAK,EAAE;QACL,2BAA2B,EAAE,SAAS;QACtC,aAAa,EAAE,QAAQ;KACxB;IACD,WAAW,EAAE;QACX,iBAAiB,EAAE,QAAQ;QAC3B,uBAAuB,EAAE,QAAQ;KAClC;IACD,IAAI,EAAE;QACJ,qBAAqB,EAAE,QAAQ;QAC/B,iBAAiB,EAAE,SAAS;QAC5B,GAAG,EAAE,QAAQ;KACd;IACD,MAAM,EAAE;QACN,IAAI,EAAE;YACJ,sBAAsB,EAAE,SAAS;SAClC;QACD,IAAI,EAAE;YACJ,gBAAgB,EAAE,SAAS;SAC5B;KACF;CACF,CAAC;AAEW,QAAA,eAAe,GAAG;IAC7B,aAAa,EAAE;QACb,gBAAgB,EAAE,QAAQ;QAC1B,kBAAkB,EAAE,QAAQ;QAC5B,MAAM,EAAE,SAAS;QACjB,QAAQ,EAAE,QAAQ;QAClB,wBAAwB,EAAE,SAAS;QACnC,mCAAmC,EAAE,QAAQ;QAC7C,sBAAsB,EAAE,SAAS;QACjC,wBAAwB,EAAE,SAAS;QACnC,qBAAqB,EAAE,SAAS;QAChC,2BAA2B,EAAE,QAAQ;QACrC,8BAA8B,EAAE,QAAQ;QACxC,KAAK,EAAE,QAAQ;QACf,0BAA0B,EAAE,QAAQ;QACpC,kCAAkC,EAAE,SAAS;QAC7C,2BAA2B,EAAE,SAAS;QACtC,WAAW,EAAE,QAAQ;KACtB;IACD,UAAU,EAAE;QACV,kBAAkB,EAAE,UAAU;QAC9B,WAAW,EAAE,UAAU;QACvB,yBAAyB,EAAE,SAAS;QACpC,kBAAkB,EAAE,QAAQ;QAC5B,KAAK,EAAE,SAAS;QAChB,cAAc,EAAE,SAAS;KAC1B;IACD,UAAU,EAAE;QACV,wDAAwD;QACxD,oBAAoB,EAAE,SAAS;QAC/B,kBAAkB,EAAE,UAAU;KAC/B;IACD,aAAa,EAAE;QACb,QAAQ,EAAE,SAAS;QACnB,WAAW,EAAE,QAAQ;KACtB;IACD,IAAI,EAAE;QACJ,cAAc,EAAE,OAAO;KACxB;CACF,CAAC"}
1
+ {"version":3,"file":"dependencies.js","sourceRoot":"","sources":["../../../../plugin/src/shared/dependencies.ts"],"names":[],"mappings":";;;AAAa,QAAA,YAAY,GAAG;IAC1B,UAAU,EAAE;QACV,uCAAuC,EAAE,QAAQ;QACjD,mBAAmB,EAAE,QAAQ;QAC7B,gBAAgB,EAAE,SAAS;QAC3B,iBAAiB,EAAE,QAAQ;QAC3B,aAAa,EAAE,QAAQ;QACvB,gCAAgC,EAAE,QAAQ;QAC1C,sBAAsB,EAAE,SAAS;QACjC,IAAI,EAAE,SAAS;QACf,cAAc,EAAE,QAAQ;QACxB,iBAAiB,EAAE,QAAQ;QAC3B,cAAc,EAAE,UAAU;QAC1B,eAAe,EAAE,QAAQ;QACzB,mBAAmB,EAAE,SAAS;QAC9B,SAAS,EAAE,QAAQ;QACnB,WAAW,EAAE,UAAU;QACvB,KAAK,EAAE,SAAS;QAChB,cAAc,EAAE,SAAS;QACzB,kBAAkB,EAAE,UAAU;QAC9B,8BAA8B,EAAE,QAAQ;KACzC;IACD,UAAU,EAAE;QACV,WAAW,EAAE,QAAQ;QACrB,WAAW,EAAE,UAAU;QACvB,mBAAmB,EAAE,QAAQ;KAC9B;IACD,YAAY,EAAE;QACZ,4BAA4B,EAAE,QAAQ;KACvC;IACD,IAAI,EAAE;QACJ,KAAK,EAAE,QAAQ;KAChB;IACD,WAAW,EAAE;QACX,WAAW,EAAE,QAAQ;KACtB;IACD,WAAW,EAAE;QACX,kCAAkC,EAAE,SAAS;KAC9C;IACD,KAAK,EAAE;QACL,2BAA2B,EAAE,SAAS;QACtC,aAAa,EAAE,QAAQ;KACxB;IACD,WAAW,EAAE;QACX,iBAAiB,EAAE,QAAQ;QAC3B,uBAAuB,EAAE,QAAQ;KAClC;IACD,IAAI,EAAE;QACJ,qBAAqB,EAAE,QAAQ;QAC/B,iBAAiB,EAAE,SAAS;QAC5B,GAAG,EAAE,QAAQ;KACd;IACD,MAAM,EAAE;QACN,IAAI,EAAE;YACJ,sBAAsB,EAAE,SAAS;SAClC;QACD,IAAI,EAAE;YACJ,gBAAgB,EAAE,SAAS;SAC5B;KACF;CACF,CAAC;AAEW,QAAA,eAAe,GAAG;IAC7B,aAAa,EAAE;QACb,gBAAgB,EAAE,QAAQ;QAC1B,kBAAkB,EAAE,QAAQ;QAC5B,MAAM,EAAE,SAAS;QACjB,QAAQ,EAAE,QAAQ;QAClB,wBAAwB,EAAE,SAAS;QACnC,mCAAmC,EAAE,QAAQ;QAC7C,sBAAsB,EAAE,SAAS;QACjC,wBAAwB,EAAE,SAAS;QACnC,qBAAqB,EAAE,SAAS;QAChC,2BAA2B,EAAE,QAAQ;QACrC,8BAA8B,EAAE,QAAQ;QACxC,KAAK,EAAE,QAAQ;QACf,0BAA0B,EAAE,QAAQ;QACpC,kCAAkC,EAAE,SAAS;QAC7C,2BAA2B,EAAE,SAAS;QACtC,WAAW,EAAE,QAAQ;KACtB;IACD,UAAU,EAAE;QACV,kBAAkB,EAAE,UAAU;QAC9B,WAAW,EAAE,UAAU;QACvB,yBAAyB,EAAE,SAAS;QACpC,kBAAkB,EAAE,QAAQ;QAC5B,KAAK,EAAE,SAAS;QAChB,cAAc,EAAE,SAAS;KAC1B;IACD,UAAU,EAAE;QACV,wDAAwD;QACxD,oBAAoB,EAAE,SAAS;QAC/B,kBAAkB,EAAE,UAAU;KAC/B;IACD,aAAa,EAAE;QACb,QAAQ,EAAE,SAAS;QACnB,WAAW,EAAE,QAAQ;KACtB;IACD,IAAI,EAAE;QACJ,cAAc,EAAE,OAAO;KACxB;IACD,WAAW,EAAE;QACX,kBAAkB,EAAE,QAAQ;KAC7B;CACF,CAAC"}
@@ -8,7 +8,7 @@ export class RefreshTokenResponse {
8
8
  public ttl: number;
9
9
 
10
10
  @Expose({ name: 'refresh_ttl' })
11
- public refreshTtl: string;
11
+ public refreshTtl: number;
12
12
 
13
13
  constructor(partial: Partial<RefreshTokenResponse>) {
14
14
  Object.assign(this, partial);
@@ -0,0 +1,165 @@
1
+ import { createListenerMiddleware, isAnyOf } from '@reduxjs/toolkit';
2
+ import {
3
+ onRequestRefreshTokenInterceptor,
4
+ onResponseRefreshTokenInterceptor,
5
+ RefreshTokenInterceptorOptions,
6
+ <% if (type === 'expo-app') { %>tokenInterceptor,<% } %>
7
+ unauthorizedInterceptor
8
+ } from '@ronas-it/axios-api-client';
9
+ import { storeActions } from '@ronas-it/rtkq-entity-api';
10
+ <% if (type === 'next-app') { %>import { DateTime } from 'luxon';<% } %>
11
+ import { authApi, profileApi, LogInResponse } from '<%= libPath %>/shared/data-access/api';
12
+ import { apiService, configuration } from '<%= libPath %>/shared/data-access/api-client';
13
+ <% if (type === 'next-app') { %>import { CookieService } from '<%= libPath %>/shared/data-access/cookie';<% } %>
14
+ <% if (type === 'expo-app') { %>import { AppStorageValue, storage } from '<%= libPath %>/shared/data-access/storage';<% } %>
15
+ import { authActions, authReducerPath, authSelectors, AuthState } from './slice';
16
+
17
+ export const authListenerMiddleware = createListenerMiddleware<{ [authReducerPath]: AuthState }>();
18
+
19
+ <% if (type === 'expo-app') { %>authListenerMiddleware.startListening({
20
+ actionCreator: storeActions.init,
21
+ effect: (_, { dispatch }) => {
22
+ const token = storage.getString(AppStorageValue.TOKEN);
23
+ dispatch(authActions.setIsAuthenticated(Boolean(token)));
24
+
25
+ apiService.useInterceptors({
26
+ request: [[tokenInterceptor({ getToken: () => storage.getString(AppStorageValue.TOKEN) ?? '' })]],
27
+ });
28
+
29
+ dispatch(authActions.setIsAppReady(true));
30
+ },
31
+ });
32
+
33
+ authListenerMiddleware.startListening({
34
+ matcher: authApi.internalActions.middlewareRegistered.match,
35
+ effect: (_, { dispatch, getState }) => {
36
+ const options: RefreshTokenInterceptorOptions = {
37
+ configuration: configuration.auth,
38
+ getIsAuthenticated: () => authSelectors.isAuthenticated(getState()),
39
+ runTokenRefreshRequest: async () => {
40
+ const { token } = await dispatch(authApi.endpoints.refreshToken.initiate()).unwrap();
41
+ storage.set(AppStorageValue.TOKEN, token);
42
+
43
+ return token;
44
+ },
45
+ onError: () => {
46
+ return dispatch(authApi.endpoints.logout.initiate()).unwrap();
47
+ },
48
+ };
49
+
50
+ apiService.useInterceptors({
51
+ request: [[onRequestRefreshTokenInterceptor(options)]],
52
+ response: [
53
+ [null, onResponseRefreshTokenInterceptor(options)],
54
+ [
55
+ null,
56
+ unauthorizedInterceptor({
57
+ publicEndpoints: configuration.auth.unauthorizedRoutes,
58
+ onError: () => dispatch(authActions.unauthorize()),
59
+ }),
60
+ ],
61
+ ],
62
+ });
63
+ },
64
+ });
65
+
66
+ authListenerMiddleware.startListening({
67
+ matcher: isAnyOf(authApi.endpoints.login.matchFulfilled, authApi.endpoints.register.matchFulfilled),
68
+ effect: ({ payload: { token } }: { payload: LogInResponse }, { dispatch }) => {
69
+ storage.set(AppStorageValue.TOKEN, token);
70
+ dispatch(authActions.setIsAuthenticated(true));
71
+ },
72
+ });<% } %>
73
+
74
+ <% if (type === 'next-app') { %>authListenerMiddleware.startListening({
75
+ actionCreator: storeActions.init,
76
+ effect: async (_, { dispatch, getState }) => {
77
+ const getIsAuthenticated = (): boolean | null => authSelectors.isAuthenticated(getState());
78
+
79
+ const getIsTokenExpired = (): boolean | null => {
80
+ const expiryDate = authSelectors.expiryDate(getState());
81
+
82
+ return !expiryDate || expiryDate <= new Date();
83
+ };
84
+
85
+ const options: RefreshTokenInterceptorOptions = {
86
+ configuration: configuration.auth,
87
+ getIsAuthenticated,
88
+ getIsTokenExpired,
89
+ runTokenRefreshRequest: async () => {
90
+ const { token, ttl, refreshTtl } = await dispatch(authApi.endpoints.refreshToken.initiate()).unwrap();
91
+ const expiryDate = DateTime.now().plus({ minute: ttl }).toJSDate();
92
+
93
+ CookieService.set(
94
+ {
95
+ isAuthenticated: 'true',
96
+ tokenExpiryDate: expiryDate.toISOString(),
97
+ },
98
+ { expires: DateTime.now().plus({ minute: refreshTtl }).toJSDate() },
99
+ );
100
+
101
+ dispatch(authActions.setExpiryDate(expiryDate));
102
+
103
+ return token;
104
+ },
105
+ onError: async () => dispatch(authApi.endpoints.logout.initiate()).unwrap(),
106
+ };
107
+
108
+ apiService.useInterceptors({
109
+ request: [[onRequestRefreshTokenInterceptor(options)]],
110
+ response: [
111
+ [null, onResponseRefreshTokenInterceptor(options)],
112
+ [
113
+ null,
114
+ unauthorizedInterceptor({
115
+ publicEndpoints: configuration.auth.unauthorizedRoutes,
116
+ onError: () => dispatch(authActions.unauthorize()),
117
+ }),
118
+ ],
119
+ ],
120
+ });
121
+
122
+ dispatch(authActions.setIsAppReady(true));
123
+ },
124
+ });
125
+
126
+ authListenerMiddleware.startListening({
127
+ matcher: isAnyOf(authApi.endpoints.login.matchFulfilled, authApi.endpoints.register.matchFulfilled),
128
+ effect: async ({ payload: { refreshTtl, ttl } }: { payload: LogInResponse }, { dispatch }) => {
129
+ const expiryDate = DateTime.now().plus({ minute: ttl }).toJSDate();
130
+
131
+ CookieService.set(
132
+ {
133
+ isAuthenticated: 'true',
134
+ tokenExpiryDate: expiryDate.toISOString(),
135
+ },
136
+ { expires: DateTime.now().plus({ minute: refreshTtl }).toJSDate() },
137
+ );
138
+
139
+ dispatch(authActions.setIsAuthenticated(true));
140
+ dispatch(authActions.setExpiryDate(expiryDate));
141
+ },
142
+ });<% } %>
143
+
144
+ authListenerMiddleware.startListening({
145
+ matcher: isAnyOf(
146
+ authApi.endpoints.logout.matchFulfilled,
147
+ authApi.endpoints.logout.matchRejected,
148
+ profileApi.endpoints.deleteProfile.matchFulfilled,
149
+ ),
150
+ effect: (_, { dispatch }) => {
151
+ dispatch(authActions.unauthorize());
152
+ },
153
+ });
154
+
155
+ authListenerMiddleware.startListening({
156
+ actionCreator: authActions.unauthorize,
157
+ effect: (_, { dispatch }) => {
158
+ <% if (type === 'expo-app') { %>storage.delete(AppStorageValue.TOKEN);<% } %>
159
+ <% if (type === 'next-app') { %>CookieService.remove(['isAuthenticated', 'tokenExpiryDate']);<% } %>
160
+ dispatch(authActions.setIsAuthenticated(false));
161
+ <% if (type === 'next-app') { %>dispatch(authActions.setExpiryDate(null));<% } %>
162
+
163
+ dispatch(profileApi.util.resetApiState());
164
+ },
165
+ });
@@ -1,13 +1,16 @@
1
1
  import { PayloadAction, createSlice } from '@reduxjs/toolkit';
2
+ <% if (type === 'next-app') { %>import { CookieService } from '<%= libPath %>/shared/data-access/cookie';<% } %>
2
3
 
3
4
  export interface AuthState {
4
5
  isAuthenticated: boolean | null;
5
6
  isAppReady: boolean;
7
+ <% if (type === 'next-app') { %>expiryDate: Date | null;<% } %>
6
8
  }
7
9
 
8
10
  const initialState: AuthState = {
9
- isAuthenticated: null,
11
+ isAuthenticated: <% if (type === 'next-app') { %>CookieService.get('isAuthenticated') === 'true',<% } else { %>null,<% } %>
10
12
  isAppReady: false,
13
+ <% if (type === 'next-app') { %>expiryDate: new Date(CookieService.get('tokenExpiryDate')),<% } %>
11
14
  };
12
15
 
13
16
  const authSlice = createSlice({
@@ -20,10 +23,18 @@ const authSlice = createSlice({
20
23
  setIsAppReady(state, { payload }: PayloadAction<boolean>) {
21
24
  state.isAppReady = payload;
22
25
  },
26
+ <% if (type === 'next-app') { %>setExpiryDate(state, { payload }: PayloadAction<AuthState['expiryDate']>) {
27
+ state.expiryDate = payload;
28
+ },<% } %>
29
+ unauthorize(state) {
30
+ state.isAuthenticated = false;
31
+ <% if (type === 'next-app') { %>state.expiryDate = null;<% } %>
32
+ },
23
33
  },
24
34
  selectors: {
25
35
  isAuthenticated: (state) => state.isAuthenticated,
26
36
  isAppReady: (state) => state.isAppReady,
37
+ <% if (type === 'next-app') { %>expiryDate: (state) => state.expiryDate,<% } %>
27
38
  },
28
39
  });
29
40
 
@@ -8,6 +8,7 @@ const path = require("path");
8
8
  const devkit_1 = require("@nx/devkit");
9
9
  const ts_morph_1 = require("ts-morph");
10
10
  const dependencies_1 = require("../../dependencies");
11
+ const enums_1 = require("../../enums");
11
12
  const utils_1 = require("../../utils");
12
13
  const updateStore = (libRoot) => {
13
14
  const project = new ts_morph_1.Project({
@@ -58,19 +59,35 @@ function runAuthGenerator(tree, options) {
58
59
  (0, child_process_1.execSync)(`npx nx g react-lib --app=${options.directory} --scope=shared --type=data-access --name=auth`, {
59
60
  stdio: 'inherit',
60
61
  });
62
+ if (options.type === enums_1.BaseGeneratorType.NEXT_APP) {
63
+ (0, child_process_1.execSync)(`npx nx g react-lib --app=${options.directory} --scope=shared --type=data-access --name=cookie`, {
64
+ stdio: 'inherit',
65
+ });
66
+ }
61
67
  const appPackagePath = `${appRoot}/package.json`;
62
68
  // Remove unnecessary files and files that will be replaced
63
69
  tree.delete(`${libRoot}/shared/data-access/api/src/index.ts`);
64
70
  tree.delete(`${libRoot}/shared/data-access/auth/src/index.ts`);
65
71
  // Add lib files
66
- (0, devkit_1.generateFiles)(tree, path.join(__dirname, '/lib-files'), libRoot, Object.assign(Object.assign({}, options), { formatName: utils_1.formatName,
72
+ (0, devkit_1.generateFiles)(tree, path.join(__dirname, '/common-files'), libRoot, Object.assign(Object.assign({}, options), { formatName: utils_1.formatName,
67
73
  formatAppIdentifier: utils_1.formatAppIdentifier,
68
74
  libPath }));
75
+ if (options.type === enums_1.BaseGeneratorType.NEXT_APP) {
76
+ (0, devkit_1.generateFiles)(tree, path.join(__dirname, '/next-libs-files'), libRoot, {});
77
+ (0, devkit_1.generateFiles)(tree, path.join(__dirname, '/next-app-files'), appRoot, { libPath });
78
+ }
69
79
  updateStore(libRoot);
70
- // Add dependencies
80
+ // Add dependencies to root package.json
71
81
  (0, devkit_1.addDependenciesToPackageJson)(tree, dependencies_1.dependencies['auth'], dependencies_1.devDependencies['auth']);
82
+ if (options.type === enums_1.BaseGeneratorType.NEXT_APP) {
83
+ (0, devkit_1.addDependenciesToPackageJson)(tree, dependencies_1.dependencies['next-auth'], dependencies_1.devDependencies['next-auth']);
84
+ }
85
+ // Add dependencies to app package.json
72
86
  if ((0, fs_1.existsSync)(appPackagePath)) {
73
87
  (0, devkit_1.addDependenciesToPackageJson)(tree, dependencies_1.dependencies['auth'], dependencies_1.devDependencies['auth'], appPackagePath);
88
+ if (options.type === enums_1.BaseGeneratorType.NEXT_APP) {
89
+ (0, devkit_1.addDependenciesToPackageJson)(tree, dependencies_1.dependencies['next-auth'], dependencies_1.devDependencies['next-auth'], appPackagePath);
90
+ }
74
91
  }
75
92
  yield (0, devkit_1.formatFiles)(tree);
76
93
  return () => {
@@ -1 +1 @@
1
- {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../plugin/src/shared/generators/auth/generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../plugin/src/shared/generators/auth/generator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ 'use client';
2
+
3
+ import { storeActions } from '@ronas-it/rtkq-entity-api';
4
+ import { PropsWithChildren, ReactElement, ReactNode, useEffect } from 'react';
5
+ import { Provider, useDispatch, useSelector } from 'react-redux';
6
+ import { authSelectors } from '<%= libPath %>/shared/data-access/auth';
7
+ import { store } from '<%= libPath %>/shared/data-access/store';
8
+
9
+ function App({ children }: PropsWithChildren): ReactNode {
10
+ const dispatch = useDispatch();
11
+ const isAppReady = useSelector(authSelectors.isAppReady);
12
+
13
+ useEffect(() => {
14
+ dispatch(storeActions.init());
15
+ }, []);
16
+
17
+ return isAppReady ? children : null;
18
+ }
19
+
20
+ export function Providers({ children }: PropsWithChildren): ReactElement {
21
+ return (
22
+ <Provider store={store}>
23
+ <App>{children}</App>
24
+ </Provider>
25
+ );
26
+ }
@@ -0,0 +1,33 @@
1
+ import { cookieConfig } from '<%= libPath %>/shared/data-access/cookie';
2
+ import { Locale } from '<%= libPath %>/shared/utils/i18n';
3
+ import { NextRequest, NextResponse } from 'next/server';
4
+ import createMiddleware from 'next-intl/middleware';
5
+ import { constants } from './constants';
6
+
7
+ const redirectToPage = (request: NextRequest, route: string): NextResponse => {
8
+ const pathname = request.nextUrl.pathname;
9
+ const segments = pathname.split('/');
10
+ const languageCode = constants.locales.includes(segments[0] as Locale) ? segments[0] : '';
11
+ const newUrl = new URL(`${languageCode}${route}`, request.url);
12
+
13
+ return NextResponse.redirect(newUrl);
14
+ };
15
+
16
+ const intlMiddleware = createMiddleware({
17
+ locales: constants.locales,
18
+ defaultLocale: constants.defaultLocale,
19
+ localePrefix: 'never',
20
+ });
21
+
22
+ export default async function middleware(request: NextRequest): Promise<NextResponse> {
23
+ const pathname = request.nextUrl.pathname;
24
+ const isAuthenticated = request.cookies.get(cookieConfig.keys.isAuthenticated)?.value === 'true';
25
+
26
+ // TODO: Implement redirects with redirectToPage according to pathname and isAuthenticated
27
+
28
+ return intlMiddleware(request);
29
+ }
30
+
31
+ export const config = {
32
+ matcher: ['/((?!api|_next|.*\\..*).*)'],
33
+ };
@@ -0,0 +1,6 @@
1
+ export const cookieConfig = {
2
+ keys: {
3
+ isAuthenticated: 'isAuthenticated',
4
+ tokenExpiryDate: 'tokenExpiryDate',
5
+ },
6
+ };
@@ -0,0 +1,2 @@
1
+ export * from './service';
2
+ export * from './config';
@@ -0,0 +1,28 @@
1
+ import Cookies from 'js-cookie';
2
+ import { isNil } from 'lodash';
3
+ import { cookieConfig } from './config';
4
+
5
+ type Key = keyof typeof cookieConfig.keys;
6
+ type Data = Partial<Record<Key, string>>;
7
+
8
+ export class CookieService {
9
+ public static set(data: Data, options?: Cookies.CookieAttributes): void {
10
+ Object.entries(data).forEach(([key, value]) => {
11
+ if (isNil(value)) {
12
+ CookieService.remove([key as Key]);
13
+ } else {
14
+ Cookies.set(key, value, options);
15
+ }
16
+ });
17
+ }
18
+
19
+ public static get(key: Key): string {
20
+ return Cookies.get(key) || '';
21
+ }
22
+
23
+ public static remove(keys: Array<Key>, options?: Cookies.CookieAttributes): void {
24
+ for (const key of keys) {
25
+ Cookies.remove(key, options);
26
+ }
27
+ }
28
+ }
@@ -1,3 +1,6 @@
1
+ import { BaseGeneratorType } from '../../enums';
2
+
1
3
  export interface AuthGeneratorSchema {
2
4
  directory: string;
5
+ type: BaseGeneratorType;
3
6
  }
@@ -1,74 +0,0 @@
1
- import { createListenerMiddleware, isAnyOf } from '@reduxjs/toolkit';
2
- import {
3
- onRequestRefreshTokenInterceptor,
4
- onResponseRefreshTokenInterceptor,
5
- RefreshTokenInterceptorOptions,
6
- tokenInterceptor,
7
- } from '@ronas-it/axios-api-client';
8
- import { storeActions } from '@ronas-it/rtkq-entity-api';
9
- import { authApi, profileApi, LogInResponse } from '<%= libPath %>/shared/data-access/api';
10
- import { apiService, configuration } from '<%= libPath %>/shared/data-access/api-client';
11
- import { AppStorageValue, storage } from '<%= libPath %>/shared/data-access/storage';
12
- import { authActions, authReducerPath, authSelectors, AuthState } from './slice';
13
-
14
- export const authListenerMiddleware = createListenerMiddleware<{ [authReducerPath]: AuthState }>();
15
-
16
- authListenerMiddleware.startListening({
17
- actionCreator: storeActions.init,
18
- effect: (_, { dispatch }) => {
19
- const token = storage.getString(AppStorageValue.TOKEN);
20
- dispatch(authActions.setIsAuthenticated(Boolean(token)));
21
-
22
- apiService.useInterceptors({
23
- request: [[tokenInterceptor({ getToken: () => storage.getString(AppStorageValue.TOKEN) ?? '' })]],
24
- });
25
-
26
- dispatch(authActions.setIsAppReady(true));
27
- },
28
- });
29
-
30
- authListenerMiddleware.startListening({
31
- matcher: authApi.internalActions.middlewareRegistered.match,
32
- effect: (_, { dispatch, getState }) => {
33
- const options: RefreshTokenInterceptorOptions = {
34
- configuration: configuration.auth,
35
- getIsAuthenticated: () => authSelectors.isAuthenticated(getState()),
36
- runTokenRefreshRequest: async () => {
37
- const { token } = await dispatch(authApi.endpoints.refreshToken.initiate()).unwrap();
38
- storage.set(AppStorageValue.TOKEN, token);
39
-
40
- return token;
41
- },
42
- onError: () => {
43
- return dispatch(authApi.endpoints.logout.initiate()).unwrap();
44
- },
45
- };
46
-
47
- apiService.useInterceptors({
48
- request: [[onRequestRefreshTokenInterceptor(options)]],
49
- response: [[null, onResponseRefreshTokenInterceptor(options)]],
50
- });
51
- },
52
- });
53
-
54
- authListenerMiddleware.startListening({
55
- matcher: isAnyOf(authApi.endpoints.login.matchFulfilled, authApi.endpoints.register.matchFulfilled),
56
- effect: ({ payload: { token } }: { payload: LogInResponse }, { dispatch }) => {
57
- storage.set(AppStorageValue.TOKEN, token);
58
- dispatch(authActions.setIsAuthenticated(true));
59
- },
60
- });
61
-
62
- authListenerMiddleware.startListening({
63
- matcher: isAnyOf(
64
- authApi.endpoints.logout.matchFulfilled,
65
- authApi.endpoints.logout.matchRejected,
66
- profileApi.endpoints.deleteProfile.matchFulfilled,
67
- ),
68
- effect: (_, { dispatch }) => {
69
- storage.delete(AppStorageValue.TOKEN);
70
- dispatch(authActions.setIsAuthenticated(false));
71
-
72
- dispatch(profileApi.util.resetApiState());
73
- },
74
- });