occam-model 1.0.489 → 1.0.490

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 (3) hide show
  1. package/lib/file.js +21 -7
  2. package/package.json +1 -1
  3. package/src/file.js +28 -6
package/lib/file.js CHANGED
@@ -122,7 +122,11 @@ var File = /*#__PURE__*/ function() {
122
122
  ], [
123
123
  {
124
124
  key: "fromJSON",
125
- value: function fromJSON(json) {
125
+ value: function fromJSON(Class, json) {
126
+ if (json === undefined) {
127
+ json = Class; ///
128
+ Class = File; ///
129
+ }
126
130
  var file = null;
127
131
  if (json !== null) {
128
132
  var type = json.type;
@@ -130,7 +134,7 @@ var File = /*#__PURE__*/ function() {
130
134
  var content = json.content;
131
135
  var path = json.path, released = json.released;
132
136
  content = (0, _content.convertContentTabsToWhitespace)(content); ///
133
- file = new File(path, content, released);
137
+ file = new Class(path, content, released);
134
138
  }
135
139
  }
136
140
  return file;
@@ -138,19 +142,29 @@ var File = /*#__PURE__*/ function() {
138
142
  },
139
143
  {
140
144
  key: "fromDocument",
141
- value: function fromDocument(document) {
145
+ value: function fromDocument(Class, document) {
146
+ if (document === undefined) {
147
+ document = Class; ///
148
+ Class = File; ///
149
+ }
142
150
  var filePath = document.getFilePath(), released = document.isReleased(), path = filePath; ///
143
151
  var content = document.getContent();
144
152
  content = (0, _content.convertContentTabsToWhitespace)(content); ///
145
- var file = new File(path, content, released);
153
+ var file = new Class(path, content, released);
146
154
  return file;
147
155
  }
148
156
  },
149
157
  {
150
158
  key: "fromPathContentAndReleased",
151
- value: function fromPathContentAndReleased(path, content, released) {
159
+ value: function fromPathContentAndReleased(Class, path, content, released) {
160
+ if (released === undefined) {
161
+ released = content; ///
162
+ content = path; ///
163
+ path = Class; ///
164
+ Class = File; ///
165
+ }
152
166
  content = (0, _content.convertContentTabsToWhitespace)(content); ///
153
- var file = new File(path, content, released);
167
+ var file = new Class(path, content, released);
154
168
  return file;
155
169
  }
156
170
  }
@@ -159,4 +173,4 @@ var File = /*#__PURE__*/ function() {
159
173
  }();
160
174
  _define_property(File, "type", _types.FILE_TYPE);
161
175
 
162
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9maWxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBGSUxFX1RZUEUgfSBmcm9tIFwiLi90eXBlc1wiO1xuaW1wb3J0IHsgY29udmVydENvbnRlbnRUYWJzVG9XaGl0ZXNwYWNlIH0gZnJvbSBcIi4vdXRpbGl0aWVzL2NvbnRlbnRcIlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBGaWxlIHtcbiAgY29uc3RydWN0b3IocGF0aCwgY29udGVudCwgcmVsZWFzZWQpIHtcbiAgICB0aGlzLnBhdGggPSBwYXRoO1xuICAgIHRoaXMuY29udGVudCA9IGNvbnRlbnQ7XG4gICAgdGhpcy5yZWxlYXNlZCA9IHJlbGVhc2VkO1xuICB9XG5cbiAgZ2V0UGF0aCgpIHtcbiAgICByZXR1cm4gdGhpcy5wYXRoO1xuICB9XG5cbiAgZ2V0Q29udGVudCgpIHtcbiAgICByZXR1cm4gdGhpcy5jb250ZW50O1xuICB9XG5cbiAgaXNSZWxlYXNlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5yZWxlYXNlZDtcbiAgfVxuXG4gIGlzRmlsZSgpIHtcbiAgICBjb25zdCBmaWxlID0gdHJ1ZTtcblxuICAgIHJldHVybiBmaWxlO1xuICB9XG5cbiAgaXNEaXJlY3RvcnkoKSB7XG4gICAgY29uc3QgZGlyZWN0b3J5ID0gZmFsc2U7XG5cbiAgICByZXR1cm4gZGlyZWN0b3J5O1xuICB9XG5cbiAgc2V0UGF0aChwYXRoKSB7XG4gICAgdGhpcy5wYXRoID0gcGF0aDtcbiAgfVxuXG4gIHNldENvbnRlbnQoY29udGVudCkge1xuICAgIHRoaXMuY29udGVudCA9IGNvbnRlbnQ7XG4gIH1cblxuICBzZXRSZWxlYXNlZChyZWxlYXNlZCkge1xuICAgIHRoaXMucmVsZWFzZWQgPSByZWxlYXNlZDtcbiAgfVxuXG4gIG1hdGNoRmlsZVBhdGgoZmlsZVBhdGgpIHtcbiAgICBjb25zdCBmaWxlUGF0aE1hdGNoZXMgPSAodGhpcy5wYXRoID09PSBmaWxlUGF0aCk7XG5cbiAgICByZXR1cm4gZmlsZVBhdGhNYXRjaGVzO1xuICB9XG5cbiAgdG9KU09OKCkge1xuICAgIGNvbnN0IHsgdHlwZSB9ID0gRmlsZSxcbiAgICAgICAgICBwYXRoID0gdGhpcy5wYXRoLFxuICAgICAgICAgIGNvbnRlbnQgPSB0aGlzLmNvbnRlbnQsXG4gICAgICAgICAgcmVsZWFzZWQgPSB0aGlzLnJlbGVhc2VkLFxuICAgICAgICAgIGpzb24gPSB7XG4gICAgICAgICAgICB0eXBlLFxuICAgICAgICAgICAgcGF0aCxcbiAgICAgICAgICAgIGNvbnRlbnQsXG4gICAgICAgICAgICByZWxlYXNlZFxuICAgICAgICAgIH07XG5cbiAgICByZXR1cm4ganNvbjtcbiAgfVxuXG4gIHN0YXRpYyB0eXBlID0gRklMRV9UWVBFO1xuXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uKSB7XG4gICAgbGV0IGZpbGUgPSBudWxsO1xuXG4gICAgaWYgKGpzb24gIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHsgdHlwZSB9ID0ganNvbjtcblxuICAgICAgaWYgKHR5cGUgPT09IEZJTEVfVFlQRSkge1xuICAgICAgICBsZXQgeyBjb250ZW50IH0gPSBqc29uO1xuXG4gICAgICAgIGNvbnN0IHsgcGF0aCwgcmVsZWFzZWQgfSA9IGpzb247XG5cbiAgICAgICAgY29udGVudCA9IGNvbnZlcnRDb250ZW50VGFic1RvV2hpdGVzcGFjZShjb250ZW50KTsgIC8vL1xuXG4gICAgICAgIGZpbGUgPSBuZXcgRmlsZShwYXRoLCBjb250ZW50LCByZWxlYXNlZCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGZpbGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbURvY3VtZW50KGRvY3VtZW50KSB7XG4gICAgY29uc3QgZmlsZVBhdGggPSBkb2N1bWVudC5nZXRGaWxlUGF0aCgpLFxuICAgICAgICAgIHJlbGVhc2VkID0gZG9jdW1lbnQuaXNSZWxlYXNlZCgpLFxuICAgICAgICAgIHBhdGggPSBmaWxlUGF0aDsgIC8vL1xuXG4gICAgbGV0IGNvbnRlbnQgPSBkb2N1bWVudC5nZXRDb250ZW50KCk7XG5cbiAgICBjb250ZW50ID0gY29udmVydENvbnRlbnRUYWJzVG9XaGl0ZXNwYWNlKGNvbnRlbnQpOyAgLy8vXG5cbiAgICBjb25zdCBmaWxlID0gbmV3IEZpbGUocGF0aCwgY29udGVudCwgcmVsZWFzZWQpO1xuXG4gICAgcmV0dXJuIGZpbGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbVBhdGhDb250ZW50QW5kUmVsZWFzZWQocGF0aCwgY29udGVudCwgcmVsZWFzZWQpIHtcbiAgICBjb250ZW50ID0gY29udmVydENvbnRlbnRUYWJzVG9XaGl0ZXNwYWNlKGNvbnRlbnQpOyAgLy8vXG5cbiAgICBjb25zdCBmaWxlID0gbmV3IEZpbGUocGF0aCwgY29udGVudCwgcmVsZWFzZWQpO1xuXG4gICAgcmV0dXJuIGZpbGU7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJGaWxlIiwicGF0aCIsImNvbnRlbnQiLCJyZWxlYXNlZCIsImdldFBhdGgiLCJnZXRDb250ZW50IiwiaXNSZWxlYXNlZCIsImlzRmlsZSIsImZpbGUiLCJpc0RpcmVjdG9yeSIsImRpcmVjdG9yeSIsInNldFBhdGgiLCJzZXRDb250ZW50Iiwic2V0UmVsZWFzZWQiLCJtYXRjaEZpbGVQYXRoIiwiZmlsZVBhdGgiLCJmaWxlUGF0aE1hdGNoZXMiLCJ0b0pTT04iLCJ0eXBlIiwianNvbiIsImZyb21KU09OIiwiRklMRV9UWVBFIiwiY29udmVydENvbnRlbnRUYWJzVG9XaGl0ZXNwYWNlIiwiZnJvbURvY3VtZW50IiwiZG9jdW1lbnQiLCJnZXRGaWxlUGF0aCIsImZyb21QYXRoQ29udGVudEFuZFJlbGVhc2VkIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztlQUtxQkE7OztxQkFISzt1QkFDcUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVoQyxJQUFBLEFBQU1BLHFCQUFOO2FBQU1BLEtBQ1BDLElBQUksRUFBRUMsT0FBTyxFQUFFQyxRQUFRO2dDQURo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
176
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9maWxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBGSUxFX1RZUEUgfSBmcm9tIFwiLi90eXBlc1wiO1xuaW1wb3J0IHsgY29udmVydENvbnRlbnRUYWJzVG9XaGl0ZXNwYWNlIH0gZnJvbSBcIi4vdXRpbGl0aWVzL2NvbnRlbnRcIlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBGaWxlIHtcbiAgY29uc3RydWN0b3IocGF0aCwgY29udGVudCwgcmVsZWFzZWQpIHtcbiAgICB0aGlzLnBhdGggPSBwYXRoO1xuICAgIHRoaXMuY29udGVudCA9IGNvbnRlbnQ7XG4gICAgdGhpcy5yZWxlYXNlZCA9IHJlbGVhc2VkO1xuICB9XG5cbiAgZ2V0UGF0aCgpIHtcbiAgICByZXR1cm4gdGhpcy5wYXRoO1xuICB9XG5cbiAgZ2V0Q29udGVudCgpIHtcbiAgICByZXR1cm4gdGhpcy5jb250ZW50O1xuICB9XG5cbiAgaXNSZWxlYXNlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5yZWxlYXNlZDtcbiAgfVxuXG4gIGlzRmlsZSgpIHtcbiAgICBjb25zdCBmaWxlID0gdHJ1ZTtcblxuICAgIHJldHVybiBmaWxlO1xuICB9XG5cbiAgaXNEaXJlY3RvcnkoKSB7XG4gICAgY29uc3QgZGlyZWN0b3J5ID0gZmFsc2U7XG5cbiAgICByZXR1cm4gZGlyZWN0b3J5O1xuICB9XG5cbiAgc2V0UGF0aChwYXRoKSB7XG4gICAgdGhpcy5wYXRoID0gcGF0aDtcbiAgfVxuXG4gIHNldENvbnRlbnQoY29udGVudCkge1xuICAgIHRoaXMuY29udGVudCA9IGNvbnRlbnQ7XG4gIH1cblxuICBzZXRSZWxlYXNlZChyZWxlYXNlZCkge1xuICAgIHRoaXMucmVsZWFzZWQgPSByZWxlYXNlZDtcbiAgfVxuXG4gIG1hdGNoRmlsZVBhdGgoZmlsZVBhdGgpIHtcbiAgICBjb25zdCBmaWxlUGF0aE1hdGNoZXMgPSAodGhpcy5wYXRoID09PSBmaWxlUGF0aCk7XG5cbiAgICByZXR1cm4gZmlsZVBhdGhNYXRjaGVzO1xuICB9XG5cbiAgdG9KU09OKCkge1xuICAgIGNvbnN0IHsgdHlwZSB9ID0gRmlsZSxcbiAgICAgICAgICBwYXRoID0gdGhpcy5wYXRoLFxuICAgICAgICAgIGNvbnRlbnQgPSB0aGlzLmNvbnRlbnQsXG4gICAgICAgICAgcmVsZWFzZWQgPSB0aGlzLnJlbGVhc2VkLFxuICAgICAgICAgIGpzb24gPSB7XG4gICAgICAgICAgICB0eXBlLFxuICAgICAgICAgICAgcGF0aCxcbiAgICAgICAgICAgIGNvbnRlbnQsXG4gICAgICAgICAgICByZWxlYXNlZFxuICAgICAgICAgIH07XG5cbiAgICByZXR1cm4ganNvbjtcbiAgfVxuXG4gIHN0YXRpYyB0eXBlID0gRklMRV9UWVBFO1xuXG4gIHN0YXRpYyBmcm9tSlNPTihDbGFzcywganNvbikge1xuICAgIGlmIChqc29uID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGpzb24gPSBDbGFzczsgLy8vXG5cbiAgICAgIENsYXNzID0gRmlsZTsgLy8vXG4gICAgfVxuXG4gICAgbGV0IGZpbGUgPSBudWxsO1xuXG4gICAgaWYgKGpzb24gIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHsgdHlwZSB9ID0ganNvbjtcblxuICAgICAgaWYgKHR5cGUgPT09IEZJTEVfVFlQRSkge1xuICAgICAgICBsZXQgeyBjb250ZW50IH0gPSBqc29uO1xuXG4gICAgICAgIGNvbnN0IHsgcGF0aCwgcmVsZWFzZWQgfSA9IGpzb247XG5cbiAgICAgICAgY29udGVudCA9IGNvbnZlcnRDb250ZW50VGFic1RvV2hpdGVzcGFjZShjb250ZW50KTsgIC8vL1xuXG4gICAgICAgIGZpbGUgPSBuZXcgQ2xhc3MocGF0aCwgY29udGVudCwgcmVsZWFzZWQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBmaWxlO1xuICB9XG5cbiAgc3RhdGljIGZyb21Eb2N1bWVudChDbGFzcywgZG9jdW1lbnQpIHtcbiAgICBpZiAoZG9jdW1lbnQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgZG9jdW1lbnQgPSBDbGFzczsgLy8vXG5cbiAgICAgIENsYXNzID0gRmlsZTsgLy8vXG4gICAgfVxuXG4gICAgY29uc3QgZmlsZVBhdGggPSBkb2N1bWVudC5nZXRGaWxlUGF0aCgpLFxuICAgICAgICAgIHJlbGVhc2VkID0gZG9jdW1lbnQuaXNSZWxlYXNlZCgpLFxuICAgICAgICAgIHBhdGggPSBmaWxlUGF0aDsgIC8vL1xuXG4gICAgbGV0IGNvbnRlbnQgPSBkb2N1bWVudC5nZXRDb250ZW50KCk7XG5cbiAgICBjb250ZW50ID0gY29udmVydENvbnRlbnRUYWJzVG9XaGl0ZXNwYWNlKGNvbnRlbnQpOyAgLy8vXG5cbiAgICBjb25zdCBmaWxlID0gbmV3IENsYXNzKHBhdGgsIGNvbnRlbnQsIHJlbGVhc2VkKTtcblxuICAgIHJldHVybiBmaWxlO1xuICB9XG5cbiAgc3RhdGljIGZyb21QYXRoQ29udGVudEFuZFJlbGVhc2VkKENsYXNzLCBwYXRoLCBjb250ZW50LCByZWxlYXNlZCkge1xuICAgIGlmIChyZWxlYXNlZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZWxlYXNlZCA9IGNvbnRlbnQ7IC8vL1xuXG4gICAgICBjb250ZW50ID0gcGF0aDsgLy8vXG5cbiAgICAgIHBhdGggPSBDbGFzczsgLy8vXG5cbiAgICAgIENsYXNzID0gRmlsZTsgLy8vXG4gICAgfVxuXG4gICAgY29udGVudCA9IGNvbnZlcnRDb250ZW50VGFic1RvV2hpdGVzcGFjZShjb250ZW50KTsgIC8vL1xuXG4gICAgY29uc3QgZmlsZSA9IG5ldyBDbGFzcyhwYXRoLCBjb250ZW50LCByZWxlYXNlZCk7XG5cbiAgICByZXR1cm4gZmlsZTtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIkZpbGUiLCJwYXRoIiwiY29udGVudCIsInJlbGVhc2VkIiwiZ2V0UGF0aCIsImdldENvbnRlbnQiLCJpc1JlbGVhc2VkIiwiaXNGaWxlIiwiZmlsZSIsImlzRGlyZWN0b3J5IiwiZGlyZWN0b3J5Iiwic2V0UGF0aCIsInNldENvbnRlbnQiLCJzZXRSZWxlYXNlZCIsIm1hdGNoRmlsZVBhdGgiLCJmaWxlUGF0aCIsImZpbGVQYXRoTWF0Y2hlcyIsInRvSlNPTiIsInR5cGUiLCJqc29uIiwiZnJvbUpTT04iLCJDbGFzcyIsInVuZGVmaW5lZCIsIkZJTEVfVFlQRSIsImNvbnZlcnRDb250ZW50VGFic1RvV2hpdGVzcGFjZSIsImZyb21Eb2N1bWVudCIsImRvY3VtZW50IiwiZ2V0RmlsZVBhdGgiLCJmcm9tUGF0aENvbnRlbnRBbmRSZWxlYXNlZCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7ZUFLcUJBOzs7cUJBSEs7dUJBQ3FCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFaEMsSUFBQSxBQUFNQSxxQkFBTjthQUFNQSxLQUNQQyxJQUFJLEVBQUVDLE9BQU8sRUFBRUMsUUFBUTtnQ0FEaEJIO1FBRWpCLElBQUksQ0FBQ0MsSUFBSSxHQUFHQTtRQUNaLElBQUksQ0FBQ0MsT0FBTyxHQUFHQTtRQUNmLElBQUksQ0FBQ0MsUUFBUSxHQUFHQTs7a0JBSkNIOztZQU9uQkksS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDSCxJQUFJO1lBQ2xCOzs7WUFFQUksS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDSCxPQUFPO1lBQ3JCOzs7WUFFQUksS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDSCxRQUFRO1lBQ3RCOzs7WUFFQUksS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLElBQU1DLE9BQU87Z0JBRWIsT0FBT0E7WUFDVDs7O1lBRUFDLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxJQUFNQyxZQUFZO2dCQUVsQixPQUFPQTtZQUNUOzs7WUFFQUMsS0FBQUE7bUJBQUFBLFNBQUFBLFFBQVFWLElBQUk7Z0JBQ1YsSUFBSSxDQUFDQSxJQUFJLEdBQUdBO1lBQ2Q7OztZQUVBVyxLQUFBQTttQkFBQUEsU0FBQUEsV0FBV1YsT0FBTztnQkFDaEIsSUFBSSxDQUFDQSxPQUFPLEdBQUdBO1lBQ2pCOzs7WUFFQVcsS0FBQUE7bUJBQUFBLFNBQUFBLFlBQVlWLFFBQVE7Z0JBQ2xCLElBQUksQ0FBQ0EsUUFBUSxHQUFHQTtZQUNsQjs7O1lBRUFXLEtBQUFBO21CQUFBQSxTQUFBQSxjQUFjQyxRQUFRO2dCQUNwQixJQUFNQyxrQkFBbUIsSUFBSSxDQUFDZixJQUFJLEtBQUtjO2dCQUV2QyxPQUFPQztZQUNUOzs7WUFFQUMsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLElBQU0sQUFBRUMsT0FsRFNsQixLQWtEVGtCLE1BQ0ZqQixPQUFPLElBQUksQ0FBQ0EsSUFBSSxFQUNoQkMsVUFBVSxJQUFJLENBQUNBLE9BQU8sRUFDdEJDLFdBQVcsSUFBSSxDQUFDQSxRQUFRLEVBQ3hCZ0IsT0FBTztvQkFDTEQsTUFBQUE7b0JBQ0FqQixNQUFBQTtvQkFDQUMsU0FBQUE7b0JBQ0FDLFVBQUFBO2dCQUNGO2dCQUVOLE9BQU9nQjtZQUNUOzs7O1lBSU9DLEtBQUFBO21CQUFQLFNBQU9BLFNBQVNDLEtBQUssRUFBRUYsSUFBSTtnQkFDekIsSUFBSUEsU0FBU0csV0FBVztvQkFDdEJILE9BQU9FLE9BQU8sR0FBRztvQkFFakJBLFFBdEVlckIsTUFzRUQsR0FBRztnQkFDbkI7Z0JBRUEsSUFBSVEsT0FBTztnQkFFWCxJQUFJVyxTQUFTLE1BQU07b0JBQ2pCLElBQU0sQUFBRUQsT0FBU0MsS0FBVEQ7b0JBRVIsSUFBSUEsU0FBU0ssZ0JBQVMsRUFBRTt3QkFDdEIsSUFBSSxBQUFFckIsVUFBWWlCLEtBQVpqQjt3QkFFTixJQUFRRCxPQUFtQmtCLEtBQW5CbEIsTUFBTUUsV0FBYWdCLEtBQWJoQjt3QkFFZEQsVUFBVXNCLElBQUFBLHVDQUE4QixFQUFDdEIsVUFBVyxHQUFHO3dCQUV2RE0sT0FBTyxJQUFJYSxNQUFNcEIsTUFBTUMsU0FBU0M7b0JBQ2xDO2dCQUNGO2dCQUVBLE9BQU9LO1lBQ1Q7OztZQUVPaUIsS0FBQUE7bUJBQVAsU0FBT0EsYUFBYUosS0FBSyxFQUFFSyxRQUFRO2dCQUNqQyxJQUFJQSxhQUFhSixXQUFXO29CQUMxQkksV0FBV0wsT0FBTyxHQUFHO29CQUVyQkEsUUFoR2VyQixNQWdHRCxHQUFHO2dCQUNuQjtnQkFFQSxJQUFNZSxXQUFXVyxTQUFTQyxXQUFXLElBQy9CeEIsV0FBV3VCLFNBQVNwQixVQUFVLElBQzlCTCxPQUFPYyxVQUFXLEdBQUc7Z0JBRTNCLElBQUliLFVBQVV3QixTQUFTckIsVUFBVTtnQkFFakNILFVBQVVzQixJQUFBQSx1Q0FBOEIsRUFBQ3RCLFVBQVcsR0FBRztnQkFFdkQsSUFBTU0sT0FBTyxJQUFJYSxNQUFNcEIsTUFBTUMsU0FBU0M7Z0JBRXRDLE9BQU9LO1lBQ1Q7OztZQUVPb0IsS0FBQUE7bUJBQVAsU0FBT0EsMkJBQTJCUCxLQUFLLEVBQUVwQixJQUFJLEVBQUVDLE9BQU8sRUFBRUMsUUFBUTtnQkFDOUQsSUFBSUEsYUFBYW1CLFdBQVc7b0JBQzFCbkIsV0FBV0QsU0FBUyxHQUFHO29CQUV2QkEsVUFBVUQsTUFBTSxHQUFHO29CQUVuQkEsT0FBT29CLE9BQU8sR0FBRztvQkFFakJBLFFBeEhlckIsTUF3SEQsR0FBRztnQkFDbkI7Z0JBRUFFLFVBQVVzQixJQUFBQSx1Q0FBOEIsRUFBQ3RCLFVBQVcsR0FBRztnQkFFdkQsSUFBTU0sT0FBTyxJQUFJYSxNQUFNcEIsTUFBTUMsU0FBU0M7Z0JBRXRDLE9BQU9LO1lBQ1Q7OztXQWhJbUJSOztBQWdFbkIsaUJBaEVtQkEsTUFnRVprQixRQUFPSyxnQkFBUyJ9
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "occam-model",
3
3
  "author": "James Smith",
4
- "version": "1.0.489",
4
+ "version": "1.0.490",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/occam-model",
7
7
  "description": "Parts of Occam's model.",
package/src/file.js CHANGED
@@ -69,7 +69,13 @@ export default class File {
69
69
 
70
70
  static type = FILE_TYPE;
71
71
 
72
- static fromJSON(json) {
72
+ static fromJSON(Class, json) {
73
+ if (json === undefined) {
74
+ json = Class; ///
75
+
76
+ Class = File; ///
77
+ }
78
+
73
79
  let file = null;
74
80
 
75
81
  if (json !== null) {
@@ -82,14 +88,20 @@ export default class File {
82
88
 
83
89
  content = convertContentTabsToWhitespace(content); ///
84
90
 
85
- file = new File(path, content, released);
91
+ file = new Class(path, content, released);
86
92
  }
87
93
  }
88
94
 
89
95
  return file;
90
96
  }
91
97
 
92
- static fromDocument(document) {
98
+ static fromDocument(Class, document) {
99
+ if (document === undefined) {
100
+ document = Class; ///
101
+
102
+ Class = File; ///
103
+ }
104
+
93
105
  const filePath = document.getFilePath(),
94
106
  released = document.isReleased(),
95
107
  path = filePath; ///
@@ -98,15 +110,25 @@ export default class File {
98
110
 
99
111
  content = convertContentTabsToWhitespace(content); ///
100
112
 
101
- const file = new File(path, content, released);
113
+ const file = new Class(path, content, released);
102
114
 
103
115
  return file;
104
116
  }
105
117
 
106
- static fromPathContentAndReleased(path, content, released) {
118
+ static fromPathContentAndReleased(Class, path, content, released) {
119
+ if (released === undefined) {
120
+ released = content; ///
121
+
122
+ content = path; ///
123
+
124
+ path = Class; ///
125
+
126
+ Class = File; ///
127
+ }
128
+
107
129
  content = convertContentTabsToWhitespace(content); ///
108
130
 
109
- const file = new File(path, content, released);
131
+ const file = new Class(path, content, released);
110
132
 
111
133
  return file;
112
134
  }