rdflib 2.2.31 → 2.2.32
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.
- package/dist/670.rdflib.min.js +1 -0
- package/dist/730.rdflib.min.js +3 -0
- package/dist/730.rdflib.min.js.LICENSE.txt +58 -0
- package/dist/730.rdflib.min.js.map +1 -0
- package/dist/rdflib.min.js +1 -1
- package/dist/rdflib.min.js.LICENSE.txt +0 -59
- package/dist/rdflib.min.js.map +1 -1
- package/esm/blank-node.js +10 -6
- package/esm/collection.js +3 -4
- package/esm/factories/factory-types.js +10 -10
- package/esm/fetcher.js +64 -35
- package/esm/formula.js +10 -13
- package/esm/jsonldparser.js +4 -3
- package/esm/lists.js +2 -1
- package/esm/literal.js +6 -8
- package/esm/node-internal.js +5 -10
- package/esm/rdfxmlparser.js +3 -0
- package/esm/serializer.js +1 -2
- package/esm/statement.js +7 -11
- package/esm/store.js +39 -32
- package/esm/types.js +18 -1
- package/esm/update-manager.js +28 -16
- package/esm/utils.js +0 -1
- package/esm/variable.js +2 -4
- package/lib/blank-node.js +10 -6
- package/lib/collection.js +3 -4
- package/lib/factories/factory-types.js +10 -10
- package/lib/fetcher.js +88 -36
- package/lib/formula.js +10 -13
- package/lib/index.d.ts +1 -1
- package/lib/jsonldparser.js +9 -3
- package/lib/lists.js +15 -1
- package/lib/literal.js +6 -8
- package/lib/node-internal.js +5 -10
- package/lib/query.d.ts +1 -1
- package/lib/rdfxmlparser.js +3 -0
- package/lib/serializer.d.ts +1 -1
- package/lib/serializer.js +1 -2
- package/lib/sparql-to-query.d.ts +1 -1
- package/lib/statement.js +7 -11
- package/lib/store.d.ts +1 -1
- package/lib/store.js +55 -34
- package/lib/types.js +22 -0
- package/lib/update-manager.d.ts +1 -1
- package/lib/update-manager.js +34 -17
- package/lib/utils-js.d.ts +3 -3
- package/lib/variable.js +2 -4
- package/lib/xsd-internal.d.ts +1 -1
- package/package.json +19 -19
- package/src/fetcher.ts +13 -0
- package/src/jsonldparser.js +2 -4
- package/src/store.ts +18 -1
- package/src/update-manager.ts +20 -11
package/lib/serializer.js
CHANGED
|
@@ -37,6 +37,7 @@ var Serializer = /*#__PURE__*/function () {
|
|
|
37
37
|
(0, _classCallCheck2.default)(this, Serializer);
|
|
38
38
|
(0, _defineProperty2.default)(this, "_notQNameChars", '\t\r\n !"#$%&\'()*.,+/;<=>?@[\\]^`{|}~');
|
|
39
39
|
(0, _defineProperty2.default)(this, "_notNameChars", this._notQNameChars + ':');
|
|
40
|
+
// stringToN3: String escaping for N3
|
|
40
41
|
(0, _defineProperty2.default)(this, "validPrefix", new RegExp(/^[a-zA-Z][a-zA-Z0-9]*$/));
|
|
41
42
|
(0, _defineProperty2.default)(this, "forbidden1", new RegExp(/[\\"\b\f\r\v\t\n\u0080-\uffff]/gm));
|
|
42
43
|
(0, _defineProperty2.default)(this, "forbidden3", new RegExp(/[\\"\b\f\r\v\u0080-\uffff]/gm));
|
|
@@ -600,8 +601,6 @@ var Serializer = /*#__PURE__*/function () {
|
|
|
600
601
|
throw new Error('Internal: atomicTermToN3 cannot handle ' + expr + ' of termType: ' + expr.termType);
|
|
601
602
|
}
|
|
602
603
|
}
|
|
603
|
-
|
|
604
|
-
// stringToN3: String escaping for N3
|
|
605
604
|
}, {
|
|
606
605
|
key: "stringToN3",
|
|
607
606
|
value: function stringToN3(str, flags) {
|
package/lib/sparql-to-query.d.ts
CHANGED
package/lib/statement.js
CHANGED
|
@@ -18,17 +18,6 @@ var defaultGraph = new _defaultGraph.default();
|
|
|
18
18
|
|
|
19
19
|
/** A Statement represents an RDF Triple or Quad. */
|
|
20
20
|
var Statement = /*#__PURE__*/function () {
|
|
21
|
-
/** The subject of the triple. What the Statement is about. */
|
|
22
|
-
|
|
23
|
-
/** The relationship which is asserted between the subject and object */
|
|
24
|
-
|
|
25
|
-
/** The thing or data value which is asserted to be related to the subject */
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* The graph param is a named node of the document in which the triple when
|
|
29
|
-
* it is stored on the web.
|
|
30
|
-
*/
|
|
31
|
-
|
|
32
21
|
/**
|
|
33
22
|
* Construct a new statement
|
|
34
23
|
*
|
|
@@ -48,9 +37,16 @@ var Statement = /*#__PURE__*/function () {
|
|
|
48
37
|
*/
|
|
49
38
|
function Statement(subject, predicate, object, graph) {
|
|
50
39
|
(0, _classCallCheck2.default)(this, Statement);
|
|
40
|
+
/** The subject of the triple. What the Statement is about. */
|
|
51
41
|
(0, _defineProperty2.default)(this, "subject", void 0);
|
|
42
|
+
/** The relationship which is asserted between the subject and object */
|
|
52
43
|
(0, _defineProperty2.default)(this, "predicate", void 0);
|
|
44
|
+
/** The thing or data value which is asserted to be related to the subject */
|
|
53
45
|
(0, _defineProperty2.default)(this, "object", void 0);
|
|
46
|
+
/**
|
|
47
|
+
* The graph param is a named node of the document in which the triple when
|
|
48
|
+
* it is stored on the web.
|
|
49
|
+
*/
|
|
54
50
|
(0, _defineProperty2.default)(this, "graph", void 0);
|
|
55
51
|
this.subject = _nodeInternal.default.fromValue(subject);
|
|
56
52
|
this.predicate = _nodeInternal.default.fromValue(predicate);
|
package/lib/store.d.ts
CHANGED
|
@@ -233,7 +233,7 @@ export default class IndexedFormula extends Formula {
|
|
|
233
233
|
*/
|
|
234
234
|
remove(st: Quad | Quad[]): IndexedFormula;
|
|
235
235
|
/**
|
|
236
|
-
* Removes all statements in a doc
|
|
236
|
+
* Removes all statements in a doc, along with the related metadata including request/response
|
|
237
237
|
* @param doc - The document / graph
|
|
238
238
|
*/
|
|
239
239
|
removeDocument(doc: Quad_Graph): IndexedFormula;
|
package/lib/store.js
CHANGED
|
@@ -40,10 +40,24 @@ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol
|
|
|
40
40
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
41
41
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
42
42
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
|
|
43
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
43
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } /* Identity management and indexing for RDF
|
|
44
|
+
*
|
|
45
|
+
* This file provides IndexedFormula a formula (set of triples) which
|
|
46
|
+
* indexed by predicate, subject and object.
|
|
47
|
+
*
|
|
48
|
+
* It "smushes" (merges into a single node) things which are identical
|
|
49
|
+
* according to owl:sameAs or an owl:InverseFunctionalProperty
|
|
50
|
+
* or an owl:FunctionalProperty
|
|
51
|
+
*
|
|
52
|
+
*
|
|
53
|
+
* 2005-10 Written Tim Berners-Lee
|
|
54
|
+
* 2007 Changed so as not to munge statements from documents when smushing
|
|
55
|
+
* 2019 Converted to typescript
|
|
56
|
+
*
|
|
57
|
+
*
|
|
58
|
+
*/ /** @module store */
|
|
44
59
|
var owlNamespaceURI = 'http://www.w3.org/2002/07/owl#';
|
|
45
60
|
// var link_ns = 'http://www.w3.org/2007/ont/link#'
|
|
46
|
-
|
|
47
61
|
// Handle Functional Property
|
|
48
62
|
function handleFP(formula, subj, pred, obj) {
|
|
49
63
|
var o1 = formula.any(subj, pred, undefined);
|
|
@@ -87,37 +101,6 @@ function handleRDFType(formula, subj, pred, obj, why) {
|
|
|
87
101
|
var IndexedFormula = /*#__PURE__*/function (_Formula) {
|
|
88
102
|
(0, _inherits2.default)(IndexedFormula, _Formula);
|
|
89
103
|
var _super = _createSuper(IndexedFormula);
|
|
90
|
-
// IN future - allow pass array of statements to constructor
|
|
91
|
-
/**
|
|
92
|
-
* An UpdateManager initialised to this store
|
|
93
|
-
*/
|
|
94
|
-
|
|
95
|
-
/**
|
|
96
|
-
* Dictionary of namespace prefixes
|
|
97
|
-
*/
|
|
98
|
-
|
|
99
|
-
/** Map of iri predicates to functions to call when adding { s type X } */
|
|
100
|
-
|
|
101
|
-
/** Map of iri predicates to functions to call when getting statement with {s X o} */
|
|
102
|
-
|
|
103
|
-
/** Redirect to lexically smaller equivalent symbol */
|
|
104
|
-
|
|
105
|
-
/** Reverse mapping to redirection: aliases for this */
|
|
106
|
-
|
|
107
|
-
/** Redirections we got from HTTP */
|
|
108
|
-
|
|
109
|
-
/** Array of statements with this X as subject */
|
|
110
|
-
|
|
111
|
-
/** Array of statements with this X as predicate */
|
|
112
|
-
|
|
113
|
-
/** Array of statements with this X as object */
|
|
114
|
-
|
|
115
|
-
/** Array of statements with X as provenance */
|
|
116
|
-
|
|
117
|
-
/** Function to remove quads from the store arrays with */
|
|
118
|
-
|
|
119
|
-
/** Callbacks which are triggered after a statement has been added to the store */
|
|
120
|
-
|
|
121
104
|
/**
|
|
122
105
|
* Creates a new formula
|
|
123
106
|
* @param features - What sort of automatic processing to do? Array of string
|
|
@@ -132,22 +115,40 @@ var IndexedFormula = /*#__PURE__*/function (_Formula) {
|
|
|
132
115
|
var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
133
116
|
(0, _classCallCheck2.default)(this, IndexedFormula);
|
|
134
117
|
_this = _super.call(this, undefined, undefined, undefined, undefined, opts);
|
|
118
|
+
// IN future - allow pass array of statements to constructor
|
|
119
|
+
/**
|
|
120
|
+
* An UpdateManager initialised to this store
|
|
121
|
+
*/
|
|
135
122
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "updater", void 0);
|
|
123
|
+
/**
|
|
124
|
+
* Dictionary of namespace prefixes
|
|
125
|
+
*/
|
|
136
126
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "namespaces", void 0);
|
|
127
|
+
/** Map of iri predicates to functions to call when adding { s type X } */
|
|
137
128
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "classActions", void 0);
|
|
129
|
+
/** Map of iri predicates to functions to call when getting statement with {s X o} */
|
|
138
130
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "propertyActions", void 0);
|
|
131
|
+
/** Redirect to lexically smaller equivalent symbol */
|
|
139
132
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "redirections", void 0);
|
|
133
|
+
/** Reverse mapping to redirection: aliases for this */
|
|
140
134
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "aliases", void 0);
|
|
135
|
+
/** Redirections we got from HTTP */
|
|
141
136
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "HTTPRedirects", void 0);
|
|
137
|
+
/** Array of statements with this X as subject */
|
|
142
138
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "subjectIndex", void 0);
|
|
139
|
+
/** Array of statements with this X as predicate */
|
|
143
140
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "predicateIndex", void 0);
|
|
141
|
+
/** Array of statements with this X as object */
|
|
144
142
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "objectIndex", void 0);
|
|
143
|
+
/** Array of statements with X as provenance */
|
|
145
144
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "whyIndex", void 0);
|
|
146
145
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "index", void 0);
|
|
147
146
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "features", void 0);
|
|
148
147
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "_universalVariables", void 0);
|
|
149
148
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "_existentialVariables", void 0);
|
|
149
|
+
/** Function to remove quads from the store arrays with */
|
|
150
150
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "rdfArrayRemove", void 0);
|
|
151
|
+
/** Callbacks which are triggered after a statement has been added to the store */
|
|
151
152
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "dataCallbacks", void 0);
|
|
152
153
|
_this.propertyActions = {};
|
|
153
154
|
_this.classActions = {};
|
|
@@ -827,12 +828,32 @@ var IndexedFormula = /*#__PURE__*/function (_Formula) {
|
|
|
827
828
|
}
|
|
828
829
|
|
|
829
830
|
/**
|
|
830
|
-
* Removes all statements in a doc
|
|
831
|
+
* Removes all statements in a doc, along with the related metadata including request/response
|
|
831
832
|
* @param doc - The document / graph
|
|
832
833
|
*/
|
|
833
834
|
}, {
|
|
834
835
|
key: "removeDocument",
|
|
835
836
|
value: function removeDocument(doc) {
|
|
837
|
+
var meta = this.sym('chrome://TheCurrentSession'); // or this.rdfFactory.namedNode('chrome://TheCurrentSession')
|
|
838
|
+
var linkNamespaceURI = 'http://www.w3.org/2007/ont/link#'; // alain
|
|
839
|
+
// remove request/response and metadata
|
|
840
|
+
var requests = this.statementsMatching(undefined, this.sym("".concat(linkNamespaceURI, "requestedURI")), this.rdfFactory.literal(doc.value), meta).map(function (st) {
|
|
841
|
+
return st.subject;
|
|
842
|
+
});
|
|
843
|
+
for (var r = 0; r < requests.length; r++) {
|
|
844
|
+
var request = requests[r];
|
|
845
|
+
if (request !== undefined) {
|
|
846
|
+
this.removeMatches(request, null, null, meta);
|
|
847
|
+
var response = this.any(request, this.sym("".concat(linkNamespaceURI, "response")), null, meta);
|
|
848
|
+
if (response !== undefined) {
|
|
849
|
+
// ts
|
|
850
|
+
this.removeMatches(response, null, null, meta);
|
|
851
|
+
}
|
|
852
|
+
}
|
|
853
|
+
}
|
|
854
|
+
this.removeMatches(this.sym(doc.value), null, null, meta); // content-type
|
|
855
|
+
|
|
856
|
+
// remove document
|
|
836
857
|
var sts = this.statementsMatching(undefined, undefined, undefined, doc).slice(); // Take a copy as this is the actual index
|
|
837
858
|
for (var i = 0; i < sts.length; i++) {
|
|
838
859
|
this.removeStatement(sts[i]);
|
package/lib/types.js
CHANGED
|
@@ -50,4 +50,26 @@ var XHTMLContentType = "application/xhtml+xml";
|
|
|
50
50
|
/**
|
|
51
51
|
* A valid mime type header
|
|
52
52
|
*/
|
|
53
|
+
|
|
54
|
+
/** A type for values that serves as inputs */
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* In this project, there exist two types for the same kind of RDF concept.
|
|
58
|
+
* We have RDF/JS spec types (standardized, generic), and RDFlib types (internal, specific).
|
|
59
|
+
* When deciding which type to use in a function, it is preferable to accept generic inputs,
|
|
60
|
+
* whenever possible, and provide strict outputs.
|
|
61
|
+
* In some ways, the TF types in here are a bit more strict.
|
|
62
|
+
* Variables are missing, and the statement requires specific types of terms (e.g. NamedNode instead of Term).
|
|
63
|
+
*/
|
|
64
|
+
|
|
65
|
+
/** An RDF/JS Subject */
|
|
66
|
+
|
|
67
|
+
/** An RDF/JS Predicate */
|
|
68
|
+
|
|
69
|
+
/** An RDF/JS Object */
|
|
70
|
+
|
|
71
|
+
/** An RDF/JS Graph */
|
|
72
|
+
// | Formula
|
|
73
|
+
|
|
74
|
+
/** All the types that a .fromValue() method might return */
|
|
53
75
|
exports.XHTMLContentType = XHTMLContentType;
|
package/lib/update-manager.d.ts
CHANGED
|
@@ -33,7 +33,7 @@ export default class UpdateManager {
|
|
|
33
33
|
* the user logs in, then that data misrepresents what would happen
|
|
34
34
|
* if the user tried again.
|
|
35
35
|
*/
|
|
36
|
-
flagAuthorizationMetadata(): void;
|
|
36
|
+
flagAuthorizationMetadata(kb?: IndexedFormula): void;
|
|
37
37
|
/**
|
|
38
38
|
* Tests whether a file is editable.
|
|
39
39
|
* If the file has a specific annotation that it is machine written,
|
package/lib/update-manager.js
CHANGED
|
@@ -24,7 +24,12 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
24
24
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof3(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
25
25
|
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
|
|
26
26
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
27
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
27
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } /* @file Update Manager Class
|
|
28
|
+
**
|
|
29
|
+
** 2007-07-15 originall sparl update module by Joe Presbrey <presbrey@mit.edu>
|
|
30
|
+
** 2010-08-08 TimBL folded in Kenny's WEBDAV
|
|
31
|
+
** 2010-12-07 TimBL addred local file write code
|
|
32
|
+
*/
|
|
28
33
|
/**
|
|
29
34
|
* The UpdateManager is a helper object for a store.
|
|
30
35
|
* Just as a Fetcher provides the store with the ability to read and write,
|
|
@@ -32,10 +37,6 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
32
37
|
* and also looking out for concurrent updates from other agents
|
|
33
38
|
*/
|
|
34
39
|
var UpdateManager = /*#__PURE__*/function () {
|
|
35
|
-
/** Index of objects for coordinating incoming and outgoing patches */
|
|
36
|
-
|
|
37
|
-
/** Object of namespaces */
|
|
38
|
-
|
|
39
40
|
/**
|
|
40
41
|
* @param store - The quadstore to store data and metadata. Created if not passed.
|
|
41
42
|
*/
|
|
@@ -44,7 +45,9 @@ var UpdateManager = /*#__PURE__*/function () {
|
|
|
44
45
|
(0, _defineProperty2.default)(this, "store", void 0);
|
|
45
46
|
(0, _defineProperty2.default)(this, "ifps", void 0);
|
|
46
47
|
(0, _defineProperty2.default)(this, "fps", void 0);
|
|
48
|
+
/** Index of objects for coordinating incoming and outgoing patches */
|
|
47
49
|
(0, _defineProperty2.default)(this, "patchControl", void 0);
|
|
50
|
+
/** Object of namespaces */
|
|
48
51
|
(0, _defineProperty2.default)(this, "ns", void 0);
|
|
49
52
|
store = store || new _store.default();
|
|
50
53
|
if (store.updater) {
|
|
@@ -90,9 +93,12 @@ var UpdateManager = /*#__PURE__*/function () {
|
|
|
90
93
|
*/
|
|
91
94
|
}, {
|
|
92
95
|
key: "flagAuthorizationMetadata",
|
|
93
|
-
value: function flagAuthorizationMetadata() {
|
|
94
|
-
var
|
|
95
|
-
|
|
96
|
+
value: function flagAuthorizationMetadata(kb) {
|
|
97
|
+
var _kb$fetcher;
|
|
98
|
+
if (!kb) {
|
|
99
|
+
kb = this.store;
|
|
100
|
+
}
|
|
101
|
+
var meta = (_kb$fetcher = kb.fetcher) === null || _kb$fetcher === void 0 ? void 0 : _kb$fetcher.appNode;
|
|
96
102
|
var requests = kb.statementsMatching(undefined, this.ns.link('requestedURI'), undefined, meta).map(function (st) {
|
|
97
103
|
return st.subject;
|
|
98
104
|
});
|
|
@@ -104,7 +110,7 @@ var UpdateManager = /*#__PURE__*/function () {
|
|
|
104
110
|
var _response = kb.any(request, this.ns.link('response'), null, meta);
|
|
105
111
|
if (_response !== undefined) {
|
|
106
112
|
// ts
|
|
107
|
-
|
|
113
|
+
kb.add(_response, this.ns.link('outOfDate'), true, meta); // @@ Boolean is fine - fix types
|
|
108
114
|
}
|
|
109
115
|
}
|
|
110
116
|
} catch (err) {
|
|
@@ -129,23 +135,33 @@ var UpdateManager = /*#__PURE__*/function () {
|
|
|
129
135
|
key: "checkEditable",
|
|
130
136
|
value: function () {
|
|
131
137
|
var _checkEditable = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(uri, kb) {
|
|
138
|
+
var _kb$fetcher2;
|
|
132
139
|
var initial, final;
|
|
133
140
|
return _regenerator.default.wrap(function _callee$(_context) {
|
|
134
141
|
while (1) switch (_context.prev = _context.next) {
|
|
135
142
|
case 0:
|
|
143
|
+
if (uri) {
|
|
144
|
+
_context.next = 2;
|
|
145
|
+
break;
|
|
146
|
+
}
|
|
147
|
+
return _context.abrupt("return", false);
|
|
148
|
+
case 2:
|
|
149
|
+
if (!kb) {
|
|
150
|
+
kb = this.store;
|
|
151
|
+
}
|
|
136
152
|
initial = this.editable(uri, kb);
|
|
137
153
|
if (!(initial !== undefined)) {
|
|
138
|
-
_context.next =
|
|
154
|
+
_context.next = 6;
|
|
139
155
|
break;
|
|
140
156
|
}
|
|
141
157
|
return _context.abrupt("return", initial);
|
|
142
|
-
case
|
|
143
|
-
_context.next =
|
|
144
|
-
return
|
|
145
|
-
case
|
|
158
|
+
case 6:
|
|
159
|
+
_context.next = 8;
|
|
160
|
+
return (_kb$fetcher2 = kb.fetcher) === null || _kb$fetcher2 === void 0 ? void 0 : _kb$fetcher2.load(uri);
|
|
161
|
+
case 8:
|
|
146
162
|
final = this.editable(uri, kb); // console.log(`Loaded ${uri} just to check editable, result: ${final}.`)
|
|
147
163
|
return _context.abrupt("return", final);
|
|
148
|
-
case
|
|
164
|
+
case 10:
|
|
149
165
|
case "end":
|
|
150
166
|
return _context.stop();
|
|
151
167
|
}
|
|
@@ -170,6 +186,7 @@ var UpdateManager = /*#__PURE__*/function () {
|
|
|
170
186
|
}, {
|
|
171
187
|
key: "editable",
|
|
172
188
|
value: function editable(uri, kb) {
|
|
189
|
+
var _kb$fetcher3;
|
|
173
190
|
if (!uri) {
|
|
174
191
|
return false; // Eg subject is bnode, no known doc to write to
|
|
175
192
|
}
|
|
@@ -179,13 +196,13 @@ var UpdateManager = /*#__PURE__*/function () {
|
|
|
179
196
|
}
|
|
180
197
|
uri = (0, _termValue.termValue)(uri);
|
|
181
198
|
if (!this.isHttpUri(uri)) {
|
|
182
|
-
if (
|
|
199
|
+
if (kb.holds(kb.rdfFactory.namedNode(uri), kb.rdfFactory.namedNode('http://www.w3.org/1999/02/22-rdf-syntax-ns#type'), kb.rdfFactory.namedNode('http://www.w3.org/2007/ont/link#MachineEditableDocument'))) {
|
|
183
200
|
return 'LOCALFILE';
|
|
184
201
|
}
|
|
185
202
|
}
|
|
186
203
|
var request;
|
|
187
204
|
var definitive = false;
|
|
188
|
-
var meta =
|
|
205
|
+
var meta = (_kb$fetcher3 = kb.fetcher) === null || _kb$fetcher3 === void 0 ? void 0 : _kb$fetcher3.appNode;
|
|
189
206
|
// const kb = s
|
|
190
207
|
|
|
191
208
|
// @ts-ignore passes a string to kb.each, which expects a term. Should this work?
|
package/lib/utils-js.d.ts
CHANGED
|
@@ -37,9 +37,9 @@ export function parseXML(str: any, options: any): Document;
|
|
|
37
37
|
export function RDFArrayRemove(a: any, x: any): void;
|
|
38
38
|
export function string_startswith(str: any, pref: any): boolean;
|
|
39
39
|
export function stackString(e: any): string;
|
|
40
|
-
import NamedNode from
|
|
41
|
-
import log from
|
|
42
|
-
import * as uri from
|
|
40
|
+
import NamedNode from './named-node';
|
|
41
|
+
import log from './log';
|
|
42
|
+
import * as uri from './uri';
|
|
43
43
|
export namespace string {
|
|
44
44
|
export { stringTemplate as template };
|
|
45
45
|
}
|
package/lib/variable.js
CHANGED
|
@@ -31,10 +31,6 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re
|
|
|
31
31
|
var Variable = /*#__PURE__*/function (_Node) {
|
|
32
32
|
(0, _inherits2.default)(Variable, _Node);
|
|
33
33
|
var _super = _createSuper(Variable);
|
|
34
|
-
/** The base string for a variable's name */
|
|
35
|
-
|
|
36
|
-
/** The unique identifier of this variable */
|
|
37
|
-
|
|
38
34
|
/**
|
|
39
35
|
* Initializes this variable
|
|
40
36
|
* @param name The variable's name
|
|
@@ -45,9 +41,11 @@ var Variable = /*#__PURE__*/function (_Node) {
|
|
|
45
41
|
(0, _classCallCheck2.default)(this, Variable);
|
|
46
42
|
_this = _super.call(this, name);
|
|
47
43
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "termType", _types.VariableTermType);
|
|
44
|
+
/** The base string for a variable's name */
|
|
48
45
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "base", 'varid:');
|
|
49
46
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "classOrder", _classOrder.default.Variable);
|
|
50
47
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "isVar", 1);
|
|
48
|
+
/** The unique identifier of this variable */
|
|
51
49
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "uri", void 0);
|
|
52
50
|
_this.base = 'varid:';
|
|
53
51
|
_this.uri = Uri.join(name, _this.base);
|
package/lib/xsd-internal.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "rdflib",
|
|
3
3
|
"description": "an RDF library for node.js. Suitable for client and server side.",
|
|
4
|
-
"version": "2.2.
|
|
4
|
+
"version": "2.2.32",
|
|
5
5
|
"private": false,
|
|
6
6
|
"browserslist": [
|
|
7
7
|
"> 0.5%"
|
|
@@ -44,22 +44,22 @@
|
|
|
44
44
|
"homepage": "http://github.com/linkeddata/rdflib.js",
|
|
45
45
|
"bugs": "http://github.com/linkeddata/rdflib.js/issues",
|
|
46
46
|
"dependencies": {
|
|
47
|
-
"@babel/runtime": "^7.
|
|
47
|
+
"@babel/runtime": "^7.21.0",
|
|
48
48
|
"@frogcat/ttl2jsonld": "^0.0.9",
|
|
49
|
-
"@xmldom/xmldom": "^0.8.
|
|
49
|
+
"@xmldom/xmldom": "^0.8.7",
|
|
50
50
|
"cross-fetch": "^3.1.5",
|
|
51
|
-
"jsonld": "^
|
|
52
|
-
"n3": "^1.16.
|
|
53
|
-
"solid-namespace": "^0.5.
|
|
51
|
+
"jsonld": "^8.1.1",
|
|
52
|
+
"n3": "^1.16.4",
|
|
53
|
+
"solid-namespace": "^0.5.3"
|
|
54
54
|
},
|
|
55
55
|
"devDependencies": {
|
|
56
|
-
"@babel/cli": "^7.
|
|
57
|
-
"@babel/core": "^7.
|
|
56
|
+
"@babel/cli": "^7.21.0",
|
|
57
|
+
"@babel/core": "^7.21.4",
|
|
58
58
|
"@babel/plugin-proposal-class-properties": "^7.18.6",
|
|
59
|
-
"@babel/plugin-transform-runtime": "^7.
|
|
60
|
-
"@babel/preset-env": "^7.
|
|
61
|
-
"@babel/preset-typescript": "^7.
|
|
62
|
-
"@babel/register": "^7.
|
|
59
|
+
"@babel/plugin-transform-runtime": "^7.21.4",
|
|
60
|
+
"@babel/preset-env": "^7.21.4",
|
|
61
|
+
"@babel/preset-typescript": "^7.21.4",
|
|
62
|
+
"@babel/register": "^7.21.0",
|
|
63
63
|
"@types/chai": "^4.3.4",
|
|
64
64
|
"@types/dirty-chai": "^2.0.2",
|
|
65
65
|
"@types/express": "^4.17.17",
|
|
@@ -69,23 +69,23 @@
|
|
|
69
69
|
"chai": "^4.3.7",
|
|
70
70
|
"diff": "^5.1.0",
|
|
71
71
|
"dirty-chai": "^2.0.1",
|
|
72
|
-
"eslint": "^8.
|
|
72
|
+
"eslint": "^8.38.0",
|
|
73
73
|
"fs-grep": "0.0.5",
|
|
74
74
|
"locate-path": "^7.2.0",
|
|
75
75
|
"mocha": "^10.2.0",
|
|
76
76
|
"nock": "^13.3.0",
|
|
77
|
-
"node-fetch": "^3.3.
|
|
77
|
+
"node-fetch": "^3.3.1",
|
|
78
78
|
"node-polyfill-webpack-plugin": "^2.0.1",
|
|
79
79
|
"rdf-js": "^4.0.2",
|
|
80
|
-
"sinon": "^15.0.
|
|
80
|
+
"sinon": "^15.0.3",
|
|
81
81
|
"sinon-chai": "^3.7.0",
|
|
82
82
|
"source-map-loader": "^4.0.1",
|
|
83
83
|
"ts-node": "^10.9.1",
|
|
84
|
-
"typedoc": "^0.
|
|
85
|
-
"typescript": "^
|
|
86
|
-
"webpack": "^5.
|
|
84
|
+
"typedoc": "^0.24.2",
|
|
85
|
+
"typescript": "^5.0.4",
|
|
86
|
+
"webpack": "^5.79.0",
|
|
87
87
|
"webpack-cli": "^5.0.1",
|
|
88
|
-
"webpack-dev-server": "^4.
|
|
88
|
+
"webpack-dev-server": "^4.13.3"
|
|
89
89
|
},
|
|
90
90
|
"scripts": {
|
|
91
91
|
"build": "babel src --extensions \".ts,.js\" -d lib",
|
package/src/fetcher.ts
CHANGED
|
@@ -974,6 +974,19 @@ export default class Fetcher implements CallbackifyInterface {
|
|
|
974
974
|
docuri = docuri.split('#')[0]
|
|
975
975
|
|
|
976
976
|
options = this.initFetchOptions(docuri, options)
|
|
977
|
+
// if metadata flaged clear cache and removeDocument
|
|
978
|
+
const meta = this.appNode
|
|
979
|
+
const kb = this.store
|
|
980
|
+
const requests = kb.statementsMatching(undefined, this.ns.link('requestedURI'), kb.sym(docuri), meta).map(st => st.subject)
|
|
981
|
+
for (const request of requests) {
|
|
982
|
+
const response = kb.any(request, this.ns.link('response'), null, meta) as Quad_Subject
|
|
983
|
+
if (response !== undefined) { // ts
|
|
984
|
+
const quad = kb.statementsMatching(response, this.ns.link('outOfDate'), true as any, meta)
|
|
985
|
+
kb.remove(quad)
|
|
986
|
+
options.force = true
|
|
987
|
+
options.clearPreviousData = true
|
|
988
|
+
}
|
|
989
|
+
}
|
|
977
990
|
|
|
978
991
|
const initialisedOptions = this.initFetchOptions(docuri, options)
|
|
979
992
|
|
package/src/jsonldparser.js
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
import jsonld from 'jsonld'
|
|
3
1
|
import { arrayToStatements } from './utils'
|
|
4
2
|
|
|
5
3
|
/**
|
|
@@ -70,8 +68,8 @@ export default function jsonldParser (str, kb, base, callback) {
|
|
|
70
68
|
? base.value
|
|
71
69
|
: base
|
|
72
70
|
|
|
73
|
-
return jsonld
|
|
74
|
-
.flatten(JSON.parse(str), null, { base: baseString })
|
|
71
|
+
return import('jsonld')
|
|
72
|
+
.then(jsonld => { return jsonld.flatten(JSON.parse(str), null, { base: baseString }) })
|
|
75
73
|
.then((flattened) => flattened.reduce((store, flatResource) => {
|
|
76
74
|
|
|
77
75
|
kb = processResource(kb, base, flatResource)
|
package/src/store.ts
CHANGED
|
@@ -871,10 +871,27 @@ export default class IndexedFormula extends Formula { // IN future - allow pass
|
|
|
871
871
|
}
|
|
872
872
|
|
|
873
873
|
/**
|
|
874
|
-
* Removes all statements in a doc
|
|
874
|
+
* Removes all statements in a doc, along with the related metadata including request/response
|
|
875
875
|
* @param doc - The document / graph
|
|
876
876
|
*/
|
|
877
877
|
removeDocument(doc: Quad_Graph): IndexedFormula {
|
|
878
|
+
const meta = this.sym('chrome://TheCurrentSession') // or this.rdfFactory.namedNode('chrome://TheCurrentSession')
|
|
879
|
+
const linkNamespaceURI = 'http://www.w3.org/2007/ont/link#' // alain
|
|
880
|
+
// remove request/response and metadata
|
|
881
|
+
const requests = this.statementsMatching(undefined, this.sym(`${linkNamespaceURI}requestedURI`), this.rdfFactory.literal(doc.value), meta).map(st => st.subject)
|
|
882
|
+
for (var r = 0; r < requests.length; r++) {
|
|
883
|
+
const request = requests[r]
|
|
884
|
+
if (request !== undefined) {
|
|
885
|
+
this.removeMatches(request, null, null, meta)
|
|
886
|
+
const response = this.any(request, this.sym(`${linkNamespaceURI}response`), null, meta) as Quad_Subject
|
|
887
|
+
if (response !== undefined) { // ts
|
|
888
|
+
this.removeMatches(response, null, null, meta)
|
|
889
|
+
}
|
|
890
|
+
}
|
|
891
|
+
}
|
|
892
|
+
this.removeMatches(this.sym(doc.value), null, null, meta) // content-type
|
|
893
|
+
|
|
894
|
+
// remove document
|
|
878
895
|
var sts: Quad[] = this.statementsMatching(undefined, undefined, undefined, doc).slice() // Take a copy as this is the actual index
|
|
879
896
|
for (var i = 0; i < sts.length; i++) {
|
|
880
897
|
this.removeStatement(sts[i])
|
package/src/update-manager.ts
CHANGED
|
@@ -87,14 +87,16 @@ export default class UpdateManager {
|
|
|
87
87
|
* the user logs in, then that data misrepresents what would happen
|
|
88
88
|
* if the user tried again.
|
|
89
89
|
*/
|
|
90
|
-
flagAuthorizationMetadata () {
|
|
91
|
-
|
|
92
|
-
|
|
90
|
+
flagAuthorizationMetadata (kb?: IndexedFormula) {
|
|
91
|
+
if (!kb) {
|
|
92
|
+
kb = this.store
|
|
93
|
+
}
|
|
94
|
+
const meta = kb.fetcher?.appNode
|
|
93
95
|
const requests = kb.statementsMatching(undefined, this.ns.link('requestedURI'), undefined, meta).map(st => st.subject)
|
|
94
96
|
for (const request of requests) {
|
|
95
97
|
const response = kb.any(request, this.ns.link('response'), null, meta) as Quad_Subject
|
|
96
98
|
if (response !== undefined) { // ts
|
|
97
|
-
|
|
99
|
+
kb.add(response, this.ns.link('outOfDate'), true as any, meta) // @@ Boolean is fine - fix types
|
|
98
100
|
}
|
|
99
101
|
}
|
|
100
102
|
}
|
|
@@ -111,11 +113,18 @@ flagAuthorizationMetadata () {
|
|
|
111
113
|
* LOCALFILE or false if known, undefined if not known.
|
|
112
114
|
*/
|
|
113
115
|
async checkEditable (uri: string | NamedNode, kb?: IndexedFormula): Promise<string | boolean | undefined> {
|
|
114
|
-
|
|
116
|
+
if (!uri) {
|
|
117
|
+
return false // Eg subject is bnode, no known doc to write to
|
|
118
|
+
}
|
|
119
|
+
if (!kb) {
|
|
120
|
+
kb = this.store
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
const initial = this.editable(uri, kb)
|
|
115
124
|
if (initial !== undefined) {
|
|
116
125
|
return initial
|
|
117
126
|
}
|
|
118
|
-
await
|
|
127
|
+
await kb.fetcher?.load(uri)
|
|
119
128
|
const final = this.editable(uri, kb)
|
|
120
129
|
// console.log(`Loaded ${uri} just to check editable, result: ${final}.`)
|
|
121
130
|
return final
|
|
@@ -141,17 +150,17 @@ flagAuthorizationMetadata () {
|
|
|
141
150
|
uri = termValue(uri)
|
|
142
151
|
|
|
143
152
|
if ( !this.isHttpUri(uri as string) ) {
|
|
144
|
-
if (
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
153
|
+
if (kb.holds(
|
|
154
|
+
kb.rdfFactory.namedNode(uri),
|
|
155
|
+
kb.rdfFactory.namedNode('http://www.w3.org/1999/02/22-rdf-syntax-ns#type'),
|
|
156
|
+
kb.rdfFactory.namedNode('http://www.w3.org/2007/ont/link#MachineEditableDocument'))) {
|
|
148
157
|
return 'LOCALFILE'
|
|
149
158
|
}
|
|
150
159
|
}
|
|
151
160
|
|
|
152
161
|
var request
|
|
153
162
|
var definitive = false
|
|
154
|
-
const meta =
|
|
163
|
+
const meta = kb.fetcher?.appNode
|
|
155
164
|
// const kb = s
|
|
156
165
|
|
|
157
166
|
// @ts-ignore passes a string to kb.each, which expects a term. Should this work?
|