@superbee/core 0.2.0-pre.21 → 0.2.0-pre.23

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 (51) hide show
  1. package/README.md +56 -2
  2. package/dist/connector-request.d.ts +87 -0
  3. package/dist/connector-request.d.ts.map +1 -0
  4. package/dist/connector-request.js +370 -0
  5. package/dist/connector-request.js.map +1 -0
  6. package/dist/connectors.d.ts +32 -0
  7. package/dist/connectors.d.ts.map +1 -1
  8. package/dist/connectors.js +30 -1
  9. package/dist/connectors.js.map +1 -1
  10. package/dist/recipe-lifecycle/evolution.d.ts.map +1 -1
  11. package/dist/recipe-lifecycle/evolution.js +49 -13
  12. package/dist/recipe-lifecycle/evolution.js.map +1 -1
  13. package/dist/recipe-lifecycle/install.d.ts.map +1 -1
  14. package/dist/recipe-lifecycle/install.js +2 -2
  15. package/dist/recipe-lifecycle/install.js.map +1 -1
  16. package/dist/recipe-lifecycle/stamp.d.ts +2 -0
  17. package/dist/recipe-lifecycle/stamp.d.ts.map +1 -1
  18. package/dist/recipe-lifecycle/stamp.js +5 -1
  19. package/dist/recipe-lifecycle/stamp.js.map +1 -1
  20. package/dist/source-engine/guard.d.ts +4 -8
  21. package/dist/source-engine/guard.d.ts.map +1 -1
  22. package/dist/source-engine/guard.js +32 -5
  23. package/dist/source-engine/guard.js.map +1 -1
  24. package/dist/source-engine/index.d.ts +2 -0
  25. package/dist/source-engine/index.d.ts.map +1 -1
  26. package/dist/source-engine/index.js +1 -0
  27. package/dist/source-engine/index.js.map +1 -1
  28. package/dist/source-engine/observe.d.ts.map +1 -1
  29. package/dist/source-engine/observe.js +29 -7
  30. package/dist/source-engine/observe.js.map +1 -1
  31. package/dist/source-engine/overlay.d.ts +49 -0
  32. package/dist/source-engine/overlay.d.ts.map +1 -0
  33. package/dist/source-engine/overlay.js +114 -0
  34. package/dist/source-engine/overlay.js.map +1 -0
  35. package/dist/source-engine/types.d.ts +2 -0
  36. package/dist/source-engine/types.d.ts.map +1 -1
  37. package/dist/source-harness/conformance.d.ts.map +1 -1
  38. package/dist/source-harness/conformance.js +13 -12
  39. package/dist/source-harness/conformance.js.map +1 -1
  40. package/dist/source-harness/fixture.d.ts.map +1 -1
  41. package/dist/source-harness/fixture.js +30 -18
  42. package/dist/source-harness/fixture.js.map +1 -1
  43. package/dist/source-profiles/index.d.ts +31 -0
  44. package/dist/source-profiles/index.d.ts.map +1 -0
  45. package/dist/source-profiles/index.js +206 -0
  46. package/dist/source-profiles/index.js.map +1 -0
  47. package/dist/source-profiles/link-header.d.ts +6 -0
  48. package/dist/source-profiles/link-header.d.ts.map +1 -0
  49. package/dist/source-profiles/link-header.js +131 -0
  50. package/dist/source-profiles/link-header.js.map +1 -0
  51. package/package.json +6 -1
