@messagevisor/core 0.0.1 → 0.1.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 (211) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/LICENSE +21 -0
  3. package/README.md +7 -0
  4. package/jest.config.js +8 -0
  5. package/lib/benchmark/index.d.ts +2 -0
  6. package/lib/benchmark/index.js +417 -0
  7. package/lib/benchmark/index.js.map +1 -0
  8. package/lib/builder/index.d.ts +70 -0
  9. package/lib/builder/index.js +831 -0
  10. package/lib/builder/index.js.map +1 -0
  11. package/lib/cli/index.d.ts +28 -0
  12. package/lib/cli/index.js +182 -0
  13. package/lib/cli/index.js.map +1 -0
  14. package/lib/config/index.d.ts +61 -0
  15. package/lib/config/index.js +255 -0
  16. package/lib/config/index.js.map +1 -0
  17. package/lib/create/index.d.ts +2 -0
  18. package/lib/create/index.js +405 -0
  19. package/lib/create/index.js.map +1 -0
  20. package/lib/datasource/filesystemAdapter.d.ts +44 -0
  21. package/lib/datasource/filesystemAdapter.js +424 -0
  22. package/lib/datasource/filesystemAdapter.js.map +1 -0
  23. package/lib/datasource/index.d.ts +39 -0
  24. package/lib/datasource/index.js +96 -0
  25. package/lib/datasource/index.js.map +1 -0
  26. package/lib/error.d.ts +6 -0
  27. package/lib/error.js +49 -0
  28. package/lib/error.js.map +1 -0
  29. package/lib/evaluate/cli.d.ts +8 -0
  30. package/lib/evaluate/cli.js +179 -0
  31. package/lib/evaluate/cli.js.map +1 -0
  32. package/lib/evaluate/index.d.ts +10 -0
  33. package/lib/evaluate/index.js +131 -0
  34. package/lib/evaluate/index.js.map +1 -0
  35. package/lib/examples/coerceExampleIsoDates.d.ts +12 -0
  36. package/lib/examples/coerceExampleIsoDates.js +81 -0
  37. package/lib/examples/coerceExampleIsoDates.js.map +1 -0
  38. package/lib/examples/index.d.ts +63 -0
  39. package/lib/examples/index.js +713 -0
  40. package/lib/examples/index.js.map +1 -0
  41. package/lib/exporter/index.d.ts +60 -0
  42. package/lib/exporter/index.js +610 -0
  43. package/lib/exporter/index.js.map +1 -0
  44. package/lib/find-duplicates/index.d.ts +41 -0
  45. package/lib/find-duplicates/index.js +297 -0
  46. package/lib/find-duplicates/index.js.map +1 -0
  47. package/lib/generate-code/index.d.ts +11 -0
  48. package/lib/generate-code/index.js +157 -0
  49. package/lib/generate-code/index.js.map +1 -0
  50. package/lib/generate-code/typescript.d.ts +14 -0
  51. package/lib/generate-code/typescript.js +307 -0
  52. package/lib/generate-code/typescript.js.map +1 -0
  53. package/lib/importer/index.d.ts +64 -0
  54. package/lib/importer/index.js +1092 -0
  55. package/lib/importer/index.js.map +1 -0
  56. package/lib/index.d.ts +18 -0
  57. package/lib/index.js +35 -0
  58. package/lib/index.js.map +1 -0
  59. package/lib/info/index.d.ts +17 -0
  60. package/lib/info/index.js +132 -0
  61. package/lib/info/index.js.map +1 -0
  62. package/lib/init/index.d.ts +30 -0
  63. package/lib/init/index.js +348 -0
  64. package/lib/init/index.js.map +1 -0
  65. package/lib/lint/index.d.ts +1 -0
  66. package/lib/lint/index.js +6 -0
  67. package/lib/lint/index.js.map +1 -0
  68. package/lib/linter/attributeSchema.d.ts +7 -0
  69. package/lib/linter/attributeSchema.js +36 -0
  70. package/lib/linter/attributeSchema.js.map +1 -0
  71. package/lib/linter/checkLocaleCircularDependency.d.ts +7 -0
  72. package/lib/linter/checkLocaleCircularDependency.js +42 -0
  73. package/lib/linter/checkLocaleCircularDependency.js.map +1 -0
  74. package/lib/linter/conditionSchema.d.ts +3 -0
  75. package/lib/linter/conditionSchema.js +283 -0
  76. package/lib/linter/conditionSchema.js.map +1 -0
  77. package/lib/linter/formatSchema.d.ts +325 -0
  78. package/lib/linter/formatSchema.js +165 -0
  79. package/lib/linter/formatSchema.js.map +1 -0
  80. package/lib/linter/icuStyleLint.d.ts +6 -0
  81. package/lib/linter/icuStyleLint.js +226 -0
  82. package/lib/linter/icuStyleLint.js.map +1 -0
  83. package/lib/linter/index.d.ts +34 -0
  84. package/lib/linter/index.js +557 -0
  85. package/lib/linter/index.js.map +1 -0
  86. package/lib/linter/localeSchema.d.ts +672 -0
  87. package/lib/linter/localeSchema.js +50 -0
  88. package/lib/linter/localeSchema.js.map +1 -0
  89. package/lib/linter/messageSchema.d.ts +35 -0
  90. package/lib/linter/messageSchema.js +115 -0
  91. package/lib/linter/messageSchema.js.map +1 -0
  92. package/lib/linter/printError.d.ts +8 -0
  93. package/lib/linter/printError.js +41 -0
  94. package/lib/linter/printError.js.map +1 -0
  95. package/lib/linter/schema.d.ts +33 -0
  96. package/lib/linter/schema.js +192 -0
  97. package/lib/linter/schema.js.map +1 -0
  98. package/lib/linter/segmentSchema.d.ts +8 -0
  99. package/lib/linter/segmentSchema.js +18 -0
  100. package/lib/linter/segmentSchema.js.map +1 -0
  101. package/lib/linter/targetSchema.d.ts +337 -0
  102. package/lib/linter/targetSchema.js +39 -0
  103. package/lib/linter/targetSchema.js.map +1 -0
  104. package/lib/linter/testSchema.d.ts +71 -0
  105. package/lib/linter/testSchema.js +165 -0
  106. package/lib/linter/testSchema.js.map +1 -0
  107. package/lib/linter/zodHelpers.d.ts +2 -0
  108. package/lib/linter/zodHelpers.js +15 -0
  109. package/lib/linter/zodHelpers.js.map +1 -0
  110. package/lib/list/index.d.ts +8 -0
  111. package/lib/list/index.js +524 -0
  112. package/lib/list/index.js.map +1 -0
  113. package/lib/matrix.d.ts +4 -0
  114. package/lib/matrix.js +66 -0
  115. package/lib/matrix.js.map +1 -0
  116. package/lib/promoter/index.d.ts +65 -0
  117. package/lib/promoter/index.js +1208 -0
  118. package/lib/promoter/index.js.map +1 -0
  119. package/lib/prune/index.d.ts +37 -0
  120. package/lib/prune/index.js +673 -0
  121. package/lib/prune/index.js.map +1 -0
  122. package/lib/sets.d.ts +10 -0
  123. package/lib/sets.js +120 -0
  124. package/lib/sets.js.map +1 -0
  125. package/lib/tester/cliFormat.d.ts +8 -0
  126. package/lib/tester/cliFormat.js +15 -0
  127. package/lib/tester/cliFormat.js.map +1 -0
  128. package/lib/tester/index.d.ts +35 -0
  129. package/lib/tester/index.js +713 -0
  130. package/lib/tester/index.js.map +1 -0
  131. package/lib/tester/matrix.d.ts +14 -0
  132. package/lib/tester/matrix.js +76 -0
  133. package/lib/tester/matrix.js.map +1 -0
  134. package/lib/tester/prettyDuration.d.ts +1 -0
  135. package/lib/tester/prettyDuration.js +30 -0
  136. package/lib/tester/prettyDuration.js.map +1 -0
  137. package/lib/tester/printTestResult.d.ts +2 -0
  138. package/lib/tester/printTestResult.js +32 -0
  139. package/lib/tester/printTestResult.js.map +1 -0
  140. package/lib/tester/types.d.ts +29 -0
  141. package/lib/tester/types.js +3 -0
  142. package/lib/tester/types.js.map +1 -0
  143. package/package.json +41 -13
  144. package/src/benchmark/index.spec.ts +375 -0
  145. package/src/benchmark/index.ts +433 -0
  146. package/src/builder/index.spec.ts +822 -0
  147. package/src/builder/index.ts +920 -0
  148. package/src/cli/index.spec.ts +54 -0
  149. package/src/cli/index.ts +150 -0
  150. package/src/config/index.spec.ts +70 -0
  151. package/src/config/index.ts +259 -0
  152. package/src/create/index.spec.ts +272 -0
  153. package/src/create/index.ts +295 -0
  154. package/src/datasource/filesystemAdapter.ts +313 -0
  155. package/src/datasource/index.ts +135 -0
  156. package/src/error.ts +33 -0
  157. package/src/evaluate/cli.spec.ts +368 -0
  158. package/src/evaluate/cli.ts +130 -0
  159. package/src/evaluate/index.ts +161 -0
  160. package/src/examples/coerceExampleIsoDates.spec.ts +81 -0
  161. package/src/examples/coerceExampleIsoDates.ts +98 -0
  162. package/src/examples/index.spec.ts +453 -0
  163. package/src/examples/index.ts +854 -0
  164. package/src/exporter/index.spec.ts +443 -0
  165. package/src/exporter/index.ts +643 -0
  166. package/src/find-duplicates/index.spec.ts +289 -0
  167. package/src/find-duplicates/index.ts +314 -0
  168. package/src/generate-code/index.ts +92 -0
  169. package/src/generate-code/typescript.spec.ts +241 -0
  170. package/src/generate-code/typescript.ts +284 -0
  171. package/src/importer/index.spec.ts +1101 -0
  172. package/src/importer/index.ts +1190 -0
  173. package/src/index.ts +18 -0
  174. package/src/info/index.ts +67 -0
  175. package/src/init/index.spec.ts +279 -0
  176. package/src/init/index.ts +292 -0
  177. package/src/lint/index.ts +1 -0
  178. package/src/linter/attributeSchema.ts +38 -0
  179. package/src/linter/checkLocaleCircularDependency.ts +51 -0
  180. package/src/linter/conditionSchema.ts +386 -0
  181. package/src/linter/formatSchema.ts +170 -0
  182. package/src/linter/icuStyleLint.ts +312 -0
  183. package/src/linter/index.spec.ts +824 -0
  184. package/src/linter/index.ts +460 -0
  185. package/src/linter/localeSchema.ts +70 -0
  186. package/src/linter/messageSchema.ts +152 -0
  187. package/src/linter/printError.ts +52 -0
  188. package/src/linter/schema.ts +230 -0
  189. package/src/linter/segmentSchema.ts +15 -0
  190. package/src/linter/targetSchema.ts +50 -0
  191. package/src/linter/testSchema.spec.ts +405 -0
  192. package/src/linter/testSchema.ts +239 -0
  193. package/src/linter/zodHelpers.ts +16 -0
  194. package/src/list/index.spec.ts +431 -0
  195. package/src/list/index.ts +463 -0
  196. package/src/matrix.ts +69 -0
  197. package/src/promoter/index.spec.ts +584 -0
  198. package/src/promoter/index.ts +1267 -0
  199. package/src/prune/index.spec.ts +418 -0
  200. package/src/prune/index.ts +693 -0
  201. package/src/sets.ts +74 -0
  202. package/src/tester/cliFormat.ts +11 -0
  203. package/src/tester/featurevisorIntegration.spec.ts +101 -0
  204. package/src/tester/index.spec.ts +577 -0
  205. package/src/tester/index.ts +679 -0
  206. package/src/tester/matrix.ts +106 -0
  207. package/src/tester/prettyDuration.ts +34 -0
  208. package/src/tester/printTestResult.ts +40 -0
  209. package/src/tester/types.ts +32 -0
  210. package/tsconfig.cjs.json +11 -0
  211. package/tsconfig.typecheck.json +4 -0
