occam-entities 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/.swcrc +5 -0
  2. package/README.md +78 -0
  3. package/lib/constants.js +26 -0
  4. package/lib/dependencies.js +114 -0
  5. package/lib/dependency.js +68 -0
  6. package/lib/directory.js +107 -0
  7. package/lib/entries.js +251 -0
  8. package/lib/file.js +155 -0
  9. package/lib/fileNames.js +59 -0
  10. package/lib/files.js +121 -0
  11. package/lib/index.js +79 -0
  12. package/lib/mixins/bnf.js +47 -0
  13. package/lib/mixins/entries.js +103 -0
  14. package/lib/mixins/files.js +41 -0
  15. package/lib/mixins/metaJSON.js +36 -0
  16. package/lib/mixins/pattern.js +47 -0
  17. package/lib/multiplers.js +26 -0
  18. package/lib/project.js +98 -0
  19. package/lib/projects.js +112 -0
  20. package/lib/release.js +148 -0
  21. package/lib/releases.js +112 -0
  22. package/lib/shortenedVersion.js +105 -0
  23. package/lib/types.js +22 -0
  24. package/lib/utilities/content.js +34 -0
  25. package/lib/utilities/filePath.js +63 -0
  26. package/lib/utilities/files.js +85 -0
  27. package/lib/utilities/metaJSON.js +127 -0
  28. package/lib/utilities/name.js +18 -0
  29. package/lib/utilities/query.js +41 -0
  30. package/lib/utilities/version.js +71 -0
  31. package/lib/version.js +160 -0
  32. package/license.txt +48 -0
  33. package/package.json +34 -0
  34. package/src/constants.js +5 -0
  35. package/src/dependencies.js +75 -0
  36. package/src/dependency.js +29 -0
  37. package/src/directory.js +60 -0
  38. package/src/entries.js +217 -0
  39. package/src/file.js +107 -0
  40. package/src/fileNames.js +22 -0
  41. package/src/files.js +78 -0
  42. package/src/index.js +17 -0
  43. package/src/mixins/bnf.js +59 -0
  44. package/src/mixins/entries.js +73 -0
  45. package/src/mixins/files.js +52 -0
  46. package/src/mixins/metaJSON.js +48 -0
  47. package/src/mixins/pattern.js +59 -0
  48. package/src/multiplers.js +5 -0
  49. package/src/project.js +63 -0
  50. package/src/projects.js +66 -0
  51. package/src/release.js +145 -0
  52. package/src/releases.js +66 -0
  53. package/src/shortenedVersion.js +71 -0
  54. package/src/types.js +4 -0
  55. package/src/utilities/content.js +12 -0
  56. package/src/utilities/filePath.js +36 -0
  57. package/src/utilities/files.js +95 -0
  58. package/src/utilities/metaJSON.js +149 -0
  59. package/src/utilities/name.js +13 -0
  60. package/src/utilities/query.js +31 -0
  61. package/src/utilities/version.js +70 -0
  62. package/src/version.js +123 -0
