@websolutespa/bom-next 3.0.2 → 4.0.0-next.0
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/CHANGELOG.md +17 -7
- package/dist/_virtual/{_rolldown/runtime.js → rolldown_runtime.js} +7 -4
- package/dist/client/client.d.ts.map +1 -1
- package/dist/client/client.js +17 -6
- package/dist/client/client.js.map +1 -1
- package/dist/client/extra.d.ts +3 -3
- package/dist/client/extra.d.ts.map +1 -1
- package/dist/client/extra.js +10 -5
- package/dist/client/extra.js.map +1 -1
- package/dist/client/label.d.ts.map +1 -1
- package/dist/client/label.js +10 -5
- package/dist/client/label.js.map +1 -1
- package/dist/client/layout.d.ts +3 -3
- package/dist/client/layout.d.ts.map +1 -1
- package/dist/client/layout.js +10 -5
- package/dist/client/layout.js.map +1 -1
- package/dist/client/local.collection.d.ts.map +1 -1
- package/dist/client/local.collection.js +4 -2
- package/dist/client/local.collection.js.map +1 -1
- package/dist/client/metadata.d.ts +3 -3
- package/dist/client/metadata.d.ts.map +1 -1
- package/dist/client/metadata.js +48 -40
- package/dist/client/metadata.js.map +1 -1
- package/dist/client/page.d.ts +3 -3
- package/dist/client/page.d.ts.map +1 -1
- package/dist/client/page.js +10 -5
- package/dist/client/page.js.map +1 -1
- package/dist/client/useApi.d.ts +7 -7
- package/dist/client/useApi.d.ts.map +1 -1
- package/dist/client/useApi.js +2 -1
- package/dist/client/useApi.js.map +1 -1
- package/dist/client/useCollectionApi.d.ts +6 -6
- package/dist/client/useCollectionApi.d.ts.map +1 -1
- package/dist/client/useCollectionApi.js +4 -2
- package/dist/client/useCollectionApi.js.map +1 -1
- package/dist/client/useExtra.d.ts.map +1 -1
- package/dist/client/useExtra.js +5 -2
- package/dist/client/useExtra.js.map +1 -1
- package/dist/client/useHttp.d.ts.map +1 -1
- package/dist/client/useHttp.js +9 -6
- package/dist/client/useHttp.js.map +1 -1
- package/dist/client/useLabel.d.ts.map +1 -1
- package/dist/client/useLabel.js +5 -2
- package/dist/client/useLabel.js.map +1 -1
- package/dist/client/useLayout.d.ts.map +1 -1
- package/dist/client/useLayout.js +5 -2
- package/dist/client/useLayout.js.map +1 -1
- package/dist/client/useLink.d.ts.map +1 -1
- package/dist/client/useLink.js +7 -3
- package/dist/client/useLink.js.map +1 -1
- package/dist/client/useMetaData.d.ts.map +1 -1
- package/dist/client/useMetaData.js +5 -2
- package/dist/client/useMetaData.js.map +1 -1
- package/dist/client/usePage.d.ts.map +1 -1
- package/dist/client/usePage.js +5 -2
- package/dist/client/usePage.js.map +1 -1
- package/dist/client/useUser.d.ts.map +1 -1
- package/dist/client/useUser.js +5 -2
- package/dist/client/useUser.js.map +1 -1
- package/dist/client/user.d.ts.map +1 -1
- package/dist/client/user.js +17 -11
- package/dist/client/user.js.map +1 -1
- package/dist/exports/client.js +2 -1
- package/dist/exports/instrumentation.js +2 -1
- package/dist/exports/proxy.js +2 -1
- package/dist/exports/server.js +2 -1
- package/dist/index.js +2 -1
- package/dist/instrumentation/client.d.ts.map +1 -1
- package/dist/instrumentation/client.js +2 -1
- package/dist/instrumentation/client.js.map +1 -1
- package/dist/instrumentation/sentry/capture.requestError.js +4 -1
- package/dist/instrumentation/sentry/capture.requestError.js.map +1 -1
- package/dist/instrumentation/sentry/capture.routerTransitionStart.js +2 -1
- package/dist/instrumentation/sentry/capture.routerTransitionStart.js.map +1 -1
- package/dist/instrumentation/sentry/config.client.js +10 -2
- package/dist/instrumentation/sentry/config.client.js.map +1 -0
- package/dist/instrumentation/sentry/config.edge.js +10 -2
- package/dist/instrumentation/sentry/config.edge.js.map +1 -0
- package/dist/instrumentation/sentry/config.server.js +10 -2
- package/dist/instrumentation/sentry/config.server.js.map +1 -0
- package/dist/instrumentation/server.d.ts.map +1 -1
- package/dist/instrumentation/server.js +8 -5
- package/dist/instrumentation/server.js.map +1 -1
- package/dist/instrumentation/types.d.ts.map +1 -1
- package/dist/lib/breadcrumb.d.ts.map +1 -1
- package/dist/lib/breadcrumb.js +6 -1
- package/dist/lib/breadcrumb.js.map +1 -1
- package/dist/lib/const.d.ts.map +1 -1
- package/dist/lib/const.js +1 -1
- package/dist/lib/const.js.map +1 -1
- package/dist/lib/http.d.ts.map +1 -1
- package/dist/lib/http.js +6 -3
- package/dist/lib/http.js.map +1 -1
- package/dist/lib/label.d.ts.map +1 -1
- package/dist/lib/label.js +4 -3
- package/dist/lib/label.js.map +1 -1
- package/dist/lib/layout.defaults.d.ts.map +1 -1
- package/dist/lib/layout.defaults.js +1 -1
- package/dist/lib/layout.defaults.js.map +1 -1
- package/dist/lib/link.d.ts.map +1 -1
- package/dist/lib/link.js +2 -1
- package/dist/lib/link.js.map +1 -1
- package/dist/lib/meta-data.d.ts.map +1 -1
- package/dist/lib/open-graph.d.ts.map +1 -1
- package/dist/lib/pagination.d.ts.map +1 -1
- package/dist/lib/pagination.js +4 -2
- package/dist/lib/pagination.js.map +1 -1
- package/dist/lib/route.d.ts.map +1 -1
- package/dist/lib/route.js +9 -3
- package/dist/lib/route.js.map +1 -1
- package/dist/lib/store.d.ts.map +1 -1
- package/dist/lib/store.js +31 -31
- package/dist/lib/store.js.map +1 -1
- package/dist/lib/structured-data.d.ts.map +1 -1
- package/dist/lib/twitter-card.d.ts.map +1 -1
- package/dist/lib/utils.d.ts.map +1 -1
- package/dist/lib/utils.js +3 -2
- package/dist/lib/utils.js.map +1 -1
- package/dist/mock.d.ts.map +1 -1
- package/dist/node_modules/@selderee/plugin-htmlparser2/lib/hp2-builder.js +3 -2
- package/dist/node_modules/@selderee/plugin-htmlparser2/lib/hp2-builder.js.map +1 -1
- package/dist/node_modules/deepmerge/dist/cjs.js +17 -9
- package/dist/node_modules/deepmerge/dist/cjs.js.map +1 -1
- package/dist/node_modules/dom-serializer/lib/esm/foreignNames.js +2 -2
- package/dist/node_modules/dom-serializer/lib/esm/foreignNames.js.map +1 -1
- package/dist/node_modules/dom-serializer/lib/esm/index.js +10 -15
- package/dist/node_modules/dom-serializer/lib/esm/index.js.map +1 -1
- package/dist/node_modules/domelementtype/lib/esm/index.js +12 -12
- package/dist/node_modules/domelementtype/lib/esm/index.js.map +1 -1
- package/dist/node_modules/domhandler/lib/esm/index.js +4 -3
- package/dist/node_modules/domhandler/lib/esm/index.js.map +1 -1
- package/dist/node_modules/domhandler/lib/esm/node.js +8 -7
- package/dist/node_modules/domhandler/lib/esm/node.js.map +1 -1
- package/dist/node_modules/entities/lib/esm/decode.js +33 -32
- package/dist/node_modules/entities/lib/esm/decode.js.map +1 -1
- package/dist/node_modules/entities/lib/esm/decode_codepoint.js +5 -5
- package/dist/node_modules/entities/lib/esm/decode_codepoint.js.map +1 -1
- package/dist/node_modules/entities/lib/esm/escape.js +14 -6
- package/dist/node_modules/entities/lib/esm/escape.js.map +1 -1
- package/dist/node_modules/entities/lib/esm/generated/decode-data-html.js +2 -2
- package/dist/node_modules/entities/lib/esm/generated/decode-data-html.js.map +1 -1
- package/dist/node_modules/entities/lib/esm/generated/decode-data-xml.js +2 -2
- package/dist/node_modules/entities/lib/esm/generated/decode-data-xml.js.map +1 -1
- package/dist/node_modules/html-to-text/lib/html-to-text.js +45 -33
- package/dist/node_modules/html-to-text/lib/html-to-text.js.map +1 -1
- package/dist/node_modules/html-to-text/node_modules/htmlparser2/lib/esm/Parser.js +25 -25
- package/dist/node_modules/html-to-text/node_modules/htmlparser2/lib/esm/Parser.js.map +1 -1
- package/dist/node_modules/html-to-text/node_modules/htmlparser2/lib/esm/Tokenizer.js +76 -73
- package/dist/node_modules/html-to-text/node_modules/htmlparser2/lib/esm/Tokenizer.js.map +1 -1
- package/dist/node_modules/html-to-text/node_modules/htmlparser2/lib/esm/index.js +4 -3
- package/dist/node_modules/html-to-text/node_modules/htmlparser2/lib/esm/index.js.map +1 -1
- package/dist/node_modules/leac/lib/leac.js +72 -72
- package/dist/node_modules/leac/lib/leac.js.map +1 -1
- package/dist/node_modules/parseley/lib/parseley.js +37 -33
- package/dist/node_modules/parseley/lib/parseley.js.map +1 -1
- package/dist/node_modules/peberminta/lib/core.js +4 -4
- package/dist/node_modules/peberminta/lib/core.js.map +1 -1
- package/dist/node_modules/selderee/lib/selderee.js +16 -10
- package/dist/node_modules/selderee/lib/selderee.js.map +1 -1
- package/dist/proxy/protected-route.d.ts.map +1 -1
- package/dist/proxy/protected-route.js +11 -6
- package/dist/proxy/protected-route.js.map +1 -1
- package/dist/proxy/proxy.d.ts.map +1 -1
- package/dist/proxy/proxy.js +17 -2
- package/dist/proxy/proxy.js.map +1 -1
- package/dist/proxy/route-auto-detection.d.ts.map +1 -1
- package/dist/proxy/route-auto-detection.js +26 -14
- package/dist/proxy/route-auto-detection.js.map +1 -1
- package/dist/proxy/route-proxy.d.ts.map +1 -1
- package/dist/proxy/route-proxy.js +22 -5
- package/dist/proxy/route-proxy.js.map +1 -1
- package/dist/server/context.d.ts.map +1 -1
- package/dist/server/context.js +20 -2
- package/dist/server/context.js.map +1 -1
- package/dist/server/handlers/auth.handler.d.ts.map +1 -1
- package/dist/server/handlers/auth.handler.js +4 -2
- package/dist/server/handlers/auth.handler.js.map +1 -1
- package/dist/server/handlers/captions.handler.d.ts.map +1 -1
- package/dist/server/handlers/captions.handler.js +4 -2
- package/dist/server/handlers/captions.handler.js.map +1 -1
- package/dist/server/handlers/collection.handler.d.ts.map +1 -1
- package/dist/server/handlers/collection.handler.js +2 -1
- package/dist/server/handlers/collection.handler.js.map +1 -1
- package/dist/server/handlers/error-response.js +6 -2
- package/dist/server/handlers/error-response.js.map +1 -1
- package/dist/server/handlers/index.handler.d.ts.map +1 -1
- package/dist/server/handlers/index.handler.js +2 -1
- package/dist/server/handlers/index.handler.js.map +1 -1
- package/dist/server/handlers/preview.handler.d.ts.map +1 -1
- package/dist/server/handlers/preview.handler.js +6 -3
- package/dist/server/handlers/preview.handler.js.map +1 -1
- package/dist/server/handlers/registry.handler.d.ts.map +1 -1
- package/dist/server/handlers/registry.handler.js +14 -9
- package/dist/server/handlers/registry.handler.js.map +1 -1
- package/dist/server/handlers/route.handler.d.ts.map +1 -1
- package/dist/server/handlers/route.handler.js +12 -3
- package/dist/server/handlers/route.handler.js.map +1 -1
- package/dist/server/handlers/sitemap.handler.d.ts.map +1 -1
- package/dist/server/handlers/sitemap.handler.js +12 -9
- package/dist/server/handlers/sitemap.handler.js.map +1 -1
- package/dist/server/handlers/static-params.handler.d.ts.map +1 -1
- package/dist/server/handlers/static-params.handler.js +13 -8
- package/dist/server/handlers/static-params.handler.js.map +1 -1
- package/dist/server/handlers/vars.handler.d.ts.map +1 -1
- package/dist/server/handlers/vars.handler.js +5 -4
- package/dist/server/handlers/vars.handler.js.map +1 -1
- package/dist/server/layout.js +34 -12
- package/dist/server/layout.js.map +1 -1
- package/dist/server/lazy.d.ts.map +1 -1
- package/dist/server/lazy.js +5 -2
- package/dist/server/lazy.js.map +1 -1
- package/dist/server/local-api.d.ts.map +1 -1
- package/dist/server/local-api.js +12 -6
- package/dist/server/local-api.js.map +1 -1
- package/dist/server/metadata.d.ts.map +1 -1
- package/dist/server/metadata.js +5 -1
- package/dist/server/metadata.js.map +1 -1
- package/dist/server/mixer-payload.d.ts +1 -1
- package/dist/server/mixer-payload.d.ts.map +1 -1
- package/dist/server/mixer.d.ts.map +1 -1
- package/dist/server/mixer.js +183 -57
- package/dist/server/mixer.js.map +1 -1
- package/dist/server/page.d.ts.map +1 -1
- package/dist/server/page.js +15 -4
- package/dist/server/page.js.map +1 -1
- package/dist/server/utils.d.ts.map +1 -1
- package/dist/server/utils.js +4 -2
- package/dist/server/utils.js.map +1 -1
- package/dist/server/utmz.d.ts.map +1 -1
- package/dist/server/utmz.js +1 -1
- package/dist/server/utmz.js.map +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +11 -11
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../../../../../../../../node_modules/html-to-text/node_modules/htmlparser2/lib/esm/index.js"],"sourcesContent":["import { Parser } from \"./Parser.js\";\nexport { Parser } from \"./Parser.js\";\nimport { DomHandler, } from \"domhandler\";\nexport { DomHandler, \n// Old name for DomHandler\nDomHandler as DefaultHandler, } from \"domhandler\";\n// Helper methods\n/**\n * Parses the data, returns the resulting document.\n *\n * @param data The data that should be parsed.\n * @param options Optional options for the parser and DOM builder.\n */\nexport function parseDocument(data, options) {\n const handler = new DomHandler(undefined, options);\n new Parser(handler, options).end(data);\n return handler.root;\n}\n/**\n * Parses data, returns an array of the root nodes.\n *\n * Note that the root nodes still have a `Document` node as their parent.\n * Use `parseDocument` to get the `Document` node instead.\n *\n * @param data The data that should be parsed.\n * @param options Optional options for the parser and DOM builder.\n * @deprecated Use `parseDocument` instead.\n */\nexport function parseDOM(data, options) {\n return parseDocument(data, options).children;\n}\n/**\n * Creates a parser instance, with an attached DOM handler.\n *\n * @param callback A callback that will be called once parsing has been completed.\n * @param options Optional options for the parser and DOM builder.\n * @param elementCallback An optional callback that will be called every time a tag has been completed inside of the DOM.\n */\nexport function createDomStream(callback, options, elementCallback) {\n const handler = new DomHandler(callback, options, elementCallback);\n return new Parser(handler, options);\n}\nexport { default as Tokenizer, } from \"./Tokenizer.js\";\n/*\n * All of the following exports exist for backwards-compatibility.\n * They should probably be removed eventually.\n */\nexport * as ElementType from \"domelementtype\";\nimport { getFeed } from \"domutils\";\nexport { getFeed } from \"domutils\";\nconst parseFeedDefaultOptions = { xmlMode: true };\n/**\n * Parse a feed.\n *\n * @param feed The feed that should be parsed, as a string.\n * @param options Optionally, options for parsing. When using this, you should set `xmlMode` to `true`.\n */\nexport function parseFeed(feed, options = parseFeedDefaultOptions) {\n return getFeed(parseDOM(feed, options));\n}\nexport * as DomUtils from \"domutils\";\n//# sourceMappingURL=index.js.map"],"x_google_ignoreList":[0],"mappings":";;;;;;;;;;;AAaA,SAAgB,cAAc,MAAM,SAAS;CACzC,MAAM,UAAU,IAAI,WAAW,QAAW;CAC1C,IAAI,OAAO,SAAS,SAAS,IAAI,KAAK;AACtC,QAAO,QAAQ;AAClB"}
|
|
@@ -1,101 +1,101 @@
|
|
|
1
|
-
//#region
|
|
1
|
+
//#region ../../../node_modules/leac/lib/leac.mjs
|
|
2
2
|
const e = /\n/g;
|
|
3
|
-
function n(n) {
|
|
4
|
-
const o = [...n.matchAll(e)].map(((e) => e.index || 0));
|
|
5
|
-
o.unshift(-1);
|
|
6
|
-
const s = t(o, 0, o.length);
|
|
7
|
-
return (e) => r(s, e);
|
|
3
|
+
function n(n$1) {
|
|
4
|
+
const o$1 = [...n$1.matchAll(e)].map(((e$1) => e$1.index || 0));
|
|
5
|
+
o$1.unshift(-1);
|
|
6
|
+
const s$1 = t(o$1, 0, o$1.length);
|
|
7
|
+
return (e$1) => r(s$1, e$1);
|
|
8
8
|
}
|
|
9
|
-
function t(e, n, r) {
|
|
10
|
-
if (r - n == 1) return {
|
|
11
|
-
offset: e[n],
|
|
12
|
-
index: n + 1
|
|
9
|
+
function t(e$1, n$1, r$1) {
|
|
10
|
+
if (r$1 - n$1 == 1) return {
|
|
11
|
+
offset: e$1[n$1],
|
|
12
|
+
index: n$1 + 1
|
|
13
13
|
};
|
|
14
|
-
const o = Math.ceil((n + r) / 2), s = t(e, n, o), l = t(e, o, r);
|
|
14
|
+
const o$1 = Math.ceil((n$1 + r$1) / 2), s$1 = t(e$1, n$1, o$1), l$1 = t(e$1, o$1, r$1);
|
|
15
15
|
return {
|
|
16
|
-
offset: s.offset,
|
|
17
|
-
low: s,
|
|
18
|
-
high: l
|
|
16
|
+
offset: s$1.offset,
|
|
17
|
+
low: s$1,
|
|
18
|
+
high: l$1
|
|
19
19
|
};
|
|
20
20
|
}
|
|
21
|
-
function r(e, n) {
|
|
22
|
-
return function(e) {
|
|
23
|
-
return Object.prototype.hasOwnProperty.call(e, "index");
|
|
24
|
-
}(e) ? {
|
|
25
|
-
line: e.index,
|
|
26
|
-
column: n - e.offset
|
|
27
|
-
} : r(e.high.offset < n ? e.high : e.low, n);
|
|
21
|
+
function r(e$1, n$1) {
|
|
22
|
+
return function(e$2) {
|
|
23
|
+
return Object.prototype.hasOwnProperty.call(e$2, "index");
|
|
24
|
+
}(e$1) ? {
|
|
25
|
+
line: e$1.index,
|
|
26
|
+
column: n$1 - e$1.offset
|
|
27
|
+
} : r(e$1.high.offset < n$1 ? e$1.high : e$1.low, n$1);
|
|
28
28
|
}
|
|
29
|
-
function o(e, t = "", r = {}) {
|
|
30
|
-
const o = "string" != typeof t ? t : r, l = "string" == typeof t ? t : "", c = e.map(s), f = !!o.lineNumbers;
|
|
31
|
-
return function(e, t = 0) {
|
|
32
|
-
const r = f ? n(e) : () => ({
|
|
29
|
+
function o(e$1, t$1 = "", r$1 = {}) {
|
|
30
|
+
const o$1 = "string" != typeof t$1 ? t$1 : r$1, l$1 = "string" == typeof t$1 ? t$1 : "", c$1 = e$1.map(s), f = !!o$1.lineNumbers;
|
|
31
|
+
return function(e$2, t$2 = 0) {
|
|
32
|
+
const r$2 = f ? n(e$2) : () => ({
|
|
33
33
|
line: 0,
|
|
34
34
|
column: 0
|
|
35
35
|
});
|
|
36
|
-
let o = t;
|
|
37
|
-
const s = [];
|
|
38
|
-
e: for (; o < e.length;) {
|
|
39
|
-
let n = !1;
|
|
40
|
-
for (const t of c) {
|
|
41
|
-
t.regex.lastIndex = o;
|
|
42
|
-
const c = t.regex.exec(e);
|
|
43
|
-
if (c && c[0].length > 0) {
|
|
44
|
-
if (!t.discard) {
|
|
45
|
-
const e = r(o), n = "string" == typeof t.replace ? c[0].replace(new RegExp(t.regex.source, t.regex.flags), t.replace) : c[0];
|
|
46
|
-
s.push({
|
|
47
|
-
state: l,
|
|
48
|
-
name: t.name,
|
|
49
|
-
text: n,
|
|
50
|
-
offset: o,
|
|
51
|
-
len: c[0].length,
|
|
52
|
-
line: e.line,
|
|
53
|
-
column: e.column
|
|
36
|
+
let o$2 = t$2;
|
|
37
|
+
const s$1 = [];
|
|
38
|
+
e: for (; o$2 < e$2.length;) {
|
|
39
|
+
let n$1 = !1;
|
|
40
|
+
for (const t$3 of c$1) {
|
|
41
|
+
t$3.regex.lastIndex = o$2;
|
|
42
|
+
const c$2 = t$3.regex.exec(e$2);
|
|
43
|
+
if (c$2 && c$2[0].length > 0) {
|
|
44
|
+
if (!t$3.discard) {
|
|
45
|
+
const e$3 = r$2(o$2), n$2 = "string" == typeof t$3.replace ? c$2[0].replace(new RegExp(t$3.regex.source, t$3.regex.flags), t$3.replace) : c$2[0];
|
|
46
|
+
s$1.push({
|
|
47
|
+
state: l$1,
|
|
48
|
+
name: t$3.name,
|
|
49
|
+
text: n$2,
|
|
50
|
+
offset: o$2,
|
|
51
|
+
len: c$2[0].length,
|
|
52
|
+
line: e$3.line,
|
|
53
|
+
column: e$3.column
|
|
54
54
|
});
|
|
55
55
|
}
|
|
56
|
-
if (o = t.regex.lastIndex, n = !0, t.push) {
|
|
57
|
-
const n = t.push(e, o);
|
|
58
|
-
s.push(...n.tokens), o = n.offset;
|
|
56
|
+
if (o$2 = t$3.regex.lastIndex, n$1 = !0, t$3.push) {
|
|
57
|
+
const n$2 = t$3.push(e$2, o$2);
|
|
58
|
+
s$1.push(...n$2.tokens), o$2 = n$2.offset;
|
|
59
59
|
}
|
|
60
|
-
if (t.pop) break e;
|
|
60
|
+
if (t$3.pop) break e;
|
|
61
61
|
break;
|
|
62
62
|
}
|
|
63
63
|
}
|
|
64
|
-
if (!n) break;
|
|
64
|
+
if (!n$1) break;
|
|
65
65
|
}
|
|
66
66
|
return {
|
|
67
|
-
tokens: s,
|
|
68
|
-
offset: o,
|
|
69
|
-
complete: e.length <= o
|
|
67
|
+
tokens: s$1,
|
|
68
|
+
offset: o$2,
|
|
69
|
+
complete: e$2.length <= o$2
|
|
70
70
|
};
|
|
71
71
|
};
|
|
72
72
|
}
|
|
73
|
-
function s(e, n) {
|
|
73
|
+
function s(e$1, n$1) {
|
|
74
74
|
return {
|
|
75
|
-
...e,
|
|
76
|
-
regex: l(e, n)
|
|
75
|
+
...e$1,
|
|
76
|
+
regex: l(e$1, n$1)
|
|
77
77
|
};
|
|
78
78
|
}
|
|
79
|
-
function l(e, n) {
|
|
80
|
-
if (0 === e.name.length) throw new Error(`Rule #${n} has empty name, which is not allowed.`);
|
|
81
|
-
if (function(e) {
|
|
82
|
-
return Object.prototype.hasOwnProperty.call(e, "regex");
|
|
83
|
-
}(e)) return function(e) {
|
|
84
|
-
if (e.global) throw new Error(`Regular expression /${e.source}/${e.flags} contains the global flag, which is not allowed.`);
|
|
85
|
-
return e.sticky ? e : new RegExp(e.source, e.flags + "y");
|
|
86
|
-
}(e.regex);
|
|
87
|
-
if (function(e) {
|
|
88
|
-
return Object.prototype.hasOwnProperty.call(e, "str");
|
|
89
|
-
}(e)) {
|
|
90
|
-
if (0 === e.str.length) throw new Error(`Rule #${n} ("${e.name}") has empty "str" property, which is not allowed.`);
|
|
91
|
-
return new RegExp(c(e.str), "y");
|
|
79
|
+
function l(e$1, n$1) {
|
|
80
|
+
if (0 === e$1.name.length) throw new Error(`Rule #${n$1} has empty name, which is not allowed.`);
|
|
81
|
+
if (function(e$2) {
|
|
82
|
+
return Object.prototype.hasOwnProperty.call(e$2, "regex");
|
|
83
|
+
}(e$1)) return function(e$2) {
|
|
84
|
+
if (e$2.global) throw new Error(`Regular expression /${e$2.source}/${e$2.flags} contains the global flag, which is not allowed.`);
|
|
85
|
+
return e$2.sticky ? e$2 : new RegExp(e$2.source, e$2.flags + "y");
|
|
86
|
+
}(e$1.regex);
|
|
87
|
+
if (function(e$2) {
|
|
88
|
+
return Object.prototype.hasOwnProperty.call(e$2, "str");
|
|
89
|
+
}(e$1)) {
|
|
90
|
+
if (0 === e$1.str.length) throw new Error(`Rule #${n$1} ("${e$1.name}") has empty "str" property, which is not allowed.`);
|
|
91
|
+
return new RegExp(c(e$1.str), "y");
|
|
92
92
|
}
|
|
93
|
-
return new RegExp(c(e.name), "y");
|
|
93
|
+
return new RegExp(c(e$1.name), "y");
|
|
94
94
|
}
|
|
95
|
-
function c(e) {
|
|
96
|
-
return e.replace(/[-[\]{}()*+!<=:?./\\^$|#\s,]/g, "\\$&");
|
|
95
|
+
function c(e$1) {
|
|
96
|
+
return e$1.replace(/[-[\]{}()*+!<=:?./\\^$|#\s,]/g, "\\$&");
|
|
97
97
|
}
|
|
98
|
-
//#endregion
|
|
99
|
-
export { o as createLexer };
|
|
100
98
|
|
|
99
|
+
//#endregion
|
|
100
|
+
export { o };
|
|
101
101
|
//# sourceMappingURL=leac.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"leac.js","names":[],"sources":["
|
|
1
|
+
{"version":3,"file":"leac.js","names":["n","o","e","s","r","l","t","c"],"sources":["../../../../../../../node_modules/leac/lib/leac.mjs"],"sourcesContent":["const e=/\\n/g;function n(n){const o=[...n.matchAll(e)].map((e=>e.index||0));o.unshift(-1);const s=t(o,0,o.length);return e=>r(s,e)}function t(e,n,r){if(r-n==1)return{offset:e[n],index:n+1};const o=Math.ceil((n+r)/2),s=t(e,n,o),l=t(e,o,r);return{offset:s.offset,low:s,high:l}}function r(e,n){return function(e){return Object.prototype.hasOwnProperty.call(e,\"index\")}(e)?{line:e.index,column:n-e.offset}:r(e.high.offset<n?e.high:e.low,n)}function o(e,t=\"\",r={}){const o=\"string\"!=typeof t?t:r,l=\"string\"==typeof t?t:\"\",c=e.map(s),f=!!o.lineNumbers;return function(e,t=0){const r=f?n(e):()=>({line:0,column:0});let o=t;const s=[];e:for(;o<e.length;){let n=!1;for(const t of c){t.regex.lastIndex=o;const c=t.regex.exec(e);if(c&&c[0].length>0){if(!t.discard){const e=r(o),n=\"string\"==typeof t.replace?c[0].replace(new RegExp(t.regex.source,t.regex.flags),t.replace):c[0];s.push({state:l,name:t.name,text:n,offset:o,len:c[0].length,line:e.line,column:e.column})}if(o=t.regex.lastIndex,n=!0,t.push){const n=t.push(e,o);s.push(...n.tokens),o=n.offset}if(t.pop)break e;break}}if(!n)break}return{tokens:s,offset:o,complete:e.length<=o}}}function s(e,n){return{...e,regex:l(e,n)}}function l(e,n){if(0===e.name.length)throw new Error(`Rule #${n} has empty name, which is not allowed.`);if(function(e){return Object.prototype.hasOwnProperty.call(e,\"regex\")}(e))return function(e){if(e.global)throw new Error(`Regular expression /${e.source}/${e.flags} contains the global flag, which is not allowed.`);return e.sticky?e:new RegExp(e.source,e.flags+\"y\")}(e.regex);if(function(e){return Object.prototype.hasOwnProperty.call(e,\"str\")}(e)){if(0===e.str.length)throw new Error(`Rule #${n} (\"${e.name}\") has empty \"str\" property, which is not allowed.`);return new RegExp(c(e.str),\"y\")}return new RegExp(c(e.name),\"y\")}function c(e){return e.replace(/[-[\\]{}()*+!<=:?./\\\\^$|#\\s,]/g,\"\\\\$&\")}export{o as createLexer};\n"],"x_google_ignoreList":[0],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { ab, abc, choice,
|
|
3
|
-
|
|
1
|
+
import { o } from "../../leac/lib/leac.js";
|
|
2
|
+
import { ab, abc, choice, flatten, left, leftAssoc2, many, many1, map, middle, option, otherwise, right, token } from "../../peberminta/lib/core.js";
|
|
3
|
+
|
|
4
|
+
//#region ../../../node_modules/parseley/lib/parseley.mjs
|
|
4
5
|
const ws = `(?:[ \\t\\r\\n\\f]*)`;
|
|
5
6
|
const nl = `(?:\\n|\\r\\n|\\r|\\f)`;
|
|
6
7
|
const nonascii = `[^\\x00-\\x7F]`;
|
|
@@ -57,7 +58,7 @@ const lexEscapedString = o([
|
|
|
57
58
|
},
|
|
58
59
|
{
|
|
59
60
|
name: "any",
|
|
60
|
-
regex:
|
|
61
|
+
regex: new RegExp("[\\s\\S]", "i")
|
|
61
62
|
}
|
|
62
63
|
]);
|
|
63
64
|
function sumSpec([a0, a1, a2], [b0, b1, b2]) {
|
|
@@ -80,13 +81,14 @@ const anyChar_ = token((t) => t.name === "any" ? t.text : void 0);
|
|
|
80
81
|
const escapedString_ = map(many(choice(unicodeEscapedSequence_, escapedSequence_, anyChar_)), (cs) => cs.join(""));
|
|
81
82
|
function unescape(escapedString) {
|
|
82
83
|
const lexerResult = lexEscapedString(escapedString);
|
|
83
|
-
|
|
84
|
+
const result = escapedString_({
|
|
84
85
|
tokens: lexerResult.tokens,
|
|
85
86
|
options: void 0
|
|
86
|
-
}, 0)
|
|
87
|
+
}, 0);
|
|
88
|
+
return result.value;
|
|
87
89
|
}
|
|
88
|
-
function literal(name) {
|
|
89
|
-
return token((t) => t.name === name ? true : void 0);
|
|
90
|
+
function literal(name$1) {
|
|
91
|
+
return token((t) => t.name === name$1 ? true : void 0);
|
|
90
92
|
}
|
|
91
93
|
const whitespace_ = token((t) => t.name === "ws" ? null : void 0);
|
|
92
94
|
const optionalWhitespace_ = option(whitespace_, null);
|
|
@@ -97,11 +99,11 @@ const identifier_ = token((t) => t.name === "ident" ? unescape(t.text) : void 0)
|
|
|
97
99
|
const hashId_ = token((t) => t.name === "hash" ? unescape(t.text.slice(1)) : void 0);
|
|
98
100
|
const string_ = token((t) => t.name.startsWith("str") ? unescape(t.text.slice(1, -1)) : void 0);
|
|
99
101
|
const namespace_ = left(option(identifier_, ""), literal("|"));
|
|
100
|
-
const qualifiedName_ = otherwise(ab(namespace_, identifier_, (ns, name) => ({
|
|
101
|
-
name,
|
|
102
|
+
const qualifiedName_ = otherwise(ab(namespace_, identifier_, (ns, name$1) => ({
|
|
103
|
+
name: name$1,
|
|
102
104
|
namespace: ns
|
|
103
|
-
})), map(identifier_, (name) => ({
|
|
104
|
-
name,
|
|
105
|
+
})), map(identifier_, (name$1) => ({
|
|
106
|
+
name: name$1,
|
|
105
107
|
namespace: null
|
|
106
108
|
})));
|
|
107
109
|
const uniSelector_ = otherwise(ab(namespace_, literal("*"), (ns) => ({
|
|
@@ -121,9 +123,9 @@ const uniSelector_ = otherwise(ab(namespace_, literal("*"), (ns) => ({
|
|
|
121
123
|
0
|
|
122
124
|
]
|
|
123
125
|
})));
|
|
124
|
-
const tagSelector_ = map(qualifiedName_, ({ name, namespace }) => ({
|
|
126
|
+
const tagSelector_ = map(qualifiedName_, ({ name: name$1, namespace }) => ({
|
|
125
127
|
type: "tag",
|
|
126
|
-
name,
|
|
128
|
+
name: name$1,
|
|
127
129
|
namespace,
|
|
128
130
|
specificity: [
|
|
129
131
|
0,
|
|
@@ -131,18 +133,18 @@ const tagSelector_ = map(qualifiedName_, ({ name, namespace }) => ({
|
|
|
131
133
|
1
|
|
132
134
|
]
|
|
133
135
|
}));
|
|
134
|
-
const classSelector_ = ab(literal("."), identifier_, (fullstop, name) => ({
|
|
136
|
+
const classSelector_ = ab(literal("."), identifier_, (fullstop, name$1) => ({
|
|
135
137
|
type: "class",
|
|
136
|
-
name,
|
|
138
|
+
name: name$1,
|
|
137
139
|
specificity: [
|
|
138
140
|
0,
|
|
139
141
|
1,
|
|
140
142
|
0
|
|
141
143
|
]
|
|
142
144
|
}));
|
|
143
|
-
const idSelector_ = map(hashId_, (name) => ({
|
|
145
|
+
const idSelector_ = map(hashId_, (name$1) => ({
|
|
144
146
|
type: "id",
|
|
145
|
-
name,
|
|
147
|
+
name: name$1,
|
|
146
148
|
specificity: [
|
|
147
149
|
1,
|
|
148
150
|
0,
|
|
@@ -154,6 +156,7 @@ const attrModifier_ = token((t) => {
|
|
|
154
156
|
if (t.text === "i" || t.text === "I") return "i";
|
|
155
157
|
if (t.text === "s" || t.text === "S") return "s";
|
|
156
158
|
}
|
|
159
|
+
return void 0;
|
|
157
160
|
});
|
|
158
161
|
const attrValue_ = otherwise(ab(string_, option(right(optionalWhitespace_, attrModifier_), null), (v, mod) => ({
|
|
159
162
|
value: v,
|
|
@@ -163,9 +166,9 @@ const attrValue_ = otherwise(ab(string_, option(right(optionalWhitespace_, attrM
|
|
|
163
166
|
modifier: mod
|
|
164
167
|
})));
|
|
165
168
|
const attrMatcher_ = choice(map(literal("="), () => "="), ab(literal("~"), literal("="), () => "~="), ab(literal("|"), literal("="), () => "|="), ab(literal("^"), literal("="), () => "^="), ab(literal("$"), literal("="), () => "$="), ab(literal("*"), literal("="), () => "*="));
|
|
166
|
-
const attrPresenceSelector_ = abc(literal("["), optionallySpaced(qualifiedName_), literal("]"), (lbr, { name, namespace }) => ({
|
|
169
|
+
const attrPresenceSelector_ = abc(literal("["), optionallySpaced(qualifiedName_), literal("]"), (lbr, { name: name$1, namespace }) => ({
|
|
167
170
|
type: "attrPresence",
|
|
168
|
-
name,
|
|
171
|
+
name: name$1,
|
|
169
172
|
namespace,
|
|
170
173
|
specificity: [
|
|
171
174
|
0,
|
|
@@ -173,9 +176,9 @@ const attrPresenceSelector_ = abc(literal("["), optionallySpaced(qualifiedName_)
|
|
|
173
176
|
0
|
|
174
177
|
]
|
|
175
178
|
}));
|
|
176
|
-
const attrValueSelector_ = middle(literal("["), abc(optionallySpaced(qualifiedName_), attrMatcher_, optionallySpaced(attrValue_), ({ name, namespace }, matcher, { value, modifier }) => ({
|
|
179
|
+
const attrValueSelector_ = middle(literal("["), abc(optionallySpaced(qualifiedName_), attrMatcher_, optionallySpaced(attrValue_), ({ name: name$1, namespace }, matcher, { value, modifier }) => ({
|
|
177
180
|
type: "attrValue",
|
|
178
|
-
name,
|
|
181
|
+
name: name$1,
|
|
179
182
|
namespace,
|
|
180
183
|
matcher,
|
|
181
184
|
value,
|
|
@@ -198,17 +201,17 @@ const compoundSelector_ = map(otherwise(flatten(typeSelector_, many(subclassSele
|
|
|
198
201
|
});
|
|
199
202
|
const combinator_ = choice(map(literal(">"), () => ">"), map(literal("+"), () => "+"), map(literal("~"), () => "~"), ab(literal("|"), literal("|"), () => "||"));
|
|
200
203
|
const combinatorSeparator_ = otherwise(optionallySpaced(combinator_), map(whitespace_, () => " "));
|
|
201
|
-
const complexSelector_ = leftAssoc2(compoundSelector_, map(combinatorSeparator_, (c) => (left, right) => ({
|
|
204
|
+
const complexSelector_ = leftAssoc2(compoundSelector_, map(combinatorSeparator_, (c) => (left$1, right$1) => ({
|
|
202
205
|
type: "compound",
|
|
203
|
-
list: [...right.list, {
|
|
206
|
+
list: [...right$1.list, {
|
|
204
207
|
type: "combinator",
|
|
205
208
|
combinator: c,
|
|
206
|
-
left,
|
|
207
|
-
specificity: left.specificity
|
|
209
|
+
left: left$1,
|
|
210
|
+
specificity: left$1.specificity
|
|
208
211
|
}],
|
|
209
|
-
specificity: sumSpec(left.specificity, right.specificity)
|
|
212
|
+
specificity: sumSpec(left$1.specificity, right$1.specificity)
|
|
210
213
|
})), compoundSelector_);
|
|
211
|
-
leftAssoc2(map(complexSelector_, (s) => ({
|
|
214
|
+
const listSelector_ = leftAssoc2(map(complexSelector_, (s) => ({
|
|
212
215
|
type: "list",
|
|
213
216
|
list: [s]
|
|
214
217
|
})), map(optionallySpaced(literal(",")), () => (acc, next) => ({
|
|
@@ -225,8 +228,8 @@ function parse_(parser, str) {
|
|
|
225
228
|
}, 0);
|
|
226
229
|
if (!result.matched) throw new Error(`No match for "${str}" input!`);
|
|
227
230
|
if (result.position < lexerResult.tokens.length) {
|
|
228
|
-
const token = lexerResult.tokens[result.position];
|
|
229
|
-
throw new Error(`The input "${str}" was only partially parsed, stopped at offset ${token.offset}!\n` + prettyPrintPosition(str, token.offset, token.len));
|
|
231
|
+
const token$1 = lexerResult.tokens[result.position];
|
|
232
|
+
throw new Error(`The input "${str}" was only partially parsed, stopped at offset ${token$1.offset}!\n` + prettyPrintPosition(str, token$1.offset, token$1.len));
|
|
230
233
|
}
|
|
231
234
|
return result.value;
|
|
232
235
|
}
|
|
@@ -260,10 +263,10 @@ function _codePoint(char) {
|
|
|
260
263
|
return `\\${char.codePointAt(0).toString(16)} `;
|
|
261
264
|
}
|
|
262
265
|
function _serIdent(str) {
|
|
263
|
-
return str.replace(/(^[0-9])|(^-[0-9])|(^-$)|([-0-9a-zA-Z_]|[^\x00-\x7F])|(\x00)|([\x01-\x1f]|\x7f)|([\s\S])/g, (m, d1, d2, hy, safe, nl, ctrl, other) => d1 ? _codePoint(d1) : d2 ? "-" + _codePoint(d2.slice(1)) : hy ? "\\-" : safe ? safe : nl ? "�" : ctrl ? _codePoint(ctrl) : "\\" + other);
|
|
266
|
+
return str.replace(/(^[0-9])|(^-[0-9])|(^-$)|([-0-9a-zA-Z_]|[^\x00-\x7F])|(\x00)|([\x01-\x1f]|\x7f)|([\s\S])/g, (m, d1, d2, hy, safe, nl$1, ctrl, other) => d1 ? _codePoint(d1) : d2 ? "-" + _codePoint(d2.slice(1)) : hy ? "\\-" : safe ? safe : nl$1 ? "�" : ctrl ? _codePoint(ctrl) : "\\" + other);
|
|
264
267
|
}
|
|
265
268
|
function _serStr(str) {
|
|
266
|
-
return str.replace(/(")|(\\)|(\x00)|([\x01-\x1f]|\x7f)/g, (m, dq, bs, nl, ctrl) => dq ? "\\\"" : bs ? "\\\\" : nl ? "�" : _codePoint(ctrl));
|
|
269
|
+
return str.replace(/(")|(\\)|(\x00)|([\x01-\x1f]|\x7f)/g, (m, dq, bs, nl$1, ctrl) => dq ? "\\\"" : bs ? "\\\\" : nl$1 ? "�" : _codePoint(ctrl));
|
|
267
270
|
}
|
|
268
271
|
function normalize(selector) {
|
|
269
272
|
if (!selector.type) throw new Error("This is not an AST node.");
|
|
@@ -278,6 +281,7 @@ function normalize(selector) {
|
|
|
278
281
|
case "list":
|
|
279
282
|
selector.list.forEach(normalize);
|
|
280
283
|
selector.list.sort((a, b) => serialize(a) < serialize(b) ? -1 : 1);
|
|
284
|
+
break;
|
|
281
285
|
}
|
|
282
286
|
return selector;
|
|
283
287
|
}
|
|
@@ -304,7 +308,7 @@ function _compareArrays(a, b) {
|
|
|
304
308
|
}
|
|
305
309
|
return a.length - b.length;
|
|
306
310
|
}
|
|
311
|
+
|
|
307
312
|
//#endregion
|
|
308
313
|
export { compareSpecificity, normalize, parse1, serialize };
|
|
309
|
-
|
|
310
314
|
//# sourceMappingURL=parseley.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parseley.js","names":["createLexer","p.token","p.map","p.many","p.or","p.option","p.middle","p.left","p.eitherOr","p.ab","p.right","p.choice","p.abc","p.flatten","p.many1","p.leftAssoc2"],"sources":["../../../../../../node_modules/parseley/lib/parseley.mjs"],"sourcesContent":["import { createLexer } from 'leac';\nimport * as p from 'peberminta';\n\nvar ast = /*#__PURE__*/Object.freeze({\n __proto__: null\n});\n\nconst ws = `(?:[ \\\\t\\\\r\\\\n\\\\f]*)`;\nconst nl = `(?:\\\\n|\\\\r\\\\n|\\\\r|\\\\f)`;\nconst nonascii = `[^\\\\x00-\\\\x7F]`;\nconst unicode = `(?:\\\\\\\\[0-9a-f]{1,6}(?:\\\\r\\\\n|[ \\\\n\\\\r\\\\t\\\\f])?)`;\nconst escape = `(?:\\\\\\\\[^\\\\n\\\\r\\\\f0-9a-f])`;\nconst nmstart = `(?:[_a-z]|${nonascii}|${unicode}|${escape})`;\nconst nmchar = `(?:[_a-z0-9-]|${nonascii}|${unicode}|${escape})`;\nconst name = `(?:${nmchar}+)`;\nconst ident = `(?:[-]?${nmstart}${nmchar}*)`;\nconst string1 = `'([^\\\\n\\\\r\\\\f\\\\\\\\']|\\\\\\\\${nl}|${nonascii}|${unicode}|${escape})*'`;\nconst string2 = `\"([^\\\\n\\\\r\\\\f\\\\\\\\\"]|\\\\\\\\${nl}|${nonascii}|${unicode}|${escape})*\"`;\nconst lexSelector = createLexer([\n { name: 'ws', regex: new RegExp(ws) },\n { name: 'hash', regex: new RegExp(`#${name}`, 'i') },\n { name: 'ident', regex: new RegExp(ident, 'i') },\n { name: 'str1', regex: new RegExp(string1, 'i') },\n { name: 'str2', regex: new RegExp(string2, 'i') },\n { name: '*' },\n { name: '.' },\n { name: ',' },\n { name: '[' },\n { name: ']' },\n { name: '=' },\n { name: '>' },\n { name: '|' },\n { name: '+' },\n { name: '~' },\n { name: '^' },\n { name: '$' },\n]);\nconst lexEscapedString = createLexer([\n { name: 'unicode', regex: new RegExp(unicode, 'i') },\n { name: 'escape', regex: new RegExp(escape, 'i') },\n { name: 'any', regex: new RegExp('[\\\\s\\\\S]', 'i') }\n]);\nfunction sumSpec([a0, a1, a2], [b0, b1, b2]) {\n return [a0 + b0, a1 + b1, a2 + b2];\n}\nfunction sumAllSpec(ss) {\n return ss.reduce(sumSpec, [0, 0, 0]);\n}\nconst unicodeEscapedSequence_ = p.token((t) => t.name === 'unicode' ? String.fromCodePoint(parseInt(t.text.slice(1), 16)) : undefined);\nconst escapedSequence_ = p.token((t) => t.name === 'escape' ? t.text.slice(1) : undefined);\nconst anyChar_ = p.token((t) => t.name === 'any' ? t.text : undefined);\nconst escapedString_ = p.map(p.many(p.or(unicodeEscapedSequence_, escapedSequence_, anyChar_)), (cs) => cs.join(''));\nfunction unescape(escapedString) {\n const lexerResult = lexEscapedString(escapedString);\n const result = escapedString_({ tokens: lexerResult.tokens, options: undefined }, 0);\n return result.value;\n}\nfunction literal(name) {\n return p.token((t) => t.name === name ? true : undefined);\n}\nconst whitespace_ = p.token((t) => t.name === 'ws' ? null : undefined);\nconst optionalWhitespace_ = p.option(whitespace_, null);\nfunction optionallySpaced(parser) {\n return p.middle(optionalWhitespace_, parser, optionalWhitespace_);\n}\nconst identifier_ = p.token((t) => t.name === 'ident' ? unescape(t.text) : undefined);\nconst hashId_ = p.token((t) => t.name === 'hash' ? unescape(t.text.slice(1)) : undefined);\nconst string_ = p.token((t) => t.name.startsWith('str') ? unescape(t.text.slice(1, -1)) : undefined);\nconst namespace_ = p.left(p.option(identifier_, ''), literal('|'));\nconst qualifiedName_ = p.eitherOr(p.ab(namespace_, identifier_, (ns, name) => ({ name: name, namespace: ns })), p.map(identifier_, (name) => ({ name: name, namespace: null })));\nconst uniSelector_ = p.eitherOr(p.ab(namespace_, literal('*'), (ns) => ({ type: 'universal', namespace: ns, specificity: [0, 0, 0] })), p.map(literal('*'), () => ({ type: 'universal', namespace: null, specificity: [0, 0, 0] })));\nconst tagSelector_ = p.map(qualifiedName_, ({ name, namespace }) => ({\n type: 'tag',\n name: name,\n namespace: namespace,\n specificity: [0, 0, 1]\n}));\nconst classSelector_ = p.ab(literal('.'), identifier_, (fullstop, name) => ({\n type: 'class',\n name: name,\n specificity: [0, 1, 0]\n}));\nconst idSelector_ = p.map(hashId_, (name) => ({\n type: 'id',\n name: name,\n specificity: [1, 0, 0]\n}));\nconst attrModifier_ = p.token((t) => {\n if (t.name === 'ident') {\n if (t.text === 'i' || t.text === 'I') {\n return 'i';\n }\n if (t.text === 's' || t.text === 'S') {\n return 's';\n }\n }\n return undefined;\n});\nconst attrValue_ = p.eitherOr(p.ab(string_, p.option(p.right(optionalWhitespace_, attrModifier_), null), (v, mod) => ({ value: v, modifier: mod })), p.ab(identifier_, p.option(p.right(whitespace_, attrModifier_), null), (v, mod) => ({ value: v, modifier: mod })));\nconst attrMatcher_ = p.choice(p.map(literal('='), () => '='), p.ab(literal('~'), literal('='), () => '~='), p.ab(literal('|'), literal('='), () => '|='), p.ab(literal('^'), literal('='), () => '^='), p.ab(literal('$'), literal('='), () => '$='), p.ab(literal('*'), literal('='), () => '*='));\nconst attrPresenceSelector_ = p.abc(literal('['), optionallySpaced(qualifiedName_), literal(']'), (lbr, { name, namespace }) => ({\n type: 'attrPresence',\n name: name,\n namespace: namespace,\n specificity: [0, 1, 0]\n}));\nconst attrValueSelector_ = p.middle(literal('['), p.abc(optionallySpaced(qualifiedName_), attrMatcher_, optionallySpaced(attrValue_), ({ name, namespace }, matcher, { value, modifier }) => ({\n type: 'attrValue',\n name: name,\n namespace: namespace,\n matcher: matcher,\n value: value,\n modifier: modifier,\n specificity: [0, 1, 0]\n})), literal(']'));\nconst attrSelector_ = p.eitherOr(attrPresenceSelector_, attrValueSelector_);\nconst typeSelector_ = p.eitherOr(uniSelector_, tagSelector_);\nconst subclassSelector_ = p.choice(idSelector_, classSelector_, attrSelector_);\nconst compoundSelector_ = p.map(p.eitherOr(p.flatten(typeSelector_, p.many(subclassSelector_)), p.many1(subclassSelector_)), (ss) => {\n return {\n type: 'compound',\n list: ss,\n specificity: sumAllSpec(ss.map(s => s.specificity))\n };\n});\nconst combinator_ = p.choice(p.map(literal('>'), () => '>'), p.map(literal('+'), () => '+'), p.map(literal('~'), () => '~'), p.ab(literal('|'), literal('|'), () => '||'));\nconst combinatorSeparator_ = p.eitherOr(optionallySpaced(combinator_), p.map(whitespace_, () => ' '));\nconst complexSelector_ = p.leftAssoc2(compoundSelector_, p.map(combinatorSeparator_, (c) => (left, right) => ({\n type: 'compound',\n list: [...right.list, { type: 'combinator', combinator: c, left: left, specificity: left.specificity }],\n specificity: sumSpec(left.specificity, right.specificity)\n})), compoundSelector_);\nconst listSelector_ = p.leftAssoc2(p.map(complexSelector_, (s) => ({ type: 'list', list: [s] })), p.map(optionallySpaced(literal(',')), () => (acc, next) => ({ type: 'list', list: [...acc.list, next] })), complexSelector_);\nfunction parse_(parser, str) {\n if (!(typeof str === 'string' || str instanceof String)) {\n throw new Error('Expected a selector string. Actual input is not a string!');\n }\n const lexerResult = lexSelector(str);\n if (!lexerResult.complete) {\n throw new Error(`The input \"${str}\" was only partially tokenized, stopped at offset ${lexerResult.offset}!\\n` +\n prettyPrintPosition(str, lexerResult.offset));\n }\n const result = optionallySpaced(parser)({ tokens: lexerResult.tokens, options: undefined }, 0);\n if (!result.matched) {\n throw new Error(`No match for \"${str}\" input!`);\n }\n if (result.position < lexerResult.tokens.length) {\n const token = lexerResult.tokens[result.position];\n throw new Error(`The input \"${str}\" was only partially parsed, stopped at offset ${token.offset}!\\n` +\n prettyPrintPosition(str, token.offset, token.len));\n }\n return result.value;\n}\nfunction prettyPrintPosition(str, offset, len = 1) {\n return `${str.replace(/(\\t)|(\\r)|(\\n)/g, (m, t, r) => t ? '\\u2409' : r ? '\\u240d' : '\\u240a')}\\n${''.padEnd(offset)}${'^'.repeat(len)}`;\n}\nfunction parse(str) {\n return parse_(listSelector_, str);\n}\nfunction parse1(str) {\n return parse_(complexSelector_, str);\n}\n\nfunction serialize(selector) {\n if (!selector.type) {\n throw new Error('This is not an AST node.');\n }\n switch (selector.type) {\n case 'universal':\n return _serNs(selector.namespace) + '*';\n case 'tag':\n return _serNs(selector.namespace) + _serIdent(selector.name);\n case 'class':\n return '.' + _serIdent(selector.name);\n case 'id':\n return '#' + _serIdent(selector.name);\n case 'attrPresence':\n return `[${_serNs(selector.namespace)}${_serIdent(selector.name)}]`;\n case 'attrValue':\n return `[${_serNs(selector.namespace)}${_serIdent(selector.name)}${selector.matcher}\"${_serStr(selector.value)}\"${(selector.modifier ? selector.modifier : '')}]`;\n case 'combinator':\n return serialize(selector.left) + selector.combinator;\n case 'compound':\n return selector.list.reduce((acc, node) => {\n if (node.type === 'combinator') {\n return serialize(node) + acc;\n }\n else {\n return acc + serialize(node);\n }\n }, '');\n case 'list':\n return selector.list.map(serialize).join(',');\n }\n}\nfunction _serNs(ns) {\n return (ns || ns === '')\n ? _serIdent(ns) + '|'\n : '';\n}\nfunction _codePoint(char) {\n return `\\\\${char.codePointAt(0).toString(16)} `;\n}\nfunction _serIdent(str) {\n return str.replace(\n /(^[0-9])|(^-[0-9])|(^-$)|([-0-9a-zA-Z_]|[^\\x00-\\x7F])|(\\x00)|([\\x01-\\x1f]|\\x7f)|([\\s\\S])/g, (m, d1, d2, hy, safe, nl, ctrl, other) => d1 ? _codePoint(d1) :\n d2 ? '-' + _codePoint(d2.slice(1)) :\n hy ? '\\\\-' :\n safe ? safe :\n nl ? '\\ufffd' :\n ctrl ? _codePoint(ctrl) :\n '\\\\' + other);\n}\nfunction _serStr(str) {\n return str.replace(\n /(\")|(\\\\)|(\\x00)|([\\x01-\\x1f]|\\x7f)/g, (m, dq, bs, nl, ctrl) => dq ? '\\\\\"' :\n bs ? '\\\\\\\\' :\n nl ? '\\ufffd' :\n _codePoint(ctrl));\n}\nfunction normalize(selector) {\n if (!selector.type) {\n throw new Error('This is not an AST node.');\n }\n switch (selector.type) {\n case 'compound': {\n selector.list.forEach(normalize);\n selector.list.sort((a, b) => _compareArrays(_getSelectorPriority(a), _getSelectorPriority(b)));\n break;\n }\n case 'combinator': {\n normalize(selector.left);\n break;\n }\n case 'list': {\n selector.list.forEach(normalize);\n selector.list.sort((a, b) => (serialize(a) < serialize(b)) ? -1 : 1);\n break;\n }\n }\n return selector;\n}\nfunction _getSelectorPriority(selector) {\n switch (selector.type) {\n case 'universal':\n return [1];\n case 'tag':\n return [1];\n case 'id':\n return [2];\n case 'class':\n return [3, selector.name];\n case 'attrPresence':\n return [4, serialize(selector)];\n case 'attrValue':\n return [5, serialize(selector)];\n case 'combinator':\n return [15, serialize(selector)];\n }\n}\nfunction compareSelectors(a, b) {\n return _compareArrays(a.specificity, b.specificity);\n}\nfunction compareSpecificity(a, b) {\n return _compareArrays(a, b);\n}\nfunction _compareArrays(a, b) {\n if (!Array.isArray(a) || !Array.isArray(b)) {\n throw new Error('Arguments must be arrays.');\n }\n const shorter = (a.length < b.length) ? a.length : b.length;\n for (let i = 0; i < shorter; i++) {\n if (a[i] === b[i]) {\n continue;\n }\n return (a[i] < b[i]) ? -1 : 1;\n }\n return a.length - b.length;\n}\n\nexport { ast as Ast, compareSelectors, compareSpecificity, normalize, parse, parse1, serialize };\n"],"x_google_ignoreList":[0],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"parseley.js","names":["createLexer","name","left","right","token","nl"],"sources":["../../../../../../../node_modules/parseley/lib/parseley.mjs"],"sourcesContent":["import { createLexer } from 'leac';\nimport * as p from 'peberminta';\n\nvar ast = /*#__PURE__*/Object.freeze({\n __proto__: null\n});\n\nconst ws = `(?:[ \\\\t\\\\r\\\\n\\\\f]*)`;\nconst nl = `(?:\\\\n|\\\\r\\\\n|\\\\r|\\\\f)`;\nconst nonascii = `[^\\\\x00-\\\\x7F]`;\nconst unicode = `(?:\\\\\\\\[0-9a-f]{1,6}(?:\\\\r\\\\n|[ \\\\n\\\\r\\\\t\\\\f])?)`;\nconst escape = `(?:\\\\\\\\[^\\\\n\\\\r\\\\f0-9a-f])`;\nconst nmstart = `(?:[_a-z]|${nonascii}|${unicode}|${escape})`;\nconst nmchar = `(?:[_a-z0-9-]|${nonascii}|${unicode}|${escape})`;\nconst name = `(?:${nmchar}+)`;\nconst ident = `(?:[-]?${nmstart}${nmchar}*)`;\nconst string1 = `'([^\\\\n\\\\r\\\\f\\\\\\\\']|\\\\\\\\${nl}|${nonascii}|${unicode}|${escape})*'`;\nconst string2 = `\"([^\\\\n\\\\r\\\\f\\\\\\\\\"]|\\\\\\\\${nl}|${nonascii}|${unicode}|${escape})*\"`;\nconst lexSelector = createLexer([\n { name: 'ws', regex: new RegExp(ws) },\n { name: 'hash', regex: new RegExp(`#${name}`, 'i') },\n { name: 'ident', regex: new RegExp(ident, 'i') },\n { name: 'str1', regex: new RegExp(string1, 'i') },\n { name: 'str2', regex: new RegExp(string2, 'i') },\n { name: '*' },\n { name: '.' },\n { name: ',' },\n { name: '[' },\n { name: ']' },\n { name: '=' },\n { name: '>' },\n { name: '|' },\n { name: '+' },\n { name: '~' },\n { name: '^' },\n { name: '$' },\n]);\nconst lexEscapedString = createLexer([\n { name: 'unicode', regex: new RegExp(unicode, 'i') },\n { name: 'escape', regex: new RegExp(escape, 'i') },\n { name: 'any', regex: new RegExp('[\\\\s\\\\S]', 'i') }\n]);\nfunction sumSpec([a0, a1, a2], [b0, b1, b2]) {\n return [a0 + b0, a1 + b1, a2 + b2];\n}\nfunction sumAllSpec(ss) {\n return ss.reduce(sumSpec, [0, 0, 0]);\n}\nconst unicodeEscapedSequence_ = p.token((t) => t.name === 'unicode' ? String.fromCodePoint(parseInt(t.text.slice(1), 16)) : undefined);\nconst escapedSequence_ = p.token((t) => t.name === 'escape' ? t.text.slice(1) : undefined);\nconst anyChar_ = p.token((t) => t.name === 'any' ? t.text : undefined);\nconst escapedString_ = p.map(p.many(p.or(unicodeEscapedSequence_, escapedSequence_, anyChar_)), (cs) => cs.join(''));\nfunction unescape(escapedString) {\n const lexerResult = lexEscapedString(escapedString);\n const result = escapedString_({ tokens: lexerResult.tokens, options: undefined }, 0);\n return result.value;\n}\nfunction literal(name) {\n return p.token((t) => t.name === name ? true : undefined);\n}\nconst whitespace_ = p.token((t) => t.name === 'ws' ? null : undefined);\nconst optionalWhitespace_ = p.option(whitespace_, null);\nfunction optionallySpaced(parser) {\n return p.middle(optionalWhitespace_, parser, optionalWhitespace_);\n}\nconst identifier_ = p.token((t) => t.name === 'ident' ? unescape(t.text) : undefined);\nconst hashId_ = p.token((t) => t.name === 'hash' ? unescape(t.text.slice(1)) : undefined);\nconst string_ = p.token((t) => t.name.startsWith('str') ? unescape(t.text.slice(1, -1)) : undefined);\nconst namespace_ = p.left(p.option(identifier_, ''), literal('|'));\nconst qualifiedName_ = p.eitherOr(p.ab(namespace_, identifier_, (ns, name) => ({ name: name, namespace: ns })), p.map(identifier_, (name) => ({ name: name, namespace: null })));\nconst uniSelector_ = p.eitherOr(p.ab(namespace_, literal('*'), (ns) => ({ type: 'universal', namespace: ns, specificity: [0, 0, 0] })), p.map(literal('*'), () => ({ type: 'universal', namespace: null, specificity: [0, 0, 0] })));\nconst tagSelector_ = p.map(qualifiedName_, ({ name, namespace }) => ({\n type: 'tag',\n name: name,\n namespace: namespace,\n specificity: [0, 0, 1]\n}));\nconst classSelector_ = p.ab(literal('.'), identifier_, (fullstop, name) => ({\n type: 'class',\n name: name,\n specificity: [0, 1, 0]\n}));\nconst idSelector_ = p.map(hashId_, (name) => ({\n type: 'id',\n name: name,\n specificity: [1, 0, 0]\n}));\nconst attrModifier_ = p.token((t) => {\n if (t.name === 'ident') {\n if (t.text === 'i' || t.text === 'I') {\n return 'i';\n }\n if (t.text === 's' || t.text === 'S') {\n return 's';\n }\n }\n return undefined;\n});\nconst attrValue_ = p.eitherOr(p.ab(string_, p.option(p.right(optionalWhitespace_, attrModifier_), null), (v, mod) => ({ value: v, modifier: mod })), p.ab(identifier_, p.option(p.right(whitespace_, attrModifier_), null), (v, mod) => ({ value: v, modifier: mod })));\nconst attrMatcher_ = p.choice(p.map(literal('='), () => '='), p.ab(literal('~'), literal('='), () => '~='), p.ab(literal('|'), literal('='), () => '|='), p.ab(literal('^'), literal('='), () => '^='), p.ab(literal('$'), literal('='), () => '$='), p.ab(literal('*'), literal('='), () => '*='));\nconst attrPresenceSelector_ = p.abc(literal('['), optionallySpaced(qualifiedName_), literal(']'), (lbr, { name, namespace }) => ({\n type: 'attrPresence',\n name: name,\n namespace: namespace,\n specificity: [0, 1, 0]\n}));\nconst attrValueSelector_ = p.middle(literal('['), p.abc(optionallySpaced(qualifiedName_), attrMatcher_, optionallySpaced(attrValue_), ({ name, namespace }, matcher, { value, modifier }) => ({\n type: 'attrValue',\n name: name,\n namespace: namespace,\n matcher: matcher,\n value: value,\n modifier: modifier,\n specificity: [0, 1, 0]\n})), literal(']'));\nconst attrSelector_ = p.eitherOr(attrPresenceSelector_, attrValueSelector_);\nconst typeSelector_ = p.eitherOr(uniSelector_, tagSelector_);\nconst subclassSelector_ = p.choice(idSelector_, classSelector_, attrSelector_);\nconst compoundSelector_ = p.map(p.eitherOr(p.flatten(typeSelector_, p.many(subclassSelector_)), p.many1(subclassSelector_)), (ss) => {\n return {\n type: 'compound',\n list: ss,\n specificity: sumAllSpec(ss.map(s => s.specificity))\n };\n});\nconst combinator_ = p.choice(p.map(literal('>'), () => '>'), p.map(literal('+'), () => '+'), p.map(literal('~'), () => '~'), p.ab(literal('|'), literal('|'), () => '||'));\nconst combinatorSeparator_ = p.eitherOr(optionallySpaced(combinator_), p.map(whitespace_, () => ' '));\nconst complexSelector_ = p.leftAssoc2(compoundSelector_, p.map(combinatorSeparator_, (c) => (left, right) => ({\n type: 'compound',\n list: [...right.list, { type: 'combinator', combinator: c, left: left, specificity: left.specificity }],\n specificity: sumSpec(left.specificity, right.specificity)\n})), compoundSelector_);\nconst listSelector_ = p.leftAssoc2(p.map(complexSelector_, (s) => ({ type: 'list', list: [s] })), p.map(optionallySpaced(literal(',')), () => (acc, next) => ({ type: 'list', list: [...acc.list, next] })), complexSelector_);\nfunction parse_(parser, str) {\n if (!(typeof str === 'string' || str instanceof String)) {\n throw new Error('Expected a selector string. Actual input is not a string!');\n }\n const lexerResult = lexSelector(str);\n if (!lexerResult.complete) {\n throw new Error(`The input \"${str}\" was only partially tokenized, stopped at offset ${lexerResult.offset}!\\n` +\n prettyPrintPosition(str, lexerResult.offset));\n }\n const result = optionallySpaced(parser)({ tokens: lexerResult.tokens, options: undefined }, 0);\n if (!result.matched) {\n throw new Error(`No match for \"${str}\" input!`);\n }\n if (result.position < lexerResult.tokens.length) {\n const token = lexerResult.tokens[result.position];\n throw new Error(`The input \"${str}\" was only partially parsed, stopped at offset ${token.offset}!\\n` +\n prettyPrintPosition(str, token.offset, token.len));\n }\n return result.value;\n}\nfunction prettyPrintPosition(str, offset, len = 1) {\n return `${str.replace(/(\\t)|(\\r)|(\\n)/g, (m, t, r) => t ? '\\u2409' : r ? '\\u240d' : '\\u240a')}\\n${''.padEnd(offset)}${'^'.repeat(len)}`;\n}\nfunction parse(str) {\n return parse_(listSelector_, str);\n}\nfunction parse1(str) {\n return parse_(complexSelector_, str);\n}\n\nfunction serialize(selector) {\n if (!selector.type) {\n throw new Error('This is not an AST node.');\n }\n switch (selector.type) {\n case 'universal':\n return _serNs(selector.namespace) + '*';\n case 'tag':\n return _serNs(selector.namespace) + _serIdent(selector.name);\n case 'class':\n return '.' + _serIdent(selector.name);\n case 'id':\n return '#' + _serIdent(selector.name);\n case 'attrPresence':\n return `[${_serNs(selector.namespace)}${_serIdent(selector.name)}]`;\n case 'attrValue':\n return `[${_serNs(selector.namespace)}${_serIdent(selector.name)}${selector.matcher}\"${_serStr(selector.value)}\"${(selector.modifier ? selector.modifier : '')}]`;\n case 'combinator':\n return serialize(selector.left) + selector.combinator;\n case 'compound':\n return selector.list.reduce((acc, node) => {\n if (node.type === 'combinator') {\n return serialize(node) + acc;\n }\n else {\n return acc + serialize(node);\n }\n }, '');\n case 'list':\n return selector.list.map(serialize).join(',');\n }\n}\nfunction _serNs(ns) {\n return (ns || ns === '')\n ? _serIdent(ns) + '|'\n : '';\n}\nfunction _codePoint(char) {\n return `\\\\${char.codePointAt(0).toString(16)} `;\n}\nfunction _serIdent(str) {\n return str.replace(\n /(^[0-9])|(^-[0-9])|(^-$)|([-0-9a-zA-Z_]|[^\\x00-\\x7F])|(\\x00)|([\\x01-\\x1f]|\\x7f)|([\\s\\S])/g, (m, d1, d2, hy, safe, nl, ctrl, other) => d1 ? _codePoint(d1) :\n d2 ? '-' + _codePoint(d2.slice(1)) :\n hy ? '\\\\-' :\n safe ? safe :\n nl ? '\\ufffd' :\n ctrl ? _codePoint(ctrl) :\n '\\\\' + other);\n}\nfunction _serStr(str) {\n return str.replace(\n /(\")|(\\\\)|(\\x00)|([\\x01-\\x1f]|\\x7f)/g, (m, dq, bs, nl, ctrl) => dq ? '\\\\\"' :\n bs ? '\\\\\\\\' :\n nl ? '\\ufffd' :\n _codePoint(ctrl));\n}\nfunction normalize(selector) {\n if (!selector.type) {\n throw new Error('This is not an AST node.');\n }\n switch (selector.type) {\n case 'compound': {\n selector.list.forEach(normalize);\n selector.list.sort((a, b) => _compareArrays(_getSelectorPriority(a), _getSelectorPriority(b)));\n break;\n }\n case 'combinator': {\n normalize(selector.left);\n break;\n }\n case 'list': {\n selector.list.forEach(normalize);\n selector.list.sort((a, b) => (serialize(a) < serialize(b)) ? -1 : 1);\n break;\n }\n }\n return selector;\n}\nfunction _getSelectorPriority(selector) {\n switch (selector.type) {\n case 'universal':\n return [1];\n case 'tag':\n return [1];\n case 'id':\n return [2];\n case 'class':\n return [3, selector.name];\n case 'attrPresence':\n return [4, serialize(selector)];\n case 'attrValue':\n return [5, serialize(selector)];\n case 'combinator':\n return [15, serialize(selector)];\n }\n}\nfunction compareSelectors(a, b) {\n return _compareArrays(a.specificity, b.specificity);\n}\nfunction compareSpecificity(a, b) {\n return _compareArrays(a, b);\n}\nfunction _compareArrays(a, b) {\n if (!Array.isArray(a) || !Array.isArray(b)) {\n throw new Error('Arguments must be arrays.');\n }\n const shorter = (a.length < b.length) ? a.length : b.length;\n for (let i = 0; i < shorter; i++) {\n if (a[i] === b[i]) {\n continue;\n }\n return (a[i] < b[i]) ? -1 : 1;\n }\n return a.length - b.length;\n}\n\nexport { ast as Ast, compareSelectors, compareSpecificity, normalize, parse, parse1, serialize };\n"],"x_google_ignoreList":[0],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
//#region
|
|
1
|
+
//#region ../../../node_modules/peberminta/lib/core.mjs
|
|
2
2
|
function token(onToken, onEnd) {
|
|
3
3
|
return (data, i) => {
|
|
4
4
|
let position = i;
|
|
@@ -135,7 +135,7 @@ function chainReduce(acc, f) {
|
|
|
135
135
|
};
|
|
136
136
|
}
|
|
137
137
|
function reduceLeft(acc, p, reducer) {
|
|
138
|
-
return chainReduce(acc, (acc) => map(p, (v, data, i, j) => reducer(acc, v, data, i, j)));
|
|
138
|
+
return chainReduce(acc, (acc$1) => map(p, (v, data, i, j) => reducer(acc$1, v, data, i, j)));
|
|
139
139
|
}
|
|
140
140
|
function leftAssoc2(pLeft, pOper, pRight) {
|
|
141
141
|
return chain(pLeft, (v0) => reduceLeft(v0, ab(pOper, pRight, (f, y) => [f, y]), (acc, [f, y]) => f(acc, y)));
|
|
@@ -143,7 +143,7 @@ function leftAssoc2(pLeft, pOper, pRight) {
|
|
|
143
143
|
function chain(p, f) {
|
|
144
144
|
return (data, i) => mapOuter(p(data, i), (m1) => f(m1.value, data, i, m1.position)(data, m1.position));
|
|
145
145
|
}
|
|
146
|
-
//#endregion
|
|
147
|
-
export { ab, abc, all, all as and, chain, chainReduce, choice, choice as or, otherwise as eitherOr, otherwise, flatten, flatten1, left, leftAssoc2, many, many1, many1 as some, map, middle, option, reduceLeft, right, takeWhile, token };
|
|
148
146
|
|
|
147
|
+
//#endregion
|
|
148
|
+
export { ab, abc, choice, flatten, left, leftAssoc2, many, many1, map, middle, option, otherwise, right, token };
|
|
149
149
|
//# sourceMappingURL=core.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.js","names":[],"sources":["../../../../../../node_modules/peberminta/lib/core.mjs"],"sourcesContent":["import { clamp, escapeWhitespace } from './util.mjs';\n\nfunction emit(value) {\n return (data, i) => ({\n matched: true,\n position: i,\n value: value\n });\n}\nfunction make(\nf) {\n return (data, i) => ({\n matched: true,\n position: i,\n value: f(data, i)\n });\n}\nfunction action(\nf) {\n return (data, i) => {\n f(data, i);\n return {\n matched: true,\n position: i,\n value: null\n };\n };\n}\nfunction fail(\ndata, i) {\n return { matched: false };\n}\nfunction error(message) {\n return (data, i) => {\n throw new Error((message instanceof Function) ? message(data, i) : message);\n };\n}\nfunction token(\nonToken,\nonEnd) {\n return (data, i) => {\n let position = i;\n let value = undefined;\n if (i < data.tokens.length) {\n value = onToken(data.tokens[i], data, i);\n if (value !== undefined) {\n position++;\n }\n }\n else {\n onEnd?.(data, i);\n }\n return (value === undefined)\n ? { matched: false }\n : {\n matched: true,\n position: position,\n value: value\n };\n };\n}\nfunction any(data, i) {\n return (i < data.tokens.length)\n ? {\n matched: true,\n position: i + 1,\n value: data.tokens[i]\n }\n : { matched: false };\n}\nfunction satisfy(\ntest) {\n return (data, i) => (i < data.tokens.length && test(data.tokens[i], data, i))\n ? {\n matched: true,\n position: i + 1,\n value: data.tokens[i]\n }\n : { matched: false };\n}\nfunction mapInner(r, f) {\n return (r.matched) ? ({\n matched: true,\n position: r.position,\n value: f(r.value, r.position)\n }) : r;\n}\nfunction mapOuter(r, f) {\n return (r.matched) ? f(r) : r;\n}\nfunction map(p, mapper) {\n return (data, i) => mapInner(p(data, i), (v, j) => mapper(v, data, i, j));\n}\nfunction map1(p,\nmapper) {\n return (data, i) => mapOuter(p(data, i), (m) => mapper(m, data, i));\n}\nfunction peek(p, f) {\n return (data, i) => {\n const r = p(data, i);\n f(r, data, i);\n return r;\n };\n}\nfunction option(p, def) {\n return (data, i) => {\n const r = p(data, i);\n return (r.matched)\n ? r\n : {\n matched: true,\n position: i,\n value: def\n };\n };\n}\nfunction not(p) {\n return (data, i) => {\n const r = p(data, i);\n return (r.matched)\n ? { matched: false }\n : {\n matched: true,\n position: i,\n value: true\n };\n };\n}\nfunction choice(...ps) {\n return (data, i) => {\n for (const p of ps) {\n const result = p(data, i);\n if (result.matched) {\n return result;\n }\n }\n return { matched: false };\n };\n}\nfunction otherwise(pa, pb) {\n return (data, i) => {\n const r1 = pa(data, i);\n return (r1.matched)\n ? r1\n : pb(data, i);\n };\n}\nfunction longest(...ps) {\n return (data, i) => {\n let match = undefined;\n for (const p of ps) {\n const result = p(data, i);\n if (result.matched && (!match || match.position < result.position)) {\n match = result;\n }\n }\n return match || { matched: false };\n };\n}\nfunction takeWhile(p,\ntest) {\n return (data, i) => {\n const values = [];\n let success = true;\n do {\n const r = p(data, i);\n if (r.matched && test(r.value, values.length + 1, data, i, r.position)) {\n values.push(r.value);\n i = r.position;\n }\n else {\n success = false;\n }\n } while (success);\n return {\n matched: true,\n position: i,\n value: values\n };\n };\n}\nfunction takeUntil(p,\ntest) {\n return takeWhile(p, (value, n, data, i, j) => !test(value, n, data, i, j));\n}\nfunction takeWhileP(pValue, pTest) {\n return takeWhile(pValue, (value, n, data, i) => pTest(data, i).matched);\n}\nfunction takeUntilP(pValue, pTest) {\n return takeWhile(pValue, (value, n, data, i) => !pTest(data, i).matched);\n}\nfunction many(p) {\n return takeWhile(p, () => true);\n}\nfunction many1(p) {\n return ab(p, many(p), (head, tail) => [head, ...tail]);\n}\nfunction ab(pa, pb, join) {\n return (data, i) => mapOuter(pa(data, i), (ma) => mapInner(pb(data, ma.position), (vb, j) => join(ma.value, vb, data, i, j)));\n}\nfunction left(pa, pb) {\n return ab(pa, pb, (va) => va);\n}\nfunction right(pa, pb) {\n return ab(pa, pb, (va, vb) => vb);\n}\nfunction abc(pa, pb, pc, join) {\n return (data, i) => mapOuter(pa(data, i), (ma) => mapOuter(pb(data, ma.position), (mb) => mapInner(pc(data, mb.position), (vc, j) => join(ma.value, mb.value, vc, data, i, j))));\n}\nfunction middle(pa, pb, pc) {\n return abc(pa, pb, pc, (ra, rb) => rb);\n}\nfunction all(...ps) {\n return (data, i) => {\n const result = [];\n let position = i;\n for (const p of ps) {\n const r1 = p(data, position);\n if (r1.matched) {\n result.push(r1.value);\n position = r1.position;\n }\n else {\n return { matched: false };\n }\n }\n return {\n matched: true,\n position: position,\n value: result\n };\n };\n}\nfunction skip(...ps) {\n return map(all(...ps), () => null);\n}\nfunction flatten(...ps) {\n return flatten1(all(...ps));\n}\nfunction flatten1(p) {\n return map(p, (vs) => vs.flatMap((v) => v));\n}\nfunction sepBy1(pValue, pSep) {\n return ab(pValue, many(right(pSep, pValue)), (head, tail) => [head, ...tail]);\n}\nfunction sepBy(pValue, pSep) {\n return otherwise(sepBy1(pValue, pSep), emit([]));\n}\nfunction chainReduce(acc,\nf) {\n return (data, i) => {\n let loop = true;\n let acc1 = acc;\n let pos = i;\n do {\n const r = f(acc1, data, pos)(data, pos);\n if (r.matched) {\n acc1 = r.value;\n pos = r.position;\n }\n else {\n loop = false;\n }\n } while (loop);\n return {\n matched: true,\n position: pos,\n value: acc1\n };\n };\n}\nfunction reduceLeft(acc, p,\nreducer) {\n return chainReduce(acc, (acc) => map(p, (v, data, i, j) => reducer(acc, v, data, i, j)));\n}\nfunction reduceRight(p, acc,\nreducer) {\n return map(many(p), (vs, data, i, j) => vs.reduceRight((acc, v) => reducer(v, acc, data, i, j), acc));\n}\nfunction leftAssoc1(pLeft, pOper) {\n return chain(pLeft, (v0) => reduceLeft(v0, pOper, (acc, f) => f(acc)));\n}\nfunction rightAssoc1(pOper, pRight) {\n return ab(reduceRight(pOper, (y) => y, (f, acc) => (y) => f(acc(y))), pRight, (f, v) => f(v));\n}\nfunction leftAssoc2(pLeft, pOper, pRight) {\n return chain(pLeft, (v0) => reduceLeft(v0, ab(pOper, pRight, (f, y) => [f, y]), (acc, [f, y]) => f(acc, y)));\n}\nfunction rightAssoc2(pLeft, pOper, pRight) {\n return ab(reduceRight(ab(pLeft, pOper, (x, f) => [x, f]), (y) => y, ([x, f], acc) => (y) => f(x, acc(y))), pRight, (f, v) => f(v));\n}\nfunction condition(cond, pTrue, pFalse) {\n return (data, i) => (cond(data, i))\n ? pTrue(data, i)\n : pFalse(data, i);\n}\nfunction decide(p) {\n return (data, i) => mapOuter(p(data, i), (m1) => m1.value(data, m1.position));\n}\nfunction chain(p,\nf) {\n return (data, i) => mapOuter(p(data, i), (m1) => f(m1.value, data, i, m1.position)(data, m1.position));\n}\nfunction ahead(p) {\n return (data, i) => mapOuter(p(data, i), (m1) => ({\n matched: true,\n position: i,\n value: m1.value\n }));\n}\nfunction recursive(f) {\n return function (data, i) {\n return f()(data, i);\n };\n}\nfunction start(data, i) {\n return (i !== 0)\n ? { matched: false }\n : {\n matched: true,\n position: i,\n value: true\n };\n}\nfunction end(data, i) {\n return (i < data.tokens.length)\n ? { matched: false }\n : {\n matched: true,\n position: i,\n value: true\n };\n}\nfunction remainingTokensNumber(data, i) {\n return data.tokens.length - i;\n}\nfunction parserPosition(data, i, formatToken, contextTokens = 3) {\n const len = data.tokens.length;\n const lowIndex = clamp(0, i - contextTokens, len - contextTokens);\n const highIndex = clamp(contextTokens, i + 1 + contextTokens, len);\n const tokensSlice = data.tokens.slice(lowIndex, highIndex);\n const lines = [];\n const indexWidth = String(highIndex - 1).length + 1;\n if (i < 0) {\n lines.push(`${String(i).padStart(indexWidth)} >>`);\n }\n if (0 < lowIndex) {\n lines.push('...'.padStart(indexWidth + 6));\n }\n for (let j = 0; j < tokensSlice.length; j++) {\n const index = lowIndex + j;\n lines.push(`${String(index).padStart(indexWidth)} ${(index === i ? '>' : ' ')} ${escapeWhitespace(formatToken(tokensSlice[j]))}`);\n }\n if (highIndex < len) {\n lines.push('...'.padStart(indexWidth + 6));\n }\n if (len <= i) {\n lines.push(`${String(i).padStart(indexWidth)} >>`);\n }\n return lines.join('\\n');\n}\nfunction parse(parser, tokens, options, formatToken = JSON.stringify) {\n const data = { tokens: tokens, options: options };\n const result = parser(data, 0);\n if (!result.matched) {\n throw new Error('No match');\n }\n if (result.position < data.tokens.length) {\n throw new Error(`Partial match. Parsing stopped at:\\n${parserPosition(data, result.position, formatToken)}`);\n }\n return result.value;\n}\nfunction tryParse(parser, tokens, options) {\n const result = parser({ tokens: tokens, options: options }, 0);\n return (result.matched)\n ? result.value\n : undefined;\n}\nfunction match(matcher, tokens, options) {\n const result = matcher({ tokens: tokens, options: options }, 0);\n return result.value;\n}\n\nexport { ab, abc, action, ahead, all, all as and, any, chain, chainReduce, choice, condition, decide, skip as discard, otherwise as eitherOr, emit, end, end as eof, error, fail, flatten, flatten1, left, leftAssoc1, leftAssoc2, longest, ahead as lookAhead, make, many, many1, map, map1, match, middle, not, emit as of, option, choice as or, otherwise, parse, parserPosition, peek, recursive, reduceLeft, reduceRight, remainingTokensNumber, right, rightAssoc1, rightAssoc2, satisfy, sepBy, sepBy1, skip, many1 as some, start, takeUntil, takeUntilP, takeWhile, takeWhileP, token, tryParse };\n"],"x_google_ignoreList":[0],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"core.js","names":["acc"],"sources":["../../../../../../../node_modules/peberminta/lib/core.mjs"],"sourcesContent":["import { clamp, escapeWhitespace } from './util.mjs';\n\nfunction emit(value) {\n return (data, i) => ({\n matched: true,\n position: i,\n value: value\n });\n}\nfunction make(\nf) {\n return (data, i) => ({\n matched: true,\n position: i,\n value: f(data, i)\n });\n}\nfunction action(\nf) {\n return (data, i) => {\n f(data, i);\n return {\n matched: true,\n position: i,\n value: null\n };\n };\n}\nfunction fail(\ndata, i) {\n return { matched: false };\n}\nfunction error(message) {\n return (data, i) => {\n throw new Error((message instanceof Function) ? message(data, i) : message);\n };\n}\nfunction token(\nonToken,\nonEnd) {\n return (data, i) => {\n let position = i;\n let value = undefined;\n if (i < data.tokens.length) {\n value = onToken(data.tokens[i], data, i);\n if (value !== undefined) {\n position++;\n }\n }\n else {\n onEnd?.(data, i);\n }\n return (value === undefined)\n ? { matched: false }\n : {\n matched: true,\n position: position,\n value: value\n };\n };\n}\nfunction any(data, i) {\n return (i < data.tokens.length)\n ? {\n matched: true,\n position: i + 1,\n value: data.tokens[i]\n }\n : { matched: false };\n}\nfunction satisfy(\ntest) {\n return (data, i) => (i < data.tokens.length && test(data.tokens[i], data, i))\n ? {\n matched: true,\n position: i + 1,\n value: data.tokens[i]\n }\n : { matched: false };\n}\nfunction mapInner(r, f) {\n return (r.matched) ? ({\n matched: true,\n position: r.position,\n value: f(r.value, r.position)\n }) : r;\n}\nfunction mapOuter(r, f) {\n return (r.matched) ? f(r) : r;\n}\nfunction map(p, mapper) {\n return (data, i) => mapInner(p(data, i), (v, j) => mapper(v, data, i, j));\n}\nfunction map1(p,\nmapper) {\n return (data, i) => mapOuter(p(data, i), (m) => mapper(m, data, i));\n}\nfunction peek(p, f) {\n return (data, i) => {\n const r = p(data, i);\n f(r, data, i);\n return r;\n };\n}\nfunction option(p, def) {\n return (data, i) => {\n const r = p(data, i);\n return (r.matched)\n ? r\n : {\n matched: true,\n position: i,\n value: def\n };\n };\n}\nfunction not(p) {\n return (data, i) => {\n const r = p(data, i);\n return (r.matched)\n ? { matched: false }\n : {\n matched: true,\n position: i,\n value: true\n };\n };\n}\nfunction choice(...ps) {\n return (data, i) => {\n for (const p of ps) {\n const result = p(data, i);\n if (result.matched) {\n return result;\n }\n }\n return { matched: false };\n };\n}\nfunction otherwise(pa, pb) {\n return (data, i) => {\n const r1 = pa(data, i);\n return (r1.matched)\n ? r1\n : pb(data, i);\n };\n}\nfunction longest(...ps) {\n return (data, i) => {\n let match = undefined;\n for (const p of ps) {\n const result = p(data, i);\n if (result.matched && (!match || match.position < result.position)) {\n match = result;\n }\n }\n return match || { matched: false };\n };\n}\nfunction takeWhile(p,\ntest) {\n return (data, i) => {\n const values = [];\n let success = true;\n do {\n const r = p(data, i);\n if (r.matched && test(r.value, values.length + 1, data, i, r.position)) {\n values.push(r.value);\n i = r.position;\n }\n else {\n success = false;\n }\n } while (success);\n return {\n matched: true,\n position: i,\n value: values\n };\n };\n}\nfunction takeUntil(p,\ntest) {\n return takeWhile(p, (value, n, data, i, j) => !test(value, n, data, i, j));\n}\nfunction takeWhileP(pValue, pTest) {\n return takeWhile(pValue, (value, n, data, i) => pTest(data, i).matched);\n}\nfunction takeUntilP(pValue, pTest) {\n return takeWhile(pValue, (value, n, data, i) => !pTest(data, i).matched);\n}\nfunction many(p) {\n return takeWhile(p, () => true);\n}\nfunction many1(p) {\n return ab(p, many(p), (head, tail) => [head, ...tail]);\n}\nfunction ab(pa, pb, join) {\n return (data, i) => mapOuter(pa(data, i), (ma) => mapInner(pb(data, ma.position), (vb, j) => join(ma.value, vb, data, i, j)));\n}\nfunction left(pa, pb) {\n return ab(pa, pb, (va) => va);\n}\nfunction right(pa, pb) {\n return ab(pa, pb, (va, vb) => vb);\n}\nfunction abc(pa, pb, pc, join) {\n return (data, i) => mapOuter(pa(data, i), (ma) => mapOuter(pb(data, ma.position), (mb) => mapInner(pc(data, mb.position), (vc, j) => join(ma.value, mb.value, vc, data, i, j))));\n}\nfunction middle(pa, pb, pc) {\n return abc(pa, pb, pc, (ra, rb) => rb);\n}\nfunction all(...ps) {\n return (data, i) => {\n const result = [];\n let position = i;\n for (const p of ps) {\n const r1 = p(data, position);\n if (r1.matched) {\n result.push(r1.value);\n position = r1.position;\n }\n else {\n return { matched: false };\n }\n }\n return {\n matched: true,\n position: position,\n value: result\n };\n };\n}\nfunction skip(...ps) {\n return map(all(...ps), () => null);\n}\nfunction flatten(...ps) {\n return flatten1(all(...ps));\n}\nfunction flatten1(p) {\n return map(p, (vs) => vs.flatMap((v) => v));\n}\nfunction sepBy1(pValue, pSep) {\n return ab(pValue, many(right(pSep, pValue)), (head, tail) => [head, ...tail]);\n}\nfunction sepBy(pValue, pSep) {\n return otherwise(sepBy1(pValue, pSep), emit([]));\n}\nfunction chainReduce(acc,\nf) {\n return (data, i) => {\n let loop = true;\n let acc1 = acc;\n let pos = i;\n do {\n const r = f(acc1, data, pos)(data, pos);\n if (r.matched) {\n acc1 = r.value;\n pos = r.position;\n }\n else {\n loop = false;\n }\n } while (loop);\n return {\n matched: true,\n position: pos,\n value: acc1\n };\n };\n}\nfunction reduceLeft(acc, p,\nreducer) {\n return chainReduce(acc, (acc) => map(p, (v, data, i, j) => reducer(acc, v, data, i, j)));\n}\nfunction reduceRight(p, acc,\nreducer) {\n return map(many(p), (vs, data, i, j) => vs.reduceRight((acc, v) => reducer(v, acc, data, i, j), acc));\n}\nfunction leftAssoc1(pLeft, pOper) {\n return chain(pLeft, (v0) => reduceLeft(v0, pOper, (acc, f) => f(acc)));\n}\nfunction rightAssoc1(pOper, pRight) {\n return ab(reduceRight(pOper, (y) => y, (f, acc) => (y) => f(acc(y))), pRight, (f, v) => f(v));\n}\nfunction leftAssoc2(pLeft, pOper, pRight) {\n return chain(pLeft, (v0) => reduceLeft(v0, ab(pOper, pRight, (f, y) => [f, y]), (acc, [f, y]) => f(acc, y)));\n}\nfunction rightAssoc2(pLeft, pOper, pRight) {\n return ab(reduceRight(ab(pLeft, pOper, (x, f) => [x, f]), (y) => y, ([x, f], acc) => (y) => f(x, acc(y))), pRight, (f, v) => f(v));\n}\nfunction condition(cond, pTrue, pFalse) {\n return (data, i) => (cond(data, i))\n ? pTrue(data, i)\n : pFalse(data, i);\n}\nfunction decide(p) {\n return (data, i) => mapOuter(p(data, i), (m1) => m1.value(data, m1.position));\n}\nfunction chain(p,\nf) {\n return (data, i) => mapOuter(p(data, i), (m1) => f(m1.value, data, i, m1.position)(data, m1.position));\n}\nfunction ahead(p) {\n return (data, i) => mapOuter(p(data, i), (m1) => ({\n matched: true,\n position: i,\n value: m1.value\n }));\n}\nfunction recursive(f) {\n return function (data, i) {\n return f()(data, i);\n };\n}\nfunction start(data, i) {\n return (i !== 0)\n ? { matched: false }\n : {\n matched: true,\n position: i,\n value: true\n };\n}\nfunction end(data, i) {\n return (i < data.tokens.length)\n ? { matched: false }\n : {\n matched: true,\n position: i,\n value: true\n };\n}\nfunction remainingTokensNumber(data, i) {\n return data.tokens.length - i;\n}\nfunction parserPosition(data, i, formatToken, contextTokens = 3) {\n const len = data.tokens.length;\n const lowIndex = clamp(0, i - contextTokens, len - contextTokens);\n const highIndex = clamp(contextTokens, i + 1 + contextTokens, len);\n const tokensSlice = data.tokens.slice(lowIndex, highIndex);\n const lines = [];\n const indexWidth = String(highIndex - 1).length + 1;\n if (i < 0) {\n lines.push(`${String(i).padStart(indexWidth)} >>`);\n }\n if (0 < lowIndex) {\n lines.push('...'.padStart(indexWidth + 6));\n }\n for (let j = 0; j < tokensSlice.length; j++) {\n const index = lowIndex + j;\n lines.push(`${String(index).padStart(indexWidth)} ${(index === i ? '>' : ' ')} ${escapeWhitespace(formatToken(tokensSlice[j]))}`);\n }\n if (highIndex < len) {\n lines.push('...'.padStart(indexWidth + 6));\n }\n if (len <= i) {\n lines.push(`${String(i).padStart(indexWidth)} >>`);\n }\n return lines.join('\\n');\n}\nfunction parse(parser, tokens, options, formatToken = JSON.stringify) {\n const data = { tokens: tokens, options: options };\n const result = parser(data, 0);\n if (!result.matched) {\n throw new Error('No match');\n }\n if (result.position < data.tokens.length) {\n throw new Error(`Partial match. Parsing stopped at:\\n${parserPosition(data, result.position, formatToken)}`);\n }\n return result.value;\n}\nfunction tryParse(parser, tokens, options) {\n const result = parser({ tokens: tokens, options: options }, 0);\n return (result.matched)\n ? result.value\n : undefined;\n}\nfunction match(matcher, tokens, options) {\n const result = matcher({ tokens: tokens, options: options }, 0);\n return result.value;\n}\n\nexport { ab, abc, action, ahead, all, all as and, any, chain, chainReduce, choice, condition, decide, skip as discard, otherwise as eitherOr, emit, end, end as eof, error, fail, flatten, flatten1, left, leftAssoc1, leftAssoc2, longest, ahead as lookAhead, make, many, many1, map, map1, match, middle, not, emit as of, option, choice as or, otherwise, parse, parserPosition, peek, recursive, reduceLeft, reduceRight, remainingTokensNumber, right, rightAssoc1, rightAssoc2, satisfy, sepBy, sepBy1, skip, many1 as some, start, takeUntil, takeUntilP, takeWhile, takeWhileP, token, tryParse };\n"],"x_google_ignoreList":[0],"mappings":"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"}
|