@@ -0,0 +1,424 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ var desc = Object.getOwnPropertyDescriptor(m, k);
16
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
+ desc = { enumerable: true, get: function() { return m[k]; } };
18
+ }
19
+ Object.defineProperty(o, k2, desc);
20
+ }) : (function(o, m, k, k2) {
21
+ if (k2 === undefined) k2 = k;
22
+ o[k2] = m[k];
23
+ }));
24
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
26
+ }) : function(o, v) {
27
+ o["default"] = v;
28
+ });
29
+ var __importStar = (this && this.__importStar) || (function () {
30
+ var ownKeys = function(o) {
31
+ ownKeys = Object.getOwnPropertyNames || function (o) {
32
+ var ar = [];
33
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
34
+ return ar;
35
+ };
36
+ return ownKeys(o);
37
+ };
38
+ return function (mod) {
39
+ if (mod && mod.__esModule) return mod;
40
+ var result = {};
41
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
42
+ __setModuleDefault(result, mod);
43
+ return result;
44
+ };
45
+ })();
46
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
47
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
48
+ return new (P || (P = Promise))(function (resolve, reject) {
49
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
50
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
51
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
52
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
53
+ });
54
+ };
55
+ var __generator = (this && this.__generator) || function (thisArg, body) {
56
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
57
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
58
+ function verb(n) { return function (v) { return step([n, v]); }; }
59
+ function step(op) {
60
+ if (f) throw new TypeError("Generator is already executing.");
61
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
62
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
63
+ if (y = 0, t) op = [op[0] & 2, t.value];
64
+ switch (op[0]) {
65
+ case 0: case 1: t = op; break;
66
+ case 4: _.label++; return { value: op[1], done: false };
67
+ case 5: _.label++; y = op[1]; op = [0]; continue;
68
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
69
+ default:
70
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
71
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
72
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
73
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
74
+ if (t[2]) _.ops.pop();
75
+ _.trys.pop(); continue;
76
+ }
77
+ op = body.call(thisArg, _);
78
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
79
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
80
+ }
81
+ };
82
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
83
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
84
+ if (ar || !(i in from)) {
85
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
86
+ ar[i] = from[i];
87
+ }
88
+ }
89
+ return to.concat(ar || Array.prototype.slice.call(from));
90
+ };
91
+ Object.defineProperty(exports, "__esModule", { value: true });
92
+ exports.FilesystemAdapter = void 0;
93
+ var fs = __importStar(require("fs"));
94
+ var path = __importStar(require("path"));
95
+ var config_1 = require("../config");
96
+ var ENTITY_DIRECTORIES = {
97
+ locale: "localesDirectoryPath",
98
+ message: "messagesDirectoryPath",
99
+ segment: "segmentsDirectoryPath",
100
+ attribute: "attributesDirectoryPath",
101
+ target: "targetsDirectoryPath",
102
+ test: "testsDirectoryPath",
103
+ };
104
+ var TEST_SPEC_SUFFIX = ".spec";
105
+ var FilesystemAdapter = /** @class */ (function () {
106
+ function FilesystemAdapter(config, rootDirectoryPath) {
107
+ this.config = config;
108
+ this.rootDirectoryPath = rootDirectoryPath;
109
+ }
110
+ Object.defineProperty(FilesystemAdapter.prototype, "parser", {
111
+ get: function () {
112
+ return this.config.parser;
113
+ },
114
+ enumerable: false,
115
+ configurable: true
116
+ });
117
+ FilesystemAdapter.prototype.getEntityDirectory = function (type) {
118
+ return this.config[ENTITY_DIRECTORIES[type]];
119
+ };
120
+ FilesystemAdapter.prototype.listSets = function () {
121
+ return __awaiter(this, void 0, void 0, function () {
122
+ var entries;
123
+ return __generator(this, function (_a) {
124
+ switch (_a.label) {
125
+ case 0:
126
+ if (!this.config.sets || !fs.existsSync(this.config.setsDirectoryPath)) {
127
+ return [2 /*return*/, []];
128
+ }
129
+ return [4 /*yield*/, fs.promises.readdir(this.config.setsDirectoryPath, {
130
+ withFileTypes: true,
131
+ })];
132
+ case 1:
133
+ entries = _a.sent();
134
+ return [2 /*return*/, entries
135
+ .filter(function (entry) { return entry.isDirectory(); })
136
+ .map(function (entry) { return entry.name; })
137
+ .sort()];
138
+ }
139
+ });
140
+ });
141
+ };
142
+ FilesystemAdapter.prototype.getEntityPath = function (type, key) {
143
+ var extension = ".".concat(this.parser.extension);
144
+ var basePath = path.join.apply(path, __spreadArray([this.getEntityDirectory(type)], key.split(this.config.namespaceCharacter), false));
145
+ if (type === "test") {
146
+ var specPath = "".concat(basePath).concat(TEST_SPEC_SUFFIX).concat(extension);
147
+ if (fs.existsSync(specPath)) {
148
+ return specPath;
149
+ }
150
+ var legacyPath = "".concat(basePath).concat(extension);
151
+ if (fs.existsSync(legacyPath)) {
152
+ return legacyPath;
153
+ }
154
+ return specPath;
155
+ }
156
+ return "".concat(basePath).concat(extension);
157
+ };
158
+ FilesystemAdapter.prototype.getEntityWritePath = function (type, key) {
159
+ return (path.join.apply(path, __spreadArray([this.getEntityDirectory(type)], key.split(this.config.namespaceCharacter), false)) +
160
+ "".concat(type === "test" ? TEST_SPEC_SUFFIX : "", ".").concat(this.parser.extension));
161
+ };
162
+ FilesystemAdapter.prototype.getKeyFromEntityPath = function (type, directoryPath, filePath) {
163
+ var extension = ".".concat(this.parser.extension);
164
+ var relativePath = path.relative(directoryPath, filePath).slice(0, -extension.length);
165
+ var pathSegments = relativePath.split(path.sep);
166
+ if (type === "test") {
167
+ var lastSegment = pathSegments[pathSegments.length - 1];
168
+ if (lastSegment.endsWith(TEST_SPEC_SUFFIX)) {
169
+ pathSegments[pathSegments.length - 1] = lastSegment.slice(0, -TEST_SPEC_SUFFIX.length);
170
+ }
171
+ }
172
+ return pathSegments.join(this.config.namespaceCharacter);
173
+ };
174
+ FilesystemAdapter.prototype.assertReservedCharactersNotInPathName = function (type, entryName, entryPath, isFile) {
175
+ var nameToCheck = isFile ? entryName.slice(0, -".".concat(this.parser.extension).length) : entryName;
176
+ if (type === "test" && isFile && nameToCheck.endsWith(TEST_SPEC_SUFFIX)) {
177
+ nameToCheck = nameToCheck.slice(0, -TEST_SPEC_SUFFIX.length);
178
+ }
179
+ var reservedCharacters = [
180
+ ["namespaceCharacter", this.config.namespaceCharacter],
181
+ ["exportOverrideKeySeparator", this.config.exportOverrideKeySeparator],
182
+ ];
183
+ for (var _i = 0, reservedCharacters_1 = reservedCharacters; _i < reservedCharacters_1.length; _i++) {
184
+ var _a = reservedCharacters_1[_i], label = _a[0], reservedCharacter = _a[1];
185
+ if (!reservedCharacter || !nameToCheck.includes(reservedCharacter)) {
186
+ continue;
187
+ }
188
+ throw new Error("Invalid ".concat(type, " path \"").concat(entryPath, "\": ").concat(label, " \"").concat(reservedCharacter, "\" is not allowed in directory or file names."));
189
+ }
190
+ };
191
+ FilesystemAdapter.prototype.readFile = function (filePath) {
192
+ return __awaiter(this, void 0, void 0, function () {
193
+ var content;
194
+ return __generator(this, function (_a) {
195
+ switch (_a.label) {
196
+ case 0: return [4 /*yield*/, fs.promises.readFile(filePath, "utf8")];
197
+ case 1:
198
+ content = _a.sent();
199
+ return [2 /*return*/, this.parser.parse(content, filePath)];
200
+ }
201
+ });
202
+ });
203
+ };
204
+ FilesystemAdapter.prototype.writeFile = function (filePath, content) {
205
+ return __awaiter(this, void 0, void 0, function () {
206
+ return __generator(this, function (_a) {
207
+ switch (_a.label) {
208
+ case 0: return [4 /*yield*/, fs.promises.mkdir(path.dirname(filePath), { recursive: true })];
209
+ case 1:
210
+ _a.sent();
211
+ return [4 /*yield*/, fs.promises.writeFile(filePath, this.parser.stringify(content, filePath))];
212
+ case 2:
213
+ _a.sent();
214
+ return [2 /*return*/];
215
+ }
216
+ });
217
+ });
218
+ };
219
+ FilesystemAdapter.prototype.listEntities = function (type) {
220
+ return __awaiter(this, void 0, void 0, function () {
221
+ function walk(currentDirectoryPath) {
222
+ return __awaiter(this, void 0, void 0, function () {
223
+ var entries, _i, entries_1, entry, entryPath;
224
+ return __generator(this, function (_a) {
225
+ switch (_a.label) {
226
+ case 0: return [4 /*yield*/, fs.promises.readdir(currentDirectoryPath, { withFileTypes: true })];
227
+ case 1:
228
+ entries = _a.sent();
229
+ _i = 0, entries_1 = entries;
230
+ _a.label = 2;
231
+ case 2:
232
+ if (!(_i < entries_1.length)) return [3 /*break*/, 6];
233
+ entry = entries_1[_i];
234
+ entryPath = path.join(currentDirectoryPath, entry.name);
235
+ if (!entry.isDirectory()) return [3 /*break*/, 4];
236
+ assertReservedCharactersNotInPathName(type, entry.name, entryPath, false);
237
+ return [4 /*yield*/, walk(entryPath)];
238
+ case 3:
239
+ _a.sent();
240
+ return [3 /*break*/, 5];
241
+ case 4:
242
+ if (entry.isFile() && entry.name.endsWith(extension)) {
243
+ assertReservedCharactersNotInPathName(type, entry.name, entryPath, true);
244
+ files.push(entryPath);
245
+ }
246
+ _a.label = 5;
247
+ case 5:
248
+ _i++;
249
+ return [3 /*break*/, 2];
250
+ case 6: return [2 /*return*/];
251
+ }
252
+ });
253
+ });
254
+ }
255
+ var directoryPath, extension, files, assertReservedCharactersNotInPathName;
256
+ var _this = this;
257
+ return __generator(this, function (_a) {
258
+ switch (_a.label) {
259
+ case 0:
260
+ directoryPath = this.getEntityDirectory(type);
261
+ if (!fs.existsSync(directoryPath)) {
262
+ return [2 /*return*/, []];
263
+ }
264
+ extension = ".".concat(this.parser.extension);
265
+ files = [];
266
+ assertReservedCharactersNotInPathName = this.assertReservedCharactersNotInPathName.bind(this);
267
+ return [4 /*yield*/, walk(directoryPath)];
268
+ case 1:
269
+ _a.sent();
270
+ return [2 /*return*/, Array.from(new Set(files.map(function (filePath) { return _this.getKeyFromEntityPath(type, directoryPath, filePath); }))).sort()];
271
+ }
272
+ });
273
+ });
274
+ };
275
+ FilesystemAdapter.prototype.entityExists = function (type, key) {
276
+ return fs.existsSync(this.getEntityPath(type, key));
277
+ };
278
+ FilesystemAdapter.prototype.readEntity = function (type, key) {
279
+ return __awaiter(this, void 0, void 0, function () {
280
+ var entity;
281
+ return __generator(this, function (_a) {
282
+ switch (_a.label) {
283
+ case 0: return [4 /*yield*/, this.readFile(this.getEntityPath(type, key))];
284
+ case 1:
285
+ entity = _a.sent();
286
+ return [2 /*return*/, __assign({ key: key }, entity)];
287
+ }
288
+ });
289
+ });
290
+ };
291
+ FilesystemAdapter.prototype.writeEntity = function (type, key, entity) {
292
+ return __awaiter(this, void 0, void 0, function () {
293
+ return __generator(this, function (_a) {
294
+ switch (_a.label) {
295
+ case 0: return [4 /*yield*/, this.writeFile(this.getEntityWritePath(type, key), entity)];
296
+ case 1:
297
+ _a.sent();
298
+ return [2 /*return*/];
299
+ }
300
+ });
301
+ });
302
+ };
303
+ FilesystemAdapter.prototype.readRevision = function () {
304
+ return __awaiter(this, void 0, void 0, function () {
305
+ var revisionFilePath;
306
+ return __generator(this, function (_a) {
307
+ switch (_a.label) {
308
+ case 0:
309
+ revisionFilePath = path.join(this.config.stateDirectoryPath, this.config.revisionFileName);
310
+ if (!fs.existsSync(revisionFilePath)) {
311
+ return [2 /*return*/, "0"];
312
+ }
313
+ return [4 /*yield*/, fs.promises.readFile(revisionFilePath, "utf8")];
314
+ case 1: return [2 /*return*/, (_a.sent()).trim() || "0"];
315
+ }
316
+ });
317
+ });
318
+ };
319
+ FilesystemAdapter.prototype.writeRevision = function (revision) {
320
+ return __awaiter(this, void 0, void 0, function () {
321
+ return __generator(this, function (_a) {
322
+ switch (_a.label) {
323
+ case 0: return [4 /*yield*/, fs.promises.mkdir(this.config.stateDirectoryPath, { recursive: true })];
324
+ case 1:
325
+ _a.sent();
326
+ return [4 /*yield*/, fs.promises.writeFile(path.join(this.config.stateDirectoryPath, this.config.revisionFileName), revision)];
327
+ case 2:
328
+ _a.sent();
329
+ return [2 /*return*/];
330
+ }
331
+ });
332
+ });
333
+ };
334
+ FilesystemAdapter.prototype.writeDatafile = function (datafileContent_1) {
335
+ return __awaiter(this, arguments, void 0, function (datafileContent, options) {
336
+ var datafilePath;
337
+ if (options === void 0) { options = {}; }
338
+ return __generator(this, function (_a) {
339
+ switch (_a.label) {
340
+ case 0:
341
+ datafilePath = path.join(this.config.datafilesDirectoryPath, (0, config_1.formatDatafilePath)(this.config, datafileContent.target, datafileContent.locale));
342
+ return [4 /*yield*/, fs.promises.mkdir(path.dirname(datafilePath), { recursive: true })];
343
+ case 1:
344
+ _a.sent();
345
+ return [4 /*yield*/, fs.promises.writeFile(datafilePath, options.pretty ? JSON.stringify(datafileContent, null, 2) : JSON.stringify(datafileContent))];
346
+ case 2:
347
+ _a.sent();
348
+ return [2 /*return*/];
349
+ }
350
+ });
351
+ });
352
+ };
353
+ FilesystemAdapter.prototype.readDatafile = function (target, locale) {
354
+ return __awaiter(this, void 0, void 0, function () {
355
+ var datafilePath, _a, _b;
356
+ return __generator(this, function (_c) {
357
+ switch (_c.label) {
358
+ case 0:
359
+ datafilePath = path.join(this.config.datafilesDirectoryPath, (0, config_1.formatDatafilePath)(this.config, target, locale));
360
+ _b = (_a = JSON).parse;
361
+ return [4 /*yield*/, fs.promises.readFile(datafilePath, "utf8")];
362
+ case 1: return [2 /*return*/, _b.apply(_a, [_c.sent()])];
363
+ }
364
+ });
365
+ });
366
+ };
367
+ FilesystemAdapter.prototype.listLocales = function () {
368
+ return this.listEntities("locale");
369
+ };
370
+ FilesystemAdapter.prototype.readLocale = function (key) {
371
+ return this.readEntity("locale", key);
372
+ };
373
+ FilesystemAdapter.prototype.writeLocale = function (key, locale) {
374
+ return this.writeEntity("locale", key, locale);
375
+ };
376
+ FilesystemAdapter.prototype.listMessages = function () {
377
+ return this.listEntities("message");
378
+ };
379
+ FilesystemAdapter.prototype.readMessage = function (key) {
380
+ return this.readEntity("message", key);
381
+ };
382
+ FilesystemAdapter.prototype.writeMessage = function (key, message) {
383
+ return this.writeEntity("message", key, message);
384
+ };
385
+ FilesystemAdapter.prototype.listSegments = function () {
386
+ return this.listEntities("segment");
387
+ };
388
+ FilesystemAdapter.prototype.readSegment = function (key) {
389
+ return this.readEntity("segment", key);
390
+ };
391
+ FilesystemAdapter.prototype.writeSegment = function (key, segment) {
392
+ return this.writeEntity("segment", key, segment);
393
+ };
394
+ FilesystemAdapter.prototype.listAttributes = function () {
395
+ return this.listEntities("attribute");
396
+ };
397
+ FilesystemAdapter.prototype.readAttribute = function (key) {
398
+ return this.readEntity("attribute", key);
399
+ };
400
+ FilesystemAdapter.prototype.writeAttribute = function (key, attribute) {
401
+ return this.writeEntity("attribute", key, attribute);
402
+ };
403
+ FilesystemAdapter.prototype.listTargets = function () {
404
+ return this.listEntities("target");
405
+ };
406
+ FilesystemAdapter.prototype.readTarget = function (key) {
407
+ return this.readEntity("target", key);
408
+ };
409
+ FilesystemAdapter.prototype.writeTarget = function (key, target) {
410
+ return this.writeEntity("target", key, target);
411
+ };
412
+ FilesystemAdapter.prototype.listTests = function () {
413
+ return this.listEntities("test");
414
+ };
415
+ FilesystemAdapter.prototype.readTest = function (key) {
416
+ return this.readEntity("test", key);
417
+ };
418
+ FilesystemAdapter.prototype.writeTest = function (key, test) {
419
+ return this.writeEntity("test", key, test);
420
+ };
421
+ return FilesystemAdapter;
422
+ }());
423
+ exports.FilesystemAdapter = FilesystemAdapter;
424
+ //# sourceMappingURL=filesystemAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filesystemAdapter.js","sourceRoot":"","sources":["../../src/datasource/filesystemAdapter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAAyB;AACzB,yCAA6B;AAa7B,oCAAmE;AAKnE,IAAM,kBAAkB,GAA4C;IAClE,MAAM,EAAE,sBAAsB;IAC9B,OAAO,EAAE,uBAAuB;IAChC,OAAO,EAAE,uBAAuB;IAChC,SAAS,EAAE,yBAAyB;IACpC,MAAM,EAAE,sBAAsB;IAC9B,IAAI,EAAE,oBAAoB;CAC3B,CAAC;AAEF,IAAM,gBAAgB,GAAG,OAAO,CAAC;AAEjC;IACE,2BACU,MAAqB,EACrB,iBAA0B;QAD1B,WAAM,GAAN,MAAM,CAAe;QACrB,sBAAiB,GAAjB,iBAAiB,CAAS;IACjC,CAAC;IAEJ,sBAAY,qCAAM;aAAlB;YACE,OAAO,IAAI,CAAC,MAAM,CAAC,MAAsB,CAAC;QAC5C,CAAC;;;OAAA;IAEO,8CAAkB,GAA1B,UAA2B,IAAgB;QACzC,OAAO,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAW,CAAC;IACzD,CAAC;IAEK,oCAAQ,GAAd;;;;;;wBACE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAAE,CAAC;4BACvE,sBAAO,EAAE,EAAC;wBACZ,CAAC;wBAEe,qBAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE;gCACvE,aAAa,EAAE,IAAI;6BACpB,CAAC,EAAA;;wBAFI,OAAO,GAAG,SAEd;wBAEF,sBAAO,OAAO;iCACX,MAAM,CAAC,UAAC,KAAK,IAAK,OAAA,KAAK,CAAC,WAAW,EAAE,EAAnB,CAAmB,CAAC;iCACtC,GAAG,CAAC,UAAC,KAAK,IAAK,OAAA,KAAK,CAAC,IAAI,EAAV,CAAU,CAAC;iCAC1B,IAAI,EAAE,EAAC;;;;KACX;IAEO,yCAAa,GAArB,UAAsB,IAAgB,EAAE,GAAW;QACjD,IAAM,SAAS,GAAG,WAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAE,CAAC;QAC9C,IAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,OAAT,IAAI,iBACnB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAC1B,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,SAC7C,CAAC;QAEF,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YACpB,IAAM,QAAQ,GAAG,UAAG,QAAQ,SAAG,gBAAgB,SAAG,SAAS,CAAE,CAAC;YAE9D,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC5B,OAAO,QAAQ,CAAC;YAClB,CAAC;YAED,IAAM,UAAU,GAAG,UAAG,QAAQ,SAAG,SAAS,CAAE,CAAC;YAE7C,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC9B,OAAO,UAAU,CAAC;YACpB,CAAC;YAED,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,OAAO,UAAG,QAAQ,SAAG,SAAS,CAAE,CAAC;IACnC,CAAC;IAEO,8CAAkB,GAA1B,UAA2B,IAAgB,EAAE,GAAW;QACtD,OAAO,CACL,IAAI,CAAC,IAAI,OAAT,IAAI,iBAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAK,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC;YACrF,UAAG,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,cAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAE,CACtE,CAAC;IACJ,CAAC;IAEO,gDAAoB,GAA5B,UAA6B,IAAgB,EAAE,aAAqB,EAAE,QAAgB;QACpF,IAAM,SAAS,GAAG,WAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAE,CAAC;QAC9C,IAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACxF,IAAM,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAElD,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YACpB,IAAM,WAAW,GAAG,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAE1D,IAAI,WAAW,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBAC3C,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;YACzF,CAAC;QACH,CAAC;QAED,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;IAC3D,CAAC;IAEO,iEAAqC,GAA7C,UACE,IAAgB,EAChB,SAAiB,EACjB,SAAiB,EACjB,MAAe;QAEf,IAAI,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,WAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAE/F,IAAI,IAAI,KAAK,MAAM,IAAI,MAAM,IAAI,WAAW,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACxE,WAAW,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAC/D,CAAC;QAED,IAAM,kBAAkB,GAAG;YACzB,CAAC,oBAAoB,EAAE,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC;YACtD,CAAC,4BAA4B,EAAE,IAAI,CAAC,MAAM,CAAC,0BAA0B,CAAC;SACvE,CAAC;QAEF,KAAyC,UAAkB,EAAlB,yCAAkB,EAAlB,gCAAkB,EAAlB,IAAkB,EAAE,CAAC;YAAnD,IAAA,6BAA0B,EAAzB,KAAK,QAAA,EAAE,iBAAiB,QAAA;YAClC,IAAI,CAAC,iBAAiB,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC;gBACnE,SAAS;YACX,CAAC;YAED,MAAM,IAAI,KAAK,CACb,kBAAW,IAAI,qBAAU,SAAS,iBAAM,KAAK,gBAAK,iBAAiB,kDAA8C,CAClH,CAAC;QACJ,CAAC;IACH,CAAC;IAEa,oCAAQ,GAAtB,UAA0B,QAAgB;;;;;4BACxB,qBAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAA;;wBAAtD,OAAO,GAAG,SAA4C;wBAC5D,sBAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAI,OAAO,EAAE,QAAQ,CAAC,EAAC;;;;KAChD;IAEa,qCAAS,GAAvB,UAAwB,QAAgB,EAAE,OAAgB;;;;4BACxD,qBAAM,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAA;;wBAApE,SAAoE,CAAC;wBACrE,qBAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,EAAA;;wBAA/E,SAA+E,CAAC;;;;;KACjF;IAEK,wCAAY,GAAlB,UAAmB,IAAgB;;YAajC,SAAe,IAAI,CAAC,oBAA4B;;;;;oCAC9B,qBAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAA;;gCAAlF,OAAO,GAAG,SAAwE;sCAE7D,EAAP,mBAAO;;;qCAAP,CAAA,qBAAO,CAAA;gCAAhB,KAAK;gCACR,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;qCAE1D,KAAK,CAAC,WAAW,EAAE,EAAnB,wBAAmB;gCACrB,qCAAqC,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;gCAC1E,qBAAM,IAAI,CAAC,SAAS,CAAC,EAAA;;gCAArB,SAAqB,CAAC;;;gCACjB,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;oCAC5D,qCAAqC,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;oCACzE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gCACxB,CAAC;;;gCATiB,IAAO,CAAA;;;;;;aAW5B;;;;;;wBA1BK,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;wBAEpD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;4BAClC,sBAAO,EAAE,EAAC;wBACZ,CAAC;wBAEK,SAAS,GAAG,WAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAE,CAAC;wBACxC,KAAK,GAAa,EAAE,CAAC;wBAErB,qCAAqC,GACzC,IAAI,CAAC,qCAAqC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBAkBxD,qBAAM,IAAI,CAAC,aAAa,CAAC,EAAA;;wBAAzB,SAAyB,CAAC;wBAE1B,sBAAO,KAAK,CAAC,IAAI,CACf,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,UAAC,QAAQ,IAAK,OAAA,KAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,aAAa,EAAE,QAAQ,CAAC,EAAxD,CAAwD,CAAC,CAAC,CAC3F,CAAC,IAAI,EAAE,EAAC;;;;KACV;IAED,wCAAY,GAAZ,UAAa,IAAgB,EAAE,GAAW;QACxC,OAAO,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;IACtD,CAAC;IAEK,sCAAU,GAAhB,UAAoB,IAAgB,EAAE,GAAW;;;;;4BAChC,qBAAM,IAAI,CAAC,QAAQ,CAAI,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,EAAA;;wBAA9D,MAAM,GAAG,SAAqD;wBAEpE,iCACE,GAAG,KAAA,IACA,MAAM,GACT;;;;KACH;IAEK,uCAAW,GAAjB,UAAqB,IAAgB,EAAE,GAAW,EAAE,MAAS;;;;4BAC3D,qBAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,EAAA;;wBAAhE,SAAgE,CAAC;;;;;KAClE;IAEK,wCAAY,GAAlB;;;;;;wBACQ,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAChC,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAC9B,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAC7B,CAAC;wBAEF,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;4BACrC,sBAAO,GAAG,EAAC;wBACb,CAAC;wBAEO,qBAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC,EAAA;4BAA5D,sBAAO,CAAC,SAAoD,CAAC,CAAC,IAAI,EAAE,IAAI,GAAG,EAAC;;;;KAC7E;IAEK,yCAAa,GAAnB,UAAoB,QAAgB;;;;4BAClC,qBAAM,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAA;;wBAA5E,SAA4E,CAAC;wBAC7E,qBAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CACzB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,EACvE,QAAQ,CACT,EAAA;;wBAHD,SAGC,CAAC;;;;;KACH;IAEK,yCAAa,GAAnB;4DAAoB,eAAgC,EAAE,OAAkC;;YAAlC,wBAAA,EAAA,YAAkC;;;;wBAChF,YAAY,GAAG,IAAI,CAAC,IAAI,CAC5B,IAAI,CAAC,MAAM,CAAC,sBAAsB,EAClC,IAAA,2BAAkB,EAAC,IAAI,CAAC,MAAM,EAAE,eAAe,CAAC,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC,CAChF,CAAC;wBAEF,qBAAM,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAA;;wBAAxE,SAAwE,CAAC;wBACzE,qBAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CACzB,YAAY,EACZ,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAC5F,EAAA;;wBAHD,SAGC,CAAC;;;;;KACH;IAEK,wCAAY,GAAlB,UAAmB,MAAc,EAAE,MAAc;;;;;;wBACzC,YAAY,GAAG,IAAI,CAAC,IAAI,CAC5B,IAAI,CAAC,MAAM,CAAC,sBAAsB,EAClC,IAAA,2BAAkB,EAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAChD,CAAC;wBACK,KAAA,CAAA,KAAA,IAAI,CAAA,CAAC,KAAK,CAAA;wBAAC,qBAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,EAAA;4BAAlE,sBAAO,cAAW,SAAgD,EAAC,EAAC;;;;KACrE;IAED,uCAAW,GAAX;QACE,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC;IAED,sCAAU,GAAV,UAAW,GAAW;QACpB,OAAO,IAAI,CAAC,UAAU,CAAS,QAAQ,EAAE,GAAG,CAAC,CAAC;IAChD,CAAC;IAED,uCAAW,GAAX,UAAY,GAAW,EAAE,MAAc;QACrC,OAAO,IAAI,CAAC,WAAW,CAAS,QAAQ,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;IACzD,CAAC;IAED,wCAAY,GAAZ;QACE,OAAO,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IACtC,CAAC;IAED,uCAAW,GAAX,UAAY,GAAW;QACrB,OAAO,IAAI,CAAC,UAAU,CAAU,SAAS,EAAE,GAAG,CAAC,CAAC;IAClD,CAAC;IAED,wCAAY,GAAZ,UAAa,GAAW,EAAE,OAAgB;QACxC,OAAO,IAAI,CAAC,WAAW,CAAU,SAAS,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IAC5D,CAAC;IAED,wCAAY,GAAZ;QACE,OAAO,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IACtC,CAAC;IAED,uCAAW,GAAX,UAAY,GAAW;QACrB,OAAO,IAAI,CAAC,UAAU,CAAU,SAAS,EAAE,GAAG,CAAC,CAAC;IAClD,CAAC;IAED,wCAAY,GAAZ,UAAa,GAAW,EAAE,OAAgB;QACxC,OAAO,IAAI,CAAC,WAAW,CAAU,SAAS,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IAC5D,CAAC;IAED,0CAAc,GAAd;QACE,OAAO,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;IACxC,CAAC;IAED,yCAAa,GAAb,UAAc,GAAW;QACvB,OAAO,IAAI,CAAC,UAAU,CAAY,WAAW,EAAE,GAAG,CAAC,CAAC;IACtD,CAAC;IAED,0CAAc,GAAd,UAAe,GAAW,EAAE,SAAoB;QAC9C,OAAO,IAAI,CAAC,WAAW,CAAY,WAAW,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;IAClE,CAAC;IAED,uCAAW,GAAX;QACE,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC;IAED,sCAAU,GAAV,UAAW,GAAW;QACpB,OAAO,IAAI,CAAC,UAAU,CAAS,QAAQ,EAAE,GAAG,CAAC,CAAC;IAChD,CAAC;IAED,uCAAW,GAAX,UAAY,GAAW,EAAE,MAAc;QACrC,OAAO,IAAI,CAAC,WAAW,CAAS,QAAQ,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;IACzD,CAAC;IAED,qCAAS,GAAT;QACE,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IAED,oCAAQ,GAAR,UAAS,GAAW;QAClB,OAAO,IAAI,CAAC,UAAU,CAAO,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5C,CAAC;IAED,qCAAS,GAAT,UAAU,GAAW,EAAE,IAAU;QAC/B,OAAO,IAAI,CAAC,WAAW,CAAO,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IACnD,CAAC;IACH,wBAAC;AAAD,CAAC,AA1RD,IA0RC;AA1RY,8CAAiB"}
@@ -0,0 +1,39 @@
1
+ import type { Attribute, DatafileContent, Locale, Message, Target, Segment, Test } from "@messagevisor/types";
2
+ import { type ProjectConfig } from "../config";
3
+ export interface WriteDatafileOptions {
4
+ pretty?: boolean;
5
+ }
6
+ export declare class Datasource {
7
+ private config;
8
+ private rootDirectoryPath?;
9
+ private set?;
10
+ private adapter;
11
+ private rootConfig;
12
+ constructor(config: ProjectConfig, rootDirectoryPath?: string, set?: string);
13
+ getConfig(): ProjectConfig;
14
+ getSet(): string;
15
+ forSet(set: string): Datasource;
16
+ listSets(): Promise<string[]>;
17
+ readRevision(): Promise<string>;
18
+ writeRevision(revision: string): Promise<void>;
19
+ writeDatafile(datafileContent: DatafileContent, options?: WriteDatafileOptions): Promise<void>;
20
+ readDatafile(target: string, locale: string): Promise<DatafileContent>;
21
+ listLocales(): Promise<string[]>;
22
+ readLocale(localeKey: string): Promise<Locale>;
23
+ writeLocale(localeKey: string, locale: Locale): Promise<void>;
24
+ listMessages(): Promise<string[]>;
25
+ readMessage(messageKey: string): Promise<Message>;
26
+ writeMessage(messageKey: string, message: Message): Promise<void>;
27
+ listSegments(): Promise<string[]>;
28
+ readSegment(segmentKey: string): Promise<Segment>;
29
+ writeSegment(segmentKey: string, segment: Segment): Promise<void>;
30
+ listAttributes(): Promise<string[]>;
31
+ readAttribute(attributeKey: string): Promise<Attribute>;
32
+ writeAttribute(attributeKey: string, attribute: Attribute): Promise<void>;
33
+ listTargets(): Promise<string[]>;
34
+ readTarget(targetKey: string): Promise<Target>;
35
+ writeTarget(targetKey: string, target: Target): Promise<void>;
36
+ listTests(): Promise<string[]>;
37
+ readTest(testKey: string): Promise<Test>;
38
+ writeTest(testKey: string, test: Test): Promise<void>;
39
+ }
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Datasource = void 0;
4
+ var config_1 = require("../config");
5
+ var Datasource = /** @class */ (function () {
6
+ function Datasource(config, rootDirectoryPath, set) {
7
+ this.config = config;
8
+ this.rootDirectoryPath = rootDirectoryPath;
9
+ this.set = set;
10
+ this.rootConfig = config;
11
+ this.config = set ? (0, config_1.getProjectConfigForSet)(this.rootConfig, set) : config;
12
+ this.adapter = new this.config.adapter(this.config, rootDirectoryPath);
13
+ }
14
+ Datasource.prototype.getConfig = function () {
15
+ return this.config;
16
+ };
17
+ Datasource.prototype.getSet = function () {
18
+ return this.set;
19
+ };
20
+ Datasource.prototype.forSet = function (set) {
21
+ return new Datasource(this.rootConfig, this.rootDirectoryPath, set);
22
+ };
23
+ Datasource.prototype.listSets = function () {
24
+ return this.adapter.listSets();
25
+ };
26
+ Datasource.prototype.readRevision = function () {
27
+ return this.adapter.readRevision();
28
+ };
29
+ Datasource.prototype.writeRevision = function (revision) {
30
+ return this.adapter.writeRevision(revision);
31
+ };
32
+ Datasource.prototype.writeDatafile = function (datafileContent, options) {
33
+ if (options === void 0) { options = {}; }
34
+ return this.adapter.writeDatafile(datafileContent, options);
35
+ };
36
+ Datasource.prototype.readDatafile = function (target, locale) {
37
+ return this.adapter.readDatafile(target, locale);
38
+ };
39
+ Datasource.prototype.listLocales = function () {
40
+ return this.adapter.listLocales();
41
+ };
42
+ Datasource.prototype.readLocale = function (localeKey) {
43
+ return this.adapter.readLocale(localeKey);
44
+ };
45
+ Datasource.prototype.writeLocale = function (localeKey, locale) {
46
+ return this.adapter.writeLocale(localeKey, locale);
47
+ };
48
+ Datasource.prototype.listMessages = function () {
49
+ return this.adapter.listMessages();
50
+ };
51
+ Datasource.prototype.readMessage = function (messageKey) {
52
+ return this.adapter.readMessage(messageKey);
53
+ };
54
+ Datasource.prototype.writeMessage = function (messageKey, message) {
55
+ return this.adapter.writeMessage(messageKey, message);
56
+ };
57
+ Datasource.prototype.listSegments = function () {
58
+ return this.adapter.listSegments();
59
+ };
60
+ Datasource.prototype.readSegment = function (segmentKey) {
61
+ return this.adapter.readSegment(segmentKey);
62
+ };
63
+ Datasource.prototype.writeSegment = function (segmentKey, segment) {
64
+ return this.adapter.writeSegment(segmentKey, segment);
65
+ };
66
+ Datasource.prototype.listAttributes = function () {
67
+ return this.adapter.listAttributes();
68
+ };
69
+ Datasource.prototype.readAttribute = function (attributeKey) {
70
+ return this.adapter.readAttribute(attributeKey);
71
+ };
72
+ Datasource.prototype.writeAttribute = function (attributeKey, attribute) {
73
+ return this.adapter.writeAttribute(attributeKey, attribute);
74
+ };
75
+ Datasource.prototype.listTargets = function () {
76
+ return this.adapter.listTargets();
77
+ };
78
+ Datasource.prototype.readTarget = function (targetKey) {
79
+ return this.adapter.readTarget(targetKey);
80
+ };
81
+ Datasource.prototype.writeTarget = function (targetKey, target) {
82
+ return this.adapter.writeTarget(targetKey, target);
83
+ };
84
+ Datasource.prototype.listTests = function () {
85
+ return this.adapter.listTests();
86
+ };
87
+ Datasource.prototype.readTest = function (testKey) {
88
+ return this.adapter.readTest(testKey);
89
+ };
90
+ Datasource.prototype.writeTest = function (testKey, test) {
91
+ return this.adapter.writeTest(testKey, test);
92
+ };
93
+ return Datasource;
94
+ }());
95
+ exports.Datasource = Datasource;
96
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/datasource/index.ts"],"names":[],"mappings":"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"}
package/lib/error.d.ts ADDED
@@ -0,0 +1,6 @@
1
+ export declare class MessagevisorCLIError extends Error {
2
+ readonly cliMessage: string;
3
+ constructor(message: string);
4
+ }
5
+ export declare function getMessagevisorCLIErrorMessage(error: unknown): string;
6
+ export declare function printMessagevisorCLIError(error: unknown): boolean;
package/lib/error.js ADDED
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ if (typeof b !== "function" && b !== null)
11
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
+ extendStatics(d, b);
13
+ function __() { this.constructor = d; }
14
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
+ };
16
+ })();
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.MessagevisorCLIError = void 0;
19
+ exports.getMessagevisorCLIErrorMessage = getMessagevisorCLIErrorMessage;
20
+ exports.printMessagevisorCLIError = printMessagevisorCLIError;
21
+ var MessagevisorCLIError = /** @class */ (function (_super) {
22
+ __extends(MessagevisorCLIError, _super);
23
+ function MessagevisorCLIError(message) {
24
+ var _this = _super.call(this, message) || this;
25
+ _this.name = "MessagevisorCLIError";
26
+ _this.cliMessage = message;
27
+ return _this;
28
+ }
29
+ return MessagevisorCLIError;
30
+ }(Error));
31
+ exports.MessagevisorCLIError = MessagevisorCLIError;
32
+ function getMessagevisorCLIErrorMessage(error) {
33
+ if (typeof error === "object" &&
34
+ error !== null &&
35
+ "cliMessage" in error &&
36
+ typeof error.cliMessage === "string") {
37
+ return error.cliMessage;
38
+ }
39
+ return undefined;
40
+ }
41
+ function printMessagevisorCLIError(error) {
42
+ var message = getMessagevisorCLIErrorMessage(error);
43
+ if (typeof message === "undefined") {
44
+ return false;
45
+ }
46
+ console.error(message);
47
+ return true;
48
+ }
49
+ //# sourceMappingURL=error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.js","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAUA,wEAWC;AAED,8DASC;AAhCD;IAA0C,wCAAK;IAG7C,8BAAY,OAAe;QACzB,YAAA,MAAK,YAAC,OAAO,CAAC,SAAC;QACf,KAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;QACnC,KAAI,CAAC,UAAU,GAAG,OAAO,CAAC;;IAC5B,CAAC;IACH,2BAAC;AAAD,CAAC,AARD,CAA0C,KAAK,GAQ9C;AARY,oDAAoB;AAUjC,SAAgB,8BAA8B,CAAC,KAAc;IAC3D,IACE,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,YAAY,IAAI,KAAK;QACrB,OAAQ,KAAkC,CAAC,UAAU,KAAK,QAAQ,EAClE,CAAC;QACD,OAAQ,KAAgC,CAAC,UAAU,CAAC;IACtD,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAgB,yBAAyB,CAAC,KAAc;IACtD,IAAM,OAAO,GAAG,8BAA8B,CAAC,KAAK,CAAC,CAAC;IAEtD,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE,CAAC;QACnC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACvB,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,8 @@
1
+ export declare const evaluatePlugin: {
2
+ command: string;
3
+ handler: ({ projectConfig, datasource, parsed }: any) => Promise<boolean>;
4
+ examples: {
5
+ command: string;
6
+ description: string;
7
+ }[];
8
+ };