@@ -0,0 +1,131 @@
1
+ /** Bounded Link-field parsing for paging; parameter values never become parameter syntax. */
2
+ import { unsupportedContent } from "../source-engine/index.js";
3
+ const TOKEN_CHAR = /^[!#$%&'*+.^_`|~0-9A-Za-z-]$/;
4
+ const MAX_HEADER = 65_536;
5
+ const MAX_LINKS = 128;
6
+ const MAX_PARAMETERS = 64;
7
+ /**
8
+ * RFC 8288 sections 3 and 3.3, with quoted-pairs from RFC 7230 section 3.2.6.
9
+ * Malformed or unsupported input refuses the page, rather than establishing terminal completeness.
10
+ */
11
+ export function nextLinkTarget(header, base) {
12
+ if (header.length > MAX_HEADER)
13
+ unsupportedContent("Link header exceeds parser bound");
14
+ let at = 0;
15
+ let links = 0;
16
+ let next;
17
+ const malformed = () => unsupportedContent("malformed Link header");
18
+ const whitespace = () => { while (header[at] === " " || header[at] === "\t")
19
+ at++; };
20
+ const token = () => {
21
+ const begin = at;
22
+ while (at < header.length && TOKEN_CHAR.test(header[at]))
23
+ at++;
24
+ if (at === begin)
25
+ malformed();
26
+ return header.slice(begin, at);
27
+ };
28
+ const quoted = () => {
29
+ at++; // opening DQUOTE
30
+ let value = "";
31
+ while (at < header.length) {
32
+ let ch = header[at++];
33
+ if (ch === '"')
34
+ return value;
35
+ if (ch === "\\") {
36
+ if (at === header.length)
37
+ malformed();
38
+ ch = header[at++];
39
+ }
40
+ const code = ch.charCodeAt(0);
41
+ if (code !== 9 && (code < 32 || code === 127 || code > 255))
42
+ malformed();
43
+ value += ch;
44
+ }
45
+ return malformed();
46
+ };
47
+ whitespace();
48
+ while (at < header.length) {
49
+ if (++links > MAX_LINKS)
50
+ unsupportedContent("too many Link targets");
51
+ if (header[at++] !== "<")
52
+ malformed();
53
+ const begin = at;
54
+ while (at < header.length && header[at] !== ">") {
55
+ const ch = header[at++];
56
+ const code = ch.charCodeAt(0);
57
+ if (code <= 32 || code >= 127 || ch === "<" || ch === '"' || ch === "\\")
58
+ malformed();
59
+ }
60
+ if (header[at] !== ">")
61
+ malformed();
62
+ const target = header.slice(begin, at++);
63
+ let relation;
64
+ let anchor;
65
+ let parameters = 0;
66
+ whitespace();
67
+ while (header[at] === ";") {
68
+ if (++parameters > MAX_PARAMETERS)
69
+ unsupportedContent("too many Link parameters");
70
+ at++;
71
+ whitespace();
72
+ const name = token().toLowerCase();
73
+ whitespace();
74
+ let value;
75
+ if (header[at] === "=") {
76
+ at++;
77
+ whitespace();
78
+ value = header[at] === '"' ? quoted() : token();
79
+ whitespace();
80
+ }
81
+ if (name === "rel" && relation === undefined) {
82
+ if (value === undefined || value === "")
83
+ malformed();
84
+ relation = value;
85
+ }
86
+ if (name === "anchor" && anchor === undefined) {
87
+ if (value === undefined)
88
+ malformed();
89
+ anchor = value;
90
+ }
91
+ if (at < header.length && header[at] !== ";" && header[at] !== ",")
92
+ malformed();
93
+ }
94
+ if (relation === undefined)
95
+ return malformed();
96
+ let resolved;
97
+ try {
98
+ resolved = new URL(target, base).href;
99
+ if (anchor !== undefined && new URL(anchor, base).href !== new URL(base).href)
100
+ unsupportedContent("Link context override is unsupported");
101
+ }
102
+ catch {
103
+ return unsupportedContent("invalid Link target or context");
104
+ }
105
+ const relations = relation.toLowerCase().split(/[ \t]+/);
106
+ for (const name of relations) {
107
+ if (/^[a-z][a-z0-9.-]*$/.test(name))
108
+ continue;
109
+ try {
110
+ new URL(name);
111
+ }
112
+ catch {
113
+ malformed();
114
+ }
115
+ }
116
+ if (relations.includes("next")) {
117
+ if (next !== undefined)
118
+ unsupportedContent("multiple next links");
119
+ next = resolved;
120
+ }
121
+ if (at === header.length)
122
+ break;
123
+ if (header[at++] !== ",")
124
+ malformed();
125
+ whitespace();
126
+ if (at === header.length)
127
+ malformed();
128
+ }
129
+ return next;
130
+ }
131
+ //# sourceMappingURL=link-header.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"link-header.js","sourceRoot":"","sources":["../../src/source-profiles/link-header.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@superbee/core",
3
- "version": "0.2.0-pre.21",
3
+ "version": "0.2.0-pre.23",
4
4
  "type": "module",
5
5
  "description": "OKF store engine \u2014 bundle I/O, cross-links, derived backlinks, freshness, and versioned writes.",
6
6
  "license": "Apache-2.0",
@@ -206,6 +206,10 @@
206
206
  "./kind-authoring": {
207
207
  "types": "./dist/kind-authoring.d.ts",
208
208
  "default": "./dist/kind-authoring.js"
209
+ },
210
+ "./source-profiles": {
211
+ "types": "./dist/source-profiles/index.d.ts",
212
+ "default": "./dist/source-profiles/index.js"
209
213
  }
210
214
  },
211
215
  "files": [
@@ -223,6 +227,7 @@
223
227
  "prepublishOnly": "node -e \"console.error('@superbee/core is released by .github/workflows/release-libraries.yml; do not run npm publish here'); process.exit(1)\""
224
228
  },
225
229
  "dependencies": {
230
+ "graphql": "17.0.2",
226
231
  "gray-matter": "^4.0.3",
227
232
  "js-yaml": "^3.15.2"
228
233
  },