package/lib/entries.js ADDED
@@ -0,0 +1,251 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return _default;
9
+ }
10
+ });
11
+ var _necessary = require("necessary");
12
+ var _file = /*#__PURE__*/ _interop_require_default(require("./file"));
13
+ var _files = /*#__PURE__*/ _interop_require_default(require("./files"));
14
+ var _directory = /*#__PURE__*/ _interop_require_default(require("./directory"));
15
+ var _bnf = /*#__PURE__*/ _interop_require_default(require("./mixins/bnf"));
16
+ var _files1 = /*#__PURE__*/ _interop_require_default(require("./mixins/files"));
17
+ var _pattern = /*#__PURE__*/ _interop_require_default(require("./mixins/pattern"));
18
+ var _metaJSON = /*#__PURE__*/ _interop_require_default(require("./mixins/metaJSON"));
19
+ var _constants = require("./constants");
20
+ var _messages = require("./messages");
21
+ function _class_call_check(instance, Constructor) {
22
+ if (!(instance instanceof Constructor)) {
23
+ throw new TypeError("Cannot call a class as a function");
24
+ }
25
+ }
26
+ function _defineProperties(target, props) {
27
+ for(var i = 0; i < props.length; i++){
28
+ var descriptor = props[i];
29
+ descriptor.enumerable = descriptor.enumerable || false;
30
+ descriptor.configurable = true;
31
+ if ("value" in descriptor) descriptor.writable = true;
32
+ Object.defineProperty(target, descriptor.key, descriptor);
33
+ }
34
+ }
35
+ function _create_class(Constructor, protoProps, staticProps) {
36
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
37
+ if (staticProps) _defineProperties(Constructor, staticProps);
38
+ return Constructor;
39
+ }
40
+ function _interop_require_default(obj) {
41
+ return obj && obj.__esModule ? obj : {
42
+ default: obj
43
+ };
44
+ }
45
+ var first = _necessary.arrayUtilities.first, filter = _necessary.arrayUtilities.filter, topmostDirectoryNameFromPath = _necessary.pathUtilities.topmostDirectoryNameFromPath;
46
+ var Entries = /*#__PURE__*/ function() {
47
+ function Entries(array) {
48
+ _class_call_check(this, Entries);
49
+ this.array = array;
50
+ }
51
+ _create_class(Entries, [
52
+ {
53
+ key: "getTopmostDirectoryName",
54
+ value: function getTopmostDirectoryName() {
55
+ var topmostDirectoryName = null;
56
+ var firstEntry = first(this.array); ///
57
+ if (firstEntry) {
58
+ var firstEntryPath = firstEntry.getPath();
59
+ topmostDirectoryName = topmostDirectoryNameFromPath(firstEntryPath);
60
+ if (topmostDirectoryName === null) {
61
+ topmostDirectoryName = firstEntryPath; ///
62
+ }
63
+ }
64
+ return topmostDirectoryName;
65
+ }
66
+ },
67
+ {
68
+ key: "removeFileByPath",
69
+ value: function removeFileByPath(path) {
70
+ filter(this.array, function(entry) {
71
+ var entryFile = entry.isFile();
72
+ if (entryFile) {
73
+ var file = entry, filePath = file.getPath();
74
+ if (filePath === path) {
75
+ return false;
76
+ }
77
+ }
78
+ return true;
79
+ });
80
+ }
81
+ },
82
+ {
83
+ key: "getFile",
84
+ value: function getFile(filePath) {
85
+ var files = this.getFiles(), file = files.findFile(function(file) {
86
+ var path = file.getPath();
87
+ if (path === filePath) {
88
+ return true;
89
+ }
90
+ }) || null;
91
+ return file;
92
+ }
93
+ },
94
+ {
95
+ key: "getFiles",
96
+ value: function getFiles() {
97
+ var files = _files.default.fromNothing();
98
+ this.mapEntry(function(entry) {
99
+ var entryFile = entry.isFile();
100
+ if (entryFile) {
101
+ var file = entry; ///
102
+ files.addFile(file);
103
+ }
104
+ });
105
+ return files;
106
+ }
107
+ },
108
+ {
109
+ key: "getFilePaths",
110
+ value: function getFilePaths() {
111
+ var filePaths = this.reduceEntry(function(filePaths, entry) {
112
+ var entryFile = entry.isFile();
113
+ if (entryFile) {
114
+ var file = entry, filePath = file.getPath();
115
+ filePaths.push(filePath);
116
+ }
117
+ return filePaths;
118
+ }, []);
119
+ return filePaths;
120
+ }
121
+ },
122
+ {
123
+ key: "getDirectoryPaths",
124
+ value: function getDirectoryPaths() {
125
+ var directoryPaths = this.reduceEntry(function(directoryPaths, entry) {
126
+ var entryDirectory = entry.isDirectory();
127
+ if (entryDirectory) {
128
+ var directory = entry, directoryPath = directory.getPath();
129
+ directoryPaths.push(directoryPath);
130
+ }
131
+ return directoryPaths;
132
+ }, []);
133
+ return directoryPaths;
134
+ }
135
+ },
136
+ {
137
+ key: "matchShortenedVersion",
138
+ value: function matchShortenedVersion(shortenedVersion) {
139
+ var version = this.getVersion(), versionMatchesShortenedVersion = version.matchShortenedVersion(shortenedVersion);
140
+ return versionMatchesShortenedVersion;
141
+ }
142
+ },
143
+ {
144
+ key: "addFile",
145
+ value: function addFile(file) {
146
+ var entry = file; ///
147
+ this.addEntry(entry);
148
+ }
149
+ },
150
+ {
151
+ key: "addEntry",
152
+ value: function addEntry(entry) {
153
+ this.array.push(entry);
154
+ var length = this.array.length;
155
+ if (length > _constants.ENTRIES_MAXIMUM_LENGTH) {
156
+ throw new Error(_messages.ENTRIES_MAXIMUM_LENGTH_EXCEEDED_MESSAGE);
157
+ }
158
+ }
159
+ },
160
+ {
161
+ key: "addDirectory",
162
+ value: function addDirectory(directory) {
163
+ var entry = directory; ///
164
+ this.addEntry(entry);
165
+ }
166
+ },
167
+ {
168
+ key: "forEachFile",
169
+ value: function forEachFile(callback) {
170
+ var files = this.getFiles();
171
+ files.forEachFile(callback);
172
+ }
173
+ },
174
+ {
175
+ key: "mapEntry",
176
+ value: function mapEntry(callback) {
177
+ return this.array.map(callback);
178
+ }
179
+ },
180
+ {
181
+ key: "someEntry",
182
+ value: function someEntry(callback) {
183
+ return this.array.some(callback);
184
+ }
185
+ },
186
+ {
187
+ key: "everyEntry",
188
+ value: function everyEntry(callback) {
189
+ return this.array.every(callback);
190
+ }
191
+ },
192
+ {
193
+ key: "forEachEntry",
194
+ value: function forEachEntry(callback) {
195
+ this.array.forEach(callback);
196
+ }
197
+ },
198
+ {
199
+ key: "reduceEntry",
200
+ value: function reduceEntry(callback, initialValue) {
201
+ return this.array.reduce(callback, initialValue);
202
+ }
203
+ },
204
+ {
205
+ key: "toJSON",
206
+ value: function toJSON() {
207
+ var entriesJSON = this.array.map(function(entry) {
208
+ var entryJSON = entry.toJSON();
209
+ return entryJSON;
210
+ }), json = entriesJSON; ///
211
+ return json;
212
+ }
213
+ }
214
+ ], [
215
+ {
216
+ key: "fromJSON",
217
+ value: function fromJSON(json) {
218
+ var array = [], entries = new Entries(array), entriesJSON = json; ///
219
+ entriesJSON.map(function(entryJSON) {
220
+ var _$json = entryJSON, file = _file.default.fromJSON(_$json), directory = _directory.default.fromJSON(_$json), entry = file || directory; ///
221
+ entries.addEntry(entry);
222
+ });
223
+ return entries;
224
+ }
225
+ },
226
+ {
227
+ key: "fromEntry",
228
+ value: function fromEntry(entry) {
229
+ var array = [
230
+ entry
231
+ ], entries = new Entries(array);
232
+ return entries;
233
+ }
234
+ },
235
+ {
236
+ key: "fromNothing",
237
+ value: function fromNothing() {
238
+ var array = [], entries = new Entries(array);
239
+ return entries;
240
+ }
241
+ }
242
+ ]);
243
+ return Entries;
244
+ }();
245
+ Object.assign(Entries.prototype, _bnf.default);
246
+ Object.assign(Entries.prototype, _files1.default);
247
+ Object.assign(Entries.prototype, _pattern.default);
248
+ Object.assign(Entries.prototype, _metaJSON.default);
249
+ var _default = Entries;
250
+
251
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9lbnRyaWVzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBwYXRoVXRpbGl0aWVzLCBhcnJheVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcblxuaW1wb3J0IEZpbGUgZnJvbSBcIi4vZmlsZVwiO1xuaW1wb3J0IEZpbGVzIGZyb20gXCIuL2ZpbGVzXCI7XG5pbXBvcnQgRGlyZWN0b3J5IGZyb20gXCIuL2RpcmVjdG9yeVwiO1xuaW1wb3J0IGJuZk1peGlucyBmcm9tIFwiLi9taXhpbnMvYm5mXCI7XG5pbXBvcnQgZmlsZXNNaXhpbnMgZnJvbSBcIi4vbWl4aW5zL2ZpbGVzXCI7XG5pbXBvcnQgcGF0dGVybk1peGlucyBmcm9tIFwiLi9taXhpbnMvcGF0dGVyblwiO1xuaW1wb3J0IG1ldGFKU09OTWl4aW5zIGZyb20gXCIuL21peGlucy9tZXRhSlNPTlwiO1xuXG5pbXBvcnQgeyBFTlRSSUVTX01BWElNVU1fTEVOR1RIIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBFTlRSSUVTX01BWElNVU1fTEVOR1RIX0VYQ0VFREVEX01FU1NBR0UgfSBmcm9tIFwiLi9tZXNzYWdlc1wiO1xuXG5jb25zdCB7IGZpcnN0LCBmaWx0ZXIgfSA9IGFycmF5VXRpbGl0aWVzLFxuICAgICAgeyB0b3Btb3N0RGlyZWN0b3J5TmFtZUZyb21QYXRoIH0gPSBwYXRoVXRpbGl0aWVzO1xuXG5jbGFzcyBFbnRyaWVzIHtcbiAgY29uc3RydWN0b3IoYXJyYXkpIHtcbiAgICB0aGlzLmFycmF5ID0gYXJyYXk7XG4gIH1cblxuICBnZXRUb3Btb3N0RGlyZWN0b3J5TmFtZSgpIHtcbiAgICBsZXQgdG9wbW9zdERpcmVjdG9yeU5hbWUgPSBudWxsO1xuICAgIFxuICAgIGNvbnN0IGZpcnN0RW50cnkgPSBmaXJzdCh0aGlzLmFycmF5KTsgLy8vXG5cbiAgICBpZiAoZmlyc3RFbnRyeSkgeyAvLy9cbiAgICAgIGNvbnN0IGZpcnN0RW50cnlQYXRoID0gZmlyc3RFbnRyeS5nZXRQYXRoKCk7XG5cbiAgICAgIHRvcG1vc3REaXJlY3RvcnlOYW1lID0gdG9wbW9zdERpcmVjdG9yeU5hbWVGcm9tUGF0aChmaXJzdEVudHJ5UGF0aCk7XG5cbiAgICAgIGlmICh0b3Btb3N0RGlyZWN0b3J5TmFtZSA9PT0gbnVsbCkge1xuICAgICAgICB0b3Btb3N0RGlyZWN0b3J5TmFtZSA9IGZpcnN0RW50cnlQYXRoOyAgLy8vXG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRvcG1vc3REaXJlY3RvcnlOYW1lO1xuICB9XG5cbiAgcmVtb3ZlRmlsZUJ5UGF0aChwYXRoKSB7XG4gICAgZmlsdGVyKHRoaXMuYXJyYXksIChlbnRyeSkgPT4ge1xuICAgICAgY29uc3QgZW50cnlGaWxlID0gZW50cnkuaXNGaWxlKCk7XG5cbiAgICAgIGlmIChlbnRyeUZpbGUpIHtcbiAgICAgICAgY29uc3QgZmlsZSA9IGVudHJ5LCAvLy9cbiAgICAgICAgICAgICAgZmlsZVBhdGggPSBmaWxlLmdldFBhdGgoKTtcblxuICAgICAgICBpZiAoZmlsZVBhdGggPT09IHBhdGgpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSk7XG4gIH1cblxuICBnZXRGaWxlKGZpbGVQYXRoKSB7XG4gICAgY29uc3QgZmlsZXMgPSB0aGlzLmdldEZpbGVzKCksXG4gICAgICAgICAgZmlsZSA9IGZpbGVzLmZpbmRGaWxlKChmaWxlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBwYXRoID0gZmlsZS5nZXRQYXRoKCk7XG5cbiAgICAgICAgICAgIGlmIChwYXRoID09PSBmaWxlUGF0aCkge1xuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSB8fCBudWxsO1xuXG4gICAgcmV0dXJuIGZpbGU7XG4gIH1cblxuICBnZXRGaWxlcygpIHtcbiAgICBjb25zdCBmaWxlcyA9IEZpbGVzLmZyb21Ob3RoaW5nKCk7XG5cbiAgICB0aGlzLm1hcEVudHJ5KChlbnRyeSkgPT4ge1xuICAgICAgY29uc3QgZW50cnlGaWxlID0gZW50cnkuaXNGaWxlKCk7XG5cbiAgICAgIGlmIChlbnRyeUZpbGUpIHtcbiAgICAgICAgY29uc3QgZmlsZSA9IGVudHJ5OyAvLy9cblxuICAgICAgICBmaWxlcy5hZGRGaWxlKGZpbGUpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGZpbGVzO1xuICB9XG5cbiAgZ2V0RmlsZVBhdGhzKCkge1xuICAgIGNvbnN0IGZpbGVQYXRocyA9IHRoaXMucmVkdWNlRW50cnkoKGZpbGVQYXRocywgZW50cnkpID0+IHtcbiAgICAgIGNvbnN0IGVudHJ5RmlsZSA9IGVudHJ5LmlzRmlsZSgpO1xuXG4gICAgICBpZiAoZW50cnlGaWxlKSB7XG4gICAgICAgIGNvbnN0IGZpbGUgPSBlbnRyeSwgLy8vXG4gICAgICAgICAgICAgIGZpbGVQYXRoID0gZmlsZS5nZXRQYXRoKCk7XG5cbiAgICAgICAgZmlsZVBhdGhzLnB1c2goZmlsZVBhdGgpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmlsZVBhdGhzO1xuICAgIH0sIFtdKTtcblxuICAgIHJldHVybiBmaWxlUGF0aHM7XG4gIH1cblxuICBnZXREaXJlY3RvcnlQYXRocygpIHtcbiAgICBjb25zdCBkaXJlY3RvcnlQYXRocyA9IHRoaXMucmVkdWNlRW50cnkoKGRpcmVjdG9yeVBhdGhzLCBlbnRyeSkgPT4ge1xuICAgICAgY29uc3QgZW50cnlEaXJlY3RvcnkgPSBlbnRyeS5pc0RpcmVjdG9yeSgpO1xuXG4gICAgICBpZiAoZW50cnlEaXJlY3RvcnkpIHtcbiAgICAgICAgY29uc3QgZGlyZWN0b3J5ID0gZW50cnksIC8vL1xuICAgICAgICAgICAgICBkaXJlY3RvcnlQYXRoID0gZGlyZWN0b3J5LmdldFBhdGgoKTtcblxuICAgICAgICBkaXJlY3RvcnlQYXRocy5wdXNoKGRpcmVjdG9yeVBhdGgpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZGlyZWN0b3J5UGF0aHM7XG4gICAgfSwgW10pO1xuXG4gICAgcmV0dXJuIGRpcmVjdG9yeVBhdGhzO1xuICB9XG5cbiAgbWF0Y2hTaG9ydGVuZWRWZXJzaW9uKHNob3J0ZW5lZFZlcnNpb24pIHtcbiAgICBjb25zdCB2ZXJzaW9uID0gdGhpcy5nZXRWZXJzaW9uKCksXG4gICAgICAgICAgdmVyc2lvbk1hdGNoZXNTaG9ydGVuZWRWZXJzaW9uID0gdmVyc2lvbi5tYXRjaFNob3J0ZW5lZFZlcnNpb24oc2hvcnRlbmVkVmVyc2lvbik7XG5cbiAgICByZXR1cm4gdmVyc2lvbk1hdGNoZXNTaG9ydGVuZWRWZXJzaW9uO1xuICB9XG5cbiAgYWRkRmlsZShmaWxlKSB7XG4gICAgY29uc3QgZW50cnkgPSBmaWxlOyAvLy9cblxuICAgIHRoaXMuYWRkRW50cnkoZW50cnkpO1xuICB9XG5cbiAgYWRkRW50cnkoZW50cnkpIHtcbiAgICB0aGlzLmFycmF5LnB1c2goZW50cnkpO1xuXG4gICAgY29uc3QgbGVuZ3RoID0gdGhpcy5hcnJheS5sZW5ndGg7XG5cbiAgICBpZiAobGVuZ3RoID4gRU5UUklFU19NQVhJTVVNX0xFTkdUSCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKEVOVFJJRVNfTUFYSU1VTV9MRU5HVEhfRVhDRUVERURfTUVTU0FHRSlcbiAgICB9XG4gIH1cblxuICBhZGREaXJlY3RvcnkoZGlyZWN0b3J5KSB7XG4gICAgY29uc3QgZW50cnkgPSBkaXJlY3Rvcnk7ICAvLy9cblxuICAgIHRoaXMuYWRkRW50cnkoZW50cnkpO1xuICB9XG5cbiAgZm9yRWFjaEZpbGUoY2FsbGJhY2spIHtcbiAgICBjb25zdCBmaWxlcyA9IHRoaXMuZ2V0RmlsZXMoKTtcblxuICAgIGZpbGVzLmZvckVhY2hGaWxlKGNhbGxiYWNrKTtcbiAgfVxuXG4gIG1hcEVudHJ5KGNhbGxiYWNrKSB7IHJldHVybiB0aGlzLmFycmF5Lm1hcChjYWxsYmFjayk7IH1cblxuICBzb21lRW50cnkoY2FsbGJhY2spIHsgcmV0dXJuIHRoaXMuYXJyYXkuc29tZShjYWxsYmFjayk7IH1cblxuICBldmVyeUVudHJ5KGNhbGxiYWNrKSB7IHJldHVybiB0aGlzLmFycmF5LmV2ZXJ5KGNhbGxiYWNrKTsgfVxuXG4gIGZvckVhY2hFbnRyeShjYWxsYmFjaykgeyB0aGlzLmFycmF5LmZvckVhY2goY2FsbGJhY2spOyB9XG5cbiAgcmVkdWNlRW50cnkoY2FsbGJhY2ssIGluaXRpYWxWYWx1ZSkgeyByZXR1cm4gdGhpcy5hcnJheS5yZWR1Y2UoY2FsbGJhY2ssIGluaXRpYWxWYWx1ZSk7IH1cblxuICB0b0pTT04oKSB7XG4gICAgY29uc3QgZW50cmllc0pTT04gPSB0aGlzLmFycmF5Lm1hcCgoZW50cnkpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGVudHJ5SlNPTiA9IGVudHJ5LnRvSlNPTigpO1xuICBcbiAgICAgICAgICAgIHJldHVybiBlbnRyeUpTT047XG4gICAgICAgICAgfSksXG4gICAgICAgICAganNvbiA9IGVudHJpZXNKU09OOyAvLy9cblxuICAgIHJldHVybiBqc29uO1xuICB9XG5cbiAgc3RhdGljIGZyb21KU09OKGpzb24pIHtcbiAgICBjb25zdCBhcnJheSA9IFtdLFxuICAgICAgICAgIGVudHJpZXMgPSBuZXcgRW50cmllcyhhcnJheSksXG4gICAgICAgICAgZW50cmllc0pTT04gPSBqc29uOyAvLy9cblxuICAgIGVudHJpZXNKU09OLm1hcCgoZW50cnlKU09OKSA9PiB7XG4gICAgICBjb25zdCBqc29uID0gZW50cnlKU09OLCAvLy9cbiAgICAgICAgICAgIGZpbGUgPSBGaWxlLmZyb21KU09OKGpzb24pLFxuICAgICAgICAgICAgZGlyZWN0b3J5ID0gRGlyZWN0b3J5LmZyb21KU09OKGpzb24pLFxuICAgICAgICAgICAgZW50cnkgPSBmaWxlIHx8IGRpcmVjdG9yeTsgIC8vL1xuXG4gICAgICBlbnRyaWVzLmFkZEVudHJ5KGVudHJ5KTtcbiAgICB9KTtcblxuICAgIHJldHVybiBlbnRyaWVzO1xuICB9XG5cbiAgc3RhdGljIGZyb21FbnRyeShlbnRyeSkge1xuICAgIGNvbnN0IGFycmF5ID0gW1xuICAgICAgICAgICAgZW50cnlcbiAgICAgICAgICBdLFxuICAgICAgICAgIGVudHJpZXMgPSBuZXcgRW50cmllcyhhcnJheSk7XG5cbiAgICByZXR1cm4gZW50cmllcztcbiAgfVxuXG4gIHN0YXRpYyBmcm9tTm90aGluZygpIHtcbiAgICBjb25zdCBhcnJheSA9IFtdLFxuICAgICAgICAgIGVudHJpZXMgPSBuZXcgRW50cmllcyhhcnJheSk7XG5cbiAgICByZXR1cm4gZW50cmllcztcbiAgfVxufVxuXG5PYmplY3QuYXNzaWduKEVudHJpZXMucHJvdG90eXBlLCBibmZNaXhpbnMpO1xuT2JqZWN0LmFzc2lnbihFbnRyaWVzLnByb3RvdHlwZSwgZmlsZXNNaXhpbnMpO1xuT2JqZWN0LmFzc2lnbihFbnRyaWVzLnByb3RvdHlwZSwgcGF0dGVybk1peGlucyk7XG5PYmplY3QuYXNzaWduKEVudHJpZXMucHJvdG90eXBlLCBtZXRhSlNPTk1peGlucyk7XG5cbmV4cG9ydCBkZWZhdWx0IEVudHJpZXM7XG4iXSwibmFtZXMiOlsiZmlyc3QiLCJhcnJheVV0aWxpdGllcyIsImZpbHRlciIsInRvcG1vc3REaXJlY3RvcnlOYW1lRnJvbVBhdGgiLCJwYXRoVXRpbGl0aWVzIiwiRW50cmllcyIsImFycmF5IiwiZ2V0VG9wbW9zdERpcmVjdG9yeU5hbWUiLCJ0b3Btb3N0RGlyZWN0b3J5TmFtZSIsImZpcnN0RW50cnkiLCJmaXJzdEVudHJ5UGF0aCIsImdldFBhdGgiLCJyZW1vdmVGaWxlQnlQYXRoIiwicGF0aCIsImVudHJ5IiwiZW50cnlGaWxlIiwiaXNGaWxlIiwiZmlsZSIsImZpbGVQYXRoIiwiZ2V0RmlsZSIsImZpbGVzIiwiZ2V0RmlsZXMiLCJmaW5kRmlsZSIsIkZpbGVzIiwiZnJvbU5vdGhpbmciLCJtYXBFbnRyeSIsImFkZEZpbGUiLCJnZXRGaWxlUGF0aHMiLCJmaWxlUGF0aHMiLCJyZWR1Y2VFbnRyeSIsInB1c2giLCJnZXREaXJlY3RvcnlQYXRocyIsImRpcmVjdG9yeVBhdGhzIiwiZW50cnlEaXJlY3RvcnkiLCJpc0RpcmVjdG9yeSIsImRpcmVjdG9yeSIsImRpcmVjdG9yeVBhdGgiLCJtYXRjaFNob3J0ZW5lZFZlcnNpb24iLCJzaG9ydGVuZWRWZXJzaW9uIiwidmVyc2lvbiIsImdldFZlcnNpb24iLCJ2ZXJzaW9uTWF0Y2hlc1Nob3J0ZW5lZFZlcnNpb24iLCJhZGRFbnRyeSIsImxlbmd0aCIsIkVOVFJJRVNfTUFYSU1VTV9MRU5HVEgiLCJFcnJvciIsIkVOVFJJRVNfTUFYSU1VTV9MRU5HVEhfRVhDRUVERURfTUVTU0FHRSIsImFkZERpcmVjdG9yeSIsImZvckVhY2hGaWxlIiwiY2FsbGJhY2siLCJtYXAiLCJzb21lRW50cnkiLCJzb21lIiwiZXZlcnlFbnRyeSIsImV2ZXJ5IiwiZm9yRWFjaEVudHJ5IiwiZm9yRWFjaCIsImluaXRpYWxWYWx1ZSIsInJlZHVjZSIsInRvSlNPTiIsImVudHJpZXNKU09OIiwiZW50cnlKU09OIiwianNvbiIsImZyb21KU09OIiwiZW50cmllcyIsIkZpbGUiLCJEaXJlY3RvcnkiLCJmcm9tRW50cnkiLCJPYmplY3QiLCJhc3NpZ24iLCJwcm90b3R5cGUiLCJibmZNaXhpbnMiLCJmaWxlc01peGlucyIsInBhdHRlcm5NaXhpbnMiLCJtZXRhSlNPTk1peGlucyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBd05BOzs7ZUFBQTs7O3lCQXROOEM7MkRBRTdCOzREQUNDO2dFQUNJOzBEQUNBOzZEQUNFOzhEQUNFOytEQUNDO3lCQUVZO3dCQUNpQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUV4RCxJQUFRQSxRQUFrQkMseUJBQWMsQ0FBaENELE9BQU9FLFNBQVdELHlCQUFjLENBQXpCQyxRQUNULEFBQUVDLCtCQUFpQ0Msd0JBQWEsQ0FBOUNEO0FBRVIsSUFBQSxBQUFNRSx3QkFpTUgsQUFqTUg7YUFBTUEsUUFDUUMsS0FBSztn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
package/lib/file.js ADDED
@@ -0,0 +1,155 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return File;
9
+ }
10
+ });
11
+ var _types = require("./types");
12
+ var _content = require("./utilities/content");
13
+ function _class_call_check(instance, Constructor) {
14
+ if (!(instance instanceof Constructor)) {
15
+ throw new TypeError("Cannot call a class as a function");
16
+ }
17
+ }
18
+ function _defineProperties(target, props) {
19
+ for(var i = 0; i < props.length; i++){
20
+ var descriptor = props[i];
21
+ descriptor.enumerable = descriptor.enumerable || false;
22
+ descriptor.configurable = true;
23
+ if ("value" in descriptor) descriptor.writable = true;
24
+ Object.defineProperty(target, descriptor.key, descriptor);
25
+ }
26
+ }
27
+ function _create_class(Constructor, protoProps, staticProps) {
28
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
29
+ if (staticProps) _defineProperties(Constructor, staticProps);
30
+ return Constructor;
31
+ }
32
+ function _define_property(obj, key, value) {
33
+ if (key in obj) {
34
+ Object.defineProperty(obj, key, {
35
+ value: value,
36
+ enumerable: true,
37
+ configurable: true,
38
+ writable: true
39
+ });
40
+ } else {
41
+ obj[key] = value;
42
+ }
43
+ return obj;
44
+ }
45
+ var File = /*#__PURE__*/ function() {
46
+ function File(path, content, released) {
47
+ _class_call_check(this, File);
48
+ this.path = path;
49
+ this.content = content;
50
+ this.released = released;
51
+ }
52
+ _create_class(File, [
53
+ {
54
+ key: "getPath",
55
+ value: function getPath() {
56
+ return this.path;
57
+ }
58
+ },
59
+ {
60
+ key: "getContent",
61
+ value: function getContent() {
62
+ return this.content;
63
+ }
64
+ },
65
+ {
66
+ key: "isReleased",
67
+ value: function isReleased() {
68
+ return this.released;
69
+ }
70
+ },
71
+ {
72
+ key: "isFile",
73
+ value: function isFile() {
74
+ var file = true;
75
+ return file;
76
+ }
77
+ },
78
+ {
79
+ key: "isDirectory",
80
+ value: function isDirectory() {
81
+ var directory = false;
82
+ return directory;
83
+ }
84
+ },
85
+ {
86
+ key: "setPath",
87
+ value: function setPath(path) {
88
+ this.path = path;
89
+ }
90
+ },
91
+ {
92
+ key: "setContent",
93
+ value: function setContent(content) {
94
+ this.content = content;
95
+ }
96
+ },
97
+ {
98
+ key: "setReleased",
99
+ value: function setReleased(released) {
100
+ this.released = released;
101
+ }
102
+ },
103
+ {
104
+ key: "toJSON",
105
+ value: function toJSON() {
106
+ var type = File.type, path = this.path, content = this.content, released = this.released, json = {
107
+ type: type,
108
+ path: path,
109
+ content: content,
110
+ released: released
111
+ };
112
+ return json;
113
+ }
114
+ }
115
+ ], [
116
+ {
117
+ key: "fromJSON",
118
+ value: function fromJSON(json) {
119
+ var file = null;
120
+ if (json !== null) {
121
+ var type = json.type;
122
+ if (type === _types.FILE_TYPE) {
123
+ var content = json.content;
124
+ var path = json.path, released = json.released;
125
+ content = (0, _content.convertContentTabsToWhitespace)(content); ///
126
+ file = new File(path, content, released);
127
+ }
128
+ }
129
+ return file;
130
+ }
131
+ },
132
+ {
133
+ key: "fromDocument",
134
+ value: function fromDocument(document) {
135
+ var filePath = document.getFilePath(), released = document.isReleased(), path = filePath; ///
136
+ var content = document.getContent();
137
+ content = (0, _content.convertContentTabsToWhitespace)(content); ///
138
+ var file = new File(path, content, released);
139
+ return file;
140
+ }
141
+ },
142
+ {
143
+ key: "fromPathContentAndReleased",
144
+ value: function fromPathContentAndReleased(path, content, released) {
145
+ content = (0, _content.convertContentTabsToWhitespace)(content); ///
146
+ var file = new File(path, content, released);
147
+ return file;
148
+ }
149
+ }
150
+ ]);
151
+ return File;
152
+ }();
153
+ _define_property(File, "type", _types.FILE_TYPE);
154
+
155
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9maWxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBGSUxFX1RZUEUgfSBmcm9tIFwiLi90eXBlc1wiO1xuaW1wb3J0IHsgY29udmVydENvbnRlbnRUYWJzVG9XaGl0ZXNwYWNlIH0gZnJvbSBcIi4vdXRpbGl0aWVzL2NvbnRlbnRcIlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBGaWxlIHtcbiAgY29uc3RydWN0b3IocGF0aCwgY29udGVudCwgcmVsZWFzZWQpIHtcbiAgICB0aGlzLnBhdGggPSBwYXRoO1xuICAgIHRoaXMuY29udGVudCA9IGNvbnRlbnQ7XG4gICAgdGhpcy5yZWxlYXNlZCA9IHJlbGVhc2VkO1xuICB9XG5cbiAgZ2V0UGF0aCgpIHtcbiAgICByZXR1cm4gdGhpcy5wYXRoO1xuICB9XG5cbiAgZ2V0Q29udGVudCgpIHtcbiAgICByZXR1cm4gdGhpcy5jb250ZW50O1xuICB9XG5cbiAgaXNSZWxlYXNlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5yZWxlYXNlZDtcbiAgfVxuXG4gIGlzRmlsZSgpIHtcbiAgICBjb25zdCBmaWxlID0gdHJ1ZTtcblxuICAgIHJldHVybiBmaWxlO1xuICB9XG5cbiAgaXNEaXJlY3RvcnkoKSB7XG4gICAgY29uc3QgZGlyZWN0b3J5ID0gZmFsc2U7XG5cbiAgICByZXR1cm4gZGlyZWN0b3J5O1xuICB9XG5cbiAgc2V0UGF0aChwYXRoKSB7XG4gICAgdGhpcy5wYXRoID0gcGF0aDtcbiAgfVxuXG4gIHNldENvbnRlbnQoY29udGVudCkge1xuICAgIHRoaXMuY29udGVudCA9IGNvbnRlbnQ7XG4gIH1cblxuICBzZXRSZWxlYXNlZChyZWxlYXNlZCkge1xuICAgIHRoaXMucmVsZWFzZWQgPSByZWxlYXNlZDtcbiAgfVxuXG4gIHRvSlNPTigpIHtcbiAgICBjb25zdCB7IHR5cGUgfSA9IEZpbGUsXG4gICAgICAgICAgcGF0aCA9IHRoaXMucGF0aCxcbiAgICAgICAgICBjb250ZW50ID0gdGhpcy5jb250ZW50LFxuICAgICAgICAgIHJlbGVhc2VkID0gdGhpcy5yZWxlYXNlZCxcbiAgICAgICAgICBqc29uID0ge1xuICAgICAgICAgICAgdHlwZSxcbiAgICAgICAgICAgIHBhdGgsXG4gICAgICAgICAgICBjb250ZW50LFxuICAgICAgICAgICAgcmVsZWFzZWRcbiAgICAgICAgICB9O1xuXG4gICAgcmV0dXJuIGpzb247XG4gIH1cblxuICBzdGF0aWMgdHlwZSA9IEZJTEVfVFlQRTtcblxuICBzdGF0aWMgZnJvbUpTT04oanNvbikge1xuICAgIGxldCBmaWxlID0gbnVsbDtcblxuICAgIGlmIChqc29uICE9PSBudWxsKSB7XG4gICAgICBjb25zdCB7IHR5cGUgfSA9IGpzb247XG5cbiAgICAgIGlmICh0eXBlID09PSBGSUxFX1RZUEUpIHtcbiAgICAgICAgbGV0IHsgY29udGVudCB9ID0ganNvbjtcblxuICAgICAgICBjb25zdCB7IHBhdGgsIHJlbGVhc2VkIH0gPSBqc29uO1xuXG4gICAgICAgIGNvbnRlbnQgPSBjb252ZXJ0Q29udGVudFRhYnNUb1doaXRlc3BhY2UoY29udGVudCk7ICAvLy9cblxuICAgICAgICBmaWxlID0gbmV3IEZpbGUocGF0aCwgY29udGVudCwgcmVsZWFzZWQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBmaWxlO1xuICB9XG5cbiAgc3RhdGljIGZyb21Eb2N1bWVudChkb2N1bWVudCkge1xuICAgIGNvbnN0IGZpbGVQYXRoID0gZG9jdW1lbnQuZ2V0RmlsZVBhdGgoKSxcbiAgICAgICAgICByZWxlYXNlZCA9IGRvY3VtZW50LmlzUmVsZWFzZWQoKSxcbiAgICAgICAgICBwYXRoID0gZmlsZVBhdGg7ICAvLy9cblxuICAgIGxldCBjb250ZW50ID0gZG9jdW1lbnQuZ2V0Q29udGVudCgpO1xuXG4gICAgY29udGVudCA9IGNvbnZlcnRDb250ZW50VGFic1RvV2hpdGVzcGFjZShjb250ZW50KTsgIC8vL1xuXG4gICAgY29uc3QgZmlsZSA9IG5ldyBGaWxlKHBhdGgsIGNvbnRlbnQsIHJlbGVhc2VkKTtcblxuICAgIHJldHVybiBmaWxlO1xuICB9XG5cbiAgc3RhdGljIGZyb21QYXRoQ29udGVudEFuZFJlbGVhc2VkKHBhdGgsIGNvbnRlbnQsIHJlbGVhc2VkKSB7XG4gICAgY29udGVudCA9IGNvbnZlcnRDb250ZW50VGFic1RvV2hpdGVzcGFjZShjb250ZW50KTsgIC8vL1xuXG4gICAgY29uc3QgZmlsZSA9IG5ldyBGaWxlKHBhdGgsIGNvbnRlbnQsIHJlbGVhc2VkKTtcblxuICAgIHJldHVybiBmaWxlO1xuICB9XG59XG4iXSwibmFtZXMiOlsiRmlsZSIsInBhdGgiLCJjb250ZW50IiwicmVsZWFzZWQiLCJnZXRQYXRoIiwiZ2V0Q29udGVudCIsImlzUmVsZWFzZWQiLCJpc0ZpbGUiLCJmaWxlIiwiaXNEaXJlY3RvcnkiLCJkaXJlY3RvcnkiLCJzZXRQYXRoIiwic2V0Q29udGVudCIsInNldFJlbGVhc2VkIiwidG9KU09OIiwidHlwZSIsImpzb24iLCJmcm9tSlNPTiIsIkZJTEVfVFlQRSIsImNvbnZlcnRDb250ZW50VGFic1RvV2hpdGVzcGFjZSIsImZyb21Eb2N1bWVudCIsImRvY3VtZW50IiwiZmlsZVBhdGgiLCJnZXRGaWxlUGF0aCIsImZyb21QYXRoQ29udGVudEFuZFJlbGVhc2VkIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztlQUtxQkE7OztxQkFISzt1QkFDcUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVoQyxJQUFBLEFBQU1BLHFCQUFOO2FBQU1BLEtBQ1BDLElBQUksRUFBRUMsT0FBTyxFQUFFQyxRQUFRO2dDQURoQkg7UUFFakIsSUFBSSxDQUFDQyxJQUFJLEdBQUdBO1FBQ1osSUFBSSxDQUFDQyxPQUFPLEdBQUdBO1FBQ2YsSUFBSSxDQUFDQyxRQUFRLEdBQUdBOztrQkFKQ0g7O1lBT25CSSxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNILElBQUk7WUFDbEI7OztZQUVBSSxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNILE9BQU87WUFDckI7OztZQUVBSSxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNILFFBQVE7WUFDdEI7OztZQUVBSSxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsSUFBTUMsT0FBTztnQkFFYixPQUFPQTtZQUNUOzs7WUFFQUMsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLElBQU1DLFlBQVk7Z0JBRWxCLE9BQU9BO1lBQ1Q7OztZQUVBQyxLQUFBQTttQkFBQUEsU0FBQUEsUUFBUVYsSUFBSTtnQkFDVixJQUFJLENBQUNBLElBQUksR0FBR0E7WUFDZDs7O1lBRUFXLEtBQUFBO21CQUFBQSxTQUFBQSxXQUFXVixPQUFPO2dCQUNoQixJQUFJLENBQUNBLE9BQU8sR0FBR0E7WUFDakI7OztZQUVBVyxLQUFBQTttQkFBQUEsU0FBQUEsWUFBWVYsUUFBUTtnQkFDbEIsSUFBSSxDQUFDQSxRQUFRLEdBQUdBO1lBQ2xCOzs7WUFFQVcsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLElBQU0sQUFBRUMsT0E1Q1NmLEtBNENUZSxNQUNGZCxPQUFPLElBQUksQ0FBQ0EsSUFBSSxFQUNoQkMsVUFBVSxJQUFJLENBQUNBLE9BQU8sRUFDdEJDLFdBQVcsSUFBSSxDQUFDQSxRQUFRLEVBQ3hCYSxPQUFPO29CQUNMRCxNQUFBQTtvQkFDQWQsTUFBQUE7b0JBQ0FDLFNBQUFBO29CQUNBQyxVQUFBQTtnQkFDRjtnQkFFTixPQUFPYTtZQUNUOzs7O1lBSU9DLEtBQUFBO21CQUFQLFNBQU9BLFNBQVNELElBQUk7Z0JBQ2xCLElBQUlSLE9BQU87Z0JBRVgsSUFBSVEsU0FBUyxNQUFNO29CQUNqQixJQUFNLEFBQUVELE9BQVNDLEtBQVREO29CQUVSLElBQUlBLFNBQVNHLGdCQUFTLEVBQUU7d0JBQ3RCLElBQUksQUFBRWhCLFVBQVljLEtBQVpkO3dCQUVOLElBQVFELE9BQW1CZSxLQUFuQmYsTUFBTUUsV0FBYWEsS0FBYmI7d0JBRWRELFVBQVVpQixJQUFBQSx1Q0FBOEIsRUFBQ2pCLFVBQVcsR0FBRzt3QkFFdkRNLE9BQU8sSUF6RU1SLEtBeUVHQyxNQUFNQyxTQUFTQztvQkFDakM7Z0JBQ0Y7Z0JBRUEsT0FBT0s7WUFDVDs7O1lBRU9ZLEtBQUFBO21CQUFQLFNBQU9BLGFBQWFDLFFBQVE7Z0JBQzFCLElBQU1DLFdBQVdELFNBQVNFLFdBQVcsSUFDL0JwQixXQUFXa0IsU0FBU2YsVUFBVSxJQUM5QkwsT0FBT3FCLFVBQVcsR0FBRztnQkFFM0IsSUFBSXBCLFVBQVVtQixTQUFTaEIsVUFBVTtnQkFFakNILFVBQVVpQixJQUFBQSx1Q0FBOEIsRUFBQ2pCLFVBQVcsR0FBRztnQkFFdkQsSUFBTU0sT0FBTyxJQXpGSVIsS0F5RktDLE1BQU1DLFNBQVNDO2dCQUVyQyxPQUFPSztZQUNUOzs7WUFFT2dCLEtBQUFBO21CQUFQLFNBQU9BLDJCQUEyQnZCLElBQUksRUFBRUMsT0FBTyxFQUFFQyxRQUFRO2dCQUN2REQsVUFBVWlCLElBQUFBLHVDQUE4QixFQUFDakIsVUFBVyxHQUFHO2dCQUV2RCxJQUFNTSxPQUFPLElBakdJUixLQWlHS0MsTUFBTUMsU0FBU0M7Z0JBRXJDLE9BQU9LO1lBQ1Q7OztXQXBHbUJSOztBQTBEbkIsaUJBMURtQkEsTUEwRFplLFFBQU9HLGdCQUFTIn0=
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: all[name]
9
+ });
10
+ }
11
+ _export(exports, {
12
+ METASTATEMENT_BNF_FILE_NAME: function() {
13
+ return METASTATEMENT_BNF_FILE_NAME;
14
+ },
15
+ META_JSON_FILE_NAME: function() {
16
+ return META_JSON_FILE_NAME;
17
+ },
18
+ OPERATOR_PATTERN_FILE_NAME: function() {
19
+ return OPERATOR_PATTERN_FILE_NAME;
20
+ },
21
+ README_MD_FILE_NAME: function() {
22
+ return README_MD_FILE_NAME;
23
+ },
24
+ STATEMENT_BNF_FILE_NAME: function() {
25
+ return STATEMENT_BNF_FILE_NAME;
26
+ },
27
+ SYMBOL_PATTERN_FILE_NAME: function() {
28
+ return SYMBOL_PATTERN_FILE_NAME;
29
+ },
30
+ TERM_BNF_FILE_NAME: function() {
31
+ return TERM_BNF_FILE_NAME;
32
+ },
33
+ TYPE_PATTERN_FILE_NAME: function() {
34
+ return TYPE_PATTERN_FILE_NAME;
35
+ },
36
+ default: function() {
37
+ return _default;
38
+ }
39
+ });
40
+ var README_MD_FILE_NAME = "README.md";
41
+ var META_JSON_FILE_NAME = "meta.json";
42
+ var TERM_BNF_FILE_NAME = "term.bnf";
43
+ var STATEMENT_BNF_FILE_NAME = "statement.bnf";
44
+ var METASTATEMENT_BNF_FILE_NAME = "metastatement.bnf";
45
+ var TYPE_PATTERN_FILE_NAME = "type.ptn";
46
+ var SYMBOL_PATTERN_FILE_NAME = "symbol.ptn";
47
+ var OPERATOR_PATTERN_FILE_NAME = "operator.ptn";
48
+ var _default = {
49
+ README_MD_FILE_NAME: README_MD_FILE_NAME,
50
+ META_JSON_FILE_NAME: META_JSON_FILE_NAME,
51
+ TERM_BNF_FILE_NAME: TERM_BNF_FILE_NAME,
52
+ STATEMENT_BNF_FILE_NAME: STATEMENT_BNF_FILE_NAME,
53
+ METASTATEMENT_BNF_FILE_NAME: METASTATEMENT_BNF_FILE_NAME,
54
+ TYPE_PATTERN_FILE_NAME: TYPE_PATTERN_FILE_NAME,
55
+ SYMBOL_PATTERN_FILE_NAME: SYMBOL_PATTERN_FILE_NAME,
56
+ OPERATOR_PATTERN_FILE_NAME: OPERATOR_PATTERN_FILE_NAME
57
+ };
58
+
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9maWxlTmFtZXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydCBjb25zdCBSRUFETUVfTURfRklMRV9OQU1FID0gXCJSRUFETUUubWRcIjtcbmV4cG9ydCBjb25zdCBNRVRBX0pTT05fRklMRV9OQU1FID0gXCJtZXRhLmpzb25cIjtcblxuZXhwb3J0IGNvbnN0IFRFUk1fQk5GX0ZJTEVfTkFNRSA9IFwidGVybS5ibmZcIjtcbmV4cG9ydCBjb25zdCBTVEFURU1FTlRfQk5GX0ZJTEVfTkFNRSA9IFwic3RhdGVtZW50LmJuZlwiO1xuZXhwb3J0IGNvbnN0IE1FVEFTVEFURU1FTlRfQk5GX0ZJTEVfTkFNRSA9IFwibWV0YXN0YXRlbWVudC5ibmZcIjtcbmV4cG9ydCBjb25zdCBUWVBFX1BBVFRFUk5fRklMRV9OQU1FID0gXCJ0eXBlLnB0blwiO1xuZXhwb3J0IGNvbnN0IFNZTUJPTF9QQVRURVJOX0ZJTEVfTkFNRSA9IFwic3ltYm9sLnB0blwiO1xuZXhwb3J0IGNvbnN0IE9QRVJBVE9SX1BBVFRFUk5fRklMRV9OQU1FID0gXCJvcGVyYXRvci5wdG5cIjtcblxuZXhwb3J0IGRlZmF1bHQge1xuICBSRUFETUVfTURfRklMRV9OQU1FLFxuICBNRVRBX0pTT05fRklMRV9OQU1FLFxuICBURVJNX0JORl9GSUxFX05BTUUsXG4gIFNUQVRFTUVOVF9CTkZfRklMRV9OQU1FLFxuICBNRVRBU1RBVEVNRU5UX0JORl9GSUxFX05BTUUsXG4gIFRZUEVfUEFUVEVSTl9GSUxFX05BTUUsXG4gIFNZTUJPTF9QQVRURVJOX0ZJTEVfTkFNRSxcbiAgT1BFUkFUT1JfUEFUVEVSTl9GSUxFX05BTUVcbn07XG4iXSwibmFtZXMiOlsiTUVUQVNUQVRFTUVOVF9CTkZfRklMRV9OQU1FIiwiTUVUQV9KU09OX0ZJTEVfTkFNRSIsIk9QRVJBVE9SX1BBVFRFUk5fRklMRV9OQU1FIiwiUkVBRE1FX01EX0ZJTEVfTkFNRSIsIlNUQVRFTUVOVF9CTkZfRklMRV9OQU1FIiwiU1lNQk9MX1BBVFRFUk5fRklMRV9OQU1FIiwiVEVSTV9CTkZfRklMRV9OQU1FIiwiVFlQRV9QQVRURVJOX0ZJTEVfTkFNRSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0lBT2FBLDJCQUEyQjtlQUEzQkE7O0lBSkFDLG1CQUFtQjtlQUFuQkE7O0lBT0FDLDBCQUEwQjtlQUExQkE7O0lBUkFDLG1CQUFtQjtlQUFuQkE7O0lBSUFDLHVCQUF1QjtlQUF2QkE7O0lBR0FDLHdCQUF3QjtlQUF4QkE7O0lBSkFDLGtCQUFrQjtlQUFsQkE7O0lBR0FDLHNCQUFzQjtlQUF0QkE7O0lBSWIsT0FTRTtlQVRGOzs7QUFWTyxJQUFNSixzQkFBc0I7QUFDNUIsSUFBTUYsc0JBQXNCO0FBRTVCLElBQU1LLHFCQUFxQjtBQUMzQixJQUFNRiwwQkFBMEI7QUFDaEMsSUFBTUosOEJBQThCO0FBQ3BDLElBQU1PLHlCQUF5QjtBQUMvQixJQUFNRiwyQkFBMkI7QUFDakMsSUFBTUgsNkJBQTZCO0lBRTFDLFdBQWU7SUFDYkMscUJBQUFBO0lBQ0FGLHFCQUFBQTtJQUNBSyxvQkFBQUE7SUFDQUYseUJBQUFBO0lBQ0FKLDZCQUFBQTtJQUNBTyx3QkFBQUE7SUFDQUYsMEJBQUFBO0lBQ0FILDRCQUFBQTtBQUNGIn0=
package/lib/files.js ADDED
@@ -0,0 +1,121 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return Files;
9
+ }
10
+ });
11
+ var _file = /*#__PURE__*/ _interop_require_default(require("./file"));
12
+ function _class_call_check(instance, Constructor) {
13
+ if (!(instance instanceof Constructor)) {
14
+ throw new TypeError("Cannot call a class as a function");
15
+ }
16
+ }
17
+ function _defineProperties(target, props) {
18
+ for(var i = 0; i < props.length; i++){
19
+ var descriptor = props[i];
20
+ descriptor.enumerable = descriptor.enumerable || false;
21
+ descriptor.configurable = true;
22
+ if ("value" in descriptor) descriptor.writable = true;
23
+ Object.defineProperty(target, descriptor.key, descriptor);
24
+ }
25
+ }
26
+ function _create_class(Constructor, protoProps, staticProps) {
27
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
28
+ if (staticProps) _defineProperties(Constructor, staticProps);
29
+ return Constructor;
30
+ }
31
+ function _interop_require_default(obj) {
32
+ return obj && obj.__esModule ? obj : {
33
+ default: obj
34
+ };
35
+ }
36
+ var Files = /*#__PURE__*/ function() {
37
+ function Files(array) {
38
+ _class_call_check(this, Files);
39
+ this.array = array;
40
+ }
41
+ _create_class(Files, [
42
+ {
43
+ key: "getFilePaths",
44
+ value: function getFilePaths() {
45
+ var filePaths = this.mapFile(function(file) {
46
+ var filePath = file.getPath();
47
+ return filePath;
48
+ });
49
+ return filePaths;
50
+ }
51
+ },
52
+ {
53
+ key: "addFile",
54
+ value: function addFile(file) {
55
+ this.array.push(file);
56
+ }
57
+ },
58
+ {
59
+ key: "mapFile",
60
+ value: function mapFile(callback) {
61
+ return this.array.map(callback);
62
+ }
63
+ },
64
+ {
65
+ key: "someFile",
66
+ value: function someFile(callback) {
67
+ return this.array.some(callback);
68
+ }
69
+ },
70
+ {
71
+ key: "reduceFile",
72
+ value: function reduceFile(callback, initialValue) {
73
+ return this.array.reduce(callback, initialValue);
74
+ }
75
+ },
76
+ {
77
+ key: "forEachFile",
78
+ value: function forEachFile(callback) {
79
+ this.array.forEach(callback);
80
+ }
81
+ },
82
+ {
83
+ key: "findFile",
84
+ value: function findFile(callback) {
85
+ return this.array.find(callback) || null; ///
86
+ }
87
+ },
88
+ {
89
+ key: "toJSON",
90
+ value: function toJSON() {
91
+ var filesJSON = this.array.map(function(file) {
92
+ var fileJSON = file !== null ? file.toJSON() : null;
93
+ return fileJSON;
94
+ }), json = filesJSON; ///
95
+ return json;
96
+ }
97
+ }
98
+ ], [
99
+ {
100
+ key: "fromJSON",
101
+ value: function fromJSON(json) {
102
+ var filesJSON = json, array = [], files = new Files(array);
103
+ filesJSON.forEach(function(fileJSON) {
104
+ var _$json = fileJSON, file = _file.default.fromJSON(_$json);
105
+ files.addFile(file);
106
+ });
107
+ return files;
108
+ }
109
+ },
110
+ {
111
+ key: "fromNothing",
112
+ value: function fromNothing() {
113
+ var array = [], files = new Files(array);
114
+ return files;
115
+ }
116
+ }
117
+ ]);
118
+ return Files;
119
+ }();
120
+
121
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9maWxlcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IEZpbGUgZnJvbSBcIi4vZmlsZVwiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBGaWxlcyB7XG4gIGNvbnN0cnVjdG9yKGFycmF5KSB7XG4gICAgdGhpcy5hcnJheSA9IGFycmF5O1xuICB9XG5cbiAgZ2V0RmlsZVBhdGhzKCkge1xuICAgIGNvbnN0IGZpbGVQYXRocyA9IHRoaXMubWFwRmlsZSgoZmlsZSkgPT4ge1xuICAgICAgY29uc3QgZmlsZVBhdGggPSBmaWxlLmdldFBhdGgoKTtcblxuICAgICAgcmV0dXJuIGZpbGVQYXRoO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIGZpbGVQYXRocztcbiAgfVxuXG4gIGFkZEZpbGUoZmlsZSkge1xuICAgIHRoaXMuYXJyYXkucHVzaChmaWxlKTtcbiAgfVxuXG4gIG1hcEZpbGUoY2FsbGJhY2spIHtcbiAgICByZXR1cm4gdGhpcy5hcnJheS5tYXAoY2FsbGJhY2spO1xuICB9XG5cbiAgc29tZUZpbGUoY2FsbGJhY2spIHtcbiAgICByZXR1cm4gdGhpcy5hcnJheS5zb21lKGNhbGxiYWNrKTtcbiAgfVxuXG4gIHJlZHVjZUZpbGUoY2FsbGJhY2ssIGluaXRpYWxWYWx1ZSkge1xuICAgIHJldHVybiB0aGlzLmFycmF5LnJlZHVjZShjYWxsYmFjaywgaW5pdGlhbFZhbHVlKTtcbiAgfVxuXG4gIGZvckVhY2hGaWxlKGNhbGxiYWNrKSB7XG4gICAgdGhpcy5hcnJheS5mb3JFYWNoKGNhbGxiYWNrKTtcbiAgfVxuXG4gIGZpbmRGaWxlKGNhbGxiYWNrKSB7XG4gICAgcmV0dXJuIHRoaXMuYXJyYXkuZmluZChjYWxsYmFjaykgfHwgbnVsbDsgLy8vXG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgY29uc3QgZmlsZXNKU09OID0gdGhpcy5hcnJheS5tYXAoKGZpbGUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGZpbGVKU09OID0gKGZpbGUgIT09IG51bGwpID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZS50b0pTT04oKSA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbDtcbiAgXG4gICAgICAgICAgICByZXR1cm4gZmlsZUpTT047XG4gICAgICAgICAgfSksXG4gICAgICAgICAganNvbiA9IGZpbGVzSlNPTjsgLy8vXG5cbiAgICByZXR1cm4ganNvbjtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uKSB7XG4gICAgY29uc3QgZmlsZXNKU09OID0ganNvbiwgLy8vXG4gICAgICAgICAgYXJyYXkgPSBbXSxcbiAgICAgICAgICBmaWxlcyA9IG5ldyBGaWxlcyhhcnJheSk7XG4gICAgXG4gICAgZmlsZXNKU09OLmZvckVhY2goKGZpbGVKU09OKSA9PiB7XG4gICAgICBjb25zdCBqc29uID0gZmlsZUpTT04sICAvLy9cbiAgICAgICAgICAgIGZpbGUgPSBGaWxlLmZyb21KU09OKGpzb24pO1xuXG4gICAgICBmaWxlcy5hZGRGaWxlKGZpbGUpO1xuICAgIH0pO1xuICAgIFxuICAgIHJldHVybiBmaWxlcztcbiAgfVxuXG4gIHN0YXRpYyBmcm9tTm90aGluZygpIHtcbiAgICBjb25zdCBhcnJheSA9IFtdLFxuICAgICAgICAgIGZpbGVzID0gbmV3IEZpbGVzKGFycmF5KTtcblxuICAgIHJldHVybiBmaWxlcztcbiAgfVxufVxuIl0sIm5hbWVzIjpbIkZpbGVzIiwiYXJyYXkiLCJnZXRGaWxlUGF0aHMiLCJmaWxlUGF0aHMiLCJtYXBGaWxlIiwiZmlsZSIsImZpbGVQYXRoIiwiZ2V0UGF0aCIsImFkZEZpbGUiLCJwdXNoIiwiY2FsbGJhY2siLCJtYXAiLCJzb21lRmlsZSIsInNvbWUiLCJyZWR1Y2VGaWxlIiwiaW5pdGlhbFZhbHVlIiwicmVkdWNlIiwiZm9yRWFjaEZpbGUiLCJmb3JFYWNoIiwiZmluZEZpbGUiLCJmaW5kIiwidG9KU09OIiwiZmlsZXNKU09OIiwiZmlsZUpTT04iLCJqc29uIiwiZnJvbUpTT04iLCJmaWxlcyIsIkZpbGUiLCJmcm9tTm90aGluZyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7ZUFJcUJBOzs7MkRBRko7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFRixJQUFBLEFBQU1BLHNCQUFOO2FBQU1BLE1BQ1BDLEtBQUs7Z0NBREVEO1FBRWpCLElBQUksQ0FBQ0MsS0FBSyxHQUFHQTs7a0JBRklEOztZQUtuQkUsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLElBQU1DLFlBQVksSUFBSSxDQUFDQyxPQUFPLENBQUMsU0FBQ0M7b0JBQzlCLElBQU1DLFdBQVdELEtBQUtFLE9BQU87b0JBRTdCLE9BQU9EO2dCQUNUO2dCQUVBLE9BQU9IO1lBQ1Q7OztZQUVBSyxLQUFBQTttQkFBQUEsU0FBQUEsUUFBUUgsSUFBSTtnQkFDVixJQUFJLENBQUNKLEtBQUssQ0FBQ1EsSUFBSSxDQUFDSjtZQUNsQjs7O1lBRUFELEtBQUFBO21CQUFBQSxTQUFBQSxRQUFRTSxRQUFRO2dCQUNkLE9BQU8sSUFBSSxDQUFDVCxLQUFLLENBQUNVLEdBQUcsQ0FBQ0Q7WUFDeEI7OztZQUVBRSxLQUFBQTttQkFBQUEsU0FBQUEsU0FBU0YsUUFBUTtnQkFDZixPQUFPLElBQUksQ0FBQ1QsS0FBSyxDQUFDWSxJQUFJLENBQUNIO1lBQ3pCOzs7WUFFQUksS0FBQUE7bUJBQUFBLFNBQUFBLFdBQVdKLFFBQVEsRUFBRUssWUFBWTtnQkFDL0IsT0FBTyxJQUFJLENBQUNkLEtBQUssQ0FBQ2UsTUFBTSxDQUFDTixVQUFVSztZQUNyQzs7O1lBRUFFLEtBQUFBO21CQUFBQSxTQUFBQSxZQUFZUCxRQUFRO2dCQUNsQixJQUFJLENBQUNULEtBQUssQ0FBQ2lCLE9BQU8sQ0FBQ1I7WUFDckI7OztZQUVBUyxLQUFBQTttQkFBQUEsU0FBQUEsU0FBU1QsUUFBUTtnQkFDZixPQUFPLElBQUksQ0FBQ1QsS0FBSyxDQUFDbUIsSUFBSSxDQUFDVixhQUFhLE1BQU0sR0FBRztZQUMvQzs7O1lBRUFXLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxJQUFNQyxZQUFZLElBQUksQ0FBQ3JCLEtBQUssQ0FBQ1UsR0FBRyxDQUFDLFNBQUNOO29CQUMxQixJQUFNa0IsV0FBVyxBQUFDbEIsU0FBUyxPQUNQQSxLQUFLZ0IsTUFBTSxLQUNUO29CQUV0QixPQUFPRTtnQkFDVCxJQUNBQyxPQUFPRixXQUFXLEdBQUc7Z0JBRTNCLE9BQU9FO1lBQ1Q7Ozs7WUFFT0MsS0FBQUE7bUJBQVAsU0FBT0EsU0FBU0QsSUFBSTtnQkFDbEIsSUFBTUYsWUFBWUUsTUFDWnZCLFFBQVEsRUFBRSxFQUNWeUIsUUFBUSxJQXZERzFCLE1BdURPQztnQkFFeEJxQixVQUFVSixPQUFPLENBQUMsU0FBQ0s7b0JBQ2pCLElBQU1DLFNBQU9ELFVBQ1BsQixPQUFPc0IsYUFBSSxDQUFDRixRQUFRLENBQUNEO29CQUUzQkUsTUFBTWxCLE9BQU8sQ0FBQ0g7Z0JBQ2hCO2dCQUVBLE9BQU9xQjtZQUNUOzs7WUFFT0UsS0FBQUE7bUJBQVAsU0FBT0E7Z0JBQ0wsSUFBTTNCLFFBQVEsRUFBRSxFQUNWeUIsUUFBUSxJQXJFRzFCLE1BcUVPQztnQkFFeEIsT0FBT3lCO1lBQ1Q7OztXQXhFbUIxQiJ9