jsoniq
Version:
JSONiq implementation for JavaScript
67 lines (65 loc) • 8.17 kB
JavaScript
;
class Exception extends Error {
constructor(name, message) {
super(message);
this.name = name;
this.message = message;
this.name = name;
this.message = message;
this.stack = (new Error("[" + name + "] " + message)).stack;
}
toString() {
return "[" + this.name + "] " + this.message;
}
}
exports.Exception = Exception;
class DynamicError extends Exception {
constructor(code, message) {
super(code, message);
}
}
exports.DynamicError = DynamicError;
class StaticError extends Exception {
constructor(code, message) {
super(code, message);
}
}
exports.StaticError = StaticError;
class JNUP0005 extends DynamicError {
constructor() {
super("JNUP0005", "It is a dynamic error if a pending update list contains two inserting update primitives on the same object and pair name.");
}
}
exports.JNUP0005 = JNUP0005;
class JNUP0006 extends DynamicError {
constructor(key) {
super("JNUP0006", "\"" + key + "\" pair to insert already exists in object");
}
}
exports.JNUP0006 = JNUP0006;
class JNUP0007 extends DynamicError {
constructor() {
super("JNUP0007", "It is a type error if, in an updating expression, an array selector cannot be cast to xs:integer or if an object selector cannot be cast to xs:string");
}
}
exports.JNUP0007 = JNUP0007;
class JNUP0008 extends DynamicError {
constructor() {
super("JNUP0008", "It is a dynamic error if the target of a JSON delete or JSON replace expression is not an array or an object");
}
}
exports.JNUP0008 = JNUP0008;
class JNUP0009 extends DynamicError {
constructor() {
super("JNUP0009", "It is a dynamic error if a pending update list contains two JSON replacing update primitives on the same object or array, and with the same selector.");
}
}
exports.JNUP0009 = JNUP0009;
//It is a dynamic error if it is attempted to create a replace, delete or rename update primitive with a selector that cannot be resolved against the target array or object.
class JNUP0016 extends DynamicError {
constructor(key) {
super("JNUP0016", "\"" + key + "\" : selector cannot be resolved against supplied object");
}
}
exports.JNUP0016 = JNUP0016;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9lcnJvcnMudHMiXSwibmFtZXMiOlsiRXhjZXB0aW9uIiwiRXhjZXB0aW9uLmNvbnN0cnVjdG9yIiwiRXhjZXB0aW9uLnRvU3RyaW5nIiwiRHluYW1pY0Vycm9yIiwiRHluYW1pY0Vycm9yLmNvbnN0cnVjdG9yIiwiU3RhdGljRXJyb3IiLCJTdGF0aWNFcnJvci5jb25zdHJ1Y3RvciIsIkpOVVAwMDA1IiwiSk5VUDAwMDUuY29uc3RydWN0b3IiLCJKTlVQMDAwNiIsIkpOVVAwMDA2LmNvbnN0cnVjdG9yIiwiSk5VUDAwMDciLCJKTlVQMDAwNy5jb25zdHJ1Y3RvciIsIkpOVVAwMDA4IiwiSk5VUDAwMDguY29uc3RydWN0b3IiLCJKTlVQMDAwOSIsIkpOVVAwMDA5LmNvbnN0cnVjdG9yIiwiSk5VUDAwMTYiLCJKTlVQMDAxNi5jb25zdHJ1Y3RvciJdLCJtYXBwaW5ncyI6IjtBQVFBLHdCQUErQixLQUFLO0lBRWhDQSxZQUFtQkEsSUFBV0EsRUFBU0EsT0FBY0E7UUFDakRDLE1BQU1BLE9BQU9BLENBQUNBLENBQUNBO1FBREFBLFNBQUlBLEdBQUpBLElBQUlBLENBQU9BO1FBQVNBLFlBQU9BLEdBQVBBLE9BQU9BLENBQU9BO1FBRWpEQSxJQUFJQSxDQUFDQSxJQUFJQSxHQUFHQSxJQUFJQSxDQUFDQTtRQUNqQkEsSUFBSUEsQ0FBQ0EsT0FBT0EsR0FBR0EsT0FBT0EsQ0FBQ0E7UUFDdkJBLElBQUlBLENBQUNBLEtBQUtBLEdBQUdBLENBQU1BLElBQUlBLEtBQUtBLENBQUNBLEdBQUdBLEdBQUdBLElBQUlBLEdBQUdBLElBQUlBLEdBQUdBLE9BQU9BLENBQUNBLENBQUNBLENBQUNBLEtBQUtBLENBQUNBO0lBQ3JFQSxDQUFDQTtJQUVERCxRQUFRQTtRQUNKRSxNQUFNQSxDQUFDQSxHQUFHQSxHQUFHQSxJQUFJQSxDQUFDQSxJQUFJQSxHQUFHQSxJQUFJQSxHQUFHQSxJQUFJQSxDQUFDQSxPQUFPQSxDQUFDQTtJQUNqREEsQ0FBQ0E7QUFDTEYsQ0FBQ0E7QUFaWSxpQkFBUyxZQVlyQixDQUFBO0FBRUQsMkJBQWtDLFNBQVM7SUFDdkNHLFlBQVlBLElBQVdBLEVBQUVBLE9BQWNBO1FBQ25DQyxNQUFNQSxJQUFJQSxFQUFFQSxPQUFPQSxDQUFDQSxDQUFDQTtJQUN6QkEsQ0FBQ0E7QUFDTEQsQ0FBQ0E7QUFKWSxvQkFBWSxlQUl4QixDQUFBO0FBRUQsMEJBQWlDLFNBQVM7SUFDdENFLFlBQVlBLElBQVdBLEVBQUVBLE9BQWNBO1FBQ25DQyxNQUFNQSxJQUFJQSxFQUFFQSxPQUFPQSxDQUFDQSxDQUFDQTtJQUN6QkEsQ0FBQ0E7QUFDTEQsQ0FBQ0E7QUFKWSxtQkFBVyxjQUl2QixDQUFBO0FBRUQsdUJBQThCLFlBQVk7SUFDdENFO1FBQ0lDLE1BQU1BLFVBQVVBLEVBQUVBLDJIQUEySEEsQ0FBQ0EsQ0FBQ0E7SUFDbkpBLENBQUNBO0FBQ0xELENBQUNBO0FBSlksZ0JBQVEsV0FJcEIsQ0FBQTtBQUVELHVCQUE4QixZQUFZO0lBQ3RDRSxZQUFZQSxHQUFHQTtRQUNYQyxNQUFNQSxVQUFVQSxFQUFFQSxJQUFJQSxHQUFHQSxHQUFHQSxHQUFHQSw0Q0FBNENBLENBQUNBLENBQUNBO0lBQ2pGQSxDQUFDQTtBQUNMRCxDQUFDQTtBQUpZLGdCQUFRLFdBSXBCLENBQUE7QUFFRCx1QkFBOEIsWUFBWTtJQUN0Q0U7UUFDSUMsTUFBTUEsVUFBVUEsRUFBRUEsdUpBQXVKQSxDQUFDQSxDQUFDQTtJQUMvS0EsQ0FBQ0E7QUFDTEQsQ0FBQ0E7QUFKWSxnQkFBUSxXQUlwQixDQUFBO0FBRUQsdUJBQThCLFlBQVk7SUFDdENFO1FBQ0lDLE1BQU1BLFVBQVVBLEVBQUVBLDhHQUE4R0EsQ0FBQ0EsQ0FBQ0E7SUFDdElBLENBQUNBO0FBQ0xELENBQUNBO0FBSlksZ0JBQVEsV0FJcEIsQ0FBQTtBQUVELHVCQUE4QixZQUFZO0lBQ3RDRTtRQUNJQyxNQUFNQSxVQUFVQSxFQUFFQSx1SkFBdUpBLENBQUNBLENBQUNBO0lBQy9LQSxDQUFDQTtBQUNMRCxDQUFDQTtBQUpZLGdCQUFRLFdBSXBCLENBQUE7QUFFRCw2S0FBNks7QUFDN0ssdUJBQThCLFlBQVk7SUFDdENFLFlBQVlBLEdBQVVBO1FBQ2xCQyxNQUFNQSxVQUFVQSxFQUFFQSxJQUFJQSxHQUFHQSxHQUFHQSxHQUFHQSwwREFBMERBLENBQUNBLENBQUNBO0lBQy9GQSxDQUFDQTtBQUNMRCxDQUFDQTtBQUpZLGdCQUFRLFdBSXBCLENBQUEiLCJmaWxlIjoibGliL2Vycm9ycy5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWNsYXJlIGNsYXNzIEVycm9yIHtcbiAgICBwdWJsaWMgbmFtZTpzdHJpbmc7XG4gICAgcHVibGljIG1lc3NhZ2U6c3RyaW5nO1xuICAgIHB1YmxpYyBzdGFjazpzdHJpbmc7XG5cbiAgICBjb25zdHJ1Y3RvcihtZXNzYWdlPzpzdHJpbmcpO1xufVxuXG5leHBvcnQgY2xhc3MgRXhjZXB0aW9uIGV4dGVuZHMgRXJyb3Ige1xuXG4gICAgY29uc3RydWN0b3IocHVibGljIG5hbWU6c3RyaW5nLCBwdWJsaWMgbWVzc2FnZTpzdHJpbmcpIHtcbiAgICAgICAgc3VwZXIobWVzc2FnZSk7XG4gICAgICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgICAgIHRoaXMubWVzc2FnZSA9IG1lc3NhZ2U7XG4gICAgICAgIHRoaXMuc3RhY2sgPSAoPGFueT5uZXcgRXJyb3IoXCJbXCIgKyBuYW1lICsgXCJdIFwiICsgbWVzc2FnZSkpLnN0YWNrO1xuICAgIH1cblxuICAgIHRvU3RyaW5nKCkge1xuICAgICAgICByZXR1cm4gXCJbXCIgKyB0aGlzLm5hbWUgKyBcIl0gXCIgKyB0aGlzLm1lc3NhZ2U7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRHluYW1pY0Vycm9yIGV4dGVuZHMgRXhjZXB0aW9uIHtcbiAgICBjb25zdHJ1Y3Rvcihjb2RlOnN0cmluZywgbWVzc2FnZTpzdHJpbmcpIHtcbiAgICAgICAgc3VwZXIoY29kZSwgbWVzc2FnZSk7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgU3RhdGljRXJyb3IgZXh0ZW5kcyBFeGNlcHRpb24ge1xuICAgIGNvbnN0cnVjdG9yKGNvZGU6c3RyaW5nLCBtZXNzYWdlOnN0cmluZykge1xuICAgICAgICBzdXBlcihjb2RlLCBtZXNzYWdlKTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBKTlVQMDAwNSBleHRlbmRzIER5bmFtaWNFcnJvciB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKFwiSk5VUDAwMDVcIiwgXCJJdCBpcyBhIGR5bmFtaWMgZXJyb3IgaWYgYSBwZW5kaW5nIHVwZGF0ZSBsaXN0IGNvbnRhaW5zIHR3byBpbnNlcnRpbmcgdXBkYXRlIHByaW1pdGl2ZXMgb24gdGhlIHNhbWUgb2JqZWN0IGFuZCBwYWlyIG5hbWUuXCIpO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEpOVVAwMDA2IGV4dGVuZHMgRHluYW1pY0Vycm9yIHtcbiAgICBjb25zdHJ1Y3RvcihrZXkpIHtcbiAgICAgICAgc3VwZXIoXCJKTlVQMDAwNlwiLCBcIlxcXCJcIiArIGtleSArIFwiXFxcIiBwYWlyIHRvIGluc2VydCBhbHJlYWR5IGV4aXN0cyBpbiBvYmplY3RcIik7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgSk5VUDAwMDcgZXh0ZW5kcyBEeW5hbWljRXJyb3Ige1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcihcIkpOVVAwMDA3XCIsIFwiSXQgaXMgYSB0eXBlIGVycm9yIGlmLCBpbiBhbiB1cGRhdGluZyBleHByZXNzaW9uLCBhbiBhcnJheSBzZWxlY3RvciBjYW5ub3QgYmUgY2FzdCB0byB4czppbnRlZ2VyIG9yIGlmIGFuIG9iamVjdCBzZWxlY3RvciBjYW5ub3QgYmUgY2FzdCB0byB4czpzdHJpbmdcIik7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgSk5VUDAwMDggZXh0ZW5kcyBEeW5hbWljRXJyb3Ige1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcihcIkpOVVAwMDA4XCIsIFwiSXQgaXMgYSBkeW5hbWljIGVycm9yIGlmIHRoZSB0YXJnZXQgb2YgYSBKU09OIGRlbGV0ZSBvciBKU09OIHJlcGxhY2UgZXhwcmVzc2lvbiBpcyBub3QgYW4gYXJyYXkgb3IgYW4gb2JqZWN0XCIpO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEpOVVAwMDA5IGV4dGVuZHMgRHluYW1pY0Vycm9yIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoXCJKTlVQMDAwOVwiLCBcIkl0IGlzIGEgZHluYW1pYyBlcnJvciBpZiBhIHBlbmRpbmcgdXBkYXRlIGxpc3QgY29udGFpbnMgdHdvIEpTT04gcmVwbGFjaW5nIHVwZGF0ZSBwcmltaXRpdmVzIG9uIHRoZSBzYW1lIG9iamVjdCBvciBhcnJheSwgYW5kIHdpdGggdGhlIHNhbWUgc2VsZWN0b3IuXCIpO1xuICAgIH1cbn1cblxuLy9JdCBpcyBhIGR5bmFtaWMgZXJyb3IgaWYgaXQgaXMgYXR0ZW1wdGVkIHRvIGNyZWF0ZSBhIHJlcGxhY2UsIGRlbGV0ZSBvciByZW5hbWUgdXBkYXRlIHByaW1pdGl2ZSB3aXRoIGEgc2VsZWN0b3IgdGhhdCBjYW5ub3QgYmUgcmVzb2x2ZWQgYWdhaW5zdCB0aGUgdGFyZ2V0IGFycmF5IG9yIG9iamVjdC5cbmV4cG9ydCBjbGFzcyBKTlVQMDAxNiBleHRlbmRzIER5bmFtaWNFcnJvciB7XG4gICAgY29uc3RydWN0b3Ioa2V5OnN0cmluZykge1xuICAgICAgICBzdXBlcihcIkpOVVAwMDE2XCIsIFwiXFxcIlwiICsga2V5ICsgXCJcXFwiIDogc2VsZWN0b3IgY2Fubm90IGJlIHJlc29sdmVkIGFnYWluc3Qgc3VwcGxpZWQgb2JqZWN0XCIpO1xuICAgIH1cbn1cbiJdLCJzb3VyY2VSb290IjoiL3NvdXJjZS8ifQ==