@things-factory/i18n-base 4.3.671 → 4.3.673

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 (51) hide show
  1. package/dist-server/apis/index.js +18 -0
  2. package/dist-server/apis/index.js.map +1 -0
  3. package/dist-server/apis/t.js +31 -0
  4. package/dist-server/apis/t.js.map +1 -0
  5. package/dist-server/entities/index.js +7 -0
  6. package/dist-server/entities/index.js.map +1 -0
  7. package/dist-server/entities/terminology.js +64 -0
  8. package/dist-server/entities/terminology.js.map +1 -0
  9. package/dist-server/graphql/index.js +33 -0
  10. package/dist-server/graphql/index.js.map +1 -0
  11. package/dist-server/graphql/resolvers/index.js +30 -0
  12. package/dist-server/graphql/resolvers/index.js.map +1 -0
  13. package/dist-server/graphql/resolvers/terminology/create-terminology.js +11 -0
  14. package/dist-server/graphql/resolvers/terminology/create-terminology.js.map +1 -0
  15. package/dist-server/graphql/resolvers/terminology/delete-terminology.js +11 -0
  16. package/dist-server/graphql/resolvers/terminology/delete-terminology.js.map +1 -0
  17. package/dist-server/graphql/resolvers/terminology/index.js +11 -0
  18. package/dist-server/graphql/resolvers/terminology/index.js.map +1 -0
  19. package/dist-server/graphql/resolvers/terminology/terminologies.js +15 -0
  20. package/dist-server/graphql/resolvers/terminology/terminologies.js.map +1 -0
  21. package/dist-server/graphql/resolvers/terminology/terminology.js +14 -0
  22. package/dist-server/graphql/resolvers/terminology/terminology.js.map +1 -0
  23. package/dist-server/graphql/resolvers/terminology/update-terminology.js +15 -0
  24. package/dist-server/graphql/resolvers/terminology/update-terminology.js.map +1 -0
  25. package/dist-server/graphql/types/index.js +31 -0
  26. package/dist-server/graphql/types/index.js.map +1 -0
  27. package/dist-server/graphql/types/terminology/index.js +27 -0
  28. package/dist-server/graphql/types/terminology/index.js.map +1 -0
  29. package/dist-server/graphql/types/terminology/new-terminology.js +17 -0
  30. package/dist-server/graphql/types/terminology/new-terminology.js.map +1 -0
  31. package/dist-server/graphql/types/terminology/terminology-list.js +14 -0
  32. package/dist-server/graphql/types/terminology/terminology-list.js.map +1 -0
  33. package/dist-server/graphql/types/terminology/terminology-patch.js +17 -0
  34. package/dist-server/graphql/types/terminology/terminology-patch.js.map +1 -0
  35. package/dist-server/graphql/types/terminology/terminology.js +21 -0
  36. package/dist-server/graphql/types/terminology/terminology.js.map +1 -0
  37. package/dist-server/index.js +23 -0
  38. package/dist-server/index.js.map +1 -0
  39. package/dist-server/middlewares/index.js +39 -0
  40. package/dist-server/middlewares/index.js.map +1 -0
  41. package/dist-server/middlewares/koa-i18next/detect.js +100 -0
  42. package/dist-server/middlewares/koa-i18next/detect.js.map +1 -0
  43. package/dist-server/middlewares/koa-i18next/index.js +131 -0
  44. package/dist-server/middlewares/koa-i18next/index.js.map +1 -0
  45. package/dist-server/middlewares/translations.js +35 -0
  46. package/dist-server/middlewares/translations.js.map +1 -0
  47. package/dist-server/migrations/index.js +12 -0
  48. package/dist-server/migrations/index.js.map +1 -0
  49. package/dist-server/routes.js +23 -0
  50. package/dist-server/routes.js.map +1 -0
  51. package/package.json +3 -3
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./t"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/apis/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sCAAmB"}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.t = void 0;
4
+ const typeorm_1 = require("typeorm");
5
+ const terminology_1 = require("../entities/terminology");
6
+ async function t({ key, locale = 'en-US', options }) {
7
+ let value = await getTerminology({
8
+ key,
9
+ locale
10
+ });
11
+ return value;
12
+ }
13
+ exports.t = t;
14
+ async function getTerminology({ key, locale }) {
15
+ const repo = (0, typeorm_1.getRepository)(terminology_1.Terminology);
16
+ var value;
17
+ try {
18
+ let term = await repo.findOne({
19
+ where: {
20
+ name: key,
21
+ locale
22
+ }
23
+ });
24
+ value = term.display;
25
+ }
26
+ catch (e) {
27
+ value = key;
28
+ }
29
+ return value;
30
+ }
31
+ //# sourceMappingURL=t.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"t.js","sourceRoot":"","sources":["../../server/apis/t.ts"],"names":[],"mappings":";;;AAAA,qCAAuC;AACvC,yDAAqD;AAQ9C,KAAK,UAAU,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,EAAE,OAAO,EAAe;IACrE,IAAI,KAAK,GAAG,MAAM,cAAc,CAAC;QAC/B,GAAG;QACH,MAAM;KACP,CAAC,CAAA;IAEF,OAAO,KAAK,CAAA;AACd,CAAC;AAPD,cAOC;AAED,KAAK,UAAU,cAAc,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE;IAC3C,MAAM,IAAI,GAAG,IAAA,uBAAa,EAAC,yBAAW,CAAC,CAAA;IACvC,IAAI,KAAK,CAAA;IACT,IAAI;QACF,IAAI,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC;YAC5B,KAAK,EAAE;gBACL,IAAI,EAAE,GAAG;gBACT,MAAM;aACP;SACF,CAAC,CAAA;QACF,KAAK,GAAG,IAAI,CAAC,OAAO,CAAA;KACrB;IAAC,OAAO,CAAC,EAAE;QACV,KAAK,GAAG,GAAG,CAAA;KACZ;IAED,OAAO,KAAK,CAAA;AACd,CAAC"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Terminology = exports.entities = void 0;
4
+ const terminology_1 = require("./terminology");
5
+ Object.defineProperty(exports, "Terminology", { enumerable: true, get: function () { return terminology_1.Terminology; } });
6
+ exports.entities = [terminology_1.Terminology];
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/entities/index.ts"],"names":[],"mappings":";;;AAAA,+CAA2C;AAIlC,4FAJA,yBAAW,OAIA;AAFP,QAAA,QAAQ,GAAG,CAAC,yBAAW,CAAC,CAAA"}
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var _a;
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.Terminology = void 0;
14
+ const shell_1 = require("@things-factory/shell");
15
+ const typeorm_1 = require("typeorm");
16
+ let Terminology = class Terminology {
17
+ };
18
+ __decorate([
19
+ (0, typeorm_1.PrimaryGeneratedColumn)('uuid'),
20
+ __metadata("design:type", String)
21
+ ], Terminology.prototype, "id", void 0);
22
+ __decorate([
23
+ (0, typeorm_1.ManyToOne)(type => shell_1.Domain),
24
+ __metadata("design:type", typeof (_a = typeof shell_1.Domain !== "undefined" && shell_1.Domain) === "function" ? _a : Object)
25
+ ], Terminology.prototype, "domain", void 0);
26
+ __decorate([
27
+ (0, typeorm_1.Column)(),
28
+ __metadata("design:type", String)
29
+ ], Terminology.prototype, "name", void 0);
30
+ __decorate([
31
+ (0, typeorm_1.Column)({
32
+ nullable: true
33
+ }),
34
+ __metadata("design:type", String)
35
+ ], Terminology.prototype, "description", void 0);
36
+ __decorate([
37
+ (0, typeorm_1.Column)(),
38
+ __metadata("design:type", String)
39
+ ], Terminology.prototype, "locale", void 0);
40
+ __decorate([
41
+ (0, typeorm_1.Column)(),
42
+ __metadata("design:type", String)
43
+ ], Terminology.prototype, "category", void 0);
44
+ __decorate([
45
+ (0, typeorm_1.Column)(),
46
+ __metadata("design:type", String)
47
+ ], Terminology.prototype, "display", void 0);
48
+ __decorate([
49
+ (0, typeorm_1.CreateDateColumn)(),
50
+ __metadata("design:type", Date)
51
+ ], Terminology.prototype, "createdAt", void 0);
52
+ __decorate([
53
+ (0, typeorm_1.UpdateDateColumn)(),
54
+ __metadata("design:type", Date)
55
+ ], Terminology.prototype, "updatedAt", void 0);
56
+ Terminology = __decorate([
57
+ (0, typeorm_1.Entity)(),
58
+ (0, typeorm_1.Index)('ix_term_0', (term) => [term.domain, term.locale, term.category, term.name], { unique: true }),
59
+ (0, typeorm_1.Index)('ix_term_1', (term) => [term.domain]),
60
+ (0, typeorm_1.Index)('ix_term_2', (term) => [term.domain, term.locale]),
61
+ (0, typeorm_1.Index)('ix_term_3', (term) => [term.domain, term.locale, term.name])
62
+ ], Terminology);
63
+ exports.Terminology = Terminology;
64
+ //# sourceMappingURL=terminology.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminology.js","sourceRoot":"","sources":["../../server/entities/terminology.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,iDAA8C;AAC9C,qCAAsH;AAO/G,IAAM,WAAW,GAAjB,MAAM,WAAW;CA6BvB,CAAA;AA5BC;IAAC,IAAA,gCAAsB,EAAC,MAAM,CAAC;;uCACrB;AAEV;IAAC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,cAAM,CAAC;kDAClB,cAAM,oBAAN,cAAM;2CAAA;AAEd;IAAC,IAAA,gBAAM,GAAE;;yCACG;AAEZ;IAAC,IAAA,gBAAM,EAAC;QACN,QAAQ,EAAE,IAAI;KACf,CAAC;;gDACiB;AAEnB;IAAC,IAAA,gBAAM,GAAE;;2CACK;AAEd;IAAC,IAAA,gBAAM,GAAE;;6CACO;AAEhB;IAAC,IAAA,gBAAM,GAAE;;4CACM;AAEf;IAAC,IAAA,0BAAgB,GAAE;8BACR,IAAI;8CAAA;AAEf;IAAC,IAAA,0BAAgB,GAAE;8BACR,IAAI;8CAAA;AA5BJ,WAAW;IALvB,IAAA,gBAAM,GAAE;IACR,IAAA,eAAK,EAAC,WAAW,EAAE,CAAC,IAAiB,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IACjH,IAAA,eAAK,EAAC,WAAW,EAAE,CAAC,IAAiB,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACxD,IAAA,eAAK,EAAC,WAAW,EAAE,CAAC,IAAiB,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACrE,IAAA,eAAK,EAAC,WAAW,EAAE,CAAC,IAAiB,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;GACpE,WAAW,CA6BvB;AA7BY,kCAAW"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.schema = void 0;
27
+ const typeDefs = __importStar(require("./types"));
28
+ const resolvers = __importStar(require("./resolvers"));
29
+ exports.schema = {
30
+ typeDefs,
31
+ resolvers
32
+ };
33
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/graphql/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAAmC;AACnC,uDAAwC;AAE3B,QAAA,MAAM,GAAG;IACpB,QAAQ;IACR,SAAS;CACV,CAAA"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.mutations = exports.queries = void 0;
27
+ const Terminology = __importStar(require("./terminology"));
28
+ exports.queries = [Terminology.Query];
29
+ exports.mutations = [Terminology.Mutation];
30
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../server/graphql/resolvers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2DAA4C;AAE/B,QAAA,OAAO,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;AAE7B,QAAA,SAAS,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createTerminology = void 0;
4
+ const typeorm_1 = require("typeorm");
5
+ const entities_1 = require("../../../entities");
6
+ exports.createTerminology = {
7
+ async createTerminology(_, { terminology }, context) {
8
+ return await (0, typeorm_1.getRepository)(entities_1.Terminology).save(Object.assign({ domain: context.state.domain }, terminology));
9
+ }
10
+ };
11
+ //# sourceMappingURL=create-terminology.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-terminology.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/terminology/create-terminology.ts"],"names":[],"mappings":";;;AAAA,qCAAuC;AACvC,gDAA+C;AAElC,QAAA,iBAAiB,GAAG;IAC/B,KAAK,CAAC,iBAAiB,CAAC,CAAM,EAAE,EAAE,WAAW,EAAE,EAAE,OAAY;QAC3D,OAAO,MAAM,IAAA,uBAAa,EAAC,sBAAW,CAAC,CAAC,IAAI,iBAC1C,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,IACzB,WAAW,EACd,CAAA;IACJ,CAAC;CACF,CAAA"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.deleteTerminology = void 0;
4
+ const typeorm_1 = require("typeorm");
5
+ const entities_1 = require("../../../entities");
6
+ exports.deleteTerminology = {
7
+ async deleteTerminology(_, { name }, context) {
8
+ return await (0, typeorm_1.getRepository)(entities_1.Terminology).delete({ domain: context.state.domain, name });
9
+ }
10
+ };
11
+ //# sourceMappingURL=delete-terminology.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete-terminology.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/terminology/delete-terminology.ts"],"names":[],"mappings":";;;AAAA,qCAAuC;AACvC,gDAA+C;AAElC,QAAA,iBAAiB,GAAG;IAC/B,KAAK,CAAC,iBAAiB,CAAC,CAAM,EAAE,EAAE,IAAI,EAAE,EAAE,OAAY;QACpD,OAAO,MAAM,IAAA,uBAAa,EAAC,sBAAW,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;IACxF,CAAC;CACF,CAAA"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Mutation = exports.Query = void 0;
4
+ const terminology_1 = require("./terminology");
5
+ const terminologies_1 = require("./terminologies");
6
+ const update_terminology_1 = require("./update-terminology");
7
+ const create_terminology_1 = require("./create-terminology");
8
+ const delete_terminology_1 = require("./delete-terminology");
9
+ exports.Query = Object.assign(Object.assign({}, terminologies_1.terminologiesResolver), terminology_1.terminologyResolver);
10
+ exports.Mutation = Object.assign(Object.assign(Object.assign({}, update_terminology_1.updateTerminology), create_terminology_1.createTerminology), delete_terminology_1.deleteTerminology);
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/terminology/index.ts"],"names":[],"mappings":";;;AAAA,+CAAmD;AACnD,mDAAuD;AAEvD,6DAAwD;AACxD,6DAAwD;AACxD,6DAAwD;AAE3C,QAAA,KAAK,mCACb,qCAAqB,GACrB,iCAAmB,EACvB;AAEY,QAAA,QAAQ,iDAChB,sCAAiB,GACjB,sCAAiB,GACjB,sCAAiB,EACrB"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.terminologiesResolver = void 0;
4
+ const shell_1 = require("@things-factory/shell");
5
+ const typeorm_1 = require("typeorm");
6
+ const entities_1 = require("../../../entities");
7
+ exports.terminologiesResolver = {
8
+ async terminologies(_, params, context) {
9
+ const queryBuilder = (0, typeorm_1.getRepository)(entities_1.Terminology).createQueryBuilder();
10
+ (0, shell_1.buildQuery)(queryBuilder, params, context);
11
+ const [items, total] = await queryBuilder.leftJoinAndSelect('Terminology.domain', 'Domain').getManyAndCount();
12
+ return { items, total };
13
+ }
14
+ };
15
+ //# sourceMappingURL=terminologies.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminologies.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/terminology/terminologies.ts"],"names":[],"mappings":";;;AAAA,iDAA6D;AAC7D,qCAAuC;AACvC,gDAA+C;AAElC,QAAA,qBAAqB,GAAG;IACnC,KAAK,CAAC,aAAa,CAAC,CAAM,EAAE,MAAiB,EAAE,OAAY;QACzD,MAAM,YAAY,GAAG,IAAA,uBAAa,EAAC,sBAAW,CAAC,CAAC,kBAAkB,EAAE,CAAA;QACpE,IAAA,kBAAU,EAAC,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;QACzC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,YAAY,CAAC,iBAAiB,CAAC,oBAAoB,EAAE,QAAQ,CAAC,CAAC,eAAe,EAAE,CAAA;QAE7G,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;IACzB,CAAC;CACF,CAAA"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.terminologyResolver = void 0;
4
+ const typeorm_1 = require("typeorm");
5
+ const entities_1 = require("../../../entities");
6
+ exports.terminologyResolver = {
7
+ async terminology(_, { name }, context) {
8
+ return await (0, typeorm_1.getRepository)(entities_1.Terminology).findOne({
9
+ where: { domain: context.state.domain, name },
10
+ relations: ['domain']
11
+ });
12
+ }
13
+ };
14
+ //# sourceMappingURL=terminology.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminology.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/terminology/terminology.ts"],"names":[],"mappings":";;;AAAA,qCAAuC;AACvC,gDAA+C;AAElC,QAAA,mBAAmB,GAAG;IACjC,KAAK,CAAC,WAAW,CAAC,CAAM,EAAE,EAAE,IAAI,EAAE,EAAE,OAAY;QAC9C,OAAO,MAAM,IAAA,uBAAa,EAAC,sBAAW,CAAC,CAAC,OAAO,CAAC;YAC9C,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE;YAC7C,SAAS,EAAE,CAAC,QAAQ,CAAC;SACtB,CAAC,CAAA;IACJ,CAAC;CACF,CAAA"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.updateTerminology = void 0;
4
+ const typeorm_1 = require("typeorm");
5
+ const entities_1 = require("../../../entities");
6
+ exports.updateTerminology = {
7
+ async updateTerminology(_, { name, patch }, context) {
8
+ const repository = (0, typeorm_1.getRepository)(entities_1.Terminology);
9
+ const terminology = await repository.findOne({
10
+ where: { domain: context.state.domain, name }
11
+ });
12
+ return await repository.save(Object.assign(Object.assign({}, terminology), patch));
13
+ }
14
+ };
15
+ //# sourceMappingURL=update-terminology.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-terminology.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/terminology/update-terminology.ts"],"names":[],"mappings":";;;AAAA,qCAAuC;AACvC,gDAA+C;AAElC,QAAA,iBAAiB,GAAG;IAC/B,KAAK,CAAC,iBAAiB,CAAC,CAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,OAAY;QAC3D,MAAM,UAAU,GAAG,IAAA,uBAAa,EAAC,sBAAW,CAAC,CAAA;QAC7C,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC;YAC3C,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE;SAC9C,CAAC,CAAA;QAEF,OAAO,MAAM,UAAU,CAAC,IAAI,iCACvB,WAAW,GACX,KAAK,EACR,CAAA;IACJ,CAAC;CACF,CAAA"}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.types = exports.mutations = exports.queries = void 0;
27
+ const Terminology = __importStar(require("./terminology"));
28
+ exports.queries = [Terminology.Query];
29
+ exports.mutations = [Terminology.Mutation];
30
+ exports.types = [...Terminology.Types];
31
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../server/graphql/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2DAA4C;AAE/B,QAAA,OAAO,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;AAE7B,QAAA,SAAS,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;AAElC,QAAA,KAAK,GAAG,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,CAAA"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Types = exports.Query = exports.Mutation = void 0;
4
+ const new_terminology_1 = require("./new-terminology");
5
+ const terminology_1 = require("./terminology");
6
+ const terminology_list_1 = require("./terminology-list");
7
+ const terminology_patch_1 = require("./terminology-patch");
8
+ exports.Mutation = `
9
+ createTerminology (
10
+ terminology: NewTerminology!
11
+ ): Terminology
12
+
13
+ updateTerminology (
14
+ name: String!
15
+ patch: TerminologyPatch!
16
+ ): Terminology
17
+
18
+ deleteTerminology (
19
+ name: String!
20
+ ): Terminology
21
+ `;
22
+ exports.Query = `
23
+ terminologies(filters: [Filter], pagination: Pagination, sortings: [Sorting]): TerminologyList
24
+ terminology(name: String!): Terminology
25
+ `;
26
+ exports.Types = [terminology_1.Terminology, new_terminology_1.NewTerminology, terminology_patch_1.TerminologyPatch, terminology_list_1.TerminologyList];
27
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../server/graphql/types/terminology/index.ts"],"names":[],"mappings":";;;AAAA,uDAAkD;AAClD,+CAA2C;AAC3C,yDAAoD;AACpD,2DAAsD;AAEzC,QAAA,QAAQ,GAAG;;;;;;;;;;;;;CAavB,CAAA;AAEY,QAAA,KAAK,GAAG;;;CAGpB,CAAA;AAEY,QAAA,KAAK,GAAG,CAAC,yBAAW,EAAE,gCAAc,EAAE,oCAAgB,EAAE,kCAAe,CAAC,CAAA"}
@@ -0,0 +1,17 @@
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
+ exports.NewTerminology = void 0;
7
+ const graphql_tag_1 = __importDefault(require("graphql-tag"));
8
+ exports.NewTerminology = (0, graphql_tag_1.default) `
9
+ input NewTerminology {
10
+ name: String!
11
+ description: String
12
+ locale: String!
13
+ category: String!
14
+ display: String!
15
+ }
16
+ `;
17
+ //# sourceMappingURL=new-terminology.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"new-terminology.js","sourceRoot":"","sources":["../../../../server/graphql/types/terminology/new-terminology.ts"],"names":[],"mappings":";;;;;;AAAA,8DAA6B;AAEhB,QAAA,cAAc,GAAG,IAAA,qBAAG,EAAA;;;;;;;;CAQhC,CAAA"}
@@ -0,0 +1,14 @@
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
+ exports.TerminologyList = void 0;
7
+ const graphql_tag_1 = __importDefault(require("graphql-tag"));
8
+ exports.TerminologyList = (0, graphql_tag_1.default) `
9
+ type TerminologyList {
10
+ items: [Terminology]
11
+ total: Int
12
+ }
13
+ `;
14
+ //# sourceMappingURL=terminology-list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminology-list.js","sourceRoot":"","sources":["../../../../server/graphql/types/terminology/terminology-list.ts"],"names":[],"mappings":";;;;;;AAAA,8DAA6B;AAEhB,QAAA,eAAe,GAAG,IAAA,qBAAG,EAAA;;;;;CAKjC,CAAA"}
@@ -0,0 +1,17 @@
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
+ exports.TerminologyPatch = void 0;
7
+ const graphql_tag_1 = __importDefault(require("graphql-tag"));
8
+ exports.TerminologyPatch = (0, graphql_tag_1.default) `
9
+ input TerminologyPatch {
10
+ name: String
11
+ description: String
12
+ locale: String
13
+ category: String
14
+ display: String
15
+ }
16
+ `;
17
+ //# sourceMappingURL=terminology-patch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminology-patch.js","sourceRoot":"","sources":["../../../../server/graphql/types/terminology/terminology-patch.ts"],"names":[],"mappings":";;;;;;AAAA,8DAA6B;AAEhB,QAAA,gBAAgB,GAAG,IAAA,qBAAG,EAAA;;;;;;;;CAQlC,CAAA"}
@@ -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
+ exports.Terminology = void 0;
7
+ const graphql_tag_1 = __importDefault(require("graphql-tag"));
8
+ exports.Terminology = (0, graphql_tag_1.default) `
9
+ type Terminology {
10
+ id: String
11
+ domain: Domain
12
+ name: String
13
+ description: String
14
+ locale: String
15
+ category: String
16
+ display: String
17
+ createdAt: String
18
+ updatedAt: String
19
+ }
20
+ `;
21
+ //# sourceMappingURL=terminology.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminology.js","sourceRoot":"","sources":["../../../../server/graphql/types/terminology/terminology.ts"],"names":[],"mappings":";;;;;;AAAA,8DAA6B;AAEhB,QAAA,WAAW,GAAG,IAAA,qBAAG,EAAA;;;;;;;;;;;;CAY7B,CAAA"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./entities"), exports);
18
+ __exportStar(require("./migrations"), exports);
19
+ __exportStar(require("./graphql"), exports);
20
+ __exportStar(require("./apis"), exports);
21
+ __exportStar(require("./middlewares"), exports);
22
+ require("./routes");
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../server/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA0B;AAC1B,+CAA4B;AAC5B,4CAAyB;AACzB,yCAAsB;AACtB,gDAA6B;AAE7B,oBAAiB"}
@@ -0,0 +1,39 @@
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
+ exports.initMiddlewares = void 0;
7
+ const translations_1 = require("./translations");
8
+ const fs_1 = __importDefault(require("fs"));
9
+ const i18next_1 = __importDefault(require("i18next"));
10
+ const koa_i18next_1 = __importDefault(require("./koa-i18next"));
11
+ const debug = require('debug')('things-factory:i18n-base:middlewares');
12
+ i18next_1.default.init({
13
+ debug: false,
14
+ ns: ['translations'],
15
+ defaultNS: 'translations',
16
+ preload: ['ko', 'ms', 'zh', 'en'],
17
+ fallbackLng: 'en',
18
+ interpolation: {
19
+ prefix: '{',
20
+ suffix: '}'
21
+ },
22
+ load: 'languageOnly',
23
+ keySeparator: false
24
+ });
25
+ (0, translations_1.build)(fs_1.default);
26
+ process.on('client-rebuilt', (app, fs) => {
27
+ /* rebuild once done webpacking assets. only for development mode. */
28
+ debug('client-rebuilt', 'build i18n started.');
29
+ (0, translations_1.build)(fs);
30
+ });
31
+ function initMiddlewares(app) {
32
+ app.use((0, koa_i18next_1.default)(i18next_1.default, {
33
+ lookupCookie: 'i18next',
34
+ order: ['cookie', 'header'],
35
+ next: true // if koa is version 2
36
+ }));
37
+ }
38
+ exports.initMiddlewares = initMiddlewares;
39
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/middlewares/index.ts"],"names":[],"mappings":";;;;;;AAAA,iDAAsC;AACtC,4CAAmB;AACnB,sDAA6B;AAC7B,gEAAsC;AAEtC,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,sCAAsC,CAAC,CAAA;AAEtE,iBAAO,CAAC,IAAI,CAAC;IACX,KAAK,EAAE,KAAK;IACZ,EAAE,EAAE,CAAC,cAAc,CAAC;IACpB,SAAS,EAAE,cAAc;IACzB,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;IACjC,WAAW,EAAE,IAAI;IACjB,aAAa,EAAE;QACb,MAAM,EAAE,GAAG;QACX,MAAM,EAAE,GAAG;KACZ;IACD,IAAI,EAAE,cAAc;IACpB,YAAY,EAAE,KAAK;CACpB,CAAC,CAAA;AAEF,IAAA,oBAAK,EAAC,YAAE,CAAC,CAAA;AAET,OAAO,CAAC,EAAE,CAAC,gBAAuB,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE;IAC9C,qEAAqE;IACrE,KAAK,CAAC,gBAAgB,EAAE,qBAAqB,CAAC,CAAA;IAC9C,IAAA,oBAAK,EAAC,EAAE,CAAC,CAAA;AACX,CAAC,CAAC,CAAA;AAEF,SAAgB,eAAe,CAAC,GAAQ;IACtC,GAAG,CAAC,GAAG,CACL,IAAA,qBAAU,EAAC,iBAAO,EAAE;QAClB,YAAY,EAAE,SAAS;QACvB,KAAK,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;QAC3B,IAAI,EAAE,IAAI,CAAC,sBAAsB;KAClC,CAAC,CACH,CAAA;AACH,CAAC;AARD,0CAQC"}
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const debug = require('debug')('things-factory:i18n-base:middlewares:koa:i18next');
4
+ const DEFAULT_ORDER = ['querystring', 'cookie', 'header'];
5
+ const detectors = {
6
+ cookie: function (context, options) {
7
+ let cookie = options.lookupCookie || 'i18next';
8
+ return context.cookies.get(cookie);
9
+ },
10
+ // fork from i18next-express-middleware
11
+ header: function (context) {
12
+ let acceptLanguage = context.get('accept-language');
13
+ let found;
14
+ let locales = [];
15
+ if (acceptLanguage) {
16
+ let lngs = [];
17
+ // associate language tags by their 'q' value (between 1 and 0)
18
+ acceptLanguage.split(',').forEach(function (l) {
19
+ let parts = l.split(';'); // 'en-GB;q=0.8' -> ['en-GB', 'q=0.8']
20
+ // get the language tag qvalue: 'q=0.8' -> 0.8
21
+ let qvalue = 1; // default qvalue
22
+ for (let i = 0; i < parts.length; i++) {
23
+ let part = parts[i].split('=');
24
+ if (part[0] === 'q' && !isNaN(part[1])) {
25
+ qvalue = Number(part[1]);
26
+ break;
27
+ }
28
+ }
29
+ // add the tag and primary subtag to the qvalue associations
30
+ lngs.push({
31
+ lng: parts[0],
32
+ q: qvalue
33
+ });
34
+ });
35
+ lngs.sort(function (a, b) {
36
+ return b.q - a.q;
37
+ });
38
+ for (let i = 0; i < lngs.length; i++) {
39
+ locales.push(lngs[i].lng);
40
+ }
41
+ if (locales.length)
42
+ found = locales;
43
+ }
44
+ return found;
45
+ },
46
+ path: function (context, options) {
47
+ let found;
48
+ if (options.lookupPath !== undefined && context.params) {
49
+ found = context.params[options.lookupPath];
50
+ }
51
+ if (!found && options.lookupFromPathIndex !== undefined) {
52
+ let parts = context.path.split('/');
53
+ if (parts[0] === '') {
54
+ // Handle paths that start with a slash, i.e., '/foo' -> ['', 'foo']
55
+ parts.shift();
56
+ }
57
+ if (parts.length > options.lookupFromPathIndex) {
58
+ found = parts[options.lookupFromPathIndex];
59
+ }
60
+ }
61
+ return found;
62
+ },
63
+ querystring: function (context, options) {
64
+ let name = options.lookupQuerystring || 'lng';
65
+ return context.query[name];
66
+ },
67
+ session: function (context, options) {
68
+ let name = options.lookupSession || 'lng';
69
+ return context.session && context.session[name];
70
+ }
71
+ };
72
+ function default_1(context, options = {}) {
73
+ let { order, fallback } = options;
74
+ order = order && Array.isArray(order) ? order : DEFAULT_ORDER;
75
+ let lngs = [];
76
+ for (let i = 0, len = order.length; i < len; i++) {
77
+ let detector = detectors[order[i]];
78
+ let lng;
79
+ if (detector) {
80
+ lng = detector(context, options);
81
+ }
82
+ if (lng && typeof lng === 'string') {
83
+ lngs.push(lng);
84
+ }
85
+ else {
86
+ lngs = lngs.concat(lng);
87
+ }
88
+ }
89
+ let found;
90
+ for (let i = 0, len = lngs.length; i < len; i++) {
91
+ let cleanedLng = context.i18next.services.languageUtils.formatLanguageCode(lngs[i]);
92
+ if (context.i18next.services.languageUtils.isSupportedCode(cleanedLng))
93
+ found = cleanedLng;
94
+ if (found)
95
+ break;
96
+ }
97
+ return found || fallback;
98
+ }
99
+ exports.default = default_1;
100
+ //# sourceMappingURL=detect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detect.js","sourceRoot":"","sources":["../../../server/middlewares/koa-i18next/detect.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,131 @@
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 detect_1 = __importDefault(require("./detect"));
7
+ const debug = require('debug')('things-factory:i18n-base:middlewares:koa:i18next');
8
+ function koaI18next(i18next, options = {}) {
9
+ return async function i18nextMiddleware(ctx, next) {
10
+ ctx.i18next = i18next;
11
+ let { lookupCookie, lookupSession } = options;
12
+ let lng = (0, detect_1.default)(ctx, options);
13
+ lng && setLanguage(ctx, lng, options);
14
+ debug('language is', lng);
15
+ ctx.t = function (...args) {
16
+ let key;
17
+ let opts;
18
+ // do detect path
19
+ if (!lng && isDetectPath(options.order)) {
20
+ lng = (0, detect_1.default)(ctx, Object.assign(options, { order: ['path'] }));
21
+ lng && setLanguage(ctx, lng, options);
22
+ }
23
+ if (args.length === 1) {
24
+ args.push({});
25
+ }
26
+ for (let i = 0, len = args.length; i < len; i++) {
27
+ let arg = args[i];
28
+ if (typeof arg === 'object' && !Array.isArray(arg)) {
29
+ arg.lng = lng;
30
+ }
31
+ }
32
+ return i18next.t.apply(i18next, args);
33
+ };
34
+ await next();
35
+ };
36
+ }
37
+ exports.default = koaI18next;
38
+ function setPath(object, path, newValue) {
39
+ let stack;
40
+ if (typeof path !== 'string')
41
+ stack = [].concat(path);
42
+ if (typeof path === 'string')
43
+ stack = path.split('.');
44
+ while (stack.length > 1) {
45
+ let key = stack.shift();
46
+ if (key.indexOf('###') > -1)
47
+ key = key.replace(/###/g, '.');
48
+ if (!object[key])
49
+ object[key] = {};
50
+ object = object[key];
51
+ }
52
+ let key = stack.shift();
53
+ if (key.indexOf('###') > -1)
54
+ key = key.replace(/###/g, '.');
55
+ object[key] = newValue;
56
+ }
57
+ koaI18next.getResourcesHandler = function (i18next, options) {
58
+ options = options || {};
59
+ let maxAge = options.maxAge || 60 * 60 * 24 * 30;
60
+ const propertyParam = options.propertyParam || 'query';
61
+ return async function (ctx, next) {
62
+ if (options.path && ctx.path !== options.path) {
63
+ return await next();
64
+ }
65
+ if (!i18next.services.backendConnector)
66
+ return ctx.throw(404, 'koa-i18next-middleware:: no backend configured');
67
+ let resources = {};
68
+ ctx.type = 'json';
69
+ if (options.cache !== undefined ? options.cache : process.env.NODE_ENV === 'production') {
70
+ ctx.set('Cache-Control', 'public, max-age=' + maxAge);
71
+ ctx.set('Expires', new Date(new Date().getTime() + maxAge * 1000).toUTCString());
72
+ }
73
+ else {
74
+ ctx.set('Pragma', 'no-cache');
75
+ ctx.set('Cache-Control', 'no-cache');
76
+ }
77
+ let languages = ctx[propertyParam][options.lngParam || 'lng']
78
+ ? ctx[propertyParam][options.lngParam || 'lng'].split(' ')
79
+ : [];
80
+ let namespaces = ctx[propertyParam][options.nsParam || 'ns']
81
+ ? ctx[propertyParam][options.nsParam || 'ns'].split(' ')
82
+ : [];
83
+ // extend ns
84
+ namespaces.forEach(ns => {
85
+ if (i18next.options.ns && i18next.options.ns.indexOf(ns) < 0)
86
+ i18next.options.ns.push(ns);
87
+ });
88
+ i18next.services.backendConnector.load(languages, namespaces, function () {
89
+ languages.forEach(lng => {
90
+ namespaces.forEach(ns => {
91
+ setPath(resources, [lng, ns], i18next.getResourceBundle(lng, ns));
92
+ });
93
+ });
94
+ ctx.body = resources;
95
+ });
96
+ };
97
+ };
98
+ koaI18next.getMissingKeyHandler = function (i18next, options) {
99
+ options = options || {};
100
+ const propertyParam = options.propertyParam || 'query';
101
+ return async function (ctx, next) {
102
+ if (options.path && ctx.path !== options.path) {
103
+ return await next();
104
+ }
105
+ let lng = ctx[propertyParam][options.lngParam || 'lng'];
106
+ let ns = ctx[propertyParam][options.nsParam || 'ns'];
107
+ if (!i18next.services.backendConnector)
108
+ return ctx.throw(404, 'koa-i18next-middleware:: no backend configured');
109
+ for (var m in ctx.request.body) {
110
+ i18next.services.backendConnector.saveMissing([lng], ns, m, ctx.request.body[m]);
111
+ }
112
+ ctx.body = 'ok';
113
+ };
114
+ };
115
+ function isDetectPath(order = []) {
116
+ return order.indexOf('path') !== -1;
117
+ }
118
+ function setLanguage(context, lng, options = {}) {
119
+ const { lookupCookie, lookupPath, lookupSession } = options;
120
+ context.locals = Object.assign(context.locals || {}, { lng });
121
+ context.state = Object.assign(context.state || {}, { lng });
122
+ context.language = context.lng = lng;
123
+ context.set('content-language', lng);
124
+ if (lookupCookie) {
125
+ context.cookies.set(lookupCookie, lng, { httpOnly: false, signed: false });
126
+ }
127
+ if (lookupSession && context.session) {
128
+ context.session[lookupSession] = lng;
129
+ }
130
+ }
131
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../server/middlewares/koa-i18next/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
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
+ exports.build = void 0;
7
+ const path_1 = __importDefault(require("path"));
8
+ const fs_1 = __importDefault(require("fs"));
9
+ const i18next_1 = __importDefault(require("i18next"));
10
+ const { appRootPath } = require('@things-factory/env');
11
+ const debug = require('debug')('things-factory:i18n-base:translations');
12
+ function build(fs) {
13
+ fs = fs || fs_1.default;
14
+ const PUBLIC_ROOT = path_1.default.resolve(appRootPath, 'dist-client'); // webpack config output.path
15
+ const ns = 'translations';
16
+ var folder = path_1.default.join(PUBLIC_ROOT, 'translations');
17
+ try {
18
+ fs.readdirSync(folder).forEach(file => {
19
+ try {
20
+ var lng = file.split('.')[0];
21
+ var resourcePath = path_1.default.join(folder, file);
22
+ var resources = JSON.parse(fs.readFileSync(resourcePath));
23
+ debug(lng, ns, resourcePath);
24
+ i18next_1.default.removeResourceBundle(lng, ns);
25
+ i18next_1.default.addResourceBundle(lng, ns, resources, true, true);
26
+ }
27
+ catch (e) {
28
+ debug(e);
29
+ }
30
+ });
31
+ }
32
+ catch (e) { }
33
+ }
34
+ exports.build = build;
35
+ //# sourceMappingURL=translations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"translations.js","sourceRoot":"","sources":["../../server/middlewares/translations.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAuB;AACvB,4CAAmB;AACnB,sDAA6B;AAC7B,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAA;AAEtD,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,uCAAuC,CAAC,CAAA;AAEvE,SAAgB,KAAK,CAAC,EAAE;IACtB,EAAE,GAAG,EAAE,IAAI,YAAE,CAAA;IAEb,MAAM,WAAW,GAAG,cAAI,CAAC,OAAO,CAAC,WAAW,EAAE,aAAa,CAAC,CAAA,CAAC,6BAA6B;IAE1F,MAAM,EAAE,GAAG,cAAc,CAAA;IACzB,IAAI,MAAM,GAAG,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAA;IACnD,IAAI;QACF,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACpC,IAAI;gBACF,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;gBAC5B,IAAI,YAAY,GAAG,cAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;gBAC1C,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAA;gBACzD,KAAK,CAAC,GAAG,EAAE,EAAE,EAAE,YAAY,CAAC,CAAA;gBAC5B,iBAAO,CAAC,oBAAoB,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;gBACrC,iBAAO,CAAC,iBAAiB,CAAC,GAAG,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;aAC1D;YAAC,OAAO,CAAC,EAAE;gBACV,KAAK,CAAC,CAAC,CAAC,CAAA;aACT;QACH,CAAC,CAAC,CAAA;KACH;IAAC,OAAO,CAAC,EAAE,GAAE;AAChB,CAAC;AArBD,sBAqBC"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.migrations = void 0;
4
+ const glob = require('glob');
5
+ const path = require('path');
6
+ exports.migrations = [];
7
+ glob.sync(path.resolve(__dirname, '.', '**', '*.js')).forEach(function (file) {
8
+ if (file.indexOf('index.js') !== -1)
9
+ return;
10
+ exports.migrations = exports.migrations.concat(Object.values(require(path.resolve(file))) || []);
11
+ });
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/migrations/index.ts"],"names":[],"mappings":";;;AAAA,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;AAC5B,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;AAEjB,QAAA,UAAU,GAAG,EAAE,CAAA;AAE1B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,UAAS,IAAI;IACzE,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAAE,OAAM;IAC3C,kBAAU,GAAG,kBAAU,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;AAClF,CAAC,CAAC,CAAA"}
@@ -0,0 +1,23 @@
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 i18next_1 = __importDefault(require("i18next"));
7
+ const debug = require('debug')('things-factory:i18n-base:routes');
8
+ process.on('bootstrap-module-global-public-route', (app, globalPublicRouter) => {
9
+ globalPublicRouter.get('/translations/translate/:lng/:key', async (context, next) => {
10
+ const { lng, key } = context.params;
11
+ const translated = i18next_1.default.getFixedT(lng, 'translations' /* ns */)(key);
12
+ debug('get:/translations/translate/:lng/:key', lng, key, translated);
13
+ context.body = translated;
14
+ });
15
+ globalPublicRouter.get('/translations/translate/:key', async (context, next) => {
16
+ const { lng } = context.state;
17
+ const { key } = context.params;
18
+ const translated = context.t(key);
19
+ debug('get:/translations/translate/:key', lng, key, translated);
20
+ context.body = translated;
21
+ });
22
+ });
23
+ //# sourceMappingURL=routes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routes.js","sourceRoot":"","sources":["../server/routes.ts"],"names":[],"mappings":";;;;;AAAA,sDAA6B;AAC7B,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,iCAAiC,CAAC,CAAA;AAEjE,OAAO,CAAC,EAAE,CAAC,sCAA6C,EAAE,CAAC,GAAG,EAAE,kBAAkB,EAAE,EAAE;IACpF,kBAAkB,CAAC,GAAG,CAAC,mCAAmC,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QAClF,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,MAAM,CAAA;QACnC,MAAM,UAAU,GAAG,iBAAO,CAAC,SAAS,CAAC,GAAG,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAA;QAEvE,KAAK,CAAC,uCAAuC,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,CAAC,CAAA;QAEpE,OAAO,CAAC,IAAI,GAAG,UAAU,CAAA;IAC3B,CAAC,CAAC,CAAA;IAEF,kBAAkB,CAAC,GAAG,CAAC,8BAA8B,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QAC7E,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAC7B,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,MAAM,CAAA;QAC9B,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;QAEjC,KAAK,CAAC,kCAAkC,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,CAAC,CAAA;QAE/D,OAAO,CAAC,IAAI,GAAG,UAAU,CAAA;IAC3B,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@things-factory/i18n-base",
3
- "version": "4.3.671",
3
+ "version": "4.3.673",
4
4
  "main": "dist-server/index.js",
5
5
  "browser": "client/index.js",
6
6
  "things-factory": true,
@@ -24,7 +24,7 @@
24
24
  },
25
25
  "dependencies": {
26
26
  "@operato/i18n": "^0.4.6",
27
- "@things-factory/shell": "^4.3.671"
27
+ "@things-factory/shell": "^4.3.673"
28
28
  },
29
- "gitHead": "ef524cb207378186ec71917d9a8546363d4300b2"
29
+ "gitHead": "d22f985380f3af2ebc0f81ea8bec478ba00b4777"
30
30
  }